From 61adb789b62751743888c3a262928c72bea45725 Mon Sep 17 00:00:00 2001 From: rickard Date: Mon, 18 Sep 2023 17:06:43 +0200 Subject: [PATCH 001/130] making scene composer panels resizable and setting minimum size to smaller for some components --- .../SceneComposerTopComponent.form | 45 +++++++++++++++++-- .../SceneComposerTopComponent.java | 41 +++++++++++------ 2 files changed, 69 insertions(+), 17 deletions(-) diff --git a/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.form b/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.form index d2fbde032..18cb279d7 100644 --- a/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.form +++ b/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.form @@ -24,11 +24,11 @@ - + - + - + @@ -184,6 +184,9 @@ + + + @@ -194,6 +197,9 @@ + + + @@ -204,6 +210,9 @@ + + + @@ -211,6 +220,9 @@ + + + @@ -260,6 +272,9 @@ + + + @@ -277,6 +292,9 @@ + + + @@ -910,6 +928,9 @@ + + + @@ -917,6 +938,9 @@ + + + @@ -952,6 +976,9 @@ + + + @@ -959,6 +986,9 @@ + + + @@ -966,6 +996,9 @@ + + + @@ -977,6 +1010,9 @@ + + + @@ -997,6 +1033,9 @@ + + + diff --git a/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.java b/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.java index 8b04e9c38..7bef0830e 100644 --- a/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.java +++ b/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.java @@ -190,6 +190,7 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { }); jSpinner1.setModel(new javax.swing.SpinnerNumberModel(0.1f, null, null, 0.01f)); + jSpinner1.setMinimumSize(new java.awt.Dimension(22, 23)); jSpinner1.addChangeListener(new javax.swing.event.ChangeListener() { public void stateChanged(javax.swing.event.ChangeEvent evt) { jSpinner1StateChanged(evt); @@ -197,6 +198,7 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { }); jSpinner2.setModel(new javax.swing.SpinnerNumberModel(500.0f, null, null, 1.0f)); + jSpinner2.setMinimumSize(new java.awt.Dimension(22, 23)); jSpinner2.addChangeListener(new javax.swing.event.ChangeListener() { public void stateChanged(javax.swing.event.ChangeEvent evt) { jSpinner2StateChanged(evt); @@ -204,8 +206,10 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { }); org.openide.awt.Mnemonics.setLocalizedText(jLabel7, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jLabel7.text")); // NOI18N + jLabel7.setMinimumSize(new java.awt.Dimension(34, 17)); org.openide.awt.Mnemonics.setLocalizedText(jLabel8, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jLabel8.text")); // NOI18N + jLabel8.setMinimumSize(new java.awt.Dimension(36, 17)); org.openide.awt.Mnemonics.setLocalizedText(jLabel9, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jLabel9.text")); // NOI18N @@ -220,6 +224,7 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { org.openide.awt.Mnemonics.setLocalizedText(cursorPositionLabel, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.cursorPositionLabel.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(jLabel13, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jLabel13.text")); // NOI18N + jLabel13.setMinimumSize(new java.awt.Dimension(34, 17)); fovSlider.setMaximum(360); fovSlider.setMinimum(1); @@ -231,6 +236,7 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { }); fovSpinner.setModel(new javax.swing.SpinnerNumberModel(45, null, null, 1)); + fovSpinner.setMinimumSize(new java.awt.Dimension(22, 23)); fovSpinner.addChangeListener(new javax.swing.event.ChangeListener() { public void stateChanged(javax.swing.event.ChangeEvent evt) { fovSpinnerStateChanged(evt); @@ -254,9 +260,9 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { .addContainerGap(134, Short.MAX_VALUE)) .addGroup(cameraPanelLayout.createSequentialGroup() .addGroup(cameraPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel7) - .addComponent(jLabel8) - .addComponent(jLabel13)) + .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel13, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(cameraPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(cameraPanelLayout.createSequentialGroup() @@ -269,7 +275,7 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { .addComponent(jSlider2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(cameraPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(jSpinner2) + .addComponent(jSpinner2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jSpinner1, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE))))) ); cameraPanelLayout.setVerticalGroup( @@ -278,12 +284,12 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { .addGap(30, 30, 30) .addGroup(cameraPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(fovSlider, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jLabel13) + .addComponent(jLabel13, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(fovSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(cameraPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jSlider1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jLabel7) + .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jSpinner1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(cameraPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) @@ -291,7 +297,7 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { .addGroup(cameraPanelLayout.createSequentialGroup() .addGroup(cameraPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jSlider2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jLabel8)) + .addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(1, 1, 1))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(cameraPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) @@ -607,9 +613,11 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jToolBar2.add(createPhysicsMeshButton); org.openide.awt.Mnemonics.setLocalizedText(jCheckBox1, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jCheckBox1.text")); // NOI18N + jCheckBox1.setMinimumSize(new java.awt.Dimension(0, 21)); jToolBar2.add(jCheckBox1); jTextField1.setText(org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jTextField1.text")); // NOI18N + jTextField1.setMinimumSize(new java.awt.Dimension(22, 23)); jToolBar2.add(jTextField1); org.openide.awt.Mnemonics.setLocalizedText(jLabel4, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jLabel4.text")); // NOI18N @@ -628,15 +636,19 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { fixedCheckBox.setSelected(true); org.openide.awt.Mnemonics.setLocalizedText(fixedCheckBox, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.fixedCheckBox.text")); // NOI18N fixedCheckBox.setEnabled(false); + fixedCheckBox.setMinimumSize(new java.awt.Dimension(0, 21)); jToolBar3.add(fixedCheckBox); radiusSpinner.setModel(new javax.swing.SpinnerNumberModel(0.5f, null, null, 0.1f)); + radiusSpinner.setMinimumSize(new java.awt.Dimension(22, 23)); jToolBar3.add(radiusSpinner); heightSpinner.setModel(new javax.swing.SpinnerNumberModel(1.8f, null, null, 0.1f)); + heightSpinner.setMinimumSize(new java.awt.Dimension(22, 23)); jToolBar3.add(heightSpinner); org.openide.awt.Mnemonics.setLocalizedText(jLabel5, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jLabel5.text")); // NOI18N + jLabel5.setMinimumSize(new java.awt.Dimension(20, 17)); org.openide.awt.Mnemonics.setLocalizedText(emitButton, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.emitButton.text")); // NOI18N emitButton.setToolTipText(org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.emitButton.toolTipText")); // NOI18N @@ -647,6 +659,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { }); org.openide.awt.Mnemonics.setLocalizedText(jLabel6, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jLabel6.text")); // NOI18N + jLabel6.setMinimumSize(new java.awt.Dimension(20, 17)); jButton2.setIcon(Icons.play); org.openide.awt.Mnemonics.setLocalizedText(jButton2, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jButton2.text")); // NOI18N @@ -694,13 +707,13 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addGap(10, 10, 10) .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel4Layout.createSequentialGroup() - .addComponent(jLabel6) + .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 0, 0) .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel4Layout.createSequentialGroup() - .addComponent(jLabel5) + .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(emitButton))) .addGap(0, 0, Short.MAX_VALUE))) @@ -716,13 +729,13 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addComponent(jSeparator6, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel5) + .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(emitButton)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel4Layout.createSequentialGroup() .addGap(4, 4, 4) - .addComponent(jLabel6)) + .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) @@ -755,11 +768,11 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(sceneInfoPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(sceneInfoPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(cameraPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(cameraPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addComponent(jToolBar1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ); From afe4b88735d09323b8c12dcb9e32db62856978a3 Mon Sep 17 00:00:00 2001 From: rickard Date: Mon, 18 Sep 2023 18:55:40 +0200 Subject: [PATCH 002/130] more flexible material editor panels --- .../multiview/MaterialEditorTopComponent.form | 14 +++--- .../multiview/MaterialEditorTopComponent.java | 47 ++++++++++++++----- 2 files changed, 43 insertions(+), 18 deletions(-) diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/MaterialEditorTopComponent.form b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/MaterialEditorTopComponent.form index f062d4218..351bfb282 100644 --- a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/MaterialEditorTopComponent.form +++ b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/MaterialEditorTopComponent.form @@ -87,15 +87,15 @@ - + - + - - + + @@ -127,7 +127,7 @@ - + @@ -180,11 +180,11 @@ - + - + diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/MaterialEditorTopComponent.java b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/MaterialEditorTopComponent.java index ffb703c06..da5e46e37 100644 --- a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/MaterialEditorTopComponent.java +++ b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/MaterialEditorTopComponent.java @@ -17,6 +17,9 @@ import com.jme3.gde.materials.multiview.widgets.WidgetFactory; import com.jme3.material.Material; import java.awt.Component; +import java.awt.GridLayout; +import java.awt.event.ComponentEvent; +import java.awt.event.ComponentListener; import java.io.File; import java.io.IOException; import java.util.ArrayList; @@ -83,6 +86,28 @@ public MaterialEditorTopComponent(DataObject dataObject) { private void initWindow() { initComponents(); + optionsPane.addComponentListener(new ComponentListener() { + @Override + public void componentResized(ComponentEvent e) { + if(optionsPane.getWidth() > 400) { + ((GridLayout)optionsPanel.getLayout()).setColumns(2); + } else { + ((GridLayout)optionsPanel.getLayout()).setColumns(1); + } + } + + @Override + public void componentMoved(ComponentEvent e) { + } + + @Override + public void componentShown(ComponentEvent e) { + } + + @Override + public void componentHidden(ComponentEvent e) { + } + }); setName(NbBundle.getMessage(MaterialEditorTopComponent.class, "CTL_MaterialEditorTopComponent")); setToolTipText(NbBundle.getMessage(MaterialEditorTopComponent.class, "HINT_MaterialEditorTopComponent")); setActivatedNodes(new Node[]{dataObject.getNodeDelegate()}); @@ -119,7 +144,7 @@ private void initComponents() { texturesAndColorsPane = new javax.swing.JTabbedPane(); jScrollPane3 = new javax.swing.JScrollPane(); texturePanel = new javax.swing.JPanel(); - jTabbedPane3 = new javax.swing.JTabbedPane(); + optionsPane = new javax.swing.JTabbedPane(); jScrollPane2 = new javax.swing.JScrollPane(); optionsPanel = new javax.swing.JPanel(); jToolBar2 = new javax.swing.JToolBar(); @@ -169,9 +194,9 @@ private void initComponents() { texturesAndColorsPane.addTab(org.openide.util.NbBundle.getMessage(MaterialEditorTopComponent.class, "MaterialEditorTopComponent.jScrollPane3.TabConstraints.tabTitle"), jScrollPane3); // NOI18N - jTabbedPane3.setTabLayoutPolicy(javax.swing.JTabbedPane.SCROLL_TAB_LAYOUT); - jTabbedPane3.setMinimumSize(new java.awt.Dimension(380, 355)); - jTabbedPane3.setPreferredSize(new java.awt.Dimension(500, 355)); + optionsPane.setTabLayoutPolicy(javax.swing.JTabbedPane.SCROLL_TAB_LAYOUT); + optionsPane.setMinimumSize(new java.awt.Dimension(200, 355)); + optionsPane.setPreferredSize(new java.awt.Dimension(500, 355)); jScrollPane2.setBorder(null); jScrollPane2.setMinimumSize(new java.awt.Dimension(220, 0)); @@ -179,7 +204,7 @@ private void initComponents() { optionsPanel.setLayout(new java.awt.GridLayout(0, 2)); jScrollPane2.setViewportView(optionsPanel); - jTabbedPane3.addTab(org.openide.util.NbBundle.getMessage(MaterialEditorTopComponent.class, "MaterialEditorTopComponent.jScrollPane2.TabConstraints.tabTitle_1"), jScrollPane2); // NOI18N + optionsPane.addTab(org.openide.util.NbBundle.getMessage(MaterialEditorTopComponent.class, "MaterialEditorTopComponent.jScrollPane2.TabConstraints.tabTitle_1"), jScrollPane2); // NOI18N jToolBar2.setRollover(true); @@ -274,14 +299,14 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addGroup(editorPanelLayout.createSequentialGroup() .addGroup(editorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(materialPreviewWidget1, javax.swing.GroupLayout.PREFERRED_SIZE, 255, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jTabbedPane3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(optionsPane, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(editorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(editorPanelLayout.createSequentialGroup() - .addComponent(texturesAndColorsPane, javax.swing.GroupLayout.DEFAULT_SIZE, 496, Short.MAX_VALUE) + .addComponent(texturesAndColorsPane, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(additionalRenderStatePane, javax.swing.GroupLayout.DEFAULT_SIZE, 329, Short.MAX_VALUE) - .addContainerGap(12, Short.MAX_VALUE)) + .addComponent(additionalRenderStatePane, javax.swing.GroupLayout.DEFAULT_SIZE, 331, Short.MAX_VALUE) + .addContainerGap(16, Short.MAX_VALUE)) .addGroup(editorPanelLayout.createSequentialGroup() .addGroup(editorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jToolBar3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) @@ -304,7 +329,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addComponent(materialPreviewWidget1, javax.swing.GroupLayout.PREFERRED_SIZE, 225, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(editorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jTabbedPane3, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(optionsPane, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(texturesAndColorsPane, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(additionalRenderStatePane, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) ); @@ -368,12 +393,12 @@ private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FI private javax.swing.JScrollPane jScrollPane3; private javax.swing.JScrollPane jScrollPane4; private javax.swing.JTabbedPane jTabbedPane1; - private javax.swing.JTabbedPane jTabbedPane3; private javax.swing.JTextArea jTextArea1; private javax.swing.JTextField jTextField1; private javax.swing.JToolBar jToolBar2; private javax.swing.JToolBar jToolBar3; private com.jme3.gde.materials.multiview.widgets.MaterialPreviewWidget materialPreviewWidget1; + private javax.swing.JTabbedPane optionsPane; private javax.swing.JPanel optionsPanel; private javax.swing.JPanel statesPanel; private javax.swing.JPanel texturePanel; From 98e8dbe6378abf059863c99b52228c200dc6b7ba Mon Sep 17 00:00:00 2001 From: rickard Date: Mon, 25 Sep 2023 16:38:21 +0200 Subject: [PATCH 003/130] This adds samplerCube and sampler2DArray to the shadernode definitions drop down --- .../gde/shadernodedefinition/wizard/SNDefVisualPanel2.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel2.java b/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel2.java index de1dbf58f..12e28003f 100644 --- a/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel2.java +++ b/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel2.java @@ -46,7 +46,8 @@ public final class SNDefVisualPanel2 extends JPanel { private final Object[] emptyObj = {"float", "", ""}; private final String type; private final String[] varTypes = new String[]{"bool", "int", "float", "vec2", - "vec3", "vec4", "sampler", "sampler2D", "sampler3D", "mat3", "mat4"}; + "vec3", "vec4", "sampler", "sampler2D", "sampler3D", "mat3", "mat4", + "samplerCube", "sampler2DArray"}; /** * Creates new form SNDefVisualPanel2 From 98996b01af40969dee77f4d895ead4b1b130ccc4 Mon Sep 17 00:00:00 2001 From: rickard Date: Mon, 25 Sep 2023 21:29:42 +0200 Subject: [PATCH 004/130] add back unit test that has gone missing --- jme3-materialeditor/nbproject/project.xml | 9 +++ .../multiview/widgets/TexturePanelTest.java | 67 +++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 jme3-materialeditor/test/unit/src/com/jme3/gde/materials/multiview/widgets/TexturePanelTest.java diff --git a/jme3-materialeditor/nbproject/project.xml b/jme3-materialeditor/nbproject/project.xml index f607a7cce..7774d4e3d 100644 --- a/jme3-materialeditor/nbproject/project.xml +++ b/jme3-materialeditor/nbproject/project.xml @@ -225,6 +225,15 @@ + + + unit + + org.netbeans.libs.junit5 + + + + com.jme3.gde.materials com.jme3.gde.materials.multiview diff --git a/jme3-materialeditor/test/unit/src/com/jme3/gde/materials/multiview/widgets/TexturePanelTest.java b/jme3-materialeditor/test/unit/src/com/jme3/gde/materials/multiview/widgets/TexturePanelTest.java new file mode 100644 index 000000000..6c2b380cb --- /dev/null +++ b/jme3-materialeditor/test/unit/src/com/jme3/gde/materials/multiview/widgets/TexturePanelTest.java @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2009-2023 jMonkeyEngine + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'jMonkeyEngine' nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package com.jme3.gde.materials.multiview.widgets; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; + + +/** + * + * @author rickard + */ +public class TexturePanelTest { + + public TexturePanelTest() { + } + + @Test + public void testExtractTextureName() { + TexturePanel texturePanel = new TexturePanel(); + String textureName = "\"simple_name.jpg\""; + String extractedName = texturePanel.extractTextureName(textureName); + assertEquals("simple_name.jpg", extractedName); + + String textureNameWithModifier = "Flip Repeat \"simple_name.jpg\""; + extractedName = texturePanel.extractTextureName(textureNameWithModifier); + assertEquals("simple_name.jpg", extractedName); + + String textureNameWithSpaces = "\"texture name with spaces.jpg\""; + extractedName = texturePanel.extractTextureName(textureNameWithSpaces); + assertEquals("texture name with spaces.jpg", extractedName); + + String textureNameWithSpaceAndModifier = "Flip Repeat \"texture name with spaces.jpg\""; + extractedName = texturePanel.extractTextureName(textureNameWithSpaceAndModifier); + assertEquals("texture name with spaces.jpg", extractedName); + } + +} From 9d78e58e4ae6c11081e4e2cb58e004c68a01bfe6 Mon Sep 17 00:00:00 2001 From: Stephen Gold Date: Sat, 30 Sep 2023 11:04:16 -0700 Subject: [PATCH 005/130] update version numbers for libraries in com.github.stephengold --- build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index c86156d0c..38ee23480 100644 --- a/build.gradle +++ b/build.gradle @@ -44,7 +44,7 @@ dependencies { corelibs dep("org.jmonkeyengine:jme3-lwjgl:$jmeVersion-$jmeVersionTag", true, true) corelibs dep("org.jmonkeyengine:jme3-effects:$jmeVersion-$jmeVersionTag", true, true) corelibs dep("org.jmonkeyengine:jme3-blender:3.3.2-stable", false, false) // Pin Pointed until jme3-blender has a dedicated release or support is phased out. - optlibs dep("com.github.stephengold:Minie:7.1.0", false, false) // replacement for bullet-native + optlibs dep("com.github.stephengold:Minie:7.7.0", false, false) // replacement for bullet-native corelibs dep(fileTree("lib"), false, false) corelibs dep("org.jmonkeyengine:jme3-jogg:$jmeVersion-$jmeVersionTag", true, true) @@ -58,8 +58,8 @@ dependencies { optlibs dep("org.jmonkeyengine:jme3-ios:$jmeVersion-$jmeVersionTag", true, true) optlibs dep("org.jmonkeyengine:jme3-android-native:$jmeVersion-$jmeVersionTag", true, true) optlibs dep("org.jmonkeyengine:jme3-lwjgl3:$jmeVersion-$jmeVersionTag", true, true) - optlibs dep("com.github.stephengold:Heart:8.2.0", true, true) - optlibs dep("com.github.stephengold:Wes:0.7.2", true, true) + optlibs dep("com.github.stephengold:Heart:8.7.0", true, true) + optlibs dep("com.github.stephengold:Wes:0.7.5", true, true) testdatalibs dep("org.jmonkeyengine:jme3-testdata:$jmeVersion-$jmeVersionTag", false, false) examplelibs dep("org.jmonkeyengine:jme3-examples:$jmeVersion-$jmeVersionTag", false, true) } From c59cb3a0c8b2b6b88b4e437a464ea1fe89d41822 Mon Sep 17 00:00:00 2001 From: Stephen Gold Date: Sat, 30 Sep 2023 11:29:09 -0700 Subject: [PATCH 006/130] add 5 optional libraries from com.simsilica --- build.gradle | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index c86156d0c..0889371d6 100644 --- a/build.gradle +++ b/build.gradle @@ -53,6 +53,12 @@ dependencies { corelibs dep("org.jmonkeyengine:jme3-plugins:$jmeVersion-$jmeVersionTag", true, true) corelibs dep("org.jmonkeyengine:jme3-terrain:$jmeVersion-$jmeVersionTag", true, true) + optlibs dep("com.simsilica:lemur:1.16.0", true, true) + optlibs dep("com.simsilica:lemur-props:1.2.0", true, true) + optlibs dep("com.simsilica:sio2:1.8.0", true, true) + optlibs dep("com.simsilica:sim-math:1.6.0", true, true) + optlibs dep("com.simsilica:zay-es:1.5.0", true, true) + optlibs dep("org.jmonkeyengine:jme3-jbullet:$jmeVersion-$jmeVersionTag", true, true) optlibs dep("org.jmonkeyengine:jme3-android:$jmeVersion-$jmeVersionTag", true, true) optlibs dep("org.jmonkeyengine:jme3-ios:$jmeVersion-$jmeVersionTag", true, true) @@ -609,14 +615,14 @@ task cleanSdk() { task extractPlatformIndependent(type: Copy) { from zipTree('dist/jmonkeyplatform.zip') into "dist/temp/" - + exclude("jmonkeyplatform/etc/jmonkeyplatform.conf") } task patchPlatformIndependent(type: Copy, dependsOn: extractPlatformIndependent) { from zipTree('dist/jmonkeyplatform.zip') into "dist/temp/" - + include("jmonkeyplatform/etc/jmonkeyplatform.conf") filter { String line -> From a2427c04d28bda07a1c1d9e8bc4b3737102c35c6 Mon Sep 17 00:00:00 2001 From: Toni Helenius Date: Thu, 9 Nov 2023 22:46:59 +0200 Subject: [PATCH 007/130] Gradle 8.4 wrapper --- .../templates/GradleDesktopGameProject.zip | Bin 64288 -> 64498 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/jme3-templates/src/com/jme3/gde/templates/GradleDesktopGameProject.zip b/jme3-templates/src/com/jme3/gde/templates/GradleDesktopGameProject.zip index 58044a5dcef81ce457ed55045157e6f70f6b335d..44204b4c323d3a958a90eccd54b0a455a43026e7 100644 GIT binary patch delta 55601 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 0shtEA0F z$e-xW@i;Ejv=^BV`1+>~tHS35s>MWZq;Onw54vs9+P~Y?oyq%aJt{GQf(qGm) zuW})^Qqa-0Z+X{R8!lW5zBM;po#eo%b}`fl>%%mYqV@hU@BKiDNtCv?PlTO$J&yTI zo%N!0em3y#we?>DXrTGBWd*^1i5`K!9tW(vLXEejxkM!7J*AbZ$f*EcZv?v3t9@Ds z0QgP{j)VvJt^jVj4@~RcPX|zWFmc<>h~&{LE#bLPLWliYPd}mZZ;q%6Wv$y~qOxuP zSm^B%ZyCX?&o~5-L_h(Q$qm3T!ol=7TwzdR8=A*(Y`WRa5HHnr1e`yAdIi>HxduUB zDxpOz8#hYG)shzxRQ^1IX!ywd3BbhaJqWwm>kTvt!nyu7LJ?8{oz#| zs{ay>hinwbci@!jF3Od{!~UUL+7&Tdk(_3}Cdnl2=h?VvDy?&MoLF*<9Q#C5>hEF| zKb>BsZf~9SyoODgh&RZ8R*~nk@an?%(%yT}{ZAE90f3x;%|TS`f7OwYNKu4tHZ;jM zs~EOZxX+zIc^roTXkGJ$aAW*4`nq9V#uD_vPye<5`g0AW3mB2HR z2%Xrsa9-C6hp!*yikj`~nD&XEuQizeg9UyjYCOp)i3N4lP!XMiW;BXf5@??LWw#7N zWUDWnZ3#Gk#-l#X=N4RWf+=^bM#Rc}z)b$4olrn_bD7m)Hjr%VbJIl|M)A_ z)4!xxsIV=(<)I)TI^o~HYyY1|6}5QxBvL?-vx~Z`$=^=@_38VxPLwcJ(O#A4g=&~p zRM0L$v2&RlV9;y6iX}y0A&AOeZZsO4h%HgCNczBkWOr--k_eJBc`m+6i*y>d4=~Yd z#KU;Y92w1Y=-?CJ^!9sw{R8_KnHCin<+O~rh8Q9Rh6&z{3EVv|nC~2MtOPomJsOs1 z2ctbTk!*{6fHIo?W6Yx*Gjtx(n(W%3BnX^2#u%qy7)5nc$*eO%qp7Hq92IENJLIK5 zr{Nrb4`^IidUimR&t$HRxUXby#`MwxSfK|NW>q$r2qw&U#y3#kMrIl%AZwmRh&APm zI655{mf~@isj_LiPfN;t+-NVNm!e?BML^Jr;sqgTbm#K^Ofwxp&{ijb7f-0FOs@kJ zH7aT@@M0iU-YvUH$|cko-q3v7T>w$B+O!ORmH|t2Sqxc@oGlE&ibTg|l(Z~WNHHCm z_Dh(h@snzjOTdlwM)VKyDWm&&?RLHh(E~^s2k|iDwfz+ePCvuK$!Wl%;Lpqlcm
  • |8zo>g|%PgPpvr2OT7 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 Date: Thu, 9 Nov 2023 22:47:49 +0200 Subject: [PATCH 008/130] Gradle build improvements --- .../gde/templates/files/freemarker/build.gradle.ftl | 13 +++++++++---- .../GradleDesktopGameWizardIterator.java | 1 + 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/jme3-templates/src/com/jme3/gde/templates/files/freemarker/build.gradle.ftl b/jme3-templates/src/com/jme3/gde/templates/files/freemarker/build.gradle.ftl index 73603c3c3..cd3af9e34 100644 --- a/jme3-templates/src/com/jme3/gde/templates/files/freemarker/build.gradle.ftl +++ b/jme3-templates/src/com/jme3/gde/templates/files/freemarker/build.gradle.ftl @@ -7,11 +7,16 @@ plugins { group 'com.mygame' version '1.0' -mainClassName = "com.mygame.Main" +application { + applicationName = '${name}' + mainClass = 'com.mygame.Main' + if (System.getProperty("os.name").toLowerCase().contains("mac")) { + applicationDefaultJvmArgs = ['-XstartOnFirstThread'] + } +} repositories { mavenCentral() - jcenter() maven { url 'https://jitpack.io' } } @@ -99,7 +104,7 @@ dependencies { jar { manifest { - attributes 'Main-Class': "$mainClassName" + attributes 'Main-Class': application.mainClass } } @@ -110,5 +115,5 @@ java { } wrapper { - gradleVersion = '7.6' + gradleVersion = '8.4' } \ No newline at end of file diff --git a/jme3-templates/src/com/jme3/gde/templates/gradledesktop/GradleDesktopGameWizardIterator.java b/jme3-templates/src/com/jme3/gde/templates/gradledesktop/GradleDesktopGameWizardIterator.java index bb18311b9..e0f204379 100644 --- a/jme3-templates/src/com/jme3/gde/templates/gradledesktop/GradleDesktopGameWizardIterator.java +++ b/jme3-templates/src/com/jme3/gde/templates/gradledesktop/GradleDesktopGameWizardIterator.java @@ -132,6 +132,7 @@ private String[] createSteps() { // Create build.gradle from template File gradleBuildFile = new File(dirF, "build.gradle"); Map buildFileBindings = new HashMap<>(); + buildFileBindings.put("name", wiz.getProperty("name")); buildFileBindings.put("jmeVersion", wiz.getProperty("jmeVersion")); buildFileBindings.put("lwjglLibrary", wiz.getProperty("lwjglLibrary")); buildFileBindings.put("guiLibrary", wiz.getProperty("guiLibrary")); From cce6e4b182f7d75e87d9a87a0a389cf662dad5e8 Mon Sep 17 00:00:00 2001 From: Toni Helenius Date: Sat, 11 Nov 2023 14:41:36 +0200 Subject: [PATCH 009/130] Added comments for Mac and don't add AWT dialogs on mac --- .../jme3/gde/templates/files/freemarker/build.gradle.ftl | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/jme3-templates/src/com/jme3/gde/templates/files/freemarker/build.gradle.ftl b/jme3-templates/src/com/jme3/gde/templates/files/freemarker/build.gradle.ftl index cd3af9e34..5a4c893cb 100644 --- a/jme3-templates/src/com/jme3/gde/templates/files/freemarker/build.gradle.ftl +++ b/jme3-templates/src/com/jme3/gde/templates/files/freemarker/build.gradle.ftl @@ -10,6 +10,7 @@ version '1.0' application { applicationName = '${name}' mainClass = 'com.mygame.Main' + // Mac OS with LWJGL 3 needs to be started with this JVM argument if (System.getProperty("os.name").toLowerCase().contains("mac")) { applicationDefaultJvmArgs = ['-XstartOnFirstThread'] } @@ -50,7 +51,10 @@ dependencies { implementation "org.jmonkeyengine:jme3-core:$jmeVer" implementation "org.jmonkeyengine:jme3-desktop:$jmeVer" <#if jmeVersion.versionInfo.major gt 3 || (jmeVersion.versionInfo.major == 3 && jmeVersion.versionInfo.minor gte 6 )> - implementation "org.jmonkeyengine:jme3-awt-dialogs:$jmeVer" + // Mac OS with LWJGL 3 doesn't allow AWT/Swing + if (!System.getProperty("os.name").toLowerCase().contains("mac")) { + implementation "org.jmonkeyengine:jme3-awt-dialogs:$jmeVer" + } <#if lwjglLibrary.isCoreJmeLibrary == true> implementation "${lwjglLibrary.groupId}:${lwjglLibrary.artifactId}:$jmeVer" From 75aea92ac3590dcfc3ac04fa75dde629df067386 Mon Sep 17 00:00:00 2001 From: Toni Helenius Date: Sat, 11 Nov 2023 14:44:35 +0200 Subject: [PATCH 010/130] Fix Shaderblow tag (jitpack) --- .../gde/templates/gradledesktop/options/AdditionalLibrary.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jme3-templates/src/com/jme3/gde/templates/gradledesktop/options/AdditionalLibrary.java b/jme3-templates/src/com/jme3/gde/templates/gradledesktop/options/AdditionalLibrary.java index 94d1fffcc..690b56405 100644 --- a/jme3-templates/src/com/jme3/gde/templates/gradledesktop/options/AdditionalLibrary.java +++ b/jme3-templates/src/com/jme3/gde/templates/gradledesktop/options/AdditionalLibrary.java @@ -99,7 +99,7 @@ public enum AdditionalLibrary implements TemplateLibrary { SHADERBLOW_EX("ShaderBlowEx", NbBundle.getMessage(AdditionalLibrary.class, "additionalLibrary.shaderblowex.description"), "com.github.polincdev", "ShaderBlowEx", - "master-SNAPSHOT", false), + "-SNAPSHOT", false), SIO2("SiO2", NbBundle.getMessage(AdditionalLibrary.class, "additionalLibrary.sio2.description"), "com.simsilica", "sio2", From 4f261b2ad6b0fb1d51684e8861a6acbbee53eaa6 Mon Sep 17 00:00:00 2001 From: rickard Date: Wed, 15 Nov 2023 21:30:22 +0100 Subject: [PATCH 011/130] Issue #534 fix wobbling GUI when number of decimals change on sliders --- .../CameraPositionTrackerAppState.java | 52 ++++- .../SceneComposerTopComponent.form | 53 ++++-- .../SceneComposerTopComponent.java | 178 +++++++++++------- .../gde/scenecomposer/SceneComposerUtil.java | 55 ++++++ 4 files changed, 247 insertions(+), 91 deletions(-) create mode 100644 jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerUtil.java diff --git a/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/CameraPositionTrackerAppState.java b/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/CameraPositionTrackerAppState.java index d804e1fc1..c342544bc 100644 --- a/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/CameraPositionTrackerAppState.java +++ b/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/CameraPositionTrackerAppState.java @@ -1,8 +1,41 @@ +/* + * Copyright (c) 2009-2023 jMonkeyEngine + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'jMonkeyEngine' nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ package com.jme3.gde.scenecomposer; import com.jme3.app.Application; import com.jme3.app.state.BaseAppState; +import com.jme3.math.Vector3f; import com.jme3.renderer.Camera; +import java.text.DecimalFormat; import javax.swing.JLabel; import javax.swing.SwingUtilities; @@ -12,8 +45,11 @@ * @author MeFisto94 */ public class CameraPositionTrackerAppState extends BaseAppState { - JLabel lblPos; - JLabel lblLookAt; + private final JLabel lblPos; + private final JLabel lblLookAt; + + private final Vector3f position = new Vector3f(); + private final Vector3f direction = new Vector3f(); public CameraPositionTrackerAppState(JLabel lblPos, JLabel lblLookAt) { this.lblPos = lblPos; @@ -37,12 +73,12 @@ public void update(float tpf) { super.update(tpf); final Camera cam = getApplication().getCamera(); - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - lblPos.setText(cam.getLocation().toString()); - lblLookAt.setText(cam.getDirection().toString()); - } + SwingUtilities.invokeLater(() -> { + position.set(cam.getLocation()); + direction.set(cam.getDirection()); + lblPos.setText(SceneComposerUtil.trimDecimals(position)); + lblLookAt.setText(SceneComposerUtil.trimDecimals(direction)); }); } + } diff --git a/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.form b/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.form index d2fbde032..d97df7ec7 100644 --- a/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.form +++ b/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.form @@ -28,10 +28,10 @@ - - + + - + @@ -74,13 +74,13 @@ - + - - + + - + @@ -139,12 +139,12 @@ - + - + @@ -227,17 +227,35 @@ - + - + + + + + + + + + + - + - + + + + + + + + + + @@ -253,6 +271,15 @@ + + + + + + + + + diff --git a/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.java b/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.java index 8b04e9c38..1b827c890 100644 --- a/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.java +++ b/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.java @@ -1,6 +1,33 @@ /* - * To change this template, choose Tools | Templates - * and open the template in the editor. + * Copyright (c) 2009-2023 jMonkeyEngine + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'jMonkeyEngine' nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package com.jme3.gde.scenecomposer; @@ -112,8 +139,8 @@ private void initComponents() { jLabel8 = new javax.swing.JLabel(); jLabel9 = new javax.swing.JLabel(); jLabel10 = new javax.swing.JLabel(); - jLabel11 = new javax.swing.JLabel(); - jLabel12 = new javax.swing.JLabel(); + cameraPositionLabel = new javax.swing.JLabel(); + cameraDirectionLabel = new javax.swing.JLabel(); cursorPositionHeader = new javax.swing.JLabel(); cursorPositionLabel = new javax.swing.JLabel(); jLabel13 = new javax.swing.JLabel(); @@ -211,13 +238,22 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { org.openide.awt.Mnemonics.setLocalizedText(jLabel10, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jLabel10.text")); // NOI18N - org.openide.awt.Mnemonics.setLocalizedText(jLabel11, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jLabel11.text")); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(cameraPositionLabel, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.cameraPositionLabel.text")); // NOI18N + cameraPositionLabel.setMaximumSize(new java.awt.Dimension(170, 17)); + cameraPositionLabel.setMinimumSize(new java.awt.Dimension(170, 17)); + cameraPositionLabel.setPreferredSize(new java.awt.Dimension(170, 17)); - org.openide.awt.Mnemonics.setLocalizedText(jLabel12, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jLabel12.text")); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(cameraDirectionLabel, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.cameraDirectionLabel.text")); // NOI18N + cameraDirectionLabel.setMaximumSize(new java.awt.Dimension(170, 17)); + cameraDirectionLabel.setMinimumSize(new java.awt.Dimension(170, 17)); + cameraDirectionLabel.setPreferredSize(new java.awt.Dimension(170, 17)); org.openide.awt.Mnemonics.setLocalizedText(cursorPositionHeader, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.cursorPositionHeader.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(cursorPositionLabel, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.cursorPositionLabel.text")); // NOI18N + cursorPositionLabel.setMaximumSize(new java.awt.Dimension(170, 17)); + cursorPositionLabel.setMinimumSize(new java.awt.Dimension(170, 17)); + cursorPositionLabel.setPreferredSize(new java.awt.Dimension(170, 17)); org.openide.awt.Mnemonics.setLocalizedText(jLabel13, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jLabel13.text")); // NOI18N @@ -246,12 +282,12 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { .addComponent(jLabel9) .addComponent(jLabel10) .addComponent(cursorPositionHeader)) - .addGap(34, 34, 34) + .addGap(18, 18, 18) .addGroup(cameraPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(cursorPositionLabel) - .addComponent(jLabel12) - .addComponent(jLabel11)) - .addContainerGap(134, Short.MAX_VALUE)) + .addComponent(cursorPositionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(cameraDirectionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(cameraPositionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGroup(cameraPanelLayout.createSequentialGroup() .addGroup(cameraPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel7) @@ -296,15 +332,15 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(cameraPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel9) - .addComponent(jLabel11)) + .addComponent(cameraPositionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(cameraPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel10) - .addComponent(jLabel12)) + .addComponent(cameraDirectionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(8, 8, 8) .addGroup(cameraPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(cursorPositionHeader) - .addComponent(cursorPositionLabel))) + .addComponent(cursorPositionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) ); jToolBar1.setRollover(true); @@ -759,9 +795,9 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(sceneInfoPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(cameraPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addComponent(jToolBar1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(cameraPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addContainerGap()) + .addComponent(jToolBar1, javax.swing.GroupLayout.DEFAULT_SIZE, 1231, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -897,42 +933,30 @@ private void transformationTypeComboBoxActionPerformed(java.awt.event.ActionEven toolController.setTransformationType(transformationTypeComboBox.getItemAt(transformationTypeComboBox.getSelectedIndex())); }//GEN-LAST:event_transformationTypeComboBoxActionPerformed - private void jSlider1StateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jSlider1StateChanged - // This is called, when the slider of the near plane has been dragged. - float near = ((float)jSlider1.getValue() / 1000f); - - // Prevent an endless loop of state changes - if (!FastMath.approximateEquals((Float)(jSpinner1.getValue()), near)) { - jSpinner1.setValue(near); - } - }//GEN-LAST:event_jSlider1StateChanged - - private void jSlider2StateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jSlider2StateChanged - // This is called, when the slider of the far plane has been dragged. - float far = jSlider2.getValue(); - - // Prevent an endless loop of state changes - if (!FastMath.approximateEquals((Float)(jSpinner2.getValue()), far)) { - jSpinner2.setValue(far); - } - }//GEN-LAST:event_jSlider2StateChanged - - private void jSpinner1StateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jSpinner1StateChanged + private void fovSpinnerStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_fovSpinnerStateChanged // This is called, when the spinner of the near plane has been changed. - float near = ((float)jSlider1.getValue() / 1000f); - float spin = (Float)jSpinner1.getValue(); - float fov = (int) fovSpinner.getValue(); + int fov = (int) fovSpinner.getValue(); + // Prevent an endless loop of state changes and don't change the slider when the spinner // has gone out of range, since this would lead to the slider's StateChanged overwriting the spinner again. // but we want the spinner to be a free-form field - - if (spin <= 2000f && spin >= 100f && !FastMath.approximateEquals((Float)(jSpinner1.getValue()), near)) { - jSlider1.setValue((int)((Float)(jSpinner1.getValue()) * 1000f)); + + if (fov <= 360 && fov >= 1 && fovSlider.getValue() != fov) { + fovSlider.setValue((int) fovSpinner.getValue()); } - + final Camera cam = SceneApplication.getApplication().getCamera(); - cam.setFrustumPerspective(fov, (float)cam.getWidth() / cam.getHeight(), spin, cam.getFrustumFar()); - }//GEN-LAST:event_jSpinner1StateChanged + cam.setFrustumPerspective(fov, (float)cam.getWidth() / cam.getHeight(), cam.getFrustumNear(), cam.getFrustumFar()); + }//GEN-LAST:event_fovSpinnerStateChanged + + private void fovSliderStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_fovSliderStateChanged + int fov = (int) fovSlider.getValue(); + + // Prevent an endless loop of state changes + if ((int) fovSpinner.getValue() != fov) { + fovSpinner.setValue((int) fov); + } + }//GEN-LAST:event_fovSliderStateChanged private void jSpinner2StateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jSpinner2StateChanged // Prevent an endless loop of state changes and don't change the slider when the spinner @@ -943,39 +967,53 @@ private void jSpinner2StateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIR if (spin <= 3000f && spin >= 5f && !FastMath.approximateEquals(spin, (float)jSlider2.getValue())) { jSlider2.setValue((int)spin); } - + final Camera cam = SceneApplication.getApplication().getCamera(); cam.setFrustumPerspective(fov, (float)cam.getWidth() / cam.getHeight(), cam.getFrustumNear(), spin); }//GEN-LAST:event_jSpinner2StateChanged - private void fovSliderStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_fovSliderStateChanged - int fov = (int) fovSlider.getValue(); - - // Prevent an endless loop of state changes - if ((int) fovSpinner.getValue() != fov) { - fovSpinner.setValue((int) fov); - } - }//GEN-LAST:event_fovSliderStateChanged - - private void fovSpinnerStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_fovSpinnerStateChanged + private void jSpinner1StateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jSpinner1StateChanged // This is called, when the spinner of the near plane has been changed. - int fov = (int) fovSpinner.getValue(); - + float near = ((float)jSlider1.getValue() / 1000f); + float spin = (Float)jSpinner1.getValue(); + float fov = (int) fovSpinner.getValue(); // Prevent an endless loop of state changes and don't change the slider when the spinner // has gone out of range, since this would lead to the slider's StateChanged overwriting the spinner again. // but we want the spinner to be a free-form field - - if (fov <= 360 && fov >= 1 && fovSlider.getValue() != fov) { - fovSlider.setValue((int) fovSpinner.getValue()); + + if (spin <= 2000f && spin >= 100f && !FastMath.approximateEquals((Float)(jSpinner1.getValue()), near)) { + jSlider1.setValue((int)((Float)(jSpinner1.getValue()) * 1000f)); } - + final Camera cam = SceneApplication.getApplication().getCamera(); - cam.setFrustumPerspective(fov, (float)cam.getWidth() / cam.getHeight(), cam.getFrustumNear(), cam.getFrustumFar()); - }//GEN-LAST:event_fovSpinnerStateChanged + cam.setFrustumPerspective(fov, (float)cam.getWidth() / cam.getHeight(), spin, cam.getFrustumFar()); + }//GEN-LAST:event_jSpinner1StateChanged + + private void jSlider2StateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jSlider2StateChanged + // This is called, when the slider of the far plane has been dragged. + float far = jSlider2.getValue(); + + // Prevent an endless loop of state changes + if (!FastMath.approximateEquals((Float)(jSpinner2.getValue()), far)) { + jSpinner2.setValue(far); + } + }//GEN-LAST:event_jSlider2StateChanged + + private void jSlider1StateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jSlider1StateChanged + // This is called, when the slider of the near plane has been dragged. + float near = ((float)jSlider1.getValue() / 1000f); + + // Prevent an endless loop of state changes + if (!FastMath.approximateEquals((Float)(jSpinner1.getValue()), near)) { + jSpinner1.setValue(near); + } + }//GEN-LAST:event_jSlider1StateChanged // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton camToCursorSelectionButton; + private javax.swing.JLabel cameraDirectionLabel; private javax.swing.JPanel cameraPanel; + private javax.swing.JLabel cameraPositionLabel; private javax.swing.JButton createPhysicsMeshButton; private javax.swing.JLabel cursorPositionHeader; private javax.swing.JLabel cursorPositionLabel; @@ -991,8 +1029,6 @@ private void fovSpinnerStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FI private javax.swing.JCheckBox jCheckBox1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel10; - private javax.swing.JLabel jLabel11; - private javax.swing.JLabel jLabel12; private javax.swing.JLabel jLabel13; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; @@ -1372,7 +1408,7 @@ public void sceneOpened(SceneRequest request) { camController.setMaster(this); camController.enable(); - cameraPositionTrackerAppState = new CameraPositionTrackerAppState(jLabel11, jLabel12); + cameraPositionTrackerAppState = new CameraPositionTrackerAppState(cameraPositionLabel, cameraDirectionLabel); SceneApplication.getApplication().getStateManager().attach(cameraPositionTrackerAppState); toolController.createOnTopToolNode(); @@ -1474,8 +1510,10 @@ public SceneComposerToolController getToolController() { @Override public void onSetCursorLocation(final Vector3f location) { + SwingUtilities.invokeLater(() -> { - cursorPositionLabel.setText(location.toString()); + cursorPositionLabel.setText( + SceneComposerUtil.trimDecimals(location)); }); } } diff --git a/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerUtil.java b/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerUtil.java new file mode 100644 index 000000000..a9794fa1f --- /dev/null +++ b/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerUtil.java @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2009-2023 jMonkeyEngine + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'jMonkeyEngine' nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package com.jme3.gde.scenecomposer; + +import com.jme3.math.Vector3f; + +/** + * + * @author rickard + */ + +class SceneComposerUtil { + + /** + * Convenience method to trim decimals on a Vector3f to max 4 + * + * @param vector3f + * @return trimmed Vector3f in String format + */ + static String trimDecimals(Vector3f vector3f) { + return String.format("%s, %s, %s", + String.format("%.4f", vector3f.x), + String.format("%.4f", vector3f.y), + String.format("%.4f", vector3f.z)); + } +} From 846ced2f067415a0cbbfba94c4472855e73d13e7 Mon Sep 17 00:00:00 2001 From: rickard Date: Wed, 15 Nov 2023 21:44:17 +0100 Subject: [PATCH 012/130] Updated label names --- .../src/com/jme3/gde/scenecomposer/Bundle.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/Bundle.properties b/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/Bundle.properties index 4a491be51..98860b313 100644 --- a/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/Bundle.properties +++ b/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/Bundle.properties @@ -62,8 +62,8 @@ SceneComposerTopComponent.jLabel7.text=Near Plane SceneComposerTopComponent.jLabel8.text=Far Plane SceneComposerTopComponent.jLabel9.text=Camera Position: SceneComposerTopComponent.jLabel10.text=Camera Look Direction: -SceneComposerTopComponent.jLabel11.text=(NaN, NaN, NaN) -SceneComposerTopComponent.jLabel12.text=(NaN, NaN, NaN) +SceneComposerTopComponent.cameraPositionLabel.text=(NaN, NaN, NaN) +SceneComposerTopComponent.cameraDirectionLabel.text=(NaN, NaN, NaN) SceneComposerTopComponent.cursorPositionLabel.text=(NaN, NaN, NaN) SceneComposerTopComponent.cursorPositionHeader.text=Cursor Position: SceneComposerTopComponent.cameraPanel.AccessibleContext.accessibleName=Camera From ccd02d23a322e5e7dfc3754665e099a48ae7046c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rickard=20Ed=C3=A9n?= Date: Fri, 24 Nov 2023 21:30:48 +0100 Subject: [PATCH 013/130] Replacing bullet-native with Minie (#547) * Replacing bullet-native with Minie Removing blender module (will probably have to revert) Removing xbuf,blender dependency * Add back blender module, but strip it from blender related code. * setting gravity working. simulating physics working * blender begone * didn't commit build file with Heart change found more blender references * remove printout from build file --- build.gradle | 33 +- jme3-blender/nbproject/project.xml | 6 +- .../BlenderAssetManagerConfigurator.java | 51 - .../jme3/gde/blender/BlenderDataObject.java | 72 - .../src/com/jme3/gde/blender/BlenderTool.java | 514 ----- .../com/jme3/gde/blender/Bundle.properties | 6 +- .../gde/blender/ConvertToBlendAction.java | 85 - .../jme3/gde/blender/ConvertToJ3OAction.java | 117 -- .../com/jme3/gde/blender/OpenInBlender.java | 43 - .../com/jme3/gde/blender/XbufDataObject.java | 99 - .../src/com/jme3/gde/blender/blender.svg | 13 - .../AbstractBlenderImportDataObject.java | 215 -- .../filetypes/Blender3dsDataObject.java | 88 - .../filetypes/BlenderDaeDataObject.java | 92 - .../filetypes/BlenderFbxDataObject.java | 93 - .../com/jme3/gde/blender/package-info.java | 8 - .../src/com/jme3/gde/blender/tpl_anim.blend | Bin 623040 -> 0 bytes .../src/com/jme3/gde/blender/tpl_box.blend | Bin 449600 -> 0 bytes .../src/com/jme3/gde/blender/xbuf.svg | 13 - .../modules/ext/jme3_physicsloader-0.5.jar | Bin 0 -> 24593 bytes .../gde/core/errorreport/ExceptionUtils.java | 34 +- .../scene/controller/SceneToolController.java | 2 +- .../nodes/JmeRigidBodyControl.java | 32 +- .../nodes/JmeVehicleControl.java | 28 +- .../nodes/editor/GravityPropertyEditor.java | 56 + .../nbproject/project.xml | 2 +- .../executables/desktop-deployment-data.zip | Bin 424399 -> 424399 bytes .../gde/docs/jme3/advanced/3d_models.html | 51 +- .../jme3/gde/docs/jme3/external/blender.html | 610 ------ .../gde/docs/sdk/3ds_to_blender_to_jmp.html | 65 - .../src/com/jme3/gde/docs/sdk/blender.html | 362 ---- .../release/libs/applet-loader.zip | Bin 2757701 -> 2757701 bytes .../vehiclecreator/SuspensionSettings.java | 4 +- .../VehicleEditorController.java | 8 +- nbi/stub/build.xml | 25 - .../ext/components/products/blender/build.xml | 74 - .../products/blender/data/Bundle.properties | 42 - .../components/products/blender/data/icon.png | Bin 821 -> 0 bytes .../products/blender/data/icon48.png | Bin 1944 -> 0 bytes .../components/products/blender/manifest.mf | 1 - .../products/blender/nbproject/build-impl.xml | 1788 ----------------- .../blender/nbproject/genfiles.properties | 8 - .../blender/nbproject/project.properties | 85 - .../products/blender/nbproject/project.xml | 26 - .../src/org/mycompany/Bundle.properties | 0 .../src/org/mycompany/ConfigurationLogic.java | 99 - .../blender/src/org/mycompany/wizard.xml | 43 - .../mycompany/wizard/panels/Bundle.properties | 51 - .../wizard/panels/ShortcutCreationPanel.java | 182 -- nbi/stub/ext/infra/build/products/README | 1 - .../blender-linux-x64/build.properties | 161 -- .../products/blender-linux-x64/build.xml | 101 - .../products/blender-macosx/build.properties | 162 -- .../build/products/blender-macosx/build.xml | 101 - .../blender-windows-x64/build.properties | 160 -- .../products/blender-windows-x64/build.xml | 98 - .../blender-windows-x86/build.properties | 161 -- .../products/blender-windows-x86/build.xml | 98 - 58 files changed, 184 insertions(+), 6085 deletions(-) delete mode 100644 jme3-blender/src/com/jme3/gde/blender/BlenderAssetManagerConfigurator.java delete mode 100644 jme3-blender/src/com/jme3/gde/blender/BlenderDataObject.java delete mode 100644 jme3-blender/src/com/jme3/gde/blender/BlenderTool.java delete mode 100644 jme3-blender/src/com/jme3/gde/blender/ConvertToBlendAction.java delete mode 100644 jme3-blender/src/com/jme3/gde/blender/ConvertToJ3OAction.java delete mode 100644 jme3-blender/src/com/jme3/gde/blender/OpenInBlender.java delete mode 100644 jme3-blender/src/com/jme3/gde/blender/XbufDataObject.java delete mode 100644 jme3-blender/src/com/jme3/gde/blender/blender.svg delete mode 100644 jme3-blender/src/com/jme3/gde/blender/filetypes/AbstractBlenderImportDataObject.java delete mode 100644 jme3-blender/src/com/jme3/gde/blender/filetypes/Blender3dsDataObject.java delete mode 100644 jme3-blender/src/com/jme3/gde/blender/filetypes/BlenderDaeDataObject.java delete mode 100644 jme3-blender/src/com/jme3/gde/blender/filetypes/BlenderFbxDataObject.java delete mode 100644 jme3-blender/src/com/jme3/gde/blender/package-info.java delete mode 100644 jme3-blender/src/com/jme3/gde/blender/tpl_anim.blend delete mode 100644 jme3-blender/src/com/jme3/gde/blender/tpl_box.blend delete mode 100644 jme3-blender/src/com/jme3/gde/blender/xbuf.svg create mode 100644 jme3-core/release/modules/ext/jme3_physicsloader-0.5.jar create mode 100644 jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/editor/GravityPropertyEditor.java delete mode 100644 jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender.html delete mode 100644 jme3-documentation/src/com/jme3/gde/docs/sdk/3ds_to_blender_to_jmp.html delete mode 100644 jme3-documentation/src/com/jme3/gde/docs/sdk/blender.html delete mode 100644 nbi/stub/ext/components/products/blender/build.xml delete mode 100644 nbi/stub/ext/components/products/blender/data/Bundle.properties delete mode 100644 nbi/stub/ext/components/products/blender/data/icon.png delete mode 100644 nbi/stub/ext/components/products/blender/data/icon48.png delete mode 100644 nbi/stub/ext/components/products/blender/manifest.mf delete mode 100644 nbi/stub/ext/components/products/blender/nbproject/build-impl.xml delete mode 100644 nbi/stub/ext/components/products/blender/nbproject/genfiles.properties delete mode 100644 nbi/stub/ext/components/products/blender/nbproject/project.properties delete mode 100644 nbi/stub/ext/components/products/blender/nbproject/project.xml delete mode 100644 nbi/stub/ext/components/products/blender/src/org/mycompany/Bundle.properties delete mode 100644 nbi/stub/ext/components/products/blender/src/org/mycompany/ConfigurationLogic.java delete mode 100644 nbi/stub/ext/components/products/blender/src/org/mycompany/wizard.xml delete mode 100644 nbi/stub/ext/components/products/blender/src/org/mycompany/wizard/panels/Bundle.properties delete mode 100644 nbi/stub/ext/components/products/blender/src/org/mycompany/wizard/panels/ShortcutCreationPanel.java delete mode 100644 nbi/stub/ext/infra/build/products/blender-linux-x64/build.properties delete mode 100644 nbi/stub/ext/infra/build/products/blender-linux-x64/build.xml delete mode 100644 nbi/stub/ext/infra/build/products/blender-macosx/build.properties delete mode 100644 nbi/stub/ext/infra/build/products/blender-macosx/build.xml delete mode 100644 nbi/stub/ext/infra/build/products/blender-windows-x64/build.properties delete mode 100644 nbi/stub/ext/infra/build/products/blender-windows-x64/build.xml delete mode 100644 nbi/stub/ext/infra/build/products/blender-windows-x86/build.properties delete mode 100644 nbi/stub/ext/infra/build/products/blender-windows-x86/build.xml diff --git a/build.gradle b/build.gradle index 1417295ee..3946db4d7 100644 --- a/build.gradle +++ b/build.gradle @@ -33,18 +33,16 @@ configurations.examplelibs { } dependencies { - - corelibs dep("com.github.xbuf:jme3_xbuf:0.9.1", false, false) corelibs dep("com.badlogicgames.gdx:gdx-ai:1.8.2", true, true) corelibs dep("javax.help:javahelp:2.0.05", false, false) corelibs dep("org.jmonkeyengine:jme3-core:$jmeVersion-$jmeVersionTag", true, true) corelibs dep("org.jmonkeyengine:jme3-desktop:$jmeVersion-$jmeVersionTag", true, true) - corelibs dep("org.jmonkeyengine:jme3-awt-dialogs:$jmeVersion-$jmeVersionTag", true, true) + corelibs dep("org.jmonkeyengine:jme3-awt-dialogs:$jmeVersion-$jmeVersionTag", true, true) corelibs dep("org.jmonkeyengine:jme3-lwjgl:$jmeVersion-$jmeVersionTag", true, true) corelibs dep("org.jmonkeyengine:jme3-effects:$jmeVersion-$jmeVersionTag", true, true) - corelibs dep("org.jmonkeyengine:jme3-blender:3.3.2-stable", false, false) // Pin Pointed until jme3-blender has a dedicated release or support is phased out. - optlibs dep("com.github.stephengold:Minie:7.7.0", false, false) // replacement for bullet-native + corelibs dep("com.github.stephengold:Minie:7.7.0", false, false) // replacement for bullet-native + corelibs dep("com.github.stephengold:Heart:8.7.0", true, true) // requirement for Minie corelibs dep(fileTree("lib"), false, false) corelibs dep("org.jmonkeyengine:jme3-jogg:$jmeVersion-$jmeVersionTag", true, true) @@ -64,7 +62,6 @@ dependencies { optlibs dep("org.jmonkeyengine:jme3-ios:$jmeVersion-$jmeVersionTag", true, true) optlibs dep("org.jmonkeyengine:jme3-android-native:$jmeVersion-$jmeVersionTag", true, true) optlibs dep("org.jmonkeyengine:jme3-lwjgl3:$jmeVersion-$jmeVersionTag", true, true) - optlibs dep("com.github.stephengold:Heart:8.7.0", true, true) optlibs dep("com.github.stephengold:Wes:0.7.5", true, true) testdatalibs dep("org.jmonkeyengine:jme3-testdata:$jmeVersion-$jmeVersionTag", false, false) examplelibs dep("org.jmonkeyengine:jme3-examples:$jmeVersion-$jmeVersionTag", false, true) @@ -127,7 +124,19 @@ task copyBaseLibs(dependsOn:configurations.corelibs) { from file into "jme3-core-baselibs/release/modules/ext/" } - }else if( !isSourceOrJavadoc(file.name)){ + } else if( file.name.contains("Minie") && !isSourceOrJavadoc(file.name)) { + // Special handling of Minie, since it doesn't follow the name convention + copy { + from file + into "jme3-core-baselibs/release/modules/ext/" + } + } else if( file.name.contains("Heart") && !isSourceOrJavadoc(file.name)) { + // Special handling of Minie, since it doesn't follow the name convention + copy { + from file + into "jme3-core-baselibs/release/modules/ext/" + } + } else if( !isSourceOrJavadoc(file.name)){ copy { from file into "jme3-core-libraries/release/modules/ext/" @@ -174,6 +183,16 @@ task createBaseXml(dependsOn: configurations.corelibs) { jmeJarFiles.add(file) } + } else if( file.name.contains("Minie") && !isSourceOrJavadoc(file.name)) { + // Special handling of Minie, since it doesn't follow the name convention + if(!jmeJarFiles.contains(file)) { + jmeJarFiles.add(file) + } + } else if( file.name.contains("Heart") && !isSourceOrJavadoc(file.name)) { + // Special handling of Minie, since it doesn't follow the name convention + if(!jmeJarFiles.contains(file)) { + jmeJarFiles.add(file) + } } else if(!isSourceOrJavadoc(file.name)) { //collect external jars externalJarFiles.add(file) diff --git a/jme3-blender/nbproject/project.xml b/jme3-blender/nbproject/project.xml index 073748068..f9dc8f1ee 100644 --- a/jme3-blender/nbproject/project.xml +++ b/jme3-blender/nbproject/project.xml @@ -12,7 +12,7 @@ 1 - 3.3.0 + 3.6.1 @@ -21,7 +21,7 @@ 1 - 3.3.0 + 3.6.1 @@ -30,7 +30,7 @@ 1 - 3.3.0 + 3.6.1 diff --git a/jme3-blender/src/com/jme3/gde/blender/BlenderAssetManagerConfigurator.java b/jme3-blender/src/com/jme3/gde/blender/BlenderAssetManagerConfigurator.java deleted file mode 100644 index deb6d7ca7..000000000 --- a/jme3-blender/src/com/jme3/gde/blender/BlenderAssetManagerConfigurator.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2009-2016 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package com.jme3.gde.blender; - -import com.jme3.asset.AssetManager; -import com.jme3.gde.core.assets.AssetManagerConfigurator; -import jme3_ext_xbuf.XbufLoader; - -/** - * - * @author normenhansen - */ -@org.openide.util.lookup.ServiceProvider(service = AssetManagerConfigurator.class) -public class BlenderAssetManagerConfigurator implements AssetManagerConfigurator { - - @Override - public void prepareManager(AssetManager manager) { - manager.registerLoader(com.jme3.scene.plugins.blender.BlenderModelLoader.class, "blend"); - manager.registerLoader(com.jme3.scene.plugins.blender.BlenderModelLoader.class, BlenderTool.TEMP_SUFFIX); - manager.registerLoader(XbufLoader.class, "xbuf"); - } -} diff --git a/jme3-blender/src/com/jme3/gde/blender/BlenderDataObject.java b/jme3-blender/src/com/jme3/gde/blender/BlenderDataObject.java deleted file mode 100644 index e17469fed..000000000 --- a/jme3-blender/src/com/jme3/gde/blender/BlenderDataObject.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ -package com.jme3.gde.blender; - -import com.jme3.asset.BlenderKey; -import com.jme3.asset.ModelKey; -import com.jme3.gde.core.assets.SpatialAssetDataObject; -import java.io.IOException; -import org.openide.awt.ActionID; -import org.openide.awt.ActionReference; -import org.openide.awt.ActionReferences; -import org.openide.filesystems.FileObject; -import org.openide.filesystems.MIMEResolver; -import org.openide.loaders.DataObject; -import org.openide.loaders.DataObjectExistsException; -import org.openide.loaders.MultiFileLoader; -import org.openide.util.NbBundle.Messages; - -@Messages({ - "LBL_Blender_LOADER=Blender Files" -}) -@MIMEResolver.ExtensionRegistration( - displayName="#LBL_Blender_LOADER", - mimeType="application/blender", - extension={ "blend" } -) -@DataObject.Registration( - mimeType = "application/blender", - iconBase = "com/jme3/gde/blender/blender.svg", - displayName="#LBL_Blender_LOADER", - position=300 -) -@ActionReferences(value = { - @ActionReference(id = - @ActionID(category = "jMonkeyPlatform", id = "com.jme3.gde.core.assets.actions.ConvertModel"), path = "Loaders/application/blender/Actions", position = 10), - @ActionReference(id = - @ActionID(category = "jMonkeyPlatform", id = "com.jme3.gde.core.assets.actions.OpenModel"), path = "Loaders/application/blender/Actions", position = 20), - @ActionReference(id = - @ActionID(category = "Edit", id = "org.openide.actions.CutAction"), path = "Loaders/application/blender/Actions", position = 200, separatorBefore = 100), - @ActionReference(id = - @ActionID(category = "Edit", id = "org.openide.actions.CopyAction"), path = "Loaders/application/blender/Actions", position = 300, separatorAfter = 400), - @ActionReference(id = - @ActionID(category = "Edit", id = "org.openide.actions.DeleteAction"), path = "Loaders/application/blender/Actions", position = 500), - @ActionReference(id = - @ActionID(category = "System", id = "org.openide.actions.RenameAction"), path = "Loaders/application/blender/Actions", position = 600, separatorAfter = 700), - @ActionReference(id = - @ActionID(category = "System", id = "org.openide.actions.SaveAsTemplateAction"), path = "Loaders/application/blender/Actions", position = 800, separatorAfter = 900), - @ActionReference(id = - @ActionID(category = "System", id = "org.openide.actions.FileSystemAction"), path = "Loaders/application/blender/Actions", position = 1000, separatorAfter = 1100), - @ActionReference(id = - @ActionID(category = "System", id = "org.openide.actions.ToolsAction"), path = "Loaders/application/blender/Actions", position = 1200), - @ActionReference(id = - @ActionID(category = "System", id = "org.openide.actions.PropertiesAction"), path = "Loaders/application/blender/Actions", position = 1300) -}) -public class BlenderDataObject extends SpatialAssetDataObject { - - public BlenderDataObject(FileObject pf, MultiFileLoader loader) throws DataObjectExistsException, IOException { - super(pf, loader); - } - - @Override - public ModelKey getAssetKey() { - if(super.getAssetKey() instanceof BlenderKey){ - return (BlenderKey)assetKey; - } - assetKey = new BlenderKey(super.getAssetKey().getName()); - return (BlenderKey)assetKey; - } - -} diff --git a/jme3-blender/src/com/jme3/gde/blender/BlenderTool.java b/jme3-blender/src/com/jme3/gde/blender/BlenderTool.java deleted file mode 100644 index 06fc9201e..000000000 --- a/jme3-blender/src/com/jme3/gde/blender/BlenderTool.java +++ /dev/null @@ -1,514 +0,0 @@ -/* - Blender Options: - -b or --background Load in background (often used for UI-less rendering) - -a or --render-anim Render frames from start to end (inclusive) - -S or --scene Set the active scene for rendering - -f or --render-frame Render frame and save it. + start frame relative, - end frame relative. - -s or --frame-start Set start to frame (use before the -a argument) - -e or --frame-end Set end to frame (use before the -a argument) - -j or --frame-jump Set number of frames to step forward after each rendered frame - -o or --render-output Set the render path and file name. Use // at the start of the path to - render relative to the blend file. The # characters are replaced by the frame number, and used to define zero padding. - ani_##_test.png becomes ani_01_test.png - test-######.png becomes test-000001.png - When the filename does not contain #, The suffix #### is added to the filename The frame number will be added at the end of the filename. - eg: blender -b foobar.blend -o //render_ -F PNG -x 1 -a - //render_ becomes //render_####, writing frames as //render_0001.png// - -E or --engine Specify the render engine use -E help to list available engines - - Format Options: - -F or --render-format Set the render format, Valid options are... - TGA IRIS JPEG MOVIE IRIZ RAWTGA - AVIRAW AVIJPEG PNG BMP FRAMESERVER (formats that can be compiled into blender, not available on all systems) - HDR TIFF EXR MULTILAYER MPEG AVICODEC QUICKTIME CINEON DPX DDS - -x or --use-extension Set option to add the file extension to the end of the file - -t or --threads Use amount of for rendering in background [1-64], 0 for systems processor count. - - Animation Playback Options: - -a Playback , only operates this way when not running in background. - -p Open with lower left corner at , - -m Read from disk (Don't buffer) - -f Specify FPS to start with - -j Set frame step to - - Window Options: - -w or --window-border Force opening with borders (default) - -W or --window-borderless Force opening without borders - -p or --window-geometry Open with lower left corner at , and width and height as , - -con or --start-console Start with the console window open (ignored if -b is set) - - Game Engine Specific Options: - -g Game Engine specific options - -g fixedtime Run on 50 hertz without dropping frames - -g vertexarrays Use Vertex Arrays for rendering (usually faster) - -g nomipmap No Texture Mipmapping - -g linearmipmap Linear Texture Mipmapping instead of Nearest (default) - - Misc Options: - -d or --debug Turn debugging on - * Prints every operator call and their arguments - * Disables mouse grab (to interact with a debugger in some cases) - * Keeps python sys.stdin rather than setting it to None - --debug-fpe Enable floating point exceptions - --debug-ffmpeg Enable debug messages from FFmpeg library - --debug-libmv Enable debug messages from libmv library - - --factory-startup Skip reading the "startup.blend" in the users home directory - - --env-system-datafiles Set the BLENDER_SYSTEM_DATAFILES environment variable - --env-system-scripts Set the BLENDER_SYSTEM_SCRIPTS environment variable - --env-system-python Set the BLENDER_SYSTEM_PYTHON environment variable - - -nojoystick Disable joystick support - -noglsl Disable GLSL shading - -noaudio Force sound system to None - -setaudio Force sound system to a specific device NULL SDL OPENAL JACK - - -h or --help Print this help text and exit - - -y or --enable-autoexec Enable automatic python script execution, (default) - -Y or --disable-autoexec Disable automatic python script execution (pydrivers & startup scripts) - - -P or --python Run the given Python script (filename or Blender Text) - --python-console Run blender with an interactive console - --addons Comma separated list of addons (no spaces) - -v or --version Print Blender version and exit - -- Ends option processing, following arguments passed unchanged. Access via python's sys.argv - Other Options: - /? Print this help text and exit (windows only) - --debug-python Enable debug messages for python - --debug-events Enable debug messages for the event system - --debug-wm Enable debug messages for the window manager - --debug-all Enable all debug messages (excludes libmv) - --debug-value Set debug value of on startup - - --debug-jobs Enable time profiling for background jobs. - --verbose Set logging verbosity level. - -R Register .blend extension, then exit (Windows only) - -r Silently register .blend extension, then exit (Windows only) - Argument Parsing: arguments must be separated by white space. eg - "blender -ba test.blend" - ...will ignore the 'a' - "blender -b test.blend -f8" - ...will ignore 8 because there is no space between the -f and the frame value - Argument Order: - Arguments are executed in the order they are given. eg - "blender --background test.blend --render-frame 1 --render-output /tmp" - ...will not render to /tmp because '--render-frame 1' renders before the output path is set - "blender --background --render-output /tmp test.blend --render-frame 1" - ...will not render to /tmp because loading the blend file overwrites the render output that was set - "blender --background test.blend --render-output /tmp --render-frame 1" works as expected. - - Environment Variables: - $BLENDER_USER_CONFIG Directory for user configuration files. - $BLENDER_USER_SCRIPTS Directory for user scripts. - $BLENDER_SYSTEM_SCRIPTS Directory for system wide scripts. - $Directory for user data files (icons, translations, ..). - $BLENDER_SYSTEM_DATAFILES Directory for system wide data files. - $BLENDER_SYSTEM_PYTHON Directory for system python libraries. - $TMP or $TMPDIR Store temporary files here. - $SDL_AUDIODRIVER LibSDL audio driver - alsa, esd, dma. - $PYTHONHOME Path to the python directory, eg. /usr/lib/python. - - blender/config - blender/scripts - blender/userscripts - */ -package com.jme3.gde.blender; - -import com.jme3.gde.blender.scripts.Scripts; -import java.awt.Frame; -import java.io.File; -import java.io.IOException; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.logging.Level; -import java.util.logging.Logger; -import org.openide.DialogDisplayer; -import org.openide.NotifyDescriptor; -import org.openide.filesystems.FileObject; -import org.openide.filesystems.FileUtil; -import org.openide.modules.InstalledFileLocator; -import org.openide.modules.Places; -import org.openide.util.Exceptions; -import org.openide.util.Utilities; -import org.openide.windows.WindowManager; - -/** - * - * @author normenhansen - */ -public class BlenderTool { - - public static final String TEMP_SUFFIX = "blend"; - private static final String mainFolderName = "blender"; - private static final String configFolderName = mainFolderName + "/config"; - private static final String scriptsFolderName = mainFolderName + "/scripts"; - private static final String jmeScriptsFolderName = mainFolderName + "/jmescripts"; - private static final String userScriptsFolderName = mainFolderName + "/userscripts"; - private static final String tempFolderName = mainFolderName + "/temp"; - private static final Logger logger = Logger.getLogger(BlenderTool.class.getName()); - private static final AtomicBoolean blenderOpened = new AtomicBoolean(false); - - private static String getBlenderExeName() { - if (Utilities.isWindows()) { - return "blender.exe"; - } else { - return "blender"; - } - } - - private static String getBlenderOsPath() { - if (Utilities.isMac()) { - return "../blender/blender.app/Contents/MacOS"; - } else { - return "../blender"; - } - } - - private static String getBlenderOsSettingsPath() { - if (Utilities.isMac()) { - return "../blender/blender.app/Contents/Resources"; - } else { - return "../blender"; - } - } - - /** - * We create a lot of own directories to place our scripts inside, have config/preferences files stored there etc. - * That's the place were we check for their existance and create them if necessary - * Note: We don't use config/scripts folder's anymore in favour of the blender internal paths. - * @return - */ - private static boolean checkBlenderFolders() { - String jmpDir = Places.getUserDirectory().getAbsolutePath(); - FileObject fileObject = FileUtil.toFileObject(new File(jmpDir)); - if (fileObject != null) { - //FileObject configFileObject = fileObject.getFileObject(configFolderName); - //FileObject scriptsFileObject = fileObject.getFileObject(scriptsFolderName); - FileObject jmeScriptsFileObject = fileObject.getFileObject(jmeScriptsFolderName); - FileObject userScriptsFileObject = fileObject.getFileObject(userScriptsFolderName); - /* if (configFileObject == null) { - try { - configFileObject = FileUtil.createFolder(fileObject, configFolderName); - } catch (IOException ex) { - Exceptions.printStackTrace(ex); - return false; - } - } - if (scriptsFileObject == null) { - try { - scriptsFileObject = FileUtil.createFolder(fileObject, scriptsFolderName); - } catch (IOException ex) { - Exceptions.printStackTrace(ex); - return false; - } - }*/ - if (jmeScriptsFileObject == null) { - try { - jmeScriptsFileObject = FileUtil.createFolder(fileObject, jmeScriptsFolderName); - } catch (IOException ex) { - Exceptions.printStackTrace(ex); - return false; - } - } - if (userScriptsFileObject == null) { - try { - userScriptsFileObject = FileUtil.createFolder(fileObject, userScriptsFolderName); - } catch (IOException ex) { - Exceptions.printStackTrace(ex); - return false; - } - } - Scripts.copyToFolder(jmeScriptsFileObject); /* Unpack our converter scripts */ - } else { - logger.log(Level.SEVERE, "No global settings folder found!"); - return false; - } - return true; - } - - /** - * This is the Path where blender will store all changes to the config. - * Note that this is not the blender default so you'll see different settings when launching blender from inside the SDK - * Why? Good question actually. - * @return - */ - private static String getConfigEnv() { - String ret = Places.getUserDirectory().getAbsolutePath() + "/" + configFolderName; - ret = ret.replace("/", File.separator); - return ret; - } - - /** - * This is the Path where blender itself stores it's scripts. - * The plan was to take those scripts and reside them into a folder along with all the other scripts (UserScripts, ...), - * We don't do this anymore because there's no real reason to copy all the scripts or even maintain them on your own. - * Blender automatically takes care. - * @return - */ - private static String getSystemScriptsEnv() { - //TODO: using installed blender scripts folder - String ret = getBlenderSettingsFolder().getAbsolutePath() + "/" + "scripts"; - //String ret = System.getProperty("netbeans.user") + "/" + scriptsFolderName; - ret = ret.replace("/", File.separator); - return ret; - } - - /** - * This is the Path where we put custom userscripts inside. - * They would be available inside blender (examples would be some jmonkey-animation-helper-addon) - * @return The directory where the user scripts are - */ - private static String getUserScriptsEnv() { - String ret = Places.getUserDirectory().getAbsolutePath() + "/" + userScriptsFolderName; - ret = ret.replace("/", File.separator); - return ret; - } - - /** - * Get the full path to that script. - * Those are the scripts that come with jMonkeyEngine (so neither user nor system) - * @param scriptName The name of the Script - * @param prefix The prefix like "import" or "tool" - * @return The whole absolute path to that script - */ - private static String getScriptPath(String scriptName, String prefix) { - String ret = Places.getUserDirectory().getAbsolutePath() + "/" + jmeScriptsFolderName + "/" + prefix + "_" + scriptName + ".py"; - ret = ret.replace("/", File.separator); - return ret; - } - - private static File getBlenderExecutable() { - File blender = InstalledFileLocator.getDefault().locate(getBlenderOsPath() + "/" + getBlenderExeName(), null, false); - if (blender == null) { - DialogDisplayer.getDefault().notify(new NotifyDescriptor.Message("Error finding Blender executable")); - logger.log(Level.SEVERE, "Error finding Blender executable"); - } - return blender; - } - - /** - * Get the main folder of blender where all resources are found: - * System Scripts, Bundled Python, etc. - * We don't need this anymore see {@link #getSystemScriptsEnv() } - * @return - */ - private static File getBlenderSettingsFolder() { - File blender = InstalledFileLocator.getDefault().locate(getBlenderOsSettingsPath() + "/2.76", null, false); /* Update this every new Blender Version you use */ - if (blender == null) { - blender = InstalledFileLocator.getDefault().locate(getBlenderOsSettingsPath() + "/2.75", null, false); - } - if (blender == null) { - blender = InstalledFileLocator.getDefault().locate(getBlenderOsSettingsPath() + "/2.69", null, false); - } - if (blender == null) { - DialogDisplayer.getDefault().notify(new NotifyDescriptor.Message("Error finding Blender settings")); - logger.log(Level.SEVERE, "Error finding Blender settings"); - } - return blender; - } - - private static File getBlenderRootFolder() { - File blender = InstalledFileLocator.getDefault().locate(getBlenderOsPath(), null, false); - if (blender == null) { - DialogDisplayer.getDefault().notify(new NotifyDescriptor.Message("Error finding Blender root folder")); - logger.log(Level.SEVERE, "Error finding Blender root folder"); - } - return blender; - } - - /** - * Run Blender to convert .fbx or similar files to a blender file which can then be imported to .j3o - * @param type The Filetype (extension) - * @param input The FileObject (Input). It will be placed the same but with .blend - * @return Success or not. - */ - public static boolean runConversionScript(String type, FileObject input) { - if (!checkBlenderFolders()) { - logger.log(Level.SEVERE, "Could not create blender settings folders!"); - return false; - } - final File exe = getBlenderExecutable(); - if (exe == null) { - logger.log(Level.SEVERE, "Could not find blender executable!"); - return false; - } - logger.log(Level.INFO, "Running blender as converter for file {0}", input.getPath()); - String scriptPath = getScriptPath(type, "import"); - String inputPath = input.getPath().replace("/", File.separator); - String inputFolder = input.getParent().getPath().replace("/", File.separator) + File.separator; - String outputPath = inputFolder + input.getName() + "." + TEMP_SUFFIX; - try { - String command = exe.getAbsolutePath(); - ProcessBuilder buildr = new ProcessBuilder(command, "-b", - "--factory-startup", - "-P", scriptPath, - "--", - "-i", inputPath, - "-o", outputPath); - buildr.directory(getBlenderRootFolder()); - //buildr.environment().put("BLENDER_USER_CONFIG", getConfigEnv()); - //buildr.environment().put("BLENDER_SYSTEM_SCRIPTS", getSystemScriptsEnv()); - buildr.environment().put("BLENDER_USER_SCRIPTS", getUserScriptsEnv()); - Process proc = buildr.start(); - OutputReader outReader = new OutputReader(proc.getInputStream()); - OutputReader errReader = new OutputReader(proc.getErrorStream()); - outReader.start(); - errReader.start(); - try { - proc.waitFor(); - } catch (InterruptedException ex) { - Exceptions.printStackTrace(ex); - } - if (proc.exitValue() != 0) { - logger.log(Level.SEVERE, "Error running blender!"); - return false; - } - } catch (IOException ex) { - Exceptions.printStackTrace(ex); - } - return true; - } - - /** - * This will run a tool instead of an importer. - * See {@link #runConversionScript(java.lang.String, org.openide.filesystems.FileObject) } - * @param toolName The tool to use - * @param input The file to process - * @return sucess? - */ - public static boolean runToolScript(String toolName, FileObject input) { - if (!checkBlenderFolders()) { - logger.log(Level.SEVERE, "Could not create blender settings folders!"); - return false; - } - final File exe = getBlenderExecutable(); - if (exe == null) { - logger.log(Level.SEVERE, "Could not find blender executable!"); - return false; - } - logger.log(Level.INFO, "Running blender as {0} tool for file {1}", new Object[]{toolName, input.getPath()}); - String scriptPath = getScriptPath(toolName, "tool"); - String inputPath = input.getPath().replace("/", File.separator); - try { - String command = exe.getAbsolutePath(); - ProcessBuilder buildr = new ProcessBuilder(command, "-b", - "--factory-startup", - "-P", scriptPath, - "--", - "-i", inputPath); - buildr.directory(getBlenderRootFolder()); - //buildr.environment().put("BLENDER_USER_CONFIG", getConfigEnv()); - //buildr.environment().put("BLENDER_SYSTEM_SCRIPTS", getSystemScriptsEnv()); - buildr.environment().put("BLENDER_USER_SCRIPTS", getUserScriptsEnv()); - Process proc = buildr.start(); - OutputReader outReader = new OutputReader(proc.getInputStream()); - OutputReader errReader = new OutputReader(proc.getErrorStream()); - outReader.start(); - errReader.start(); - try { - proc.waitFor(); - } catch (InterruptedException ex) { - Exceptions.printStackTrace(ex); - } - if (proc.exitValue() != 0) { - logger.log(Level.SEVERE, "Error running blender!"); - return false; - } - } catch (IOException ex) { - Exceptions.printStackTrace(ex); - } - return true; - } - - /** - * Simply open that Blender File - * @param file The file/path to open - * @param async Should this method lock until blender has finished? - * @return sucess? - */ - private static boolean runBlender(final String file, boolean async) { - if (!checkBlenderFolders()) { - logger.log(Level.SEVERE, "Could not create blender settings folders!"); - return false; - } - logger.log(Level.INFO, "Running blender with options {0}", file); - if (blenderOpened.getAndSet(true)) { - logger.log(Level.WARNING, "Blender seems to be running already."); - return false; - } - final AtomicBoolean successful = new AtomicBoolean(true); - final File exe = getBlenderExecutable(); - if (exe == null) { - logger.log(Level.SEVERE, "Could not find blender executable!"); - blenderOpened.set(false); - return false; - } - final Frame mainWin = WindowManager.getDefault().getMainWindow(); - assert (mainWin != null); - mainWin.setExtendedState(Frame.ICONIFIED); - Runnable r = new Runnable() { - public void run() { - try { - String command = exe.getAbsolutePath(); - ProcessBuilder buildr = new ProcessBuilder(command, file); - buildr.directory(getBlenderRootFolder()); /* Set working Directory to where the executables are */ - //buildr.environment().put("BLENDER_USER_CONFIG", getConfigEnv()); - //buildr.environment().put("BLENDER_SYSTEM_SCRIPTS", getSystemScriptsEnv()); - buildr.environment().put("BLENDER_USER_SCRIPTS", getUserScriptsEnv()); - Process proc = buildr.start(); - OutputReader outReader = new OutputReader(proc.getInputStream()); - OutputReader errReader = new OutputReader(proc.getErrorStream()); - outReader.start(); - errReader.start(); - try { - proc.waitFor(); - } catch (InterruptedException ex) { - Exceptions.printStackTrace(ex); - } - if (proc.exitValue() == 0) { - successful.set(true); - } - } catch (Exception ex) { - Exceptions.printStackTrace(ex); - successful.set(false); - } finally { - blenderOpened.set(false); - java.awt.EventQueue.invokeLater(new Runnable() { - public void run() { - mainWin.setExtendedState(Frame.NORMAL); - mainWin.requestFocus(); - } - }); - } - } - }; - if (async) { - new Thread(r).start(); - } else { - r.run(); - } - return successful.get(); - } - - /** - * Open the file in Blender. - * Note: Path Seperators are automatically converted, so always use the unix "/" way. - * @param file The File to open - * @return Whether we had success or not - */ - public static boolean openInBlender(FileObject file) { - String path = file.getPath().replace("/", File.separator); - return runBlender(path, true); - } - - /** - * Simply just run Blender - */ - public static void runBlender() { - if (!runBlender(null, true)) { - logger.log(Level.INFO, "Could not run blender, already running? Trying to focus window."); - DialogDisplayer.getDefault().notifyLater(new NotifyDescriptor.Message("Blender is already running!")); - } - } -} diff --git a/jme3-blender/src/com/jme3/gde/blender/Bundle.properties b/jme3-blender/src/com/jme3/gde/blender/Bundle.properties index e46b6d7a2..8ecfde7d0 100644 --- a/jme3-blender/src/com/jme3/gde/blender/Bundle.properties +++ b/jme3-blender/src/com/jme3/gde/blender/Bundle.properties @@ -1,5 +1,5 @@ OpenIDE-Module-Display-Category=jMonkeyEngine OpenIDE-Module-Long-Description=\ - This plugin adds support for Blender .blend files, XBuf's .xbuf files and GLTF's .gltf .glb and .bin files -OpenIDE-Module-Name=Blender, XBuf and GLTF Support -OpenIDE-Module-Short-Description=Adds support for Blender .blend, XBuf's .xbuf and GLTF's .gltf .glb and .bin files \ No newline at end of file + This plugin adds support for GLTF's .gltf .glb and .bin files +OpenIDE-Module-Name=GLTF Support +OpenIDE-Module-Short-Description=Adds support for GLTF's .gltf .glb and .bin files \ No newline at end of file diff --git a/jme3-blender/src/com/jme3/gde/blender/ConvertToBlendAction.java b/jme3-blender/src/com/jme3/gde/blender/ConvertToBlendAction.java deleted file mode 100644 index f901c39bd..000000000 --- a/jme3-blender/src/com/jme3/gde/blender/ConvertToBlendAction.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (c) 2009-2016 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package com.jme3.gde.blender; - -import com.jme3.gde.blender.filetypes.AbstractBlenderImportDataObject; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.util.List; -import org.openide.awt.ActionID; -import org.openide.awt.ActionReference; -import org.openide.awt.ActionReferences; -import org.openide.awt.ActionRegistration; -import org.openide.filesystems.FileObject; -import org.openide.loaders.MultiDataObject; -import org.openide.util.NbBundle.Messages; - -@ActionID( - category = "jMonkeyPlatform", - id = "com.jme3.gde.blender.ConvertToBlendAction" -) -@ActionRegistration( - displayName = "#CTL_ConvertToBlendAction" -) -@ActionReferences({ - @ActionReference(path = "Loaders/application/fbx/Actions", position = 150), - @ActionReference(path = "Loaders/model/vnd.collada+xml/Actions", position = 150), - @ActionReference(path = "Loaders/application/x-3ds/Actions", position = 150) -}) -@Messages("CTL_ConvertToBlendAction=Convert to .blend file") - -/** - * The "Convert to .blend" Action is there for all files which are converted by the blender importers. - * It allows you to convert an .fbx/.3ds file into a .blend file so that you can modify the file before the final .j3o import. - * - * @author MeFisto94 - */ -public final class ConvertToBlendAction implements ActionListener { - - private final List context; - - public ConvertToBlendAction(List context) { - this.context = context; - } - - @Override - public void actionPerformed(ActionEvent ev) { - /* We need a context list because you can select multiple objects */ - for (MultiDataObject multiDataObject : context) { - if (multiDataObject instanceof AbstractBlenderImportDataObject) { - AbstractBlenderImportDataObject obj = (AbstractBlenderImportDataObject)multiDataObject; - FileObject file = obj.importFile(); - // BlenderTool.openInBlender(file); - } - } - } -} diff --git a/jme3-blender/src/com/jme3/gde/blender/ConvertToJ3OAction.java b/jme3-blender/src/com/jme3/gde/blender/ConvertToJ3OAction.java deleted file mode 100644 index 249b284ee..000000000 --- a/jme3-blender/src/com/jme3/gde/blender/ConvertToJ3OAction.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (c) 2009-2016 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package com.jme3.gde.blender; - -import com.jme3.gde.blender.filetypes.AbstractBlenderImportDataObject; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.beans.PropertyChangeListener; -import java.util.List; -import javax.swing.Action; -import org.openide.awt.ActionID; -import org.openide.awt.ActionReference; -import org.openide.awt.ActionReferences; -import org.openide.awt.ActionRegistration; -import org.openide.loaders.MultiDataObject; -import org.openide.util.NbBundle.Messages; - -@ActionID( - category = "jMonkeyPlatform", - id = "com.jme3.gde.blender.ConvertToJ3OAction" -) -@ActionRegistration( - displayName = "#CTL_ConvertToJ3OAction" -) -@ActionReferences({ - @ActionReference(path = "Loaders/application/fbx/Actions", position = 150), - @ActionReference(path = "Loaders/model/vnd.collada+xml/Actions", position = 150), - @ActionReference(path = "Loaders/application/x-3ds/Actions", position = 150) -}) -@Messages("CTL_ConvertToJ3OAction=Convert to .j3o binary") - -/** - * The "Convert to .j3o" Action is there for all files which are converted by the blender importers. - * It allows you to convert an .fbx/.3ds file into a .j3o file using blenders import capabilites. - * - * @author MeFisto94 - */ -public final class ConvertToJ3OAction implements Action { - - private final List context; - - public ConvertToJ3OAction(List context) { - this.context = context; - } - - @Override - public void actionPerformed(ActionEvent ev) { - /* We need a context list because you can select multiple objects */ - for (MultiDataObject multiDataObject : context) { - if (multiDataObject instanceof AbstractBlenderImportDataObject) { - AbstractBlenderImportDataObject obj = (AbstractBlenderImportDataObject)multiDataObject; - obj.loadAsset(); - } - } - } - - @Override - public Object getValue(String key) { - return null; - } - - @Override - public void putValue(String key, Object value) { - - } - - @Override - public void setEnabled(boolean b) { - - } - - @Override - public boolean isEnabled() { - return true; - } - - @Override - public void addPropertyChangeListener(PropertyChangeListener listener) { - - } - - @Override - public void removePropertyChangeListener(PropertyChangeListener listener) { - - } - - -} diff --git a/jme3-blender/src/com/jme3/gde/blender/OpenInBlender.java b/jme3-blender/src/com/jme3/gde/blender/OpenInBlender.java deleted file mode 100644 index 9c15973c2..000000000 --- a/jme3-blender/src/com/jme3/gde/blender/OpenInBlender.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ -package com.jme3.gde.blender; - -import com.jme3.gde.core.scene.ApplicationLogHandler.LogLevel; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.util.logging.Logger; -import org.openide.awt.ActionID; -import org.openide.awt.ActionReference; -import org.openide.awt.ActionReferences; -import org.openide.awt.ActionRegistration; -import org.openide.util.NbBundle.Messages; - -@ActionID( - category = "jMonkeyEngine", -id = "com.jme3.gde.blender.OpenBlender") -@ActionRegistration( - iconBase = "com/jme3/gde/blender/blender.svg", -displayName = "#CTL_OpenInBlender") -@ActionReferences({ - @ActionReference(path = "Toolbars/File", position = 335), - @ActionReference(path = "Loaders/application/blender/Actions", position = 9) -}) -@Messages("CTL_OpenInBlender=Open in Blender") -public final class OpenInBlender implements ActionListener { - - private static final Logger logger = Logger.getLogger(OpenInBlender.class.getName()); - private final BlenderDataObject context; - - public OpenInBlender(BlenderDataObject context) { - this.context = context; - } - - @Override - public void actionPerformed(ActionEvent ev) { - if (!BlenderTool.openInBlender(context.getPrimaryFile())) { - logger.log(LogLevel.INFO, "Could not open file in blender."); - } - } -} diff --git a/jme3-blender/src/com/jme3/gde/blender/XbufDataObject.java b/jme3-blender/src/com/jme3/gde/blender/XbufDataObject.java deleted file mode 100644 index d468ef7db..000000000 --- a/jme3-blender/src/com/jme3/gde/blender/XbufDataObject.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (c) 2009-2016 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package com.jme3.gde.blender; - -import com.jme3.asset.ModelKey; -import com.jme3.gde.core.assets.SpatialAssetDataObject; -import java.io.IOException; -import org.openide.awt.ActionID; -import org.openide.awt.ActionReference; -import org.openide.awt.ActionReferences; -import org.openide.filesystems.FileObject; -import org.openide.filesystems.MIMEResolver; -import org.openide.loaders.DataObject; -import org.openide.loaders.DataObjectExistsException; -import org.openide.loaders.MultiFileLoader; -import org.openide.util.NbBundle.Messages; -import jme3_ext_xbuf.*; - -@Messages({ - "LBL_XBUF_LOADER=XBuf Files" -}) -@MIMEResolver.ExtensionRegistration( - displayName="#LBL_XBUF_LOADER", - mimeType="application/xbuf", - extension={ "xbuf" } -) -@DataObject.Registration( - mimeType = "application/xbuf", - iconBase = "com/jme3/gde/blender/xbuf.svg", - displayName="#LBL_XBUF_LOADER", - position=300 -) -@ActionReferences(value = { - @ActionReference(id = - @ActionID(category = "jMonkeyPlatform", id = "com.jme3.gde.core.assets.actions.ConvertModel"), path = "Loaders/application/xbuf/Actions", position = 10), - @ActionReference(id = - @ActionID(category = "jMonkeyPlatform", id = "com.jme3.gde.core.assets.actions.OpenModel"), path = "Loaders/application/xbuf/Actions", position = 20), - @ActionReference(id = - @ActionID(category = "Edit", id = "org.openide.actions.CutAction"), path = "Loaders/application/xbuf/Actions", position = 200, separatorBefore = 100), - @ActionReference(id = - @ActionID(category = "Edit", id = "org.openide.actions.CopyAction"), path = "Loaders/application/xbuf/Actions", position = 300, separatorAfter = 400), - @ActionReference(id = - @ActionID(category = "Edit", id = "org.openide.actions.DeleteAction"), path = "Loaders/application/xbuf/Actions", position = 500), - @ActionReference(id = - @ActionID(category = "System", id = "org.openide.actions.RenameAction"), path = "Loaders/application/xbuf/Actions", position = 600, separatorAfter = 700), - @ActionReference(id = - @ActionID(category = "System", id = "org.openide.actions.SaveAsTemplateAction"), path = "Loaders/application/xbuf/Actions", position = 800, separatorAfter = 900), - @ActionReference(id = - @ActionID(category = "System", id = "org.openide.actions.FileSystemAction"), path = "Loaders/application/xbuf/Actions", position = 1000, separatorAfter = 1100), - @ActionReference(id = - @ActionID(category = "System", id = "org.openide.actions.ToolsAction"), path = "Loaders/application/xbuf/Actions", position = 1200), - @ActionReference(id = - @ActionID(category = "System", id = "org.openide.actions.PropertiesAction"), path = "Loaders/application/xbuf/Actions", position = 1300) -}) -public class XbufDataObject extends SpatialAssetDataObject { - - public XbufDataObject(FileObject pf, MultiFileLoader loader) throws DataObjectExistsException, IOException { - super(pf, loader); - } - - @Override - public ModelKey getAssetKey() { - if(super.getAssetKey() instanceof XbufKey){ - return (XbufKey)assetKey; - } - assetKey = new XbufKey(super.getAssetKey().getName()); - return (XbufKey)assetKey; - } - -} diff --git a/jme3-blender/src/com/jme3/gde/blender/blender.svg b/jme3-blender/src/com/jme3/gde/blender/blender.svg deleted file mode 100644 index 823571378..000000000 --- a/jme3-blender/src/com/jme3/gde/blender/blender.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - Blender logo (without text) - - - - - - - - - - \ No newline at end of file diff --git a/jme3-blender/src/com/jme3/gde/blender/filetypes/AbstractBlenderImportDataObject.java b/jme3-blender/src/com/jme3/gde/blender/filetypes/AbstractBlenderImportDataObject.java deleted file mode 100644 index 0492c1b8b..000000000 --- a/jme3-blender/src/com/jme3/gde/blender/filetypes/AbstractBlenderImportDataObject.java +++ /dev/null @@ -1,215 +0,0 @@ -/* - * Copyright (c) 2009-2016 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package com.jme3.gde.blender.filetypes; - -import com.jme3.asset.BlenderKey; -import com.jme3.gde.blender.BlenderTool; -import com.jme3.gde.blender.ConvertToJ3OAction; -import com.jme3.gde.core.assets.AssetDataNode; -import com.jme3.gde.core.assets.ProjectAssetManager; -import com.jme3.gde.core.assets.SpatialAssetDataObject; -import com.jme3.gde.core.util.Beans; -import com.jme3.gde.core.util.SpatialUtil; -import com.jme3.scene.Spatial; -import java.io.IOException; -import java.util.ArrayList; -import java.util.logging.Level; -import javax.swing.Action; -import org.openide.DialogDisplayer; -import org.openide.NotifyDescriptor; -import org.openide.filesystems.FileObject; -import org.openide.filesystems.FileUtil; -import org.openide.loaders.DataObject; -import org.openide.loaders.DataObjectExistsException; -import org.openide.loaders.MultiDataObject; -import org.openide.loaders.MultiFileLoader; -import org.openide.nodes.Children; -import org.openide.nodes.Node; -import org.openide.util.Exceptions; -import org.openide.util.Lookup; -import org.openide.util.lookup.ProxyLookup; - -/** - * The AbstractBlenderImportDataObject handles all possible Filetypes which should be automatically converted by Blender's Importer. - * You have to extend this class and just set the correct suffix. See: {@link BlenderFbxDataObject} - * @author normenhansen - */ -public abstract class AbstractBlenderImportDataObject extends SpatialAssetDataObject { - - protected String SUFFIX; - - public AbstractBlenderImportDataObject(FileObject pf, MultiFileLoader loader) throws DataObjectExistsException, IOException { - super(pf, loader); - } - - @Override - public Spatial loadAsset() { - if (savable != null) { - return (Spatial) savable; - } - ProjectAssetManager mgr = getLookup().lookup(ProjectAssetManager.class); - if (mgr == null) { - DialogDisplayer.getDefault().notifyLater(new NotifyDescriptor.Message("File is not part of a project!\nCannot load without ProjectAssetManager.")); - return null; - } - FileObject outFile = importFile(mgr); - String assetKeyName = mgr.getRelativeAssetPath(outFile.getPath()); - BlenderKey key = new BlenderKey(assetKeyName); - Beans.copyProperties(key, getAssetKey()); - try { - listListener.start(); - Spatial spatial = mgr.loadModel(key); - replaceFiles(); - listListener.stop(); - SpatialUtil.storeOriginalPathUserData(spatial); - savable = spatial; - logger.log(Level.INFO, "Loaded asset {0}", getName()); - return spatial; - } catch (Exception ex) { - logger.log(Level.SEVERE, ex.getMessage(), ex); - Exceptions.printStackTrace(ex); - } finally { - try { - outFile.delete(); - } catch (IOException ex) { - Exceptions.printStackTrace(ex); - } - } - return null; - } - - @Override - public synchronized BlenderKey getAssetKey() { - if (super.getAssetKey() instanceof BlenderKey) { - return (BlenderKey) assetKey; - } - assetKey = new BlenderKey(super.getAssetKey().getName()); - return (BlenderKey) assetKey; - } - - protected void replaceFiles() { - for (int i = 0; i < assetList.size(); i++) { - FileObject fileObject = assetList.get(i); - if (fileObject.hasExt(BlenderTool.TEMP_SUFFIX)) { - assetList.remove(i); - assetKeyList.remove(i); - assetList.add(i, getPrimaryFile()); - assetKeyList.add(getAssetKey()); - return; - } - } - } - - /** - * Use this method to convert this file into a blender model - * Note: This requires a bit of additional code (creating the PAM) so use the version without parameters if you don't plan to modify the blend further - * @param mgr The AssetManager which provides access to the Project Files - * @return The FileObject of the .blend file - */ - public FileObject importFile(ProjectAssetManager mgr) { - if (SUFFIX == null) { - throw new IllegalStateException("Suffix for blender filetype is null! Set SUFFIX = \"sfx\" in constructor!"); - } - - //make sure its actually closed and all data gets reloaded - closeAsset(); - FileObject mainFile = getPrimaryFile(); - - if (FileUtil.findBrother(mainFile, BlenderTool.TEMP_SUFFIX) != null) { - logger.log(Level.SEVERE, "Cannot convert " + getName() + " to .blend because there is already a file with this name. Delete it and try again!"); - return null; - } - - if (!BlenderTool.runConversionScript(SUFFIX, mainFile)) { - logger.log(Level.SEVERE, "Failed to create model, running blender caused an error"); - return null; - } - mainFile.getParent().refresh(); - FileObject outFile = FileUtil.findBrother(mainFile, BlenderTool.TEMP_SUFFIX); - if (outFile == null) { - logger.log(Level.SEVERE, "Failed to create model, blend file cannot be found"); - return null; - } - int i = 1; - FileObject blend1File = FileUtil.findBrother(mainFile, BlenderTool.TEMP_SUFFIX + i); - while (blend1File != null) { - try { - blend1File.delete(); - } catch (IOException ex) { - Exceptions.printStackTrace(ex); - } - i++; - blend1File = FileUtil.findBrother(mainFile, BlenderTool.TEMP_SUFFIX + i); - } - - return outFile; - } - - /** - * Use this method to simply convert any supported file into a .blend file. - * @return The FileObject for the converted .blend file - */ - public FileObject importFile() { - ProjectAssetManager mgr = getLookup().lookup(ProjectAssetManager.class); - if (mgr == null) { - DialogDisplayer.getDefault().notifyLater(new NotifyDescriptor.Message("File is not part of a project!\nCannot load without ProjectAssetManager.")); - return null; - } - FileObject outFile = importFile(mgr); - return outFile; - } - - @Override - protected Node createNodeDelegate() { - MyAssetDataNode node = new MyAssetDataNode(this, Children.LEAF, new ProxyLookup(getCookieSet().getLookup(), contentLookup)); - node.setIconBaseWithExtension("com/jme3/gde/core/icons/model.gif"); - return node; - } - - private class MyAssetDataNode extends AssetDataNode { - public MyAssetDataNode(DataObject obj, Children ch) { - super(obj, ch); - } - - public MyAssetDataNode(DataObject obj, Children ch, Lookup lookup) { - super(obj, ch, lookup); - } - - @Override - public Action getPreferredAction() - { - ArrayList ctx = new ArrayList(); - ctx.add((MultiDataObject)getDataObject()); - return new ConvertToJ3OAction(ctx); - } - } -} diff --git a/jme3-blender/src/com/jme3/gde/blender/filetypes/Blender3dsDataObject.java b/jme3-blender/src/com/jme3/gde/blender/filetypes/Blender3dsDataObject.java deleted file mode 100644 index a58e27ae9..000000000 --- a/jme3-blender/src/com/jme3/gde/blender/filetypes/Blender3dsDataObject.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ -package com.jme3.gde.blender.filetypes; - -import java.io.IOException; -import org.openide.awt.ActionID; -import org.openide.awt.ActionReference; -import org.openide.awt.ActionReferences; -import org.openide.filesystems.FileObject; -import org.openide.filesystems.MIMEResolver; -import org.openide.loaders.DataObject; -import org.openide.loaders.DataObjectExistsException; -import org.openide.loaders.MultiFileLoader; -import org.openide.util.NbBundle.Messages; - -@Messages({ - "LBL_Blender3ds_LOADER=3DS Files (via Blender)" -}) -@MIMEResolver.ExtensionRegistration( - displayName = "#LBL_Blender3ds_LOADER", - mimeType = "application/x-3ds", - extension = {"3ds", "3DS"}) -@DataObject.Registration( - mimeType = "application/x-3ds", - iconBase = "com/jme3/gde/blender/blender.svg", - displayName = "#LBL_Blender3ds_LOADER", - position = 300) -@ActionReferences({ - @ActionReference( - path = "Loaders/application/x-3ds/Actions", - id = - @ActionID(category = "System", id = "org.openide.actions.OpenAction"), - position = 100, - separatorAfter = 200), - @ActionReference( - path = "Loaders/application/x-3ds/Actions", - id = - @ActionID(category = "Edit", id = "org.openide.actions.CutAction"), - position = 300), - @ActionReference( - path = "Loaders/application/x-3ds/Actions", - id = - @ActionID(category = "Edit", id = "org.openide.actions.CopyAction"), - position = 400, - separatorAfter = 500), - @ActionReference( - path = "Loaders/application/x-3ds/Actions", - id = - @ActionID(category = "Edit", id = "org.openide.actions.DeleteAction"), - position = 600), - @ActionReference( - path = "Loaders/application/x-3ds/Actions", - id = - @ActionID(category = "System", id = "org.openide.actions.RenameAction"), - position = 700, - separatorAfter = 800), - @ActionReference( - path = "Loaders/application/x-3ds/Actions", - id = - @ActionID(category = "System", id = "org.openide.actions.SaveAsTemplateAction"), - position = 900, - separatorAfter = 1000), - @ActionReference( - path = "Loaders/application/x-3ds/Actions", - id = - @ActionID(category = "System", id = "org.openide.actions.FileSystemAction"), - position = 1100, - separatorAfter = 1200), - @ActionReference( - path = "Loaders/application/x-3ds/Actions", - id = - @ActionID(category = "System", id = "org.openide.actions.ToolsAction"), - position = 1300), - @ActionReference( - path = "Loaders/application/x-3ds/Actions", - id = - @ActionID(category = "System", id = "org.openide.actions.PropertiesAction"), - position = 1400) -}) -public class Blender3dsDataObject extends AbstractBlenderImportDataObject { - - public Blender3dsDataObject(FileObject pf, MultiFileLoader loader) throws DataObjectExistsException, IOException { - super(pf, loader); - SUFFIX = "3ds"; - } -} diff --git a/jme3-blender/src/com/jme3/gde/blender/filetypes/BlenderDaeDataObject.java b/jme3-blender/src/com/jme3/gde/blender/filetypes/BlenderDaeDataObject.java deleted file mode 100644 index 31f23994f..000000000 --- a/jme3-blender/src/com/jme3/gde/blender/filetypes/BlenderDaeDataObject.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ -package com.jme3.gde.blender.filetypes; - -import java.io.IOException; -import org.openide.awt.ActionID; -import org.openide.awt.ActionReference; -import org.openide.awt.ActionReferences; -import org.openide.filesystems.FileObject; -import org.openide.filesystems.MIMEResolver; -import org.openide.loaders.DataObject; -import org.openide.loaders.DataObjectExistsException; -import org.openide.loaders.MultiFileLoader; -import org.openide.util.NbBundle.Messages; - -/** - * - * @author normenhansen - */ -@Messages({ - "LBL_BlenderDae_LOADER=Collada Files (via Blender)" -}) -@MIMEResolver.ExtensionRegistration( - displayName = "#LBL_BlenderDae_LOADER", -mimeType = "model/vnd.collada+xml", -extension = {"dae", "DAE"}) -@DataObject.Registration( - mimeType = "model/vnd.collada+xml", -iconBase = "com/jme3/gde/blender/blender.svg", -displayName = "#LBL_BlenderDae_LOADER", -position = 300) -@ActionReferences({ - @ActionReference( - path = "Loaders/model/vnd.collada+xml/Actions", - id = - @ActionID(category = "System", id = "org.openide.actions.OpenAction"), - position = 100, - separatorAfter = 200), - @ActionReference( - path = "Loaders/model/vnd.collada+xml/Actions", - id = - @ActionID(category = "Edit", id = "org.openide.actions.CutAction"), - position = 300), - @ActionReference( - path = "Loaders/model/vnd.collada+xml/Actions", - id = - @ActionID(category = "Edit", id = "org.openide.actions.CopyAction"), - position = 400, - separatorAfter = 500), - @ActionReference( - path = "Loaders/model/vnd.collada+xml/Actions", - id = - @ActionID(category = "Edit", id = "org.openide.actions.DeleteAction"), - position = 600), - @ActionReference( - path = "Loaders/model/vnd.collada+xml/Actions", - id = - @ActionID(category = "System", id = "org.openide.actions.RenameAction"), - position = 700, - separatorAfter = 800), - @ActionReference( - path = "Loaders/model/vnd.collada+xml/Actions", - id = - @ActionID(category = "System", id = "org.openide.actions.SaveAsTemplateAction"), - position = 900, - separatorAfter = 1000), - @ActionReference( - path = "Loaders/model/vnd.collada+xml/Actions", - id = - @ActionID(category = "System", id = "org.openide.actions.FileSystemAction"), - position = 1100, - separatorAfter = 1200), - @ActionReference( - path = "Loaders/model/vnd.collada+xml/Actions", - id = - @ActionID(category = "System", id = "org.openide.actions.ToolsAction"), - position = 1300), - @ActionReference( - path = "Loaders/model/vnd.collada+xml/Actions", - id = - @ActionID(category = "System", id = "org.openide.actions.PropertiesAction"), - position = 1400) -}) -public class BlenderDaeDataObject extends AbstractBlenderImportDataObject { - - public BlenderDaeDataObject(FileObject pf, MultiFileLoader loader) throws DataObjectExistsException, IOException { - super(pf, loader); - SUFFIX = "dae"; - } -} diff --git a/jme3-blender/src/com/jme3/gde/blender/filetypes/BlenderFbxDataObject.java b/jme3-blender/src/com/jme3/gde/blender/filetypes/BlenderFbxDataObject.java deleted file mode 100644 index 3988be7f3..000000000 --- a/jme3-blender/src/com/jme3/gde/blender/filetypes/BlenderFbxDataObject.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ -package com.jme3.gde.blender.filetypes; - -import java.io.IOException; -import org.openide.awt.ActionID; -import org.openide.awt.ActionReference; -import org.openide.awt.ActionReferences; -import org.openide.filesystems.FileObject; -import org.openide.filesystems.MIMEResolver; -import org.openide.loaders.DataObject; -import org.openide.loaders.DataObjectExistsException; -import org.openide.loaders.MultiFileLoader; -import org.openide.util.NbBundle.Messages; - -@Messages({ - "LBL_BlenderFbx_LOADER=Files of BlenderFbx" -}) -@MIMEResolver.ExtensionRegistration( - displayName = "#LBL_BlenderFbx_LOADER", - mimeType = "application/fbx", - extension = {"fbx"}) -@DataObject.Registration( - mimeType = "application/fbx", - iconBase = "com/jme3/gde/blender/blender.svg", - displayName = "#LBL_BlenderFbx_LOADER", - position = 300) -@ActionReferences({ - @ActionReference( - path = "Loaders/application/fbx/Actions", - id = - @ActionID(category = "System", id = "org.openide.actions.OpenAction"), - position = 100, - separatorAfter = 200), - @ActionReference( - path = "Loaders/application/fbx/Actions", - id = - @ActionID(category = "Edit", id = "org.openide.actions.CutAction"), - position = 300), - @ActionReference( - path = "Loaders/application/fbx/Actions", - id = - @ActionID(category = "Edit", id = "org.openide.actions.CopyAction"), - position = 400, - separatorAfter = 500), - @ActionReference( - path = "Loaders/application/fbx/Actions", - id = - @ActionID(category = "Edit", id = "org.openide.actions.DeleteAction"), - position = 600), - @ActionReference( - path = "Loaders/application/fbx/Actions", - id = - @ActionID(category = "System", id = "org.openide.actions.RenameAction"), - position = 700, - separatorAfter = 800), - @ActionReference( - path = "Loaders/application/fbx/Actions", - id = - @ActionID(category = "System", id = "org.openide.actions.SaveAsTemplateAction"), - position = 900, - separatorAfter = 1000), - @ActionReference( - path = "Loaders/application/fbx/Actions", - id = - @ActionID(category = "System", id = "org.openide.actions.FileSystemAction"), - position = 1100, - separatorAfter = 1200), - @ActionReference( - path = "Loaders/application/fbx/Actions", - id = - @ActionID(category = "System", id = "org.openide.actions.ToolsAction"), - position = 1300), - @ActionReference( - path = "Loaders/application/fbx/Actions", - id = - @ActionID(category = "System", id = "org.openide.actions.PropertiesAction"), - position = 1400) -}) -public class BlenderFbxDataObject extends AbstractBlenderImportDataObject { - - public BlenderFbxDataObject(FileObject pf, MultiFileLoader loader) throws DataObjectExistsException, IOException { - super(pf, loader); - SUFFIX = "fbx"; -// registerEditor("application/fbx", false); - } -// @Override -// protected int associateLookup() { -// return 1; -// } -} diff --git a/jme3-blender/src/com/jme3/gde/blender/package-info.java b/jme3-blender/src/com/jme3/gde/blender/package-info.java deleted file mode 100644 index 2fcb4954e..000000000 --- a/jme3-blender/src/com/jme3/gde/blender/package-info.java +++ /dev/null @@ -1,8 +0,0 @@ -@TemplateRegistrations({ - @TemplateRegistration(folder = "Blender", content = "tpl_box.blend", displayName = "Box prepared for UV texturing"), - @TemplateRegistration(folder = "Blender", content = "tpl_anim.blend", displayName = "Basic animation example") -}) -package com.jme3.gde.blender; - -import org.netbeans.api.templates.TemplateRegistration; -import org.netbeans.api.templates.TemplateRegistrations; diff --git a/jme3-blender/src/com/jme3/gde/blender/tpl_anim.blend b/jme3-blender/src/com/jme3/gde/blender/tpl_anim.blend deleted file mode 100644 index 4c7cdfa63e3fa843207e522a2f28f0d1347dd912..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 623040 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

    -V3W>jh{FTSEl1i3&yn=sn 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჆|U3D&}V*|7tV(JF`5(gaB>%W^ougW`(Ja1 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

    WIS4r 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 diff --git a/jme3-blender/src/com/jme3/gde/blender/tpl_box.blend b/jme3-blender/src/com/jme3/gde/blender/tpl_box.blend deleted file mode 100644 index 7645b243f2ecdad4224c6436e45dd7a693e75d69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 449600 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 z zm(Mi$c(iK0>ho1_+-K}hMc_xxw^Uba>}U5J=pFV>-@Xd!QmnpbZ}Z6a>=(#fOZpo> z1^M#rI}l@K`kn*9AAFV<+Iq3|V~V%)&bOp|>QA}X_;XXr`;M%g#`%^kfAHB~WcY+< zQ@+gnN-FP6^DPDWjEZM74rChVTeAGYC;bI+YWS4-l?GOCGt2r{WUqg#F5N6YJqGA= z$V+T|+$77Ic&?ywaJ#=T^T#|_5IHj+*hcTt)XiRNM7(8SW=Z=-{l&+p8kxRv=I{rf zl$SU~-dS_{&p1986l!~)y3{|*v}ZjY`SUGVnQ=A$-1r-fmr#1K?$oN#3K4eJaW(Im zd3|Nawd@wz(rs%Q#wj6%@SJLBZ_T6`D#hris zVTJcU+hknLz&(d-{m=W(zH95zs}H_P#?}00;iEFH<{BASGh4>h+%My5o_yyU7Hzv@ z%w^1Jo4r^yFjFnYeQY}d)j(x`DY?tDunAN}T$VNQF~<7(WwnoL8^ zZd?uLm3!K_8aefm<5HnlytB-=WUnK*u3+2>*BiX=$@`nU7sB;LFgEnK`IrQOzTYr! z-hnf3iI~@6c%JEx)4BEEIoGTY+KXD|x?oVd;UBGo^YV^4|ug-zV)fCKU}i5 z_LMLG=>A`Pd}i%_QujJ0L(j{uv=2(>i>!(BHkC8mc|Y%^V?6JrV}5^X|IxD_e?yh| zwu-hAeN1xT%uf~UH?uR#2d~QKA8q`pfnZWgL3yf{H9o7P48->X;wYkeN4a;$*^g3~ z!WGK_(YBCCmU`QqrCP?PX9!IrQ0-dKg4}c zo%JV`cjKEBJ#?>I0sg;_bAeavyyk zL}Rf?&J;$+8U0)Bib+B$;Y}?yZUGZsr z#_?G^#n+katMXa@Zn^Ji`wbbWo>dLnLnUTH`O1Lg-Zu_x3M@Wft-_bS_(i#f^E}1t za?p;hPg24_!a%}6!a%}6!a%}6!a%}6!a%}6!a%}6!a%}6!a%}6!oZ%%fZlaZ?icQv zb)W2Y!a%}6!a%}6!a%}6!a%}6!a%}6!a%}6!a%}6!a%}6!oWlr$nAb&_?ta(Z&C7n z7`_L?_hE*%n)j>w>~~|_@-AIc+jvgHy4B{Z9PZZanlDC?C_#aH( z^iGox-fnW&llwk>@V!tomKQ|I3(n8*eBTHC_e}Nu(^65P9DGM(*p>^ln}b6ST>X4g zPV8lH%lx-_!J!AP-{P#;cOWpH7C=z$xyIP8J*yaW6&gctO{)!R749=Nii zFb+L%#4q;1&9Om`KlH$%hdtyusf<7UUJLDl?+tX@c7i@}z@rbo z?Cr)sb}4rp9)0jV7LQ%}3peiYk3RU~cNqWJWxw6{1CKuVPK(Dbe&g`ygWqBC*o8mr zxcs9JzJ7rzKX%J)dyVstKKMb4$1eQ2?TGzHAAI=%#y@u9FAk4B_&$rrF8fXUcK08B z@Fn*6hF$hM4v#+gZi~k*<&MLn51!*IcG-XG!7V@f;MtB{+Fxfx`|A~Dj^m6&t9y^( zA3MYk{ZL$gqWZlu5#-@=l+q*PtXVhCD77O-W_iV4*^UcmYL{DY&u7T%-evp^mWBP| zzv;_Yyg_kgpEtS2jn2mdj&VMb_^$s`YwXx@Xr&v&GEQQ0-5*WWH9BDtpfGS-jxNdCCuYM#C%>f6nmM zeZ9%u?eGbI@QEHg`|`jaEq{jy51Q^4xwp#m4ynFIxVq8uWizkEPMpZN*$vKi-$eS4 z;j=(?SjLsh=b1g9&zaseGlJ)iY4wN&<@014f9~cR#YzOtX|?j-8a~r2VipE(Fg!Nh z7|&;~U};CRtD&_fzG-i6yQY28UUC2KB4OC_worDUsHih_SfSRqrebgCSEk(EYm9yJ zviBOf@4)DGReqBxfBDTOCl0_72hn)v`vl&m8dDy|dm1V3@As5(i7*&+x0gR__#Aw8o!_p=UA?kf3~xRE9v=tVPr)C2Vh5g$ zEc|sHvyE+qUH8-!S$UP%=(L61*Y3~pR;FE@<7~%{&2>zp^L+wgp>UP_?Cm(6-R~2ua=uUSR(B_-K!$Jlh3~o}4Bym)>pH{tuKRt0RnGSb-sbM)6v*%m zzwo`|1BP$v!F8SCdt%=g$QM5u-zU)iB=~)TQg(d{Ymu>kQw!?)M2?zTe^Qo`){s(+o`;+Oos)uj*h3~o=!#DNd^1ZZX z@kxu9pR#Ou`-;Z3jqcX*<-G9|a~mkw6(jFj)?W*PN zjk)c9zW5LMZcCTu=r*t$TV8#4YH>i8d%7VhBgiwANlWkzzwljFXZWTbT!(4CTAMCt zZ(fmesO5`4wyoj3=8g;8V&x!TCVU^@Uta<;&oPjuCWmkMh3~=R4Bym)>pjg^d-Iys z)y?PRy61W0C+0S=8~X|0r-b;<<~dNnz=Rgz8-C%t=|hHZ>cKUh=4-{e_Kub{%Uj!8 zT5}2VeDO8D+tO3SZDU(Ub7L;P&A$BCD;nRLxF5Tp*)XMl;TwM8yZA)IH}z0|#rtO2 z+r@r)mMyMdcG?pE3}r>j+K$G~j^+AiU0astD*58`CuQEqs? zPey`o_=WGjlMLU~L-%)L`Cik|+A4?4+)5MRdqVgVC*m|z#1~&)mAcJeQ)Hibz9F=I zY6SR(U-+&&#qdo%3~!3%yLs(7tJgKIU6EyEoBaszJt6#Y6LA`%@G#-~bic{Mx89qb z>IC2L3*S3VHGESKZaGd~bo}C)WqQFQ-AQ{#TSN2OoK6Vy#-IJM#uXi<^4NF+&i$R~ z9r>;ozGD)6zuMj3$&%q4e&M@&so|S?aQ!LHvh8=?YZ}{|T%EDxeDP!1&Td=(NXi~B z(VxuoY;3wYe8Vq%mz`$#rXHej%Ja`cku7J!Hyhmf&mMdAVKZU?*SvX{VRUDfooRmSVhH_+CtL{5Qlit z{K9wLKO4TOhfu*pfG^vhtY}%?(w58K=Zm-fNlmVPGyCz-D=y!0-&daszTp?XcYM_F zO+94FX_nwCc>82|4kv~A;`6_M@@3)M>d53X1E zTGO(!`JCp)oMKyT<%>UYf_^jmG5Y-5(w|Y8f+hHdU-&LN+we_2xUS*L#P`aEjs{m_ zY&l>2v5hTj8avu9D6P%ewJlha#J4#=A-?w-yU3HW6~5sYz6VzrzNv@7D`W4Uw6-;# z*W7r1Zp8`QKba8zl!-VE6|v&gRjKdTHRjCZwV~}(BfvNO!go`n;hTCWzbcmRoR5{d zCjq`EgwNwZX^DKN@NE{kU-de>WhyiHhF|zDUS;^E9^5hn`C8qwZe=d#CTc5Re9c6h zhIXR$l~t+hLu)4M9(Ty7BfvNO!gpVj;hTDB+7ch%6M4cDA&ZO zwoi=!-|!3HjJKj5`fnJU@8#_c`rJ6{$2>0Ix#E4kOZ~UNvv(Sz@F()T!3^)C|DKL- zlEOFq!Z$^u9?EVShwmJpijCqsN4()XpQmbjNqpbs?CTKA}52r5#?2WbUovapO9tcXL!BoZyBHL z&QHL62aHb^h@W07;CET_7Rd6Z=V`|NY?8YJM_*YH-`#ak&7p#m!CLi^k zSsjnQpL}Chf8(bhUs3M|sg;>hBXRd!hMq8dcAwqt&woJfdLH_^9XESd{J2@=6aL_{ zzb#xpuHBtYRzCHo+-v-~$#nVQ@5~0(${!1l3wH6@%IWyD{J|&j4bR!y`+MnWTh`y$ ze9n@0fHEv*mgGLu(B$$7fA9$}#Ho=3-|Zdv`@Xv6**N$>jeL*qfsC^{k*^8JnJv2XeJe6PMP(gp_+h&~oSE;C6&IQB z`^n#;nckpxru^!{im{T~SMH<6WU3|Kax8jsHozzR!6(+?+4D;8_dJcqI?Erj;Zwh> zcb5EueDU2v_*6N#-S_eF&(@8MtY1I-@dZbT?M25M#|86*&mys?EM$`gMM>i`j?e5Z zW#cVgNBPuw7I>ffAX(OD6^wT&x9?r|+c<^yxH%o;J?&gug71S*MakSTdh!8Ce`pNx zJM^#N{K4`ieANSGpZj!LHtWNG;g9}60*l|N2WK@LiL6zBV=eiSkteO=%|OJDGCU zS1dKMf~Z?=99IigCG)Cw{XK7WLg&wX~Pa#3!NYr@c~#hRoD&HGGy8oa6IZwvWk&E;Bp~ z_t<>E@Yu99o=-i$0LM7;&QCh|R={yefWt5cRUCgh7h z+00wJOq~acmBZq1Um5mBLNzs=^W4BMe3x8d}bo`u03A( zmQx-{a+vcIxfQ1*gKzjHzUx0__@*9Q=h1x0oYXDnX4RwQi(i_xC%5Ftw+i1T!Sf6@ zO<@k-@C)C=|7Q569^4{C^R;4K+j&{h?d6NF$=Z`!a^z2s;@cfljOJwK@D0E4-ScU~ zH}&B9jOI%|F3{M}){w;<`}yLlv-aec9C_U+zNd2@KKO<2@(qS>>VZ;{yL_4XR9kg= zeN@KG^TnUs+R-d?>W}GT?2XsGvcdaoNM$e8Vq%cYfCJO+C1VGkmqLShu>hV|hz%0hcd6|M-66 zD89#K$`aP5!ctNnsC{=}xPVvL+Geray*B1-X!^d}~9eo`Ev zHQB4+JI${+@Xx=mGkjAIeK!uhCU|j>;mcfK>XgilE3^MZVZQhi#b0S2SC^i5%ge)F zt?feIIoY(v+JopM$&zm@x|+;8pwis?_d59=35@3(qqZl#c` z*Irn&|67ebEGxO+`nXkyyWh%o?AYAgZ?&N9=WRvuMYo+|&6mjEeuhft? zTV}|6N7_)>YTY(-zqR;IbN`yW3`(xj41?R>u?#sVt{2^!JZ*@bv zp6xZZHFUJJv3cA)U;MI`RjXDvmM)eH+?*$L9~ybd$7j!k-s7KjhCx5UYs;~-KS@EZSg$)d0qOO{gV^) zpxkxd3u`M&pSkV6d%tvdg~;ArSAV;rrTMao2fo*+y57+3O`A@-=)B7Hum6<4{n5Rz z+;simJGTtn_J;w1SFRKM-GX^u^i=-8l?9J}wW4d&GV%ZXJ?EBv<-Vsr)LQYCk2Hw? zv+g;(^o0A5dm^>yoaIaIf8}pC4E*G}W2(RYnV0Xse&3U--&fRImGA!NTYlwe&ra_9 zjLJs#>;AN*uJS(~d-Im}7yseDH@42(eBE#VQ1yBF!Rd{!d+vif2H$h^Kb%~?d0nd1 zk7=DAcw__(H}9(am*Ia~^zBQ3SH0!VPc3q{`t4BgJnz3#6to@k+~3tlR-J_l7y502 zbtZTBwY2)-hfb&{uu6*4^O)!amONT(GS-@Mm~XzNVoPaZ$3kx5D%UrPSn^p6~0dcJDpkejO0Y}xGlR;3%ma!7f!&}$#i`0uxRik0`T z(z$YP_%HAZ3yb72+HCK}8T0+$Xj@Th)c)I~Z!eEHzN;mTfJvk-stEpjGyeIz=Uhde4i?>r&(M57Hq;)u*u%JewTf=0r4T@9+no*n(#xzo*9Yj?BcT@;PvXFZT*pcgb&W zQT)B^lP37%{9NVWcB92#!zb@wi>kcOb63$H3hpX;(%M5aDu++qhX0_RS_;ZjwXA$L ziE)lw_sMdwkKy=6{|fK6EA+}gX6Dn+wR|IfGVkeam%|!%^yE?fFKsxlv2@Yu#xYCb)5JQ^VT!#@GxbWci zmFM~k?>pO+<>2|BS?Uy&&hG zni${nNk=wY+NQ)4krDlbY}8FS``7??8M@QfF}|p-ugU&*C4f zo2Tb%?wOc^B3X!ndreM{J|&N;n|nFbbQY(53tSi{#E48tt$UbesiQCdcMwc zqnC7pB+lnm4sQ21rvI4p`MqU__4-|`$@%=8)a=yX{CEG;YGW)YpUQpI_kYyVSnrG1 zbyxYtE^jt`lDqEe{@d`_`OA1d%cLB{`8UOY)=zoI*yri8!@FcEzu0_djC`nLfj_=s zB0HlzX*|x896NuOWnHiD(&?|{ZqrYw-atTp!ETpKQp#gI;v0M^Bk$wL`fW?StAoCX zzFha3EB$tbTs|*Tf4=@9Urg_(%5`(Y`kniR<-z^Ja#LwoE_thwX^$oMnEj+Z_H2yk zAKmYpd6!Fj)I@)0q`1HAfZxCIT{H5?{;gR0HvMInLiQbqu@c|EIqDM@;S>Jgv*cTb zPk5fNgJ}lF^>60RWcd4LQ&BYdgg^M~`L^K`o~Oe1WZKl&)Zf^AhQDt%nf|c_pYR8t zY=>tf2flCSb;+$7{jOQ|-#62^=!g>F6aL_{WRu|&o((qn zzF8E9!FBKnfAEP8JbTIa&7fq=+<(7Xx&q#(=KE%h=VP1`aSHF#F&Flj1f(yZzf(<6*!A zbB%*iSwT5|Cd*pRPFpTnj7;Fr12<%G*vo*;EJ5JV16Tf^W`D5c4Nwi9K*#v%)y^!1Y@k_Q1)QPd_a1haR|+LE{g5 z;0~A>#-RtU)8ep~!I>rep$Bfr;;;v`!{9+GW?Tj!EJ#al1hrJ9g%qM!_ zhAj?zX$8gCDeb>{9Qe`Vrc{)dyex6XPGd_>IG(55CXhDMycu|6$t?y5&b7 zJm(YGg||37`rxsTUCJGW?-gavTbQ4w>2b6F*rELNgK_UYUJcb_jZ^9;_Kb;+## z?3rqCR@a`r&G`{|(@%}R9gl_m;@{1+-Rk_E;JChs#@}9R@XUw$d{}mkJF@PNCV&10 zPq8{5D!G|YMYo&zQ0K_pub0f4@Beh|_zAwgA)L8ME$I<0Zhjh9f1)yc!XJEM51xJb z`8A8BmIv52GV%w@r&rY~TwP-M@=ugRsm037PlL>M?3mo}srxJQ?#ku4&M$k(tOBo9 ze%U8I3pHn=VT_r-LD%JCEo>tjN%`y*McNVVs^obS-?X<9=e&=8j{Y8B{~#9%#Nm&G zxT2zuq#n_Uot-rJKgK?J-H?@^Fu9{XN+b@z5eI{j_-mbcP`>WSqs)g^{F5!d->$mu z5UkGoWb;w;qG-GNh|Gzizwr}%eM@{OUv4s1GST2}pDYr*6W3 zP)#ib>PmLU(Iv})WIs}bh)h=G5bhr6)+q&Dwlk>(; z$ZN1vR|wzcJHf1-P=Eu@GKX*Yh3~TMhHvV@HJ9OQb;AWRZ7nMr+jHo`^TnScUQ18O)oXAs zem;utz%vFuh^t^oWCr`+0a4!xJzCRgUA@^IRKEXHq!Z)6& z2W0XLUuQR*JAsd;qnOR+x|TLLIi;9> zEAD)vBQi;OZ$vSaA6?IVTJGESy=c$h>~j&G2l8Br=WE>04VqqHPlWV7F zyu{ikAGY_2d;VE-+>q_)Au|C{@|1PfM>sW{(ajg{rj}0xE~UJjjUJLPuYFozUdFF z%zayAw%g5Q=Dw|5oM-OaKIMH&uHCb}$C>qaqUME;N z?vO_wcaAEU@9A&+6y)o<(KJ~r(|6o~Klo%1;MteEzA48UNnJnp^UH=)KA(HPIN$Q> zZ;kx}pZ^hYqkZ<{3y$(U^Nm~m{;ec=4u4d^*9!C(Ycjn7K7VK9FTKGoWM{=i>{ZS5+6$t|Y1~?wj|8qRxy>gBd?t5Jv7dTE} zal(C$-bA>rC2#0kVhU5MhfS9`Wrt5`HDIo7%S6vJb*v=tSc~l!n4_>Jl`tB z@yT}V*xcn)&Wn4!PH%&Ej-wbQ2KiJ@-DKWun(4h`8s2l$`ws92pY#{RsVU!K!snVm zd@e9@*JrlgEDCxrO4Bv={Ng4frsETt?RGPn;Zw?zxlZ2beWu`M`Job@Yu~89`1n+k zi{xJf+3{v`-ja?_+uy<`hTs`_XU*w927uJ~e9H$jD!}x_Ux`?C0ON{G-dXXRWz)8`d99+zdF7p=VsN8% zgKJc0;lhPkw5!tUhaWnjg05b1dK`#O#4dTX)?}=j#FM{r$%d9F8juEDqu#*J{jfxhN7vXfj_6c*N| zqOL27=b8REoxj$|-LErw&|cIs$Hiicbg;| zdR<}jK;M@c?@=r7r0Xxc1Yc3t6~@Z+U01*#e6k1d?92Z5h+lYsZC=+Gg_C#s=Wz># zt6KT#bp!X24z>JoU7>Ptd)kgM?jK9`mV3OJ?-AFgzE-d>)k9+r14c>8XWV&)S{enI zf)yH{`aNReo9_{i=V}t0_IR$QbbHUWrTSUQ2_?lTe>yh@cK9Cg>tvn&I$xhTpW7ag zU$EOHla%?s@c7>&Hdjc&@%XxCvcE@c%4Pn#qfN$=-R~tc4+8TZFb~4;KO0_{A0g;Z zmzOTFZ%{64Ygln^?(Y?<%%-~4n1%sZ#3n^UIrhY&j3Aeofd~ZaPB+^=z$xuIP7I`W{Gm52d?~0 zmS2kp=gxzG9=INh!yY(y9t8Bj4O<-cz^%3wMmf;~SN~>HPV8lHR~6|pIP}2vTO9Vl zd7gQt3LJXiN=j_~Svh8OgSQ#bB(KXo1i^uc#pJa)mmaReTH@H;FXyZCkE z2|W7X>-V$qZtdVV4v#+gL5s&O?Yq-yKln!2GE_gR?@sB?EVT;Eu{Kw(Z2jBEoQ-17HZ*KhKAARsc7LQ%_ zI}VRN_`0_l|JbG6ad`B>_gg%6!4KK?@76#1;LA#lf9&En4v#+g9*f5={L??U{?P}| z@ff@CABRUDJod3mxufvCqRerh>&p6nF#C@k%1=L1V%s6*LQivjf8q0Tw9q4Pcpibw zo7bK8{D-{$9me0#g0SD9-Qcpuo!-9&$8}INes`KjAls|eAY0=v!zcW~CrEhq<$*ue zn)PyhEy>Iyu)WIj=2a*22pDFR&t6%i9i`jVdrW-O-rVC-x}S88b81!Fl_q_YZtmPm z)c_Qa6^eaJT zv_99#if_vm(?0uLGOMO=G?P6?8vEqs?=^DCKjzq4GUo3sUz3RYinR4oTCPwBx2;FvP%$-*DGiJL! z+o_r@v6Fdj-|O8~ut9zqk7F&}ARG1OqsE_`)RK9x#N9HvGUq+;2cPxtH++WT)E_VK z`~#U12%nyjgM6N!Q3x%;XUz6UKJ~ql&XAROLHX2j%pBc}{WnzfZrwZL;gMVV54Jqm zJW?sJQu)+*N5Ew}UZCcL<4)1x0;?Njl&QYD-_X(07O*?sV!rs38qY6Xx}vSIaqW1X z;rICa2TNcqC6;J%eY>$lJcguTb z?~bt-r0SP)Us8`pT8`-cK&|L|Jh`QzLk$m|hnajlH1P|L_#F>V{H}VZ zZO<2fY+GYPdt>P-6Z5Xc*&*?3Qm!0Z*n~3phF|!`81;Zm4qs~;+RklkTfVZny;UaA zVe9yLzW5V;zooUg`puNARro$DBg#@lw;kF(83O$U{R90)&j(EVpdT^5^n77$puZ@s z@dla$a=1i#{L#eqh{}3BV(yUZmSEEBldej=BV?W*7x?d`-dot~eKm{zqE~SGi|a4U zGdevHnOaui6aL_n^J93Hf=Ifs#`C|UQCb}>o3+{f?GiQl$@SgH$olnQnpwy(?-hOh zjm@WY(9^^x{K2O<_7glCsZ03OBzbAsfLGd7wKQa*W2rV_kKS2;kn*t9~;Gyo>$!~xsE5? zXP^Cxo{ETok`I~wpS=EPBljGa{dtprKi=YKw?h?C_@CC8^4aVBuFGmeGKG)H_mln5 zw6Fd-OR;hvntarIUV5Fsf6;vZr+~3jkguOaRFYcK7Nkd(sZ1PK;153Qs|=sik6#A= zyndN;U20_Qe|l{}53{+Oab6#@U5?YC>wNz>eYo^&hr5O%WaU$TkIGNu&rPOP&ydwo zJ&UV7aTz}04?a6<44?4qdzjwqe4o#3uk*9xQx9yp@i|m&d9e9-Oe>#you9^K>5=p9 z0wwb zk7p>)?eGbI@X7faJbQY*+4WDgw|(t$dwyVK_&iq%`f>T`bvk@~%oZL#RSs_Vi*Bzw z&2>`UqT|i}6wH%Hi$!8Fa56IHp3V?1_53uBPh&|GrZ~YT{J|$~;TbuTca6v%te2n7 zGh5=84k|EPqWa5->rOd;J*eOg{}*R5`}LWtsNDM3>^&GwT+Uw9L2Z43EKbrjO&VhQt%5^7s zw*Yoz|x-*X1==Jok#4GVza)#{>Y`@^6 zcjD_#_HOL{Ku$(;yzcBg&G0~upSYa(ML*a0O|CoRn2laf{1UIkZ%@6cH{#l$ci!in z?A_S$s}~kie_pTm`QZ;fIbVZkQ{J(kck1;e*Oi)ce#Lr~*)G>tq9MQd=bh4cS7v?P zDaL$%aeNv}(|6qofAFd0(*(~(3jXDKlRUUBdifd~8rffWUX!}R(_j8+y01IAp4h#w zJ5#&-btmJa84u0)=vyF+uG_qCja|Ri zv67B1oXfSTO9V#=PR4w&;wV0mf1h-fpf=4qX(|v z;;@&&nI-(82d<>S_`@DJ8F8#9W$AIp=z;6BIP8Jznia;O2X4sXum|pi8DSiH;L6W7 z<-}eFXO`GM^uYC49QMF@-Yx#D^5D<|H*9g(1NVZ=!mQmnIP}2PudwxJ@!(!A2;X7`1(d$kJb)&H;%xg4}Q?%v5Q|fp1`9IzWf{;@74}}04% z55D+Z;~%>v^uxCQaN`es@SPTqUE@z_!lf+?tU`v%wF2b<{*o%_QYlQgg^MiB0L+Jalrd8GV=e_n*5eU!SUgzS}@<0 z=Xoxo=&Dpx#CXp7D~)~fp*Aabuwyy69R-U(!k9yvw-4zpv(%^+x_z;p!^O*NJw2F19l5>OyBbc5GfLxig;gs?O_A6zwljtiQ$`iaLbYDPj=n!%)9-! z9e(NV>ZHo>4ZrX`bgAK+dT^a)_?EdScG2(5yL?a0oq;fO@D0E4-Fdm;n|cVNg5S|@ z-DSTs@A9o<+ow9gH~hkP$tMlp)Pq}&OnmRU--wczQeQ z_FTU+&wX0%+cx#s^Edlk#C@K_^C9>7%qwyc`~T#`^Hw3bMo3JhUM#pF;(NdSpEvf& zyZ_C|-Jdb}c)V)ArO!jaai6jH(-HVl-*-H^*4XDh?%3Y`VlT|ieOtxqeOsGH-nV^G zzV)lW@l%j5`vId6$XJ=aaT4$cpWRp6da?Cm3a9Ut9@P0w%GW~l+i4u zyids1>HEGT{K04OHHJ@kHl@mZ&r#)_>HCgBK9y59nI{U<_kBnBgHQSkcsAve?>Tl| z9f(i;zTdrj6Jicz`t zjrxm^PbGQ!zV8Ts@JX5B8F^>T=|AK6e6c{=`_!f4&zbhD$0Pl|Bl0)IrD-l#X}pBe zrJHXVweFNu*A~yypGm)b{N_!%RQtytS1i2i;m!TmpXy_dIlsAb!|}&dEI9Dq&AR=j zWgp)3?{9Cce9zI(RH#gnZ|L1G_9_<(UNLuyo^Cr_Y+WsQ#i)F**i~EawfI}ks;zFh z;EsXeA3s*5_`ARI>xwUYv}nsOdQaUVW!SRr%=MLDJz{;uUI*Q)WvKYf#xLxAa@zdH9CSBd?ub@!462R(f48 z9R7IIzS}-=`4u$>?Df^H-7g>eK;aSl)?R7P+hPt#6;R==7c|7j^7+@gmle z`|VKhoL45_ckHS(WAI;+V_;mGy6-!39l>=)_w}Z~@RX z@4b0r*sSAk|Cfz@^13e?dGJdnM=vhtx&j=>#c2HXmQ&{a+AP-wnzFmDV1NAUinA1} z^M2Vp^19-M8S_2;WtT$s9f+|qeb*K62cHxNo_*QhcU`LXc^z54$@2NVnqNuXzhLYC zN~!;-^xtD{k9yDQg&Chp{YrjO)<&;WK9zfoKR2l*cimLT8lU?9cb$!MJ*kay%)0K* z147?JRD6+Og6q-MZQUZ!cD@&5TULjXo-0SC*F~+Ab(EdFqN1WSMs<%^-FiVsQ_I@; zU7aNlmh`9f(<^H9q4cSY-J!4L-8$~kl*GKt%sWoaa^9-&%QkBo4NN% z-+J&?-Nrk1+I|Ogg(U9L2H&v@ZZ}%|HGOLMo4Hq|?ib5?{WD%7{w@q zpZd*Q;`^K8RK#&pLnx6+Y=r60Yl`=iM}7aph(tegvzN1hA6Ece&-mtBIdsC(?j%JiKJ z!ykOI2k`96+wU{{4ZNv#`15bBEq?dP+GCG6u;!_ik4yhOeuB@-BMwFpbFvl97A`+g zpuh2LtA^T-yXTg@mF#@QY5DC+%0YZ@5yfo!?QEW_GZ*k2JN`uN76t6<_s5=BxL@~e|0n7=&907elHvKYl2e{a!OHMnzbn(h&f06)qW0rDMSa#lF z{FdBl@=lu%Z8UP-H%(qPU~<>hWX%ykIT%YlWXt9HL)P|RDgt`o%D-;+V-!C84R!Ru z^;jJC@Z-)AfF8JEi^E<9XO<`@df@86Vaka;aPBwM(F50Sao7XrenTBSaMUmMz&#ZB zc6X_)L=PN#*h7BEo&f9q`D5B`+%P6{hn3NXSC=R7=!37n%hn_DXzSD6Z}8}YAGCPv z;@91O@aTgtzuWl7E`HEh z@BCwem9KB;$&-^96P)F#se{g5girW`Pb|Q*FF(I#vDESa+dPjk!CqBxOfbh=#sG6) z1)1#`JGx}=Rm)OvOmKmW3C@KBjXiV33tP{O0?ox**hV%I?TU7kZddj^g7)V2OY{$J zJ6E3%+GCD>dt>HIj$Gl=lwaR7OL-+P{*G-|n{#Vd;E03n??&LeiffH`u6x@ZIb1eZ zVt>qaZ<}ECy4U8B*S!zP{JZ+gE`{tn5MyQfu6yARKKpEaz_VXGopZBl!#0Zg>d5gm zuP!(8gR=4|yWzqjv+x5e)2@)&Za0(ZI}gs7;HSKQEqYLXsEnOIDVvr1sBgchCA~__ z^}b;7eI~BR$1Z`n|EptE(Rbe=j>8{!V)e0$^`oQ{oOCl^eE#2b{M^V7ywl=#Z_3uE zj|( zyPGhOFpw~iFpw~iFpw~iFpw~iFpw~iFpw~iFpw~iFpw~i2Lrj?PwdtAnFA^MEz0zJ z`1ZYf-oppT`}w?Y&-?d`Yhm0B`VY%HqB z_vph=U*f%6aJ+Zh{XhiXo#WM8Q)^7}UVemwz^Z%fOWWo>{MCZh_wa2V`5yj8c?VyA z3jHRb#2QORpxxP@&;MiYc~`~{cF0~Wa&9H zk=brHlSRCT-|H0?ZIB--@wxK3TJ%0EDpBv@t0gnXYrKu9Eydd`4>pg|39i%l^xwm` z`q{pRfBJEY&sbQiFXDH!w5)Dl-g5TG8dr3zX<6AAv>v~lFaBiTU+FS+9`9wWEx&zb zgEtc0*^C9ta~u5u@k;y-4w`xk^$Qxm-k%=8rOv7QPiGoA7{BLR1>%))B*<*Xj?E+E zx6|9;bvlYsBJrzz$7doGdVMQ8r*3Yk?E8iX^6}8bFZ#L1@9Kv3j^!=#MUjS%mbUTS zrMG9|cVhUH8qY6Xx}vSIac$aUjtfI0*Ld@C#N@9|{1UIkFULdT+IZ4Aj4$4n@w%X9 zWQ&n+mX*w5JjeEzH(5pES7n{IiS2eXnTcPKf^!(Zw&-T>Z}vEdVpOije*J0uM)kjD zeBt!XVGMupNtxjpd1uYnNF9#F=RSo~J1%GNLDO$&eCiy=$U29YcJglJtip~EYNF48%f2kvPmb68)ptpa-tW;;@H5?q%Q)J#d2-hdpraJU!@vD|^h86MNv? zd3w+T*KKjw%ixYG&}GVr9=IJAhdpqf*Xl2VLl0ct&rCV72X2`&FA#d*`YaB6;5;u} zPV~SP+qlIZxMhW59D3l;!yawD(2Vee_@sHgy z+fIpZ;u8PpgYUC=>=x4>IdKgheefku8~@mazc~NsgYUL@>{9=f!!1Ah;D;?9yTl(n zx_I=#H`(JGcHu9MfAqm~e8evCM;y5R(Ff0V?BYKP-z&--hq=#Q_AA4G+K#P1w;zHR z^fcFF(|Gepl^0$)PtO;~%eEVTeZLI*4cZMZYuxzrNLd`$(b4#19;qOAQOocNfAEPe z^<(7cYfZlYB9r^`NL71YX>~G>lwm~q?3G2@QMz62F!4=$qhE6SH@BZstDN(-$nxB| zm&h5!=riu(XN~=I{)~~kf1O*qDz-S{AQHcQgN+0GysDJA$nNDHR5d?YP3f2Wjh8>3 z`|&=XEy6FtGqxte85_+fljNP)|MfdQ+x^|=e)3P_mr#`AveZ)AqHXV14^ z`^Pc>P5d7EM=w9#_xzuszW;lh{3N^=@&AFppYs0s7k|<76T$0yCSauK!mhkt> z|KV$1pPc&CZJukhQ`$BthvX0Ons9d-{`z|2weapO5W~h*T=t3Z*XBV1ei5GW#mE;t zelF+}$)Ra+(Y^Es(Yx;IpMEi2@%TJJ*XPl#u3sdx{(XjrXPfqhUC=K+{FJTmg7}Kc z--sV$XPUH=s0H&+N|HB2Z(6^<`sy=Jx@XEa+CTR>=l|(F=tpb+ZHm4zrCX7n zJ{R7L^tAT>PI>>}Tj5Lk#re)%6LEjK(N+D?&*nd$Jj1*4-wXGt{(EQe-P7OJei2@0 zr^r_?aSCwu9vz22b^m?VJH?;=2Z}$;pKwV0M>wG0r~Q`t?$4DtK8n7-v7Jv|Ko|L$MQD1 zN51!PcrViF@h?n~%gH}Om-+>{eEz$(C6~YM8h_j5^4s+;ayj0o%H>yI^WsE*m;dGA zHBByiDS5fPl~ONX?_`b$&j`N=&xilj;ThpP`Q8^>T)3ydFBUlx;TPc<@jJp9`}U{! z13%x({k@0RU-_4Rz~7NG3(Y^^FW~9sP>%Q+^&rc=@w^sne)ToCT&=&&%hl6}pBur` zO99}I@h`>Cz#k$!W3>^^9^cx$_I8+|zK*CuDK~et3m`vU9}DZ}lZ`$8^l^E*c8$j;?+2da-qh@9`^4XPOh`L%G(&> zxA6Rh$;+k1+V8ww_mJahp5UpWj@b6edzST)J&q6Yp0!i&_@CP3;q3loS|A?zBzu-! zUOQOszBY>%p#lO01a=VwUiM`6iS45P7F{hMFbx8Ka`7blO#CmCoiXS6F`e!ywtv)R z?XO&2;@eSwnd%7FAY-*ZbFz%tlSl73!YcP^yTx*|yL1@6)A-0Qp&6gQHR=nKgGHxE=i9g%@!@c&O3%h~kH^3mos^oh6r|ixH^h~<7-ivmK z1E2rk7~PFVqw{*6|6QG&(!?brbsk;|E&O>!y56qUdne25^RlDB)Q&X-1vJB z9<()-@x&P8nSR|vevemQQxz@1)7VGrvhrzv@pEtV98tH4wCUq~IsA;Jf3e*kdZzRD z*e>C*S2j0UzuW>A-@eM0c`tqbXtp*hE7p4aHrJc4dzRyk z(&Mu%_eP;eGa3DQ&W+OZuC)Hn;pAfBFiW55DjBhw#(!A9ER=iRXUP>{ZFg z%hD9Z;57|qA9F^r0e{1J$sOZ*q8SZws${C;F4d2-6apUoFIKzb6#XFIJCXr@m%(~ zLtxR9=<~CkSA7-F@_mk3Z}{))Psyjx9hxf->b+*U6?1I=o-gmxx39AKlIBc4Z;CLR zyyxH4GyP&75BvMcgswW7H@>s^-F>N5?jGQ@Pi=%Y{T+p;&GVDw!BBU+d%HAE+h?9g z{{Hh=>6Q-VdX&=iyN0!&gHO`mRfM0xA3vV?JL7jf(l5U2u`9oxztuJ9OV)bSj)RmR z=3;&qZeG3(-u^w$cf5Px1%BW2now5F29PqcR+!sj~DL@&>opw6|dU3zWDzpJi>35@+>8$+7|v5x1O?9Zif zrwLs4-_5mnxi-Pci=w;pPTSp z;~~iB(*p|(IktAY`s%Cq>+dN~dCGa*dz$?{^{G!C#Xq%Ydo@hYt$Hc{!t zUiiWn+FkMIKmYlo=RD^*qh~$qS)88Oimw>G>}4+- zU4Q-cqnE$@<@TreOJDlZk)FNiMK7}U#I^`F5hn4zU3dWF3t#z_Upe}!ullOd4L95{ znwgogzpwkcuN!^s*M6;~ef3v=_2^ZvdX=>&w&l9(t}{3ZCX?-;KNl|F>m;G>hU$Iw zt6x33@x~iR`}XY{?ccxO{uJK3cdw;?{nvl}D7HuWU-61p7@S`6l9!BPJD&aQXQ$($ z@wr?ZRJZ!4dTze?=FuD8@P^She8V@4-uT8h+MmKod;RNQKYHEkUT1Am8`T!QCz!nQ zm9MmRXl#Tl&wcK5Q(RRWp8Vt|Z-|?~^P*&y-L!;T*+4N8Gg9i_eZn@=_ z(VO1%CTok@Dfp-zf|=SOcnDWChJuA~Lv*A1H7>&I$*~|$HW;ZLg4=6f`&t{9ulbst(eA$sLdKDjf=)kxFa0Rw?Shed=L*4 zE{GiP{jy zBeo%qg?NSdmBv9ZQ2)i-i8lmum8m+q-R`K@>x~A3LHgJ4_bpA&+U>UGQ#u+ss&7Lct+97yoTm%b^-Ly6cCq);+1&xDXAUqH~3J0Or3o7IO`|r2% zzwO(;ZS<~py=(OC-~R2R@A!`Iu)lY|``x4Xr*!2}Tl7w=)v__kw;_&&@If>!+SE9R zHwX_Tza&dlKYZ(g`k{Wm^PTUsdfxM%_l(~A-uI5a`@6q;^gZA6J)`gc{_h|C&=394 z=tq9!M@B#V!#`~C@A|Iq8hz`xe(OkMqc#X%^KB4LiY`Q(8VB)h(WGQq90O$Z1#q$< zTobI-#|IvGVD!D;`@L4j```b5tM4a%;wMHAJ@nA%*M9BSMj!p?M=gBe!Ub!e+Mw~! z_z8}}2jQgXNjxmVK=dFy&=`m(z4*m1Hv9t*_G>H!bJeZB{=g6XfYtkBKlWpzpZ@8e z9{uXC{_5ycpZe73&;R_-M~^)6$mrt5i=*H8jo%o3@Pi*TI0;{bn}VZgRCFQUrEw5n z5e$R}8Ux{>um3vwhky77Yr`-8;xAfT)%M|VXgDeQ)HsMg2nM1D@g~uuc#?2H^@|Tg zIRx*#AiPrFHOA_f>i)T(`#FR8r$7Da(PuyVS=`JexJ8~fk+o!=S#*`NK{=x_h_Z%2Rs_kTb7%x69` zdYHxXU-^|^vHlBh)c)1gRl|d3vpK3%Du##RNuq;Tzs4W_lgggh2K3qeqC3I!!3Q54 zedt3Uvig7NmwsvV>%ac%qu>4A-?cjb=#T!$aPc>P^Ea)HqDRrG#!q+{X+d}>98mr0 zzu>R&mwp1@zeN8~JD|^oa9{9`^$W*-`Imp$@IZA6??n$9n;-x2A2<9{{lZ`INbv*V zbF5$R*Z7MEhzG)V#^4_NAMfDn1>vAz@R5&v#AsbKpmyl4F;UxupMsTmM66#tMD+^? z1%Hjd@K5qpasZw1Ld5x4-?TgLTo4Va4eF=r)SucTyimIOu67D%^Y9l9X#9nL(pN

    N_}paU-}-YlGk*o*QXF_5SS7{;bulG|`Ek3ulG@5&y)?#0NF@>bvj`9(!Rsb?4h7 zoD`0UC#cW5$GXKYg!^&qg?p0A(j~PhrU*^*hQ! z$sqL`UUv~0+kn4L#q*uCA-)6sHjpV7^oPv92%o=5UoXp@_IJE+AL_Yj++Y~H$z47d4<6jyHlpliqa|O$ z-!!`)PtxD@2NjGK(ra1s(E3>Ri|=bSL~zjhK+NsAA`GyBZ@5mSJmY>_Sq+y9-Lpk| zt?W6n2gUr)Agp??=TE=u?W)UF?6Y}Ja^SNY*n@KEdY_->1;t+hg8~N%94K(0z<~k> z3LGeKpum9w2MQc0aG=0}0tdc?aUj}*qW$M(7z1P%h<-ZJPV~qNziw<#!1Yuoy%p4UB*_Mkn}?LlhSPV7PM7w_=fsXgeSuiTn{RI~@h{F~W>29EkRyX#aT` z6GGVq;y$=&C%WhVyJo^3)GhbQtyX!B%sc$4p4UH-_8_c2)BJ;;NPE!dUba1ZP|UxX zJxG2|2c9v021&YKESFx`g9=*+Bw6tN0tN*R6gW`eK!F1V4iq?0;6Q-`1r8KAP~gBW zz=3EFiuRwEF(C|g0kiT%JJIC%dS{OIyY=d@Rlb4)kX6skg+0jN952UTu|0cG%zs&X z&`US42j$WWdr)Bu0S^nlU%;TifdU5#94K(0z<~k>3LGeKpum9w2MQe61voIr`9XW0 z%(=qh8#XsGAqC`{D6(jxJZ= zfrYMpN8+J(Z~ormKfm|+s^@{9%JOBW*?n<@)INqXdBK!UKk|p(?tDv?EgyfP!m-`5 zX?>~u_Iz;o9QEt*fT>`%oq9Hd_YFV!__bSY-cH+NyT^U{RD$pC%;V2fNYk11{yVQT z)$EhC*Ko#|{=&IqF#|mBaPm^V&gI`oQ%(MpAD!xpd`GEz8oy6t&pBc&@`VrZP&D{h z|03Udtm`StzcL62KOUrrI9@jscKkhm>uB^Y;o&F#?!@1nc=2zm9>dE|c-o79TWNd+ z_!D0kz01;+qO{Kwe^SW%;@|dnh137d%ez(O{oRQq`Dfx!=6#i`TuS4;Pw0K6sWhe0 z4vTx5zZ>y7%8iKE8!q3d`H#Zya&q`lsG=z1QGkH(x*eBU-jru&th51tDnkL zdd#DCMZAxCXvF&$@ockSiuapk+T_{fd~B1f#iJ(>0>Y2u)E~#|0Ab;qe!^4zbdO=- za14vj$FM#I6~mf$#_;UvBzZdp9=O^45Pl3K6`mfrW!x`;q_N-Z=|ijz=MSx$mx>4|Rxsv!C=p{o*|3()bt4ckH~K#kGJy0f7Pn zlMt{O!L6?(`I;aYr0d+yA7|}{Z?tASF5_wN@Te%+w`J`+uJ%3ZmwOfIH*TFrdZMn9 zYX^AuPlMc%E~laj{(h+p5xh2&F?uF=9t40>FB>ZfnX|A|+ndRCA-g`Tw;{}zlld!Ff8QBF?Nvoc*P%7aVqlX})?Slf9`Y4ma3 zd*#u`*KXRKdRFZBMtas?{9HHHv)=dn!;ST&<=pY*-520uEhW*9Kbqh~!5#<$S3^0X0YPhgMXY0qQYwuYz3TtJ|Jz^;J6 zOV!IA*|Xr`@i$G+;@SCI^R_I7m6qyRLGBcK)@J-$Al~eGre{StIZe;X#wyB#OYf6< z)}%e_o&&p6&x-xtNYC1`JuB!{sh;)CLC*?w5Q!4>`px^_WO$Ute{t=dR8OoS%D5T8u_2=S=Y}Gdd+S> z+1V#qL5nT>XMHS;Z=q*pG?C45G%`w$f0Oa}PJRT7Z~=h=0tEyFfiXSHK(bZ;tmkC_ zyu_aM;OZU5lQy+y1-Vn`S&?@~UcH@oX3vUpa+;o%3EO-f8o(@mIX&yZn|7z375ja~ zdREY@Qa!63^sGP!898}KdRC`hzaoPcdRC@lPgan{ZSM3?7~ewA%4lL^y-L8#(`kGs z18NZ}AW%S{fPh0lyV2vip{H!7XYJp=-*~ceUX@LiFVVAjeEI!`LGBcKR-RuAvfGJg zdRCN^)ATHr>c1!tF1=6cS(E-*H{7y2^{m+Mjr6Q7`)38cD%G=Af}R!VAdXPHqi6N% z<^B~ZTHCQ_eISf)p=af3BhsQqC5ERxk7;rAihBWp0s;jDA_Q{wtf#o7-AvDd*Vvvy zy=@wr7qg+BwW&QT$elvZ+Khh-z?(hK^sFc+C-p33ZQ>&v%bI?l)U*D!{6GBOzIS(T z{ZIe(U7vW`|M-)?bKSw+sb|H0Z=`1d%`o@Sxel+~c)wxLt5QAdok7nEbf8hm|7K4g zDfgD@?c_$CG`h3jcI;UXgz+u(tf(_>Mt2&I{PXzE&c>;DtAIcOfiGnUT)}?Bc$lNh znW_F+886CUnEJs7xl`y_d44T8Z6}`TSy4_->RICpM^PSJdY{y@Chb{!W_PEa75lxB zp0#CrR?w?bJ?lL|&kA&qyx^(_bpr!OSd-_V*b-?Rz84fQPP2;n@3)L$#LX9c-a=vmw0=Yn`Xf2L+sp5yHn4K{k~#7E9h0Jp7o9uCSvoH({x-8`<-c#JZ#akFMtWAXVWqzF%AeY^g4`+etnKJkf?z&>re{St z`B>>$51-hbdRFZB73*0+uS)f-j|4p{(1Aua|C>F1qTRrvRcGnY?%OwKZR`7n2fne; zvohM!NaX44a&hG?egy;y2ow;Q27#U1v$8#G$p(7XLDJ)&_9^;bs%HhcQ|MXZ(eY1X z6vMh-E}rRGQBFQqde+Bo-<^6^?DrMxSwXK#^{ihFdRCwVAM5Nod-`N~z24h_c9oT} zopr+-P8NDrMthf|yUFK~Rx{Wap#lO01PTZ^1a_`xW!nvt4fL$+yE}Pkr+QY9JB6OL z9lc7B%;(SatSBcRD?RI>x!tK}#eQG0o)z?}RL}bDpl1a-$kT|z=vmE$Mf|gp*G)d! za(p}II$U>0p=V{ZB@pN7>~eACEq(IM*RtINVUr%6L^)cdBOvxl`y_ z+u`SeV?KYTXGJ+VP0z}pALYTN_enqa$#We(aOdvSvtqwD(zCXFu0znPQa$VUf}R!V zAR8kO&7Phs_m?J9w-?`zp0(%H6RT$>fuCf1W7XF@o<_Wn=^oE~8RGLN=Kj#>YQ_<_ zH%vwD0s;jDzN8@_d)E0KeMkEF8C*=yiqV(H0Of9aPHB)kPqd!(Z=JtOZ`Jn=qnwzh4C%Ub;#33)Y%057@qb#rtM&midPB<6cG3lhrssiS>xZ` zNkOwSdsdJ;PqdzOK6K-YV;-%>Y{t(gpJ(>0C?}`sS)q%e>{!P5eNxYwv}di&?@m1{ z_Io2eYs>bmpjV}O*8dXptUw3Z7WsO7FRQcj{TO z-y7*!TV6K|dR3}t{cl0f3Upw@le^5GKGkej7hgM9UT8NP>pR+ah&?Nt4du$72-;fm z!(n_2Ju6QmkroB97@qb#rcFS$h!zkiAW%TSKYz9(|EwGX-$2hgNP7I6a;`&=JB6Ml z9v%OLk}<6N<>Hy173Jh(rDq*~>+aOEV!y9g&kA}~s%QOO(6a&^eBsMJdA*OfU(vHV zt!965M+#ObXghk=$HMp)de&CxP5{o+X?!ODzPJ?-C?HTkAceq~Jqxy+B%7U6%HtsW zlf=)1H~ylu4ZkD3;dgg}+$r>|JipcmY$u-SSy4_tR(jTfdv~Xv75ja~dREY@Qa$Ux z1U)Ozfkr<6n>{^W?UlRr*Pg1Em-;)?wzi{ZJru^b(6fxEF%;XQ!~ED4;Q|5$1PTab z5E#?5EP1PXmhy$)&h)GxcM3ggJN#S_&*#tdtSBcRD?RIm`*x?E75ja~dREY@Qa$Tm zf}R!V;GsYHUvnm6ou4&d9k#lIBfau!B(&|`q3*FVH+bLXP9F&4Tj*Ik)3f$`(+5BL z(sykD;Uc+!KmmbW41t~NS!Vol$X%jmJ-B)YX_qwz%7g`SnCkw}YzS`1Hn9@C~kw@4}=P(WapL*O~;fAG(8P;6$;8ryH^zFqdd z%J`Fu7wtQSFZW`i54`DHp5)i`oYEk73O#Ex{wwgb=R-l7yj65VgtJ4`gZvI(oVSEccD^DAd_B19j zJneZ*n;gX=UO=FLKmmcgJRCbV6nd6;bo>*HVp#Xf#WOuC%E@VZRyJ1oGGp0(pVYG^_Zxn$vOD#x*zb+>tS#?1 z40=_nXZ?N9vjQF1Q0Fe_S?%&t{rcmb&eG1jvp9QY8|#LPRUh9%&&tzCq{T=p8^z;0 zxdAMK1q2ER6c8{7xSl1wD*iUJXOSn!{v>&3e8JPE=vlVMP&$O!xnlNI&kAy<(6b`% zj=Xw1@l4N(a`Lg#vp!qfoqAU6_Z90|L9a^ntbYo6R-l7OAMuW!)oJMShBxkwN!z}o zXJsn(#%~)<-%~I2tZa@WU~P{MHwJIE&z(y_u{$jL3$ zvx3|y^sERY-Syi}JkztHoSdd-dAYId>Gw%{*5tb3BaPjuXT^SRq-Sk;-7x4?sh;)u zpl1a-$i~P+=vl+cpjWOACZB9Qz8yX5_(Gv)Wwa+4Z;uYQJ}O1d0s;jDb{7P$;5_(j zro1yfE6ANf&)N<@7k1|JXL?qYlaH02_3+~E)U#s0uUO9tdR3}tUH#+k2OsEQlJCr( zK2u-2lFfz`2#ID}ASNrw;-=ppXcl@_Mq2_-p3W{8SKi`RK%js?0fA`{7_(>XQI5^l z4R`u|!}vXE@vhXK735B#XKja{YlQOoGd(NH$!U64CTycTxb!}0&zkhl`q(>mr=Au2 zy^)@^W&f<8SEYK^(}JEA=s+Wz|Dk6s4woxCb~Bl@kmbw z_To}NpnyODfgA)f|16iYo9kJ;n9keG66PgsWY3Cw4yXHP1-Vn`S=-^~0(d@ure{St zIZe;XOpj3>TzbEpp7l^`cj{TO-&d?>1-&ZjSx!2f>k#N5#^W75Yqi-QJZ^f{b<2gG zmC=?)Ax~$Qi${8jqgUJu2ow+~AP^yt=~<+h!_{W?EayG`?z3VMJN1JPa;MOM2|+@=Xr3)p}C`f$A*%b zc71J-%yfJ8m1L$?9+Z=rMze>KHPb3{T}#%JbIICrv(2SUOrdp!X1bkbdrA`| zRzl{R?@PMnS~Bb>&1$Dz;vvy}YG$Wf?+u!D9`Hi5R%vyrOKNhfZsl5CdvDxFZA$Bw z2aET5bf#PG)!Tz)_1=B=C5yUL7t8I1dMy_$4VugK{-C_vRpLyqUL9DVQ%S5M>r=Vb zt9EL2Z|UBB2gq3I@>f4MNB~R^uQqz7+e*1-ZxCIf)k(A4Nq{y-?I*-4&B1cHzm)V_ z&04)AxP}nGtqywv=uEBGPG^;S#$t0si1 z$;_}_>y#?PMq&YV(gIdgwX@vSa3{-FX>@uEq zueWOn1@x0nZ?M=Y^{eGpJ*jaNZz!SN@AOJ*6lDRrw%BY?qTSY$w;n6iI*pp9A2S3> zphU>oXbv<4_r4xP=vV7>z0sq$?VjJMuhHn&2T7k~kg{HCF4Lg(YAazk@A9xUXqKAo zT74~PmDd?-^&n}|_kJ?7&}Ep{2E!iUEVrA>j8RYHMD||)UNFytrGBe3;Pw8Xluzh) z0BGIPtwqV8TVALeNiupBDoxgU^=`7R%V1S-8mtORdSob0Rb9&m@l==UHIbC_ie`P) z3LbVLJFjEdXH3+}ez#5tOaPj?uG`fpK~ZZ!x!+w&xU47DPOH=FQ+~Y!lm^ZALO-F? z)egke9fWJUzF>${vr=X{m3Kgz$qf0D;Y!M1;12Hq1-P!;^_+_6QX)gpzjr?j2wc&< z2e^3GT4MDtL(r|H>oxjKRknq~U29yjy4b8PmO8@$W0F*Q!~SB4XC=Lvzyy;@0tVI_ zC5T>qYLu&@f88iWH*lw``)avocQOH~s*;wQJv=hIfd?@|eYrVMe6ifC>E0{D zi2WVdNxN^=m6t1eM!7LNL5SKO611GkQ3J(whXe+2a4Rrm6G%FGzaTeK(k>53FL~ynyeiVK+C$&Uo6);t9o><-X2=X z1W0NtO(+g@4$S)JP3 zodHA!qp8$;u%KGK%i%?E`7%65k^U zW3MB9#oKiU4PoFtlV9y}rBzPAVg_cW4gYc+thdnsyC@AS{6TX(FX<_wx>F5YQ@4!P zP$E2GO*g|Nqg(a1g934%lW__74?4XNu^vlaswgo}s0TLQU#zW4y{WA(*cI_gSg3?V z?Jca^D1g-+CsGBhE?6SCmcYpN>LQFDGW15m6j83FuT+}lej+-irOW8M{r+H)>!R9K zuh~uM9`Ee9^NcrA-ScdA}{-WF^#OXFu_I(&?z-OR{26(6Qtpln3iRa zDWUMFXiC1=I1;uB5nQ`o)WHL~KZWtkk&lNQFFeEZ6E=G(k53NP1rn-L%(woz8 zshP%9etbe$Pn_co*1$%!gg~TxkxLNoF@&fsOM%j4feDkY`;rA{rEisbNO?rbrR+g2 zs;7CXv=_$`EJwT9@8k+F`Cml~PXm24Mr|7CxtM`V;e#QE5^{=l-?(GT zIVhM}^1)@MCDz?rs4#0Y`VyOg&RXJy%LsfiNqCgqg{R_t%v}s6Vi@zm!lLU|bwq!a z84&X)k!Noi9j)A3vWGJyc12rEfD{tSfp5$OO}fTlnrujK`IX6I=|k%7tZLS_-`;~X z(wqugz8N=cGfBr|n5zQ<=Q zhnk5gs58)btu|?^#9WxTDj1}i8JYBAvQn3hA+VL1CnRpTNEY`di~Ews-lV~Gf3k?_ z!g7KfG@-;CyW1Z0hjv|Yy>;lf6{h)M+R$$+W_uXg6)k6pi2!f;eI-FT9T@xUNrFqi zk1as5Y zL`H!C6bqs#wCTJ}c%WO8myW*7Q#4x^_b~+TFX|Y5*M(Mrr;AoTVI+f0Ytf8L$y%q8 ztn;V0jEP_d8K7B$RF%#e>Z4&tL#W&+FE?B3_sTjqvtlWJ17;R&hI^$6N_GW&;Si-H zv{|>Afg!D!B!mItFbh#_%!@j*AK4vnKtX#27Vc<-%gQNx!E(3LTIa@e&F-yE2g}{E zZbQ(*0>aptWnN@jwya4v_i$S_E8fg<9WxhJpb)bcpg^=rX_MC5Qe|L~6`RtzX|iEq z*-Oev%dXOVRTOuthkIx#A!{OcYa`v4QUr%FOklLZhGC`FTnRVW2vPy&Zpxj=(J*Od znSn5~4|Wm|R2mWO6{?Es_p$rPq%&-<$|$+QY=)@}^O&2Gx?6y%sDwz5N}xv>IKcLq z+Nv5I6004NZQHJDt&h%1Lb)rdu#qsF_wIWg6Lnq!vAUQSFb56xz8S6eGBI=x@;3gq%ghSQ~mYn)(N zK2uc>OhayAH}me)Wo$7jHbaWrT@S-~wYXAdNCsva@nwx>+sGT@QT-aV8ADa)ppLba zr-7+rEMC0Radf5+>?r|7%ODxUZjZ8QN75bGogDDrH7JT}rv+*SA}e`X8p|Gtr8>a^ zai>)Ro}xZtANHFST3K0iLj0(^AD9 zMMI>@xL1K4?F_j>6xKWJkceKg`z~LxeP+oHf_r1gk4JG#uU5du(Tt4_W~5+@46Cvq-knG298BQ3j+P0qy3J=w|#{6plE1xqUniSu3bFRVT>g2gS1^jHRw z?uSV~-b+d|PG@b=lsd3dW<-kgDRtG}m@%^=nPpvc{5I7oOsi4IG$FR3US$AF@S#ps zCIZvFSQ{*@VkN|ezfxxs)Ldw@(8HRdq8b0Os4Mx^#ZEWc4jY~FGHe6X5)-O$qN{Um zg`~(>b8==;{StOsH7fmxIE0cS(dR0ymmR-sMl0&l`%!qQ!gu(%TK zzOMBmCt=iLIkJs6%B)S5f{dT3O0t>2&?G)srNjn$b&Nh{NK;HJn)ID9dwyCDCXs2~hO7Igqh_Jrri;6QZn4Hu-?Xg#3v`g`G- z<@O5p$r)Q&3ezJ2)X`{BE4BmdvBPC--eB%x$u&W#>(Q80DofjD?p>*&VcM-!v00Fm z{Q+%fuCxkIwJDR`m?e3l1o_a`?wJk|UQHUzmY6oJCbeNwV{!u92Y_Buv+61>rRF%E zu*d4rT<(C)Cw<*GOvu z%i27~s;W(2Yr*_2?j^x$BF6(!L#n}iEhSE%iHk2mP5KC&ZzO-Auh`{(}`bS($aAFL%x zt(ZAZV@;Z9L>2aR4!88eJgfJmiNTTji%U2gzNGENyNdGm2;9U_)bN$rTKm!fHl9&5Jc zZvraVLg*1DsdIvE6$^W3S+iA#HiN}-f3uC8@F2D&v-WkXc2lW>PzURVH#ZyNQ3{X%;uba6x<+Bpw2eQKa;t)g~-&1MS$ zo9!ObOZEi0DKyuuOEbJ23mH*(B0X64kedtrc`nTAXw{9JWzeM8HTGt?`ml0Z7Q*X=Pq!0biq6d%ctB1NVE#;h^rLgwR74n@b{TLB^K>XL=AdlX@*Rqaem5Z5R9Z z?u9L539q0Ng|&S=mxQQNRb|NVwOV2}V=&(?!$DyJ&uzTW8gyrh44m|m=p0{+Wq%nw z>J2~(HhZM zT=g?s4NAGgg*v5`W5=2wXibI5o(EW@7}6A68^UY^V$6kkFHJ{ROv6j_r;nd59X^>X z&EFma^D%I`G=J*knea3hp3lN(441B86~ZlLLadlqW3rSss^XodP~**HW-a z0x4Rxv$vJt4}F8QFax00nq|l7-jXlJbQjnA&8pU-#KjjnW&B;NIt4u|w4;cK%*0@=lY*4ED%Y2iGB z@Kg*_V9QwJ!m!EokY23MiMzVhDxZR8!E6`R_^g?G(x_!mV@FxeZEN}@1X8o)JT@5v(n?qKp(m5ZZugcFFtGqT%BBF*D!=-nlQXsvz* zbyk`}jGqc}OVed}r_|@om@5K|31-sGME!|&LrqCVKk-B6*Vricj>(bAo??*hFVb;M zROK04?e@=LU2(XDh(Jg1EkoERvsq>XI)2e4=6n=``9#z)xjBI^HvJvXIF=f63Z)l1 zoxr~}lBcC9uu5(U7VZW;^cdEXxm4ux)zf7`mkJtQ-&Ac@n|y(vfGn9zli|jaaIKEH z@*W2ss$D~dih2`T)v>NH4wmQ2$sP|9Rd-KNcc@*e<^@Pm0tvZ$+e+kb< z`NUSu&fsp})mmtS)8YN#@K^?mT4O9U@7ASQx1}MldBy9r5j4vS#-j5mgqn6i5Eh?p4!mxQrE_MFWsQt^vlp4& zQ83z3t&Y!j6UGvYoQQ#^xo52I$?^lXsBw-k77E(d0){iArXB*8nWVj{Ftf`TcGoP= zwme*;5S-kYnTTg9Zuw%hwrb#Hfd4jLh(>u`fY1|N$Wkf7lQ=YqZbm8WjGzogVsO%2 zp0YUNuXN6)pbD}6*BX+GuyhJoc0bOpS*>5wI==xN-|l5&RESSB7%jOQM~)gTYH}|? zl(pEp9HdlS2;+nda6<$yJ~XrtVXBEo>^r*qJimNiGk%9h(hf&1td6Ny1eQ0$g0(&h z)w(WgUBqvna_y#NPpv*^g$Mp0#w5VW*ekC5cE^)QvJ%&+s3OG#=8r>+0I;hLEtk}; z-Q;dh_9E<=_M-km9O|$X?0%Wm9aj6@DyQniVTCloq@b=ZR{)c-PBFkWmZy?+T|!|v zgD_QFC=ap97|SRvFSylKyFmty2nsE-(xy93v0%1wUfK{`-lR{J)Iu+YR z*jSKxfo(Xvd8jC>a0fc zO!Em*%-)jaL_P`VMwfX~%u`}UhyfWzlfe}YNbE<Ta-B09}U#8inMH67#^{ zm`5v-$uo|yQe({h-Gq=f=)^{rFfuTqa328iNSQ!tyzkwz6y&Y1TU!-0!HU;*1S=j~ zlFqB;Eh8NTf-#QuiZ+(sHTIdH?Zz0JYw!WISUw+B~>84^rQMNd*B~*g38Gy?Y(5q|KOMulKg=`(d1eJxfyGh=jFkKr7_fv5Q z!CNe&tf|hMwdNG9EkXw^sp0Xe0nj{wH7dKU`z_$U-qy+nhIs8G@_@_oG^VM$^i!3T zCdwMAD)7+n*VRR9h^UWgmHZJs5bPLWS5>*0Ec-CdtT?E}SJ*L^i^w|Z^XXw5g;|~i zcs>XG4zI;G*t5107CXXnYFIf#sg}uH)5LdZ7T?1H4d^xTP{avg)W_eAs*7iqP5?TGUW6FBGdm}lZy6XIl(vZC8|N(5AYBTs zHJ(x4r1TD@08>t>kM><%6f+)=Y5~X?%_XI4MU%}~q1v>M;|)%ewe}KQh)OOCK9$M1 z>;;QIW@!>TjxTA5Az-CGxV!b+asQr$WZ?Ad76rYHy;;N%%|bpvW4LP(&#cv=6s1|W zhGU=?<`ZqgAY{hm&gR0FPgU3i>cpWnaS@g;o2H>mbI+0n9Xu6@YUeMD)L~nQy~ton zc%+)U7Z*~8Z8@!>ycxyi^T#JsxZTte+zULuHBl#`L<{%aY<iqWVo5ZO;x^0TB!bU=;vRr%CunOL({^o1Ty!q|{8 zTlF=!a%CB#hRrk?QOqb~krESN%oAB!Z&=CFa4Dm_5T}#|UcZ>a*nW*7e+0d}R$gfK zF=w+HLQn{5Gmx9Z8e0iwDJcOQ(h#Od_Jt!YqhTz=5WK>g-O1HH;j|cF{eIhXsCnt7 zdv#eMgnrGx9vc9T1NhBk%X&%~k7euI2rRs6;sT&z*|YForxF&wL*6v5=Hi5*`GJC3 ztkBwkyIv^;@Aer>)NZyOj>T@J#(ZVAK-N9kkE79%>zn&h*zSL1@8Op#In7*A z)o=&b70jF&1L$4ftsBC>GoD+?IwVyjjyj z-Z4=kTtra`u8Y^i0bF6GT3KKM7wAbr+stYiSz~8TBKM87xU`U{${Ow)D9UX1!0cjPchZls{9?d| z@w()<2hyCuRQdL~hqHnPy@5BE0pblnWQiu}QTob!xv^)OpOIiUmw?#`lXv=D(U9ky zra<;sQ!`hO;nq^Dq)=cJlB<@9F7#4}oF#Gb3hEQ5(5>0F!6#~WRBjVeb}J2=P#>7a zc1qnXhXQh5b3F@cSrf^y7~ZN`#P1k8v4EOd2nj2QaI-rcEMdy#>+vi5;+lbeizQ1fn`v%%Z|U0Q6ezGg*$2=FIe%|Ax-jGkPN zT*y(6PM31PdkJiVn{ehR$RRT3AH=IIMlfVx5DIq-x;GET534r_r*t zE~eVHe;TF6j6eY=o#?=AtzflTLBJ!5{bf*~Y;{6r!)lhGy3}EwWj-bF&T5`v8EnYq zl#bg{{oXeaLJ`JFAxCu#B1|O|qEe=3lX1xsf9|FeZTE7YGMfi7`;lKgSWQ5usVJm5 z537L8w_=CzIKZrfof8izDKU;T?hvVo8Z%ouprUjGF<>la|Hxu~e2ca*I1>wHXby^B zI>2C9=!2-5B^P#!ElE-lbm1yz{wlkJu*jHs5(No8Zc&z;ASoGSy$sXiDyG-g6Isr* zkg8KRP*@mo1TmI%Md*#xKu{4Uz96$?zZlR;V~R%L%w&et9!(5YccNAGZ8|B6Y1Q#} z&=`kAVSiK?N$s!WRK!fu8tmIqHU6tw>LwLE&jdbPT5Q=m#tuRDZX1CTs=#}+tHt&{ zumai|A{w;MmvvtTB#b_o#~drheeNVdI9!Ha#Bai~Y}eh17&eT-E5OP^mEnNxJ|4vN z8&QdzVlf%ODWm&V)U~Q-UEo^oNzRqAL*?0mo18d9?CW+I$4J>mdG6x04~uFw*4?uqH!IhoSPsVRMuEwM2DplbXh#7 zyd4;@7l!ahvq%ZS(TAv2A+2gTVVG!Oy{)>WZ9?I0%th=cYI>xLnNmQ`9S%)pJRwX~ zsy-Wy)6G7HFB^!Iv58=E;H$J6IzedIjOIo*0(aPPX^ZN8+uNlnOOrEWkZcw6x-^rZ z+0fjQhLzZo!p27nn>K`A;>IFLTZ&OD7j!W^SFH2GrFu`Myy=SjnNp9AfDT! zj#`chads8#uAQ|IFr>2Z8hg-%VHRO{)ELiXLHC>voLNeY`BkR@P3J8_MY>BY#Cv>Z znBqGN*}Mv$5a#HZ4mWi(!RKTFFBdhXY2{cg7K^2L3YutEw`TLPetCQ2_XW|)+cA{p z@t6mv2ryPp&2hn_$tvK22F$GH5t|lSvI#lQfDNkSk9}qtvo6T$YFQ**W5CW~f;Xsa zu_+JX=+?4+r|G^eGmFA_LLq7dQ#yZ98`mt8(^Dv|*IAHZ%42evD`l^1Vxd)kc}7bx z3!$Cn>^Lk(!ZrD_2_EY)a4rT!vU=i@O#ucLuC6o(9J;QAUM?PnK0eM~a0F9U4`r{$ zcz87z4RxtodeOR<*66YDQW^=bSf}-l1+uzAG`y9?!fS?=d-a}$_9?W8rEOq+lm@93 z?L@UawjWR-%}p)E=UWPzFQ@`;mQ@H%LGsx}yAq7j(?BVEkWT;fPAcuVFo*osO%At-@l2}5qmcMvEg*V%+WpqS4s+xP%cH}9=TsJfD7 z?ew6*&x4xVhYYsu(^IQTUGAVLrU9GmD;0%OiMGycFQb!MHnYJf#a;XrS_ErvRKQ5m z_E0H?oy>4rx}mI3Iiw7uoKfvqLJmnM(#?ct<{yDP;;0*hRHd*ri)lc!7&C!fOzKfC z8t3ehtW0C7$Z^{`ZBd)nsut%~*!XaJC93YrdJramCaRPk<0$Ot=(eeNN^)dR6S)PN zDY?BY`Rh!1IAkx7s@mXj#yT+tRjuhj2)e*RxyTtarr4|4K3>e&0G*Xd(a4RQMcepF zWTl~DmDr$M=B)+2p2p2VJx!6dF2xPYlcs3EW4?$r%As)nnc4SZ#$fF8H=#o3hXd>Y z1H>cd!Ik}ZUrU}NoHb?8e>*}Cj`J~Q9OC2yIJIjzEvXeMj1XGg%hELORbMi`% zewqdQDm;dQG~$zQpCM}lzuJf8Gi2?qb1IP>#{5kKLmF%DJ&-*z;`O((}qto zeDu3ZQsPM$SUSuP$P7awIki^~DNH-o0VlX=E+7eKg2F6i7q%Y7Js4_NL0of{limo<|PYZ#i0rZ56T z%QnOIbuyv6j0>hF1kWPc%;0O?MVgA%34*<}Q<2R=GYd8>A&;yP+{3AHZWS?04JIq| z#Vu**v2`qPZX&Y)tZ+KaRor)!L#vdi0K8Uik9>oP+SdTUY8OKt>M>}AnWaJ5W9 zKFMS8i7*%+xBsYq+Gs}+?7bQPxws3`hP%Z68qi)xQYPBc%*YtS(lLvkfIF==<4h(S zYIhcpH9BE5xt&?s1L<^?7GiC1$I{jHNOmhHafT526OzXFIFRH_xV2fya4R49r62c7gKm zF<5EvvGi*ZF*{8IThQ$f@i~KCP8gp3!1M5gYQ$N zgB@lW*9;v<$(cB~8tQ@rnr)aew=hwUj+E3rm5u{!PQzx)7i4X?*-~f;1GjX^FNC#2 zv#y~_F(44F2kh({KT>7}p@tRMM2#ep@Kg+ottxT|;EB84fjcyd5_DU}zK%fjvSpRl z1G~#<5Y}PyBx8Rrq@gPvwG7air23vdV=!o+aqF0vi({>~4$HLEbXIB2%PE{lC>J4& z&~_rJhgq||A2Q+!A#vT0CGmde0H#jFay-HYEKJOxhuXs0F2+vV7h`x~Z8dnQlNJjd zwslHhtM_0>XCA>zXE6JzGC+vkotmu;o+6Ep(qyv*zu~p_n@(?T#;hIpRy!gQUVBUM z9j@HbISk`X=Cydfc7p5{T35)T7D6s60mlGyuXE=oE#BK=wO)nXHT#}}2|E7I+s-X9 z4VGq_wPSi3&HC~}Gb;A2`vAocru8Tcc^v&bX1LPj>?O?)@wNy@;6T$Hv8i)yOFH>F znXxsU5Y}l5)<%EC5ZM_Fxg<@~!E}FamTFuC@RUY5ml^6L&^wahBuOWe|U zB*f{sa;hCHnb>9%?SeIJmMl&Y3J6E`=@4qr#P`CL5H@CbN<~N(Ev-1;MinvMr`EH& zLa%j-ex1{;wPje=4_F%7o#}uYSUd={L?#`^e9`TKCTf02cSON8=*Uu9cT`IkcbbEZ zSic-?EM1$RE#T)xW3xqXl^3}=qOj5d=hyl4+&PmCkGyb>o9abLH7{IigCP!lAC*~u z4NaV@E(#=Zd;`cbn-Eu_C}@H5(1E?=nVAp(G`LyGmdXLdHb6nzY)5dXOA_on5HANf`^#f(lHEb5OKL8Ma6~ zlul|4p__Ouq@^Lb#f4#EMBx;04>1eDj_n8TK`75EsH3!3tkgoBO~?+;n3{zlqmBkT zB>?<~0?rCg&xkKcm-lFGEBRwcZBfOUFaI(mr;VvMi zRvuC(CW$P#I$M98P|fsWX96&)I?@AnC@yJ2-d1I$=4pWC_pQ6xj>SO3(U7=R#Vpu4 zI90{7DXd(6^pav$+M3%Z&-qOU*>Nr+R}MyGo~VK>pi&HmV6iH+=D>S!q#!ejMXds8 zB>DB!LrOD$F7tR~i>J6W!T?!{TH_RI%-4hTRY!EdjLrQ4EyM06Ni1YCO18T!iL*XD zGrUI+{D#Fxv5JmK9Waw~rVjf7U3+nxuXu=waxbA2i{d!wkiz>`I2N-IuoiflNhJ?D zFQ%sGGC{~5t9F|$XF0S}B#VXis!GcnTC572OO~yy^Lbo{H12MRZu|?yV8F!#W5z*k zsKUFppxqC5baxh}rR>_h#N53;^nDEAat+Z^}{lRejaw0Kossq zgK3TV!#0;-2;6lo?{YV1kx+OX9BzTial+3EVHPKC!B%5A-iP;$G499C!1A-Na)b09sAEUf@pc+h zBWQ*qY)dq!~?cS{V$PlNcX1Y-RPp((x4HAQKC+nbMr);LWfr_Fo4bf{!QQ*w$^X+@s4| zb$MG-Ub~0CxAONkRdZ7IFA*U1rD0nhJa!I2w31Pi`H}dyTGSA2<3`Qtz?7YiJnVF2 z2VlFmEk|K{8t^|PHRl}pxqx;OX>YK#8&ip8f zRx&t(dB+ABstC^kvS;)|ti2v6Vu=q}$by0z>b|R-(1C48mMr_$1Ck4qvrpYLlHMa; zk)^|q2tp;X4#=MhC7Jq-UU-H$_P%i6AMQ7CRx3+B z^)>C5)CE6hYz#HyZ>ZMzt_`_#dn=fL!dJi4fA=pFg4yy28kXOc;@!r@P+(TF%rR;; zjW)w>0FoXVEVU?D!ZFu&b6zNQp5w4jmkGgFA$q8PelyEk|jf z8%rK{wJXiQX~sI+qsOIR<1*ypvnfFD0WjYKZeuX(pc~U&RQO7%PMl&6XWF?8PMV`L zOu=VKqf`SfbU$5D3;II(04hksFb){LdFpEMf*n_KpXtIi?YlsI`y!UKYu5<1aU=lJ zg2s2CVb?T45D%EBU?Zp>rwWC8K$~Hg>WjXnOEJN+=Bq?RgLN$!^4$v&DT2{do`~kU z*KaOx)RY+*Frq5#TwVKLC47BN)Bz|3jTs#TF9$)VT=cYH2alVgl_I2wag)~fO7O6; zkbQ-N{Tzyo0$|fIjwjQn#+X1$pp;t+n#V12fGHAR4m@jnleK-x`rc%nc>;&a6Stek zNLP$!bRbpyD@%rta6t|m)add#tahhl?#k4R;tYVbO*pCeN{JX|iF499Q5o8{uezu} zF*_X(VTVAPG%|A(jZ0(<0ej!U3SP0TaY1g0zDQzD+x zM^$b1Jl1>W_dps#%l*eMij?&3CyEH@a17&TS~%mg&p2$(8t`M z1E2XcP-b6nlW}TPg{7#oaV{OB(dKHtHaa_=HUF?}FrSp2mTWfDu!~scQ{P-%Yies% zHgj+AB_ExikS%k1G8$uwyyl4xw zh%)Bryuxv>be*fY5E?Lq1qKQQDytNufG=h#geI2l>=Q>W;g(x=PdSSQFJ21=?^z31 za(P02j-T6S=c5NlXj}QnIYmncrxeCg|O2w*6}pFUuU3usooG}mhZIIG4;U{-;3k}ZNrk18%U%H zdswQo98Nx}o-?9R7xn2JhS6+)h%q~f${Y~c_l;@Qg0f#|eiw}3Vf%4VcG(GHFoM^Z zIPx`CI43MW5=2;d4T~SD_&@Sp5gYEX6lof)>9Jvc#OkUJ7p1>UMl}CM@05Yi z6HJ2S;^vKRS>=coY7N!78y#!AI#@NNc})mCrUM|iHckX=utRuaT3E3PW2&QZVOG{` zc5{VbkTyNnG$nW(z9HRBgC=8`@u1U)?Dn(ant}9rB6#5e*%(a)>8j5&sWyo)HsP~k zOx%<{Dq|0kTxKB@$OLZg@=9iJoofK$awMZhTh?Ltj0tW{f5@Rlxvn`%t*YRLeLVo{ zoFBXe8M8-Gc1@X#*geb?T}!Y{cOs#TQq5QGQHz^c=6ymZr+nnLm~Lq)o`Qx+4>*Mb zgV%MaRoG<905Ip4$uDKM{y1{i^dPYkUJeVKgdI;ED^-}2p)ZFCJ9Xv4w(ZE^5x@Ra z8Ftn&lS-wqrrA^jomYM0W=Ckc3DEY<8FNHj7-pl}F@-R9e_wrOv9rV(O^O6PO%^VD z2cYT^)5K7NWdcVS9=@@q$+$twLNergnxE(7Q%MiAr9tYKR9x90*+{N~NIADGZ1^Fd zZK8fS2Z=0Q>!Bq?+97VoKycThM;gg^fZhPtgdha53An{9gl&%Pav2V!i5wC>oVS4m z+ORZB5T>LtV@u|Am8FSanFohv{N}fX`U1BVHQQud`U;dO2S4nKpq%`Gtmzy<6AdO9 z@H`n+*OvoX77AbPQ^Ahn7SaS0!Vod2SnTBChAxNE&&E|LurRu=tXhU5!JaE1uxS)R za4g-rkG#-(jIw`*ko_N4iCzq}Xf~}Miy_t`($fgVsE;3c8 zfo4a5Dk+}(3A^E$H2MWTsN*+BP77lW)subsBzN!d2ezBTvM3ZjUIzm)?Kj**e&a3v zsW$_yC>^<$g+Y^WezobXPA5#t49(0=2wO2n9?XlHnu9DHDd3-&fF@8H{7gl&CA*k` zMuin_8?ys(^+^lxRJSf?lxam5rPvxrd&y6Duow*3GX_JCq{(voa^Ttni?TSQGui!eNW$Sy9e=n}LC7La+}p61#Y zs)*kWFo4*RJFXkk=kV1ovG$8{WTA$7_c1{PI5Er!d zEa*kY2ZsdP8#JC|djkbz-~v-)yx0Lopqd;;zeosvF%zJzPHT|O$QM3;q&VIjV5B{UznDT<(gvQm01}Q#*IY=xZY;fr z)0UOPj_Xx}#Bp^9+%a3=M!MPZ0j=|Ps2Of1^_fFB;KRBQ!pLwAmbj>1!_Z=!N(?-YHEO;jvC(V_m#Gt9;r^?ynx(O(i(1Tx75 zV~Z$Aaz>4?Gf_CkFq}9nQ;0yUaY8E#E_KoZwBlicD#5i7*<{RK%79ERz5uEdgjl$D z#*s!$kC+Kj=7-jM_aoEpwBulU+pqw5G5G@DHG7(IKzYP(P(OOYOuB` zPT%ER=|PME9Nb8vwUdmdKT>&Uw=I;=N=+{-UOe`k;97)XEd>3R&hVL>VFT&l{S`WB z+SGD~;Xss2^$A6xW^km7Z^)xn=6i{Iyw;_pb_6X<8PtXumz@G+=1s|0mRaGlJ#t3# zRwPp}q!5rmABixIj&jXf)=pOG%mO8}HlD%++*2?w$<~AmXA85(An9=Y$GSjD`Tkub z6j{@JW-uOUwAF6k<|F`nNV}dG4s~hK$9I>_zLn^6X>FhA%Pwt7)?pcHu>Hvb?V`iJ8ZZ4kM6oXN2~g(r zC`@a{9%OtmKR0F>mIa+P#iw!Gf;Z4jn`X%S4QC60rLv<#JUTNW=4 zbu+6r1tyxmp~4}OrL0&?QhO|hrkg&2F}Nn5Fx31qfHLX z{iNm*9fxP*qbKejmqsC+6&*pMN5&M>K&hc121L|mSyU}*MrlN`9&wASWEKnyV*U_) z5QMQ4`4WyD@!22Ct1QKY2=9!2kyg5o&3=thHL%&?-a;PDuh2jIAkT0HG2cA4V*@qU z2hW&p+EAz&tLA`HGfy$oq+3Q>7<#%@ZYo3tz_4VO80V~8pirj>qLE$WBd@-ZR!$=(^=Mmv!Sk{F3X z!u7@YZhUH#8_J~%;jnR=M@4pE^X)W}dVGl=u-QjmY%<0ouW||IZb(-dPl zW=%LEhj{QqHuj-@Xn2t?W*molLI}uWi{P9G6a>ECW2$4cHfTY`^3ibo;5;a*k(n~s zKm7$?O!RPgfPRM#$(uT1Db&Z*Nk@^ySSTtM+_A5YcrCmu`DQao_yttDL z94XZ+KT(oT=OG3dP&^#`(=TCF3d4&=9y*a9pM6F^+c|W^7p6mw@M@`$rM=10zGP{? z)H}ryOA(^qV6Mj@FltZO% z?FjWi0(|E~^P4_X4sC3S&0;-Fhjs8_JvPuuyh)o2i&$O+ZRFHTeY=eF!I|1hEX1|x zvG-!)#QQOMvvOiW*K4iU#U!~+PG;~BUv z81jlch7gRvr@1rOoI)D7jN0L6rYXP^-I#pf%x&J!hA6@Do*SqW4jY9VyV5h>9d=vw z`#RFYG(f};bY^ExQfNGUQd~8rx_}D()4r7Gp`ll$kZJ)ml{=v!2V}D#asgf#5J7Ht-?BZ6zYebd*W>SM+;>*1N9w`1-LHC&G#^ioIaWM$E`| zP@**Xb%Ee-X%STibOV9>$`Ugqvk>I+YaR@n$aZV_GqcjCvymE~=yRFsin8JvBH0OK zzO7s0*S_SVxgRzM{2s<$982;qF^1=8s$KiYmIb6drHW_}wZ85cB3d{~tsWNf_E}K# zS;w*PM0TJ64Mc?;{voWm(i2kB&gSC#OxvF6>LVjA4^zob+?lLpNtFY>_dPHLG}`Ep z_;!kL8utYopTlRAf*lWPBQui}1h`gN2}uBn#c}epY*u`wMN<}*H*Jk9s^iv4+f{GI zr)V)^C*V*=B)|jQ!YPRr7H2|GG|W4eY^!ZpqD^SiT9DDY2F?JjH0nVnk$giAu0BLb zJ7@O3(hvodKUWFDlA@g{EIz_c4I=_`62s1>17!Os8$xP(Af*M2kp)#VXS=(F*5@;z ziPCItI)N86PIgGsIa51auF6=;TtkE%!UiEFK z?oxgoTWL!yr%jPMjUOP!ki$|l=gMtZNzKA$)|ihf_#AJlw&d`vwZO8>qFyFP+beTS zlTR$qvczg#I1+SA>lV*6t4_}HY4w)9dZ#{Rs-oBiRO6#F9N9)J<_qocmrja0&f3?k z(w5vt7t_cbvrFs&t>iY%wv)5RQ0e??Rn4)kc2qk_X65|P$5#@i%tBtN^#h7F?y@xDL}rJ zrf5)fuG?5)cb#QKrHPHD9%0)LdgORk>fj^VWBCrFlaD3bjjSC@I1~=K9ZNipDQGM~ zA3D?Skg>$W`eyf~DT$@e=RWUf31eL~7IN73YAD?n9mYzUJ$u}k#=MK_v1dp8>ySn> zA>T0!eICaJ0nRg)Uo;2Gu{%s#P8BNsv^je;UWBGtGLS#xW=C#g)I2q5aqd)le#CRf$ z0;^*w#=9>~Ni5w5?QYJ08q47f>g;XC%<=>pAIvq^roI4nyIM5%^vF6YT(jy7C0|_r z!D0J4aSEdRqgnX{rB6=l0E=-<6>l1=5pj%(LSIoBAG4EX(In5NP?tI@HkAZkl~jBr zTu#lKBhWl^7fnqohivYaR8FynFsa;jswPFGB58lNc`j{gWzMF&CXHs<=3XC&^kyMF zLpRDdS(GN;SrM%!NA!Wyplh7Isil+?QhB5cEGi%REJiYhe7=W3WGq;*9`VHvEDm?8{HvpK>fcddlL zSuges20lBy8ySuw?-SI!{Jiw>dd|T7($e(lK#V|S%xXC0AHPiVsCsqJK)_|GZXPlhtKG zu$P1~Ojj{AT?zY+y51?fg9r9q^m5y|)Yo-?z%DE{96?&sOl-_v=|y&EGhxN2Q3 z`5=+Z7sg+lPA>~hD3;l6%CnrWr?>0ct|p&0(i%yJ8Q0>B#-ScpcENmTyq@`VudFYO zNLf?r)sC#n%_5O{m9OJ!cfD4ZKeF2(x3$92?CJ|$lPGDc}MbZ$DJ*wvN~V+2g~<+DKzswl1M)EI3e*0tJ;YNMSP z1Ld){swb0Eb^W0VNhu?pYC~q_TNo&M!HlX`pgJ1HLn5m$PZ9feW?*2eFCNQsPGNGW zoywYassgIElk%^mKc%5$%^Yi5iRjA7+n?GluG1N#PB2>v{jgShka=sMag1vsBv^k* zT=pLn3>&&ed@!M*d{345`fE*`U~STw*20ZZo^?=Z@>vyQ5omm`O;rgK^SXn6i20gT z<-QcQ{s)S$S;y!vg6No9|6_${rVgbS*68)L6IA7frjjM3ShS%C^!AuN9_QZm*bvHn zzZ&vYrl6sI4|eZC1Iv*%J@|}7&>RdOG&4i$e_kFmmzOv9g9b8fmWe@&x;%J_i?ptO z1`_WS7c98E4LY&tlcU6-F{lR0T>dX(o2orn`7vz;-B`&n9?B#xzR0%zs+iFSldK!D znST>l=@~!HtlI{IrD-H_)@@`E{%24d#eVtcbnqOjgzrP{hdq9{$*Q_$6o*RS&w=$hbale>rv;QUTd%f zZapBOH&Y}DZHTz5PGv&N@|@WG%d#RJv`2rbjD%hpE9H&kf8>$Z_Bg0%H?XQ4h9&f_ zKPdCM=W=qHv{r|NzI1Nnv@xM&?auvrye5mJSC<3Vgq|qff7zK*{D()Di*N85w+Txq z(`5W#sy%KsiZTa8!rtE{Gbg)_KxyBr#nHfc&r`40^g$zZq0MJV&tqUAM z8fzv+bEaqx;AEOKI%d=g@+zY?89@!@%PCc4Y!iVA?DTQdzij#3kL z^rB4k6__((d$UUCNJ`Awm)S&Uue^{HC%Sx0LQ{->%ZdMU`&ioG(iNv)3Z)+9X>{-d5Fm);lZ= z%gft!;;|B+A2I2v&qyivn#8s`6SFjDZAiFwh_^5=&57soI^Pv~q1DcDMaQwH-rk8P z^!50^3IT0=(PLjuKD^E>8gOHs!73(#ET zxA}29#h`1Pg(M=*5Omd>C`n?q^7`~HXkVV2pE{8;SVeeh9XJ4KxpV}?x5trb`&1@dxM(B#@T2|u8OJG+g#)|x}alOolw=P$s zB@Lg0l34SgNCykrC~YcdZdq!*SzQ`?JyrEKdebws7uHCzeB4`^M@)e#H3l{f^1MS< zK!FEP6;1Q2Xr6M&;7aZ}Ht3}vG@)k+uh-*E2mj5Uw1v8I!7!+))T4E`viiAO&_d?N6Vxl-Y-Qe$MJHv zFKAg&?+nGH*O01W^#)bSw`4ipsD6XGF%7C$s9CN8`#ya;GybT;?9$@4xn`5EjXIk$ z1-)hpoaek|X9`4HaSWsvW!%GHpT@MsY1(Uk-((lpOJ4IyE)v`~c+Dw6EX;kcM-W&E zzvf>GgoinDTocTdoOI}m3Bfh&n_X4HGt zr%eL0*6M*xA4bO;dA>_^S;|s2zs|sKsFGi$B2`LoqW7Ujs&s0E8la}&lvPbpBSKr3!WI!PH5WvC24WtGw0}Rm2f#H^%=6 z#|$;aDQ=yVvT75T#6#RXbC#db5EHxnb*iK)FEW$r^bkmGRP(J+ooZ#JBdnyi41az6 zb)t_{v7~4mDcnxl&EEmokPB7DUP(+Tt*q7_kwqhlJF6m7^+L)wZimF$?Zn=k+v~wFo zwN$urfC5W-v5x>Rc3#Re5qevNfQ!`G%8lNQJ~8e=y&GK=er2R`Di4H#S0&-E8#_04 zZtUFHCDkrI;s{3<0f|&H+>#N0GUAtdR7kgxsI&wrk7W2u4k`HSPL&qF(S&*ncNhNB!Q1#wkKYWC5&KMp48dP!$U?ZRkPUryq`8om19MKu1(I_~ zPi|sJ1_~@<$wMr8No79BpTK_s^aY_1yaQ2CIIaww)R0>hgg_)3scw@zn-Dv7L8 z_?Ng#LmBW(O@aaopJjD8ldc%t%YoEDd8k0yNIg}=cM_}eQE~nZ<2c7oJ)VS1{q|>yAj)8P^A}yVv3v`8U z&>h}`9uNyXp_k5!U-c$@ALvUBM^MB4h@(FYfPpXwx4|$3hJv)AVK5v<=s2YvWg{h$ z9%(xf>U~;^(x$vbfEKc`zToAk_|qVHh{F-jj#ze!*{R+w!-(Y4YtD%@FVPio$wRv zg59tO_QF2c4+r2N9D>7e1dhTnI1WFOOW4;34h$5&j;-Uznf3-|!TkVfP$fz)N^V`ju5k zS=Kwc4cV4cIV@I(AaRDEy1)&7;tI8-{uyKO7e>eQT5jb-9}YvQJ?Y&GsNV?8iNH@= zDIM3p+$s|Pi6IJ-KvGBs$sq-#glOcaLQM^RNCRmh8s36*@HV7}43LquWrEC*1+qdm z$PPI`@)0caocPZLxgihf%M1DNlOGCzLceCa->dz?X>}J4WSVIyDrcbxLum0I7@j zbsb6FmC)rl691!MG>m}{U@VM-@h|}<5_S?yh7aK*?54oS@Ci({N>bWVFHSX$`uG%L z7zKtWsFUf0lX^>751$cs2F!$6FdOE;=P(!M!F>1v7QjMS1dCw_EQMvT99EE@FGQKeK8k|twLQsPJkGB3+`BV&@x)iN$6M^*|*Ng7kx(aa!>znJ}y24v1Dgp9Pv ziiWo!9lQu2EROSU<8EUw;gG>9F&QYZkRy4{sNGH8GojB6Ss*K9gY1w4av~!a zB2*!}ih75zh4Ej+ zu1bo6W2Y&*qPpxVt75ia6^9Z~QkP>jRmy%_mA0ikBREe;Sbio?Qm$o5OAK!1pgi$Z zz+4fMp_ehB684p$3U6+PV$;wss}e4z)dWpd33wC)_(j7rQ1azl7x? z?I@V{TB@sETXnPRsP1-M^`2c%^|0%!Si6DhX*X28>_)1$-B|Upo2b5aQ`OIIrurjq zfc>r-Xg61bU@#1Up)id23zDYcs3YKg7zv|bG--)%qo&@0}VI}yfl{LKl(`5Ae468BkH18ZR&J095weomNCfjCXO zt*d3v#eN=T>tby&F(4;l+WpiZt1&fS$5~&?kC!cR)zWe-+#}gBNxz(AzggB4yA}PB zImT{{>QoEtHmFK1wA*U?Np?G}&bMW^pITioFbWWyg|FZiJj!*7V>VxpKu565++zTesG@+F6#>iCu9yur`d-&91{PSK>keIauOy4T=0@Sx$z&0 z-hO5|v)A|WwEK@v#nXrPiI zH#ww0c1lR)n5^UdX{y(O+g5^j)u=BGzl5zDdWTdgDYQ3D7 zq;pJDDdYT_a(J_F%0qRP0D$uU)Bc6_3;V9pBJAUmYPPY%clxga;> zad=f;$ESgMov!lfv^rIO{1maR2HEAH zJo*aQRfI~g!v0*3VKTl{4*0EtpQ_@{pnjV8s-gF@YBu#hFCbsal|2;ssE+>{P!noF zZOTCMS%>)QI_Ag8uZMkoXaM&K+YrAGC<`-we4*0nI$NL`ITrHFfc^3#(A|3CW`(8K7 zu)9O{vnId03Hx3^<}KvzwHGrMNxL-dtOs$(c}px|dXlbQ&>Q*?rZ4gJbL3I|kvRbU zK{0TREJZhC_(csa(!5<%Ur79td+rC@=UR+{ymh z`5mjy??~l$v>mB;Q?_zWXXaLEPr><>^G@QCHWNu$k7EmAw-9!V4x0miiHSqnv4oGp zPZF3<{^S`{Qqq|W_vFs$Dur_stA8{0rbK2cc!|H%sD4NTX(5{MZ$UbE8`47t$OxGr zGh~6RkPWg!4#)|)AUEWJypRv_LjfoVh2R}13`L-*Q_lRis$%Gilg@+8GbNngGv~=! z3hfp9Qlv@RSZSTlZS=cse->&V;;x`7$K@>AmdHhtM{3|*q z^3-f1{w8XF`b-l)m7xk$g=$b8YJjXWMUJ$WnxvyJA?0~gEy}ev)PcIlt>^qf)hCVy z&L5F0XBHb7ZzOK!G4jv|8Y8C(G=*mHE_ThK1+;`#&>Gr6TWAOEp#yY;PS6>;Kv(Dn z-QhiC^?+FPJ>i^VGtcWxx_dcysNT+hzk;vPe*@pbO6079)vyMn@2o{#hueDC02`e()h5_XUcbY<1-3e6KCspI z*lmOD*!@7bA5nL}PV_&4)cG#VyI~LM-HTm8?Dk>a4+r2N9D>7e1oxw;$DF%W&A7QD zc+PIlu8-sXGyDQ4;3S-a)9^X{WFE`~X>(_=`xSnJvv3a1!v(lVSzH2H=Uzs=0$1U8 zxCVdV=Q`Ygn{W$m!=G>m?!rB|4-eoWVIIL__zRw3_cuI+XYd@m7w{5ZfeLXe3v6(J z6GFfR?hu=sI=1pa7$nj%|59BImDrScB}Lh40b*dM{&oq7XCI zMIs|{i0onZviI<+s1Tm&_A%yoRW#vT)YV(q%UU8` z$bO#1In~>k(?bTx2$>)=WPz-Z4YETH$VpmqL2mSUATPx5BvItZT1sT(gZxkc3PK@x zhx`{tEdsJHEs9zUibDw~86x)t4l)Mv>=3`Dp$wG8Er$4H{FHXym^z8(iDft_Fl(1m zs$58ERUW@mZWT}~LM5mSRiG;PdCHlHP}M@r+O9gPta)mn)`VJ6o4D#gUE;2Xxjyve z$!LR+qpD%ZF`jcDR*gdTs>YOQ6Uwh?$N|+1*|LW-;|c3{%*~+%w1ifH^tVQ48)ysd zpgnZJts``T&d>#}lh>|<>xRBNyaz34@9nYgfj$;`LNDkIeV{K?hicFdYCwNv3;Vp!}}pg)X0!1H7X=RjmCZqd_X$K!Z;WY6Yx6`brMX5 z58)&HO@WW$6POCq;8WbD!)GvqvYbiSS=i5p8&uvL>_3OOxXpw4@C7Wu-$MK>g2lKm zfu-n|!E*E~P``w)@b@+9H}Ea2gjKk&hG>;htwGk>kmIzg zC;SAvU^nUAgSr>?>9}QGf0C5`qV{7x0RL_atV^*!1c%{B$j|C1>M`h!oZ}%U)X%79 zd^BT*jE}$I9vmZ2pqF#0*T+g*oy1=9e~R#@;SBr=(LC*U0Z*aycvP18Le_LqNck<~ zG;U|uKY7(z%HkY(l0JPNl@l_?vD4}Ta!sGL)kXA|;4!r1LSG?O=R7I+wfv1fLkdXg`cxVRu7W-&;%cWF0 zcpH6s>@z?{$OM@o3uJ|CkR5VBPW%+KM&@^7qGzffI59h-X4;-2(^$hT7>;#{4PNa z#))brMdw9tY~> zA>-A5mET|VrT=o{%#<|u<@Qvv|Mc@nogv;|;Ws!7=RneS9xf1G)?I$)f>PAWMbdT2 zm0Vq>9Im+jW-k4&xJ7P+y6SqWen-YN*E978@+9BaQE$La*K=CK{|f&?-9pA~{K_2p zCvnTXa|d;`>m@1rudw1*;*#-PWJp?GaaQ(Wjq^A;d zLTY5nI>wKh2D`Kn4R66}$|0RQoEuL6OmlEt$f({X&*>op;pG`!M$}A%%?w$v&kETf zJN7vsC**?Mq#=(xO67%oxaWrggeeGxaDNANFV8azyCbYHJ$HCj5w}+rgc+rnZhk| zQV~^wv{WRHN>CYOo~dX>s4BV+68}fKBren6jxitk^*L@7O)83-iL&H8t15Dn)6^QE zuZBL7+l>F+AK7c-NA5jWrybRxOlm?c>}o?DcT(%$W0d&k%*vh2O8bWL2+nEs$aj5s z%v{&NEpuLS+L-ip)9JMaFn*)iTFCZQ&~~m>{K8! zlOUsuJEheXxkafADiVGz=L7h<6|ig26BZhT=X9hQkPW z-|e?T@jDW?Q7{_Dzy~mvIERrwKetRdl2+sJKOX$tI88|$6Wpn-i7*K!!-wz@Oo5N# z6POCq;8U0mpTP{63A2cMwmXeAhqyi`uDPi5U_N}|j<&`U=K}N#LDIem#=&A(0!v{T zEQb~FC42>6!#D6Ptb|pt8rHyCSO@E218js%uo=FCEwB~7hi$MOet;ig2keBOU>EF$ zJ+K${!G1UZ2jLJLh9htkj=^#G8GeBia1u_zX*dJF!f$XE&cS)O02kpBT!t%f6@G_n z@CRIn8*meD!EN{x?!aBR2lwFtJcLK^82*AM@Hae#XYd?ez)N@qECQ4?5E~regb;9n z8$!VYVc-QHghK=*f=EaVQIG_ZLNZ7WDIg`Jg4E!LG>{ge;Vno9Z$o;>02v_@WDb4H zV%w>*pqKjFM!S@L&HEX&&2)63bh;m{3rTBb4UM+4L3YRiIUyJ1hCGlL@fu9@J4j^SZjuN5iNsHM#$oMhY=FC4-&d)PgtpoO@2v?f4mVvSm z1LdGRRDg<52`b~SN~o=>LN%xkHL$A*wV*cC!LBaULth^nKtpH*jiEYYRTJEsLNj<5 znukWH7SIw}L2GCOZHcoT?(Lxibc9aO8M;7M=tlm!qrL|{AQpN;FX#<@pfBeSg>|qVWbGqueFOT9u!*=f zhi0+9BQ0CdZ-wt+8*E3;524wuoOMx z^CM+^7^GY)TDi3RBgj1pdr12+@^m~jH|qz+PW=1=C*UNUg8r1{Y4UI;G^_fR{Qd@K z;T*^sp}9Mcp1aOtz5o|P<*f#@{=0-()_Rvi+O|M+?&Jk^m_~nfCChD!wf>t^gY!pZ%lYeD9$TgJ6lERAvs~=bLk7r*|4fkCQ_Kp*Eem#8 zAsb|e9Jt-1+;XDk@)W0z<=j@rgA%%qbK@ruZn7SiJA`>XCE2@`B<&@29m=x|*`rEb zRZkgX*NM2GoRFP#fw%U8o23 zLGINzKuwI=kos-}jR||1H*}hK>w)@W_*BknH8n8!cK+!db ztE;|&H1l=ybPvLhpEsoB?P1B2oKXzM&ZL`pp7@8t zFc=Oa;C)YHU1uXbO-QHg;W$gXcCtn= zX=_T_8dx7-FV7ps63;kKGhH8Y*Uryx4&K^I#EI>A{1}X6%)*xVbe8xsnEX zZuc{Hd}e!EQii-ANtv3oNqTFlInZt3iOH$9pC&)jj?9=7UtXqt zNIghi+EG4|ZgbanDKeJ98PY8NPSd8Nc`Hu#(~<^huTrnl{w3ebDK9DO6@>W`zJjmG z|2LivjOD>Ju=d7Z8C@>2&M@zyeoKB{* zsmns%@-t(?Zr6L1k5UQyrMz>rmGII&<^JpUo*uLV_CUlb>DW#lq}*jp`T>7G!Vc_q zk_Ykslcy>5)0AG&l=L-yt-nYe??R60A5t&xSc&!8S>CypceT7~w?VioGNF#`&lm>fPc0@5cgH`@H<@7aXEP|z}31U8mit zZji5=a0_n3pV;4lyKoQg!vlEe=}kS$dohy!4a{M^tw-3)TI4b6Ul7IH-_ow0p#K}5 z!ZTz(hZpb?i2G@I#s~uSy%XmV8F2=&&m4Ez%?HSjMAtq+iZ4>%rUjO;0*9V3!dx5iT=i z36p!IN@We}Oa8>ZALE6nJh!4;vLP=!`W%oGeJ(AZJARn+KwiifCU4C4r;Pd|BSPgz zzVyceltmKWtS%U~hWi7ijTRye(eMs*q29$`Vf+^Xc`gu&zoObtX;qBy#j!6DkXKUs z8Nj&urZeB*Ij-E5eW6MbR#q$KnFHf!*g(dDf!GWrjs2}MVX~%|yR(u8NvD&&>mbJR zLHHSjA9L4B+{%UxW)C$O`@z`Dyc`^hSaA|hIh{{aZ{;bE3R*T}Jo-vuLl{ek5OxS* zxkHa%Cv{qda;&P$(#Wb7Hk2}yF-`ibDVOS$LyfRtm|@JNqG!z*2v-ZWwwC8tbx`XP zUpCy$MsPl-;!R=kC4*?`&j6S++NTd`as{XDFGScSKiCwJX^>6F>U^z->#vj5@tXk zT}kav{ttep{vZ5Iqx}Z!*UTS{sBx)RS!eorgI)4jn)KDgz8qtYykjyjY&zj&Pff22 zw6VeDaR_BB&zOgXeMWidJvXvM&J5}&p;`P&nTh|Il-W%B+D!Udd>f9Cc-3`3?IS@dybWixAeKqMOx-qA0bE95L0k7YaZ@} zp_j4z6XKo9xIGQ?r!bu|`wa7b#*7*0XNJwOW`%uj%?_Jw%?X=J$@6>we{*3T?tX5H z<^Y}+5Z63wzK+ZEKZ#4$&bK-LkiEtigpuca5>GSoxPZKkW=>xiHjlYY_K1?kdDbHA z7n3fNHpV>iE$^N!!EPxmBi`l2vjRC^!dKXR4d0;u7FLq}RbffgYFGnnN%vH~Qm`)U z3u`@j3FU?>xzOp|Kztj?<0jaQT+=3saPAXad&o0TZr78hEx614zZLcSfZye)+lX^J z{DA()xI8Vec94#p@DujCPb0(P?J3)c5yS{lzH z_*2nZ66bzE%7b!T=2=Q!xC0!vOz)ROo{UR}!j==x^qIq9D`@BDTOo2j)Qs`%2xWMb zbn})7Zsr>&@~x9&$UP1}lWyJ~!R<@ym#{Cb6L1nv;dUC%gndmPG|%dO#rzwbg>zxw zXnEo$a?fLD-W?Qq-~JD`m86%mLE^m_wu-Sa{%o=;`>ac(^)kqJoyyUUt{_+5Z@h~7 zJNEJ|k89-V7~%hb>tU;zD;W)NzX|&&E7_OdLjRaG=6%ZZHvav5bwbX#{>1(ca?E>| zYbi_a5MU=~dCctik#)D+Hx1q`T~A(krW1Bp-6y`_{q+av*`ZL9+!H|FBg`@QtK$@Z zJnw<6u8lfveg|WPps` zour-TX8h@^zXHPglejW_4e6+bc`)`vU?>cO#l$ombp&FdDlt@BxekDU)%?7>{1=$4)?<=siol znK{m^q0zHGo`k>2@F7$nUFJOEoNjl`-OVYBv(`trO@WW$6PQXlO!JR{LF$c;VbwWzJYIHC9Hzgum;v5Q`+o0?{#Zr+UYT50e54edM}GlX7vU0a37?f*#(V{?!tZbm{($Rn18#!6AKIR}xP|^U{0VnJdh}gn z--G*@AHYL+1drh_kZST)469monAPdvE{lI<-2Aj@m=9u zDEPkMO)IJIrj^Xcvpq=R8>>?KK2oV5HM0DW2ITy%2IIG!O<#tzluKID5=}bf8O2+u z()Og>)1iMG(nAKHIpfNRnh7$qu*ia%6|zBgpI7DZ1>d)eP&s{g*lN@?D|As70VC6ocYW0!9$7 zBx)%r4ew(PzI#{(b6JQX4dp=2BFdvyAiWi#5>$pNP!*~{b>K9YJ~n}p`qQdG_?l1) z{$$jsjamolYI!_k!+(A1>^6O`fetIr4esbMF1QY+)>T8oT(j>oHr-|1xy!h7hjT{r z9@t&_V{N({wVcLEG?#;Bl3HvVcn^Pw(eCt>X znlrM|tXE|mYKiPt)K6>Q1Lk_}oDi-pwA0~bUc0Z_`yO%^R>D29I`|%09ce?IaPLgm zF3=ToH|UOx_fUI4EcAq4zQ-_{4n91G*f+j!#b4ssu2 z0_sGVJ() zz9Ouwg1l-eX^DTnYMxgNqAiZ2j|9#dY-yv*h!%{+^@ zb(r8YB6K-!2>vpvGWv|tWjjdaTI8EO zxLe09WA$$O{W|2xnU}nax84`3UxjvIE! zlk;D%U4mA$(IMYH_Srw;Pu|fjPI{#ch0tntAbTVBJCV)V2YKg?4|cnJi71;y7!x6D z4QE>1>+wa}sr2{eBeA1B`{ev6k-e8X-v=A@GXqnX`;qt0Go{zhl9->#=RuG)KqPJA zP#_=C%d$fh_-=zQDRr0>*-7yml*4>)r{}v#=KB;UC>P1^Ny_3B>S;I= zNVhy^`4xG;k@vGc`C4G`ye2tvlOs1da)WipJ=2gB(l+dK%zd&JJWsd_$hrvm!%|YW z;%4kG`BHJkGU(SlTe*yXnIq+S+Ijq4@uk-BoWuSq$oIzNn@ENE5}}c0&KrLBU83e0 z^YL?=HOn8QxssKJFKeVBjcIf_T_;~R;3j3Xj612lOTxsZ(LCRKY2UC?==5`+ z3HLi7Yx%pV^4w42xd+l`TC)a`z1Mxr58xp@g2(U|Jb}OADLjMcq~V2cFyGo9q+a^c z+8ey3)hoRYVNDVqZCl~l`L;rKWurR48P0kJT;PUK@IV-N!&%RuhC>9%8eZ1(k1)xp_x$J! zKtYi2u`b{&qY(PJoDIE$S{RBzQ5^?&m1&X1NUO{(^8QwF?3?iAVOLxnLD|NSpV2e^ zJLGc5fOQS>NqkYOfH`Z$)cjL;F zo(kbN=#Rm^BIjAmn=l?KB6Bw7Glw2BiZ5pF_sH32db?7%S5-z{74jhMQtrUXGtsKy za%V0%dmH9%sD^uWr~x&@GuXAl3#i&q2f1~LyB^fXtv_Ed{L+!ZZh(Em@J#d)jhmDQGK zsFJ2Jm_NXNY80;v1f*7wr9~lO*~oc+2mmk=Fjmn7v_cMusgYO+4IA5+j;qtDsQwB zr+gbqzNA`OeWCkxaBso4J2;e-bIc&DBj|CA^4k%^ymA0l@^cXPLvR?5ggeLP9AQg{LTGIFkv dj>R|(;|%*M^355q347B~p=S9Q0{!df{{dsN-pK#} diff --git a/jme3-blender/src/com/jme3/gde/blender/xbuf.svg b/jme3-blender/src/com/jme3/gde/blender/xbuf.svg deleted file mode 100644 index 823571378..000000000 --- a/jme3-blender/src/com/jme3/gde/blender/xbuf.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - Blender logo (without text) - - - - - - - - - - \ No newline at end of file diff --git a/jme3-core/release/modules/ext/jme3_physicsloader-0.5.jar b/jme3-core/release/modules/ext/jme3_physicsloader-0.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..6c81ce624e2851cedac18819bf7b0abbfda8424d GIT binary patch literal 24593 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 literal 0 HcmV?d00001 diff --git a/jme3-core/src/com/jme3/gde/core/errorreport/ExceptionUtils.java b/jme3-core/src/com/jme3/gde/core/errorreport/ExceptionUtils.java index 76249680f..ad7a0b159 100644 --- a/jme3-core/src/com/jme3/gde/core/errorreport/ExceptionUtils.java +++ b/jme3-core/src/com/jme3/gde/core/errorreport/ExceptionUtils.java @@ -31,7 +31,6 @@ */ package com.jme3.gde.core.errorreport; -import com.google.common.base.Throwables; import com.jme3.system.JmeVersion; import org.openide.DialogDescriptor; import org.openide.DialogDisplayer; @@ -68,11 +67,12 @@ public static void caughtException(Throwable t, String comment, boolean wantIssu sB.append("If you need troubleshooting help, visit our forums, but " + "don't report this as a github issue"); } + sB.append(newLine); sB.append("Comment: "); sB.append(comment); sB.append(newLine); - sB.append(t != null ? Throwables.getStackTraceAsString(t) : fakeCallstack()); + sB.append(t != null ? convertStackTraceToString(t) : "No stacktrace"); sB.append(newLine); //sB.append("Versions: "); //sB.append(newLine); @@ -99,8 +99,34 @@ public static void caughtException(Throwable t) { caughtException(t, "", true); } - private static String fakeCallstack() { - return Throwables.getStackTraceAsString(new IllegalStateException("Fake-Callstack!")); + /** + * ChatGPT generated method to convert to string + * @param throwable + * @return + */ + private static String convertStackTraceToString(Throwable throwable) { + StringBuilder result = new StringBuilder(); + + // Append the exception message (if any) + if (throwable.getMessage() != null) { + result.append(throwable.getClass().getName()).append(": ").append(throwable.getMessage()); + result.append(System.lineSeparator()); + } else { + result.append(throwable.getClass().getName()).append(System.lineSeparator()); + } + + // Append each stack trace element + for (StackTraceElement element : throwable.getStackTrace()) { + result.append("\tat ").append(element.toString()).append(System.lineSeparator()); + } + + // Append the cause (if any) + Throwable cause = throwable.getCause(); + if (cause != null) { + result.append("Caused by: ").append(convertStackTraceToString(cause)); + } + + return result.toString(); } } diff --git a/jme3-core/src/com/jme3/gde/core/scene/controller/SceneToolController.java b/jme3-core/src/com/jme3/gde/core/scene/controller/SceneToolController.java index 4aae0ee7f..98f333951 100644 --- a/jme3-core/src/com/jme3/gde/core/scene/controller/SceneToolController.java +++ b/jme3-core/src/com/jme3/gde/core/scene/controller/SceneToolController.java @@ -327,7 +327,7 @@ protected void attachPhysicsSelection(Spatial geom) { control = geom.getControl(GhostControl.class); } if (control == null) { - control = geom.getControl(CharacterControl.class); + control = geom.getControl(CharacterControl.class).getCharacter(); } if (control == null) { return; diff --git a/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeRigidBodyControl.java b/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeRigidBodyControl.java index cfaf55d63..ac7ff874d 100644 --- a/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeRigidBodyControl.java +++ b/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeRigidBodyControl.java @@ -33,18 +33,23 @@ import com.jme3.bullet.collision.shapes.CollisionShape; import com.jme3.bullet.control.RigidBodyControl; +import com.jme3.bullet.objects.PhysicsRigidBody; import com.jme3.gde.core.icons.IconList; +import com.jme3.gde.core.sceneexplorer.nodes.editor.GravityPropertyEditor; import com.jme3.math.Quaternion; import com.jme3.math.Vector3f; import java.awt.Image; +import java.beans.PropertyEditor; +import java.lang.reflect.InvocationTargetException; import org.openide.loaders.DataObject; +import org.openide.nodes.PropertySupport; import org.openide.nodes.Sheet; /** * * @author normenhansen */ -@org.openide.util.lookup.ServiceProvider(service=SceneExplorerNode.class) +@org.openide.util.lookup.ServiceProvider(service = SceneExplorerNode.class) @SuppressWarnings({"unchecked", "rawtypes"}) public class JmeRigidBodyControl extends JmeControl { @@ -90,11 +95,11 @@ protected Sheet createSheet() { set.put(makeProperty(obj, CollisionShape.class, "getCollisionShape", "setCollisionShape", "Collision Shape")); set.put(makeProperty(obj, int.class, "getCollisionGroup", "setCollisionGroup", "Collision Group")); set.put(makeProperty(obj, int.class, "getCollideWithGroups", "setCollideWithGroups", "Collide With Groups")); - + set.put(makeProperty(obj, float.class, "getFriction", "setFriction", "Friction")); set.put(makeProperty(obj, float.class, "getMass", "setMass", "Mass")); set.put(makeProperty(obj, boolean.class, "isKinematic", "setKinematic", "Kinematic")); - set.put(makeProperty(obj, Vector3f.class, "getGravity", "setGravity", "Gravity")); + set.put(createGravityProperty(obj)); set.put(makeProperty(obj, float.class, "getLinearDamping", "setLinearDamping", "Linear Damping")); set.put(makeProperty(obj, float.class, "getAngularDamping", "setAngularDamping", "Angular Damping")); set.put(makeProperty(obj, float.class, "getRestitution", "setRestitution", "Restitution")); @@ -121,4 +126,25 @@ public Class getExplorerNodeClass() { public org.openide.nodes.Node[] createNodes(Object key, DataObject key2, boolean cookie) { return new org.openide.nodes.Node[]{new JmeRigidBodyControl((RigidBodyControl) key, key2).setReadOnly(cookie)}; } + + private Property createGravityProperty(PhysicsRigidBody physicsRigidBody) { + return new PropertySupport("gravity", Vector3f.class, "Gravity", "Set the gravity vector", true, true) { + private final GravityPropertyEditor editor = new GravityPropertyEditor(physicsRigidBody); + + @Override + public PropertyEditor getPropertyEditor() { + return editor; + } + + @Override + public Object getValue() throws IllegalAccessException, InvocationTargetException { + return editor.getValue(); + } + + @Override + public void setValue(Object t) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException { + editor.setValue(t); + } + }; + } } diff --git a/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeVehicleControl.java b/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeVehicleControl.java index 47fba5f1f..cce06a9f0 100644 --- a/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeVehicleControl.java +++ b/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeVehicleControl.java @@ -33,12 +33,16 @@ import com.jme3.bullet.collision.shapes.CollisionShape; import com.jme3.bullet.control.VehicleControl; +import com.jme3.bullet.objects.PhysicsRigidBody; import com.jme3.bullet.objects.VehicleWheel; import com.jme3.gde.core.icons.IconList; import com.jme3.gde.core.scene.SceneApplication; +import com.jme3.gde.core.sceneexplorer.nodes.editor.GravityPropertyEditor; import com.jme3.math.Quaternion; import com.jme3.math.Vector3f; import java.awt.Image; +import java.beans.PropertyEditor; +import java.lang.reflect.InvocationTargetException; import java.util.LinkedList; import java.util.List; import java.util.concurrent.Callable; @@ -46,6 +50,7 @@ import org.openide.loaders.DataObject; import org.openide.nodes.Children; import org.openide.nodes.Node; +import org.openide.nodes.PropertySupport; import org.openide.nodes.Sheet; import org.openide.util.Exceptions; @@ -103,7 +108,7 @@ protected Sheet createSheet() { set.put(makeProperty(obj, float.class, "getFriction", "setFriction", "Friction")); set.put(makeProperty(obj, float.class, "getMass", "setMass", "Mass")); set.put(makeProperty(obj, boolean.class, "isKinematic", "setKinematic", "Kinematic")); - set.put(makeProperty(obj, Vector3f.class, "getGravity", "setGravity", "Gravity")); + set.put(createGravityProperty(obj)); set.put(makeProperty(obj, float.class, "getLinearDamping", "setLinearDamping", "Linear Damping")); set.put(makeProperty(obj, float.class, "getAngularDamping", "setAngularDamping", "Angular Damping")); set.put(makeProperty(obj, float.class, "getRestitution", "setRestitution", "Restitution")); @@ -196,4 +201,25 @@ protected Node[] createNodes(Object key) { return null; } } + + private Property createGravityProperty(PhysicsRigidBody physicsRigidBody) { + return new PropertySupport("gravity", Vector3f.class, "Gravity", "Set the gravity vector", true, true) { + private final GravityPropertyEditor editor = new GravityPropertyEditor(physicsRigidBody); + + @Override + public PropertyEditor getPropertyEditor() { + return editor; + } + + @Override + public Object getValue() throws IllegalAccessException, InvocationTargetException { + return editor.getValue(); + } + + @Override + public void setValue(Object t) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException { + editor.setValue(t); + } + }; + } } diff --git a/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/editor/GravityPropertyEditor.java b/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/editor/GravityPropertyEditor.java new file mode 100644 index 000000000..3aba709ba --- /dev/null +++ b/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/editor/GravityPropertyEditor.java @@ -0,0 +1,56 @@ +package com.jme3.gde.core.sceneexplorer.nodes.editor; + +import com.jme3.bullet.objects.PhysicsRigidBody; +import com.jme3.math.Vector3f; +import java.beans.PropertyEditorSupport; + +public class GravityPropertyEditor extends PropertyEditorSupport { + + private final PhysicsRigidBody instance; + + public GravityPropertyEditor(PhysicsRigidBody instance) { + this.instance = instance; + } + + @Override + public String getAsText() { + // Convert the current value to a string representation + Vector3f gravity = (Vector3f) getValue(); + return gravity != null ? gravity.toString() : "(0.0,0.0,0.0)"; + } + + @Override + public void setAsText(String text) throws IllegalArgumentException { + // Convert the given string to the property value + // In this example, assuming the input is a comma-separated list of floats + String[] values = text.replace("(", "").replace(")", "").split(","); + if (values.length == 3) { + try { + float x = Float.parseFloat(values[0]); + float y = Float.parseFloat(values[1]); + float z = Float.parseFloat(values[2]); + Vector3f gravity = new Vector3f(x, y, z); + setValue(gravity); + } catch (NumberFormatException e) { + throw new IllegalArgumentException("Invalid format for gravity string"); + } + } else { + throw new IllegalArgumentException("Invalid format for gravity string"); + } + } + + @Override + public void setValue(Object value) { + // Set the value to the actual property using the unconventional setter + // (Assuming you have access to the PhysicsRigidBody instance) + instance.setGravity((Vector3f) value); + } + + @Override + public Object getValue() { + // Retrieve the value from the actual property using the unconventional getter + // (Assuming you have access to the PhysicsRigidBody instance) + return instance.getGravity(new Vector3f()); + } + +} \ No newline at end of file diff --git a/jme3-desktop-executables/nbproject/project.xml b/jme3-desktop-executables/nbproject/project.xml index d2e33a796..6d07fda55 100644 --- a/jme3-desktop-executables/nbproject/project.xml +++ b/jme3-desktop-executables/nbproject/project.xml @@ -12,7 +12,7 @@ 1 - 3.3.0 + 3.6.1 diff --git a/jme3-desktop-executables/src/com/jme3/gde/desktop/executables/desktop-deployment-data.zip b/jme3-desktop-executables/src/com/jme3/gde/desktop/executables/desktop-deployment-data.zip index d0c0716a3ab82c318a43dcd83bb863af911e6a28..ef9c0f17362b1d93f2239650832eca1256f93f60 100644 GIT binary patch delta 417 zcmX^AS@Qg6NxlGYW)?061`Y;>YR7_*iF_(75L$eqFE4}{rwXArN={q=722o<5xTt^ zOmFUDykY=mO-?d`3JDrd)q+T_iapE(W;GWkv==5Y0x=U1GXpWp_QC{K!Dz7T_O{)u zE#hG2^z~|NlH1iUvnoqM`0wr6B&VmpVVwn0$@-RcnI(h?RB3}yv>76}%zE8tX*Yn77*4qxR_-*OsupV yrfx?$n;k^muW~ks3#U~AO%JSKgM{n!$_h3|h>Cp`P_;l6P)$yiFv<2xHV*)ToQ?Sa delta 417 zcmX^AS@Qg6NxlGYW)?061`Y-WncXQK6ZuqFAhh^IUtS0^P8C9Ll$^K#Dzs4zB6NE- znBLsQc*OwBnw(?=6%sU_ss)i;6?>Qo%xW%7XfI4)1Y#y2W(H!G?S%=fg3(~v?QOeR zTg1W4>Fd?lB)6+yW>uDi@Za0BNls6H!#WG1lJza?GD`>(sL}?ZXfs4`nFHGf6Nt{J zQZ@ujYWkW|HYte2sZusm2+OvNO=`Mq8Ji58YX)JJm$BJHSi8#DEFi3Ja52krm{@5! yOx=!hHam#AU*&8N7f!1LnjToe1_{^cl@)A`5Ec6>plX3CpqiX2VUq2YY#sp5ua0E^ diff --git a/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/3d_models.html b/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/3d_models.html index e3a20ebbb..7ccdaaca2 100644 --- a/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/3d_models.html +++ b/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/3d_models.html @@ -15,7 +15,7 @@

    Using Models and Scenes with jME3

    To use 3D models in a jME3 application:

      -
    1. Export the 3D model in Ogre XML or Wavefront OBJ format. Export Scenes as Ogre DotScene format.
      +
    2. Export the 3D model in GLTF or Wavefront OBJ format. Export Scenes as GLTF format.
    3. Save the files into a subdirectory of your jME3 project's assets directory.
    4. @@ -28,53 +28,6 @@

      Using Models and Scenes with jME3

    - -

    Creating Models and Scenes

    -
    - -

    -To create 3D models and scenes, you need a 3D Mesh Editor such as , with an OgreXML Exporter plugin. -

    - -

    -Tip: Learn how to create for more complex models, it looks more professional. -

    - -

    -3D model editors are third-party products, so please consult their documentation for instructions how to use them. Here is an example workflow for Blender users: -

    -
    - -

    -To export your models as Ogre XML meshes with materials: -

    -
      -
    1. Open the menu File > Export > OgreXML Exporter to open the exporter dialog.
      -
    2. -
    3. In the Export Materials field: Give the material the same name as the model. For example, the model something.mesh.xml goes with something.material, plus (optionally) something.skeleton.xml, and some JPG files.
      -
    4. -
    5. In the Export Meshes field: Select a target subdirectory of your assets/Models/ directory. E.g. assets/Models/something/.
      -
    6. -
    7. Activate the following exporter settings:
      -
        -
      • Copy Textures: YES
        -
      • -
      • Rendering Materials: YES
        -
      • -
      • Flip Axis: YES
        -
      • -
      • Require Materials: YES
        -
      • -
      • Skeleton name follows mesh: YES
        -
      • -
      -
    8. -
    9. Click export.
      -
    10. -

    You can now use the jMonkeyEngine SDK to load and view models. You can create scenes from them and write code that loads them into your application. @@ -82,4 +35,4 @@

    Creating Models and Scenes

    -

    view online version

    \ No newline at end of file +

    view online version

    diff --git a/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender.html b/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender.html deleted file mode 100644 index 0390f44f7..000000000 --- a/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender.html +++ /dev/null @@ -1,610 +0,0 @@ - -

    Creating assets in Blender3D

    -
    - -

    -This section discusses how to create and import models from Blender3D (2.62+, see bottom of page for Blender 2.49 and before) to jME3. Furthermore it explains how you can create various typical game-related assets like normal maps of high-poly models and baked lighting maps. -

    - -
    - -

    Asset Management

    -
    - -

    -For the managing of assets in general, be sure to read the Asset Pipeline Documentation. It contains vital information on how to manage your asset files. -

    - -
    - -

    Creating Models

    -
    - -

    -Game-compatible models are models that basically only consist of a mesh and UV-mapped textures, in some cases animations. All other material parameters or effects (like particles etc.) can not be expected to be transferred properly and probably would not translate to live rendering very well anyway. -

    - -
    - -

    UV Mapped Textures

    -
    - -

    -To successfully import a texture, the texture has to be UV-mapped to the model. Heres how to assign diffuse, normal and specular maps: -

    -
      -
    • -
    • -
    • -
    • -
    - -

    -Its important to note that each used texture will create one separate geometry. So its best to either combine the UV maps or use a premade atlas with different texture types from the start and then map the uv coords of the models to the atlas instead of painting on the texture. This works best for large models like cities and space ships. -

    - -
    - -

    Animations

    -
    - -

    -Animations for jME3 have to be bone animations, simple object movement is supported by the blender importer, mesh deformation or other forms of animation are not supported. -

    - -

    -To create an animation from scratch do the following: -

    -
      -
    • Create the model
      -
        -
      • Make sure your models location, rotation and scale is applied and zero / one (see “Model Checklist” below)
        -
      • -
      • (Did you know? You can make any model from a box by only using extrusion, this creates very clean meshes)
        -
      • -
      -
    • -
    • Create the armature bones, don't forget to have one root bone!
      -
        -
      • Start by placing the cursor at zero
        -
      • -
      • Go to the Add→Armature→Single Bone menu and create the root bone
        -
          -
        • -
        • -
        -
      • -
      • Select the bone and go to edit mode (press tab)
        -
      • -
      • Select the root bone end and press “E” to extrude the bone, then start rigging your model this way
        -
      • -
      • Make sure your armatures location, rotation and scale is applied (see “Model Checklist” below) before continuing
        -
      • -
      -
    • -
    • Make the armature the parent of the model
      -
        -
      • Make sure you are back in object mode (press tab again)
        -
      • -
      • First select the model object then select the armature object with shift pressed, then press Ctrl-P
        -
      • -
      • When you do this, you can select how the bone groups will be mapped to the model vertices initially
        -
      • -
      -
    • -
    • Set a new armature constraint in the model “Object Modifiers” settings and select the Armature
      -
        -
      • -
      • -
      -
    • -
    • Voila, your model should move when you move the bones in pose mode
      -
    • -
    • Go to the “Dope Sheet” window and select the “Action editor”
      -
        -
      • -
      • -
      -
    • -
    • Add an action by pressing the plus button
      -
    • -
    • Create the keyframes (select the model armature and press I) along the timeline
      -
        -
      • -
      • -
      -
    • -
    • Each action will be an animation available via the animation control in jME after the import
      -
    • -
    • Press the “F” button next to the action so it will be saved even if theres no references
      -
        -
      • The animation would else be deleted if its not the active animation on the armature and the file is saved
        -
      • -
      -
    • -
    - -
    - -

    Model Checklist

    -
    - -

    -Sometimes you do not create the model yourself and often times models from the web are not really made for OpenGL live rendering or not completely compatible with the bone system in jME. -

    - -

    -To export an animated model in Blender make sure the following conditions are met: -

    -
      -
    • The animation has to be a bone animation
      -
    • -
    • Apply Location, Rotation and Scale to the mesh on Blender: On 3D View editor on Blender, select the mesh in Object Mode and go to the 3D View Editor’s header → Object Menu → Apply → Location / Rotation / Scale.
      -
        -
      • -
      • -
      -
    • -
    • Apply Location, Rotation and Scale to the armature on Blender: On 3D View editor on Blender, select the armature in Object Mode and go to the 3D View Editor’s header → Object Menu → Apply → Location / Rotation / Scale.
      -
        -
      • -
      • -
      -
    • -
    • Set the mesh’s origin point in the bottom of the mesh (see the image below).
      -
    • -
    • Set the armature’s origin point in the bottom of the armature (see the image below).
      -
    • -
    • Armature’s origin point and mesh’s origin point must be in the same location(see the image below).
      -
    • -
    • Use a root bone located in the armature’s origin. This root bone must be in vertical position (see the image below) and it is the root bone of the armature. If you rotate the root bone, the the entire armature might be rotate when you import the model into jMonkey (I’m just mentioning the result, I don’t know where is the problem (jMonkey importer or blender’s ogre exporter plugin)).
      -
    • -
    • Uncheck “Bone Envelopes” checkbox on the Armature modifier for the mesh (see the image below).
      -
        -
      • -
      • -
      -
    • -
    • Uncheck “Envelopes” checkbox on the armature (see the image below).
      -
        -
      • -
      • -
      -
    • -
    - -

    -You can use SkeletonDebugger to show the skeleton on your game in order to check if the mesh and the skeleton are loaded correctly: -

    -
        final Material soldier2Mat = assetManager.loadMaterial("Materials/soldier2/soldier2.j3m");
    -    final Spatial soldier2 = assetManager.loadModel("Models/soldier2/soldier2.j3o");
    -    TangentBinormalGenerator.generate(soldier2);
    -    soldier2.setMaterial(soldier2Mat);
    - 
    -    final Node soldier2Node = new Node("Soldier2 Node");
    - 
    -    soldier2Node.attachChild(soldier2);
    -    rootNode.attachChild(soldier2Node);
    - 
    -    final AnimControl control = soldier2.getControl(AnimControl.class);
    -    control.addListener(this);
    -    final AnimChanel channel = control.createChannel();
    - 
    -    final SkeletonDebugger skeletonDebug = new SkeletonDebugger("skeleton", control.getSkeleton());
    -    final Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
    -    mat.setColor("Color", ColorRGBA.Green);
    -    mat.getAdditionalRenderState().setDepthTest(false);
    -    skeletonDebug.setMaterial(mat);
    -    soldier2Node.attachChild(skeletonDebug);
    -
      -
    • -
    • -
    - -

    -Also check out these videos and resources: -

    -
      -
    • ()
      -
    • -
    • -
    • -
    • -
    • -
    - -
    - -

    NormalMap baking

    -
    - -

    -Models for live rendering should have a low polygon count. To increase the perceived detail of a model normal maps are commonly used in games. This tutorial will show how to create a normalmap from a highpoly version of your model that you can apply to a lowpoly version of the model in your game. -

    - -
    - -

    Blender modeling lowPoly & highPoly

    -
    -
      -
    • If you use the multiresolution modifier you only need one object. Lets look at this example:
      -
        -
      • -
      • -
      -
    • -
    • Add a multiresolution modifier:
      -
        -
      • -
      • -
      -
    • -
    • There are two types of modifiers: Catmull-Clark and Simple.
      -
        -
      • Simple is better for things like walls or floors.
        -
      • -
      • Catmull-Clark is better for objects like spheres.
        -
      • -
      -
    • -
    • When using Catmull-Clark with a higher “subdivide” value (more than 3) its good to have the “preview” value above 0 and less than the subdivide level. This is because Catmull-Clark smoothes the vertices, so the normalMap is not so precise.
      -
    • -
    • Here is an example of Prewiew 1, it's more smooth than the original mesh:
      -
        -
      • -
      • -
      -
    • -
    • Enable “Sculpt Mode” in blender and design the highPoly version of your model like here:
      -
        -
      • -
      • -
      -
    • -
    • Now go into Render Tab, and bake a normalMap using same configuration as here:
      -
        -
      • -
      • -
      -
    • -
    - -

    -

    Remember! The actual preview affects the baking output and mesh export! -

    -

    - -

    -

    Be careful: The steps above lead to terrible normal maps - use this procedure instead: -

    -

    -
      -
    • uncheck “[ ] Bake from Multires”
      -
    • -
    • switch to object mode
      -
    • -
    • make a copy of your mesh (SHIFT+D)
      -
    • -
    • remove the Multires modifier from the copied model
      -
    • -
    • remove any materials from the copied model
      -
    • -
    • remove the armature modifier from the copied model
      -
    • -
    • select the original (highres) model
      -
    • -
    • go into pose mode, clear any pose transformations
      -
    • -
    • the highres and lowres models should be on top of each other now
      -
    • -
    • select the original (highres) model
      -
    • -
    • hold SHIFT and select the copied (lowres) model
      -
    • -
    • in the properties menu go to render
      -
    • -
    • use Bake > Normal
      -
    • -
    • check “[x] Selected to Active”
      -
    • -
    • use a reasonably high value for “Margin” (4+ pixels at least for 1024×1024 maps)
      -
    • -
    • don't forget to safe the normal map image
      -
    • -
    - -

    -

    Be careful: in the Outliner the camera symbol (Restrict Render) must be on! -

    -

    - -
    - -

    Fixing the normal colors in Blender

    -
    - -

    -Blender has its own normal colors standard. We need to fix the colors to prepare the normalmap for using it with the JME Lighting Material. -

    - -

    -To do this, go to the Blender Node Window -

    -
      -
    • Here is Blender Node example. It fixes the normal colors:
      -
        -
      • -
      • -
      -
    • -
    -
      -
    • Here is the colors configuration:
      -
        -
      • -
      • -
      -
    • -
    -
      -
    • Sometimes it will be needed to change R and G scale and add some blur for better effect. Do it like on image below
      -
        -
      • -
      • -
      -
    • -
    • After rendering, save the file to a destination you want and use it with the JME Lighting Material and the lowpoly version of the model.
      -
        -
      • -
      • -
      -
    • -
    - -
    - -

    LightMap baking

    -
    - -

    -The goal of this tutorial is to explain briefly how to bake light map in blender with a separate set of texture coordinates and then export a model using this map in jME3. -

    - -
    - -

    Blender modeling + texturing

    -
    -
      -
    • create a mesh in blender and unwrap it to create uvs
      -
        -
      • -
      • -
      -
    • -
    -
      -
    • In the mesh tab you can see the sets of Uvs, it will create the first one.
      -
        -
      • You can assign w/e texture on it, i used the built in checker of blender for the example.
        -
      • -
      -
    • -
    • In this list, create a new one and click on the camera icon so that baking is made with this set. Name it LightUvMap.
      -
    • -
    • In the 3D view in edit mode select all your mesh vertice and hit 'U'/LightMap pack then ok it will unfold the mesh for light map.
      -
    • -
    • Create a new image, go to the render tab an all at the end check the “Bake” section and select shadows. Then click bake.
      -
    • -
    • If all went ok it will create a light map like this.
      -
        -
      • -
      • -
      -
    • -
    • Go to the material tab, create a new one for your model and go to the Texture Tab.
      -
    • -
    • Create 2 textures one for the color map, and one for the light map.
      -
    • -
    • In the Mapping section be sure to select coordinates : UV and select the good set of coordinates.
      -
        -
      • -
      • -
      -
    • -
    • Then the light map
      -
        -
      • -
      • -
      -
    • -
    - -
    - -

    Importing the model in the SDK and creating the appropriate material

    -
    - -

    -Once this is done, export your model with the ogre exporter (or import it directly via the blend importer), and turn it into J3o with the SDK. -

    -
      -
    • Create material for it using the lighting definition.
      -
    • -
    • Add the colorMap in the diffuse map slot and the lightMap in the light map slot.
      -
    • -
    • Make sure you check “SeparateTexCoords”
      -
        -
      • -
      • -
      -
    • -
    • It should roughly result in something like that :
      -
        -
      • -
      • -
      -
    • -
    - -

    -The blend file, the ogre xml files and the textures can be found in the download section of the google code repo -

    - -

    - -

    - -
    - -

    Modelling racing tracks and cars

    -
    - -

    -Follow the link below to a pdf tutorial by rhymez where I guide you to modelling a car and importing it to the jMonkeyengine correctly and edit it in the vehicle editor.Plus how to model a simple racing track. - -

    - -
    - -

    Optimizing Models for 3D games

    -
    - -

    -Follow the link below to a pdf tutorial by rhymez where I guide you on how you can optimize your models for faster rendering. - -

    - -
    - -

    SkyBox baking

    -
    - -

    -There are several ways to create static images to use for a sky in your game. This will describe the concepts used in blender and create an ugly sky :-) Check the links below for other ways and prettier skies. -

    - -

    -A sky box is a texture mapped cube, it can also, loosely, be called en EnvMap or a CubeMap. The camera is inside the cube and the clever thing that jME does is to draw the sky so it is always behind whatever else is in your scene. Imagine the monkey is the camera in the picture. -

    -
      -
    • -
    • -
    - -

    -But a real sky is not a box around our heads, it is more like a sphere. So if we put any old image in the sky it will look strange and might even look like a box. This is not what we want. The trick is to distort the image so that it will look like a sphere even if it in fact is a picture pasted on a box. Luckily blender can do that tricky distortion for us. -

    - -

    -The screenshots are from Blender 2.63 but the equivalent operations have been in blender for years so with minor tweaks should work for almost any version. -

    - -

    -So let's get started -

    -
      -
    • Fire up blender and you'll see something like this.
      -
        -
      • -
      • -
      -
    • -
    • The cube in the start scene is perfect for us. What we'll do is have Blender render the scene onto that cube. The resulting image is what we'll use for our sky box. So our jME sky will look like we stood inside the blender box and looked out on the scene in blender.
      -
    • -
    • Start by selecting the box and set its material to shadeless.
      -
        -
      • -
      • -
      -
    • -
    • Now we will create a texture for the box. Make sure the texture is an Environment Map, that the Viewpoint Object is set to the cube. The resolution is how large the resulting image will be. More pixels makes the sky look better but comes at the cost of texture memory. You'll have to trim the resolution to what works in your application.
      -
        -
      • -
      • -
      -
    • -
    • Next up is the fun part, create the sky scene in blender. You can do whatever fits your application, include models for a city landscape, set up a texture mapped sphere in blender with a nice photographed sky, whatever you can think will make a good sky. I am not so creative so I created this scene:
      -
        -
      • -
      • -
      -
    • -
    • Now render the scene (press F12). It doesn't actually matter where the camera is in blender but you might see something similar to this:
      -
        -
      • -
      • -
      -
    • -
    • You can see that Blender has actually drawn the scene onto the cube. This is exactly what we want. Now to save the image.
      -
    • -
    • Select the texture of the cube and select save environment map.
      -
        -
      • -
      • -
      -
    • -
    • That is it for Blender. Open the saved image in some image editor (I use the Gimp from here).
      -
    • -
    - -

    -

    The SDK also contains an image editor, right-click the image and select “edit image” to open it. -

    -

    -
      -
    • You will notice that Blender has taken the 6 sides of the cube and pasted together into one image (3×2). So now we need to cut it up again into 6 separate images. In gimp I usually set the guides to where I want to cut and then go into Filters→Web→Slice and let gimp cut it up for me.
      -
        -
      • -
      • -
      -
    • -
    • Next up is to move the image files into your assets directory and create the sky in jME. You can do that in the Scene Composer by right clicking the scene node, select Add Spatial and then select Skybox.
      -
    • -
    - -

    -If you want to do it from code, here is an example: -

    -
    public void simpleInitApp() {
    - 
    -    Texture westTex = assetManager.loadTexture("Textures/west.png");
    -    Texture eastTex = assetManager.loadTexture("Textures/east.png");
    -    Texture northTex = assetManager.loadTexture("Textures/north.png");
    -    Texture southTex = assetManager.loadTexture("Textures/south.png");
    -    Texture upTex = assetManager.loadTexture("Textures/top.png");
    -    Texture downTex = assetManager.loadTexture("Textures/bottom.png");
    - 
    -    final Vector3f normalScale = new Vector3f(-1, 1, 1);
    -    Spatial skySpatial = SkyFactory.createSky(
    -                        assetManager,
    -                        westTex,
    -                        eastTex,
    -                        northTex,
    -                        southTex,
    -                        upTex,
    -                        downTex,
    -                        normalScale);
    -    rootNode.attachChild(skySpatial);
    -}
    - -

    -

    This example uses a strange normalScale, this is to flip the image on the X-axis and might not be needed in your case. Hint: the texture is applied on the outside of the cube but we are inside so what do we see? -

    -

    - -
    - -

    Further reading

    - - -

    view online version

    \ No newline at end of file diff --git a/jme3-documentation/src/com/jme3/gde/docs/sdk/3ds_to_blender_to_jmp.html b/jme3-documentation/src/com/jme3/gde/docs/sdk/3ds_to_blender_to_jmp.html deleted file mode 100644 index 4d167af74..000000000 --- a/jme3-documentation/src/com/jme3/gde/docs/sdk/3ds_to_blender_to_jmp.html +++ /dev/null @@ -1,65 +0,0 @@ - -

    Using Blender as a Intermediator Between 3dMax and the jMonkeyEngine SDK

    -
    - -

    -The jMonkeyEngine SDK supports .blend files and can convert them to jMonkeyEngine's .j3o format. This means you can use Blender to convert, for example, a 3dMax file to .j3o format. -

    - -
    - -

    Importing the .3ds file to Blender

    -
    - -

    -I'm using the blender 2.59 at this tutorial, but if you blender 2.49b, no problem ;). -After you saved your .3ds file in 3dmax, open the blender, delete the default cube, -and import your .3ds file via File—→Import—–>3D Studio. -

    - -

    - -

    - -
    - -

    Saving the .blend file

    -
    - -

    -Now save your .blend file so you can load it into the jMonkeyEngine SDK. -

    - -

    - -

    - -
    - -

    Importing the .blend file to the SDK by using the ModelImporter and BlenderSupport plugins

    -
    - -

    -Click on Import Model button and then click on Open Model button to open the .blend file. Click next, select the checkbox to import a copy from .blend file, and click finish. -

    - -

    - -

    - -
    - -

    Edit your model in SceneComposer and "VOILA"

    -
    - -

    -As you can see, the .blend model was automatically converted to .j3o binary format. Now, you are able to edit it in SceneComposer ;D. -

    - -

    - -

    - -
    - -

    view online version

    \ No newline at end of file diff --git a/jme3-documentation/src/com/jme3/gde/docs/sdk/blender.html b/jme3-documentation/src/com/jme3/gde/docs/sdk/blender.html deleted file mode 100644 index 4e7236702..000000000 --- a/jme3-documentation/src/com/jme3/gde/docs/sdk/blender.html +++ /dev/null @@ -1,362 +0,0 @@ - -

    Blender importer for jMonkeyEngine 3

    -
    - -
    - -

    Introduction

    -
    - -

    -Importing models to any game engine is as important as using them. The quality of the models depends on the abilities of the people who create it and on the tools they use. -Blender is one of the best free tools for creating 3D enviroments. Its high amount of features attract many model designers. -So far jMonkeyEngine used Ogre mesh files to import 3D data. These files were created by the python script that exported data from blender. -It was important to have always the lates version of the script that is compatible with the version of blender and to use it before importing data to jme. -Now we have an opportunity to simplify the import process by loading data directly from blender binary files: *.blend. -

    - -

    -

    Before you try to import models, make sure you created them properly. -

    -

    - -
    - -

    Usage

    -
    - -

    -To use it in your game or the SDK you should follow the standard asset loading instructions. -By default a BlenderModelLoader is registered with your assetManager to load blend files. This means you can load and convert .blend model files to .j3o format, just like any other supported model format. -

    - -
    - -

    Currently supported features

    -
    -
      -
    1. Loading scene (only the current scene is loaded and imported as a node)
      -
    2. -
    3. Loading mesh objects.
      -
        -
      • Meshes are split into several geometries when they have several materials applied.
        -
      • -
      • All faces are stored as triangles (even if blender uses quads).
        -
      • -
      • The mesh is 'Smooth' aware.
        -
      • -
      • User defined UV coordinates are read.
        -
      • -
      • Loading BMesh is supported.
        -
      • -
      -
    4. -
    5. Loading textures.
      -
        -
      • Both image and generated textures are imported.
        -
      • -
      • Textures influence is supported ('Influence' tab in blender 2.5+ and 'Map to' in 2.49).
        -
      • -
      • Map input is not yet fully supported (currently working on it ;) ) so please use UV-mapping for all kinds of textures.
        -
      • -
      -
    6. -
    7. Image textures.
      -
        -
      • Textures can be loaded from: png, jpg, bmp, dds and tga.
        -
      • -
      • Both textures stored in the blender file and the outside are loaded (the outside textures need a valid path).
        -
      • -
      • Image textures are stored as Texture2D.
        -
      • -
      -
    8. -
    9. Generated textures.
      -
        -
      • All generated textures can be loaded except: VoxelData, EnviromentMap and PointDensity.
        -
      • -
      • Feel free to use colorbands.
        -
      • -
      • Generated textures are 'baked' into 2D textures and merged to create one flat texture. They can be freely merged with image textures.
        -
      • -
      • Generated textures can be used as normal maps (but this looks poor when large amount of small triangles is used; incleasing generated texture ppu in blender key might help a little)
        -
      • -
      -
    10. -
    11. Loading materials.
      -
        -
      • Materials are loaded and attached to geometries.
        -
      • -
      • Because jMonkeyEngine supports only one material for each Mesh, if you apply several materials to one object – it will be split into several meshes (but still in one node).
        -
      • -
      • Several kinds of input mapping is supported: UV maps, Orco and Nor; all projection types for 2D textures, XYZ coordinates mapping.
        -
      • -
      -
    12. -
    13. Loading animations.
      -
        -
      • Bone animations and object animations are supported.
        -
      • -
      • Armatures are imported as Skeleton. Constraint loading is not fully supported so use it carefully.
        -
      • -
      • Only assigning vertices to bones is at the moment supported so do not use bones' envelopes.
        -
      • -
      -
    14. -
    15. Loading modifiers.
      -
        -
      1. Array modifier
        -
      2. -
      3. Mirror modifier
        -
      4. -
      5. Armature modifier (see loading animations)
        -
      6. -
      7. Particles modifier (see loading particles)
        -
      8. -
      -
        -
      • More will come with time.
        -
      • -
      -
    16. -
    17. Constraints loading
      -
        -
      • Constraints are basicly supported but they do not work the way I'd like it. So feel free to experiment with it. I will create another post when I get it to work properly.
        -
      • -
      -
    18. -
    19. Particles loading.
      -
        -
      • Some features of particles loading is supported. You can use only particle emitters at the moment.
        -
      • -
      • You can choose to emit particles from vertices, faces or the geometry's convex hull (instead of volume).
        -
      • -
      • Currently Newtonian Physics is only supported.
        -
      • -
      • It was mostly tested for blender 2.49 (so I'm not 100% sure about its use in blender 2.5+).
        -
      • -
      -
    20. -
    21. Using sculpting.
      -
        -
      • This should work quite well for now :).
        -
      • -
      -
    22. -
    23. Importing curves.
      -
        -
      • Both bezier and NURBS curves are supproted.
        -
      • -
      • Feel free to use bevel and taper objects as well ;)
        -
      • -
      -
    24. -
    25. Importing surfaces
      -
        -
      • NURBS surface and sphere can be imported.
        -
      • -
      -
    26. -
    27. Importing sky
      -
        -
      • loading world's horizon color as a background color if no sky type is used
        -
      • -
      • loading sky without the texture
        -
      • -
      • loading textured sky (including both generated and normal textures)
        -
      • -
      -
    28. -
    - -
    - -

    Planned features.

    -
    -
      -
    1. Full support for scale and offset in texture input mapping.
      -
    2. -
    3. Full support for bone and object constraints.
      -
    4. -
    5. More modifiers loaded.
      -
    6. -
    7. Loading texts.
      -
    8. -
    9. Loading meta objects (if jme will support it ;) ).
      -
    10. -
    - -
    - -

    Known bugs/problems.

    -
    -
      -
    1. RGB10 and RGB9E5 texture types are not supported in texture merging operations (which means that you can use this as a single texture on the model, but you should not combine it with other images or generated textures).
      -
    2. -
    3. If an armature is attached to a mesh that has more than one material the vertices of the mesh might be strongly displaced. Hope to fix that soon.
      -
    4. -
    - -
    - -

    Using BlenderLoader instead of BlenderModelLoader

    -
    - -

    -You have two loaders available. -

    -
      -
    • BlenderLoader that loads the whole scene. It returns an instance of LoadingResults that contains all the data loaded from the scene.
      -
    • -
    -
    public static class LoadingResults extends Spatial {
    -        /** Bitwise mask of features that are to be loaded. */
    -        private final int featuresToLoad;
    -        /** The scenes from the file. */
    -        private List<Node> scenes;
    -        /** Objects from all scenes. */
    -        private List<Node> objects;
    -        /** Materials from all objects. */
    -        private List<Material> materials;
    -        /** Textures from all objects. */
    -        private List<Texture> textures;
    -        /** Animations of all objects. */
    -        private List<AnimData> animations;
    -        /** All cameras from the file. */
    -        private List<Camera> cameras;
    -        /** All lights from the file. */
    -        private List<Light> lights;
    -	/** Access Methods goes here. */
    -}
    -
      -
    • BlenderModelLoader loads only the model node and should be used if you have a single model in a file.
      -
    • -
    - -

    -To register the model do the following: -

    -
    assetManager.registerLoader(BlenderLoader.class, "blend");
    - -

    -or -

    -
    assetManager.registerLoader(BlenderModelLoader.class, "blend");
    -
      -
    • The last thing to do is to create a proper key.
      -
    • -
    - -

    -You can use com.jme3.asset.BlenderKey for that. -The simplest use is to create the key with the asset's name. -It has many differens settings descibing the blender file more precisely, but all of them have default values so you do not need to worry about it at the beggining. -You can use ModelKey as well. This will give the same result as using default BlenderKey. -

    - -
    - -

    How does it work?

    -
    - -

    -BlenderLoader (as well as BlenderModelLoader) is looking for all kinds of known assets to load. -It's primary use is of course to load the models withon the files. -Each blender object is imported as scene Node. The node should have applied textures and materials as well. -If you define animations in your BlenderKey the animations will as well be imported and attached to the model. -

    - -

    -Here is the list of how blender features are mapped into jme. -

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    BlenderjMonkeyEngine3Note
    Scene Node
    Object Node
    Mesh List<Geometry> One mesh can have several materials so that is why a list is needed here.
    Lamp Light
    Camera Camera
    Material Material
    Texture Texture
    Curve Node Node with Curve as its mesh
    Surface Node The surface is transformed to the proper mesh
    - -

    -Using BlenderLoader can allow you to use blend file as your local assets repository. -You can store your textures, materials or meshes there and simply import it when needed. -Currently blender 2.49 and 2.5+ are supported (only the stable versions). -Probably versions before 2.49 will work pretty well too, but I never checked that :) -

    - -
    - -

    Notes

    -
    - -

    -I know that the current version of loader is not yet fully functional, but belive me – Blender is a very large issue ;) -Hope I will meet your expectations. -

    - -

    -Be mindful of the result model vertices amount. The best results are achieved when the model is smooth and has no texture. Then the vertex amount is equal to the vertex amount in blender. If the model is not smooth or has a generated texture applied then the amount of vertices is 3 times larger than mesh's triangles amount. If a 2d texture is applied with UV mapping then the vertex count will vary depending on how much the UV map is fragmented. -

    - -

    -When using polygon meshes in blender 2.5 and newer, better add and apply the triangulation modifier (if available in your version) or save the file with convertion from polygons to triangles. -Even though the importer supports loading of polygons as the mesh faces, if your face isn't convex, the results might contain errors. -

    - -

    -Not all modifiers are supported. If your model has modifiers and looks not the way you want in the jme scene - try to apply them and load again. -

    - -

    -Cheers, -Marcin Roguski (Kaelthas) -

    - -

    -P.S. -This text might be edited in a meantime if I forgot about something ;) -

    -
    - -

    -See also: -

    - - -

    -tag_documentation_sdk_tool_asset -

    - -
    - -

    view online version

    \ No newline at end of file diff --git a/jme3-lwjgl-applet/release/libs/applet-loader.zip b/jme3-lwjgl-applet/release/libs/applet-loader.zip index d6b82584be253c3b25b2df98a9d1a3aee58084a3..9baeef806cb5437080b1b978799276504785c798 100644 GIT binary patch delta 355 zcmXxbF;Buk7{>8J3s%G`cZ!OND1vy24la-o5KKDZ;Na9Wegb0HJ38F%pmA_#B}a0L zD_z(~ocRJK#3l@GKK6~nFZt)q^G=4t!~~qXo@r$a!?ul}JGdV?-%0B)lxemXaXq<_ zbfW|$!2}CZkcJiQMs_rhm$Erqg$%6e<}7AE?1aK~f72f*P8Sqp2~Z{YHmpZzvktUF8X$ zp;m8c6Po)6g7Bch%}@8G;RSELe7@u1Ffj(_`qH%0hGE-A{_XZ+z;`o-CmhErTS%}OV#3{LDlEtj7o8FPBr7=Y7XiRg5dxF diff --git a/jme3-vehicle-creator/src/com/jme3/gde/vehiclecreator/SuspensionSettings.java b/jme3-vehicle-creator/src/com/jme3/gde/vehiclecreator/SuspensionSettings.java index 4f90e2ece..4ac08176f 100644 --- a/jme3-vehicle-creator/src/com/jme3/gde/vehiclecreator/SuspensionSettings.java +++ b/jme3-vehicle-creator/src/com/jme3/gde/vehiclecreator/SuspensionSettings.java @@ -31,8 +31,8 @@ public SuspensionSettings() { } public SuspensionSettings(VehicleWheel wheel) { - this.direction.set(wheel.getDirection()); - this.axle.set(wheel.getAxle()); + this.direction.set(wheel.getDirection(new Vector3f())); + this.axle.set(wheel.getAxle(new Vector3f())); this.frontWheel = wheel.isFrontWheel(); this.radius = wheel.getRadius(); this.restLength = wheel.getRestLength(); diff --git a/jme3-vehicle-creator/src/com/jme3/gde/vehiclecreator/VehicleEditorController.java b/jme3-vehicle-creator/src/com/jme3/gde/vehiclecreator/VehicleEditorController.java index d3ec933de..9ffd03d7f 100644 --- a/jme3-vehicle-creator/src/com/jme3/gde/vehiclecreator/VehicleEditorController.java +++ b/jme3-vehicle-creator/src/com/jme3/gde/vehiclecreator/VehicleEditorController.java @@ -72,16 +72,16 @@ public VehicleEditorController(JmeSpatial jmeRootNode, BinaryModelDataObject cur toolsNode.addLight(new DirectionalLight()); Node track = (Node) new DesktopAssetManager(true).loadModel("Models/Racetrack/Raceway.j3o"); if (track.getChild("Grass").getControl(RigidBodyControl.class) == null) { - track.getChild("Grass").addControl(new RigidBodyControl()); + track.getChild("Grass").addControl(new RigidBodyControl(0f)); } if (track.getChild("Road").getControl(RigidBodyControl.class) == null) { - track.getChild("Road").addControl(new RigidBodyControl()); + track.getChild("Road").addControl(new RigidBodyControl(0f)); } if (track.getChild("Wall").getControl(RigidBodyControl.class) == null) { - track.getChild("Wall").addControl(new RigidBodyControl()); + track.getChild("Wall").addControl(new RigidBodyControl(0f)); } if (track.getChild("Rumble-Strip").getControl(RigidBodyControl.class) == null) { - track.getChild("Rumble-Strip").addControl(new RigidBodyControl()); + track.getChild("Rumble-Strip").addControl(new RigidBodyControl(0f)); } toolsNode.attachChild(track); diff --git a/nbi/stub/build.xml b/nbi/stub/build.xml index 3be580c7f..08fa58fe6 100644 --- a/nbi/stub/build.xml +++ b/nbi/stub/build.xml @@ -17,14 +17,6 @@ - - - - - - - - @@ -166,19 +158,6 @@ jarsigner.enabled=${jarsigner.enabled} - - - - - - - - - - - - - @@ -205,7 +184,6 @@ jarsigner.enabled=${jarsigner.enabled} - @@ -214,7 +192,6 @@ jarsigner.enabled=${jarsigner.enabled} - @@ -222,7 +199,6 @@ jarsigner.enabled=${jarsigner.enabled} - @@ -231,7 +207,6 @@ jarsigner.enabled=${jarsigner.enabled} - diff --git a/nbi/stub/ext/components/products/blender/build.xml b/nbi/stub/ext/components/products/blender/build.xml deleted file mode 100644 index 07f2eba0b..000000000 --- a/nbi/stub/ext/components/products/blender/build.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - Builds, tests, and runs the project helloworld. - - - diff --git a/nbi/stub/ext/components/products/blender/data/Bundle.properties b/nbi/stub/ext/components/products/blender/data/Bundle.properties deleted file mode 100644 index 33fc0b2ba..000000000 --- a/nbi/stub/ext/components/products/blender/data/Bundle.properties +++ /dev/null @@ -1,42 +0,0 @@ -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# -# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved. -# -# Oracle and Java are registered trademarks of Oracle and/or its affiliates. -# Other names may be trademarks of their respective owners. -# -# The contents of this file are subject to the terms of either the GNU General Public -# License Version 2 only ("GPL") or the Common Development and Distribution -# License("CDDL") (collectively, the "License"). You may not use this file except in -# compliance with the License. You can obtain a copy of the License at -# http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the -# License for the specific language governing permissions and limitations under the -# License. When distributing the software, include this License Header Notice in -# each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle -# designates this particular file as subject to the "Classpath" exception as provided -# by Oracle in the GPL Version 2 section of the License file that accompanied this code. -# If applicable, add the following below the License Header, with the fields enclosed -# by brackets [] replaced by your own identifying information: -# "Portions Copyrighted [year] [name of copyright owner]" -# -# Contributor(s): -# -# The Original Software is NetBeans. The Initial Developer of the Original Software -# is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All -# Rights Reserved. -# -# If you wish your version of this file to be governed by only the CDDL or only the -# GPL Version 2, indicate your decision by adding "[Contributor] elects to include -# this software in this distribution under the [CDDL or GPL Version 2] license." If -# you do not indicate a single choice of license, a recipient has the option to -# distribute your version of this file under either the CDDL, the GPL Version 2 or -# to extend the choice of license to its licensees as provided above. However, if you -# add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the -# option applies only if the new code is made subject to such option by the copyright -# holder. -# - -product.display.name={product-name} -product.description=Blender 3D editor in a version that is \ -compatible with jME3, recommended for jME3 game development. diff --git a/nbi/stub/ext/components/products/blender/data/icon.png b/nbi/stub/ext/components/products/blender/data/icon.png deleted file mode 100644 index a8c0f8c3480dc943a45444696e29140b76c41c61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 821 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must set src.dir - Must set test.src.dir - Must set build.dir - Must set dist.dir - Must set build.classes.dir - Must set dist.javadoc.dir - Must set build.test.classes.dir - Must set build.test.results.dir - Must set build.classes.excludes - Must set dist.jar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must set javac.includes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - No tests executed. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must set JVM to use for profiling in profiler.info.jvm - Must set profiler agent JVM arguments in profiler.info.jvmargs.agent - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select some files in the IDE or set javac.includes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - To run this application from the command line without Ant, try: - - java -jar "${dist.jar.resolved}" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select one file in the IDE or set run.class - - - - Must select one file in the IDE or set run.class - - - - - - - - - - - - - - - - - - - - - - - Must select one file in the IDE or set debug.class - - - - - Must select one file in the IDE or set debug.class - - - - - Must set fix.includes - - - - - - - - - - This target only works when run from inside the NetBeans IDE. - - - - - - - - - Must select one file in the IDE or set profile.class - This target only works when run from inside the NetBeans IDE. - - - - - - - - - This target only works when run from inside the NetBeans IDE. - - - - - - - - - - - - - This target only works when run from inside the NetBeans IDE. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select one file in the IDE or set run.class - - - - - - Must select some files in the IDE or set test.includes - - - - - Must select one file in the IDE or set run.class - - - - - Must select one file in the IDE or set applet.url - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select some files in the IDE or set javac.includes - - - - - - - - - - - - - - - - - - - - - - - - Some tests failed; see details above. - - - - - - - - - Must select some files in the IDE or set test.includes - - - - Some tests failed; see details above. - - - - Must select some files in the IDE or set test.class - Must select some method in the IDE or set test.method - - - - Some tests failed; see details above. - - - - - Must select one file in the IDE or set test.class - - - - Must select one file in the IDE or set test.class - Must select some method in the IDE or set test.method - - - - - - - - - - - - - - Must select one file in the IDE or set applet.url - - - - - - - - - Must select one file in the IDE or set applet.url - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/nbi/stub/ext/components/products/blender/nbproject/genfiles.properties b/nbi/stub/ext/components/products/blender/nbproject/genfiles.properties deleted file mode 100644 index fb4a26f76..000000000 --- a/nbi/stub/ext/components/products/blender/nbproject/genfiles.properties +++ /dev/null @@ -1,8 +0,0 @@ -build.xml.data.CRC32=b5c7f54a -build.xml.script.CRC32=16bbb630 -build.xml.stylesheet.CRC32=be360661 -# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. -# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. -nbproject/build-impl.xml.data.CRC32=eb8fa073 -nbproject/build-impl.xml.script.CRC32=52136381 -nbproject/build-impl.xml.stylesheet.CRC32=f89f7d21@1.94.0.48 diff --git a/nbi/stub/ext/components/products/blender/nbproject/project.properties b/nbi/stub/ext/components/products/blender/nbproject/project.properties deleted file mode 100644 index ddafab052..000000000 --- a/nbi/stub/ext/components/products/blender/nbproject/project.properties +++ /dev/null @@ -1,85 +0,0 @@ -annotation.processing.enabled=true -annotation.processing.enabled.in.editor=false -annotation.processing.processors.list= -annotation.processing.run.all.processors=true -application.title=blender -application.vendor=dlm198383 -build.classes.dir=${build.dir}/classes -build.classes.excludes=**/*.java,**/*.form -# This directory is removed when the project is cleaned: -build.dir=build -build.generated.dir=${build.dir}/generated -build.generated.sources.dir=${build.dir}/generated-sources -# Only compile against the classpath explicitly listed here: -build.sysclasspath=ignore -build.test.classes.dir=${build.dir}/test/classes -build.test.results.dir=${build.dir}/test/results -debug.classpath=\ - ${run.classpath} -debug.modulepath=\ - ${run.modulepath} -debug.test.classpath=\ - ${run.test.classpath} -debug.test.modulepath=\ - ${run.test.modulepath} -# This directory is removed when the project is cleaned: -dist.dir=dist -dist.jar=${dist.dir}/blender.jar -dist.javadoc.dir=${dist.dir}/javadoc -endorsed.classpath= -excludes= -includes=** -jar.compress=false -javac.classpath=\ - ${reference.Core_NBI_Engine.jar}:\ - ../../../../../antlib/nbi-engine.jar -# Space-separated list of extra javac options -javac.compilerargs= -javac.deprecation=false -javac.external.vm=false -javac.modulepath= -javac.processormodulepath= -javac.processorpath=\ - ${javac.classpath} -javac.source=1.7 -javac.target=1.7 -javac.test.classpath=\ - ${javac.classpath}:\ - ${build.classes.dir}:\ - ${libs.junit.classpath}:\ - ${libs.junit_4.classpath} -javac.test.modulepath=\ - ${javac.modulepath} -javadoc.additionalparam= -javadoc.author=false -javadoc.encoding=${source.encoding} -javadoc.noindex=false -javadoc.nonavbar=false -javadoc.notree=false -javadoc.private=false -javadoc.splitindex=true -javadoc.use=true -javadoc.version=false -javadoc.windowtitle= -meta.inf.dir=${src.dir}/META-INF -mkdist.disabled=false -platform.active=default_platform -project.Core_NBI_Engine=../../../../nbi/engine -reference.Core_NBI_Engine.jar=${project.Core_NBI_Engine}/dist/nbi-engine.jar -run.classpath=\ - ${javac.classpath}:\ - ${build.classes.dir} -# Space-separated list of JVM arguments used when running the project -# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value -# or test-sys-prop.name=value to set system properties for unit tests): -run.jvmargs= -run.modulepath=\ - ${javac.modulepath} -run.test.classpath=\ - ${javac.test.classpath}:\ - ${build.test.classes.dir} -run.test.modulepath=\ - ${javac.test.modulepath} -source.encoding=UTF-8 -src.dir=src -test.src.dir=test diff --git a/nbi/stub/ext/components/products/blender/nbproject/project.xml b/nbi/stub/ext/components/products/blender/nbproject/project.xml deleted file mode 100644 index 466ac44f7..000000000 --- a/nbi/stub/ext/components/products/blender/nbproject/project.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - org.netbeans.modules.java.j2seproject - - - blender - 1.6.5 - - - - - - - - - - Core_NBI_Engine - jar - - jar - clean - jar - - - - diff --git a/nbi/stub/ext/components/products/blender/src/org/mycompany/Bundle.properties b/nbi/stub/ext/components/products/blender/src/org/mycompany/Bundle.properties deleted file mode 100644 index e69de29bb..000000000 diff --git a/nbi/stub/ext/components/products/blender/src/org/mycompany/ConfigurationLogic.java b/nbi/stub/ext/components/products/blender/src/org/mycompany/ConfigurationLogic.java deleted file mode 100644 index d1616e459..000000000 --- a/nbi/stub/ext/components/products/blender/src/org/mycompany/ConfigurationLogic.java +++ /dev/null @@ -1,99 +0,0 @@ -package org.mycompany; - -import java.io.File; -import java.util.List; -import org.netbeans.installer.product.Registry; -import org.netbeans.installer.product.components.Product; -import org.netbeans.installer.product.components.ProductConfigurationLogic; -import org.netbeans.installer.utils.LogManager; -import org.netbeans.installer.utils.helper.RemovalMode; -import org.netbeans.installer.utils.exceptions.InitializationException; -import org.netbeans.installer.utils.exceptions.InstallationException; -import org.netbeans.installer.utils.exceptions.UninstallationException; -import org.netbeans.installer.utils.helper.Platform; -import org.netbeans.installer.utils.progress.Progress; -import org.netbeans.installer.wizard.Wizard; -import org.netbeans.installer.wizard.components.WizardComponent; -//normen - JDK launchers - -public class ConfigurationLogic extends ProductConfigurationLogic { - - private List wizardComponents; - - // constructor ////////////////////////////////////////////////////////////////// - public ConfigurationLogic() throws InitializationException { - wizardComponents = Wizard.loadWizardComponents( - WIZARD_COMPONENTS_URI, - getClass().getClassLoader()); - } - - public List getWizardComponents() { - return wizardComponents; - } - - @Override - public boolean allowModifyMode() { - return false; - } - - @Override - public void install(Progress progress) throws InstallationException { - final Product product = getProduct(); - final File installLocation = product.getInstallationLocation(); - LogManager.log("Setting Blender files as executable"); - setExecutableFile(installLocation, "blender"); - setExecutableFile(installLocation, "blenderplayer"); - setExecutableFile(installLocation, "blender-softwaregl"); - } - private static void setExecutableFile(File parent, String path) { - File binFile = new File(parent, path); - try { - binFile.setExecutable(true, false); - } catch (Exception ex) { - ex.printStackTrace(); - } - } - - @Override - public void uninstall(Progress progress) throws UninstallationException { - progress.setPercentage(Progress.COMPLETE); - } - - @Override - public String getExecutable() { - return ""; - } - - @Override - public String getIcon() { - return ""; - } - - public RemovalMode getRemovalMode() { - return RemovalMode.LIST; - } - - @Override - public boolean registerInSystem() { - return false; - } - - @Override - public boolean requireLegalArtifactSaving() { - return false; - } - - @Override - public boolean requireDotAppForMacOs() { - return false; - } - - @Override - public boolean wrapForMacOs() { - return false; - } - - public static final String WIZARD_COMPONENTS_URI = - "resource:" + // NOI18N - "org/mycompany/wizard.xml"; // NOI18N -} diff --git a/nbi/stub/ext/components/products/blender/src/org/mycompany/wizard.xml b/nbi/stub/ext/components/products/blender/src/org/mycompany/wizard.xml deleted file mode 100644 index 48cf8e5c7..000000000 --- a/nbi/stub/ext/components/products/blender/src/org/mycompany/wizard.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - diff --git a/nbi/stub/ext/components/products/blender/src/org/mycompany/wizard/panels/Bundle.properties b/nbi/stub/ext/components/products/blender/src/org/mycompany/wizard/panels/Bundle.properties deleted file mode 100644 index ed2c2d07d..000000000 --- a/nbi/stub/ext/components/products/blender/src/org/mycompany/wizard/panels/Bundle.properties +++ /dev/null @@ -1,51 +0,0 @@ -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# -# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved. -# -# Oracle and Java are registered trademarks of Oracle and/or its affiliates. -# Other names may be trademarks of their respective owners. -# -# The contents of this file are subject to the terms of either the GNU General Public -# License Version 2 only ("GPL") or the Common Development and Distribution -# License("CDDL") (collectively, the "License"). You may not use this file except in -# compliance with the License. You can obtain a copy of the License at -# http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the -# License for the specific language governing permissions and limitations under the -# License. When distributing the software, include this License Header Notice in -# each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle -# designates this particular file as subject to the "Classpath" exception as provided -# by Oracle in the GPL Version 2 section of the License file that accompanied this code. -# If applicable, add the following below the License Header, with the fields enclosed -# by brackets [] replaced by your own identifying information: -# "Portions Copyrighted [year] [name of copyright owner]" -# -# Contributor(s): -# -# The Original Software is NetBeans. The Initial Developer of the Original Software -# is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All -# Rights Reserved. -# -# If you wish your version of this file to be governed by only the CDDL or only the -# GPL Version 2, indicate your decision by adding "[Contributor] elects to include -# this software in this distribution under the [CDDL or GPL Version 2] license." If -# you do not indicate a single choice of license, a recipient has the option to -# distribute your version of this file under either the CDDL, the GPL Version 2 or -# to extend the choice of license to its licensees as provided above. However, if you -# add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the -# option applies only if the new code is made subject to such option by the copyright -# holder. -# - -################################################################################ -# will be augmented with the product name from data/Bundle.properties -# Note: Augmentation is broken, see ShortcutCreationPanel.java - -P.title= Blender -P.description=Create a desktop shortcut for the Blender 3D Editor. - -P.create.desktop.shortcut=Create Desktop icon -P.create.start.menu.shortcut.windows=Create Start menu entry -P.create.start.menu.shortcut.unix=Create shortcut in Applications menu -P.create.start.menu.shortcut.macosx=Create icon in Dock - diff --git a/nbi/stub/ext/components/products/blender/src/org/mycompany/wizard/panels/ShortcutCreationPanel.java b/nbi/stub/ext/components/products/blender/src/org/mycompany/wizard/panels/ShortcutCreationPanel.java deleted file mode 100644 index 225bed537..000000000 --- a/nbi/stub/ext/components/products/blender/src/org/mycompany/wizard/panels/ShortcutCreationPanel.java +++ /dev/null @@ -1,182 +0,0 @@ -package org.mycompany.wizard.panels; - -import java.awt.GridBagConstraints; -import java.awt.Insets; -import org.netbeans.installer.utils.ResourceUtils; -import org.netbeans.installer.utils.StringUtils; -import org.netbeans.installer.utils.SystemUtils; -import org.netbeans.installer.utils.helper.swing.NbiCheckBox; -import org.netbeans.installer.wizard.components.panels.ErrorMessagePanel; -import org.netbeans.installer.wizard.containers.SwingContainer; -import org.netbeans.installer.wizard.ui.SwingUi; -import org.netbeans.installer.wizard.ui.WizardUi; - -/** - * - * @author Dmitry Lipin - */ -public class ShortcutCreationPanel extends ErrorMessagePanel { - - public ShortcutCreationPanel() { - setProperty(TITLE_PROPERTY, - DEFAULT_TITLE); - setProperty(DESCRIPTION_PROPERTY, - DEFAULT_DESCRIPTION); - - } - - @Override - public WizardUi getWizardUi() { - if (wizardUi == null) { - wizardUi = new ShortcutCreationPanelUi(this); - } - - return wizardUi; - } - - @Override - public void initialize() { - super.initialize(); - if(getWizard().getProperty(CREATE_DESKTOP_SHORTCUT_PROPERTY) == null) { - getWizard().setProperty(CREATE_DESKTOP_SHORTCUT_PROPERTY, "" + true); - } - if(getWizard().getProperty(CREATE_START_MENU_SHORTCUT_PROPERTY) == null) { - getWizard().setProperty(CREATE_START_MENU_SHORTCUT_PROPERTY, "" + true); - } - } - - - public static class ShortcutCreationPanelUi extends ErrorMessagePanelUi { - - protected ShortcutCreationPanel panel; - - public ShortcutCreationPanelUi(ShortcutCreationPanel panel) { - super(panel); - - - this.panel = panel; - } - - public SwingUi getSwingUi(SwingContainer container) { - if (swingUi == null) { - swingUi = new ShortcutCreationPanelSwingUi(panel, container); - } - - return super.getSwingUi(container); - } - } - - public static class ShortcutCreationPanelSwingUi extends ErrorMessagePanelSwingUi { - - protected ShortcutCreationPanel panel; - private NbiCheckBox desktopShortcutComboBox; - private NbiCheckBox startMenuShortcutComboBox; - - public ShortcutCreationPanelSwingUi( - final ShortcutCreationPanel panel, - final SwingContainer container) { - super(panel, container); - - this.panel = panel; - - initComponents(); - } - - // protected //////////////////////////////////////////////////////////////// - @Override - protected void initialize() { - desktopShortcutComboBox.setText(CREATE_DESKTOP_SHORTCUT_NAME); - desktopShortcutComboBox.setSelected(false); - if(Boolean.parseBoolean(panel.getWizard().getProperty(CREATE_DESKTOP_SHORTCUT_PROPERTY))) { - desktopShortcutComboBox.doClick(); - } - - startMenuShortcutComboBox.setText( - SystemUtils.isWindows() ? CREATE_START_MENU_SHORTCUT_NAME_WINDOWS : - (SystemUtils.isMacOS() ? CREATE_START_MENU_SHORTCUT_NAME_MAC : - CREATE_START_MENU_SHORTCUT_NAME_UNIX)); - startMenuShortcutComboBox.setSelected(false); - if(Boolean.parseBoolean(panel.getWizard().getProperty(CREATE_START_MENU_SHORTCUT_PROPERTY))) { - startMenuShortcutComboBox.doClick(); - } - - super.initialize(); - } - - @Override - protected void saveInput() { - super.saveInput(); - panel.getWizard().setProperty( - CREATE_DESKTOP_SHORTCUT_PROPERTY, - StringUtils.EMPTY_STRING + desktopShortcutComboBox.isSelected()); - - panel.getWizard().setProperty( - CREATE_START_MENU_SHORTCUT_PROPERTY, - StringUtils.EMPTY_STRING + startMenuShortcutComboBox.isSelected()); - } - - @Override - protected String validateInput() { - String errorMessage = super.validateInput(); - return errorMessage; - } - - // private ////////////////////////////////////////////////////////////////// - private void initComponents() { - // selectedLocationField //////////////////////////////////////////////// - desktopShortcutComboBox = new NbiCheckBox(); - startMenuShortcutComboBox = new NbiCheckBox(); - - // this ///////////////////////////////////////////////////////////////// - add(desktopShortcutComboBox, new GridBagConstraints( - 0, 2, // x, y - 2, 1, // width, height - 1.0, 0.0, // weight-x, weight-y - GridBagConstraints.LINE_START, // anchor - GridBagConstraints.HORIZONTAL, // fill - new Insets(15, 11, 0, 11), // padding - 0, 0)); // padx, pady - ??? - add(startMenuShortcutComboBox, new GridBagConstraints( - 0, 3, // x, y - 2, 1, // width, height - 1.0, 0.0, // weight-x, weight-y - GridBagConstraints.LINE_START, // anchor - GridBagConstraints.HORIZONTAL, // fill - new Insets(7, 11, 0, 11), // padding - 0, 0)); // padx, pady - ??? - - } - } - ///////////////////////////////////////////////////////////////////////////////// - // Constants - - /* @TODO: "ResourceUtils.getString("data","product.display.name")" is broken - * It should fetch the properties from the data folder and then we should - * also do the same for the description. For some reason the Resource "data" - * is not found (See #227). I've integrated everything within P.title and - * P.description, doesn't matter for now since we have no i18n anyway. - * - MeFisto94 - */ - public static final String DEFAULT_TITLE = - ResourceUtils.getString(ShortcutCreationPanel.class, - "P.title"); // NOI18N - public static final String DEFAULT_DESCRIPTION = - ResourceUtils.getString(ShortcutCreationPanel.class, - "P.description"); // NOI18N - public static final String CREATE_DESKTOP_SHORTCUT_NAME = - ResourceUtils.getString(ShortcutCreationPanel.class, - "P.create.desktop.shortcut"); // NOI18N - public static final String CREATE_START_MENU_SHORTCUT_NAME_WINDOWS = - ResourceUtils.getString(ShortcutCreationPanel.class, - "P.create.start.menu.shortcut.windows"); // NOI18N - public static final String CREATE_START_MENU_SHORTCUT_NAME_UNIX = - ResourceUtils.getString(ShortcutCreationPanel.class, - "P.create.start.menu.shortcut.unix"); // NOI18N - public static final String CREATE_START_MENU_SHORTCUT_NAME_MAC = - ResourceUtils.getString(ShortcutCreationPanel.class, - "P.create.start.menu.shortcut.macosx"); // NOI18N - public static final String CREATE_DESKTOP_SHORTCUT_PROPERTY = - "create.desktop.shortcut"; - public static final String CREATE_START_MENU_SHORTCUT_PROPERTY = - "create.start.menu.shortcut"; -} diff --git a/nbi/stub/ext/infra/build/products/README b/nbi/stub/ext/infra/build/products/README index 892a83214..3a4ab735c 100644 --- a/nbi/stub/ext/infra/build/products/README +++ b/nbi/stub/ext/infra/build/products/README @@ -1,5 +1,4 @@ Updating Bundled Products: a) To update the JDK edit ~/jdks/download-jdks.sh and make sure to clean any caches (on CI-Systems like Travis) or delete the file links in ~/jdks/ -b) To update blender you simply need to change the download URLs AND the Base Folder (just see their properties files, it’s self explanatory) The product "helloworld" is the SDK itself (don't ask me, legacy code) diff --git a/nbi/stub/ext/infra/build/products/blender-linux-x64/build.properties b/nbi/stub/ext/infra/build/products/blender-linux-x64/build.properties deleted file mode 100644 index 85e24472e..000000000 --- a/nbi/stub/ext/infra/build/products/blender-linux-x64/build.properties +++ /dev/null @@ -1,161 +0,0 @@ -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# -# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved. -# -# Oracle and Java are registered trademarks of Oracle and/or its affiliates. -# Other names may be trademarks of their respective owners. -# -# The contents of this file are subject to the terms of either the GNU General Public -# License Version 2 only ("GPL") or the Common Development and Distribution -# License("CDDL") (collectively, the "License"). You may not use this file except in -# compliance with the License. You can obtain a copy of the License at -# http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the -# License for the specific language governing permissions and limitations under the -# License. When distributing the software, include this License Header Notice in -# each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle -# designates this particular file as subject to the "Classpath" exception as provided -# by Oracle in the GPL Version 2 section of the License file that accompanied this code. -# If applicable, add the following below the License Header, with the fields enclosed -# by brackets [] replaced by your own identifying information: -# "Portions Copyrighted [year] [name of copyright owner]" -# -# Contributor(s): -# -# The Original Software is NetBeans. The Initial Developer of the Original Software -# is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All -# Rights Reserved. -# -# If you wish your version of this file to be governed by only the CDDL or only the -# GPL Version 2, indicate your decision by adding "[Contributor] elects to include -# this software in this distribution under the [CDDL or GPL Version 2] license." If -# you do not indicate a single choice of license, a recipient has the option to -# distribute your version of this file under either the CDDL, the GPL Version 2 or -# to extend the choice of license to its licensees as provided above. However, if you -# add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the -# option applies only if the new code is made subject to such option by the copyright -# holder. -# - -# path to the directory where the base build scripts library and properties -# reside -common.dir=../../../../../.common - -# path to the local working directory; this directory which will be the target -# for checking out the sources and will be used for the build process -# * this path can be either absolute or relative in any unix environment, -# however, only relative paths are supported on windows, as the cygwin scp -# command does not properly handle colon in local paths -work.dir=./build - -# path to the local distributive directory; this directory will contain the -# distributive file, when (if) the build script finishes successfully -dist.dir=./dist - -# path to the products's sources within the cvs module; it should be a relative -# path from the module's root, e.g. for 'nbi/engine', where 'nbi is the module -# name, the path should be 'engine' -cvs.path=components/products/blender - -# core product properties: -# * ${product.uid} - product "family" (e.g. nb-ide) -# * ${product.version} - actual products' version; together with the uid it -# forms the unique identifier for the product) -# * ${product.platforms} - the list of platforms that are supported by this -# product (note that this property is not related to native libraries) -product.uid=blender -#normen - do not change this to the actual app version, it has to be the jME SDK version -product.version={product-version} -product.platforms=linux-x64 - -# miscellaneous product properties: -# * ${product.status} - default status that the product will have in the -# registry. it is meant to be always "not-installed", unless you want -# something really exotic -# * ${product.offset} - order of the product's node among its parent's -# children, the bigger the offset value, the further the product's node will -# be -# * ${product.expand} - whether to automatically expand the product's node in -# the components tree or not; 'true'/'false' -# * ${product.visible} - whether the product's node is visible or not (note -# that this value will be modified at nbi runtime, 'true' may become 'false' -# if the product is filtered out); 'true'/'false' -# * ${product.features} - list of features that this product belongs to; the -# list should be space-separated -product.status=not-installed -product.offset=20000 -product.expand=false -product.visible=true -product.features= - -# list of configuration logic jar files; normally the first one would be the -# distributive file of the product's netbeans project -# * ${product.logic.length} - total number of the files -# * indices should start with 1 -product.logic.length=1 -product.logic.1.path=${nbproject.dist.dir}/${nbproject.dist.file.name} - -# list of product installation data files -# * ${product.data.length} - total number of the files -# * ${product.data.N.uri} - uri at which the installation data file is located -# * ${product.data.N.zip} - whether the data file is a zip archive which needs to -# be extracted or it is a file that should be used directly; 'true'/'false' -# * indices should start with 1 -product.data.length=1 -product.data.1.zip=false -product.data.1.uri=https://download.blender.org/release/Blender2.79/blender-2.79-linux-glibc219-x86_64.tar.bz2 -product.data.tar=blender-2.79-linux-glibc219-x86_64.tar.bz2 -product.data.sub.dir=blender-2.79-linux-glibc219-x86_64 - -# modificator for the required disk space parameter; the core value will be the -# sum of unzipped unstallation data files -# * the measurement unit is one byte -product.disk.space.modificator=0 - -# product's requirements (i.e. other products that should be installed -# in order for this product to succesfully install and function) -# * ${product.requirements.length} - total number of the requirements -# * indices should start with 1 -product.requirements.length=0 -#product.requirements.1.uid= -#product.requirements.1.version-lower= -#product.requirements.1.version-upper= - -# product's conflicts (i.e. other products that prevent this product from -# functioning correctly, and thus cannot be installed together with it) -# * ${product.conflicts.length} - total number of the conflicts -# * indices should start with 1 -product.conflicts.length=0 -#product.conflicts.1.uid= -#product.conflicts.1.version-lower= -#product.conflicts.1.version-upper= - -# other products that should be installed prior to this product; these -# dependencies do not imply that the dependent product will be installed at -# all, but if both the current and the dependent product are selected for -# installation, the latter will be installed first -# * ${product.install-afters.length} - total number of the install-afters -# * indices should start with 1 -product.install-afters.length=0 -#product.install-afters.1.uid= - -# additional product's properties; these will appear in the product's -# descriptor and in the registry in the form of -# value tags. -# * ${product.properties.length} - total number of the properties -# * indices should start with 1 -# * properties are not i18n compliant -product.properties.length=3 -product.properties.1.name=installation.location -product.properties.1.value=$N{install}/{product-install-directory-name} -product.properties.2.name=installation.location.windows -product.properties.2.value=$N{install}/{product-install-directory-name-windows} -product.properties.3.name=installation.location.macosx -product.properties.3.value=$N{install}/{product-install-directory-name-macosx}.app - -# sources parameters; a search-and-replace will be run over the sources after -# check-out, replacing [token] => [value]; regular expressions are not allowed -# * ${sources.params.length} - total number of the parameters -# * indices should start with 1 -# * parameters are not i18n compliant -sources.params.length=0 diff --git a/nbi/stub/ext/infra/build/products/blender-linux-x64/build.xml b/nbi/stub/ext/infra/build/products/blender-linux-x64/build.xml deleted file mode 100644 index 154783552..000000000 --- a/nbi/stub/ext/infra/build/products/blender-linux-x64/build.xml +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - In order to 'clean', 'checkout' and 'build' the group use the - 'build-all' target. To 'clean', 'checkout', 'build' and - 'release' - use 'release-all'. - - For more details, please see the source of this build script. - - - diff --git a/nbi/stub/ext/infra/build/products/blender-macosx/build.properties b/nbi/stub/ext/infra/build/products/blender-macosx/build.properties deleted file mode 100644 index 1542ec358..000000000 --- a/nbi/stub/ext/infra/build/products/blender-macosx/build.properties +++ /dev/null @@ -1,162 +0,0 @@ -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# -# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved. -# -# Oracle and Java are registered trademarks of Oracle and/or its affiliates. -# Other names may be trademarks of their respective owners. -# -# The contents of this file are subject to the terms of either the GNU General Public -# License Version 2 only ("GPL") or the Common Development and Distribution -# License("CDDL") (collectively, the "License"). You may not use this file except in -# compliance with the License. You can obtain a copy of the License at -# http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the -# License for the specific language governing permissions and limitations under the -# License. When distributing the software, include this License Header Notice in -# each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle -# designates this particular file as subject to the "Classpath" exception as provided -# by Oracle in the GPL Version 2 section of the License file that accompanied this code. -# If applicable, add the following below the License Header, with the fields enclosed -# by brackets [] replaced by your own identifying information: -# "Portions Copyrighted [year] [name of copyright owner]" -# -# Contributor(s): -# -# The Original Software is NetBeans. The Initial Developer of the Original Software -# is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All -# Rights Reserved. -# -# If you wish your version of this file to be governed by only the CDDL or only the -# GPL Version 2, indicate your decision by adding "[Contributor] elects to include -# this software in this distribution under the [CDDL or GPL Version 2] license." If -# you do not indicate a single choice of license, a recipient has the option to -# distribute your version of this file under either the CDDL, the GPL Version 2 or -# to extend the choice of license to its licensees as provided above. However, if you -# add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the -# option applies only if the new code is made subject to such option by the copyright -# holder. -# - -# path to the directory where the base build scripts library and properties -# reside -common.dir=../../../../../.common - -# path to the local working directory; this directory which will be the target -# for checking out the sources and will be used for the build process -# * this path can be either absolute or relative in any unix environment, -# however, only relative paths are supported on windows, as the cygwin scp -# command does not properly handle colon in local paths -work.dir=./build - -# path to the local distributive directory; this directory will contain the -# distributive file, when (if) the build script finishes successfully -dist.dir=./dist - -# path to the products's sources within the cvs module; it should be a relative -# path from the module's root, e.g. for 'nbi/engine', where 'nbi is the module -# name, the path should be 'engine' -cvs.path=components/products/blender - -# core product properties: -# * ${product.uid} - product "family" (e.g. nb-ide) -# * ${product.version} - actual products' version; together with the uid it -# forms the unique identifier for the product) -# * ${product.platforms} - the list of platforms that are supported by this -# product (note that this property is not related to native libraries) -product.uid=blender -#normen - do not change this to the actual app version, it has to be the jME SDK version -product.version={product-version} -product.platforms=macosx - -# miscellaneous product properties: -# * ${product.status} - default status that the product will have in the -# registry. it is meant to be always "not-installed", unless you want -# something really exotic -# * ${product.offset} - order of the product's node among its parent's -# children, the bigger the offset value, the further the product's node will -# be -# * ${product.expand} - whether to automatically expand the product's node in -# the components tree or not; 'true'/'false' -# * ${product.visible} - whether the product's node is visible or not (note -# that this value will be modified at nbi runtime, 'true' may become 'false' -# if the product is filtered out); 'true'/'false' -# * ${product.features} - list of features that this product belongs to; the -# list should be space-separated -product.status=not-installed -product.offset=20000 -product.expand=false -product.visible=true -product.features= - -# list of configuration logic jar files; normally the first one would be the -# distributive file of the product's netbeans project -# * ${product.logic.length} - total number of the files -# * indices should start with 1 -product.logic.length=1 -product.logic.1.path=${nbproject.dist.dir}/${nbproject.dist.file.name} - -# list of product installation data files -# * ${product.data.length} - total number of the files -# * ${product.data.N.uri} - uri at which the installation data file is located -# * ${product.data.N.zip} - whether the data file is a zip archive which needs to -# be extracted or it is a file that should be used directly; 'true'/'false' -# * indices should start with 1 -product.data.length=1 -product.data.1.zip=false -#normen -product.data.1.uri=https://download.blender.org/release/Blender2.79/blender-2.79-macOS-10.6.tar.gz -product.data.tar=blender-2.79-macOS-10.6.tar.gz -product.data.sub.dir=blender-2.79-macOS-10.6 - -# modificator for the required disk space parameter; the core value will be the -# sum of unzipped unstallation data files -# * the measurement unit is one byte -product.disk.space.modificator=0 - -# product's requirements (i.e. other products that should be installed -# in order for this product to succesfully install and function) -# * ${product.requirements.length} - total number of the requirements -# * indices should start with 1 -product.requirements.length=0 -#product.requirements.1.uid= -#product.requirements.1.version-lower= -#product.requirements.1.version-upper= - -# product's conflicts (i.e. other products that prevent this product from -# functioning correctly, and thus cannot be installed together with it) -# * ${product.conflicts.length} - total number of the conflicts -# * indices should start with 1 -product.conflicts.length=0 -#product.conflicts.1.uid= -#product.conflicts.1.version-lower= -#product.conflicts.1.version-upper= - -# other products that should be installed prior to this product; these -# dependencies do not imply that the dependent product will be installed at -# all, but if both the current and the dependent product are selected for -# installation, the latter will be installed first -# * ${product.install-afters.length} - total number of the install-afters -# * indices should start with 1 -product.install-afters.length=0 -#product.install-afters.1.uid= - -# additional product's properties; these will appear in the product's -# descriptor and in the registry in the form of -# value tags. -# * ${product.properties.length} - total number of the properties -# * indices should start with 1 -# * properties are not i18n compliant -product.properties.length=3 -product.properties.1.name=installation.location -product.properties.1.value=$N{install}/{product-install-directory-name} -product.properties.2.name=installation.location.windows -product.properties.2.value=$N{install}/{product-install-directory-name-windows} -product.properties.3.name=installation.location.macosx -product.properties.3.value=$N{install}/{product-install-directory-name-macosx}.app - -# sources parameters; a search-and-replace will be run over the sources after -# check-out, replacing [token] => [value]; regular expressions are not allowed -# * ${sources.params.length} - total number of the parameters -# * indices should start with 1 -# * parameters are not i18n compliant -sources.params.length=0 diff --git a/nbi/stub/ext/infra/build/products/blender-macosx/build.xml b/nbi/stub/ext/infra/build/products/blender-macosx/build.xml deleted file mode 100644 index 19a01495b..000000000 --- a/nbi/stub/ext/infra/build/products/blender-macosx/build.xml +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - In order to 'clean', 'checkout' and 'build' the group use the - 'build-all' target. To 'clean', 'checkout', 'build' and - 'release' - use 'release-all'. - - For more details, please see the source of this build script. - - - diff --git a/nbi/stub/ext/infra/build/products/blender-windows-x64/build.properties b/nbi/stub/ext/infra/build/products/blender-windows-x64/build.properties deleted file mode 100644 index d4ab052d6..000000000 --- a/nbi/stub/ext/infra/build/products/blender-windows-x64/build.properties +++ /dev/null @@ -1,160 +0,0 @@ -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# -# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved. -# -# Oracle and Java are registered trademarks of Oracle and/or its affiliates. -# Other names may be trademarks of their respective owners. -# -# The contents of this file are subject to the terms of either the GNU General Public -# License Version 2 only ("GPL") or the Common Development and Distribution -# License("CDDL") (collectively, the "License"). You may not use this file except in -# compliance with the License. You can obtain a copy of the License at -# http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the -# License for the specific language governing permissions and limitations under the -# License. When distributing the software, include this License Header Notice in -# each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle -# designates this particular file as subject to the "Classpath" exception as provided -# by Oracle in the GPL Version 2 section of the License file that accompanied this code. -# If applicable, add the following below the License Header, with the fields enclosed -# by brackets [] replaced by your own identifying information: -# "Portions Copyrighted [year] [name of copyright owner]" -# -# Contributor(s): -# -# The Original Software is NetBeans. The Initial Developer of the Original Software -# is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All -# Rights Reserved. -# -# If you wish your version of this file to be governed by only the CDDL or only the -# GPL Version 2, indicate your decision by adding "[Contributor] elects to include -# this software in this distribution under the [CDDL or GPL Version 2] license." If -# you do not indicate a single choice of license, a recipient has the option to -# distribute your version of this file under either the CDDL, the GPL Version 2 or -# to extend the choice of license to its licensees as provided above. However, if you -# add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the -# option applies only if the new code is made subject to such option by the copyright -# holder. -# - -# path to the directory where the base build scripts library and properties -# reside -common.dir=../../../../../.common - -# path to the local working directory; this directory which will be the target -# for checking out the sources and will be used for the build process -# * this path can be either absolute or relative in any unix environment, -# however, only relative paths are supported on windows, as the cygwin scp -# command does not properly handle colon in local paths -work.dir=./build - -# path to the local distributive directory; this directory will contain the -# distributive file, when (if) the build script finishes successfully -dist.dir=./dist - -# path to the products's sources within the cvs module; it should be a relative -# path from the module's root, e.g. for 'nbi/engine', where 'nbi is the module -# name, the path should be 'engine' -cvs.path=components/products/blender - -# core product properties: -# * ${product.uid} - product "family" (e.g. nb-ide) -# * ${product.version} - actual products' version; together with the uid it -# forms the unique identifier for the product) -# * ${product.platforms} - the list of platforms that are supported by this -# product (note that this property is not related to native libraries) -product.uid=blender -#normen - do not change this to the actual app version, it has to be the jME SDK version -product.version={product-version} -product.platforms=windows-x64 - -# miscellaneous product properties: -# * ${product.status} - default status that the product will have in the -# registry. it is meant to be always "not-installed", unless you want -# something really exotic -# * ${product.offset} - order of the product's node among its parent's -# children, the bigger the offset value, the further the product's node will -# be -# * ${product.expand} - whether to automatically expand the product's node in -# the components tree or not; 'true'/'false' -# * ${product.visible} - whether the product's node is visible or not (note -# that this value will be modified at nbi runtime, 'true' may become 'false' -# if the product is filtered out); 'true'/'false' -# * ${product.features} - list of features that this product belongs to; the -# list should be space-separated -product.status=not-installed -product.offset=20000 -product.expand=false -product.visible=true -product.features= - -# list of configuration logic jar files; normally the first one would be the -# distributive file of the product's netbeans project -# * ${product.logic.length} - total number of the files -# * indices should start with 1 -product.logic.length=1 -product.logic.1.path=${nbproject.dist.dir}/${nbproject.dist.file.name} - -# list of product installation data files -# * ${product.data.length} - total number of the files -# * ${product.data.N.uri} - uri at which the installation data file is located -# * ${product.data.N.zip} - whether the data file is a zip archive which needs to -# be extracted or it is a file that should be used directly; 'true'/'false' -# * indices should start with 1 -product.data.length=1 -product.data.1.zip=true -product.data.1.uri=https://download.blender.org/release/Blender2.79/blender-2.79-windows64.zip -product.data.sub.dir=blender-2.79-windows64 - -# modificator for the required disk space parameter; the core value will be the -# sum of unzipped unstallation data files -# * the measurement unit is one byte -product.disk.space.modificator=0 - -# product's requirements (i.e. other products that should be installed -# in order for this product to succesfully install and function) -# * ${product.requirements.length} - total number of the requirements -# * indices should start with 1 -product.requirements.length=0 -#product.requirements.1.uid= -#product.requirements.1.version-lower= -#product.requirements.1.version-upper= - -# product's conflicts (i.e. other products that prevent this product from -# functioning correctly, and thus cannot be installed together with it) -# * ${product.conflicts.length} - total number of the conflicts -# * indices should start with 1 -product.conflicts.length=0 -#product.conflicts.1.uid= -#product.conflicts.1.version-lower= -#product.conflicts.1.version-upper= - -# other products that should be installed prior to this product; these -# dependencies do not imply that the dependent product will be installed at -# all, but if both the current and the dependent product are selected for -# installation, the latter will be installed first -# * ${product.install-afters.length} - total number of the install-afters -# * indices should start with 1 -product.install-afters.length=0 -#product.install-afters.1.uid= - -# additional product's properties; these will appear in the product's -# descriptor and in the registry in the form of -# value tags. -# * ${product.properties.length} - total number of the properties -# * indices should start with 1 -# * properties are not i18n compliant -product.properties.length=3 -product.properties.1.name=installation.location -product.properties.1.value=$N{install}/{product-install-directory-name} -product.properties.2.name=installation.location.windows -product.properties.2.value=$N{install}/{product-install-directory-name-windows} -product.properties.3.name=installation.location.macosx -product.properties.3.value=$N{install}/{product-install-directory-name-macosx}.app - -# sources parameters; a search-and-replace will be run over the sources after -# check-out, replacing [token] => [value]; regular expressions are not allowed -# * ${sources.params.length} - total number of the parameters -# * indices should start with 1 -# * parameters are not i18n compliant -sources.params.length=0 diff --git a/nbi/stub/ext/infra/build/products/blender-windows-x64/build.xml b/nbi/stub/ext/infra/build/products/blender-windows-x64/build.xml deleted file mode 100644 index 51179e25e..000000000 --- a/nbi/stub/ext/infra/build/products/blender-windows-x64/build.xml +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - In order to 'clean', 'checkout' and 'build' the group use the - 'build-all' target. To 'clean', 'checkout', 'build' and - 'release' - use 'release-all'. - - For more details, please see the source of this build script. - - - diff --git a/nbi/stub/ext/infra/build/products/blender-windows-x86/build.properties b/nbi/stub/ext/infra/build/products/blender-windows-x86/build.properties deleted file mode 100644 index 9bda31129..000000000 --- a/nbi/stub/ext/infra/build/products/blender-windows-x86/build.properties +++ /dev/null @@ -1,161 +0,0 @@ -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# -# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved. -# -# Oracle and Java are registered trademarks of Oracle and/or its affiliates. -# Other names may be trademarks of their respective owners. -# -# The contents of this file are subject to the terms of either the GNU General Public -# License Version 2 only ("GPL") or the Common Development and Distribution -# License("CDDL") (collectively, the "License"). You may not use this file except in -# compliance with the License. You can obtain a copy of the License at -# http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the -# License for the specific language governing permissions and limitations under the -# License. When distributing the software, include this License Header Notice in -# each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle -# designates this particular file as subject to the "Classpath" exception as provided -# by Oracle in the GPL Version 2 section of the License file that accompanied this code. -# If applicable, add the following below the License Header, with the fields enclosed -# by brackets [] replaced by your own identifying information: -# "Portions Copyrighted [year] [name of copyright owner]" -# -# Contributor(s): -# -# The Original Software is NetBeans. The Initial Developer of the Original Software -# is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All -# Rights Reserved. -# -# If you wish your version of this file to be governed by only the CDDL or only the -# GPL Version 2, indicate your decision by adding "[Contributor] elects to include -# this software in this distribution under the [CDDL or GPL Version 2] license." If -# you do not indicate a single choice of license, a recipient has the option to -# distribute your version of this file under either the CDDL, the GPL Version 2 or -# to extend the choice of license to its licensees as provided above. However, if you -# add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the -# option applies only if the new code is made subject to such option by the copyright -# holder. -# - -# path to the directory where the base build scripts library and properties -# reside -common.dir=../../../../../.common - -# path to the local working directory; this directory which will be the target -# for checking out the sources and will be used for the build process -# * this path can be either absolute or relative in any unix environment, -# however, only relative paths are supported on windows, as the cygwin scp -# command does not properly handle colon in local paths -work.dir=./build - -# path to the local distributive directory; this directory will contain the -# distributive file, when (if) the build script finishes successfully -dist.dir=./dist - -# path to the products's sources within the cvs module; it should be a relative -# path from the module's root, e.g. for 'nbi/engine', where 'nbi is the module -# name, the path should be 'engine' -cvs.path=components/products/blender - -# core product properties: -# * ${product.uid} - product "family" (e.g. nb-ide) -# * ${product.version} - actual products' version; together with the uid it -# forms the unique identifier for the product) -# * ${product.platforms} - the list of platforms that are supported by this -# product (note that this property is not related to native libraries) -product.uid=blender -#normen - do not change this to the actual app version, it has to be the jME SDK version -product.version={product-version} -product.platforms=windows-x86 - -# miscellaneous product properties: -# * ${product.status} - default status that the product will have in the -# registry. it is meant to be always "not-installed", unless you want -# something really exotic -# * ${product.offset} - order of the product's node among its parent's -# children, the bigger the offset value, the further the product's node will -# be -# * ${product.expand} - whether to automatically expand the product's node in -# the components tree or not; 'true'/'false' -# * ${product.visible} - whether the product's node is visible or not (note -# that this value will be modified at nbi runtime, 'true' may become 'false' -# if the product is filtered out); 'true'/'false' -# * ${product.features} - list of features that this product belongs to; the -# list should be space-separated -product.status=not-installed -product.offset=20000 -product.expand=false -product.visible=true -product.features= - -# list of configuration logic jar files; normally the first one would be the -# distributive file of the product's netbeans project -# * ${product.logic.length} - total number of the files -# * indices should start with 1 -product.logic.length=1 -product.logic.1.path=${nbproject.dist.dir}/${nbproject.dist.file.name} - -# list of product installation data files -# * ${product.data.length} - total number of the files -# * ${product.data.N.uri} - uri at which the installation data file is located -# * ${product.data.N.zip} - whether the data file is a zip archive which needs to -# be extracted or it is a file that should be used directly; 'true'/'false' -# * indices should start with 1 -product.data.length=1 -product.data.1.zip=true -#normen -product.data.1.uri=https://download.blender.org/release/Blender2.79/blender-2.79-windows32.zip -product.data.sub.dir=blender-2.79-windows32 - -# modificator for the required disk space parameter; the core value will be the -# sum of unzipped unstallation data files -# * the measurement unit is one byte -product.disk.space.modificator=0 - -# product's requirements (i.e. other products that should be installed -# in order for this product to succesfully install and function) -# * ${product.requirements.length} - total number of the requirements -# * indices should start with 1 -product.requirements.length=0 -#product.requirements.1.uid= -#product.requirements.1.version-lower= -#product.requirements.1.version-upper= - -# product's conflicts (i.e. other products that prevent this product from -# functioning correctly, and thus cannot be installed together with it) -# * ${product.conflicts.length} - total number of the conflicts -# * indices should start with 1 -product.conflicts.length=0 -#product.conflicts.1.uid= -#product.conflicts.1.version-lower= -#product.conflicts.1.version-upper= - -# other products that should be installed prior to this product; these -# dependencies do not imply that the dependent product will be installed at -# all, but if both the current and the dependent product are selected for -# installation, the latter will be installed first -# * ${product.install-afters.length} - total number of the install-afters -# * indices should start with 1 -product.install-afters.length=0 -#product.install-afters.1.uid= - -# additional product's properties; these will appear in the product's -# descriptor and in the registry in the form of -# value tags. -# * ${product.properties.length} - total number of the properties -# * indices should start with 1 -# * properties are not i18n compliant -product.properties.length=3 -product.properties.1.name=installation.location -product.properties.1.value=$N{install}/{product-install-directory-name} -product.properties.2.name=installation.location.windows -product.properties.2.value=$N{install}/{product-install-directory-name-windows} -product.properties.3.name=installation.location.macosx -product.properties.3.value=$N{install}/{product-install-directory-name-macosx}.app - -# sources parameters; a search-and-replace will be run over the sources after -# check-out, replacing [token] => [value]; regular expressions are not allowed -# * ${sources.params.length} - total number of the parameters -# * indices should start with 1 -# * parameters are not i18n compliant -sources.params.length=0 diff --git a/nbi/stub/ext/infra/build/products/blender-windows-x86/build.xml b/nbi/stub/ext/infra/build/products/blender-windows-x86/build.xml deleted file mode 100644 index 51179e25e..000000000 --- a/nbi/stub/ext/infra/build/products/blender-windows-x86/build.xml +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - In order to 'clean', 'checkout' and 'build' the group use the - 'build-all' target. To 'clean', 'checkout', 'build' and - 'release' - use 'release-all'. - - For more details, please see the source of this build script. - - - From 3d46ac8050e8908410977fa52559e9a68a8db777 Mon Sep 17 00:00:00 2001 From: Toni Helenius Date: Thu, 7 Dec 2023 20:11:28 +0200 Subject: [PATCH 014/130] Get new Java 17 version --- jdks/download-jdks.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jdks/download-jdks.sh b/jdks/download-jdks.sh index 2899fa3e5..47b72a58c 100755 --- a/jdks/download-jdks.sh +++ b/jdks/download-jdks.sh @@ -11,8 +11,8 @@ set -e # Quit on Error jdk_major_version="17" -jdk_version="0.8.1" -jdk_build_version="1" +jdk_version="0.9" +jdk_build_version="9" platforms=( "x64_linux" "x86-32_windows" "x64_windows" "x64_mac" ) # DEPRECATED (not required anymore) From 7479ab9a2260ec5864d1f9343740437789f74458 Mon Sep 17 00:00:00 2001 From: Toni Helenius Date: Thu, 7 Dec 2023 20:26:25 +0200 Subject: [PATCH 015/130] Netbeans 20 --- gradle.properties | 2 +- nbi/antlib/nbi-ant-tasks.jar | Bin 105616 -> 105616 bytes nbi/antlib/nbi-engine.jar | Bin 954915 -> 954915 bytes nbi/antlib/nbi-registries-management.jar | Bin 34845 -> 34845 bytes 4 files changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 25642b018..30cf5e4d7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,4 +8,4 @@ jmeVersionTag = stable #jmeVersionTagID = 0 # Path for downloading NetBeans Base -netbeansUrl = https://dlcdn.apache.org/netbeans/netbeans/19/netbeans-19-bin.zip +netbeansUrl = https://dlcdn.apache.org/netbeans/netbeans/20/netbeans-20-bin.zip diff --git a/nbi/antlib/nbi-ant-tasks.jar b/nbi/antlib/nbi-ant-tasks.jar index d24c2b5212c9e6623a5942a121062ae66b3a0a53..9fde0d62faf093e4d3d7b6f1f5eeccc5eea1e9ca 100644 GIT binary patch delta 768 zcmYk3T}V@59LCRcwl+~`tPy=_=1r{|E1|H!3^S5OVckrUlrsC03X@W4v=Lpl?QCcB zbyHd+sGEvN;wVWUPy|9>SDHw4)kPOUA9N8x?S0-?=)mFmo#+4czW-xQd8{dquRY{) zmm5ZzVO$y-O!g95kpZtE1~NE7XCb4jTC(V(b1SPGVgyI&^p5E1Zx>;^(0z&mXPM(4#T7z&6vKq7 k9L^JBIrI~L<}gS&m)D_BdEI&682T8R9Mk7nJB|zg08`i+i~s-t delta 768 zcmYk3T}V@59LCRcwl+~`tPxph=1r{|E1|H!3^N*y!n&C#6=n7%73M`rqmAgYZD%{1 zuba{uLEThD5=Tk;AR`d^y3$0Vt1h|-`k;#lYVY&DLI)1d?>zsn_x&Gh(qm0}e4SyJ zyV5W!3}ZS}oAw1=FUr!AbIGrF4V3ReDRw=Y{bh|9|2_3~qq)|Oqmmg3?4Z6uJ2hbL zqxPC1spI#}l}iXS-mgBwt+ujwrh6<;Z^viDnD~z`zktj z`kNaG3)iD6rzcn9S;qesi>kbIdrVdBygTG(^3;R4n$cP`iAL!WHuM6TisPcJ$WXpw(H#1d$eG4VWsjf5XEB%P+DTC*5Tg8LOu zlGxAC(i9F7j;C;lFr7jdp~1p2!Ziy=2%jySBy^_HO}LjvFCmaY4`Cpqo!LcbwRL&X z#%bnMWx;ER!7NVDS;*?D_8bn=xs}rmF^r>h`iAxNw~Me%=sqQZv&`|2;0hr#f+0dp k9_I=1JO&6q^SDSjSJ0tP1>Je?DEb+i7}e)lGlmQQ0JnJtJOBUy diff --git a/nbi/antlib/nbi-engine.jar b/nbi/antlib/nbi-engine.jar index ae246b5a7482ac57037d983764463c67c6af3619..343a1a6d3384e2c141f44d655d148891edcb6b4c 100644 GIT binary patch delta 12303 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 C7(x~R delta 12303 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�G}hQ6Oc2Gu#NzPeLw#C2vrNDTOK88NX43?lnN2aw~)N>W2`BFvByLf z^>m&)MwJLXE()MiMjt22+2aiUxywtRptk9Df*NVX2?qaj=J!sJv*9PH2QrJn>66rl zKBp+oey1q%{ii5}0jH^SBTfsWdNEI&rtAlvp@tY%3=W^6rV2VMqR@p?&QdB)o~5So zJx9)`o+CX6&xtDOafSRYhQAJ`{myy)*7q3g-N!uo?A^Hl+K zO6paTxptNH21?vDmI5+cuaUyC*V!mw{dk>C1yJz@8xLUf4K@-$g`1=>|0b=n-6DlU zZ&84kZi#l%jaIu&tfjY!WxhjTz#U?pE2c!>B@dV1rAU=~l&F+@Wb5`lHUKm?zt4sN zIB=gkh8+&?fa^B+=rh7^PA#USAkC9Lp~D7)^v`(vuf(8r=R zbjpdx6ju2sv|Xk@q2j!KLX~X$lziX)l%>O}D$gj01<#1$@>~R=7kTV++T=H%)AIT+ zC@X7TP?|knQhZr2sm1QUq!cE+qE+i((JGJEju&&!``bG>x=&Uys&et~- zPM5bdJ$AkoTSt%7>m3cmq3?)t@*SnF)_Y1z{(F*nQw*AYAkC{jkc{~wC9}szYM<-H zl$xJN^Za7)<`W4g{z*G{-Ji6lrN0PtD+W7?f%|6>sUFvu&muoMxc!;-ee~ay-UY?r zufM5q?f;={Z2m`NOkd^qMYN9&W_%G9)WMrCl)83b3GDic%jfy2FeT@WQepADyJ}xp z(#%Qi2S9UD(JS%4^;DqDHL8OEIGG5fn$#gcxnokXA6l4EAJ@$4KwyPfNcejTY5r;< z;Xx7!Uyz6uBNJtfOx9hkWMaIP+<0##nJzZ+`G`%}g3YQ3%{o}F&?}r> z_Ta-x zmpL0nGPSA@SXqVQQmYaeSyk*EUHExbbs~WDYE+$T)hPBx)zu7O?XRwm0Z>0$oetns zG--~mK}pzDLu^=GVVRn=s-UKt36!8(v@3IJ(W+0iC_nvclN+~c)ACkz2o%+!{a&}O z*iE|TO~s&eJzAAtPfY_Biy@iJ7+U_en9{pG*}7Ptnj}7!0^Af!Cd$Q8O_#@!jB7j< zE-Rj#e;!YIx-=lx$p&I~>yE`VBt2R~5-!t72o+?_3G0E(v#ejtQR#UN|k2h*ve*tr5kl`PR;gRbK1)ni$UcUWMW|pT4n!M z#rtEwZ&iGg+5fGI?=8NGBs@Nm+<2ZyoiHd#{SIP(oJ0-Ky`>0Hw|=ap=u90nZ>5d~ zaJ&@-SiLp%#^%;k!O%8jVon<}@wp8R#(`}~=1yBmZ*n_z92mXQj@(F2R>uS7Mlx-O zZtcm$wf5v;atG>-V;#h7(d!l8k$m3Oky^BFCu*C`ozz7jlh~QSi()Xdi@E?SF1gww6ATy09@-TG*ux1UT`l{*FoSEtBa$toFCvbeY`U6l>Mv!%Nq&gNTIU^}W zVHxTI_=vbR;)o+19bb|-^W_ZUS&Uq-1MmgRq^&IM3$G_}s^(P{xu62_^DW)h7RUJNXg#jex$;n2ynwXRPl%`K)7*jo%LPbJC< z0pR;=5A9Nf=ltoSry{4Rt$_p|+kmuOkRT0zO`~;#rW3e1of@Y14B?t?|H2H~{`F_l z_2Y+`bdC9ErWihY=XaPzhu7{|6l+9|nh&hwIn-V4XH&|b&87w(Gl%-*`5el0hg@-2 L(G~8@Rr~!vH9;vWoJFyc*1BOVeHc{P|111XEC%pl$cc`)@!14K=hWi$fQL5vn) zx|h)gOrK$N2h(CqJ|KE?Dw75?m@$F1j2+D2r z52g!SAZD*=aRT!{ws?SPn^v&dle=5P!ThJKF<{!IEf-90Y0CrCs_i9UdQN*I0O|2e ANdN!< From 2513273da23202ef0509a8cda5da85d4ae519b8d Mon Sep 17 00:00:00 2001 From: Toni Helenius Date: Thu, 7 Dec 2023 20:49:24 +0200 Subject: [PATCH 016/130] Added some module exceptions --- nbproject/project.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbproject/project.properties b/nbproject/project.properties index 582ca1638..482bd5624 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -12,7 +12,7 @@ app.version=3.6.0-make_texture_panel_resizable-SNAPSHOT plugins.version=3.6.0 nbm.revision=2401 #command line args -run.args.extra=-J-Dsun.java2d.noddraw\=true -J--add-opens\=java.base/java.net\=ALL-UNNAMED -J--add-exports\=java.desktop/sun.awt\=ALL-UNNAMED -J--add-opens\=java.desktop/javax.swing.text\=ALL-UNNAMED -J--add-opens\=java.desktop/javax.swing\=ALL-UNNAMED -J--add-opens\=java.prefs/java.util.prefs\=ALL-UNNAMED -J--add-opens\=java.base/java.security\=ALL-UNNAMED -J--add-exports\=java.base/sun.reflect.annotation\=ALL-UNNAMED -J--add-opens\=java.desktop/javax.swing.plaf.basic\=ALL-UNNAMED +run.args.extra=-J-Dsun.java2d.noddraw\=true -J--add-opens\=java.base/java.net\=ALL-UNNAMED -J--add-exports\=java.desktop/sun.awt\=ALL-UNNAMED -J--add-opens\=java.desktop/javax.swing.text\=ALL-UNNAMED -J--add-opens\=java.desktop/javax.swing\=ALL-UNNAMED -J--add-opens\=java.prefs/java.util.prefs\=ALL-UNNAMED -J--add-opens\=java.base/java.security\=ALL-UNNAMED -J--add-exports\=java.base/sun.reflect.annotation\=ALL-UNNAMED -J--add-opens\=java.desktop/javax.swing.plaf.basic\=ALL-UNNAMED -J--add-opens\=java.desktop/java.awt\=ALL-UNNAMED -J--add-opens\=java.desktop/java.awt.event\=ALL-UNNAMED -J--add-opens\=java.desktop/sun.awt.X11\=ALL-UNNAMED -J--add-opens\=java.desktop/javax.swing.plaf.synth\=ALL-UNNAMED -J--add-opens\=java.desktop/com.sun.java.swing.plaf.gtk\=ALL-UNNAMED -J--add-opens\=java.desktop/sun.awt.shell\=ALL-UNNAMED -J--add-opens\=java.desktop/sun.awt.im\=ALL-UNNAMED -J--add-exports\=java.desktop/java.awt.peer\=ALL-UNNAMED -J--add-exports\=java.desktop/com.sun.beans.editors\=ALL-UNNAMED -J--add-exports\=java.desktop/sun.swing\=ALL-UNNAMED -J--add-exports\=java.desktop/sun.awt.im\=ALL-UNNAMED -J--add-exports\=java.desktop/com.sun.java.swing.plaf.motif\=ALL-UNNAMED -J--add-exports\=java.desktop/com.apple.eio\=ALL-UNNAMED auxiliary.org-netbeans-modules-apisupport-installer.license-file=license-jme.txt auxiliary.org-netbeans-modules-apisupport-installer.os-linux=true auxiliary.org-netbeans-modules-apisupport-installer.os-macosx=true From 436f5b4653f4a8a2eb758009b3b72cb3f034ab53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rickard=20Ed=C3=A9n?= Date: Fri, 8 Dec 2023 06:57:33 +0100 Subject: [PATCH 017/130] update minie to 7.8.1 (#549) * update minie to 7.8.1 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 3946db4d7..b823cea62 100644 --- a/build.gradle +++ b/build.gradle @@ -41,7 +41,7 @@ dependencies { corelibs dep("org.jmonkeyengine:jme3-awt-dialogs:$jmeVersion-$jmeVersionTag", true, true) corelibs dep("org.jmonkeyengine:jme3-lwjgl:$jmeVersion-$jmeVersionTag", true, true) corelibs dep("org.jmonkeyengine:jme3-effects:$jmeVersion-$jmeVersionTag", true, true) - corelibs dep("com.github.stephengold:Minie:7.7.0", false, false) // replacement for bullet-native + corelibs dep("com.github.stephengold:Minie:7.8.1", false, false) // replacement for bullet-native corelibs dep("com.github.stephengold:Heart:8.7.0", true, true) // requirement for Minie corelibs dep(fileTree("lib"), false, false) corelibs dep("org.jmonkeyengine:jme3-jogg:$jmeVersion-$jmeVersionTag", true, true) From 202425d42e2f498c84f6a9eb457c0ad203c5ff1d Mon Sep 17 00:00:00 2001 From: Toni Helenius Date: Sat, 9 Dec 2023 13:44:45 +0200 Subject: [PATCH 018/130] Cleanup some old stuff --- jdks/download-jdks.sh | 51 ------------------------------------------- 1 file changed, 51 deletions(-) diff --git a/jdks/download-jdks.sh b/jdks/download-jdks.sh index 47b72a58c..ac342314d 100755 --- a/jdks/download-jdks.sh +++ b/jdks/download-jdks.sh @@ -13,57 +13,6 @@ set -e # Quit on Error jdk_major_version="17" jdk_version="0.9" jdk_build_version="9" -platforms=( "x64_linux" "x86-32_windows" "x64_windows" "x64_mac" ) - -# DEPRECATED (not required anymore) -function install_xar { - # This is needed to open Mac OS .pkg files on Linux... - echo ">> Compiling xar, just for you..." - wget -q https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/xar/xar-1.5.2.tar.gz - tar xf xar-1.5.2.tar.gz - cd xar-1.5.2 - ./configure -q > /dev/null - make -s > /dev/null - cd ../ - echo "<< OK!" -} - -# DEPRECATED (not required anymore) -function install_seven_zip { - # This is due to not having root privilegs for apt-get - if [ -x "$(command -v 7z)" ]; then - return 0 - fi - - echo "> Installing 7zip" - - if [ -x "7zip/bin/7z" ]; then - echo ">> Found cached 7zip, adjusting path" - cd 7zip/bin - PATH=`pwd`:$PATH - cd ../../ - return 0 - fi - - echo ">> Compiling 7zip from source" - mkdir -p 7zip/bin - mkdir -p 7zip/lib - cd 7zip - wget -q http://downloads.sourceforge.net/project/p7zip/p7zip/15.09/p7zip_15.09_src_all.tar.bz2 - tar xf p7zip* - rm *.bz2 - cd p7zip* - make all3 > /dev/null - ./install.sh ../bin ../lib /dev/null /dev/null - #mv -v bin/ ../ - cd ../ - rm -rf p7zip* - cd bin - PATH=`pwd`:$PATH - cd ../lib - PATH=`pwd`:$PATH - cd ../../ -} function download_jdk { echo ">>> Downloading the JDK for $1" From 12fd8504450a1adb63344186ca48e58312f367ff Mon Sep 17 00:00:00 2001 From: Toni Helenius Date: Sat, 9 Dec 2023 14:12:46 +0200 Subject: [PATCH 019/130] Little bit hacky download for the latest JDK 17 --- jdks/download-jdks.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/jdks/download-jdks.sh b/jdks/download-jdks.sh index ac342314d..fab3405ca 100755 --- a/jdks/download-jdks.sh +++ b/jdks/download-jdks.sh @@ -13,6 +13,8 @@ set -e # Quit on Error jdk_major_version="17" jdk_version="0.9" jdk_build_version="9" +# JDK 17.0.9 seems to have botched up release causing download URL to vary and platform versions not on the same step +jdk_build_tmp_version="9.1" function download_jdk { echo ">>> Downloading the JDK for $1" @@ -20,6 +22,10 @@ function download_jdk { if [ -f downloads/jdk-$1$2 ]; then echo "<<< Already existing, SKIPPING." + elif [[ "$1" == *windows ]]; + then + curl -# -o downloads/jdk-$1$2 -L https://github.com/adoptium/temurin$jdk_major_version-binaries/releases/download/jdk-$jdk_major_version.$jdk_version+$jdk_build_tmp_version/OpenJDK${jdk_major_version}U-jdk_$1_hotspot_$jdk_major_version.${jdk_version}_$jdk_build_version$2 + echo "<<< OK!" else curl -# -o downloads/jdk-$1$2 -L https://github.com/adoptium/temurin$jdk_major_version-binaries/releases/download/jdk-$jdk_major_version.$jdk_version+$jdk_build_version/OpenJDK${jdk_major_version}U-jdk_$1_hotspot_$jdk_major_version.${jdk_version}_$jdk_build_version$2 echo "<<< OK!" From 6ac7a8270332aaf281e1df5014a13fcecfd777c6 Mon Sep 17 00:00:00 2001 From: Toni Helenius Date: Sat, 6 Jan 2024 13:11:15 +0200 Subject: [PATCH 020/130] Disable Windows x86 by default --- .github/workflows/release.yml | 2 +- build.xml | 2 +- jdks/download-jdks.sh | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 550006e4c..5170c8b60 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -26,7 +26,7 @@ jobs: - name: Build Installers run: ant -Dstorepass="$NBM_SIGN_PASS" -Dpack200.enabled=false set-spec-version build-installers unset-spec-version env: - BUILD_X86: true + BUILD_X86: false BUILD_X64: true BUILD_OTHER: true - name: Fix Platform Independent Build diff --git a/build.xml b/build.xml index 656267f59..1afd2bea0 100644 --- a/build.xml +++ b/build.xml @@ -220,7 +220,7 @@ - + diff --git a/jdks/download-jdks.sh b/jdks/download-jdks.sh index fab3405ca..5dcb2b3a1 100755 --- a/jdks/download-jdks.sh +++ b/jdks/download-jdks.sh @@ -263,14 +263,14 @@ else then build_mac_jdk & build_other_jdk linux x64 x64 & - build_other_jdk windows x86-32 x86 & + # Windows 32bit not by default build_other_jdk windows x86-32 x86 & build_other_jdk windows x64 x64 & else build_mac_jdk build_other_jdk linux x64 x64 - build_other_jdk windows x86-32 x86 + ## Windows 32bit not by default build_other_jdk windows x86-32 x86 build_other_jdk windows x64 x64 - #Linux 32bit not supported... build_other_jdk linux x86-32 + # Linux 32bit not supported... build_other_jdk linux x86-32 fi fi From cd27f228ff6212f8fec2c6dcfb3651d1b153fea2 Mon Sep 17 00:00:00 2001 From: Toni Helenius Date: Sun, 25 Feb 2024 13:04:26 +0200 Subject: [PATCH 021/130] Update to Netbeans 21 --- gradle.properties | 2 +- harness-override/app.exe | Bin 290816 -> 357888 bytes harness-override/app64.exe | Bin 299008 -> 306688 bytes harness-override/override.properties | 8 ++++---- nbi/antlib/nbi-ant-tasks.jar | Bin 105616 -> 105616 bytes nbi/antlib/nbi-engine.jar | Bin 954915 -> 954915 bytes nbi/antlib/nbi-registries-management.jar | Bin 34845 -> 34845 bytes 7 files changed, 5 insertions(+), 5 deletions(-) diff --git a/gradle.properties b/gradle.properties index 30cf5e4d7..663c531b1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,4 +8,4 @@ jmeVersionTag = stable #jmeVersionTagID = 0 # Path for downloading NetBeans Base -netbeansUrl = https://dlcdn.apache.org/netbeans/netbeans/20/netbeans-20-bin.zip +netbeansUrl = https://dlcdn.apache.org/netbeans/netbeans/21/netbeans-21-bin.zip diff --git a/harness-override/app.exe b/harness-override/app.exe index 21b82fffeda0317c19e6c60f817c524467290b04..4b3c9bfa94a4c614b671136ef9a298b5eaa2cd7b 100755 GIT binary patch delta 173950 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 delta 107512 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 diff --git a/harness-override/app64.exe b/harness-override/app64.exe index 49dab050adcbdc02f802f024bad8b004bd77c50b..1f2d33120dfb2d59ae584db9883ff078e095488c 100755 GIT binary patch delta 106069 zcmb5X4SWzQE16DtMk4Ui1G}_snJkJiq7p`?+Ih zx~r?Js;jE2tGg%ujcxrW+E%XXSD5_5Jr?7?bC&+LB%7_5CDUfHyb*7)w6<6dwnwF% z0~A=Fc&|tE=TF94Y?c{MoVvMtd|Q;yh_hVSVzpQ{*({y23`F$fOt4Ijf1+DjLczl} zOD3CXYoCx2XGx?YUw`jC%e(~B8yyjH>Ja_K{x<`t``Fn#Hz@xKC# zrMmwj0l1(X^-=XK5523rT;_tzCy_xH{dSkcN-hUNtF!wujT zEnYMWRb2iU2TK*k;intH-81h208S@Bn&vKhZNq)A$W>GDn>Wa}H5GHM2 znbo4bKgkN5DV2aw+bVYL8Sy^De4nK8KC_qEEP-6Bw>+m>4t$ciL+V;!`G9!SdI3vh z3%yJ4mpNvyzL;e7me7x_A{5vX^Z}-|v}RdDLxWmbkC&W1p~KSp8htiOq^^FHSmbc> zA#|g?br#ho{$h(Iu*{35BLG;e`T>BpC826+oQ1O4m2%*RTyU2FT0P-}T~}?ulv2xo zl6T`rwI~VcFYxz-_4K0@XE@Pd{X;fOv6`r@yp1hP7(CZr+ucvKP!@GpcGJOkp?l$$QIea(jsQ_%in(l51H zpx!ElegU%|bj7>&HxOVHULgsnDPh3M=mkI8LJu2}nCbh?9%s=i+c3x;uX4C#qpWNPp|#0zmWG3}5_%o1 z%Yl#Sr=h|LTNr_sM?v$E1P92!N}ndi9-&r zcjBj1siQvgP`fR*7G*nCPJp(F*<1Czsd<9UQV=}vmC&9VQmbF$ZIZ~>Rb2f(cS2{s`!8CIO`m9Nxf||*0H(L0G}_zW|_95a-yu92H!BDgo^7* zet%ub%p?=pTPgr5xsdU>!AtGxy3Z;79D)UEJA{cCd+(J+N4`nglC z(Vj<9B?kiuFCxmo^F|`)35$)rYVYIgZ=m}_BCo4P+d2bXZX>#CbR2I$b~8{`6PgTx zvW}h|c#ho8RSsmKpg9!?9Tc6OZ=ez3wEq4Vu&?YG3VNyu_5`X-*g7iM+X!1gu*BEu zPe@p#D(vw#gX50)y6%=xzY8>1|Vdy9Cr^yt|d^ss^hB%FqSE zp@bOMAO-yZtPM>793B7@q9&k(N?adMUsl+=qJj$5f6cL0$hG~U&p zz15*p^4q+aqubJ-ecs`2+pAXgQ)<_oHT{9&Tg0`3;~ZICZ-*2p^r4zPr~#=I(Fyz> z_DJeo)}PsrsZQI)eoS&WQZMuaV9K?C&%QI#(adW73oGe3)b?IqwyLAc)@vB6={T(W zKk}fku$U@fHPCKA%tuo|MJmRqZ39bB>uGD=mldb=wN>P?MQQno8+0|{>U#4{Xi2j$cSHMmPXs3z zn#RU;PPLWPvALaBSU+X|?(DHWIfUJu-ZlHaAw*{K;WJ=w{zF#7H%~#)HYys1A_NfU zu>_-0{B{TnruQzcHD0TJ5mQ(j&Y|`paQQzziZ_cF6JTf~WbFC?3P9oTGrY}q9sq#F zrR;3_;p7i{qmR^^tyl$kZ(<9(rn1|*Hfz3-N`D;8{?lbv^J01q3}#ci4z#8AW|dv@ zn&15$if;Q4JJ>bH-j|;Lyp((c8Qy!Wjk8C0=Lh-~8qtI;7f4*@+e`e7!Ye21;~ddE zh#3qj#SV2zYuy3Ukd`rs2$4eL*)z`Uw0AHU#KbHY5qfd;(J!*Eof(~8LACb!Kx$Dz zo`2eJ)R*=RW_8x7TMzqOs-Mg2y~9K|?VWC=2BIi!ig`j5^91&Ax0%iV1F;!&H9wL8 zEU)CSr0zr02H`n|pocD*1Um;S@0qQjpBKpd-cr#GWLyfn9n>&M#jMgoTt}b0*`+GPNZ$>d# z%3weCNKM*6FP!$aOv>mn_F=qhUtEBQf!z}61R_)eje%tmRTBLagJ5c=Ab_GEn!Lj) zd%6K%I5|XU{xN|0GrD$|CA!d__<^j3`!a3)0QO!+X5xtMoRq%objD4k=jnx$()_@riI`C#=hz~ zF?+;+2%}K+*Lbf9FYzKJ^f_Kt{;yCJwAbEXvwCHwrqbhz-?%e4N{u-62iQx!@~uy@ zQ@wf(NO5uo<2fp@@G^;qLs>*wQ|amb`A1Y>$@gHcB={OZcz=&mToekzGzm zggz1KN25TQM#)3b64@x36D^rzl-z!bZR(TCPGvQ-y+4(+1Ni0iGM}bV1g3%I_rA5&alcgD75lg;s%FZdI zBaMsE1QX)&X_I6V%lFZeOhYh7qa}$($*yRLN%FhV5|gc$q9s#bHwLdVTC~n6S!I?4 zs<{O3Z+zzxzO(T?lSX!I<9i~#k30xd`vZ^9rh?^_r*(;}tcUN0dn`i4h8EB;gx6Q%$5<5f{GL~oi3+NRQypuxN{p!l$IsnI zTq2waS7Mgd_H`#@A>I_Vk#8Ei!0QQm%?gL8FA~>&ysM#S(GY>&M*JXNZp8HrE9l?P zHuETZp#RX83(^JA{_okQ{;6|Qb&hzGAn~9evA}@2s5Mri7j+I^8_{m<#!2K&QG4=h z4ooPBq|e0bIpcNP*DPm1C*LLsIF~qW%RNlX$<4Xlz;%9POz)-#a$Se(z(_W3 zV7u&Ls1Ui6-sa#Y$cDaLz57}MPUN$v1{T`nk?iQe&a>Y@y=WUF=w%%ROUbchK+CxF zCtrv0%m}h8Bs3{p#}dIDui*xoT_e~XgK}>AuB%NaK4JsI> ze@Du!gr-8P0w2@AmI{jb6i1VwWs{DW?;$jwVrZXhE*mh|;rs0na5t99bLq8YBM?k9 z5s)r9KN02h96t-sO;qT~{KnebPvBV%&EVZoMBEd2w7b!Lw3KX6I?Zj+7dF?8+MPoQ zi4Y2U*+xt&yJAZAql9PLObM*Gi$F-1HE@j#mrGkvb5PO-AL=m<9)Z zMq!Vb!gEHML}klFW7B6``WMQ|M435~&p_oOm^x`v+eicSPXaQsk|Y@_>kgTiq;o%k zvMwX6zG$H-)aR+Ok-jtqvIb=aKbQ6c-|A1!VR(7s&IZ1<34 z--vIaLYza=s+}p&s=70xsA?*QuF(c{CPG8p6(E6*QcFck5smL7#Hy$Yms#<6kQy0b z-y-7BC<;%;zCyItU0Y4-sVZN8qmRim;h9AtDIe0Qw_^!rwrJXzBtHl6azL{+ZPT6F zpm}3Q1lu=;41==!rVBt{IQg6Q;Q6Q1+>(g5T_h@`NKEdBb|TOla?g1c+*2zxVOAY? z8zjn&g!UPZHeo_z@ds4w7sapE*?i<>5G>GM47J)z)pv>N$3?3eZL3*(l4^@Z?M$BW3`jy7RbRRPXesb2n; zy`GnowU_sS1P5PMr=yWwOwa?Hg8zxxh7CcCj&378lwP+nCmGsYC^Qa zwk06WVO@Eyp(2Tvmkm zrVu*HusO9|loW~W_*`tq8UHJ3izXPP87b_6pCbpRPlTBYFDN?voPcWx$#PN6z# z?C!v7M|4SBh*F_C8)79jK{C~Z8Y zlc6eZqI%g)yr3mg9w7`e?h=8WIuS4+lYhu1C>931Zne&sl0n3 zWRxyB$X8-x#l&YycLqw$smc_w2W7^n*X$saH1%$j+6n9f8f#zK!ComC(rh@WfyLDo zjBFlHkF_UQPuJwun_A*IzO6`T-pSI7hIYCeJD!4Wn1Dq)a@@=xzG=f8b#JG(ZD_b+ zO!}oSjD??`r%PN&E6^ z=iRn%a^xFH$&KW~1LLS?65T}-(|^C@banfQ)1%#&%=Wr_*^V7%14ei9ee@|xVc|pp zh@OvEJ;Z%lLd}n&fi;=`f|0*bNfSoCXeG46&YPq^MgZXuWY4i}fWE_T@Yist4t>DI z!J3DGEb8sHZ5*Iv6FC=N%RSXGQcwX;Q2*M~1nF|K4IwB)6@HKZle1_yC@yQooVVoK z?mWouxTRCyCq#QrB47)}Yqmk-ApQyxP}O@6`_nBweHJQG`PPFRUbhZ}8B9Z{+PA3O zg0_~(bYWLSI5qxsccUSi0+@X}(Z`wU^AUlOA(}lu*VsUGzYYa}ZbsOye8|Sg0|q{V z-A?WIupubcvy>D;Rb5N|i}6@PB~8ZT-IiRj{yw&eVig)KZJ1S|Slf1!V%hc`W(!I( zZF6^X%__U?TFn~!XO2Bqv)(MFu1T|oGy`GTpL4>dea{KfUTr~|#s5D<|w7=lh)VBl!&4?Bp9r*i2=a^oHxDCT;gF4z?;e)BBA0~iCeLD{8kbO5$ zxFrcf;nWWa{#t!Y+0U_<1KB~4XpZ6ggp}Gq^ePsv^qYEwGd_X3$Lphs_*K^vopPA< zxurde8`IJD{65xYOsBs4cT#&nF<@7TS5pZd;I9JvtesH54s7`t$(Fy9Jvye-oUS0{ zhRW6q%}lRv68aMNSX|leMY!Ko*}lNq)o36(`-B#=LN)WYFv&AE^-l*Veyq{DBJJQ#rvXzw`R<> z`W1W`&D2mXNiAWwVMV9hL>6h-A8pXEyAP6}o50Z2%1Mj=04(J+H9|Z3zE&=8l>ud< zV0GbU_GRgW)FbSC``5Eth`z67^()xD>=UfM z{4V6G3U7m>W{@%hzlqmpjp@*btm6Mr&S&C?BrF23`-KC5IPziG-TkN_yW__cc&)>1 zGmF}U+sE-nbOy{P8Ux)spMoV3UlTrTCgyjqXlr8U3sBl-LmSZ~ucUqvRo4s1=Jd!{ zYE(^7Am^YE+2ID9GrVWNxwn?U*S8`OowQ@(q%Cx2Nc+c|ICjwKCP<;42cM)?&rriu zG&D=YDRoyk*ILgwcDBr!_90$lcDf$fXT~_2Sk}0a{okOSn| z5-q<{>_fDu>p8CQBXh`pF){v*fd7f=O8p=Qf{dsJTGe1-k5A}5vgBeD!G5=!4}u9b z2}f19ufu|tMsK>YAIkSa6JEN+ew~o*8+wY^Xm0}v4nkdv)qbGlvNdv;wnfY>RDSj; z;pMNa*PN_+?z)o4uPX^%SF*gZguOCxz%2{$j{c#K6P<>6^x6Sig!Ge3udi!~Iu6c{ z2n8;dEuG;Brv$ICwA<5s1*M@q-r>dSxXj|=x539xY4LI1@T(%L8SoO3*& zWy^sYE6xbJKE%4yCvB~ERqfxmZ(k&xAD-S?U99|zAhNc*rN14PYrgMMoVR^N@1k&f zzguxTif<3cmjOHQ&yP=vip^$)&_N8=lpV7h58ASox4V6tv1AvrFA0yaxvFq7))M)WSQY1RUA&8Q znLHcF^e?kc_oizF=*6W}=Tt-P%MwiV;=DOJwaJQy&OEvtS_eP^rfZo}uDvJ`N0xm#>eGWE zrPUYd5`?b@WDpo$rW7SEb*ORjtoYTkb$3G@XGEQ1mqW)ZYGF>9Q|^o^m#j{4_#$T- z1rk^@4+yOghtNKcT4X1kQ+`%>S01>8Ib87NkoC{nR6GaXCL*i`Y9UE#=L+N|RBR8d znM$>h5BOMv^Uxlg6z^&ts1H2Y*>0i0#O03K$PoZ* zoq#rfrgPwGLc+IeQ_?Xg9vs>)^MvUijQwPK&D1`^SreMT1V3!+opV>X-ZKHbe12o#Vw`N|jy^PVY3b+wZ~L4Uri z79^_U;m8WW?y?M&RX8H)VqBm@?WrR0J!FlOwt?IM-UvJc%IqM~QoEXhF#OLFYbLXi zSrSy^@C0=65Y$n#{f7ROorGqQtgfL(vh`#nQ*=aAA`NI@2b70b7OczfP_S+*=P2)_ zccip=xZu0u2wVMq4`!e2^od@aa`@&h7ibbYVCa3%z;Msffn2HA$kubD)PB$i4_pAf z#-VBA!^Ur9IC1niM!(DLvT{Ltg;W-DI7JFihVZw@VPO|*O|c>SQ{YQf0WakC7lL<0 z-ipfYDXK8!_B5AUoi&v5%vuXB<5=L^p&D>#)Um<) z4&i!Sj+{N>s*5pj*yx>_;dD`)^%<7xTYn?z9@8G9DILF8|I5d+fMj`p%wT5BuKfQ! zkUs7Ua}Gz|HU}y2iA?t)gb7#-87X_U9XJ@k~SA62DFU);Y)nk#F2x}94SQw zLPCa4l0pI(A@Eg4j+*X7{=f?ViT@I1>E)Wm)&7TCjIF3ri$GCkpt?hGR<%+j(})Za zBZ3j&Q+YV$Ns?n6jSX+lXI;#`vQlQREpViuP+tbs%c<5E;s;b1o@fHMCMPrmwgkTY z!^$h>%Hcvz9$2vkt1IS~_0i7s3ts^}E>+Uo5OX^)8wWx0?d|7U>dPlY^Z@2W=6=HE#4d8qt%!)CXF)$bh2?xVctW3tl zRa8KCsDkfNp?a%BEp%FoL|o>GD*ZkE$sTb#kwLm89ls*TSeOr>z} zb{8BxG?oI5LMik%k2)3?NIt_gab-J3Qq}B;FmPL?%7dm*P9%%9f_DRtT9iAyC|?Rs<~Yl<r+b!WgcQ~<Jw-sIEsPD*Q@=j>?Y$g_@Of{a`BVS&G4^7M-L{L8J=EB@wRZkt%~7f*OroG0(} zl8talJxKY&h1>EImM#nz?m=W(^L4yC@QKx00}v_rAn12Vo7-oE3lHYESo#G3A}39q z!7Oo;PnQ8gs{-=#xMBsTQj7q$a05^#h712fE!GgOHHiRReSs!cY3*f*0^S#QytqX9 ze5C9(rrpjlY_99vY~3Geit;Gm>SqDGYYkz5maK80w5m6~A@FH<+K$)2ngaZ5#XS7+ zHGvzOu`1=(RQMoFBIV%7P7K|;6eqiqr~N|P0M*g>OkM7&EkXv0tA^ID2ORry4;>Gn zm3dES9%RPOu1dEZyot5;r54-^zGS5tx$13dZg|qyfs59q&_hoKmeXZ+nWhC5*+xVk zvI3Vuzkp?GdG7G?{FN%3$NilclW)?Z3gQ za{KTxeWh@6HC)}S8aEUX#&H81Bd4d1Ppq}{25M`$?1AR%6r^JcIi_vlC&57r#Y`bP z)|~%_bOlXP_&7`RXHQzx9OP6r#Gzs>o}`zzOMyF4mUEae^u=BbIUUZKf0$bet)Ri= z(J7T4(}wk>`#72%5m5M9BLKBD@?FjJ9?IV=6CqsHfp*z*1UO^ zL<}st74#F!z(o9Ls}10cM&MOZ;Lkx%Ebs&axK|_axG3fQ(mh{DW9=!_`z zL&Pe$DQrpP6J>L#eYikOXjqe2q+ki#v^up#KlF+zVb#y<;Oev#x;RK!dp2VI^G~c{ zwWD|?pCN&Ybd7s4w-nrlz=Hajfo3>$Qq`@o*|eWbp}a#q0O-=MY|6u(I{ca1Kv{zo zXk?D)eeBVP2l`6GGThb}2P~k#3ZEZL0W4n^N^5^b?g0$ggznKMD+Ek2BY>gSv?5)i zmt?+J;@xwr2%bVykIK;!*3bb$MOsOtG{&J#r+4LCm5;7zqmUf#)E`aq|3SRP zjOjo?8}=4l!=I07T{wms&ekFWTOWZ;Ya7KhhZtTQYrdm#iBehYA&D2^;xyC|Y#r0; z=wLUuNRm@`>V(hw7_=063Ev9Z#~=(SkwWn(&>e)iD06rbEblB82DeB`>1^jeM(IG zA<_2V{_pLnd7|Dqrg>SkdGY_Dxex7I>L+3IF8?wcEaO3}GR+bH1jWXPE61XPUOSp3 zW>JbVYnv6~K}(L{zzPjA&vi(lFf|j3&BKm#yptL9;}YXmkoG+(29(05FNmR?lI}wC zbL0P4(Fw`*0CIES=0=-G{%_6O=)UjZe$4g>(e|GITl?nvtK54X(}v@htZj_RW3`q` z2lBX&d@P2>o3ShrEM`(4ly%|hxR^MR7FIFZm8iRb++4)Ks?N0_%_EEAR*cF(u0sk9 zL@#;=4vKZyd3_jJbj&d9!DP{7P9k^I=PAvg60S#=$arvI8@5}l&dOAOpGyO%E|;}1 z8nf(m>7Cv}2OJ9$gt#?xo}@<;x)gqx%~|IxYGdNl?*%0MTU?XCg3n$fIyMO|o`N6O zvw+D6v)R^lm<~yhMygBNyuezF;04!&rO=D0aBV5Uzd46J;qpUb0D~>d-(JKpb7g{S$3msVbZ;TC@ ztnWsHLZ{y;m1%^1=0XxwM&3j`QId05pG8qoxD2ZpN+d3@y8Or!&J3?Qh=>%K&03Z$(KaDjtBgOOE*^Ffs5&<9hk|LPJc zbOw_#dYmPNPOxr|wC_9t(Y-pR42p>f068s36`j8)&wT3{HtvxQ%?9FlU*rs1@Q9~< z9UT@E@f?n8A(9C%aIk}qWLX)z_(+dI4hu3?i0cBwdRLs3k=F@4)VW2)5p{fGR=Etv zh@3i>d$HM?N>&-})V3Slz(aBjq2F-&+``XS*~j7Z);9DuyAlOC$F*HonHGM@HvSBI z^s$?L=9(0lNoh0WxK}LVq%{K(n}+2Lw2&*ze?SW2N)Klxjpk7-VbDX1K<+>(cpm`y zvT$=t|Aj&+*dFh(t2q&>%OCqMSfw@Cny}=1q~KHZJ5dVx-o*ngee>r@!8&x2@0CIu zQ5IcYZobv(zktF%)W5l4-CT$@rxY9l*GSpy2dDwWEaCJUkpeTs8W_qatviD%{{=(~ zCkcjhO({20EmHXJakOl|RvEaz1&gE(Kvrv!A#3E*?dAfl1?>~5W3oN7s?pO}C8Gul zG<2w6HR81`aM9EhNKi~t3H?A->f!<{Vu%K;5X&7}WyE*g5;2T}Zbn=GutM)45+zoN zF{^fDztk~2=vOV_32mAy<+49_o)n^J5h3AyQfL8xvRS0iY=ffSporF@Lxn<;FUp{f zd{HWOS~&8tily)zW)5Stq5a3SGDsMnC?o;+nskEUP9W}wtoKWy&na9CY==sfJM>z- zMC*|y#-bPBBXOyTKA1^%;DW>3C%;GvVs{0~u*e!7i~WEEX)T2yxUQ&uM{B1&?pduA zk9AMO*Dj>wuyTiJmEHaeXs7Z)F81!AMez#JS23x?b}INi3S5|`3D>PQEOIDXjf2mO5AuvTJ7QWV4U78)H{aUWrRfXvP$p8Zb7PCcvhcc>vBu@70`yFyuoi_L$b}|7q_k|J@1@AFZbxeWn9;S?9U(KR zAkWd|QYChpxR(CJr||8-C*Db7z>hsK;NPxiqB^=~!hFkcUk8-=CTO>^(~XcE86&K<(opVEa9viUNBQSsgbefVki=1EKDI7s7i4&g z6g)v=J3$J5E--#f3oml<$9+;zM!yDbXvQ$^Bg?R_HX#GeDfhfs3VsZS=D&Ei6kGv~ zq)DMK6bK%GTzG303$xLIx+_ws87N=s!$$Fi%*|$l87lF$IfE_tp}&3#ziY2*YM&DO!%2#M|f&V z-DSE-zrzWCt+QH6fX5$Cz=H&eGvv4?oceO1Ae_}t z2ty33IIa=P>h*j|YdSzo5P{wuzkF)ec8h`4djTs+b}|p-YtVtW9VZ21pz;}@214;) zy0u&iKFWm(SxK86{!1lNa5xHRXSjbOJuAD%h`m(VKUQgFiro=BUNM)anjXwxam(BI zD19xK#ok&(eCTc$WGpMST+7f2KA-bv`QwJTM7tAAmgM~Czf|n42#-0a{0nwds_6a; zJ*71abx17njAR0Fit`2`o{zf(qE*!TFTogaLJ<$p?Mi4ak?#xQL?Gyg`iw#||D{qX zGz1T%6M1H$E|1( zfcuE%3e;KkDI8Zp<3R8AVSY1FOy{lrXeCSx4fTz@%%U;G&wz_OB}|uMP}AsalyVII zojAJ)kL*Va5~J(5*!$Tft(%V`!)OthP&ZNbxJlhhen_bm_SxLDPfGB|>h%J=dw7c2 zUGsH9X`F|2*#%_>7%94|)_MznUWhp4LA!nlSUpOAF54e4VacHeZ)-{wVAZjL{<+2O zR(;$}!IkVK2r@-=UPi8vd=DU~q-AFyH%kg_CL)bMRR0TJgd{lnwPs_}j$gw7a0`aa z^wy{aaF8g4l^@3oDf;w_dbWPwJf^KC$HcVgS9*N>*DcBBVhK_qzy3Uu_ ztrbh$Te=dtmNa}7gBWnB@xF|({9WL};H45Jz>a+532m1`)C?QZ6+^kwa7^@>g=?Fu zj_{c4+CC0IGa46jO{E*>ZE(g2dpKwEOT6EpR&-DJ5DyVOYGMGhcJNKSEPXI=!B)|V zwn5Qz#c8a($S>&HY+M6|P*CVCz}{+-E0CXIlY-<3e#>2pqrnGpkeXOaaLE`}_;A!@684ZAH>@6NF6yCHqU3@H&zfCHKpCnuIlSV^JN!xg6lJol=4HUPwX&S77m{$^?YcEiiylY-E6s*h?q z?X}FVbQ#MgoJLUHa@f_L)KWHFq}_iJ9xV@p=D&E06e5R4OKa{QM9LNi#Hc9hGB8i0 z1@0_Ze9~j0;q6jT;}{l6p$>Q;b!!d@f(_}h1Qg&Kd59>6S)?F#ONvUz#o)-2Ob_ z-`R|L^f17L4F)2%|Iy{R(A=ervvXo_=0XaNM?1<#6`+Q=c$iK=^NkL#D|B3X{CAKj zjEX=;k^bp_03gN4F(UI~eH;~60nQk?@^6;bC;&7w3)mA9W9Yx=l7eed9fyr_xwgm$Vu=Cx&)T>`JZkGfu2KYjMJDZBRR_#B>8*sZ!ElOi zV~IiJV>gLN)oEvkx_H_sr(7|WA27;Sp`1jg?9hrJHJJXoLR2+QgoE+s<8zKVA9&D& z$6W~!e^ru!&}SeVi*ySS(B3Gg59kpAuc2ou&o;_$LwVH_yilbgx(@CpK~PXmr!B#F z9E=Zq`+_*qV=z7nUfvKTrCanw!ZXLfQ)u9!t)W;v`_P=^hf~!CntDC~@R7zDN{e2D z7DBRDaq^s|g%Qz`AACkppKH+48kEpJ7Df9~BU<{v5?|#KgTs&kBJL^VA@P?3Q=mq2 zVa~(m+}GO0Q=%SOOwRBq|1tou=fnZp0e~8AH_DTZ@=Ibe)!s15+ZyHH zqCC1xvWSIuq_e4HMbhT@cJA1zFZB95D7 z)c}I)6ounm=)U(*Kn;3{!PjkuQgtxi^Njaq#(Tt&!g(6-f4wL%YV3F8N=$oaEEuXkCH4?z9PljPBZJ+KyGg-NGF*2&ew+{@B|0mhKH7P zme_x>L<+7#b9dNfjdY>_gp$Y@d1P?Om^eTS00a+LoJP*ngVR7_AKgr-atdhLhI{ex z{21T2Bcnhw(z;8i6x*>mlw}5KhysD%a4hJe;x+1vdTxSW3=z%QYFTGY%+1s?p1@SI z#nUpB#uWkeuosyKr6}@Q<{ZR$I<=8MF%J^b`VEffk6B3XC<-h={-3( zd^nAYgR79qy50hHwEIZOB>fHai~uw8hL8xm?Y@pJXt_?pyUZ5em)e8;0qK>8C)DWt z9A+t$8SW2jp(oj!_x14Ii4-vwnY`YOdaTdukz{=akAeEZQt*#hBuZ-s@Yg|7s23hw zIKPbWPzrX$i}W}TG9gM2JUAQyt)20WP3l~yOZSyLt*}T64knMcpyH9}+L?CkS?SzF zvO)43I9v~vAW8CEgpHVafu;v2>_^lXtDBdBSsRMm4hkjFq;<6JGa?hjAt4$eWSaP# zg;N>u?_Mt^^2VunaPh=rWvycbjkb3q&;BX3JUSfmgw#js8lNf(@{DXE?^5rk=_QTT$%qs zh3^k&2UVMAVCHyrC*HVqH8#k>9DrzgBKG3aa4ZK`;$2pRfrz;R^~k&6YL`V_)IM<4 zDh07^Vv!z0&cPD6ijl$>eDM&6fDAGT)GtKHMl>(CR!B(e@JGz~p+k5grMXYIV46Db zG#__qAF0<;aWiL^zHJfjdgC z5qEuohPtHOG^w5s^r<9jzG5c`6>kr*835X*ph5GS7+d|c+w9z`RHvB94H4(h-G1>Ye$I8H=;iJ1b}Vkp;- z7&<~>ZxGs~KO)*mo7?#>F7OukFV6Q4&p8k6sF(+7lvT_oNmR@rbd#HL;&4j2!(U64 z-Bo#leytlPz9#Z4dvtyecQjZtX@^sLhV+(DP=b;M_m3bIi#(_$Vn^#NWLLnsfB0;X zk|W5g7umV_{e8Ga3fH#7h;7Xt=iurKag}R`>wV6IaOKeLeBikU4PpMFyU{gYPAr94 z&Xhv*)xE0e2IbT%IwSQ+z{$L>9cT$S1svf=0u0O%S0$E}a~fao#W!?LhH9A28Frn7LdEO5xSfpyGYL zXv)P=I)0Llaxiewv>vClDeT>-Vl(D+ND|NbfnAV5xAmRbGa&gdjdgvr zyvt6~x_CNq?)|h>9gUAw%s`gDrbODDsQvL%R{3aOtDSxP=sepyU$H*ndj?Z-B%7{6 zV8b!r<6YqE642cF)}@o6(+DBP;W!XJ;v89Kns@%>ihP#8z#;pwI5JMWjdLi!^Wfl2 z#egP_aHf^o>gN$YiZD;S-;SVIyknC7g1xdpwr|`K6<`+ z!_QBy{$Yz4n^I*b?Mn<)|DFx?4xO(Uj9sk2g|ekid^F+o9^C5x)IBS{(qpY|s4G<- z&Bz3l=-E{p%%C>-AAN9!@L>e__u^f5x~A`NtB?9PIBh@RK0!9WOX607ywI%%Gn{DZ zQILC=)1^_XzxNj#=!NvI9$_pHw zzL@($KVd7yZ9lt-r+B$*SA6^`*REhjB7jy2&P$PS zio7nNK%KT;MYD_U=va4lekBx z4(u-Vsf=87=EC2oI9!oLZahH>K7?a7f%+bZ(a{z|CbqS2?$uYXKt9si zLgFQy&T#8^D^5t_dATjp$D^Ec2X^rb8l{S8;aWF1-nH&s8n6x)Iqwv<5V`}w=0QM3 zd6J5KZ06za?CSGvhnl8Al$nH}kBJCw3H?@zF0=!frA;k~WK%rOy1w2sexwseS~k5l z(%0zFxKwF@6FLhWb<-+ga_7J$=L)Q}jFf`;G(49Q5k%6wH3ig@`Pe@paW-m{_Bc>gO%t^@vWrvj z8YMK}!fQk8QtsUfd0@pbl)IQ?+MhoJ#XO&nqY5-fw=s>#dMeVNt1^kmHuw^I`!!dZ zQRz~r*-f7J_2N7;*J~YauECsh%>djZ2B7&?$k?KJv9dKekK8Q8&0aW>ku)`pk1O5I zVOx(3Ps7kH#g%9icIyPR#yF-#`ml{BoJlLt5!4_S{9D{pj)LDSz}o`6?i**)Wz4MC zfS1RD&lTXUP3+f$Z>f&KK1+aiG_hk2i^1OK8VUSv8&|=Etu%<*F**`#h%qvd&D@#U z9BN&SL>n}4ln)U*#yO`!8(ago0-w@G{~6ZOsF=!^xalK>Hg<+Q#4*bC^oSIAc#@SG zeC1Z><0imW+(Zla%LUmHi5wX$EAOfl&cY(u1?$R(x4?#zX(`%iXtOKt{P=0r>Rg*EfeHKUZZ`>K<;oU z^c+9*4yJSSrO=~zi7`WMUjcoNR0{b~PA%Z6ebE1uHJdR*s0*+t#zv-!vz#ifgwdpp zKeYASUqzcUT}f)^Oq14rhHb_=@ERn}H?(d7)A5U~o@_^VFg&}oZ65E7!FW|`ShJNkC#e!?V>)wg!!SMU- z0Zwk*b3OQNvEYWSNhbElb=W`pM+|lYyp4&yDY$Dkf~z#7cV2EUoF6vo2jL4h?z{p! z_SxYEObKe8N!*C4X?l}aUu*!AQt;tUY}%KdQwR%U+t4A2I8XmC2-rHEZ918g07tM- zXLoKc^ucC$*ldQ~+;&LJq||Oqz+`9qIx)YL|1)1M$x3}R$__PDOw!N7FvM~~onsIE zSTQ1SDNb7J#95MGqz5d@zv$i@ZbV6KirZ(S1m}?zPkV%Ut$ZEaiir26HlFqcFiUg? z9iwFmovfgxOyK*Dfs3{!uQjo*SJP?LF*T#Wtq7k`Lb2|LI4Op&z0mO_>#o2hEB?ll zIyySN1R@C9e{yOqU^S?$__kDa8LO$rIY>K!Wrn_(j-1U}3C%|UNh`p+sK5w^WQ3g2 zID85%{MK5krjQfNOid16w)C2KQ*)TRT*GNzw;MEYc8ZvmJxP5dD6930l7R6n)K z#i8hz5O0ah&a?cNumuL4OxOgSG-8@&=IjCte7V!VwXxhGc4%_Fk1&uz zn(BYuN*+2Dvr0Ghm@BPT4N>uxX)&@p&>MlO1c}Dbq0?BqIMFY;pv1Rn^kNiajHtL# zbkYwqW(i$t>zY)<*|tTxI;IB#&y4M1ks!%*<-a9d2mV+r_6Y*qVPIc@ zGv3!=FOCJDBf!mhwB=dL5@i*qX5dKLqCPri*Ey2U>)=QVlVcoDsE%EE zZ7_Lk57ia;Cj8bAqY;OzJ z?~C;N#-D5w2;Ioy0|?A%x6oww(uPKMYhMxU4t?=jcBSBQB%z4qm|TT?m1YfDUFisn z!cOsPP-8?ydJ7^VW{5E=mtQfK=1z=^mJws8*Z54^>nDieYnS#bUgquNw<6PK(G=LU zDFCswC-s`cTk?%7;OCz3B>?Kr9&bvHOMM}u0M@U4hp@txCtjqGjll9mI!p@v_g@&1 zz)v>9T64|PtLc~h`xuy;_%W2{r7MM z<`l1QKxyDob17872fW0g+L3b%4a8eunFG^MCOuskA%(i)fo3NWxJmxwyr5Rig@ zIEKEF@(5<()Q1~Fq6jK#St<@4iJ(dw4`QOZbe*!76o(G@f>co3- z0p6{)HS7rbgzO;CcknnQ{ul*yap`FB(gNDGol8N2$i!{Ni06iz^O$IzSlq>nc&*r$(23I~TA z5X)pso0|pdXI7;8S6T0_Xyadn4Lh85Txmf7GX>J3$2=+cEFNiJuNYuB$Nv{dpFpJ$ zya&dMOZ=&gL^?jA{374zLXPJK`G9Q@oR7A-Ohq2Wv$3Gz-imfWzPKWp5F;9sf|=lf zwwgmNp=qeY_Ns+HQOD=u`}wtU8tgazh!?_$cJzJ|W^o?w=ueYgg78PtzN}&mHXr<} zumkN)=l3Iw6CSQWHJt5yWC;-d9B3xEMuzMYJn~6`l<0lD1aikz9Hsz|I(ZF4g<~Vg zm!;81#1KjGY#M#{35z%E^&l+b-|*2~)`O7^806Rg$d!Ahwh#2`ZUkUvXz&{xOl)XC z(?a74QJ;zNiVaYIz;Ng-A)dxyXs132@3^U1h95TL`9V&8B$dW*fC(jqXr~f;Jo**v z0FpEJ=+hxlkk$#x4W_v3)Q(^T)mt!aq&$I>8Rm>J?FAa&W7__wNHzI4k{&R1i$0Q+ z!KycOV;2qKL%kS>UZ zdkg;nF};ftQ76aNWl>!hs+)PZn{cWyY8;rP>64tGRi6VU`8{ExLj!L@R{)Vn82! zo(2Zz;1)w3*8n-RE&vjC^9as`QZ@ciH~-7r|H4=WE+7)66FTs#X3sb*t7#|-T*5V| zB#@3i63J1{ihrIT62-d%ed^C*i1FNlo*(t$rD`4|qxV2RRTcEq5l;X(`y2q~q29Dj zgz%FwoY+)*Yz;<0 z)cHv<&HMl$vgN6dlXlWw3@Mm#fVrx(Dc(5y8O@~3x3711eLU6(O=7f6Cs(A8;TiNc zNLrKqu_^nLeEM@3HNN_Nh}NBt@KxyeME@|XI9K8&>aEL(Ld0qMy&R;F@?sD(a_Pjr zn4P0j^3yTw{NoCV)Y#hnct1a;fRh#9q1e9+pL@smSMaERfq#gqC#&OqvHsw5_@HQ@ za~GPc?R3W_5>CnroIoWnF^}XDScR|mrJEX#jG6W;(h^axv}`?5QE%33^`M(9H9JOL!?jVe8w!-*w8+xjaY1f)E@XwsAmO|)a0T^r8*7Ps)>9dC zP*{TDn@5%S1X#^C@saFOSjG$#xYdP;Ktzq_(6v;z^)QY$z!fe65^Qv|z`;tw)UP=2 z*owXSBYR24!b|Ea@e=jp)r^D%8}h);aD9^g({B=^s6GXqjQ^RMHU=1{klfMtVBVu+ zO9O#QpGBXpiaEuKrGMq|PK8el2A#%dCnqB!z!c8&$S$QIURLqlNqlF3!*Kai;v$nL zn`MR9X$wDPk>lN&bfWu&=vS%8Noa^K_u-R{f%?*=DbTg=*K_w6bA~>KTpZ{yJ_4n8 zz^MR{xkJ!9c0CK77;ZhrYEF!|?S2X`x$&2zpqszDo?@?_92Nf_D5O1TDaIRyZ~mOI zgs(@%XTwRe?0q9WF_r2Q7Bq?GCg<@fq7a8v_*Wcv#kX0J>HVDrBih>Wj48sX@x=#j$FR&{Av4n2Wnj`cBo82xQo!@FP8q+c_3sIF^P<7cph zi#DOc=@a0;w)R4Yvs$@OC8E$*Q%F&0yT{q-Z--m=FzdJDQg1$vBk~66+XU(N zCqfQiztgjY7e_Nk%Gji(b-(dxOpr)>U$|{U7Gey{DGO_Lv~%xBa~#=-BdG`Sz)nNqQW}5-{W&krFNv z#}#AUb_AnAFzmC_o!FIA_U3vHWDBD`c>1PhpI+dPGfwwQB8eMnMKfe`eF`^4dP5BBbt(A+@VtpsXS1#iA(*l4L;I9ZCVz z7J4%dzY4cuNL@LI3*h;%S^5M-Q!YauQiN))PqS{M1O3?+ZP3ln;<3^c!wN3N=*VC| zoU(FI2-2zlm7E&)eaxx%v)$rg)6aHJ{x3>(30UaR1Usko_0fG7Gv16Ix(oau&J?A#vMw04fuP0hw_^Wd>$8H z@+h)X3t8Rj#ILM8O+SJ9Ebj;NT-1el;J-6jO#?ot&JKv60k!tw% zxewzQ%SX#WpeOwMR*_!j2^R4c;No>L#BlBAN zFmZTH`}iRYH`dXDJ>(v|)7@A`cQ#5DiSG!(_sD~P{@6zkGG+}qs zOee$D6Eiy2ZGqgIq|iHP!8J>eN0j+VVXyHibA(UH%Ci3t?xZm4PA21trk<@@zn+mO7H~h~2Q3!J!2}Q22_=me5Z6N8zQ|lBF-4$9r=O13jhLaK>ZAgFheRGG zm)>;H#MRfP1LqW7I`ty7uA~XZdX)X3WyilPMyqdj6&}nJ@|h6%K&%nG9fbVE6pHJ& zosi;z{n61;_R6`(6ZlN?--rr7tz&;OuAG(R zoX0npb8v&KM0`hjX-~N-=Cjb-7pG8N3plJ`F0ka|o>n$~>Hd4!V)~uG3Es$K)oM$s zDZN@8j&Ca~B`vq)RHF`wu@d(8^EY*Lt*)o<2T5xe!RYBz*UA}6m}v*uZ|8ei|H8Wb z*3mZ!Rj%;pt8~d^?Hzb24X;dc`Bx@Q_b4lOBj@a2*$P+L9^&0!@F=Alf&DFQ0d@$B z)snY7YUxIbwjQG!ytmfI?~eyL^j~esQBqB+Y5>+kRPl2BgBfGfSS5cywn{9%LM47b z4)Eckp9^=Cuzm-VxC#$X5!ha=z2rsGMxDPKxe#Lh(n9cIg&Ul|n*_w~?!8EML>nMj zWI{5pk_mXi_t<6SBG%-)LJlHBuH}C{2~V)O7inrk3C*gkcm2J#swJ$l-eWz%PS$s{ zZfC#M_q0tt&AMDD@kRZL|3T{=E}jX&Wl(rkouX*y01dUb5Xbwsig-f~mu}Lw`C(O%$Qys9Z#0^I7R&`Ys_RwkJF?mvKh!^!L2Hzk0F@;N^A+?dYbl`?MBIJNPA1vBvZm@0T_;Qn}P;7vkr#pxpaX&>&zg(vmSi6IW8 zMQ5)7?yTVN7c{Q0WcrRQ{H>#Hoq@S-B+hC$ z*FZQPD7)~B6JH&P-oz1~7SCTqpIwX@J1K~i$p4!&>$0Yt zX^%sXW2u^c9tt0xP1;4H7U_e?jPu5JO~N0M{BLV(Is5Rxqx#?PC{>r(b-L9C^M=eO zE{z6KA7?^Dh@;{oea)qO^`!P_+``UdsT)Yf5lcfEQl}UceK^gtSj;74l5)@loKPHn zIs?Ly^1Cz`f6;2^rQX*6kGS^$kE-b6#&>SA5K7n(5=eyrK@w_0O{fVZa5rpdf}n_W z1VKR9P;3i?wl2X4;wW}(*a6W177}_)k9V<@TI{ySbN zT)J$+-(8eZ3CrI7J0-b}f_ckcNpF)K=4aps;Y{LPg<{p)sI0kS;wA60#ASba6XW(^ z(@!jGNc`PWY`nN)E_`x%Q<^c+juH-zL?F>zJ z<dMK8(Fy^b znyDy!Ji;_Pw}!I%A^mG9{J~I`nAZYXsQYV2AWN#xszsr*@oj@a3hI6AoOS{&VRJQ# zhwe>vB__k!VJ@frGfI%URqEo+e?%($>rmERIklL_nptSirGgA2u)H*@iWNYNq{DG*oiy|^PL2duCtJfGH#J91YM&f2rI04xe;2-6nx z^vbMu$ovR}=T&Cb@Ju`w?M@huPK-Z3yei9X`zh%{jIo@4P>B56xAzfs=-_qqw^dnNHiuWQ##)3-wJ5xEHP%LnzmHF=#+tJ;{MBl#2`l4YR%7+ptNctg z7SmzTQ1r;1UiVj^iEoJlJon?hWp8vIZpsDuUxSB~My*s==eHVCP}|}Lyi0YK+GsvS z8EY7DvCol1@I`r5h|AoohQb$DXZ1SGK~buHpKm8;2FggIyv`|M-sm^$6Hv1k+jdlS6^R#wv!n-FAQf12s~zSf{G#4zaA5I7Q4T0|HKf4fGMn{; z$2Gd<$MYR+GlW+WMRY_Fo=wFr^9iU#0L!e^L=u;F{A>u2 z!*yf7Bl~(JP_Y-*iTC8>l^9W;)hZ;8fUNr06c!lnIsg(4jpq;5 zVhM3wkvIp3ww>G1AV{3!bX%QUz0sBg{#GqkFTU=r0Gy5E$7``>O3yfMiDEHIVjNG6 zVy%={o_9CGB2FJ6~hKcYy_V&xx0wgnT?;^63b%Z zD4+M~se_p<{|e9zB-mARbPeQ+K|39krne} zu`EBNC1#$qIL1TXh*J3OI2K=*gS~5ceTYv`Q>cZrB1{EUwPWaFTI)U~A@R({S|ozA z(kYnXDzeH7y<-b_mN*74_D>;y!@A{L4f(U+LJ4-&vO(V6T)ks>gB_<-$Zhu|7KLGQP4tyTBIlpG%b5{>`r&7ntkM+PXD^+>No~(sZsFqCV$yTw1 z*q(F|eamB(g#%!cIMx!e69DN8uhWx{=*{Z!-d0ved8-${-^v;&Cwp+0m9?unp$C;5 zkvO3T-(zJLl>2i_Hs!HbLX=b4l&fLv&TPO{Et7Tvc$sD4i?A3RYZ(+?md#)6%`%mC zJ^10?7(Ln9CE9vB$g21xP~E=RDH%3c*_ntvk$jA&M-4OrEtQ zq*8}YS`Y1$X`wkwP}M|FknrX0;}*j4O|JzW#75e?m4@ReMrhtENfH+l;d zNXv82IzrKTL}-pMZT3H7G9CH_M7r`BGx7WHV;M>~Cj0wXlb&v{r{eTonvhsV4M>KJ zW_}DOmEKOe?6u;}e* zIH4Rn0s7=S&*0qfkS*Lbf{m|Hf-~4k!K+wCd80$W;>t+KA3a*|jFGHE{oR;Nkr3{HWVI?e4x&pH z7ke9RmhM{Vu9WUl>CTnzROybCZhz@^lWr^NHjr+lbQS4Rx1;h-=&qyDK^d@Fx@)CN zeUTC_mF`^WPL=LR>GqdyH|e&LZUgB?N>`EY1vI@tK)4QXqk}SFvvk)=ccpZfN_Vbw zACT@n((NYQR?>}=t|HwFXn88|JL&G0?nZKJB4ULMcv!f6$^-0PC2cF;`vB{r#BAj? zCa`Ce*<1LV6IeqwitnDl`qh2g4E@s%?HxFfcW^^*3ba#nY7-aYpIy&0C$fzCAEMcD zD>3%ot>Up*7)NO~=XR|-<=v*WG4rJp+2yznV7ma-5sn`e7PAkR@Yf$?#gVVzm_CM5 z7}iHNY;Jy_{mOexVr{DAVJrh$uMl21iK$_XygRfD{LmzJ$`Oizk7o>uqO4@cMDI0< zk&eZo`EJ*C%1vF*QcQEQHb^ju&_Oc=zMQ2E43`n*pl= z7)eQBcT6Iv5|ews2HyUYt3C+ z9;Hj&qLy6?9e?!QciwrYs8@t2%`Mi`E^}%_s=YzpTlyV3{V^I)U+S%ErJE<+Cen=) zuF-zpMseVfl)kETufhz0{HLY+opAl>*FtAmTzrGyAv=V((MnX304$a6Tr8`o({iWMYx~-(!K)R8_b??E3K!C=cu2`-X@S3^1 zDdKtCX>3q(F`cTy`prY*QeP^$lcAFoS}xtcg=g8>V$8~4+1UrR`a$5K&8VVYVOSGE zU#fZek^@$%}4QF1xeMMyWeb64A<2+D!e9G)A5&4#!!#4I^E@;`(>Z~c6l3o}G$427H&_`W{ znovc)z*wp)wo+V?fq`g(5-LIQyeRdNqQFqk5=ji}D2fhsKLU14{lse7B+|Pd5CK?i zmE!J%UAWm2Y?y8#{iE=tLp^k|u&lCLJwCCev}TP#nP zW+h!-ggeVD^A;dwzN_CkG5qR5gs{4@wQSe;?@4UW!0DnzPa=>S8JiYjv(W|} zqyqgSM73yMaxoGLy)fWdadrV%sM>s(LRvmqoD2e?u+vruJxi}4H|#(rBAp7e>sJt^ z5*tK$PW^&qOL{0(0=LIX!8B?Fg_T_=qFYrNuWU`w7}p zB!FHUiOrO53Ged=OLxpvVW}=^o_Wr)fSTlzZjO&t-Yf9srXK~fOh2ola%pURB?RFr zHWEXylFG=&4RqhrZOO;z&OjX7K}X0(Bb_7fWs%z5lM;*EGwwwX)viMKYJ;IW)!gQg zoe6!QAa}j!;W0>0Ix*li8%fm6b2AS3sJZZc#JcZ6*ED1biEfzv1&ysnFSdm|EwnW> z@7zx>M8Az9sG}C1Vg)a{3&5N8MiwpZpteD;p?)o=pbBcPLRP`dpDDmLm@w{rilEUEfqN)qL(h~?2GbtW< zAy^A&FkvcuAC5kwTILIg=oPO}kn@TStxx4@cVDLVS}b}C9^|t-;((@o9=(G&*yg;d zorW>)JPcye5av5i+ML*~2ElADoj?Y&@^$L@2e7k&%mbh&sjgGrvfw;M2MFQ32v^(r zE>)Lie{61t7DNHjv-BHNG9HO>h^hUIc2u`E>Qj`{T*QzS9JF@s4sZ#%DI^f6PzMr{ z+ac5d$@zQGdH)fTU4W!}kN{PoGJR;9KbKx(+)8Qa{aGtIOjh=#&}3#e)777_LK5ZA zo&o^qR_>nEL$ML~3Z@b_J<%I5Pw^xNRB6Ax&vD&%{j_F37~3M$kXqc@a_@Qo@p>MF z*-QlO+ZIK~Aq}8m$u{tP{;Gq;wyPSP>%bZ#S2EUBsfg4<0Z4TXOmXEV!M+3noVmph z{G0=-u|Dtdp0ioQIu^1KuL13+I6(I&N=E@hckwy1S#zbuF1~s;o8VZp6R;k|#Dv9M zmcDaS1G5^y{R^xExS678q?KW0Er=KMqgLY+gTG=c1ZGUpj{yeCC|E7U6w=n*O>oy0 z6WoFUK*Rl~;6ZvHP}v358R6MusmE8$VQpI0Kw{66+FPWiqJyi>GECl1prH-Gc_<>S zocgf}9a)3%zvr+d$0nS;Q7zqfsFsK~w#u6xw9ig5@_(2aOD~x-fuY zcm`oB!t<@Zf7hEjFf|5>)Bb!?5OAALzy%))0`|d#2?EZHGzeH8s}pbmEdKNf3i;jJ zkw522etIseoAxz40rk-h%Z1I5L6@pp7Fe>@3raMt((;mwLRQKg6O+?aXMU3E90+Uu z+$0Ew^gk;!bF*dfucF=I?F+*Q5$Y@}bIVsnAk`IN2f z7%p%w(=KB8s?OYVGCysNR^KM74}dsu=YWwxF6Ji~IhARtCy2X<@&Gq=Kc$ZHr3O+# z+0UtLr`5TCqkx9oM{%f-a?7KT_BtN3_Ul>{Z-gODdqPL}2g05R77n;vC&@MNx>MAU zEC;lq1cqc)*Fb>E1AYUOa2j9~J-!}-8>4Dcq9jqR5CR3WPO3u^UVKzVCTCTkiR$B` zSsJ1kXOyEhz!syEXABvtul9=vs?Jj?FId1Htoj}LDhz5ZA>%0e6A1|vavA~O^`C73qRqL zW}xHaLbzDhco+eTHFWOiCgtF_8@~Ed|07+pSkE1@72S*1sUSop*_=mwqB~@H96V7A z-OT#eakcC;h!(n31u;^|j4iaoB1qV!nP@re{Z^R)tF@oh)P1w9 z7;WHBxOE9DxHDL^W#2n=i_ZFfFPXH6b!3h|#Ly5Dcg!nbli)ZQXtZ!8iM!w}zXZKY zPw77YGQzS45c=RqC;j;kBcek7wgLG!$oy+4|3D#v4;T~<6P7t=gro-Xk*7Vu_A5Q- zbH&A;%c}l8CLNen&P!NCji-H&G3}!+F(mm6Rod*%!@ocR%Y0(6+s${v!?ed&@%=8= zs(Dpd0}2xnFs{9y(KNixdq_yx82MivCi9XsWFwQ3myhz6iy_=EKPt0$4`r{1?BcUM z`5eh9;byHr6r=nbMbS{d`Uf(PYd=uQv2Wyer_?l!_f)Qv^9v=p&WuBOd=^= z-Qf?}0Cr{4ULz=D(JJn-;4_--4TKFMFHOs|e9MD}GH-r@xIV4cbcVY2b-_?OVx9#< zombgls8?&SMi_HUTT25$WWcU-bJT<6nh32S3WTaY<}<#rh&`x$+>oa(VFQ$54Y^|p zdskW8fH!-RwN&Ob;6tBeTa?f0^9IH2W5rybA1TJ(?n_BL>nYYS^2i@1ss2O5quZVT zgBLu-vXz&<;p?AbgVHLI;lDb~9QOsURE!5bwi-NWI)Gy%b*mOCd8w_bLehs)7m;l`r2Pz=-kJ0G$ z7n9|S0f}fT47KyxeoBPy5ziBsv3N)ThiODfwF&=mDQl;U`^EGG-r+ZL(5oO$0cLLiQ!=!Vzchp ziuMItPsM#U8Y+SdAZXL2gIf4II@1B|t%GR(%)dd1zp(_fIRRpliMpFT)+R#|JjeBSD~!`9bOX#s=d| z@u8g#!+(tmZ%dF>R|nZ>xPnMSuk{shhrrcwMT@&_3F?kgog7tcE~^IF-!6IrFt%EH zmU=`dm}<^If4FT=7p z`}IzDGPt{u9L8HNXASwt<;+_72y|dt!ZN;gIa{s_+{dlYu*Nk8BM|)X8>|VmzDxPz z&tSLkrM-OpGwku0>3ac|`edp74j5L#*q!Fs!Fzdc&Q>T}zoOpvp7O<){Ml!*nf}I? zoIS_7_P?e?|*i>SkN!Zu9~e zE9|nd%_`e%V`Vnr&{De=L!3C2q*$8p(N|&90HPgo6YZiWctE?JOTY#B)#tG5wRku0 zu!6-an|AYFFR*63a0P5mh6_(~esTqCue`I1Cp-^>l%u{KAX-@yu`XXq_6}b zZ=c|`coA!>wgfLPV6BH9L$`9+^N26z>MWqEHFK-Y(({<7npkH9@qhHuBicKZ7nyF# z|8WI^;D|of!}~5}5q$W|tmVz-k|wu9{73OIuv4P|(r!dTSFcJ&pjFu7|^Ht_J!MR+>+m zsjl&1p8Ascxhm;mr~p-oiUf14Pn=85{9(p1W5oI=Mwu^Yvh*!HjTYm>-e9rH>znmS zkG%>xzY6DVUuE?iH%xcq!$fz|r@OOuJd}M_pYFoHq7+0>@5#X+7Y*yNH_k?bCrCkPa;ZMqO)%3>+Ddw+D6qngEutUv4b?H8k zE!ND-(|VA=f+61woy-#%H1}blck7yR4TSks965D0!+9YUg#N7%+$|m>{Of%2Yk*?ybc?Ot)KCS-=OL6Q=alBO^2V}YC5Eb1*gD7 z*clTcWEwDs;66jsq0SVpYRRA8bUIA=H`AeyQ}AdBZBY2M4+iK(y*Mtd|H7KPHDj+WDx7&lFUWEO;_2_})ms=U8}?|KU};IR$*3>dizV|BLhH0RS+VFuj2p1-#WwwG7d^RHH62D}C> zI^aA5^_F(z5gz?E%sL-jug`MR^f*#|Y5gAIFTM?9wckoa+}J-6hULs{Y-uu>4As~+(kMI;I&iut$iu#C#jP{@&4Jo;UB zUuG4g@^NUaWZwQd*dH6@$NEcGa%Udk-{TZWjV&KjKY(@{^iSEs-+C7od80lqx%Mv0 zVoLo4-uZpl0-mkJN4(GKRlfcaE$Yhn5AU-W{_^`+E6lINcfF5w)7+1E^$#F^UNiGM zKVV&xudWp-Jzt8EO!|f7MLl9XpM$8I4g&j)3(%-{e1JxsAagu$>m2*`BS#Y>2Rq99 zf55UF->tc25icJ=h856v`B^F`Q|0LZ%2-qPTVbSUx1eDPlr6<>7r@b?>l0-W13hnu zpHLybRYd^3DkP{F-*gQ>^dU=&-UUI0G(0I=NbL1I0#q+O#$#5qj!Cm15z@2~YYl0G zjq39%?ya`h%d&j&FLWgBk=1@Y!64Yg0F~KLVqo{K)Exo$TsBUbi3q(|zIrX|s66yOKf9J$8_rNO z4@}R2o-|U;+@o5$!IG<2raI?}30bGx)XYQEd-A(KV$B>2r=u>g$CR%Q=(RRPkt5Ir z$Id#c9mJj*h-dl|#G8&eK`+tZGMJ~QXgcw5hdBcQ!&P=pG!dB$81(azuT7Mne0=9R zR-K>wh(-6B73*JLh{g>#ry^Q7!hk>m?h)8%`5U=HPM)@oW%WTj$~F{Qj~no~Hwc8D z)@VXU#w$&ln*1h~> z#~7A(Vn|{OP@DBO&;10`d1M5C^b^*uaulKX&0~DSCoD65g+=DV(-R_NIkQ8>dQMxj ziiel5N25EAJ2#`UJ{qd2`kkleYVemzSez2Nif=4otsO^pP}Rd{V)>-~@qnnh4YMic zS-MA;&PnU464I^d`rjO^aImF2LS2tNSo-U#x^RQ&!*b=O#^0&l$I=)5tHoyr=Q`Vw%&tV{R2k_E<1^bc>OlFI&Dmkv~%Q#d& ztMZO)-enz&55-WZ%FnIGEHd>?B4tuFqt&d=Z+Pbo(0OCMi#u1e8TImtqVVJN)Y>{l zddi++$Rz0p@$MoaS__C0pNtkQLai}cwni$9rKB){-5%UDBSba23J#UuNydZyNd!+6 zO?W@Sh{Wreq9K2M11u6Pj4JNPzD#^Ub>6LQ4~;c>K9Gz8^H{El^yETX2`GS2h$Cp* zBpxdzFx`k+<|F8y*Fd@qY@TR+^eG)jvF_N2&Be=K@w+y%?h$ule_d1yBB9It##j99 zjbQJCC-LnYS+3(enj0$md{PudXKWQcqxlvx_x zJVS-{0j%CzO{Z;bA8nJ+3q&Ufecj=wE*^yiadkETf}mH3@kGI>;RM3zV}obsyVS6J z?1eO~=_bP|I-V}n{VvEt-(rHu!3tobudk+VS2O!+_U8KiP+-nvEjFIea@`SfwKE$yHqwYl=3*4t}Yh~pe4KlyEz2 z9h^sqQ|^iQWlQ}{#lyb#cC-M)8|LSV+YZWADm-d0ZN1eE+_ z1C|h54OryffI#bD1Z=4=khMC)589g6#6kk*cJ8VQe|-}cOsihxdpEHdww?dFi8W1F zLF~}?2NMQ=4hL^hik+-Jj1Mbi4I4BGN-0YSNM4ok*GpNdl-el^3QOEP_p8A+J%K`A6E zHY|iH=Cvn?iaDreUKs8DR`LhiFXN!Gg7qI^v|2X^EBTbT2hP$73KgX6k2 z1nLNieg1RVma^Q-p3PFC@w_Uycl2IeUvp$Vnts4gB2f6J2-37kMB=Sfh7FVW-MIM6 z=0I0_Do`Rt*%%bZe zJd92u7<6sSRkc7R0@GIvSND^;paev6ffU$kGs0)XyC9Wz3(7@L~LlY1QUx=#D^$!H4)`+u8k&B-N#0BYs0H zb$I6?ZRaq!JF+n2!NsK(PzH#fJ7|9ib`q2-L=bu9X&`3fNIp;o>MmluEpW!Z2BM&0?rBT;?tDB%(EBt)HPeUDJu35d>J zT3a6|sm2k&_z$}voU8+&`h$)eWg&r(w4&F4gen(>H(v|Vth$R|+Q~ZCzjDk-29$J# z?>&05ePke*cNZV93p;qv`H~4}q!+#lFn~6hlARtHNN9h{WB*8K{EyLG;oN68(`N5I z(59i?dz_+@u~wjVr?oidyMkoga;mp`>+LzMMY~h8JM#HJ(251><)K1iqz-Y|QcvndKYh|)-`kB=SwAp^ zpuxHvCaX6N)?usBWcQ2?Y_ed49K<__0zQm<2!;NiA!NQOLi=EjrtQW=ESrR+S1Gs# z@zI%g|MRYNv-}zVFn=gUT`^DF!RkBySW=M-?>b5})!F@j&4phV?Bc)Y!fybr8yj}= z2cY8vBYkxAklE1BsQTsT)E5G*oTVC1S*g;?ZoGJhYUdFVD= zcpdC{jRyEHriG84Iz@sJa=Zx+zA`}J}GI-`%zHKjS5qYG)FGhr4StG*hJ{J^@ zN#k~!@VKdqXt{X;t2?O#Ayu_I6p}4(wh>B#lr_38xDaDcEbKrDm-(C3qzg`{*$?9W zhx!b6u25l~#r&CltZse=xT&sf64z_^35s9xtc9*om0EQyx}BKYwJE<-A&_EY3|$o_ zQ2x{l5bDDAv+7B+s`|H{~TXvkwcA6~R%CM#N z8yz4Z($P-HU9W+Q^@E&4O5O|{!A!uJlp5coRvDlnCXXSW< zNk=vM?f)ZTIE_{md&HOr><(Yi6d+g4f>aoB(eH5gA($tQKFFJV4akw-aNF0o6kzI6 zKJjZd8s>^(YbQZ;*+2NeJKRZzV2PBagH^*9Xvuml#m0xL?a26HzW)9jqS7@kBI&jGt~%M9#hm9v6a zxtK-TX}~Vsj~(fQPX{3fvj>S>X$wLw#E)EeP(mz{dpKeVJu1Xi&GRnMGZT6d|5wqA zxFveeJP!S45PAb&0eZs&=Wy9=aPb0m+BNsjfAhR=aLD4lo_y{%Y^Ad3F@DFltc^oy zM$FaIIiN7Vaf1a2*0xV7gAhX2n;;1Hc&BhlH-j=3^JJ z2q>M;WMNLB8_J5Jhp*6y^y(MFVAn#TI$mbL69{xnv$st@3u<;f2V{%-;*|@xt!Q*| zn$0;HJ1WgAlo?McpVw+)$4p%6Y|A`uucV#G1}0!zStKQ4vrAu3h((D5I}t{>`zXyw zbQd&sn<%GQdmA~4XRJv9#SQ+5-YP2Q#-*&XhN7Cf0;(_*B;8}L?XpH_c{6YgKd#%w zpSmLi*=VvMRg?Ime&?V}S)yV@{vteRZDspWq_{g&yQhY%({ZhZDud zNVK<7q*?nTOQ++t#uYk>v_-*9c=)5`fSGYY|gdp0{ggvN#X() z+)1%=&PkIg)MOt@#<>oYWhJ2ejJuBJ97m=slyyIqWy#qbRG!{uNV3o{?YQ!-;AcY$B~WOP z*;K>A%ie;@-f!p;BHE@&Boq(l`B4mDc66Ay|83`M&0dk&VO=TLjX}$n#_jb+d9snQ zY|I64f=%qDP%ay@kI}NRUUR6f0+?PT)P*!UgVr$bw^4M9rZs<8~}od7z|{gFDY`6xnfHo4RiFx=WB1jGNQ z*AMw#^Fhykeo+g(LzKN7_$p*rzvAdoDv$ys6f7U`zwYg0TJ-x*!lxFX-lvMl$ zbm*th6K+3y?|i5NgqcFPz`Hvbb){T>0v{rYS(iU)LPQtD*`3=fPJqHKhd?sMwtx1% z)XFF{fWT##pKnj#!BZ*_coXIj!7(7=qZ{bCZzS*{6i3s@xuie>3whTs9<3y0f020z z>U}c;w-zuUe-aG;pO3%|b$WqN+N#q=U5UW=WEyo1CUAEWm<55yW0w0T1YVPV8v?Jx zX!a9$0VNfGJ_J8{Qm!m-m1 z^}I+y26c?ZbFv^A*HM8T9^C^W)Yy^5GTRNerk)F3Txu+mW5=1V|896 zsVqNrTRs#t5qU+OQgQIgGVg6n=J}YAQ0isN+)?n^irQd}yiaA{SyTU&Wm&#W&HMu| zhSmQDC!?l6mNoCJJq^|lb*)9!+gXK;61@+L`^{{4;~L~{Y0|n(0>S9Ybzmgte=O0( zZnk9}E~5c5Sc2pEs`Fa>BwqXji*|@UR0y>DI0oY7)LJb&py&9-HMINXb(}peUMVBJu$WDAo>bUDuj= zSeO(hK<#Fk*9q{n{sg%deo34>`*q;;5QJaZiz>OJ@Dt)p^9c}VNV+ZN_x;4?O0$6^ z9HNEg09jV+HzLv1ajFZdB+@^@$Uz9L=nlmJJssAXE!CntriEeRL&^xUDbV##z+G!K zfi58-tLnn5te|GjBIbD?2wWQn1TH}q$2raY9>=#*L6#(JaQ4#7o_a{A!rFdB`N^AANFUTCNm^__lc!h7fEy745^soDY&_U96_z*%HfjmHq)UCqmVFqjr z1g-EiCC=J_Rtr=r9<4a3@GcFQ_GOtl^<5H69D}PIMGi+A{{fw*ysP^(1TW`1F3kBScTcByhud zzvur={3HJ+en@aUmbAEEH#A+i@ zVh#Q$ydb7!Ae9X(qi$mYd4b#D1=X+_pj9%2Gv4(zmQZ;Fg>_0PnR^PaX*ftLjngZx z?qMnpMS)4tsq|D-r4;7>_IPNQTj6O&oB~ME?i@wEO;1RvoZZ2?@a%{ScWa#^s^O(D z&`mNEUpmjXx(p#tU>Ju?a4J^~$!;G8`+a+&FonLLJrRMr1%tyhpgJE4+g_m@zW7(X z8xp}c|H_gh?i)@$DmrEaDz>5#denkvKTQ)1^aD|QzAI|yQrOJC+X zFj42wm0!p8=T)@%HT7aVyX87q?_e*|Ym;=0iBRx-fKif!>S%*}>pQR~(!d0WKsHyu zFdNRZigVqTg$sc{Sh+yIS5X3xF0&7@#u@mh6aJAliT|BiixGU|Mcg8-&$$9g95n)- z!mRM1wi}HgZ~>lKaumGg={a3IXnZ7_DF*Oy80^P@4s@x9+%sM!T#Fn%%o%f zmW6Wyx`ToK03Z6Tg3z}S`aj=C=r`;rab5(4p1}E_f%7{z!+9OhtWRhT#ze+b+}N5M z{TI)3vv-vBL-{2)>loX5C^q=f4KeIsX0@>CDbeBO7K5BIQ` z8V&Wd(Uf*@J-)z$a~psC$xA#qKD_Zy{-=j^s=xRQR$!uZ&|WvU5)W$?h3DOkY(;f> zzcV;N_S-#t<{6gQpfQpob(*fq#MRE=Hy4l)MEH3y(l@TlOU|$cNhduLYai6rda9L_ z>Qo}Xat046ynI8diF&I0DAlWpVir1+lJ6Rf?z+>8^#fGCeQ|rBnu<#scEQemSH3F@ z7WXrftgOt6v!`^jr#T)ZOzta2@d0AT?hF)@?>s_GuPFK=Km*(BgG{EnT2~a|!|=Qw za}qJy9f;r?&$5O&`z}A$f$vAAG634PLJO{FKIv@rmzQ=X@nvRXX(H(c!=b%EdW8*AVE=-^;6fM%Y+qeUMD z#`7BISw9{1(espJOp*I!4i#KlwY0OTk7pev2l1!pKGkO7GRP^`>l3#iC(`on!6e zj1*MgDtd}*cOpfXSU&tb>(Ss_+5)3tC8$DhUIPH2xtvlRjscv*r5H5}e&gDCJl8Ui zSHHj-JFGGrsm^gwSMTDr^qgkOsUjzhRQeSe!Q(40utrI5AbBwEQ}sNfDbHJV_^%h(z&2?}g?^ona*LuBJ;9&- zkf1$)`uc(!Sy0+hil|$MPx*s&h+m6g>_g{iJ;4G>u&XxT_6J*{I1~85KUv$x2m1>} zh?a+bt~y&&+epIDq$u`qj%)At=WG6CR+6FcXbo<2!L!z-*3_MlD4_(XtAP$DJu1xPlz(aCviBGEy5#B-NQUbb!zMXA*JFWr@q(;0Ka$D+@7O& zb#)1!brJRvulFM^{+v>!A0K!Lcc=7@F4c)sCr_ zdEa7W+gy;O$qs?;Eoh5%j<|e^^dOKah1Os;jemk$rhVK;H~UJ;2azCPR&Q^mB#wEH zAq@^z(b91#(g0~!!~FSY?XjS2J18JJLD;t9P>vlZhBa+6lGrj&*})-?YbVe*rAbCd zkTin&5N$d5)GR_VL9$C_&ph93CS)1UM%|x;(&gIDvrtNCQXv6#GqiR5{jC@^2YT}t zFSCbO7jC)2j#SDP*SGNBudv#k((+NUqEI>6I!8-dTBM!D)bVLy&0`P=!4%K>36&O#@M|j!U9JeK?jcU zx5N?34j`!c5X?dme(5}OJ1G}{;i_mKhJFN3_R#8}Za$)gHZ zP%;dYduTYcNIIXda~AbL!}&~@jFb2KdIII$b&Xac{$aF~u5^)RQltqYq+u5Y%Ohwv zVrfWJ1W5-tgjtlorJ(r@Y$-zxlu;|NCQ|7#%_=G)?2g(KVyy&Xas*KK@Angihk+oi zL8TEF864LjV&cqDX~7gj7lTVe9l*7o-mh+ktxjsJ&wuvyt%?ZiN|;5FH$ixdsw4as zy3W5~?5HiJNuVhF5&AtH0up#Zvn%Ygpus=8=dA|+2iSAbIk@pZcf0h>9 zHw^wmJ@m0fga22s5p5;r5d3!0?*;KjxAL`EMQ-)K9Q>EDf|3~e2Y+jcAPxS%x&x^T zKu{n27qJ1O5B{FH0_iU)-cm&${LlMh&k}nq3ZF``ABV}oU#FKZe!U*wfa1sSXRl#- z6Ls`|Klb~A@7y@{AI|yj$9_H7uxN3Z-;Lh(e`)M53JNi2SmPDAweq%!T1Wk`c;d?MQY1@U&+KvcYasTRG01Mo|suoHSjNK`O1X zEcEl6skDR+AV{TUC;@J((%K;4-CCvPm~FzJp^%X(t%2tV38=09ol5H*RM%Q#%;U0C z{$nkXPe~LRpo0@yqN-Up(-N(Q-MPT%Ki3lZC$x%+mD}l65)C!mO%y8wx&|p$E<@k( z4;3pz^f@rLh?72B_*-Vx~qV?F(y$o4<=F4q9F8S z0q=#B^_K^v+#pldq?FR&tukMvD0P*)D)Uu}Qm^-NDCkvJnD#zISwH{4FEVfxadL+i z3oj>>priqqze`v`xuR7{un?E`>FKRwd318f$m>)dI23I~sd&@xp%g>jPta-5}$f{P&gf6EuSX?Pe_ zf0Tg$FU2hDFDA-YObyK$SPp;1&Y~)bZG#NHqLNbA5rrcvHY|*F#s|h@b5+y1+j(fb zjgcr6-adu>owVqFBvT)H6%_VZBMPb-Y)$ByNnJ!d?NCKM^J^`9D@TZ)hNAg>N-Ub; zJepw{`Xcp~=ds7lFIG}ID4kF7^vX(NghU-HVrtsbU-*5MmAcia2UGemcR62JSxFgW z&Y+jj(syC69_^r&KS5pK_>L^N1Qh4S zSU096qKEsVcKpsNO1I8^aK4O;A#tfL8N_OTUDo}f-u<4R^j9-pM^qD?h_~W=rO>7oz4{741L9NLa(h)p zt=<>8D9b0>FPHhws!E|U;xf;#rleMDM+Lfi?bH%;_?&7=XQgfqFGa*%)4Ec`GFUjF zyz`nHqN4wI2Afb0jRQ`T2?l1?YZ9g1+R&n0QX z8G{Q7VIosDJxL8QJN4hwqO{-h_>P6C($uo<2u%h+Q#KUiSb5<1=zCiBMN#&dl-ZqAsWeRCHK;Va z_O`VaZAZ_hgs$+aRG|52IbTsjX&nBpFbwWKTbqg>{D4J?R;qO6r)nrEHGhI?Pp511 zG|;v9PhQue*c>a5mlHqH?zx7*wy+TfK2^#-2T_j=XL%4*FKpT(VAo>q6kix7m zru~JG9VRq0NHKgk0m(h40}Cf$8c+!65qR*({0;h-ewEO*A25G_L$uO+0LY7}$z`5D z7bBN%8mexD; z1q?KF==k%ZL(jX9T7gFA)w}UaxBJz8%G3DgZb77rFq?VH;IU! zhZ+$N1i+ZY`_xqGb|4OIsYcI=rr;NPZfK)_7{uSIsnm1)!^HnVDFMwv)LxGL2|?|i zc(Esnic4mu4fIbt(cBw}rZQin)i!!<8~py&!Ushvi5(Z6_?zsS)*wpz@?Yg%C~|g~ zH^E1L`1!j0>A^iBvR$K5(spwz3;!@uiM}^O0En)MnGJBN5}f7V(onEGZ8pJ&3BvbB z0QA;d39$gJ*L0nrynTp4`8?X`432;PGq2zX;Z6!1Qj@Ot{;IVMVgQMUqk4ZOpT zU=jE?5M1!70N53KpoHLGSA7U3NO)Vpj)?9zAoy+&JV$4s27v8W3xF*phHv=+eu>$L zYHYt1z#%~ZhXN4b-L*!*^MVBsf`k0<9+mKt1w6-1Fsv2?F#KZyu+k?2;O`P(Wk0}X z65!Y0-J-^yf)NH#P;cS|dJ{Xm=x~H#3Fs!<_ zvWTOnwNiw;TDtq&>3&44Au+ElkPz28u2mh5zkM> zC=(o}$PiI~BdYIM+_!Id;7*bL+0xx#A-?o}J$+y4CXEZupH{)273{BMDt;2UEXxjQ z8l5&TIIAfcF(v)>D%V*_%><=q6-RdOJFQ8hCXXJIG-bs7_%~*1QqM8=?CyP2Qj>!I zIwUn34did0zWd}!(BmkM@CS^WI%dRZ+vHJ>5fjJAl5U$};IuJQbHu$}VEVoU6=d5Y=F%Jgi5b3*(m^LP9^!TapOrs_#`Jj=qR_Q=L>2G~auXk{y z*BgT`1t0nM!43Ro!>{7Y5b-5TQUhCY9GsQ))X*Ux$}_|It?+>2C3@h|uFU zTFSkT;-hpAz>ScgV z0BS^b1_H+KK=*ARx2oEI{`I{@KF95VJqa>Vd_G*YR=IacBuI*n!VVy;2~J^D%)b!n zD9juX*9UnBf$fO<3cm-%g9+l>8DH-39>$MSeCzQ|vripA>HegNeR7AA2U;ojD2{gqVjO4cUtZ60Z-;*6-naUed+mM7z0IImy4}t!2kYpk z^nWActH^k$Y{lPCGMsc~^jFb;UdC6~qfJ7r#_w_&P8xCiIZP1`>In4E156b&j+fzs zWI6-jIO$K9@hhZ1T>2+VcU6Ua>x1%jHJMIV$Vkf>`ny~qJZzGVXe&M1)RFu=v7^$W z>I~DU$-_p>7%|??)sD*3%8;S_Xh-Fkd77zH=PrChC#5lrndF}~SqI~hE|lH0L1X$& z`p-+3mWCAmhmmfAp3g{sNrqnuNKbjL-6UKAolWIN!YMi+QVUats?r}WU216xuOt1e zLi#xAPn2#|q$Q+Mq`#?j4MbazpX#43BaE80mi~4D;S`r4{T-!i0O}(B+0r!-?Ir!a zrAs}8@(hvw``|hVu<;F-5u>Dw-C7YhLHZ|2*C_ZQ>9Ig;=@OfuLUv03 zo(k#rO8)`r8VDVd{%@u0FfckI1HPB85&o0(pOCHr=x6DtPDEiw_^;A`TDk;>;?7F{ zIq8}ahDtk3mt??|fDDxBy7UJYOn|&bx`+G)Q+TNKSC+2PC#p$*4e1&ct10{#e^C`8 z>PUZ_bd8!NNPoQw=^IFYqYCL8OMesT8cp0n`qRm!@o$i*jf@BcM1{AP;T@!F)SyiE z{?0O-(o!K^rN3K+^tsZnN|(}#_P5D^KGKaq1Qjw|`bSCEpu`yIA17S{p$XDINxB9j znt6-xM;=lfqVqg16Hu=vU{6SYk#r5xJth55OV?mfFWe&hWf{Iwy430DZka0NQlhK@}##Gp~2pP+7)@dgTke#&z&03y6M_>ao?niPq@3jSq1Lq=qtm1ztz zRrLQM;|<}?=SK}1JCs>^FEDBl=%+4SS;kX~(_h6_x5#)(OMihBAdF&VJnWyvU!Wg7 z!(j@XjVMJ$f3pe&RP?v25MR-sCF6}=66^;{>Ln8x6bSTFOZS!W1_dhm2g`U$OMeyp zBPzrP`D2jbn4DjYMizelv8s6ZB|RRmyov6QwpE1pRT?_(@QDL$c?8jybupjO_ZjRab#V= z-V!=8ax3i$d1 z-Te?XOTkx)Li*xcgf9kh6c&Mx(q2Yb2Ey*bN5G$!c`2??rVA|8_)Yn#Yg;Fc9Y1Nj zeU_>Bh~6gt|8;lv@l92S|3A4&+W-XuRBRO_AZSq@LItf_SwPgzp+<(YGL-O8D6X`3 zP_>(2qC*8m4T|21h@sDvJ_IRJ9ngg0TDHo?%}?IG7NQB!umc^xWT-5cYNp%j1hcw+I;yCxmTA&kUUj zVLc)2PY8z+!r^nf@{1l{=oMWN^7zMv?RWItPLk-VFq)V@wfxknTzka-g%ZN;3E|GJ zaP0WPKA>j?)*(H^A|dR&JE1`GWEnp?v?YYo6T*&oSRG%4)LA#4hc6*)ODJGS^c-Yi zc{-2p3@L(}xq% z3tudqKfa$TOFX?(Z4apYy|J)II1>&KPY_f)MBlEDS4=jB%0R4*9q>fko!_wC72Qsk zohSph${=um&lZRmKv&x%C#Zn$8@31Jb~$8DltD;kaH0Z6zG1uV!C1jhQ~?Luqc?<3 zl)$AjI8gz0wOvo>^LPvS)bh_3F3n$pfZSugEDLky-quQ?MR#9zfSA7 zk-8_P#h4o;6p+yJCEHW{kNizFM(G@m0lriiZ@%yx4v=MKvzD zeX9n6b8sv{kz$$R!c$}M`!Ztmof6|T6@Q1~I>lToonG9EuDVz_PTyUzu>I~BBP#4wVZJaYmb3e~L+Gm75tViD|9A+S z%#y})E9$FbhZyRMx8ohL1UAKRJV8Ju@Tv_i#Yj9sNF|6bE&OVUVS7{^BBBz+*BU{! z=CH>T*wloNFFxFA5z>{wp%TPbBLTH4=}O>I3F6BWyIQ7nCD2uZ_;SUkmMvWgd@4bF z{o+vT7)QL2fp`vTLE~5K$|0l@#8)^@wbJQI5K#%@OP+vQ`gA3*sc9Ww1KA_7KIux} zPzmCTqM%CPiWkzQ62w@1CUlhRey^Qh`7r^uVOtTXf!1F!L z^Ai=o^L?FYPEdfH?{cQw!5Q>^ZN`886e%-q)CL@vF*mOsmd|IKkO*tS1}6{TeIUFO zu12YNAABi|w|Vd(_%X`FM_}KR_{0I;21la;yaVPS9q)uwPzl}z|A<0V-Y3I|^DCX|C`MJH}Y z)9|bc#Y1R1o|U0TR1ug-faRgsfo9`bB8peg0zAt^@h4P>XQ?PyCW;cgq-UrQUc49n z7NxzbMR^Qw$4mZjm=I&|lJ}t;yyP1w_g&sSlIE%56oL(s$3}2qxij2$I?afeoI8?( z;UyQ3q6P4h8_y8JkC*%c1@Mwn&lF-OUa}eO!b=us3K7Cf_Vb)Yvl8eBXQG36$%j!V zUUJykjEVQOD09Zp?0CsVXb4{NGzVh>FIj^o;w6(O2;sy_p2uonI$m-knvM5JQ!$Z& zLqPIbRDze}`F`QWOQuiay%@Y54mg(r?bpOWm~tKk!t*jk97aR%yi^e*vndc>ayy!c ze+mYtax)z-$x9iJ*iQf>Zn=b)jrdYH>{4dL`y33Gpj5o%=a;1b7B8(z%g(_Sd- zA;2pyp`&)ZWE)x;VUEJH=TjiO1Ac(k;3II}0t$!M;cm16AA(czsXg8WPhH5A#@pc! zQL~JPccT`(4|=X&`;hO5zTxdFb1_TVG%x&jI%)4*+LKRyVrTTG#4JREW(0~T+G z^~mz6CIaxfpV57IH@voxbkf6Dix?xH@-jDsxmxF>AvZwdmyB4vUvfEpg_lfQ!HC7% z;d)dc)4u8cfb+B50e*#6%J_qv8$PAK@oxCZ-x$^S2z=lRx)1Mz z`@f{nG9I4XNulv}I17!`%)$*{MPu+G_zCi46Nq5GL^*hIn781O6K{h*K-2KNA0wVe z)A1qrdz6Rg#-3>Vims6!zK2Ti5jg8>DuZ{!6@RBPcrVNsCb15$3vL!|B~VWw2zR4q zJa-R;S2KwgxdS|ag7^q5Fq=dOufxM=A6{5YB8>LqC6A(mGCs*92B8Sv4hv8RUWfgY zO`=otP)p2OWHFnCAHIfC@gbO#ViIY1CoDii@H+e)jl>J9Nj! z;)C!#G#wv-qk5afOuPgB*ux(;0XMuC72tjFF{I=D@Lg1bk3dr&lUR?}97Q zD!dO4;!E~@cssliZNTgBX;g_1!Z%Sp-V?^0)0bu^;Doc$PP`i~N4xM|xDxHg`{2VU zg!jWOXb(OBx1%LNR>;y)m2;Kp&w9!v^7ubyU z!&^_H3-Dg}2c*j#p!H;vD8<|0VYCJ>(oNzrREBrKzoSYS&kr})PN8{adieZM1}{DY z%TA-^@P6251TEx|i7G&Yb8c)sePPi)DB&Okg z@MSa`AA&Q_H;Dy!H(ZW%ycZt2fboQnK+mgJQyaMhd~t?J)JhKr{g~;8x5Fc7Ctl1n ziK(a+?}EA4P#fuCGunp_!X^CB#eTdFA3+^>Km6!g^1?^pitCtJ$!3r6Vj5>Losy|B z>_pjk@l%>^Hd7EEg6-FvgbN>mksC}RPkK0T4zKCEB<`C>?eRX? ziI(HVe3M98;Gy<1(E_Fl^5b=Q7zJdad=r;cS_1Eamo8*RNDqrqn@kT&Q5erB{KUOz zKi&slMeTS#@h7G%qTqNwfu<86Wrnbgy7gzsLGtn!UHt-|P^Ee?xolg0W#kyYZ5bqB6W6PViC) zyc7Nfi7(g}a&K3p;UzCb=^V@nuR=CFw|2#?$d2cBuXw=2pELqKIBF$><#U=8esU)@ zleLG#?xHVAV~3X@pUeo(LN2-df;XZ}6N3@{5=|%G3-3WAiRXs6cn?jK-3L#*oAh`O zcgV#GBnWVKTzrYr@!TO7{gD;Vt!*(2wNfB%Z;QpNX)QdrxW!*kC7!$4q8(W&95=2- zCrZVOdrV>|+H;r+z?o?F*W@GP?xFv434{q8M0xlK9C9!Hgtx={(HOiB9z{d&Vhw$d zQt>)$MmhK(+=XhtqVM6?sFeeY`ptKl7e|1I|W!@NT#lt-*)k zj0ZSr$awfWR4C)2&Bq|cOHM*w4(x=vXgb~nuSFA&urFMUvhg}xf!26Pr(E@xJ9z>=12<$+s@ZuqAf{x&w@M&}qAB5+xWBSQ>Sct5&iVjOrGhN_?D^VV4 ze6S1^e#QFVk7-0MHUwbrhuKMRN``5uUJe|XiFV>0unZmH0DkxxYQu|1xY(dnn%58Q z24e*;S&sITCIA(>`AP_mLOGldc#lJ5qamE!obVE~n`!CtVDivRIgjDzXpPKtJ<|rY zendv_Y~;l|U^AL{h-R03jQNds!e*2vf_K6~6u|57 zuc!bYd4l;r&rb`;4e(u*D>uN*O^gG)173sd2PhmYK!LxK9uX`4}V$+1mXErWGXknLbM03!xFTMOug_<)Q0!L zji?3hhkr-Y7(=3(wFD}pYi#gl)J7|M;qOs1J`781=uW)HixIU93IdWI6qGx_iJKXv zcqhD4dJg7-rKp($c;N$R7v2Y}QJ6FV_-nKeAA~QXbZQ@hZD;`nd!YNTew z>#!7caxgF4h}!Xf_$=Cw55m8o2tEvtqJwzRM0e-#r}QWXhA*Nr3KW8q0!%Z!6K+K9 z6wVKmx6(~`8_YwUq;bQ1873bcR-l>q0Njga_moNQ1I8*DHg zIq`PrK-2J&H=@jA902Y^ZkZ{(bsOD58ZQi?R0=2QXr`8OUw8xB!0FiyD^VNq0r-3~ z{a->LM8LA0rpDXgHE0dq4Y#0DxdZG#A-s5sK1I7JgaZ!Q!BoWCVGUY`55OB*n9_JR zEJkg39rk{j7RB20EF*a#8~?EPsY`J3at^@@txx+PmRqlr7`ob7(p~2y=FF zDaSkERj3f}f&sKnriT-L!xdGgfhEXOO2CUrevW>^+u#ti5^slvNXP4NP>>qSc(@D+ zych11p2CIUCC}5h)XW8oP#XhHhqs^r-V1l3R$4LiJoEn$fqiU{>co5DTGWR3!CN+XRA9ztVeM(`)Q>2orExGn{G*H~O&Cu89fgqj!0O-8{}TxW2pmSa98CP4B{Ryy zyWtL0fDgjU_Rw0gRp4rLgr@evFOWsn>`l%S$VPe{eu*OFFW%x_5DMXa@MYwrK%uuh zG}j+!MglfC1x>@d;Bw@WBOIR5#x!GR2b_T%#Jk~Iv_QBd-Zz*P#bZ$9v(O$a$FazYo)dve^)T z+S^PmybWfem3RltMYHiP_!vslC0C%E^>>Gr8P>A?2 zJp7J_!9qsjUFI-K$4j;$fe*v0-(w!rTy9v64$>+-9wpvFENwEhR2RZkYx?g97-V2Q%RVPAu%;gm)pQ>?imXDv*ibSsyZR@H{jnE4)#AhO>O<^IU%Fv63Xq=Xyu@3`C)2>oKjBJ>)ykM*4mjz(+n4tVr4 z(jO#E2kS)CF5}@OREl@PX~^~o$AUAF74L=%Jp4%|pu-Ym!F!?joEosREdEwceoN$PDz)47#g@Du1a=Z%`p?!Fdj=3MT5%9rAv>zXU z|AWH#5FC7%YXs|gJG}ZUPAshF-EaY_Cyfpdpmq2NJn3utn>2PwRL{N+coE7b-U%=N zn*QI(1{Z-vM;Pt$6%Q;ymBf4D1IWe>KKK>dhZldRHmDu%f;-S2d=TzJ4txl%KT6Bt z{V?wsEr)l*Bd7$=Jw8pmB{&d)FnrXciAuQxd>&cp*AVn+nrJ0nau-@7IwWXeD0Kk8F6!!zkNBjfF)M=OQ~BoNyU(${pY?RtnA>0 z>(N9K`C+d<6asI9*P=4K8`hzn_y9a7l?PAQ*9ljlF~s{|U0+S?|0`)=T0exh!%3*) z0O{dt{pkOh>>MJnyg&W<5ru$Zv=T4*J}SUR;Hd*NaRhIN)6gEg3%-m3WEz5}4x|<3 z!Qd~^O1u}ofU@N!9=?mx~k9KS;nrMiH2L zswRfuZEz&A%LBtdpj>}4NdN1YRmjH%AAAP+8AL&N0A=GN@Jlp=J{H4x#sf{4{S6E4G(TR4qlZ&tyaU#t zJUmYbi$9@43d&Q%;uBOLD-2KdjG#%spr&v<%Ea?Pu($x(J2c^hQ;-eMbHHL2+TTw1 zz`3Xmufvrn5ATDIp#^w9+=<-yAbbrK;zRHtD!_Xpm`;?X=z}KWZSV}l`{lv` zry#2=1pENGKBoroC`x^obR!uLD3?s_a2^uG>+ng`@d1T^g`-F(yAQrLivAD2Lx~7v zok8>9opA7(G#iQRa5Kur2jDfC)a)2Fg72edd<3o@O@HHk@L`nuA+?89$nqKc!tH1p z@j>_^TG!5TM|(6e;VgERO%1EjPPqd-^=t+U-VXgJf|uNb_T$6wl`))>$utDNMk~oj zjMc<&v_ZBUd=hn%J_rw^-FPuh6X&CP4*@6U5_Aynfd*>> z3-dS%chJ1>V{`-`ffr5UG|517!u!xfybt~vmEyy2?76fA-T_yj0Nx8w{`@4Tm;nvPqkJvtfc4rbrZ$Ojfr^~cdW9VbrN=qNhq&`N~W7>sQ zm9sEx>$MDH#beqKW9SCWIz*;0C(rA4@V>*ybo@A7+-XeNpq(t+VAclh)-xvg!Wvq1tzVmNT;$hM`en#%Gh*9Fe#p-k0r>Oy@_lcUcD1o&lV(b1wC zfoJHw#Z6ka@%kn$&A5Fle?H$t_dLB_OFurPj5Q`S@aOz;ZN4ne#&W*?ji&=r=8pY9Y?3R7S+j14!b;gnkZTJYDLY+aQ z^VmalP`N3OoNn{}L1Xz=+UwH_s_;gImX?wn+r`*lp{>p6z8@>yq%4yoy8l$8=t=El zBcnmH8AAh_(->8SyS+-Y50m|!)vdo1!iF=T4UHvdpETpXZQ6i-J$EsDReU?cQ&n33 zXu1KZDI#^M)sf;(){|V(E}p!NgO9DytVZ7_>6*UP+J&;|FR#`{NETIVCwsD@%@H(N zEyDUA@EN_6MDKagdNIi4fRCP5`k%>Ux!07mQ{LcUZi)Euj7YV1k;p`k3mv46H>xl$e@Yu>Y^NDV$2&;oCObf$ie$${bEl)H#yi>=w?jL* zzwG-v;!&J`g3a1V{S#Y#O)Wn{B1g>B*r<%Ax>mOA9o<`&qjZ}}@wzaqf~Ibh#3b8d z>Oa~daabGP&00p9tlA95i|l|IsxyqWPtbFzo3*}k6G~{3)#$1j<@jf1J8mSX7Lw;n z*+O!9O^r`4gAiRWLl zXBngIW6em)6z9szRFCq6seF z3S;bR)a(Phres&+8vUBI!KcLIO)5S*MH$9S&B;yLBIAwin%(HTopX8g&lNj3jgQ^L z8bK}}jKwuv$3Cvqa=+bGaLREf>2Gu0+e#5Kp5W+{wrYjO;jP-lQ#p?vcVJuVY6zT35>$EBj%<=2R8(}qXe zXjJ!$Nq67lB48Zark&okRIo{xW?ZyQJ5!!27jDz89h+F-9_RmVg^d;{vJ!a}Rmb2@u(^m5!W%M%7%YY=&XCCX=pe3Y*yVe8I z)%q2~SMb;tbBBM?lS;zWO1m&=k;tR;-7i>%y^5<-bRCuOhc)IHBV!xg_Bn;WNRCl? zitX028GTbk-+2_;ouVfc$hQ1d77lM}Nu6f#p?S11Z@YGx@w#72J#`+(@0Le*Zv@II z%jYZyJ>9R~vKbTh%IIwoy_d$0sb*0>c_EsW^e}hsP4;LL$R)+n_zFCF=1Cn+nlVW~ z5^h?lYY~*Nij@ldv+}j^%7PWTX-%cI-f76sIZ9R9v8_E8eA8rdY2SRNSlBF3Iu55fza- zCU&3^iWewesd$58k>VP~b&7t)I>i>nmlWF++ZB&OdHk+_X=7DQ6{jlZDHbS}DBhv? zpkk$Bi{cB4A;rClA1Fq~n)wVN|GrWY$>U-L7^rxP;z&h@;swU-&uJ%LJyQj5P%Kc? z6-yQGP`pR+LB;iom5PnVJI`t3J%?1VQ&D5~$$zPegB9(HXDObm=v2I1ai-!8iUo>G z6>n2q6{ANys3O)YmMca}!Jqnsa4;eK-R3ky;yX_2?>499ko<0w`n%2P=#=Q|9?8Sv%dY@-jT73Z}-i3 z!4&(QF1`p}x~^Z~62>(zYKv{Z(1_#*w)lN5zDu!qim~%WZOp*?W$YEj3vMdR&*d9D z3-hlvK6p_(WAbM*{B;=6vVi@f+~BQXiT#$`-=NxQM%+ve%Ta~DisJZ~w# zCvmN@;U#|aYVS*|Tn4|axketa{J47|g_iV>@KraJ=r@&I>@pU-td$rCU)HjW3tF{o zQy*hltM(_4A?D04Ub2MWDC6_!Vov_jrA5VjOkT`c7>kSG^Y;M)LbA zOSqdpr?7bb&%|hLPH|Cw>EaS`y*6iAkSQiC(y8i9mcEdBh#yE-G=FZ1m=bgBG}W?fri^5-OJrm;&*{>Y@O7w=EIFi6C4x9P1y0(9o$*){5U_~UQkk^FS}s;_`>|TON+)W zSv-Gf@v`EDCF2-fG;-?6z!j?+iQta^~{w zqc`VY%)T!9V|%4b3X7H*+wZcRG4A~F*TxPV-(|$)Yi3?LHalm0&wZk~k2mzYEor^~ zam*dt?zCKKF=)Au)42I-qq*9vBh{VNqDDA*6VEv59?L}@-=?xn{!M{R!A+q}qTE(a zDmQPGfr7@;Mt@_VG1%DF*xuOLXlt@JIht~t@|p^oyiL9)e^X0SYg1d3(0Rj+&IoR5 z-PE=zyeYD&bCZ>v?B$u|+2zi1S9xA}LAhS;Enih$R_-qkl(&?(mWRs2?D%3x({Wm{#qGE&)DX|1wV*{d?Eva6g`uByDMf-1erTeYgH ztjb>%sA{QdtqN6ztJeA{})xK(fb!~M^b+9^A z-BvA|PSjXy(rfHBj+*S6+!|MnyQZL~w8mTGt0}9gtqIfwYg%jCYQi;lQpX3Gx7fEh zwm7%Awgk6?wuHAtw%F?(_0D=%y}Mqo_tyLB{q=$RV11}QTpy_y4Yme*gQLOO;A(I; z=ndWmUxU9P(7*@cMH*dVr}=ZE9bnwH#&VXu+kv}|8>|a;9oyJ{uO-VP8m#1-9?dzM zymO*^SOdS7TnIyHRHVc^iF= zWzk{O!axc!l){Y>29s#AHKj)fRCbfI$;F^@H|b5Ka$tFy${1U!IUGNZ%B867xz44qPjjT|&B z(P0yc4xDy|j%AK8o$IX(&)A#!|_F+$|{Xk~=R@gb*{ z93PpC5IH{b7$I_etYU=7@zKHvk>jJC5hBM&IwK^z)>)fd>#EJGb=MZu@?`*mx08i+ L$0he$wweAP;H7ro delta 97382 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

    oTq;A3yS^Pv}U?`Z1?tmy#6VJ%*|rU1sveOoyhN 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 amdnrF)9ySyxhJvex(hm-yOqs)>i+>m3~qw} diff --git a/harness-override/override.properties b/harness-override/override.properties index ec2dce273..6b1223670 100644 --- a/harness-override/override.properties +++ b/harness-override/override.properties @@ -1,6 +1,6 @@ -app.exe.hashBefore=08568a9ece42e67685df6f20a0383e70248bb0e41c1ab2ec45883bbe001b6326 -app.exe.hashAfter=c399d6eb732faadb7c2850451fd569e4854f5ae7250c66051043aca9f47b22ca -app64.exe.hashBefore=ee790adfcf8436d7b128ddb43d6f6df1a8404df7612972b2bef7022b4f27bf69 -app64.exe.hashAfter=b50451b5b264504cb61998a8363cc7fbefe6db4d7df55c2b490cc293ede3bfe2 +app.exe.hashBefore=b82006e55944fa7d2eb4c42b15096013beeda8892886165ecc345a7393267a77 +app.exe.hashAfter=c5097cdfdef1a3e3cc1b55ba7651dae454241ed6cfe08ce212f45cacd7923a24 +app64.exe.hashBefore=360204bde78249a9fd386517727b1b7c7f79d9d2e42601b9f2ed93564962b622 +app64.exe.hashAfter=1f1c28cfd34f2e74aaf658da0660f3a3718651829c3ff65b53f9c053b756ea75 pre7_app.exe.hashBefore=f4ea42a1ec2572b2a65a6d9baef0dd1f7293980c44c5d031c5b2ea5752352e49 pre7_app.exe.hashAfter=fa8ae6457dad70a65cecb623ef0f60a86c92e856705eaeb2f22e43310fa9226f \ No newline at end of file diff --git a/nbi/antlib/nbi-ant-tasks.jar b/nbi/antlib/nbi-ant-tasks.jar index 9fde0d62faf093e4d3d7b6f1f5eeccc5eea1e9ca..d99ede7252effac71e3104d4a47313e028e08740 100644 GIT binary patch delta 878 zcmYk3T}V@59LCRcoM&UKm1ZH8ORuIu<)~N*lSC_G_OXj_hDn85Wb`Rvn59v7Z9B)a zdE5*e5!pplC~+DX_6dPO2|+WkkE`e+h`uiBrtLiEj1IiKKc4^pectCie>o$`8Ogmn zSY&ewf>VLGggxcWjGc(`z?0J#e%sZ#qH}}48IkoVgm%QVC zHCpUOn2F!+>bOl1@~bHqW`j1JLaF}Njxin|KkEX2gWg|`zf7T@TY+q+VXB8O;tOA> zZHd5Nn5A|p0uEAp62TgyS^JsmAgzs>6ViI3;AFJvD0Z;AD25QJGln+O^B7u4l`;;H zF3V^qeU{Nh3MptM-BECmR5paYq*FtdmMu`dYPqCU9A=*@jt){!9DJ%aAGgjnCa{my z8wtx<9L9cXUBgzE*9EH6EWhg-jCiIxes=uZ{cJAT56#`Z+ORa zErM1(%;axpZQLRVh1HS|vrU^#p*-{6ig6yFxa0tTLuQ~7f0-h4c^z_{x@jhK4d3`e zZD#}x#aU|CBj6yl=Mikuo3)?$4$|hRF(Iut3Qk6wjbbmWD`E(cI%8-fy^0}7s+Mt# zbVEiv>8p$`Qb55$(nAHuNfpC5L^?lgYPljcs-{a?#R>K~;^-jt#=)m*i*fU8a{`B1 zy_+zd#St8()-_^gc~>N_X8PUHaEg89qZlBmqX?6hCvloIl*C!muO#|NXHsVMOUk^% QKZcX6X2;BY>u=%QKNX}t#sB~S diff --git a/nbi/antlib/nbi-engine.jar b/nbi/antlib/nbi-engine.jar index 343a1a6d3384e2c141f44d655d148891edcb6b4c..b9b137bc59f4a961da73c09a3a92932fa7e508eb 100644 GIT binary patch delta 13891 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 XH4EG8*(|I^+gx@tfQebxJ#$$ delta 13891 zcmZ8ncR& zjXb?URJvf-7eV*SsypUzDCc2-+3|m_ z)mV&!Xk!Vp!{yxe#-bdIF$Qt45|_>!%W#TCh~}WO5Y9nY0hSh2^2u;Cy7d}&ZiqYquQlSsMWOfqLw%w;*KVXnx19&Uyx7MjEO z(h)N__SIaKQ}#$#|&vgNAZNlqgMKd?n<+ z&YzL1a0VA^0tem1Fd8^ObkCh`wQ|Y=Yjspoi-Y1y4O}Xnn{ShH7byxSuq5Rs*-7qg z#a;b(Eoe?w{Lwko^!i2Qe-R$W<&^m>;7dY);#Bei5wIWk^k+&|WRICuE z9Z2+WT}0bj!Pv-; zLrW8*P2|v{rEwb9uC1JGYy(uwbfbKfGq|-BB(om2R-~p5@7Ogvf)zKCoj)z;<|#rby}g^*w9{9G z_PnFD=$pc4J}3&fbS&jgUw{&g4^6pA8kBEfBT#AAh~%#CM?*aVy22*@wu$YEv`xiLyS95 zT#b87^XR)Q!1R))dy?K%r@SWDIK-0Bfx1OV0hF=$YI9;tS9ppp=YCy(*k&+1^yLlB zmIJk&6-;NrgBkHA*x}lgS|%un_NuwIF z8y^!{TRYygg2(giaK9B@k_?6qM{{#5{<$3_*}Q*#&>bZyy3b_}Ob zGrg0=dNK1Qan1e}#yn`_H@Tp4G*rp;qQ+ae>kSTy$THnchmpih0(Z!R!*;ZaG@W#^>lzPp) zxz^P@7`Adsck^$so9z9}Dnt`7z+4zoUS+U(yjAyS(!1n(twlB(T=c7e_Hwj&5Qz4e zXl?{K**V#q?7>Uqy3jlns8bi4@AIgh?Y#1$o@y{?!PHGNhiNNTo7=0LU((E#>g%S~ z_n!6f4%^O?eDxknvWr@}(eed0azE9w8rsCq!&1RT&&A^l>()(SxtK%0CrHKUq7Nie z+Zxe%g7*Z+^4IhKk#OEx46R5w{)^)3s753v21|!SZ7!^ z;3&+oxB|oJT+3@c6(Gy_nl440n;!ly{kAj}7^+lpCg|aA`(wy0>w#=Sgt5H_O z{hM7*?8p7xR#B`3ol&)_I0CQF973ei~0O4O^(b8oy6ivmK;ganEH(- zJ+JY1@2dqc8 z6vu$cZLP(L=tw*9C@_#Tu`IWDapv;Nj>EU5K#QiafxxcuZq!9leYD)pVnbf~XJN{) zT8yU|JD`J=5Srduw9%1@>aE3e6&rD$dy<>6F5^iPs9Raq9}XUEcQ>&Qq`piKaVx(M zjY?>}J&|$tq>BfNk(z%mae&e42=LpLjce=Dq`_j0cA~e~4+P`-ic7c&t-*s^4mTPL zkeYO{FJJjBZhLPJwvuP0`K_68*K}5`o&CkipyN}9I2YjTf#PO>iGxMx?IGPK4Qj~b z2MBcW12)bbNzh6T6^8=ns$t^q06Pp9*8_AL$!=b}G{24#=R#`hjulrx!e5OSlYv@i zvX~9j%UNOzp8JCFcaj}9q!2SNWBLM-P|;`VLy3`bgKg5IycEebCbuQ$KCoO_l~XtK*i> zW@V71(q4hAt-SrEN4)h;4NJ)IVh3w07dFi!=yyL!(y9kZ#o=)69wsdSU*rfW3;dp4 zTIvkcZ;{d>aA8TbbPpINm6z^ARr*zNGPqTf9s$%Zli?&>R6=>i>o%Rbc(c<-<^+mzFORk z<*UAa0g0edH6^PS)J7VP&bF1VL+568mbwG=Sr=&)K-x{}$*mchpO>#NUkG)}Mr#Mc z*+y#8Q@RU5RO%yTg5a*cQao>pj!Ty;Ey3FMwAC@EVzjt)DS=m$xcWai#=LVg(I80< zp_@WfSK2Q^b-&c+j^v|n? z#}==B&Ad)#m$y`!Q@|dT(tFE=w5#cIG3W;4VA;Q>&YX9s_pFJ`%iBz#zRt{^vAPRKZF_MDROEb>1qr?}`P@?4gEy#v#?%1oCGWYf&?8c3H^W0^mGTkZ);V(-b> z5X-Sg@-{vT8s5LUY#Nj7Vd3uz?7gsvcDO)Z1408|%Uj?k8u3Nm;m_0g$j2Jz%VEhF z>oQ*X9i6*eS;sb6PtX6WqJ3kmHZ8D%br*ao-;T4ogz7$T^KSFvMV7%(`W3%aIV{ug zc$H`gU92Coxc0c0*0$iu;@4K(g6-d1zrt=z{cP04@qu()d|l^3Jw-0cAG zucGwlA9%Mv-+Wn^)#$N45hLh^x@?>etgS===jtDnIDk*Yp5q~xj&8tisaH~zRFJIFQrQ62eV(DXLL(aoDzo4_X5MJ!As=j0 zPkJw_%Jhw-(JK`8#4=GSr0pH6GzU$ECo1^;*=w@m3)G*cC_cPphA!LxQx$LaqER(B zlf6=HnxYWxYPOQ-&8r{2LXr7VOsZ9z@5WLvguj!`ZmRmwGfC{mG-kEp2T?9rtIPyg zVZGuCo38$EN($F8qF8Xzb!^MNRM_W)KdKP5hnlhrt{1CzDG5-C7k@a@H|C&Xg!Y|y zO6dksygI9l=1EwU71**1bMC5sAnS^w&M6ix?}CEgH_?}sLSUorpGrkhpCenEBpg`B zl6Q|?9qZDXtCdo8Nek6VcQt3%kU#Gz+rZMS2a28l#z$LWwiV&e#M(hm+i2LCbpvdP zP#RjoHW6S@d7B0{ugBUp0-Rpm_QZv!cVr`56qwkYY-oXcJ+nw5uFT)Vw6{oILdyyZJ=%izHx@vsd)IIbVH;WI<>3EM?*KjO442~>|d zXWIqOx78on4grJw)Yb#wpy##`0N)ij;h@*HQ9%9h)|N(i=GzMPtI$!gc6%ncv)ji$ z19+4D>}deE`P*wi$v>B|ZvpD2XnQ8yxy#kCQ=p!Xw?6}a_tvo=gxk&JWcylRsE}gc z2n>%~*fXKzeTLe5Kzm#pVIK+%%`@%z+^}h^{V_PXaJqdFD2tnEzYKNqoo62l)Flh- z_-Yrn*nSOsu&lKo2Zjsl>?TS7m@OARtlTqtHqV|xT?VNVZF|f{w64F|9~))Iw{H0h zzbvL_^6UfXrlD*#eX`B0UEF4W0}XW|&yL%x_D*|m2;ld<_P3C(^=Iunz-F%tc2DTe z@we>PWPSe~K2U0Q6}E4uu>IGM=G?OPq-RF3%f_8Y_Szs9@zlN+2EvtB_W7WAh>2i> zR~JcTsN@J2G8Iy1FGQw+hDDylgLiO|UZh(rGgnTaX)){-p@X9(_hhP8?Yj?2-~;jQ z&|%TH7|*qT@MshL$ZOCxB7k%N8@GeVJD^@IMoz+^v^Ij^p>(zsxd2I76HU7F4cF;V z+gB3G7gLQ;QVv8M$-swctKXTXnjm8+(gqEQPedx?~C{ z+gOiO0Qk5*DFSg>8ne!ok(ZN~!aLoOOcDaY6pSH-!MuGuxx=aS)dcc{4}x10$y`_; z@e^w*y)TEKOLZ^BYV?M^LHBW-3qf?rVp2+5IF+=5GJT#w?&6JV9+_s=+w z$WS&=JL+;8lj{Th;k%d1q%*bK)<~f^)#w(k9Yi33} zrt!Yjx$LX`yp{CgI;lw`6`g-RLE|-2nZHhCYNQNDTQpLRqv?6XmzwhkKgnoV9*NX* zKwIaLXpR^Q|3y5VzMV1ul}C#4h0VLzkKx-%82_>9cKF4ygOC3Xou1uJ_;2&6#|~15 z^R?eWYH_r32dTl)lO4=S$8>Q>_|o{DB-F|5ODF6k5&XxkJ4rl8pLUWToMHLW_PdA& z|8ejx!v6|@GXH9F=J&e@|Ky-`c9Z6uwq!SH!O@r9q%B9A^O^BMdr-lqJ){X=5ciU1 z9Hs6hjXBz~m(=4Zc^?xioR1;2$VVGYUot4z$K2HeWXvfXojJtB_V2?yf80l!@&#ts zm-hGr(|PkK`*H6dtYoObm%8moYmN7lB)*{Y?cR@k@Ajh`jSrBPoaNU8q#Z{rd|z7p zAgT6`AICU<{No_{Quq*SZ{6mpLfUZJup^{3 zN6Zah`sxTt;6GM6ip+XS)*Qu@u!tJ*szx0n^*I`KjOEnvCj<2SF;*TOl{n6dqN5SV zk#_Dl;eVAtLr$Q7X(zDZR-7RGPeJJY6Xxbp!KNALM2F8{{{^3AvFRyJKZ_YUbrze;?;J+d{~YQ&cn-^0{5_w8wS07x&BFA4s+KNl08(($3OuBG1>@w-Z z(e2Bm4@b#YNH31^ub@Q9tE4BV&Am#xb7Z-OsQ)$OyMB#y=Bu^-Bz-yB_9to%yH193 z+Oq3p5=UijkTD!>y+H5nk)Hj%dU2kw(`n<)hn(-ECr`}?6tG+{tx$ltgjT1F|kBMCU z9{DUEFyWm(VEf&0(yDw!8`O#3d_;-lPq@1N6Izo#BT93kolfNW1yeBc3#RYR7aTOP ze`68mInkHDF&nMFVyd=&#grELhV3`?8aiE~~gI*R?mDG+R+Y8_N}x^|YbHD4UwjLwjvQ zeO>IxcggPbh2ZLM1Z@PUC_7WdRf~%XTWth;E##Wtxu`HQdbwg8=UvgO8g43#>t${# z9I1l43Io2gy9(p~m^;drErhf=g;W^a-wWYtHxHCO>Y>7cQN|NjXM3WxPo8M4rI!k~ zhwWY}jO&u#7||kcwyGb(-@Q>^XCD;?-UT0|#TG^_^9qB1vwd-~i!Ux7@>Su|66~kK z{cNlsmgA`tr4&I&wIayp?XSYAGtM7r_xz!kY0UscivuuRsVG|OR1{bD6-8fy1F<7> z0x=mc1JRdOL73e9Af%NDMl>^6g;PuoLB2sD*f@WMpr=iWp)Wg%sc^ED3&jG?3&mBT zIMTWo$E=-n(qh7}otK88W)hBQSU9%n{cvo~MkSE8-HD1t;OevpjN?NDYUxxG?H(zK zd}T{vlp9K^19>|aFO5-BCz8t`ZCDx1>7z0jQKLxIyfqTN3W!qShBMZQ{))oZts9LV zY>CDU`Ibf6__FF~?u!(ItNmiIU(UrKU)6GmR+htfUCJXGS{}FMi}LC?u5VBUtmX9z zn3uX0RXEf4S5${{zW7S&PaK`Dgf?PhF+-bUaWI5dM%g8m)lpm`xC(Cl=~YnnQx(i# z&#LIv?W(9Hr5d6m)o{GTRmZKm*@;5pPSxe>xipMJE~JSEvgfC?7B`^U%$?n$+?}; zgNj`cU38)WUC|epZs^O(ZfdsT_?m0hhUR`Z($pTRCvDOllX|4Pn#~Qj>VfD<4|HZ& zPjxC^we~`{CiKGK3iU>`w6{8$^Of#{Bk8w3n85J9>I%Mkwy!#$qx60#`>mfkfzu|X ze6K$<*29m`jz4ZxOg8Hi1uIZ*wDuNEJK=)@p(38$qGMqgZp zs3SOS`VdTD$)V~T{e5|D==($(Ih6g5`OZ-6jZVXm?fWowHW!`yqng7}nc>)VYlf?f zI4yC6I+vqIBd}w;jZ}Z;wC^LaBW8}mp0tm~nrDs13z;bsr$Blp&il(wRDBFif#qXx zH4{T>og80+@*0?-X`O5H|`jZdoW@GPO~{qBu>OVoiP!2?Tv|Oqwyp} z`zXiG1oD=0JM;m4lxq+J-WkOq^`R0+zTa2cbW! zgXzg~jD`?KFrzty(Z^^FVVq@jgD}LIyupmkX-w+O5Y|N2Qg#T7i`N+{7ATNc4AF47 z*&J^DWTqB~)sr1s^dQnjEl{i0wm3pWKDD?*7`Cktt0wofhCxK0wMIi2u5CFG#@4o6 N2t%zMYTw-U1^~%vSL^@) delta 263 zcmbO`fobjpCcXe~W)?061`Y;>vWoKXiG1oDr9e8~>T~);+fYWMiIc5Zz!DebAoOQ- zFg;n0(GbE2W;BN|`WUStjI)ex5QaFDH<+E=Z From 143fae13e88d5203576af355a30cd983be816768 Mon Sep 17 00:00:00 2001 From: Toni Helenius Date: Sun, 25 Feb 2024 13:09:32 +0200 Subject: [PATCH 022/130] Update copyright year --- .../org/netbeans/core/ui/Bundle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/branding/modules/org-netbeans-core.jar/org/netbeans/core/ui/Bundle.properties b/branding/modules/org-netbeans-core.jar/org/netbeans/core/ui/Bundle.properties index cd29774b6..cb2fddad2 100644 --- a/branding/modules/org-netbeans-core.jar/org/netbeans/core/ui/Bundle.properties +++ b/branding/modules/org-netbeans-core.jar/org/netbeans/core/ui/Bundle.properties @@ -1,3 +1,3 @@ -LBL_Copyright=

    Icons sets :

    Copyright © 2023 jMonkeyEngine.\n
    Please visit
    http://jmonkeyengine.org for more information.