From a774d4fbdaea509f44006ad9061057e2423d7cdc Mon Sep 17 00:00:00 2001 From: vsr Date: Fri, 9 Aug 2013 06:11:48 +0000 Subject: [PATCH] 0021883 [CEA 674] Deactivate pre-selection in OCC and VTK viewer 0022174 [CEA 793] De-activate entirely selection in order to have a fast view usage --- doc/salome/gui/images/occviewer_toolbar.png | Bin 13901 -> 13363 bytes doc/salome/gui/input/occ_3d_viewer.doc | 10 ++ src/OCCViewer/OCCViewer_ViewFrame.cxx | 14 +++ src/OCCViewer/OCCViewer_ViewFrame.h | 6 ++ src/OCCViewer/OCCViewer_ViewModel.cxx | 99 +++++++++++++++-- src/OCCViewer/OCCViewer_ViewModel.h | 12 ++- src/OCCViewer/OCCViewer_ViewWindow.cxx | 100 ++++++++++++++++++ src/OCCViewer/OCCViewer_ViewWindow.h | 14 ++- src/OCCViewer/resources/OCCViewer_images.ts | 8 ++ src/OCCViewer/resources/OCCViewer_msg_en.ts | 16 +++ src/OCCViewer/resources/OCCViewer_msg_fr.ts | 16 +++ .../resources/occ_view_preselection.png | Bin 0 -> 621 bytes .../resources/occ_view_selection.png | Bin 0 -> 620 bytes 13 files changed, 283 insertions(+), 12 deletions(-) create mode 100755 src/OCCViewer/resources/occ_view_preselection.png create mode 100644 src/OCCViewer/resources/occ_view_selection.png diff --git a/doc/salome/gui/images/occviewer_toolbar.png b/doc/salome/gui/images/occviewer_toolbar.png index 3d8a919923b237188d77f3eeaeeeb4ad99256846..5a16df1760acf3ab06712be44c34fce7c7497ebd 100644 GIT binary patch literal 13363 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 literal 13901 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 L1+hv|Bgp>&!$8#e diff --git a/doc/salome/gui/input/occ_3d_viewer.doc b/doc/salome/gui/input/occ_3d_viewer.doc index 4eb31fce6..783adee96 100644 --- a/doc/salome/gui/input/occ_3d_viewer.doc +++ b/doc/salome/gui/input/occ_3d_viewer.doc @@ -37,6 +37,16 @@ current cursor position) zooming styles. Show/Hide Trihedron - shows or hides coordinate axes.
+\image html occ_view_preselection.png + +Enable/Disable preselection - enables or disables preselection in the view. +
+ +\image html occ_view_selection.png + +Enable/Disable selection - enables or disables selection in the view. +
+ \image html occ_view_fitall.png Fit all - allows to select a point to be the center of a scene diff --git a/src/OCCViewer/OCCViewer_ViewFrame.cxx b/src/OCCViewer/OCCViewer_ViewFrame.cxx index 6e7667829..dae1db07e 100644 --- a/src/OCCViewer/OCCViewer_ViewFrame.cxx +++ b/src/OCCViewer/OCCViewer_ViewFrame.cxx @@ -513,3 +513,17 @@ void OCCViewer_ViewFrame::updateWindowTitle(OCCViewer_ViewWindow* theView) if ( !title.isEmpty() ) theView->setWindowTitle( windowTitle() + " - " + title ); } + +void OCCViewer_ViewFrame::enableSelection( bool isEnabled ) +{ + foreach (OCCViewer_ViewWindow* aView, myViews) { + aView->enableSelection(isEnabled); + } +} + +void OCCViewer_ViewFrame::enablePreselection( bool isEnabled ) +{ + foreach (OCCViewer_ViewWindow* aView, myViews) { + aView->enablePreselection(isEnabled); + } +} diff --git a/src/OCCViewer/OCCViewer_ViewFrame.h b/src/OCCViewer/OCCViewer_ViewFrame.h index 99cfdb064..35935b630 100644 --- a/src/OCCViewer/OCCViewer_ViewFrame.h +++ b/src/OCCViewer/OCCViewer_ViewFrame.h @@ -72,6 +72,12 @@ public: virtual int zoomingStyle() const { return getView(MAIN_VIEW)->zoomingStyle(); } virtual void setZoomingStyle( const int ); + virtual bool isSelectionEnabled() const { return getView(MAIN_VIEW)->isSelectionEnabled(); } + virtual void enableSelection( bool ); + + virtual bool isPreselectionEnabled() const { return getView(MAIN_VIEW)->isPreselectionEnabled(); } + virtual void enablePreselection( bool ); + virtual void setViewManager( SUIT_ViewManager* ); virtual bool eventFilter(QObject* watched, QEvent* e) { return SUIT_ViewWindow::eventFilter(watched, e); } diff --git a/src/OCCViewer/OCCViewer_ViewModel.cxx b/src/OCCViewer/OCCViewer_ViewModel.cxx index 71f94cbe4..b728482f1 100755 --- a/src/OCCViewer/OCCViewer_ViewModel.cxx +++ b/src/OCCViewer/OCCViewer_ViewModel.cxx @@ -154,6 +154,9 @@ OCCViewer_Viewer::OCCViewer_Viewer( bool DisplayTrihedron) // set zooming style to standard myZoomingStyle = 0; + // preselection + myPreselectionEnabled = true; + // selection mySelectionEnabled = true; myMultiSelectionEnabled = true; @@ -220,6 +223,8 @@ void OCCViewer_Viewer::initView( OCCViewer_ViewWindow* view ) view->initSketchers(); view->setInteractionStyle( interactionStyle() ); view->setZoomingStyle( zoomingStyle() ); + view->enablePreselection( isPreselectionEnabled() ); + view->enableSelection( isSelectionEnabled() ); OCCViewer_ViewPort3d* vp3d = view->getViewPort(); if ( vp3d ) @@ -288,7 +293,9 @@ void OCCViewer_Viewer::onMouseMove(SUIT_ViewWindow* theWindow, QMouseEvent* theE OCCViewer_ViewWindow* aView = (OCCViewer_ViewWindow*) theWindow; - if ( isSelectionEnabled() ) { + myCurPnt.setX(theEvent->x()); myCurPnt.setY(theEvent->y()); + + if ( isSelectionEnabled() && isPreselectionEnabled() ) { if (aView->getViewPort()->isBusy()) { QCoreApplication::processEvents(); return; // Check that the ViewPort initialization completed @@ -323,6 +330,13 @@ void OCCViewer_Viewer::onMouseRelease(SUIT_ViewWindow* theWindow, QMouseEvent* t if (myStartPnt == myEndPnt) { + if ( !isPreselectionEnabled() ) { + Handle(V3d_View) aView3d = aView->getViewPort()->getView(); + if ( !aView3d.IsNull() ) { + myAISContext->MoveTo(myEndPnt.x(), myEndPnt.y(), aView3d); + } + } + if (aHasShift && myMultiSelectionEnabled) myAISContext->ShiftSelect(); else @@ -370,6 +384,14 @@ void OCCViewer_Viewer::onKeyPress(SUIT_ViewWindow* theWindow, QKeyEvent* theEven return; emit deselection(); + + if ( !isPreselectionEnabled() ) { + Handle(V3d_View) aView3d = aView->getViewPort()->getView(); + if ( !aView3d.IsNull() ) { + myAISContext->MoveTo(myCurPnt.x(), myCurPnt.y(), aView3d); + } + } + myAISContext->Select(); emit selectionChanged(); @@ -453,12 +475,50 @@ void OCCViewer_Viewer::setZoomingStyle( const int theStyle ) } /*! - Sets selection enabled status + \return true if preselection is enabled +*/ +bool OCCViewer_Viewer::isPreselectionEnabled() const +{ + return myPreselectionEnabled; +} + +/*! + Enables/disables preselection + \param isEnabled - new status +*/ +void OCCViewer_Viewer::enablePreselection(bool isEnabled) +{ + myPreselectionEnabled = isEnabled; + + if ( !myViewManager ) + return; + + QVector wins = myViewManager->getViews(); + for ( int i = 0; i < (int)wins.count(); i++ ) + { + OCCViewer_ViewWindow* win = ::qobject_cast( wins.at( i ) ); + if ( win ) { + win->enablePreselection( isEnabled ); + } + } +} + +/*! + \return true if selection is enabled +*/ +bool OCCViewer_Viewer::isSelectionEnabled() const +{ + return mySelectionEnabled; +} + +/*! + Enables/disables selection \param isEnabled - new status */ void OCCViewer_Viewer::enableSelection(bool isEnabled) { mySelectionEnabled = isEnabled; + //!! To be done for view windows if ( !myViewManager ) return; @@ -467,8 +527,10 @@ void OCCViewer_Viewer::enableSelection(bool isEnabled) for ( int i = 0; i < (int)wins.count(); i++ ) { OCCViewer_ViewWindow* win = ::qobject_cast( wins.at( i ) ); - if ( win ) + if ( win ) { win->updateEnabledDrawMode(); + win->enableSelection( isEnabled ); + } } } @@ -627,12 +689,22 @@ bool OCCViewer_Viewer::highlight( const Handle(AIS_InteractiveObject)& obj, Unhilights all objects in viewer \param updateviewer - update current viewer */ -bool OCCViewer_Viewer::unHighlightAll( bool updateviewer ) +bool OCCViewer_Viewer::unHighlightAll( bool updateviewer, bool unselect ) { - if ( myAISContext->HasOpenedContext() ) - myAISContext->ClearSelected( updateviewer ); - else - myAISContext->ClearCurrents( updateviewer ); + if ( myAISContext->HasOpenedContext() ) { + if ( unselect ) { + myAISContext->ClearSelected( updateviewer ); + } else { + myAISContext->UnhilightSelected( updateviewer ); + } + } else { + if ( unselect ) { + myAISContext->ClearCurrents( updateviewer ); + } else { + myAISContext->UnhilightCurrents( updateviewer ); + } + } + return false; } @@ -924,3 +996,14 @@ void OCCViewer_Viewer::updateTrihedron() { myTrihedron->SetSize(myTrihedronSize); } } + +/*! + Set number of isolines + \param u - u-isolines (first parametric co-ordinate) + \param v - v-isolines (second parametric co-ordinate) +*/ +void OCCViewer_Viewer::setSelectionOptions( bool isPreselectionEnabled, bool isSelectionEnabled ) +{ + myPreselectionEnabled = isPreselectionEnabled; + mySelectionEnabled = isSelectionEnabled; +} diff --git a/src/OCCViewer/OCCViewer_ViewModel.h b/src/OCCViewer/OCCViewer_ViewModel.h index 456ddfcbf..1ad1ddd4f 100755 --- a/src/OCCViewer/OCCViewer_ViewModel.h +++ b/src/OCCViewer/OCCViewer_ViewModel.h @@ -129,8 +129,13 @@ public: int zoomingStyle() const; void setZoomingStyle( const int ); + void enablePreselection(bool isEnabled); + bool isPreselectionEnabled() const; + void enableSelection(bool isEnabled); - bool isSelectionEnabled() const { return mySelectionEnabled; } + bool isSelectionEnabled() const; + + void setSelectionOptions( bool, bool ); void enableMultiselection(bool isEnable); bool isMultiSelectionEnabled() const { return myMultiSelectionEnabled; } @@ -142,7 +147,7 @@ public: /* Selection management */ bool highlight( const Handle(AIS_InteractiveObject)&, bool, bool=true ); - bool unHighlightAll( bool=true ); + bool unHighlightAll( bool=true, bool=true ); bool isInViewer( const Handle(AIS_InteractiveObject)&, bool=false ); bool isVisible( const Handle(AIS_InteractiveObject)& ); @@ -178,6 +183,7 @@ protected: int myInteractionStyle; int myZoomingStyle; + bool myPreselectionEnabled; bool mySelectionEnabled; bool myMultiSelectionEnabled; bool myIsRelative; @@ -185,7 +191,7 @@ protected: int myTopLayerId; //QColor myBgColor; - QPoint myStartPnt, myEndPnt; + QPoint myStartPnt, myEndPnt, myCurPnt; bool myShowStaticTrihedron; diff --git a/src/OCCViewer/OCCViewer_ViewWindow.cxx b/src/OCCViewer/OCCViewer_ViewWindow.cxx index 8b3340dbd..9fb1b2619 100755 --- a/src/OCCViewer/OCCViewer_ViewWindow.cxx +++ b/src/OCCViewer/OCCViewer_ViewWindow.cxx @@ -237,6 +237,9 @@ OCCViewer_ViewWindow::OCCViewer_ViewWindow( SUIT_Desktop* theDesktop, my2dMode = No2dMode; myInteractionStyle = SUIT_ViewModel::STANDARD; + myPreselectionEnabled = true; + mySelectionEnabled = true; + clearViewAspects(); @@ -1236,6 +1239,22 @@ void OCCViewer_ViewWindow::createActions() connect(aAction, SIGNAL(triggered()), this, SLOT(onAxialScale())); toolMgr()->registerAction( aAction, AxialScaleId ); + // Enable/disable preselection + aAction = new QtxAction(tr("MNU_ENABLE_PRESELECTION"), aResMgr->loadPixmap( "OCCViewer", tr( "ICON_OCCVIEWER_PRESELECTION" ) ), + tr( "MNU_ENABLE_PRESELECTION" ), 0, this); + aAction->setStatusTip(tr("DSC_ENABLE_PRESELECTION")); + aAction->setCheckable(true); + connect(aAction, SIGNAL(toggled(bool)), this, SLOT(onSwitchPreselection(bool))); + toolMgr()->registerAction( aAction, SwitchPreselectionId ); + + // Enable/disable selection + aAction = new QtxAction(tr("MNU_ENABLE_SELECTION"), aResMgr->loadPixmap( "OCCViewer", tr( "ICON_OCCVIEWER_SELECTION" ) ), + tr( "MNU_ENABLE_SELECTION" ), 0, this); + aAction->setStatusTip(tr("DSC_ENABLE_SELECTION")); + aAction->setCheckable(true); + connect(aAction, SIGNAL(toggled(bool)), this, SLOT(onSwitchSelection(bool))); + toolMgr()->registerAction( aAction, SwitchSelectionId ); + // Graduated axes aAction = new QtxAction(tr("MNU_GRADUATED_AXES"), aResMgr->loadPixmap( "OCCViewer", tr( "ICON_OCCVIEWER_GRADUATED_AXES" ) ), tr( "MNU_GRADUATED_AXES" ), 0, this); @@ -1304,6 +1323,8 @@ void OCCViewer_ViewWindow::createToolBar() #if OCC_VERSION_LARGE > 0x0603000A // available only with OCC-6.3-sp11 and higher version toolMgr()->append( SwitchZoomingStyleId, tid ); #endif + toolMgr()->append( SwitchPreselectionId, tid ); + toolMgr()->append( SwitchSelectionId, tid ); if( myModel->trihedronActivated() ) toolMgr()->append( TrihedronShowId, tid ); @@ -1719,6 +1740,49 @@ void OCCViewer_ViewWindow::onTrihedronShow() myModel->toggleTrihedron(); } +/*! + \brief Toggles preselection (highlighting) on/off +*/ +void OCCViewer_ViewWindow::onSwitchPreselection( bool on ) +{ + myPreselectionEnabled = on; + myModel->setSelectionOptions( isPreselectionEnabled(), myModel->isSelectionEnabled() ); + + // unhighlight all highlighted objects + /*if ( !on ) { + myModel->unHighlightAll( true, false ); + }*/ + + // update action state if method is called outside + QtxAction* a = dynamic_cast( toolMgr()->action( SwitchPreselectionId ) ); + if ( a && a->isChecked() != on ) { + a->setChecked( on ); + } +} + +/*! + \brief Toggles selection on/off +*/ +void OCCViewer_ViewWindow::onSwitchSelection( bool on ) +{ + mySelectionEnabled = on; + myModel->setSelectionOptions( myModel->isPreselectionEnabled(), isSelectionEnabled() ); + + // update action state if method is called outside + + // preselection + QtxAction* a = dynamic_cast( toolMgr()->action( SwitchPreselectionId ) ); + if ( a ) { + a->setEnabled( on ); + } + + // selection + a = dynamic_cast( toolMgr()->action( SwitchSelectionId ) ); + if ( a && a->isChecked() != on ) { + a->setChecked( on ); + } +} + /*! \brief Switches "keyboard free" interaction style on/off */ @@ -2693,3 +2757,39 @@ void OCCViewer_ViewWindow::synchronize( SUIT_ViewWindow* theView ) blockSignals( blocked ); } + +/*! + \brief Indicates whether preselection is enabled + \return true if preselection is enabled +*/ +bool OCCViewer_ViewWindow::isPreselectionEnabled() const +{ + return myPreselectionEnabled; +} + +/*! + \brief Enables/disables preselection + \param theIsToEnable if true - preselection will be enabled +*/ +void OCCViewer_ViewWindow::enablePreselection( bool theIsToEnable ) +{ + onSwitchPreselection( theIsToEnable ); +} + +/*! + \brief Indicates whether selection is enabled + \return true if selection is enabled +*/ +bool OCCViewer_ViewWindow::isSelectionEnabled() const +{ + return mySelectionEnabled; +} + +/*! + \brief Enables/disables selection + \param theIsToEnable if true - selection will be enabled +*/ +void OCCViewer_ViewWindow::enableSelection( bool theIsToEnable ) +{ + onSwitchSelection( theIsToEnable ); +} diff --git a/src/OCCViewer/OCCViewer_ViewWindow.h b/src/OCCViewer/OCCViewer_ViewWindow.h index a445b5a86..a203a2bf2 100755 --- a/src/OCCViewer/OCCViewer_ViewWindow.h +++ b/src/OCCViewer/OCCViewer_ViewWindow.h @@ -121,7 +121,10 @@ public: FrontId, BackId, TopId, BottomId, LeftId, RightId, ClockWiseId, AntiClockWiseId, ResetId, CloneId, ClippingId, MemId, RestoreId, TrihedronShowId, AxialScaleId, GraduatedAxesId, AmbientId, - SwitchInteractionStyleId, SwitchZoomingStyleId, MaximizedId, SynchronizeId, UserId }; + SwitchInteractionStyleId, SwitchZoomingStyleId, + SwitchPreselectionId, SwitchSelectionId, + MaximizedId, SynchronizeId, + UserId }; enum OperationType{ NOTHING, PANVIEW, ZOOMVIEW, ROTATE, PANGLOBAL, WINDOWFIT, FITALLVIEW, RESETVIEW, @@ -170,6 +173,11 @@ public: virtual int zoomingStyle() const; virtual void setZoomingStyle( const int ); + + virtual bool isPreselectionEnabled() const; + virtual void enablePreselection( bool ); + virtual bool isSelectionEnabled() const; + virtual void enableSelection( bool ); void setTransformEnabled( const OperationType, const bool ); bool transformEnabled( const OperationType ) const; @@ -226,6 +234,8 @@ public slots: virtual void setRestoreFlag(); virtual void onSwitchInteractionStyle( bool on ); virtual void onSwitchZoomingStyle( bool on ); + virtual void onSwitchPreselection( bool on ); + virtual void onSwitchSelection( bool on ); virtual void activateSetRotationGravity(); virtual void activateSetRotationSelected( double theX, double theY, double theZ ); @@ -332,6 +342,8 @@ private: QtxRectRubberBand* myRectBand; //!< selection rectangle rubber band + bool mySelectionEnabled; + bool myPreselectionEnabled; int myInteractionStyle; typedef QMap MapOfTransformStatus; diff --git a/src/OCCViewer/resources/OCCViewer_images.ts b/src/OCCViewer/resources/OCCViewer_images.ts index 40bb07511..98804e2c7 100644 --- a/src/OCCViewer/resources/OCCViewer_images.ts +++ b/src/OCCViewer/resources/OCCViewer_images.ts @@ -123,5 +123,13 @@ ICON_OCCVIEWER_MINIMIZE occ_view_minimized.png + + ICON_OCCVIEWER_PRESELECTION + occ_view_preselection.png + + + ICON_OCCVIEWER_SELECTION + occ_view_selection.png + diff --git a/src/OCCViewer/resources/OCCViewer_msg_en.ts b/src/OCCViewer/resources/OCCViewer_msg_en.ts index e505ec1ab..d9d1f0d99 100644 --- a/src/OCCViewer/resources/OCCViewer_msg_en.ts +++ b/src/OCCViewer/resources/OCCViewer_msg_en.ts @@ -267,6 +267,22 @@ MNU_ZOOMING_STYLE_SWITCH Zooming style switch + + DSC_ENABLE_PRESELECTION + Enable/disable preselection + + + MNU_ENABLE_PRESELECTION + Enable/disable preselection + + + DSC_ENABLE_SELECTION + Enable/disable selection + + + MNU_ENABLE_SELECTION + Enable/disable selection + OCC_IMAGE_FILES Images Files (*.bmp *.png *.jpg *.jpeg *.eps *.ps) diff --git a/src/OCCViewer/resources/OCCViewer_msg_fr.ts b/src/OCCViewer/resources/OCCViewer_msg_fr.ts index 74b9bfeb3..0f09189f0 100755 --- a/src/OCCViewer/resources/OCCViewer_msg_fr.ts +++ b/src/OCCViewer/resources/OCCViewer_msg_fr.ts @@ -267,6 +267,22 @@ MNU_ZOOMING_STYLE_SWITCH Changer le style de zoom + + DSC_ENABLE_PRESELECTION + Enable/disable preselection + + + MNU_ENABLE_PRESELECTION + Enable/disable preselection + + + DSC_ENABLE_SELECTION + Enable/disable selection + + + MNU_ENABLE_SELECTION + Enable/disable selection + OCC_IMAGE_FILES Fichiers images (*.bmp *.png *.jpg *.jpeg *.eps *.ps) diff --git a/src/OCCViewer/resources/occ_view_preselection.png b/src/OCCViewer/resources/occ_view_preselection.png new file mode 100755 index 0000000000000000000000000000000000000000..cd5baec98256e8357c1aa7501b5f404628558e96 GIT binary patch literal 621 zcmV-z0+RiSP)+110s2Wq zK~y-)y_8)@Q(+j#f9GtieNibbwnej#ElzbaoEH(&MbS-kQ|l&ZH&J*|kZd9p2z@AM zX_+x$AtkY!h@c=E5*baJL=A*4+(m4iTn0*GXeM;#Io-@4@|dpCbMw9r@B9Av^F06e z5hO{XT9L_QFqZdP6<`g(=6Z0yPRtQct2J5ZDbo<4hxXsDsL_ZEk`KmD6RK@hRq9gL(hw0GR*!6_S!b9XCO zD2fJbb_WP%hMtdNwVH@TA{>`xniK2(_#rD&XtCC?zIH2u!OX))Pw4L-!0-3VI#1He z0yRxVQRWd1CX7Zib2CK-2k#M%wA2lSH|qh@`nJ(jzRgZkEXbgiaJ#n<3Y}n+V%>H@PfUufJHV2#a`mj>HExN{sSJ5lhM>WvL7d6Z#wrj{M9z)5%ep*7G80G zAc`fK;6f5EUA|6RTNm%g#&Eh^$K*Q)^?~K#82GJa>9?_H-_54Q+$Z^B+qS!yo|@u^ zQo0BTOWLixx&ZfbwQ29@Ivflhy<#+3S!=b2JkAaArSAO%t^ue1e^00000NkvXX Hu0mjfoPHRK literal 0 HcmV?d00001 diff --git a/src/OCCViewer/resources/occ_view_selection.png b/src/OCCViewer/resources/occ_view_selection.png new file mode 100644 index 0000000000000000000000000000000000000000..21d18e9013d494654f0965e55d7aa181a43dd25e GIT binary patch literal 620 zcmV-y0+aoTP)0r^Qp zK~y-)y_8F6Q$ZAlznjE(jR8%trHz{UNXobiO>v=t3|%rGg-8pbHl+YU87b zR>fjaFlYozanV);5foZX7i~dYNEVWK+mM>ZhR}+FH_f<-^_7G+1`ix&hMD;|bIw0U z5kgQei^t=bN^@BUSUZsZ0pw11u4dSY^L79)fPp&O{{!ycKUrU3QL)n~9@P(+OeVQ} zHOdyxFujrX6$4F`HgtW7r_WwvFxu$ryFvQR-hYcwQ4CnE4UEO&^n`AqI)}MCw6FFE z4F)6Ytqq{4Jby8c#bPEH45Dd=u<4zD{g4$!xXxl@gMAx{QDyMS5dHo4@OV60g)384 zBb2g;u75?fnlYJF^4UC*$bIH>nU+fzNBQ{HR~A@VHnPa)#Vq-p2E_sn$5sM?BQ!Q_ zB9TboJDky0l|xxvVsT-Xjy+!1s4ix-6sOMyak+LzCq_0O9UY`)RaKUnQ&Fz2q6$c$Ul8Lm60b; zompN#9vG4C)(-jL;eed|v=A!w&|m#$4ol6^`&-GTCc?LGUSAfRTe!p9cQlioo8y~a zI0q