Index: System tests/AutomatedSystemTests/AutomatedSystemTests/NormalSystemTests.rxtst =================================================================== diff -u -r4177b47487f7221a2feb6d1a34b1ac738c60fc78 -r775e65facccf4f385177786dfeb10bfc30a17095 --- System tests/AutomatedSystemTests/AutomatedSystemTests/NormalSystemTests.rxtst (.../NormalSystemTests.rxtst) (revision 4177b47487f7221a2feb6d1a34b1ac738c60fc78) +++ System tests/AutomatedSystemTests/AutomatedSystemTests/NormalSystemTests.rxtst (.../NormalSystemTests.rxtst) (revision 775e65facccf4f385177786dfeb10bfc30a17095) @@ -36243,7 +36243,7 @@ - STPH>Dijken en dammen - Piping>Berekeningen>12_2_02500 Segment_12004_1D1 + Traject 12-2>Dijken en dammen - Piping>Berekeningen>12_2_02500 Segment_12004_1D1 1-10 @@ -36257,7 +36257,7 @@ - STPH>Dijken en dammen - Piping>Berekeningen>12_2_02500 Segment_12004_1D1 + Traject 12-2>Dijken en dammen - Piping>Berekeningen>12_2_02500 Segment_12004_1D1 11-12 @@ -36271,7 +36271,7 @@ - STBI>Dijken en dammen - Macrostabiliteit binnenwaarts>Berekeningen>12_2_00100 12_2_00100_Segment_12004_1D1 + Traject 41-1>Dijken en dammen - Macrostabiliteit binnenwaarts>Berekeningen>12_2_00100 12_2_00100_Segment_12004_1D1 13-65 @@ -36285,7 +36285,7 @@ - STBI>Dijken en dammen - Macrostabiliteit binnenwaarts>Berekeningen>12_2_00100 12_2_00100_Segment_12004_1D1 + Traject 41-1>Dijken en dammen - Macrostabiliteit binnenwaarts>Berekeningen>12_2_00100 12_2_00100_Segment_12004_1D1 66-69 @@ -36299,7 +36299,7 @@ - GEKB>Dijken en dammen - Grasbekleding erosie kruin en binnentalud>Berekeningen>profiel001 + Traject 12-2 (1)>Dijken en dammen - Grasbekleding erosie kruin en binnentalud>Berekeningen>profiel001 70-81 @@ -36313,7 +36313,7 @@ - BSKW>Kunstwerken - Betrouwbaarheid sluiting kunstwerk>Berekeningen>'Amersluis' + Traject 34-1>Kunstwerken - Betrouwbaarheid sluiting kunstwerk>Berekeningen>'Amersluis' 82-116 @@ -36327,7 +36327,7 @@ - HTKW>Kunstwerken - Hoogte kunstwerk>Berekeningen>'Keersluis Cuijk' + Traject 36-2>Kunstwerken - Hoogte kunstwerk>Berekeningen>'Keersluis Cuijk' 117-139 @@ -36341,7 +36341,7 @@ - STKWp>Kunstwerken - Sterkte en stabiliteit puntconstructies>Berekeningen>Kunstwerk1 + Traject 44-2>Kunstwerken - Sterkte en stabiliteit puntconstructies>Berekeningen>Kunstwerk1 140-191 Index: System tests/AutomatedSystemTests/AutomatedSystemTests/WorkInProgressDavid.rxtst =================================================================== diff -u -re24dfbd10844a77fe52b6be96ffc9654de5ea2f6 -r775e65facccf4f385177786dfeb10bfc30a17095 --- System tests/AutomatedSystemTests/AutomatedSystemTests/WorkInProgressDavid.rxtst (.../WorkInProgressDavid.rxtst) (revision e24dfbd10844a77fe52b6be96ffc9654de5ea2f6) +++ System tests/AutomatedSystemTests/AutomatedSystemTests/WorkInProgressDavid.rxtst (.../WorkInProgressDavid.rxtst) (revision 775e65facccf4f385177786dfeb10bfc30a17095) @@ -222,6 +222,16 @@ + + + + + + + + + + + + + + @@ -746,6 +776,12 @@ variableid="2dfc00fd-73b9-4da3-8f6e-bb765817601f" variablename="filePath1"> + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - - - @@ -1619,10 +1639,31 @@ name="ReplaceSubstring" ref="92030a75-8205-438c-9c04-f777a02a0b87" type="UserCode"> + + " -> _]]> + + + + + + + @@ -1838,6 +1879,32 @@ id="6e64002d-1935-41ef-901b-04f211e640c8" name="StartCalculations"> + + + + + + + + + + @@ -2161,8 +2228,28 @@ ref="b15958cf-4342-4eef-a2a3-0ec6ec4be6da" type="UserCode"> - ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3183,10 +3326,16 @@ + + + + - - - - - - - - - - - - - @@ -3732,6 +3856,12 @@ + + + + - - - - - - - - - - - - - - - - - - - + + _]]> + + + + + + + + id="e86550be-6887-4be4-82c8-9c592c3d0951"> @@ -5445,112 +5559,104 @@ + + - - + id="bc3576cc-0a26-4daf-a3ec-70d81f72307d" + name="LoopResultTypesClimateScenarios"> + id="eb2f5914-ed6f-4791-8ee4-c2a76f29978d" + name="CalculatePathToResultItem"> + + + + + + + + + id="a97159c6-be4b-41d1-a9df-0ab00a6df468" + name="OpenView"> + id="f26973e3-6b55-4576-bc0c-6495af462e53" + name="OpenViewForCurrentlySelectedItemInProjectExplorer"> + + + id="c41a290a-769c-4eed-ba50-0c002db72691" + name="LogWarningMessage"> + id="c517c33f-88c0-4e9e-abe8-7e78e74e86e7" + name="CreateScreenshotDocumentView"> + id="54fab03e-17a4-46a9-abaf-fe387064dc5b" + name="CloseView"> + id="de9a5d69-69a7-450a-b695-5eceae6552cf" + name="CloseViewCentralPanelWithFocus"> + + - - - - - - - - - - - - - - + id="4250d293-ef2e-43c6-bb33-6fbc907c31a2" + name="CalculateActualPropertiesCSVFileName"> + + + + + + + + - - - - - - - - - - - - - - - - - - + id="6759813a-9702-4fe0-883a-0c889181c390" + name="GenerateCSVPropertiesPanel"> + + + + + + + + @@ -6351,6 +6457,9 @@ referencePropertiesCSVFilePath + + calculationName + @@ -6368,6 +6477,9 @@ referencePropertiesCSVFilePath + + calculationName + @@ -6382,6 +6494,9 @@ x:\script19\reference\default\profiel005_F1_D1_Norm_Resultaat.csv + + profiel005_F1_D1_Norm + @@ -6396,6 +6511,9 @@ x:\script19\reference\default\profiel005_F1_D1_Norm_Resultaat_Sterkte_berekening.csv + + profiel005_F1_D1_Norm + @@ -6410,6 +6528,9 @@ x:\script19\reference\default\profiel005_F1_D1_Norm_Resultaat_HBN.csv + + profiel005_F1_D1_Norm + @@ -6424,6 +6545,9 @@ x:\script19\reference\default\profiel005_F1_D1_Norm_Resultaat_Overslagdebiet.csv + + profiel005_F1_D1_Norm + @@ -6438,6 +6562,9 @@ x:\script19\reference\default\profiel005_F1_D1_Requirement_Resultaat.csv + + profiel005_F1_D1_Requirement + @@ -6452,6 +6579,9 @@ x:\script19\reference\default\profiel005_F1_D1_Requirement_Resultaat_Sterkte_berekening.csv + + profiel005_F1_D1_Requirement + @@ -6466,6 +6596,9 @@ x:\script19\reference\default\profiel005_F1_D1_Requirement_Resultaat_HBN.csv + + profiel005_F1_D1_Requirement + @@ -6480,6 +6613,9 @@ x:\script19\reference\default\profiel005_F1_D1_Requirement_Resultaat_Overslagdebiet.csv + + profiel005_F1_D1_Requirement + @@ -6494,6 +6630,9 @@ x:\script19\reference\default\profiel005_F1_D0_Norm_Resultaat.csv + + profiel005_F1_D0_Norm + @@ -6508,6 +6647,9 @@ x:\script19\reference\default\profiel005_F1_D0_Norm_Resultaat_Sterkte_berekening.csv + + profiel005_F1_D0_Norm + @@ -6522,6 +6664,9 @@ x:\script19\reference\default\profiel005_F1_D0_Norm_Resultaat_HBN.csv + + profiel005_F1_D0_Norm + @@ -6536,6 +6681,9 @@ x:\script19\reference\default\profiel005_F1_D0_Norm_Resultaat_Overslagdebiet.csv + + profiel005_F1_D0_Norm + @@ -6550,6 +6698,9 @@ x:\script19\reference\default\profiel005_F1_D0_Requirement_Resultaat.csv + + profiel005_F1_D0_Requirement + @@ -6564,6 +6715,9 @@ x:\script19\reference\default\profiel005_F1_D0_Requirement_Resultaat_Sterkte_berekening.csv + + profiel005_F1_D0_Requirement + @@ -6578,6 +6732,9 @@ x:\script19\reference\default\profiel005_F1_D0_Requirement_Resultaat_HBN.csv + + profiel005_F1_D0_Requirement + @@ -6592,6 +6749,9 @@ x:\script19\reference\default\profiel005_F1_D0_Requirement_Resultaat_Overslagdebiet.csv + + profiel005_F1_D0_Requirement + @@ -6606,6 +6766,9 @@ x:\script19\reference\default\profiel005_F0_D1_Norm_Resultaat.csv + + profiel005_F0_D1_Norm + @@ -6620,6 +6783,9 @@ x:\script19\reference\default\profiel005_F0_D1_Norm_Resultaat_Sterkte_berekening.csv + + profiel005_F0_D1_Norm + @@ -6634,6 +6800,9 @@ x:\script19\reference\default\profiel005_F0_D1_Norm_Resultaat_HBN.csv + + profiel005_F0_D1_Norm + @@ -6648,6 +6817,9 @@ x:\script19\reference\default\profiel005_F0_D1_Norm_Resultaat_Overslagdebiet.csv + + profiel005_F0_D1_Norm + @@ -6662,6 +6834,9 @@ x:\script19\reference\default\profiel005_F0_D1_Requirement_Resultaat.csv + + profiel005_F0_D1_Requirement + @@ -6676,6 +6851,9 @@ x:\script19\reference\default\profiel005_F0_D1_Requirement_Resultaat_Sterkte_berekening.csv + + profiel005_F0_D1_Requirement + @@ -6690,6 +6868,9 @@ x:\script19\reference\default\profiel005_F0_D1_Requirement_Resultaat_HBN.csv + + profiel005_F0_D1_Requirement + @@ -6704,6 +6885,9 @@ x:\script19\reference\default\profiel005_F0_D1_Requirement_Resultaat_Overslagdebiet.csv + + profiel005_F0_D1_Requirement + @@ -6718,6 +6902,9 @@ x:\script19\reference\default\profiel005_F0_D0_Norm_Resultaat.csv + + profiel005_F0_D0_Norm + @@ -6732,6 +6919,9 @@ x:\script19\reference\default\profiel005_F0_D0_Norm_Resultaat_Sterkte_berekening.csv + + profiel005_F0_D0_Norm + @@ -6746,6 +6936,9 @@ x:\script19\reference\default\profiel005_F0_D0_Norm_Resultaat_HBN.csv + + profiel005_F0_D0_Norm + @@ -6760,6 +6953,9 @@ x:\script19\reference\default\profiel005_F0_D0_Norm_Resultaat_Overslagdebiet.csv + + profiel005_F0_D0_Norm + @@ -6774,6 +6970,9 @@ x:\script19\reference\default\profiel005_F0_D0_Requirement_Resultaat.csv + + profiel005_F0_D0_Requirement + @@ -6788,6 +6987,9 @@ x:\script19\reference\default\profiel005_F0_D0_Requirement_Resultaat_Sterkte_berekening.csv + + profiel005_F0_D0_Requirement + @@ -6802,6 +7004,9 @@ x:\script19\reference\default\profiel005_F0_D0_Requirement_Resultaat_HBN.csv + + profiel005_F0_D0_Requirement + @@ -6816,6 +7021,9 @@ x:\script19\reference\default\profiel005_F0_D0_Requirement_Resultaat_Overslagdebiet.csv + + profiel005_F0_D0_Requirement + @@ -8157,6 +8365,892 @@ + + + relativePathToResultItem + + + hasView + + + referencePropertiesCSVFilePath + + + labelFM + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ relativePathToResultItem + + hasView + + referencePropertiesCSVFilePath + + labelFM +
+ >12_2_02500>12_2_02500 Segment_12004_1D1>Resultaat + + false + + + STPH +
+ >12_2_02500>12_2_02500 Segment_12004_1D2>Resultaat + + false + + + STPH +
+ >12_2_02500>12_2_02500 Segment_12004_1D3>Resultaat + + false + + + STPH +
+ >profiel001>Resultaat + + false + + x:\script19\reference\default\profiel005_F1_D1_Norm_Resultaat.csv + + GEKB +
+ >profiel001>Resultaat>Sterkte berekening + + true + + x:\script19\reference\default\profiel005_F1_D1_Norm_Resultaat_Sterkte_berekening.csv + + GEKB +
+ >profiel002>Resultaat + + false + + x:\script19\reference\default\profiel005_F1_D1_Norm_Resultaat.csv + + GEKB +
+ >profiel002>Resultaat>Sterkte berekening + + true + + x:\script19\reference\default\profiel005_F1_D1_Norm_Resultaat_Sterkte_berekening.csv + + GEKB +
+ >profiel003>Resultaat + + false + + x:\script19\reference\default\profiel005_F1_D1_Norm_Resultaat.csv + + GEKB +
+ >profiel003>Resultaat>Sterkte berekening + + true + + x:\script19\reference\default\profiel005_F1_D1_Norm_Resultaat_Sterkte_berekening.csv + + GEKB +
+ >profiel004>Resultaat + + false + + x:\script19\reference\default\profiel005_F1_D1_Norm_Resultaat.csv + + GEKB +
+ >profiel004>Resultaat>Sterkte berekening + + true + + x:\script19\reference\default\profiel005_F1_D1_Norm_Resultaat_Sterkte_berekening.csv + + GEKB +
+ >profiel005>Resultaat + + false + + x:\script19\reference\default\profiel005_F1_D1_Norm_Resultaat.csv + + GEKB +
+ >profiel005>Resultaat>Sterkte berekening + + true + + x:\script19\reference\default\profiel005_F1_D1_Norm_Resultaat_Sterkte_berekening.csv + + GEKB +
+ >script19>profiel005_F1_D1_Norm>Resultaat + + false + + x:\script19\reference\default\profiel005_F1_D1_Norm_Resultaat.csv + + GEKB +
+ >script19>profiel005_F1_D1_Norm>Resultaat>Sterkte berekening + + true + + x:\script19\reference\default\profiel005_F1_D1_Norm_Resultaat_Sterkte_berekening.csv + + GEKB +
+ >script19>profiel005_F1_D1_Norm>Resultaat>HBN + + true + + x:\script19\reference\default\profiel005_F1_D1_Norm_Resultaat_HBN.csv + + GEKB +
+ >script19>profiel005_F1_D1_Norm>Resultaat>Overslagdebiet + + true + + x:\script19\reference\default\profiel005_F1_D1_Norm_Resultaat_Overslagdebiet.csv + + GEKB +
+ >script19>profiel005_F1_D1_Requirement>Resultaat + + false + + x:\script19\reference\default\profiel005_F1_D1_Requirement_Resultaat.csv + + GEKB +
+ >script19>profiel005_F1_D1_Requirement>Resultaat>Sterkte berekening + + true + + x:\script19\reference\default\profiel005_F1_D1_Requirement_Resultaat_Sterkte_berekening.csv + + GEKB +
+ >script19>profiel005_F1_D1_Requirement>Resultaat>HBN + + true + + x:\script19\reference\default\profiel005_F1_D1_Requirement_Resultaat_HBN.csv + + GEKB +
+ >script19>profiel005_F1_D1_Requirement>Resultaat>Overslagdebiet + + true + + x:\script19\reference\default\profiel005_F1_D1_Requirement_Resultaat_Overslagdebiet.csv + + GEKB +
+ >script19>profiel005_F1_D0_Norm>Resultaat + + false + + x:\script19\reference\default\profiel005_F1_D0_Norm_Resultaat.csv + + GEKB +
+ >script19>profiel005_F1_D0_Norm>Resultaat>Sterkte berekening + + true + + x:\script19\reference\default\profiel005_F1_D0_Norm_Resultaat_Sterkte_berekening.csv + + GEKB +
+ >script19>profiel005_F1_D0_Norm>Resultaat>HBN + + true + + x:\script19\reference\default\profiel005_F1_D0_Norm_Resultaat_HBN.csv + + GEKB +
+ >script19>profiel005_F1_D0_Norm>Resultaat>Overslagdebiet + + true + + x:\script19\reference\default\profiel005_F1_D0_Norm_Resultaat_Overslagdebiet.csv + + GEKB +
+ >script19>profiel005_F1_D0_Requirement>Resultaat + + false + + x:\script19\reference\default\profiel005_F1_D0_Requirement_Resultaat.csv + + GEKB +
+ >script19>profiel005_F1_D0_Requirement>Resultaat>Sterkte berekening + + true + + x:\script19\reference\default\profiel005_F1_D0_Requirement_Resultaat_Sterkte_berekening.csv + + GEKB +
+ >script19>profiel005_F1_D0_Requirement>Resultaat>HBN + + true + + x:\script19\reference\default\profiel005_F1_D0_Requirement_Resultaat_HBN.csv + + GEKB +
+ >script19>profiel005_F1_D0_Requirement>Resultaat>Overslagdebiet + + true + + x:\script19\reference\default\profiel005_F1_D0_Requirement_Resultaat_Overslagdebiet.csv + + GEKB +
+ >script19>profiel005_F0_D1_Norm>Resultaat + + false + + x:\script19\reference\default\profiel005_F0_D1_Norm_Resultaat.csv + + GEKB +
+ >script19>profiel005_F0_D1_Norm>Resultaat>Sterkte berekening + + true + + x:\script19\reference\default\profiel005_F0_D1_Norm_Resultaat_Sterkte_berekening.csv + + GEKB +
+ >script19>profiel005_F0_D1_Norm>Resultaat>HBN + + true + + x:\script19\reference\default\profiel005_F0_D1_Norm_Resultaat_HBN.csv + + GEKB +
+ >script19>profiel005_F0_D1_Norm>Resultaat>Overslagdebiet + + true + + x:\script19\reference\default\profiel005_F0_D1_Norm_Resultaat_Overslagdebiet.csv + + GEKB +
+ >script19>profiel005_F0_D1_Requirement>Resultaat + + false + + x:\script19\reference\default\profiel005_F0_D1_Requirement_Resultaat.csv + + GEKB +
+ >script19>profiel005_F0_D1_Requirement>Resultaat>Sterkte berekening + + true + + x:\script19\reference\default\profiel005_F0_D1_Requirement_Resultaat_Sterkte_berekening.csv + + GEKB +
+ >script19>profiel005_F0_D1_Requirement>Resultaat>HBN + + true + + x:\script19\reference\default\profiel005_F0_D1_Requirement_Resultaat_HBN.csv + + GEKB +
+ >script19>profiel005_F0_D1_Requirement>Resultaat>Overslagdebiet + + true + + x:\script19\reference\default\profiel005_F0_D1_Requirement_Resultaat_Overslagdebiet.csv + + GEKB +
+ >script19>profiel005_F0_D0_Norm>Resultaat + + false + + x:\script19\reference\default\profiel005_F0_D0_Norm_Resultaat.csv + + GEKB +
+ >script19>profiel005_F0_D0_Norm>Resultaat>Sterkte berekening + + true + + x:\script19\reference\default\profiel005_F0_D0_Norm_Resultaat_Sterkte_berekening.csv + + GEKB +
+ >script19>profiel005_F0_D0_Norm>Resultaat>HBN + + true + + x:\script19\reference\default\profiel005_F0_D0_Norm_Resultaat_HBN.csv + + GEKB +
+ >script19>profiel005_F0_D0_Norm>Resultaat>Overslagdebiet + + true + + x:\script19\reference\default\profiel005_F0_D0_Norm_Resultaat_Overslagdebiet.csv + + GEKB +
+ >script19>profiel005_F0_D0_Requirement>Resultaat + + false + + x:\script19\reference\default\profiel005_F0_D0_Requirement_Resultaat.csv + + GEKB +
+ >script19>profiel005_F0_D0_Requirement>Resultaat>Sterkte berekening + + true + + x:\script19\reference\default\profiel005_F0_D0_Requirement_Resultaat_Sterkte_berekening.csv + + GEKB +
+ >script19>profiel005_F0_D0_Requirement>Resultaat>HBN + + true + + x:\script19\reference\default\profiel005_F0_D0_Requirement_Resultaat_HBN.csv + + GEKB +
+ >script19>profiel005_F0_D0_Requirement>Resultaat>Overslagdebiet + + true + + x:\script19\reference\default\profiel005_F0_D0_Requirement_Resultaat_Overslagdebiet.csv + + GEKB +
+ >Vak_41-123>Vak_41-123 Vak_41-123_Segment_41009_1D2>Resultaat + + false + + + STBI +
+ >Vak_41-123>Vak_41-123 Vak_41-123_Segment_41009_1D3>Resultaat + + false + + + STBI +
+ >Vak_41-123>Vak_41-123 Vak_41-123_Segment_41009_1D4>Resultaat + + false + + + STBI +
+ >Vak_41-123>Vak_41-123 Vak_41-123_Segment_41009_1D6>Resultaat + + false + + + STBI +
+ >Vak_41-123>Vak_41-123 Vak_41-123_Segment_41009_1D7>Resultaat + + false + + + STBI +
+ >Vak_41-123>Vak_41-123 Vak_41-123_Segment_41009_1D1>Resultaat + + false + + + STBI +
+ >Vak_41-123>Vak_41-123 Vak_41-123_Segment_41009_1D8>Resultaat + + false + + + STBI +
+ >Vak_41-123>Vak_41-123 Vak_41-123_Segment_41009_1D5>Resultaat + + false + + + STBI +
+ >'Keersluis Cuijk'>Resultaat + + false + + + HTKW +
+ >'Gemaal van Sasse'>Resultaat + + false + + + HTKW +
+ >'Amersluis'>Resultaat + + false + + + BSKW +
+ >'Gemaal Schuddebeurs'>Resultaat + + false + + + BSKW +
+ >'Gemaal Hollandsch Diep'>Resultaat + + false + + + BSKW +
+ >Kunstwerk1>Resultaat + + false + + + STKWp +
+ >Kunstwerk2>Resultaat + + false + + + STKWp +
+ >Kunstwerk3>Resultaat + + false + + + STKWp +
+ >Kunstwerk4>Resultaat + + false + + + STKWp +
+
+ listIndecesHBCLocationsToCalculate + + rangeLoopResultTypesClimateScenarios + @@ -8203,6 +9300,9 @@ listIndecesHBCLocationsToCalculate + + rangeLoopResultTypesClimateScenarios + @@ -8223,6 +9323,9 @@ 1 + + 1-3 + @@ -8242,6 +9345,9 @@ 0,2,4,7,8 + + 4-45 + @@ -8262,6 +9368,9 @@ 99 + + 46-53 + @@ -8281,6 +9390,9 @@ 16,112 + + 54-55 + @@ -8300,6 +9412,9 @@ 169,216,229 + + 56-58 + @@ -8319,6 +9434,9 @@ 18,21,32 + + 59-62 + @@ -8424,6 +9542,9 @@ id="0e1aed98-c16b-483a-a921-6b2b44bfe44b"> + + + + + + + + + + + + + + + + + + + + + + + +