diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml
new file mode 100644
index 00000000..55870dbc
--- /dev/null
+++ b/.github/workflows/python-package.yml
@@ -0,0 +1,58 @@
+---
+name: CI
+
+on:
+ push:
+ branches: ["main","github-actions"]
+ pull_request:
+ branches: ["main"]
+ workflow_dispatch:
+
+jobs:
+ tests:
+ name: "Python ${{ matrix.python-version }}"
+ runs-on: "ubuntu-latest"
+
+ strategy:
+ matrix:
+ # python-version: ["3.7", "3.8", "3.9"]
+ python-version: ["3.8", "3.9", "3.10"]
+
+ steps:
+ - uses: "actions/checkout@v2"
+ - uses: "actions/setup-python@v2"
+ - uses: "s-weigand/setup-conda@v1"
+ with:
+ python-version: "${{ matrix.python-version }}"
+
+ - name: Install solvers
+ run: sudo apt-get install -y glpk-utils coinor-cbc
+
+ - name: "Install dependencies"
+ run: |
+ set -xe
+ python -VV
+ python -m site
+ python -m pip install --upgrade pip setuptools wheel
+ python -m pip install --upgrade coverage[toml] virtualenv tox tox-gh-actions
+ conda install -c conda-forge ipopt
+ conda install -c conda-forge pyscipopt
+
+ - name: "Run tox targets with lean testing environment for ${{ matrix.python-version }}"
+ run: "tox -re leanenv"
+
+ - name: "Run tox targets for ${{ matrix.python-version }}"
+ run: "tox"
+
+ # - name: "Run tox notebooks targets for ${{ matrix.python-version }}"
+ # run: |
+ # shopt -s globstar
+ # tox -e notebooks docs/**/*.ipynb
+
+ - name: "Convert coverage"
+ run: "python -m coverage xml"
+
+ - name: "Upload coverage to Codecov"
+ uses: "codecov/codecov-action@v2"
+ with:
+ fail_ci_if_error: true
diff --git a/.gitignore b/.gitignore
index b6e47617..1b77d315 100644
--- a/.gitignore
+++ b/.gitignore
@@ -127,3 +127,4 @@ dmypy.json
# Pyre type checker
.pyre/
+.vscode/settings.json
diff --git a/docs/conf.py b/docs/conf.py
index a5e75db8..a85d176d 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -7,10 +7,10 @@
# All configuration values have a default; values that are commented out
# serve to show the default.
-import os
-import sys
import inspect
+import os
import shutil
+import sys
# -- Path setup --------------------------------------------------------------
@@ -77,7 +77,7 @@
"sphinx.ext.doctest",
"sphinx.ext.ifconfig",
"sphinx.ext.mathjax",
- "sphinx.ext.napoleon"
+ "sphinx.ext.napoleon",
]
# Add any paths that contain templates here, relative to this directory.
@@ -147,7 +147,7 @@
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
-#html_theme = "furo"
+# html_theme = "furo"
html_theme = "sphinx_rtd_theme"
# Theme options are theme-specific and customize the look and feel of a theme
diff --git a/docs/notebooks/data/build_sin_quadratic_csv.py b/docs/notebooks/data/build_sin_quadratic_csv.py
index c03f34dd..6506022a 100644
--- a/docs/notebooks/data/build_sin_quadratic_csv.py
+++ b/docs/notebooks/data/build_sin_quadratic_csv.py
@@ -1,15 +1,20 @@
+from random import random
+
import numpy as np
import pandas as pd
-from random import random
n_samples = 10000
w = 5
-x = np.linspace(-2,2,n_samples)
-df = pd.DataFrame(x, columns=['x'])
-df['y'] = np.sin(w*x) + x**2 + np.array([np.random.uniform()*0.1 for _ in range(n_samples)])
+x = np.linspace(-2, 2, n_samples)
+df = pd.DataFrame(x, columns=["x"])
+df["y"] = (
+ np.sin(w * x)
+ + x**2
+ + np.array([np.random.uniform() * 0.1 for _ in range(n_samples)])
+)
-plt.plot(df['x'],df['y'])
+plt.plot(df["x"], df["y"])
plt.show()
-df.to_csv("sin_quadratic.csv")
\ No newline at end of file
+df.to_csv("sin_quadratic.csv")
diff --git a/docs/notebooks/neuralnet/auto-thermal-reformer-relu.ipynb b/docs/notebooks/neuralnet/auto-thermal-reformer-relu.ipynb
index f286f23b..78c4e1a9 100644
--- a/docs/notebooks/neuralnet/auto-thermal-reformer-relu.ipynb
+++ b/docs/notebooks/neuralnet/auto-thermal-reformer-relu.ipynb
@@ -50,7 +50,7 @@
"- `pandas`: used for data import and management
\n",
"- `tensorflow`: the machine learning language we use to train our neural network\n",
"- `pyomo`: the algebraic modeling language for Python, it is used to define the optimization model passed to the solver\n",
- "- `onnx`: used to express trained neural network models\n",
+ "- `onnx`: used to express trained neural network models\n",
"- `omlt`: The package this notebook demonstates. OMLT can formulate machine learning models (such as neural networks) within Pyomo\n",
"\n",
"**NOTE:** This notebook also assumes you have a working MIP solver executable (e.g., CBC, Gurobi) to solve optimization problems in Pyomo. The open-source solver CBC is called by default."
@@ -64,7 +64,18 @@
"name": "#%%\n"
}
},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "WARNING: DEPRECATED: Declaring class 'OmltBlockData' derived from\n",
+ "'_BlockData'. The class '_BlockData' has been renamed to 'BlockData'.\n",
+ "(deprecated in 6.7.2) (called from\n",
+ "/home/codespace/.python/current/lib/python3.10/site-packages/omlt/block.py:33)\n"
+ ]
+ }
+ ],
"source": [
"import os\n",
"os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # suppress CUDA warnings from tensorflow\n",
@@ -167,7 +178,7 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 5,
"metadata": {
"pycharm": {
"name": "#%%\n"
@@ -199,7 +210,16 @@
"name": "#%%\n"
}
},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/home/codespace/.python/current/lib/python3.10/site-packages/keras/src/layers/core/dense.py:87: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.\n",
+ " super().__init__(activity_regularizer=activity_regularizer, **kwargs)\n"
+ ]
+ }
+ ],
"source": [
"# create our Keras Sequential model\n",
"nn = Sequential(name='reformer_relu_4_20')\n",
@@ -225,205 +245,205 @@
"output_type": "stream",
"text": [
"Epoch 1/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.8370\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - loss: 0.9315\n",
"Epoch 2/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.4563\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 0.6021 \n",
"Epoch 3/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.2696\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 920us/step - loss: 0.2147\n",
"Epoch 4/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.1227\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 962us/step - loss: 0.0938\n",
"Epoch 5/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0698\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 972us/step - loss: 0.0583\n",
"Epoch 6/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0440\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 0.0440\n",
"Epoch 7/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.0258\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 934us/step - loss: 0.0354\n",
"Epoch 8/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.0154\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 0.0265 \n",
"Epoch 9/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0103\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 939us/step - loss: 0.0208\n",
"Epoch 10/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.0076\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 0.0171\n",
"Epoch 11/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0061\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 948us/step - loss: 0.0149\n",
"Epoch 12/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.0051\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 917us/step - loss: 0.0121\n",
"Epoch 13/100\n",
- "88/88 [==============================] - 0s 5ms/step - loss: 0.0043\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 0.0102\n",
"Epoch 14/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.0038\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 879us/step - loss: 0.0084\n",
"Epoch 15/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.0035\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 930us/step - loss: 0.0074\n",
"Epoch 16/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0031\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 911us/step - loss: 0.0061\n",
"Epoch 17/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.0028\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 951us/step - loss: 0.0055\n",
"Epoch 18/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.0026\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 919us/step - loss: 0.0050\n",
"Epoch 19/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.0023\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 912us/step - loss: 0.0046\n",
"Epoch 20/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.0022\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 917us/step - loss: 0.0044\n",
"Epoch 21/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.0020\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 923us/step - loss: 0.0038\n",
"Epoch 22/100\n",
- "88/88 [==============================] - 0s 4ms/step - loss: 0.0018\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 938us/step - loss: 0.0037\n",
"Epoch 23/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.0017\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 931us/step - loss: 0.0033\n",
"Epoch 24/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.0016\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 940us/step - loss: 0.0030\n",
"Epoch 25/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.0015\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 894us/step - loss: 0.0028\n",
"Epoch 26/100\n",
- "88/88 [==============================] - ETA: 0s - loss: 0.001 - 0s 3ms/step - loss: 0.0014\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 940us/step - loss: 0.0027\n",
"Epoch 27/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.0013\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 0.0026\n",
"Epoch 28/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.0012\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 933us/step - loss: 0.0026\n",
"Epoch 29/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.0012\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 946us/step - loss: 0.0024\n",
"Epoch 30/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.0011\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 0.0022\n",
"Epoch 31/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.0010\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 944us/step - loss: 0.0022\n",
"Epoch 32/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 9.5515e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 953us/step - loss: 0.0021\n",
"Epoch 33/100\n",
- "88/88 [==============================] - 0s 4ms/step - loss: 9.2159e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 940us/step - loss: 0.0019\n",
"Epoch 34/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 8.7369e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 986us/step - loss: 0.0018\n",
"Epoch 35/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 8.0810e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 0.0017\n",
"Epoch 36/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 7.7885e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 969us/step - loss: 0.0017\n",
"Epoch 37/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 7.4054e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 956us/step - loss: 0.0016\n",
"Epoch 38/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 7.2014e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 945us/step - loss: 0.0015\n",
"Epoch 39/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 6.8355e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 945us/step - loss: 0.0014\n",
"Epoch 40/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 6.6854e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 0.0014 \n",
"Epoch 41/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 6.2248e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 0.0014\n",
"Epoch 42/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 6.2566e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 905us/step - loss: 0.0014\n",
"Epoch 43/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 5.8445e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 0.0013 \n",
"Epoch 44/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 5.5951e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 952us/step - loss: 0.0013\n",
"Epoch 45/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 5.3668e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 914us/step - loss: 0.0013\n",
"Epoch 46/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 5.3497e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 951us/step - loss: 0.0012\n",
"Epoch 47/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 5.2125e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 953us/step - loss: 0.0012\n",
"Epoch 48/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 4.9190e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 934us/step - loss: 0.0011 \n",
"Epoch 49/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 4.7993e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 0.0011 \n",
"Epoch 50/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 4.6690e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 961us/step - loss: 0.0011\n",
"Epoch 51/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 4.5492e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 0.0011 \n",
"Epoch 52/100\n",
- "88/88 [==============================] - 0s 4ms/step - loss: 4.3848e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 998us/step - loss: 0.0010 \n",
"Epoch 53/100\n",
- "88/88 [==============================] - 0s 4ms/step - loss: 4.4862e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - loss: 0.0010\n",
"Epoch 54/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 4.3271e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 0.0010 \n",
"Epoch 55/100\n",
- "88/88 [==============================] - 0s 4ms/step - loss: 3.9621e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 933us/step - loss: 0.0010\n",
"Epoch 56/100\n",
- "88/88 [==============================] - 0s 4ms/step - loss: 3.7816e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 943us/step - loss: 9.7793e-04\n",
"Epoch 57/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 3.6440e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 9.5539e-04 \n",
"Epoch 58/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 3.6122e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 951us/step - loss: 9.8643e-04\n",
"Epoch 59/100\n",
- "88/88 [==============================] - 0s 4ms/step - loss: 3.4262e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 964us/step - loss: 9.5467e-04\n",
"Epoch 60/100\n",
- "88/88 [==============================] - 0s 4ms/step - loss: 3.3973e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 9.5569e-04\n",
"Epoch 61/100\n",
- "88/88 [==============================] - 0s 4ms/step - loss: 3.4042e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 937us/step - loss: 8.9545e-04\n",
"Epoch 62/100\n",
- "88/88 [==============================] - 0s 4ms/step - loss: 3.4183e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 959us/step - loss: 8.9153e-04\n",
"Epoch 63/100\n",
- "88/88 [==============================] - 0s 4ms/step - loss: 3.0932e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 991us/step - loss: 8.8198e-04\n",
"Epoch 64/100\n",
- "88/88 [==============================] - 0s 4ms/step - loss: 3.1305e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 953us/step - loss: 8.7606e-04\n",
"Epoch 65/100\n",
- "88/88 [==============================] - 0s 4ms/step - loss: 2.9894e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 954us/step - loss: 8.2828e-04\n",
"Epoch 66/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 2.9626e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 8.4195e-04\n",
"Epoch 67/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 2.8854e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 954us/step - loss: 8.8572e-04\n",
"Epoch 68/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 2.8529e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 7.8402e-04 \n",
"Epoch 69/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 2.6655e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 993us/step - loss: 7.8691e-04\n",
"Epoch 70/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 2.6622e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 919us/step - loss: 8.2283e-04\n",
"Epoch 71/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 2.7927e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 945us/step - loss: 7.8774e-04\n",
"Epoch 72/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 2.5607e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 937us/step - loss: 7.3661e-04\n",
"Epoch 73/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 2.7671e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 940us/step - loss: 7.9336e-04\n",
"Epoch 74/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 2.5296e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 993us/step - loss: 7.3721e-04\n",
"Epoch 75/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 2.5474e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 942us/step - loss: 7.4315e-04\n",
"Epoch 76/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 2.3464e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 7.2666e-04\n",
"Epoch 77/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 2.4455e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1000us/step - loss: 7.2654e-04\n",
"Epoch 78/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 2.2040e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 6.9702e-04\n",
"Epoch 79/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 2.1218e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 6.8081e-04\n",
"Epoch 80/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 2.5060e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 7.0167e-04\n",
"Epoch 81/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 2.2401e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 923us/step - loss: 7.1075e-04\n",
"Epoch 82/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 2.1947e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 947us/step - loss: 6.6085e-04\n",
"Epoch 83/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 2.0758e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 912us/step - loss: 6.5808e-04\n",
"Epoch 84/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 2.0181e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 896us/step - loss: 6.1667e-04\n",
"Epoch 85/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 1.9040e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 918us/step - loss: 6.0925e-04\n",
"Epoch 86/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 1.9628e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 921us/step - loss: 6.3800e-04\n",
"Epoch 87/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 2.1624e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 6.2445e-04 \n",
"Epoch 88/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 2.2154e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 993us/step - loss: 6.2050e-04\n",
"Epoch 89/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 1.9279e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 5.9191e-04\n",
"Epoch 90/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 2.0530e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 928us/step - loss: 6.0064e-04\n",
"Epoch 91/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 1.8791e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 950us/step - loss: 5.6989e-04\n",
"Epoch 92/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 1.9119e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 954us/step - loss: 6.0071e-04\n",
"Epoch 93/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 1.7840e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 938us/step - loss: 5.7475e-04\n",
"Epoch 94/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 1.8819e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 927us/step - loss: 5.8762e-04\n",
"Epoch 95/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 1.9525e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 5.9248e-04\n",
"Epoch 96/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 2.0329e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 962us/step - loss: 5.6154e-04\n",
"Epoch 97/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 1.7023e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 5.5977e-04\n",
"Epoch 98/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 1.9264e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - loss: 5.5252e-04\n",
"Epoch 99/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 1.7761e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 948us/step - loss: 5.4744e-04\n",
"Epoch 100/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 1.9651e-04\n"
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 933us/step - loss: 5.6862e-04\n"
]
}
],
@@ -443,20 +463,12 @@
"name": "#%%\n"
}
},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "INFO:tensorflow:Assets written to: reformer_nn_relu/assets\n"
- ]
- }
- ],
+ "outputs": [],
"source": [
"# save the model to disk\n",
"# While not technically necessary, this shows how we can load a previously saved model into\n",
"# our optimization formulation)\n",
- "nn.save('reformer_nn_relu')"
+ "nn.save('reformer_nn_relu.keras')"
]
},
{
@@ -501,7 +513,7 @@
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 13,
"metadata": {
"pycharm": {
"name": "#%%\n"
@@ -510,7 +522,7 @@
"outputs": [],
"source": [
"# load the Keras model\n",
- "nn_reformer = keras.models.load_model('reformer_nn_relu', compile=False)\n",
+ "nn_reformer = keras.models.load_model('reformer_nn_relu.keras', compile=False)\n",
"\n",
"# Note: The neural network is in the scaled space. We want access to the\n",
"# variables in the unscaled space. Therefore, we need to tell OMLT about the\n",
@@ -533,7 +545,7 @@
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": 14,
"metadata": {
"pycharm": {
"name": "#%%\n"
@@ -550,7 +562,7 @@
},
{
"cell_type": "code",
- "execution_count": 14,
+ "execution_count": 15,
"metadata": {
"pycharm": {
"name": "#%%\n"
@@ -565,7 +577,7 @@
},
{
"cell_type": "code",
- "execution_count": 15,
+ "execution_count": 16,
"metadata": {
"pycharm": {
"name": "#%%\n"
@@ -577,8 +589,8 @@
"output_type": "stream",
"text": [
"Bypass Fraction: 0.1\n",
- "NG Steam Ratio: 1.1186717\n",
- "H2 Concentration: 0.33157189\n",
+ "NG Steam Ratio: 1.1404918\n",
+ "H2 Concentration: 0.33255362\n",
"N2 Concentration: 0.34\n"
]
}
@@ -607,7 +619,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.8.12"
+ "version": "3.10.13"
}
},
"nbformat": 4,
diff --git a/docs/notebooks/neuralnet/auto-thermal-reformer.ipynb b/docs/notebooks/neuralnet/auto-thermal-reformer.ipynb
index 8e65296b..650f5700 100644
--- a/docs/notebooks/neuralnet/auto-thermal-reformer.ipynb
+++ b/docs/notebooks/neuralnet/auto-thermal-reformer.ipynb
@@ -50,7 +50,7 @@
"- `pandas`: used for data import and management
\n",
"- `tensorflow`: the machine learning language we use to train our neural network\n",
"- `pyomo`: the algebraic modeling language for Python, it is used to define the optimization model passed to the solver\n",
- "- `onnx`: used to express trained neural network models\n",
+ "- `onnx`: used to express trained neural network models\n",
"- `omlt`: The package this notebook demonstates. OMLT can formulate machine learning models (such as neural networks) within Pyomo\n",
"\n",
"**NOTE:** This notebook also assumes you have a working MIP solver executable (e.g., CBC, Gurobi) to solve optimization problems in Pyomo. The open-source solver IPOPT is called by default."
@@ -58,7 +58,7 @@
},
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": 22,
"metadata": {
"pycharm": {
"name": "#%%\n"
@@ -84,7 +84,7 @@
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 23,
"metadata": {
"pycharm": {
"name": "#%%\n"
@@ -149,7 +149,7 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 24,
"metadata": {
"pycharm": {
"name": "#%%\n"
@@ -167,7 +167,7 @@
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 25,
"metadata": {
"pycharm": {
"name": "#%%\n"
@@ -193,13 +193,22 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 26,
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/home/codespace/.python/current/lib/python3.10/site-packages/keras/src/layers/core/dense.py:87: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.\n",
+ " super().__init__(activity_regularizer=activity_regularizer, **kwargs)\n"
+ ]
+ }
+ ],
"source": [
"# create our Keras Sequential model\n",
"nn = Sequential(name='reformer_sigmoid_4_20')\n",
@@ -213,7 +222,7 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 27,
"metadata": {
"pycharm": {
"name": "#%%\n"
@@ -225,205 +234,205 @@
"output_type": "stream",
"text": [
"Epoch 1/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 1.0341\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 988us/step - loss: 1.1144\n",
"Epoch 2/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.9957\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 914us/step - loss: 0.9900\n",
"Epoch 3/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.9706\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 0.9766\n",
"Epoch 4/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.7485\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 0.8390 \n",
"Epoch 5/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.2584\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 930us/step - loss: 0.2823\n",
"Epoch 6/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.1501\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 0.1576 \n",
"Epoch 7/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.1265\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 891us/step - loss: 0.1403\n",
"Epoch 8/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.1111\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 933us/step - loss: 0.1267\n",
"Epoch 9/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.0998\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 898us/step - loss: 0.1145\n",
"Epoch 10/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0907\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 886us/step - loss: 0.1074\n",
"Epoch 11/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0828\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 0.1041\n",
"Epoch 12/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0741\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 934us/step - loss: 0.1006\n",
"Epoch 13/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0640\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 982us/step - loss: 0.0973\n",
"Epoch 14/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0511\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 909us/step - loss: 0.0939\n",
"Epoch 15/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0374\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 870us/step - loss: 0.0898\n",
"Epoch 16/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0266\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 949us/step - loss: 0.0862\n",
"Epoch 17/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0196\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - loss: 0.0843\n",
"Epoch 18/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0153\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - loss: 0.0815\n",
"Epoch 19/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0124\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - loss: 0.0789\n",
"Epoch 20/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0102\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - loss: 0.0765\n",
"Epoch 21/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0086\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - loss: 0.0726\n",
"Epoch 22/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0072\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 4ms/step - loss: 0.0720\n",
"Epoch 23/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0062\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - loss: 0.0754\n",
"Epoch 24/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0054\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - loss: 0.0705\n",
"Epoch 25/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0047\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - loss: 0.0714\n",
"Epoch 26/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.0041\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - loss: 0.0713\n",
"Epoch 27/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.0037\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - loss: 0.0709\n",
"Epoch 28/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.0033\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - loss: 0.0679\n",
"Epoch 29/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0029\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - loss: 0.0686\n",
"Epoch 30/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0027\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 3ms/step - loss: 0.0672\n",
"Epoch 31/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0024\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - loss: 0.0657\n",
"Epoch 32/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.0022\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - loss: 0.0654\n",
"Epoch 33/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.0020\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 3ms/step - loss: 0.0631\n",
"Epoch 34/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0019\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - loss: 0.0578\n",
"Epoch 35/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0017\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 3ms/step - loss: 0.0485\n",
"Epoch 36/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0016\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - loss: 0.0336\n",
"Epoch 37/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0016\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - loss: 0.0203\n",
"Epoch 38/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0014\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - loss: 0.0147\n",
"Epoch 39/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0014\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - loss: 0.0113\n",
"Epoch 40/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0013\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 0.0086 \n",
"Epoch 41/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0012\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 879us/step - loss: 0.0071\n",
"Epoch 42/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 0.0011\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 908us/step - loss: 0.0059\n",
"Epoch 43/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.0011\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 945us/step - loss: 0.0052\n",
"Epoch 44/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 0.0010\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 883us/step - loss: 0.0042\n",
"Epoch 45/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 9.7936e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 886us/step - loss: 0.0037\n",
"Epoch 46/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 9.2880e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 901us/step - loss: 0.0035\n",
"Epoch 47/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 9.0375e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 886us/step - loss: 0.0030\n",
"Epoch 48/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 8.6779e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 912us/step - loss: 0.0027\n",
"Epoch 49/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 8.5856e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 891us/step - loss: 0.0027\n",
"Epoch 50/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 8.0145e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 913us/step - loss: 0.0023\n",
"Epoch 51/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 8.0115e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 0.0021 \n",
"Epoch 52/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 7.9738e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 942us/step - loss: 0.0020\n",
"Epoch 53/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 6.9619e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 913us/step - loss: 0.0019\n",
"Epoch 54/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 6.7135e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 963us/step - loss: 0.0017\n",
"Epoch 55/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 6.5336e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 903us/step - loss: 0.0016\n",
"Epoch 56/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 6.6119e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 966us/step - loss: 0.0015\n",
"Epoch 57/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 6.0447e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 919us/step - loss: 0.0015\n",
"Epoch 58/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 5.9642e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 890us/step - loss: 0.0014\n",
"Epoch 59/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 5.8340e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 910us/step - loss: 0.0012\n",
"Epoch 60/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 5.9287e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 931us/step - loss: 0.0012\n",
"Epoch 61/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 5.4710e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 871us/step - loss: 0.0012 \n",
"Epoch 62/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 5.1789e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 946us/step - loss: 0.0011 \n",
"Epoch 63/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 4.9301e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 919us/step - loss: 0.0011 \n",
"Epoch 64/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 4.8124e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 933us/step - loss: 9.5829e-04\n",
"Epoch 65/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 4.6044e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 910us/step - loss: 9.6994e-04\n",
"Epoch 66/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 4.3224e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 906us/step - loss: 9.0896e-04\n",
"Epoch 67/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 4.2608e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 906us/step - loss: 9.1381e-04\n",
"Epoch 68/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 4.0868e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 896us/step - loss: 8.5913e-04\n",
"Epoch 69/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 3.9811e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 994us/step - loss: 9.0463e-04\n",
"Epoch 70/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 3.9089e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 8.8907e-04\n",
"Epoch 71/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 4.0310e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 925us/step - loss: 7.9675e-04\n",
"Epoch 72/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 3.6990e-04A: 0s - loss: 3.5289e-0\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 7.2875e-04\n",
"Epoch 73/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 3.7645e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 900us/step - loss: 7.3307e-04\n",
"Epoch 74/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 3.2927e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 6.3824e-04\n",
"Epoch 75/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 3.3896e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 6.3988e-04 \n",
"Epoch 76/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 3.3238e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 6.4647e-04\n",
"Epoch 77/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 3.2586e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 898us/step - loss: 5.9410e-04\n",
"Epoch 78/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 3.0942e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 889us/step - loss: 5.9625e-04\n",
"Epoch 79/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 2.8561e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 931us/step - loss: 5.2871e-04\n",
"Epoch 80/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 2.8161e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 5.6454e-04\n",
"Epoch 81/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 2.6297e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 941us/step - loss: 5.6161e-04\n",
"Epoch 82/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 2.6181e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 890us/step - loss: 5.1684e-04\n",
"Epoch 83/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 2.6130e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 935us/step - loss: 5.1329e-04\n",
"Epoch 84/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 2.4854e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 881us/step - loss: 4.4305e-04\n",
"Epoch 85/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 2.6028e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 902us/step - loss: 4.8435e-04\n",
"Epoch 86/100\n",
- "88/88 [==============================] - 0s 4ms/step - loss: 2.3970e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 922us/step - loss: 4.2593e-04\n",
"Epoch 87/100\n",
- "88/88 [==============================] - 1s 6ms/step - loss: 2.2274e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 4.2300e-04 \n",
"Epoch 88/100\n",
- "88/88 [==============================] - 0s 5ms/step - loss: 2.2896e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 4.4135e-04\n",
"Epoch 89/100\n",
- "88/88 [==============================] - 0s 5ms/step - loss: 2.3039e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 922us/step - loss: 4.1130e-04\n",
"Epoch 90/100\n",
- "88/88 [==============================] - 0s 5ms/step - loss: 2.4000e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 920us/step - loss: 3.9683e-04\n",
"Epoch 91/100\n",
- "88/88 [==============================] - 0s 5ms/step - loss: 1.8690e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 904us/step - loss: 3.9107e-04\n",
"Epoch 92/100\n",
- "88/88 [==============================] - 0s 5ms/step - loss: 1.9249e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 896us/step - loss: 3.5425e-04\n",
"Epoch 93/100\n",
- "88/88 [==============================] - 0s 5ms/step - loss: 2.0807e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 897us/step - loss: 3.7474e-04\n",
"Epoch 94/100\n",
- "88/88 [==============================] - 1s 6ms/step - loss: 1.8234e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 905us/step - loss: 3.5553e-04\n",
"Epoch 95/100\n",
- "88/88 [==============================] - 1s 7ms/step - loss: 1.8770e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 942us/step - loss: 3.5410e-04\n",
"Epoch 96/100\n",
- "88/88 [==============================] - 1s 6ms/step - loss: 1.6957e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 3.3268e-04 \n",
"Epoch 97/100\n",
- "88/88 [==============================] - 0s 5ms/step - loss: 1.6235e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 878us/step - loss: 3.1562e-04\n",
"Epoch 98/100\n",
- "88/88 [==============================] - 0s 5ms/step - loss: 1.7383e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 3.0199e-04\n",
"Epoch 99/100\n",
- "88/88 [==============================] - 0s 2ms/step - loss: 1.7169e-04\n",
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 907us/step - loss: 2.9183e-04\n",
"Epoch 100/100\n",
- "88/88 [==============================] - 0s 3ms/step - loss: 1.6411e-04\n"
+ "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 907us/step - loss: 2.9824e-04\n"
]
}
],
@@ -437,26 +446,18 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 28,
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "INFO:tensorflow:Assets written to: reformer_nn/assets\n"
- ]
- }
- ],
+ "outputs": [],
"source": [
"# save the model to disk\n",
"# While not technically necessary, this shows how we can load a previously saved model into\n",
"# our optimization formulation)\n",
- "nn.save('reformer_nn')"
+ "nn.save('reformer_nn.keras')"
]
},
{
@@ -473,7 +474,7 @@
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": 29,
"metadata": {
"pycharm": {
"name": "#%%\n"
@@ -487,7 +488,7 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 30,
"metadata": {
"pycharm": {
"name": "#%%\n"
@@ -501,7 +502,7 @@
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 31,
"metadata": {
"pycharm": {
"name": "#%%\n"
@@ -510,7 +511,7 @@
"outputs": [],
"source": [
"# load the Keras model\n",
- "nn_reformer = keras.models.load_model('reformer_nn', compile=False)\n",
+ "nn_reformer = keras.models.load_model('reformer_nn.keras', compile=False)\n",
"\n",
"# Note: The neural network is in the scaled space. We want access to the\n",
"# variables in the unscaled space. Therefore, we need to tell OMLT about the\n",
@@ -533,7 +534,7 @@
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": 32,
"metadata": {
"pycharm": {
"name": "#%%\n"
@@ -550,7 +551,7 @@
},
{
"cell_type": "code",
- "execution_count": 14,
+ "execution_count": 33,
"metadata": {
"pycharm": {
"name": "#%%\n"
@@ -561,7 +562,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "Ipopt 3.13.3: \n",
+ "Ipopt 3.14.16: \n",
"\n",
"******************************************************************************\n",
"This program contains Ipopt, a library for large-scale nonlinear optimization.\n",
@@ -569,7 +570,7 @@
" For more information visit https://github.com/coin-or/Ipopt\n",
"******************************************************************************\n",
"\n",
- "This is Ipopt version 3.13.3, running with linear solver ma27.\n",
+ "This is Ipopt version 3.14.16, running with linear solver MUMPS 5.7.1.\n",
"\n",
"Number of nonzeros in equality constraint Jacobian...: 1812\n",
"Number of nonzeros in inequality constraint Jacobian.: 1\n",
@@ -586,80 +587,101 @@
" inequality constraints with only upper bounds: 1\n",
"\n",
"iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n",
- " 0 -0.0000000e+00 2.32e+04 3.68e-04 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n",
- " 1 -2.6030116e-03 2.29e+04 1.06e+00 -1.0 7.05e+03 - 5.34e-03 1.11e-02f 1\n",
- " 2 -6.0669949e-03 2.27e+04 1.96e+00 -1.0 1.59e+04 - 1.18e-02 9.02e-03f 1\n",
- " 3 -6.2596751e-03 2.27e+04 4.65e+01 -1.0 2.84e+04 - 6.23e-03 4.77e-04h 1\n",
- " 4 -6.2616127e-03 2.27e+04 6.65e+03 -1.0 1.47e+04 - 4.48e-03 2.90e-05h 1\n",
- " 5 -6.2581094e-03 2.27e+04 6.22e+05 -1.0 2.50e+04 - 3.05e-03 3.23e-05h 1\n",
- " 6r-6.2581094e-03 2.27e+04 9.99e+02 2.5 0.00e+00 - 0.00e+00 1.97e-07R 2\n",
- " 7r-5.9558091e-03 2.20e+04 2.14e+03 2.5 2.66e+04 - 1.15e-02 3.11e-04f 1\n",
- " 8r-7.6598374e-03 2.09e+02 2.07e+03 1.1 8.43e+04 - 4.26e-04 3.31e-03f 1\n",
- " 9 -7.7647208e-03 2.09e+02 1.36e+00 -1.0 9.30e+03 - 6.42e-04 3.06e-04h 1\n",
+ " 0 -0.0000000e+00 2.32e+04 3.10e-04 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n",
+ " 1 -3.1527294e-03 2.29e+04 1.04e+00 -1.0 1.12e+03 - 6.41e-03 1.32e-02f 1\n",
+ " 2 -6.2152944e-03 2.27e+04 5.37e+00 -1.0 2.29e+04 - 1.61e-02 8.91e-03f 1\n",
+ " 3 -6.2618863e-03 2.27e+04 2.13e+02 -1.0 7.53e+03 - 1.53e-02 2.94e-04h 1\n",
+ " 4 -6.2980596e-03 2.26e+04 9.10e+02 -1.0 1.95e+01 - 2.38e-03 4.06e-04h 1\n",
+ " 5 -6.3144679e-03 2.26e+04 6.08e+04 -1.0 2.09e+04 - 2.93e-03 4.46e-05h 1\n",
+ " 6 -6.3198672e-03 2.26e+04 1.26e+07 -1.0 2.32e+04 - 2.81e-03 1.37e-05h 1\n",
+ " 7r-6.3198672e-03 2.26e+04 9.99e+02 2.5 0.00e+00 - 0.00e+00 7.31e-08R 2\n",
+ " 8r-6.0332788e-03 2.19e+04 1.92e+03 2.5 3.55e+04 - 1.19e-02 2.52e-04f 1\n",
+ " 9r-8.0808049e-03 2.08e+02 1.76e+03 1.1 5.87e+04 - 7.19e-04 4.73e-03f 1\n",
+ "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n",
+ " 10 -8.1576012e-03 2.08e+02 4.95e+00 -1.0 1.79e+04 - 1.23e-03 2.37e-04h 1\n",
+ " 11 -8.1674126e-03 2.08e+02 2.15e+03 -1.0 4.50e+03 - 1.60e-02 6.30e-05h 1\n",
+ " 12 -8.1719233e-03 2.08e+02 1.11e+06 -1.0 1.83e+04 - 6.31e-03 1.19e-05h 1\n",
+ " 13r-8.1719233e-03 2.08e+02 9.99e+02 0.4 0.00e+00 - 0.00e+00 2.36e-07R 2\n",
+ " 14r-3.6071845e-02 1.98e+00 1.00e+03 0.4 5.28e+03 - 1.04e-04 1.00e-03f 1\n",
+ " 15r-3.6071845e-02 1.98e+00 9.99e+02 0.3 0.00e+00 - 0.00e+00 3.75e-07R 5\n",
+ " 16r-6.1605099e-02 1.96e+00 9.98e+02 0.3 6.30e+03 - 1.02e-03 8.08e-04f 1\n",
+ " 17r-1.2559031e-01 1.90e+00 9.97e+02 0.3 6.27e+03 - 7.32e-04 2.51e-03f 1\n",
+ " 18 -1.2871206e-01 1.85e+00 9.78e-01 -1.0 1.02e+04 - 2.09e-02 2.20e-02f 1\n",
+ " 19 -1.3332528e-01 1.81e+00 1.24e+01 -1.0 2.11e+04 - 6.42e-02 2.50e-02f 1\n",
+ "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n",
+ " 20 -1.3461035e-01 1.79e+00 5.73e+01 -1.0 1.41e+04 - 6.22e-02 1.16e-02h 1\n",
+ " 21 -1.3467457e-01 1.79e+00 3.24e+03 -1.0 1.34e+04 - 4.47e-02 4.13e-04h 1\n",
+ " 22 -1.3484205e-01 1.78e+00 8.30e+04 -1.0 4.52e+03 - 2.40e-02 9.45e-04h 1\n",
+ " 23 -1.3484927e-01 1.78e+00 2.78e+07 -1.0 5.88e+02 - 1.33e-02 4.05e-05h 1\n",
+ " 24r-1.3484927e-01 1.78e+00 9.99e+02 0.2 0.00e+00 - 0.00e+00 2.10e-07R 2\n",
+ " 25r-1.4779559e-01 1.76e+00 9.98e+02 0.2 1.43e+05 - 1.55e-03 9.11e-04f 1\n",
+ " 26r-1.9083218e-01 1.67e+00 9.94e+02 0.2 1.43e+05 - 3.50e-03 3.83e-03f 1\n",
+ " 27 -2.3722606e-01 7.32e-01 4.81e+03 -1.0 1.68e+04 - 1.29e-02 5.61e-01f 1\n",
+ " 28 -2.3903999e-01 4.88e-01 2.89e+03 -1.0 1.73e+00 2.0 1.36e-02 3.33e-01f 1\n",
+ " 29 -2.3894926e-01 4.79e-01 2.87e+03 -1.0 1.29e+00 1.5 3.00e-01 2.03e-02h 1\n",
"iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n",
- " 10 -7.7729541e-03 2.09e+02 2.65e+03 -1.0 1.75e+04 - 2.10e-02 3.24e-05h 1\n",
- " 11 -7.7716836e-03 2.09e+02 3.58e+05 -1.0 2.09e+04 - 1.54e-03 1.11e-05h 1\n",
- " 12r-7.7716836e-03 2.09e+02 9.99e+02 0.4 0.00e+00 - 0.00e+00 2.22e-07R 2\n",
- " 13r-2.5415884e-02 8.08e+01 9.99e+02 0.4 2.65e+03 - 2.04e-04 6.20e-04f 1\n",
- " 14r-2.5415884e-02 8.08e+01 9.99e+02 0.4 0.00e+00 - 0.00e+00 2.54e-07R 5\n",
- " 15r-3.9234936e-02 6.38e+01 9.99e+02 0.4 5.96e+02 - 6.52e-04 4.72e-04f 1\n",
- " 16r-8.3935109e-02 2.62e+01 9.97e+02 0.4 4.70e+02 - 5.99e-04 1.71e-03f 1\n",
- " 17r-1.3934552e-01 5.58e+00 9.95e+02 0.4 2.45e+02 - 1.67e-03 2.76e-03f 1\n",
- " 18 -1.4363902e-01 5.40e+00 3.72e+00 -1.0 3.92e+03 - 6.89e-03 3.28e-02f 1\n",
- " 19 -1.6446259e-01 4.80e+00 8.56e+00 -1.0 1.60e+04 - 8.07e-02 1.11e-01f 1\n",
+ " 30 -2.3851472e-01 4.74e-01 5.90e+04 -1.0 3.67e+00 1.0 3.11e-01 1.02e-02h 1\n",
+ " 31 -2.3168898e-01 3.98e-01 4.74e+04 -1.0 3.70e+00 0.6 4.40e-01 1.59e-01h 1\n",
+ " 32 -2.2358201e-01 1.15e-01 2.59e+04 -1.0 3.45e+02 - 4.72e-01 7.11e-01h 1\n",
+ " 33 -2.1064898e-01 7.56e-02 1.41e+04 -1.0 2.37e+03 - 4.40e-01 3.44e-01h 1\n",
+ " 34 -2.1047547e-01 7.53e-02 1.38e+04 -1.0 2.38e+03 - 1.08e-02 4.64e-03h 1\n",
+ " 35 -2.0536031e-01 5.73e-02 1.98e+04 -1.0 2.26e+03 - 2.46e-02 2.39e-01f 1\n",
+ " 36 -2.0531335e-01 5.70e-02 1.83e+04 -1.0 2.21e+03 - 2.35e-02 3.90e-03h 1\n",
+ " 37 -2.0667730e-01 7.73e-02 2.31e+04 -1.0 2.13e+03 - 7.16e-02 4.18e-01f 1\n",
+ " 38 -2.0667907e-01 7.73e-02 5.57e+03 -1.0 1.36e+03 - 2.17e-01 2.13e-04h 6\n",
+ " 39 -2.0674307e-01 7.64e-02 6.46e+03 -1.0 8.11e+01 - 1.94e-03 1.25e-02f 2\n",
"iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n",
- " 20 -1.7215140e-01 4.48e+00 7.06e+01 -1.0 6.18e+03 - 2.94e-01 6.74e-02h 1\n",
- " 21 -1.7784726e-01 4.23e+00 6.31e+02 -1.0 9.08e+03 - 4.03e-01 5.47e-02h 1\n",
- " 22 -1.8642388e-01 3.85e+00 8.97e+02 -1.0 7.01e+03 - 3.33e-01 9.04e-02h 1\n",
- " 23 -2.3017104e-01 2.09e+00 8.13e+04 -1.0 1.22e+04 - 2.45e-03 4.58e-01f 1\n",
- " 24 -2.7788252e-01 3.25e-02 1.62e+04 -1.0 8.46e+03 - 2.03e-03 1.00e+00f 1\n",
- " 25 -2.7625877e-01 3.29e-04 1.28e+02 -1.0 9.08e-02 2.0 8.50e-01 1.00e+00f 1\n",
- " 26 -2.7633917e-01 7.21e-07 1.04e-01 -1.0 1.59e+01 - 1.00e+00 1.00e+00h 1\n",
- " 27 -2.7678608e-01 8.97e-06 2.15e-03 -2.5 7.21e+01 - 1.00e+00 1.00e+00h 1\n",
- " 28 -2.8773008e-01 4.94e-03 2.06e-02 -3.8 1.77e+03 - 7.86e-01 1.00e+00h 1\n",
- " 29 -3.0628413e-01 1.68e-02 6.62e-04 -3.8 3.63e+03 - 9.95e-01 1.00e+00h 1\n",
+ " 40 -2.1130252e-01 3.51e-03 1.28e+03 -1.0 7.01e+02 - 1.41e-01 1.00e+00f 1\n",
+ " 41 -2.1107713e-01 3.05e-03 1.20e+02 -1.0 1.69e+02 - 4.83e-01 1.00e+00f 1\n",
+ " 42 -2.1118142e-01 4.58e-03 3.62e+01 -1.0 2.69e+02 - 7.13e-01 1.00e+00f 1\n",
+ " 43 -2.2385213e-01 5.24e-03 2.45e+01 -1.0 9.72e+02 - 1.70e-01 1.00e+00f 1\n",
+ " 44 -2.4208782e-01 1.30e-02 1.17e+01 -1.0 1.46e+03 - 6.06e-01 1.00e+00f 1\n",
+ " 45 -2.7496917e-01 5.99e-02 3.53e+00 -1.0 3.32e+03 - 6.81e-01 1.00e+00f 1\n",
+ " 46 -2.8094542e-01 5.97e-03 4.74e-02 -1.0 1.89e+03 - 1.00e+00 1.00e+00f 1\n",
+ " 47 -2.8143139e-01 9.21e-05 2.35e-01 -2.5 2.25e+02 - 9.43e-01 1.00e+00h 1\n",
+ " 48 -2.8471889e-01 5.06e-04 1.52e-03 -2.5 5.87e+02 - 1.00e+00 1.00e+00h 1\n",
+ " 49 -2.9285237e-01 3.11e-03 1.78e-02 -3.8 1.51e+03 - 8.18e-01 1.00e+00h 1\n",
"iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n",
- " 30 -3.1281609e-01 4.16e-02 1.09e-01 -3.8 2.12e+03 - 6.47e-01 4.46e-01h 1\n",
- " 31 -3.2328324e-01 2.01e-02 8.47e-02 -3.8 3.96e+03 - 1.00e+00 7.31e-01h 1\n",
- " 32 -3.2676931e-01 3.50e-02 2.48e+00 -3.8 4.58e+03 - 5.28e-02 1.00e+00H 1\n",
- " 33 -3.2673051e-01 7.54e-03 1.58e-03 -3.8 5.36e+02 - 9.98e-01 1.00e+00h 1\n",
- " 34 -3.2769712e-01 1.87e-02 1.82e-03 -3.8 1.82e+03 - 5.30e-01 5.19e-01h 1\n",
- " 35 -3.2579448e-01 5.47e-03 1.41e-04 -3.8 1.83e+03 - 1.00e+00 1.00e+00f 1\n",
- " 36 -3.2581048e-01 1.50e-03 5.66e-06 -3.8 3.23e+02 - 1.00e+00 1.00e+00h 1\n",
- " 37 -3.2778102e-01 1.39e-02 2.44e-02 -5.7 4.01e+03 - 4.61e-01 5.40e-01h 1\n",
- " 38 -3.3081682e-01 6.98e-02 3.75e-02 -5.7 5.65e+03 - 5.42e-01 8.01e-01h 1\n",
- " 39 -3.3146434e-01 5.19e-02 3.12e-02 -5.7 4.30e+03 - 2.86e-02 2.85e-01h 1\n",
+ " 50 -3.1047007e-01 1.68e-02 6.69e-04 -3.8 3.61e+03 - 1.00e+00 9.82e-01h 1\n",
+ " 51 -3.1805376e-01 7.91e-03 3.86e-03 -3.8 3.08e+03 - 1.00e+00 1.00e+00h 1\n",
+ " 52 -3.2496988e-01 1.07e-02 2.10e-01 -3.8 4.72e+03 - 1.00e+00 4.42e-01h 1\n",
+ " 53 -3.2596317e-01 1.38e-02 1.13e+00 -3.8 2.85e+03 - 4.77e-01 1.00e+00h 1\n",
+ " 54 -3.2609714e-01 2.18e-03 1.21e-04 -3.8 8.58e+02 - 1.00e+00 1.00e+00h 1\n",
+ " 55 -3.2634535e-01 2.20e-05 3.62e-07 -3.8 1.59e+02 - 1.00e+00 1.00e+00h 1\n",
+ " 56 -3.2840186e-01 5.71e-03 4.99e-02 -5.7 4.39e+03 - 6.38e-01 4.96e-01h 1\n",
+ " 57 -3.3229603e-01 2.85e-02 7.58e-03 -5.7 7.33e+03 - 6.50e-01 7.37e-01h 1\n",
+ " 58 -3.3222233e-01 2.04e-02 2.60e-02 -5.7 8.51e+01 - 5.17e-01 2.82e-01h 1\n",
+ " 59 -3.3182603e-01 2.03e-04 2.60e-01 -5.7 3.64e+02 - 6.85e-02 1.00e+00h 1\n",
"iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n",
- " 40 -3.3127607e-01 6.17e-04 9.41e-02 -5.7 7.26e+00 - 3.83e-01 1.00e+00h 1\n",
- " 41 -3.3130748e-01 3.54e-04 3.08e-02 -5.7 1.29e+02 - 1.00e+00 4.35e-01h 1\n",
- " 42 -3.3129128e-01 1.51e-06 9.28e-03 -5.7 2.63e+01 - 7.55e-01 1.00e+00f 1\n",
- " 43 -3.3129839e-01 2.97e-07 9.66e-07 -5.7 1.24e+01 - 1.00e+00 1.00e+00h 1\n",
- " 44 -3.3130682e-01 1.84e-07 1.60e-03 -8.6 1.25e+01 - 1.00e+00 8.58e-01h 1\n",
- " 45 -3.3130710e-01 9.64e-10 1.06e-01 -8.6 2.73e-01 - 1.69e-01 1.00e+00h 1\n",
- " 46 -3.3130710e-01 3.66e-15 2.50e-14 -8.6 1.29e-03 - 1.00e+00 1.00e+00h 1\n",
+ " 60 -3.3184336e-01 2.96e-05 2.87e-02 -5.7 3.19e+01 - 1.00e+00 8.56e-01h 1\n",
+ " 61 -3.3183702e-01 5.23e-08 6.23e+01 -5.7 9.02e+00 - 3.66e-04 1.00e+00f 1\n",
+ " 62 -3.3183667e-01 1.66e-10 1.84e-11 -5.7 4.99e-01 - 1.00e+00 1.00e+00h 1\n",
+ " 63 -3.3184437e-01 3.06e-08 6.72e-04 -8.6 8.36e+00 - 1.00e+00 9.15e-01h 1\n",
+ " 64 -3.3184455e-01 9.27e-11 2.88e-02 -8.6 1.50e-01 - 4.59e-01 1.00e+00f 1\n",
+ " 65 -3.3184455e-01 1.89e-15 2.51e-14 -8.6 5.16e-04 - 1.00e+00 1.00e+00h 1\n",
"\n",
- "Number of Iterations....: 46\n",
+ "Number of Iterations....: 65\n",
"\n",
" (scaled) (unscaled)\n",
- "Objective...............: -3.3130709928730723e-01 -3.3130709928730723e-01\n",
- "Dual infeasibility......: 2.5035529205297280e-14 2.5035529205297280e-14\n",
- "Constraint violation....: 3.6637359812630166e-15 3.6637359812630166e-15\n",
- "Complementarity.........: 2.7713235776435301e-09 2.7713235776435301e-09\n",
- "Overall NLP error.......: 2.7713235776435301e-09 2.7713235776435301e-09\n",
+ "Objective...............: -3.3184454733260904e-01 -3.3184454733260904e-01\n",
+ "Dual infeasibility......: 2.5091040356528538e-14 2.5091040356528538e-14\n",
+ "Constraint violation....: 1.8873791418627661e-15 1.8873791418627661e-15\n",
+ "Variable bound violation: 0.0000000000000000e+00 0.0000000000000000e+00\n",
+ "Complementarity.........: 2.6249489091631699e-09 2.6249489091631699e-09\n",
+ "Overall NLP error.......: 2.6249489091631699e-09 2.6249489091631699e-09\n",
"\n",
"\n",
- "Number of objective function evaluations = 58\n",
- "Number of objective gradient evaluations = 44\n",
- "Number of equality constraint evaluations = 58\n",
- "Number of inequality constraint evaluations = 58\n",
- "Number of equality constraint Jacobian evaluations = 50\n",
- "Number of inequality constraint Jacobian evaluations = 50\n",
- "Number of Lagrangian Hessian evaluations = 46\n",
- "Total CPU secs in IPOPT (w/o function evaluations) = 0.015\n",
- "Total CPU secs in NLP function evaluations = 0.001\n",
+ "Number of objective function evaluations = 83\n",
+ "Number of objective gradient evaluations = 63\n",
+ "Number of equality constraint evaluations = 83\n",
+ "Number of inequality constraint evaluations = 83\n",
+ "Number of equality constraint Jacobian evaluations = 70\n",
+ "Number of inequality constraint Jacobian evaluations = 70\n",
+ "Number of Lagrangian Hessian evaluations = 65\n",
+ "Total seconds in IPOPT = 0.094\n",
"\n",
"EXIT: Optimal Solution Found.\n",
- "\b\b\b\b\b\b\b\b\b\b\b\b\b\b"
+ "\b"
]
}
],
@@ -671,7 +693,7 @@
},
{
"cell_type": "code",
- "execution_count": 15,
+ "execution_count": 34,
"metadata": {
"pycharm": {
"name": "#%%\n"
@@ -682,10 +704,10 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "Bypass Fraction: 0.10000025307452928\n",
- "NG Steam Ratio: 1.1197517732543654\n",
- "H2 Concentration: 0.3313070992873072\n",
- "N2 Concentration: 0.34000000393182694\n"
+ "Bypass Fraction: 0.1000002111229052\n",
+ "NG Steam Ratio: 1.1131313973800456\n",
+ "H2 Concentration: 0.33184454733260904\n",
+ "N2 Concentration: 0.3400000044198399\n"
]
}
],
@@ -713,7 +735,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.8.12"
+ "version": "3.10.13"
}
},
"nbformat": 4,
diff --git a/docs/notebooks/neuralnet/graph_neural_network_formulation.ipynb b/docs/notebooks/neuralnet/graph_neural_network_formulation.ipynb
index dd1e74dd..69cb9675 100644
--- a/docs/notebooks/neuralnet/graph_neural_network_formulation.ipynb
+++ b/docs/notebooks/neuralnet/graph_neural_network_formulation.ipynb
@@ -39,9 +39,19 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 1,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "2024-05-16 17:32:39.757240: I tensorflow/core/util/port.cc:113] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n",
+ "2024-05-16 17:32:39.808990: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n",
+ "To enable the following instructions: AVX2 AVX512F AVX512_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n"
+ ]
+ }
+ ],
"source": [
"import numpy as np\n",
"import torch\n",
@@ -161,10 +171,10 @@
"output_type": "stream",
"text": [
"Welcome to the CBC MILP Solver \n",
- "Version: 2.9.9 \n",
- "Build Date: Oct 13 2018 \n",
+ "Version: 2.10.10 \n",
+ "Build Date: Apr 19 2023 \n",
"\n",
- "command line - /rds/general/user/sz421/home/anaconda3/envs/OMLT_test/bin/cbc -printingOptions all -import /var/tmp/pbs.8259409.pbs/tmpp27h4a9g.pyomo.lp -stat=1 -solve -solu /var/tmp/pbs.8259409.pbs/tmpp27h4a9g.pyomo.soln (default strategy 1)\n",
+ "command line - /opt/conda/bin/cbc -printingOptions all -import /tmp/tmpwsv2x1xb.pyomo.lp -stat=1 -solve -solu /tmp/tmpwsv2x1xb.pyomo.soln (default strategy 1)\n",
"Option for printingOptions changed from normal to all\n",
"Presolve 172 (-222) rows, 111 (-75) columns and 608 (-267) elements\n",
"Statistics for presolved model\n",
@@ -197,80 +207,81 @@
"Continuous objective value is 0.315152 - 0.00 seconds\n",
"Cgl0003I 0 fixed, 0 tightened bounds, 2 strengthened rows, 0 substitutions\n",
"Cgl0004I processed model has 166 rows, 105 columns (25 integer (25 of which binary)) and 670 elements\n",
- "Cbc0038I Initial state - 5 integers unsatisfied sum - 0.191951\n",
- "Cbc0038I Pass 1: suminf. 0.00000 (0) obj. 0.317969 iterations 17\n",
+ "Cbc0038I Initial state - 5 integers unsatisfied sum - 0.124759\n",
+ "Cbc0038I Pass 1: suminf. 0.00000 (0) obj. 0.317969 iterations 41\n",
"Cbc0038I Solution found of 0.317969\n",
"Cbc0038I Relaxing continuous gives 0.317969\n",
- "Cbc0038I Before mini branch and bound, 19 integers at bound fixed and 48 continuous\n",
- "Cbc0038I Full problem 166 rows 105 columns, reduced to 49 rows 27 columns\n",
- "Cbc0038I Mini branch and bound did not improve solution (0.01 seconds)\n",
+ "Cbc0038I Before mini branch and bound, 20 integers at bound fixed and 63 continuous\n",
+ "Cbc0038I Full problem 166 rows 105 columns, reduced to 17 rows 13 columns\n",
+ "Cbc0038I Mini branch and bound did not improve solution (0.02 seconds)\n",
"Cbc0038I Round again with cutoff of 0.317791\n",
- "Cbc0038I Pass 2: suminf. 0.00876 (1) obj. 0.317791 iterations 1\n",
- "Cbc0038I Pass 3: suminf. 0.18897 (1) obj. 0.317791 iterations 25\n",
- "Cbc0038I Pass 4: suminf. 0.00876 (1) obj. 0.317791 iterations 45\n",
- "Cbc0038I Pass 5: suminf. 0.18897 (1) obj. 0.317791 iterations 10\n",
- "Cbc0038I Pass 6: suminf. 0.00876 (1) obj. 0.317791 iterations 9\n",
- "Cbc0038I Pass 7: suminf. 0.00876 (1) obj. 0.317791 iterations 20\n",
- "Cbc0038I Pass 8: suminf. 0.18897 (1) obj. 0.317791 iterations 11\n",
- "Cbc0038I Pass 9: suminf. 0.00876 (1) obj. 0.317791 iterations 11\n",
- "Cbc0038I Pass 10: suminf. 0.00876 (1) obj. 0.317791 iterations 4\n",
- "Cbc0038I Pass 11: suminf. 0.18897 (1) obj. 0.317791 iterations 10\n",
- "Cbc0038I Pass 12: suminf. 0.00876 (1) obj. 0.317791 iterations 8\n",
- "Cbc0038I Pass 13: suminf. 0.00876 (1) obj. 0.317791 iterations 6\n",
- "Cbc0038I Pass 14: suminf. 0.18897 (1) obj. 0.317791 iterations 9\n",
- "Cbc0038I Pass 15: suminf. 0.00876 (1) obj. 0.317791 iterations 9\n",
- "Cbc0038I Pass 16: suminf. 0.00876 (1) obj. 0.317791 iterations 6\n",
- "Cbc0038I Pass 17: suminf. 0.18897 (1) obj. 0.317791 iterations 17\n",
- "Cbc0038I Pass 18: suminf. 0.00876 (1) obj. 0.317791 iterations 18\n",
- "Cbc0038I Pass 19: suminf. 0.00876 (1) obj. 0.317791 iterations 8\n",
- "Cbc0038I Pass 20: suminf. 0.18897 (1) obj. 0.317791 iterations 15\n",
- "Cbc0038I Pass 21: suminf. 0.00876 (1) obj. 0.317791 iterations 19\n",
- "Cbc0038I Pass 22: suminf. 0.00876 (1) obj. 0.317791 iterations 25\n",
+ "Cbc0038I Pass 2: suminf. 0.00876 (1) obj. 0.317791 iterations 11\n",
+ "Cbc0038I Pass 3: suminf. 0.18897 (1) obj. 0.317791 iterations 20\n",
+ "Cbc0038I Pass 4: suminf. 0.00876 (1) obj. 0.317791 iterations 58\n",
+ "Cbc0038I Pass 5: suminf. 0.18897 (1) obj. 0.317791 iterations 13\n",
+ "Cbc0038I Pass 6: suminf. 0.00876 (1) obj. 0.317791 iterations 21\n",
+ "Cbc0038I Pass 7: suminf. 0.00876 (1) obj. 0.317791 iterations 32\n",
+ "Cbc0038I Pass 8: suminf. 0.18897 (1) obj. 0.317791 iterations 16\n",
+ "Cbc0038I Pass 9: suminf. 0.00876 (1) obj. 0.317791 iterations 19\n",
+ "Cbc0038I Pass 10: suminf. 0.00876 (1) obj. 0.317791 iterations 57\n",
+ "Cbc0038I Pass 11: suminf. 0.18897 (1) obj. 0.317791 iterations 7\n",
+ "Cbc0038I Pass 12: suminf. 0.00876 (1) obj. 0.317791 iterations 7\n",
+ "Cbc0038I Pass 13: suminf. 0.00876 (1) obj. 0.317791 iterations 5\n",
+ "Cbc0038I Pass 14: suminf. 0.18897 (1) obj. 0.317791 iterations 7\n",
+ "Cbc0038I Pass 15: suminf. 0.00876 (1) obj. 0.317791 iterations 7\n",
+ "Cbc0038I Pass 16: suminf. 0.00876 (1) obj. 0.317791 iterations 10\n",
+ "Cbc0038I Pass 17: suminf. 0.18897 (1) obj. 0.317791 iterations 9\n",
+ "Cbc0038I Pass 18: suminf. 0.00876 (1) obj. 0.317791 iterations 8\n",
+ "Cbc0038I Pass 19: suminf. 0.00876 (1) obj. 0.317791 iterations 22\n",
+ "Cbc0038I Pass 20: suminf. 0.18897 (1) obj. 0.317791 iterations 6\n",
+ "Cbc0038I Pass 21: suminf. 0.00876 (1) obj. 0.317791 iterations 9\n",
+ "Cbc0038I Pass 22: suminf. 0.00876 (1) obj. 0.317791 iterations 17\n",
"Cbc0038I Pass 23: suminf. 0.18897 (1) obj. 0.317791 iterations 6\n",
"Cbc0038I Pass 24: suminf. 0.00876 (1) obj. 0.317791 iterations 5\n",
- "Cbc0038I Pass 25: suminf. 0.00876 (1) obj. 0.317791 iterations 12\n",
+ "Cbc0038I Pass 25: suminf. 0.00876 (1) obj. 0.317791 iterations 10\n",
"Cbc0038I Pass 26: suminf. 0.18897 (1) obj. 0.317791 iterations 6\n",
"Cbc0038I Pass 27: suminf. 0.00876 (1) obj. 0.317791 iterations 5\n",
- "Cbc0038I Pass 28: suminf. 0.00876 (1) obj. 0.317791 iterations 13\n",
- "Cbc0038I Pass 29: suminf. 0.18897 (1) obj. 0.317791 iterations 6\n",
- "Cbc0038I Pass 30: suminf. 0.00876 (1) obj. 0.317791 iterations 15\n",
- "Cbc0038I Pass 31: suminf. 0.00876 (1) obj. 0.317791 iterations 6\n",
+ "Cbc0038I Pass 28: suminf. 0.00876 (1) obj. 0.317791 iterations 30\n",
+ "Cbc0038I Pass 29: suminf. 0.18897 (1) obj. 0.317791 iterations 5\n",
+ "Cbc0038I Pass 30: suminf. 0.00876 (1) obj. 0.317791 iterations 6\n",
+ "Cbc0038I Pass 31: suminf. 0.00876 (1) obj. 0.317791 iterations 3\n",
"Cbc0038I No solution found this major pass\n",
- "Cbc0038I Before mini branch and bound, 1 integers at bound fixed and 46 continuous\n",
+ "Cbc0038I Before mini branch and bound, 1 integers at bound fixed and 47 continuous\n",
"Cbc0038I Full problem 166 rows 105 columns, reduced to 48 rows 27 columns\n",
- "Cbc0038I Mini branch and bound did not improve solution (0.02 seconds)\n",
- "Cbc0038I After 0.02 seconds - Feasibility pump exiting with objective of 0.317969 - took 0.02 seconds\n",
- "Cbc0012I Integer solution of 0.31796885 found by feasibility pump after 0 iterations and 0 nodes (0.02 seconds)\n",
- "Cbc0038I Full problem 166 rows 105 columns, reduced to 49 rows 27 columns\n",
- "Cbc0031I 6 added rows had average density of 5.5\n",
- "Cbc0013I At root node, 25 cuts changed objective from 0.31628066 to 0.31796885 in 1 passes\n",
- "Cbc0014I Cut generator 0 (Probing) - 11 row cuts average 3.0 elements, 1 column cuts (1 active) in 0.000 seconds - new frequency is 1\n",
- "Cbc0014I Cut generator 1 (Gomory) - 2 row cuts average 13.0 elements, 0 column cuts (0 active) in 0.000 seconds - new frequency is 1\n",
+ "Cbc0038I Mini branch and bound did not improve solution (0.04 seconds)\n",
+ "Cbc0038I After 0.04 seconds - Feasibility pump exiting with objective of 0.317969 - took 0.03 seconds\n",
+ "Cbc0012I Integer solution of 0.31796885 found by feasibility pump after 0 iterations and 0 nodes (0.05 seconds)\n",
+ "Cbc0038I Full problem 166 rows 105 columns, reduced to 48 rows 27 columns\n",
+ "Cbc0031I 3 added rows had average density of 3.3333333\n",
+ "Cbc0013I At root node, 31 cuts changed objective from 0.31628066 to 0.31796885 in 1 passes\n",
+ "Cbc0014I Cut generator 0 (Probing) - 19 row cuts average 3.0 elements, 1 column cuts (1 active) in 0.000 seconds - new frequency is 1\n",
+ "Cbc0014I Cut generator 1 (Gomory) - 3 row cuts average 8.0 elements, 0 column cuts (0 active) in 0.000 seconds - new frequency is 1\n",
"Cbc0014I Cut generator 2 (Knapsack) - 0 row cuts average 0.0 elements, 0 column cuts (0 active) in 0.000 seconds - new frequency is -100\n",
"Cbc0014I Cut generator 3 (Clique) - 0 row cuts average 0.0 elements, 0 column cuts (0 active) in 0.000 seconds - new frequency is -100\n",
- "Cbc0014I Cut generator 4 (MixedIntegerRounding2) - 4 row cuts average 3.2 elements, 0 column cuts (0 active) in 0.000 seconds - new frequency is 1\n",
+ "Cbc0014I Cut generator 4 (MixedIntegerRounding2) - 3 row cuts average 3.3 elements, 0 column cuts (0 active) in 0.000 seconds - new frequency is 1\n",
"Cbc0014I Cut generator 5 (FlowCover) - 0 row cuts average 0.0 elements, 0 column cuts (0 active) in 0.000 seconds - new frequency is -100\n",
- "Cbc0014I Cut generator 6 (TwoMirCuts) - 8 row cuts average 6.8 elements, 0 column cuts (0 active) in 0.000 seconds - new frequency is 1\n",
- "Cbc0001I Search completed - best objective 0.3179688539269278, took 31 iterations and 0 nodes (0.02 seconds)\n",
+ "Cbc0014I Cut generator 6 (TwoMirCuts) - 6 row cuts average 6.2 elements, 0 column cuts (0 active) in 0.000 seconds - new frequency is 1\n",
+ "Cbc0001I Search completed - best objective 0.3179688539269278, took 17 iterations and 0 nodes (0.06 seconds)\n",
"Cbc0035I Maximum depth 0, 0 variables fixed on reduced cost\n",
"Cuts at root node changed objective from 0.316281 to 0.317969\n",
- "Probing was tried 1 times and created 12 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)\n",
- "Gomory was tried 1 times and created 2 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)\n",
+ "Probing was tried 1 times and created 20 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)\n",
+ "Gomory was tried 1 times and created 3 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)\n",
"Knapsack was tried 1 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)\n",
"Clique was tried 1 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)\n",
- "MixedIntegerRounding2 was tried 1 times and created 4 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)\n",
+ "MixedIntegerRounding2 was tried 1 times and created 3 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)\n",
"FlowCover was tried 1 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)\n",
- "TwoMirCuts was tried 1 times and created 8 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)\n",
+ "TwoMirCuts was tried 1 times and created 6 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)\n",
+ "ZeroHalf was tried 1 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)\n",
"\n",
"Result - Optimal solution found\n",
"\n",
"Objective value: 0.31796885\n",
"Enumerated nodes: 0\n",
- "Total iterations: 31\n",
- "Time (CPU seconds): 0.03\n",
+ "Total iterations: 17\n",
+ "Time (CPU seconds): 0.06\n",
"Time (Wallclock seconds): 0.03\n",
"\n",
- "Total time (CPU seconds): 0.03 (Wallclock seconds): 0.03\n",
+ "Total time (CPU seconds): 0.07 (Wallclock seconds): 0.04\n",
"\n"
]
}
@@ -343,7 +354,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "Ipopt 3.14.12: \n",
+ "Ipopt 3.14.16: \n",
"\n",
"******************************************************************************\n",
"This program contains Ipopt, a library for large-scale nonlinear optimization.\n",
@@ -351,7 +362,7 @@
" For more information visit https://github.com/coin-or/Ipopt\n",
"******************************************************************************\n",
"\n",
- "This is Ipopt version 3.14.12, running with linear solver MUMPS 5.2.1.\n",
+ "This is Ipopt version 3.14.16, running with linear solver MUMPS 5.7.1.\n",
"\n",
"Number of nonzeros in equality constraint Jacobian...: 395\n",
"Number of nonzeros in inequality constraint Jacobian.: 276\n",
@@ -388,66 +399,43 @@
" 16 4.8086057e-01 1.98e-06 3.65e+05 -1.0 1.21e-05 - 1.00e+00 6.18e-01h 1\n",
" 17 4.8086191e-01 6.64e-07 6.79e+05 -1.0 4.84e-06 - 1.00e+00 6.65e-01h 1\n",
" 18 4.8086192e-01 6.47e-07 3.49e+06 -1.0 1.54e-06 - 1.00e+00 2.47e-02f 6\n",
- " 19 4.8086258e-01 1.04e-10 1.00e-06 -1.0 1.52e-06 - 1.00e+00 1.00e+00h 1\n",
- "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n",
- " 20 4.8086253e-01 1.78e-10 4.52e+02 -8.6 7.22e-05 - 1.00e+00 1.00e+00h 1\n",
- " 21 4.8001913e-01 2.86e-02 2.80e+02 -8.6 1.17e+00 - 5.24e-01 1.00e+00f 1\n",
- " 22 4.8001744e-01 1.08e-02 2.14e+01 -8.6 2.16e-01 - 9.00e-01 6.57e-01h 1\n",
- " 23 4.8001271e-01 1.79e-03 2.28e+01 -8.6 3.03e-01 - 8.31e-01 1.00e+00h 1\n",
- " 24 4.8000768e-01 1.81e-04 4.39e+01 -8.6 9.74e-02 - 7.32e-01 1.00e+00h 1\n",
- " 25 4.8000768e-01 1.80e-04 5.02e+01 -8.6 1.67e-02 - 5.11e-01 4.80e-03h 1\n",
- " 26 4.8000768e-01 1.80e-04 7.68e+01 -8.6 1.72e-02 - 2.92e-01 2.94e-04f 2\n",
- " 27 4.8000768e-01 1.80e-04 1.18e+02 -8.6 1.73e-02 - 6.38e-01 2.96e-04h 1\n",
- " 28 4.8000768e-01 1.80e-04 1.25e+02 -8.6 1.76e-02 - 3.09e-01 6.58e-05h 2\n",
- " 29 4.8000768e-01 1.80e-04 1.41e+02 -8.6 1.76e-02 - 1.00e+00 2.94e-04h 1\n",
+ " 19 4.8086258e-01 3.98e-10 1.00e-06 -1.0 1.52e-06 - 1.00e+00 1.00e+00h 1\n",
"iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n",
- " 30 4.8000669e-01 5.04e-06 2.97e+00 -8.6 1.77e-02 - 2.99e-01 1.00e+00f 1\n",
- " 31 4.8000669e-01 5.04e-06 8.32e+01 -8.6 4.66e-05 - 5.89e-01 2.35e-04h 1\n",
- " 32 4.8000669e-01 5.04e-06 1.14e+02 -8.6 5.90e-05 - 5.27e-01 3.92e-05h 1\n",
- " 33 4.8000669e-01 5.04e-06 1.25e+02 -8.6 6.02e-05 - 3.88e-01 6.73e-06f 2\n",
- " 34 4.8000669e-01 5.04e-06 1.25e+02 -8.6 6.06e-05 - 5.49e-02 2.21e-05h 1\n",
- " 35 4.8000669e-01 5.04e-06 1.27e+02 -8.6 4.61e-04 - 8.33e-02 7.28e-08f 2\n",
- " 36 4.8000669e-01 5.04e-06 1.34e+02 -8.6 6.09e-05 - 4.80e-01 7.71e-05f 2\n",
- " 37 4.8000669e-01 5.04e-06 1.35e+02 -8.6 6.11e-05 - 1.75e-01 1.36e-05h 1\n",
- " 38 4.8000669e-01 5.04e-06 1.36e+02 -8.6 1.27e-04 - 9.83e-02 1.38e-07f 2\n",
- " 39 4.8000669e-01 5.04e-06 1.37e+02 -8.6 6.12e-05 - 2.54e-01 9.45e-04h 1\n",
+ " 20 4.8086253e-01 2.78e-09 4.52e+02 -8.6 7.22e-05 - 1.00e+00 1.00e+00h 1\n",
+ " 21 4.8001912e-01 2.86e-02 2.80e+02 -8.6 1.17e+00 - 5.23e-01 1.00e+00f 1\n",
+ " 22 4.8001743e-01 1.08e-02 2.14e+01 -8.6 2.15e-01 - 9.00e-01 6.57e-01h 1\n",
+ " 23 4.8001271e-01 1.79e-03 2.27e+01 -8.6 3.03e-01 - 8.31e-01 1.00e+00h 1\n",
+ " 24 4.8000768e-01 1.81e-04 4.21e+01 -8.6 9.74e-02 - 7.43e-01 1.00e+00h 1\n",
+ " 25 4.8000767e-01 1.79e-04 5.50e+02 -8.6 1.68e-02 - 1.00e+00 9.31e-03h 1\n",
+ " 26 4.8000669e-01 5.00e-06 9.43e-09 -8.6 1.76e-02 - 1.00e+00 1.00e+00f 1\n",
+ " 27 4.8000670e-01 7.87e-11 8.32e+01 -8.6 7.60e-05 - 4.17e-01 1.00e+00h 1\n",
+ " 28 4.8000670e-01 7.86e-11 1.41e+02 -8.6 8.40e-06 - 1.00e+00 1.93e-04h 1\n",
+ " 29 4.8000670e-01 3.40e-10 1.73e+02 -8.6 7.68e-06 - 6.59e-02 1.00e+00f 1\n",
"iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n",
- " 40 4.8000669e-01 4.94e-06 1.35e+02 -8.6 6.12e-05 - 1.83e-01 1.89e-02f 1\n",
- " 41 4.8000669e-01 4.94e-06 1.36e+02 -8.6 2.85e-04 - 9.97e-02 1.10e-07f 2\n",
- " 42 4.8000669e-01 4.94e-06 1.37e+02 -8.6 6.00e-05 - 1.72e-01 4.40e-05h 1\n",
- " 43 4.8000669e-01 4.94e-06 1.37e+02 -8.6 1.41e-04 - 9.04e-02 1.49e-06f 2\n",
- " 44 4.8000669e-01 4.94e-06 1.38e+02 -8.6 6.01e-05 - 1.71e-01 5.97e-06f 2\n",
- " 45 4.8000670e-01 2.65e-11 6.17e+01 -8.6 6.01e-05 - 1.56e-01 1.00e+00h 1\n",
- " 46 4.8000670e-01 2.64e-11 5.65e+01 -8.6 3.45e-06 - 5.27e-02 4.42e-04h 1\n",
- " 47 4.8000670e-01 2.26e-11 7.42e+01 -8.6 1.45e-07 - 6.61e-01 1.47e-01f 2\n",
- " 48 4.8000670e-01 2.25e-11 8.82e+01 -8.6 7.27e-06 - 2.11e-01 1.18e-03h 1\n",
- " 49 4.8000670e-01 2.25e-11 1.30e+02 -8.6 8.86e-06 - 7.86e-01 1.57e-04f 2\n",
- "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n",
- " 50 4.8000670e-01 2.25e-11 1.33e+02 -8.6 4.24e-05 - 2.54e-01 1.00e-04h 1\n",
- " 51 4.8000670e-01 2.25e-11 1.41e+02 -8.6 6.81e-05 - 1.00e+00 2.59e-05f 2\n",
- " 52 4.8000670e-01 3.10e-11 2.08e+00 -8.6 1.27e-07 - 2.54e-01 1.00e+00h 1\n",
- " 53 4.8000670e-01 3.19e-09 1.41e+02 -8.6 3.37e-05 - 1.00e+00 4.73e-04h 1\n",
- " 54 4.8000670e-01 9.74e-11 7.50e-11 -8.6 1.65e-08 - 1.00e+00 1.00e+00f 1\n",
+ " 30 4.8000670e-01 3.40e-10 1.74e+02 -8.6 2.35e-05 - 1.00e+00 2.85e-04h 1\n",
+ " 31 4.8000670e-01 5.51e-09 1.32e+00 -8.6 3.08e-08 - 2.22e-01 1.00e+00f 1\n",
+ " 32 4.8000670e-01 9.70e-11 1.23e+02 -8.6 1.11e-04 - 8.72e-01 1.82e-04h 2\n",
+ " 33 4.8000670e-01 1.52e-10 1.76e-10 -8.6 1.50e-08 - 1.00e+00 1.00e+00h 1\n",
"\n",
- "Number of Iterations....: 54\n",
+ "Number of Iterations....: 33\n",
"\n",
" (scaled) (unscaled)\n",
- "Objective...............: 4.8000669509937166e-01 4.8000669509937166e-01\n",
- "Dual infeasibility......: 7.5043113584813605e-11 7.5043113584813605e-11\n",
- "Constraint violation....: 9.7397756526618195e-11 9.7397756526618195e-11\n",
+ "Objective...............: 4.8000669509919508e-01 4.8000669509919508e-01\n",
+ "Dual infeasibility......: 1.7627861836399183e-10 1.7627861836399183e-10\n",
+ "Constraint violation....: 1.5176976342345938e-10 1.5176976342345938e-10\n",
"Variable bound violation: 0.0000000000000000e+00 0.0000000000000000e+00\n",
- "Complementarity.........: 2.5636037643218892e-09 2.5636037643218892e-09\n",
- "Overall NLP error.......: 9.7397756526618195e-11 2.5636037643218892e-09\n",
+ "Complementarity.........: 3.0531777979505568e-09 3.0531777979505568e-09\n",
+ "Overall NLP error.......: 1.5176976342345938e-10 3.0531777979505568e-09\n",
"\n",
"\n",
- "Number of objective function evaluations = 72\n",
- "Number of objective gradient evaluations = 55\n",
- "Number of equality constraint evaluations = 72\n",
- "Number of inequality constraint evaluations = 72\n",
- "Number of equality constraint Jacobian evaluations = 55\n",
- "Number of inequality constraint Jacobian evaluations = 55\n",
- "Number of Lagrangian Hessian evaluations = 54\n",
- "Total seconds in IPOPT = 0.125\n",
+ "Number of objective function evaluations = 40\n",
+ "Number of objective gradient evaluations = 34\n",
+ "Number of equality constraint evaluations = 40\n",
+ "Number of inequality constraint evaluations = 40\n",
+ "Number of equality constraint Jacobian evaluations = 34\n",
+ "Number of inequality constraint Jacobian evaluations = 34\n",
+ "Number of Lagrangian Hessian evaluations = 33\n",
+ "Total seconds in IPOPT = 0.052\n",
"\n",
"EXIT: Optimal Solution Found.\n",
"\b"
@@ -535,10 +523,10 @@
"output_type": "stream",
"text": [
"Welcome to the CBC MILP Solver \n",
- "Version: 2.9.9 \n",
- "Build Date: Oct 13 2018 \n",
+ "Version: 2.10.10 \n",
+ "Build Date: Apr 19 2023 \n",
"\n",
- "command line - /rds/general/user/sz421/home/anaconda3/envs/OMLT_test/bin/cbc -printingOptions all -import /var/tmp/pbs.8259409.pbs/tmp1n22ks_r.pyomo.lp -stat=1 -solve -solu /var/tmp/pbs.8259409.pbs/tmp1n22ks_r.pyomo.soln (default strategy 1)\n",
+ "command line - /opt/conda/bin/cbc -printingOptions all -import /tmp/tmp0s5lbbp6.pyomo.lp -stat=1 -solve -solu /tmp/tmp0s5lbbp6.pyomo.soln (default strategy 1)\n",
"Option for printingOptions changed from normal to all\n",
"Presolve 260 (-137) rows, 141 (-51) columns and 852 (-173) elements\n",
"Statistics for presolved model\n",
@@ -571,17 +559,16 @@
"56 of type L other, 0 of type Range 0.0->1.0, 0 of type Range other, \n",
"0 of type Free \n",
"Continuous objective value is 0.107106 - 0.00 seconds\n",
- "Cgl0003I 0 fixed, 0 tightened bounds, 1 strengthened rows, 0 substitutions\n",
"Cgl0004I processed model has 237 rows, 118 columns (29 integer (29 of which binary)) and 969 elements\n",
- "Cbc0038I Initial state - 17 integers unsatisfied sum - 1.66726\n",
- "Cbc0038I Pass 1: suminf. 1.01765 (9) obj. 0.107106 iterations 47\n",
+ "Cbc0038I Initial state - 17 integers unsatisfied sum - 1.61761\n",
+ "Cbc0038I Pass 1: suminf. 1.01765 (9) obj. 0.107106 iterations 46\n",
"Cbc0038I Solution found of 0.107106\n",
"Cbc0038I Relaxing continuous gives 0.107106\n",
- "Cbc0038I Before mini branch and bound, 12 integers at bound fixed and 40 continuous\n",
+ "Cbc0038I Before mini branch and bound, 12 integers at bound fixed and 38 continuous\n",
"Cbc0038I Mini branch and bound did not improve solution (0.01 seconds)\n",
- "Cbc0038I After 0.01 seconds - Feasibility pump exiting with objective of 0.107106 - took 0.00 seconds\n",
- "Cbc0012I Integer solution of 0.10710584 found by feasibility pump after 0 iterations and 0 nodes (0.01 seconds)\n",
- "Cbc0001I Search completed - best objective 0.1071058437228203, took 0 iterations and 0 nodes (0.01 seconds)\n",
+ "Cbc0038I After 0.02 seconds - Feasibility pump exiting with objective of 0.107106 - took 0.01 seconds\n",
+ "Cbc0012I Integer solution of 0.10710584 found by feasibility pump after 0 iterations and 0 nodes (0.02 seconds)\n",
+ "Cbc0001I Search completed - best objective 0.1071058437228203, took 0 iterations and 0 nodes (0.02 seconds)\n",
"Cbc0035I Maximum depth 0, 0 variables fixed on reduced cost\n",
"Cuts at root node changed objective from 0.107106 to 0.107106\n",
"Probing was tried 0 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)\n",
@@ -591,16 +578,17 @@
"MixedIntegerRounding2 was tried 0 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)\n",
"FlowCover was tried 0 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)\n",
"TwoMirCuts was tried 0 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)\n",
+ "ZeroHalf was tried 0 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)\n",
"\n",
"Result - Optimal solution found\n",
"\n",
"Objective value: 0.10710584\n",
"Enumerated nodes: 0\n",
"Total iterations: 0\n",
- "Time (CPU seconds): 0.01\n",
+ "Time (CPU seconds): 0.03\n",
"Time (Wallclock seconds): 0.02\n",
"\n",
- "Total time (CPU seconds): 0.01 (Wallclock seconds): 0.02\n",
+ "Total time (CPU seconds): 0.03 (Wallclock seconds): 0.02\n",
"\n"
]
}
@@ -644,9 +632,9 @@
],
"metadata": {
"kernelspec": {
- "display_name": "Python [conda env:OMLT_test]",
+ "display_name": "Python 3",
"language": "python",
- "name": "conda-env-OMLT_test-py"
+ "name": "python3"
},
"language_info": {
"codemirror_mode": {
@@ -658,7 +646,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.9.17"
+ "version": "3.10.13"
}
},
"nbformat": 4,
diff --git a/docs/notebooks/neuralnet/import_network.ipynb b/docs/notebooks/neuralnet/import_network.ipynb
index 60b48adf..3f056572 100644
--- a/docs/notebooks/neuralnet/import_network.ipynb
+++ b/docs/notebooks/neuralnet/import_network.ipynb
@@ -189,14 +189,12 @@
"outputs": [
{
"data": {
- "image/png": "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\n",
+ "image/png": "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wwMPPIC6ujr8+OOPBv15eHgY/KLk4uKCMWPG4P/+7//EdV9++SV69uzZZFzNTeMrCAK+/PJLTJkyBYIgGDwP0dHRqKqqwnfffQfg9qH+X375BWfOnGk2byL6r+rqagC3P793CwsLQ69evcS/jIyMTu1Lp9Nh9+7dmDJlisE1C3r6MWDfvn0YM2YMxo8fL27z8PDAvHnzcPXqVfEUktY+7+0ZO4jsVUZGBlQqFVQqFT755BNMnDgRzzzzDHbu3Nlk+4aGBuTm5mLq1Km47777xPV+fn548skncezYMXFcaetned++ffDz88Njjz0mtnN3d8e8efOajKG2tlYcl/r164dXX30VSqUSu3btMmgXFBSE6Ohog3U7duzAAw88gO7duxuMCREREWhoaEBeXh6A2+NLbW2twelvd/P29kZhYSEuX77cbJv2io+PR69evcTliooKHDp0CI8//rj4Pey3337D9evXER0djcuXL+Pf//630fZvrXjKnBXJyMhA//794ezsDF9fXwwYMMDgImVnZ2f07t3b4DGXL19GVVUVfHx8muyzvLwcAMQipl+/fgbb5XI5unfv3uRjAwICDJb17e68NqmwsBDLly/HoUOHxAFOr6qqymC5d+/ejYqa7t27G0zXW1RUhAEDBrRrBrlff/0VlZWV+PDDD/Hhhx822Ub/PCxduhQHDhzAmDFj0K9fP0RFReHJJ5/EuHHj2rw/Invi6ekJAKipqWm07YMPPsCNGzdQVlbW4ukzbfXrr7+iuroaQ4YMabHdTz/91OTpe4MGDRK3DxkypNXPe3vGDiJ7NWbMGIMfKGbMmIGRI0ciOTkZDz30UKML+n/99VfU1dVhwIABjfoaNGgQdDodfv75ZwwePLjNn+WffvoJ/fr1a/Qdoql9ALcnXtqzZw8AiNch3v39CbhdEN3t8uXLOH/+vEHRcSf9mPD888/j888/R2xsLO655x5ERUXh8ccfR0xMjNh29erVeOSRR9C/f38MGTIEMTExmDVrFoYNG9Zk321xd8xXrlyBIAhYsWIFVqxY0WzMd/64bo9YEFmRuwedu0ml0kazOOl0Ovj4+GDbtm1NPqa5D3RbODk5NbleEAQAty86fPDBByGTybB69Wr07dsXrq6u+O6777B06dJGFx+21l9H6ffz1FNPISEhock2+sFn0KBBuHTpErKzs5GTk4Mv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y8vFNvwFl4g2bdqEqqoqhIWFwc/PT/z77LPPAAAuLi44cOAAoqKiMHDgQLz00kuIj4/Hnj17xD6cnJyQnZ0NJycnKJVKPPXUU5g9e7bBfYuIyDrxCBERWYTWfsH18vJCYmIiUlJSIJfLIZPJsGDBAiiVSowdOxYAf8EloqYJQsuTbvTp0wdHjx5ttZ/AwECrmymMLMe9r+w1an9X34gzan/2jAUREVmETZs2AQDCwsIM1m/ZsgVz5swBALz99ttwdHREfHw8NBoNoqOjsXHjRrGt/hfc+fPnQ6lUolu3bkhISOAvuERERNQsFkREZBFa+wUXAFxdXZGRkYGMjIxm2/AXXCIiImoPXkNERERERER2iwURERERERHZLRZERERERERkt1gQERERERGR3WJBREREREREdosFERERERER2S0WREREREREZLdYEBERERERkd1iQURERERERHaLBREREREREdktFkRERERERGS3WBAREREREZHdYkFERERERER2iwURERERERHZLRZERERERERkt1gQERERERGR3WpXQZSeno7Ro0fD09MTPj4+mDp1Ki5dumTQ5ubNm0hKSkKPHj3g4eGB+Ph4lJWVGbQpKSlBXFwc3N3d4ePjg8WLF6O+vr7z2RAREREREbVDuwqio0ePIikpCSdPnoRKpYJWq0VUVBRqa2vFNosWLcKePXuwY8cOHD16FNeuXcO0adPE7Q0NDYiLi8OtW7dw4sQJbN26FZmZmVi5cqXxsiIiIiIiImoD5/Y0zsnJMVjOzMyEj48PCgoKMGHCBFRVVeGjjz5CVlYWJk2aBADYsmULBg0ahJMnT2Ls2LHIzc3FxYsXceDAAfj6+mLEiBFYs2YNli5ditTUVLi4uBgvOyIiIiIiohZ06hqiqqoqAIBcLgcAFBQUQKvVIiIiQmwzcOBABAQEID8/HwCQn5+PoUOHwtfXV2wTHR2N6upqFBYWdiYcIiIiIiKidmnXEaI76XQ6LFy4EOPGjcOQIUMAAGq1Gi4uLvD29jZo6+vrC7VaLba5sxjSb9dva4pGo4FGoxGXq6urAQBarRZarbbZGPXbpI5COzJrXkv7Mhd9TJYYmzExz67dPxEREZG96HBBlJSUhAsXLuDYsWPGjKdJ6enpSEtLa7Q+NzcX7u7urT5+zSidUeLYt2+fUfoxBZVKZe4QugTzNK26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FGQyWbOP02q1UKlUiIyMtJo7ed/NXDkMSd1vtL6kjgLWjNJhxVlHaHSWd1f5C6nRrbaxl/eS/ugrEZGlYUFERFbpvvvuQ8+ePXHlyhWEh4dDoVAY3EEeAOrr61FRUdHsdUfA7euSmrqpokQiadOX07a2s2RdnYOmwfiFi0bnYJJ+O6s9z6utv5esPTcisl2cZY6IrNIvv/yC69evw8/PDwCgVCpRWVmJgoICsc2hQ4eg0+kQGhpqrjCJiIjIwvEIERFZhJqaGly5ckVcLi4uxrlz5yCXyyGXy5GWlob4+HgoFAoUFRVhyZIl6NevH6Kjb5+SNGjQIMTExGDu3LnYvHkztFotkpOTMX36dM4wR0RERM3iESIisghnz57FyJEjMXLkSABASkoKRo4ciZUrV8LJyQnnz5/Hww8/jP79+yMxMREhISH49ttvDU5327ZtGwYOHIjw8HBMnjwZ48ePx4cffmiulIiIiMgK8AgREVmEsLAwCELzUyfv39/6hfhyuRxZWVnGDIuIiIhsHI8QERERERGR3WJBREREREREdosFERERERER2S0WREREREREZLdYEBERERERkd1iQURERERERHaLBREREREREdktFkRERERERGS3WBAREREREZHdYkFERERERER2q90FUV5eHqZMmQJ/f384ODhg9+7dBtvnzJkDBwcHg7+YmBiDNhUVFZg5cyZkMhm8vb2RmJiImpqaTiVCRERERETUXu0uiGprazF8+HBkZGQ02yYmJgalpaXi36effmqwfebMmSgsLIRKpUJ2djby8vIwb9689kdPRERERETUCc7tfUBsbCxiY2NbbCOVSqFQKJrc9sMPPyAnJwdnzpzBqFGjAAAbNmzA5MmTsX79evj7+7c3JCIiIiIiog5pd0HUFkeOHIGPjw+6d++OSZMmYe3atejRowcAID8/H97e3mIxBAARERFwdHTEqVOn8OijjzbqT6PRQKPRiMvV1dUAAK1WC61W22wc+m1SR8EoeRlbS7G3tw9j9GXJmGfX7p+IiIjIXhi9IIqJicG0adMQFBSEoqIivPrqq4iNjUV+fj6cnJygVqvh4+NjGISzM+RyOdRqdZN9pqenIy0trdH63NxcuLu7txrTmlG6jiVjYvv27TNaXyqVymh9WTLmaVp1dXVm2S8RERGRuRi9IJo+fbr476FDh2LYsGHo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IiIiIiK7xYKIiIiIiIjsFgsiIiIiIiKyW7yGiIiIiMgCDUndD02DQ6f7ufpGnBGiIbJdPEJERERERER2iwURERERERHZLRZERERERERkt1gQERERERGR3WJBREREREREdosFERERERER2S0WREREREREZLdYEBERERERkd1iQURERERERHaLBREREREREdktZ3MHQGRu976y12h9XX0jzmh9EREREZHp8QgRERERERHZLRZERERERERkt1gQERERERGR3WJBREREREREdouTKhARERER2bE7J5iSOglYNwYYkrofmgaHDvVnbZNMsSAiIiIiIrMw5kyvRB3FgoisDgdPIiIiIjIWXkNERERERER2iwURERERERHZLRZERERERERkt3gNERFRJ3RmFp47WduMPERERLbCrAVRRkYG/vKXv0CtVmP48OHYsGEDxowZY86QiMgGcGxp2+QjxphalcjecHwhap0xJ8Dqih8MzXbK3GeffYaUlBSsWrUK3333HYYPH47o6GiUl5ebKyQisgEcW4jIVDi+ENkmsx0heuuttzB37lw8/fTTAIDNmzdj7969+Pvf/45XXnnFXGERdUpnfxG5+xd7nkbVfhxbiMhUOL4Q2SazFES3bt1CQUEBli1bJq5zdHREREQE8vPzG7XXaDTQaDTiclVVFQCgoqICWq222f1otVrU1dXBWeuIBp1tng7irBNQV6ez6RwB+82z38ufG7X/U8vCW9x+48YNAIAgCEbdb1dp79gCWM74cv369U73cSfn+trW29jA54o5WIbr16+jrq4O169fh0QiabINxxfzjS/G/n+JMZnii6gtfKbMydKev7b8/7HT44tgBv/+978FAMKJEycM1i9evFgYM2ZMo/arVq0SAPCPf/zror+ff/65q4YDo2rv2CIIHF/4x7+u/uP4wj/+8c9Ufx0dX6xilrlly5YhJSVFXNbpdKioqECPHj3g4NB85VpdXY0+ffrg559/hkwm64pQu5w95Agwz64iCAJu3LgBf3//Lt+3udjz+MIcLIO95MDxxb7GF3Pi89c51vj8dXZ8MUtB1LNnTzg5OaGsrMxgfVlZGRQKRaP2UqkUUqnUYJ23t3eb9yeTyazmBe0oe8gRYJ5dwcvLyyz7NYb2ji0AxxeAOVgKe8iB44v9jS/mxOevc6zt+evM+GKWWeZcXFwQEhKC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bVQqFWQyGYKDg7smESIyCR4hIiIiIpuWlJSErKwsfPXVV/D09BSv+fHy8oKbmxu8vLyQmJiIlJQUyOVyyGQyLFiwAEqlEmPHjgUAREVFITg4GLNmzcK6deugVquxfPlyJCUlNXkUiIisBwsiIiIismmbNm0CAISFhRms37JlC+bMmQMAePvtt+Ho6Ij4+HhoNBpER0dj48aNYlsnJydkZ2dj/vz5UCqV6NatGxISErB69equSoOITIQFEREREdk0QWh9KmZXV1dkZGQgIyOj2TaBgYHYt2+fMUMjIgvAgsiM2nIjVamTgHVjbs+aYskXChIRERERWSNOqkBERERERHaLBREREREREdktFkRERERERGS3WBAREREREZHdYkFERERERER2iwURERERERHZLRZERERERERkt1gQERERERGR3Wp3QZSXl4cpU6bA398fDg4O2L17t8H2OXPmwMHBweAvJibGoE1FRQVmzpwJmUwGb29vJCYmoqamplOJEBERERERtVe7C6La2loMHz4cGRkZzbaJiYlBaWmp+Pfpp58abJ85cyYKCwuhUqmQnZ2NvLw8zJs3r/3RExERERERdYJzex8QGxuL2NjYFttIpVIoFIomt/3www/IycnBmTNnMGrUKADAhg0bMHnyZKxfvx7+/v7tDYmIiIiIiKhD2l0QtcWRI0fg4+OD7t27Y9KkSVi7di169OgBAMjPz4e3t7dYDAFAREQEHB0dcerUKTz66KON+tNoNNBoNOJydXU1AECr1UKr1TYbh36b1FEwSl4t7asjpE6tx6WP3Vg5tJWxc9X3Z+x+u5It5AC0nIe150ZERETUXkYviGJiYjBt2jQEBQWhqKgIr776KmJjY5Gfnw8nJyeo1Wr4+PgYBuHsDLlcDrVa3WSf6enpSEtLa7Q+NzcX7u7urca0ZpSuY8ncZd++fUbpR2/dmLa3NVYObWXsXPVUKpVJ+u1KtpAD0HQedXV1ZoiEiIiIyHyMXhBNnz5d/PfQoUMxbNgw9O3bF0eOHEF4eHiH+ly2bBlSUlLE5erqavTp0wdRUVGQyWTNPk6r1UKlUmHFWUdodA4d2vedLqRGd7qPOw1J3d9qG6mjgDWjdEbLoa2Mnav+tYiMjIREIjFq313FFnIAWs5Df/SViIiIyF6Y5JS5O913333o2bMnrly5gvDwcCgUCpSXlxu0qa+vR0VFRbPXHUmlUkil0kbrJRJJm76YanQO0DR0vpgw9pfg9sRkrBzaylRf+Nv6mlkyW8gBaDoPc+a1adMmbNq0CVevXgUADB48GCtXrhSvWbx58yZeeuklbN++HRqNBtHR0di4cSN8fX3FPkpKSjB//nwcPnwYHh4eSEhIQHp6OpydTT7UERERkZUy+X2IfvnlF1y/fh1+fn4AAKVSicrKShQUFIhtDh06BJ1Oh9DQUFOHQ0QWqnfv3njjjTdQUFCAs2fPYtKkSXjkkUdQWFgIAFi0aBH27NmDHTt24OjRo7h27RqmTZsmPr6hoQFxcXG4desWTpw4ga1btyIzMxMrV640V0pERERkBdr9s2lNTQ2uXLkiLhcXF+PcuXOQy+WQy+VIS0tDfHw8FAoFioqKsGTJEvTr1w/R0bdPwRo0aBBiYmIwd+5cbN68GVqtFsnJyZg+fTpnmCOyY1OmTDFYfu2117Bp0yacPHkSvXv3xkcffYSsrCxMmjQJALBlyxYMGjQIJ0+exNixY5Gbm4uLFy/iwIED8PX1xYgRI7BmzRosXboUqampcHFxMUdaREREZOHafYTo7NmzGDlyJEaOHAkASElJwciRI7Fy5Uo4OTnh/PnzePjhh9G/f38kJiYiJCQE3377rcEpb9u2bcPAgQMRHh6OyZMnY/z48fjwww+NlxURWbWGhgZs374dtbW1UCqVKCgogFarRUREhNhm4MCBCAgIQH5+PoDbM1gOHTrU4BS66OhoVFdXi0eZiIiIiO7W7iNEYWFhEITmp4Dev7/1iQLkcjmysrLau2sisnHff/89lEolbt68CQ8PD+zatQvBwcE4d+4cXFxc4O3tbdDe19dXnJ1SrVYbFEP67fptzbHVaf1b24+1TbFurXED1hu7seO2tvyJyH7wSmMishgDBgzAuXPnUFVVhS+++AIJCQk4evSoSfdpq9P6t8Zap4+31rgB643dWHFzWn8islQsiIjIYri4uKBfv34AgJCQEJw5cwbvvvsunnjiCdy6dQuVlZUGR4nKysrE2SkVCgVOnz5t0F9ZWZm4rTm2Oq1/c6x1+nhrjRuw3tiNHTen9SciS8WCiIgslk6ng0ajQUhICCQSCQ4ePIj4+HgAwKVLl1BSUgKlUgng9gyWr732GsrLy8WbP6tUKshkMgQHBze7D1ud1r8t+7OmL+d61ho3YL2xGytua8ydiOwDCyIisgjLli1DbGwsAgICcOPGDWRlZeHIkSPYv38/vLy8kJiYiJSUFMjlcshkMixYsABKpRJjx44FAERFRSE4OBizZs3CunXroFarsXz5ciQlJTVZ8BAREREBLIiIyEKUl5dj9uzZKC0thZeXF4YNG4b9+/cjMjISAPD222/D0dER8fHxBjdm1XNyckJ2djbmz58PpVKJbt26ISEhAatXrzZXSkRERGQFWBARkUX46KOPWtzu6uqKjIwMZGRkNNsmMDCwyycnICIiIuvW7vsQERERERER2QoeISIiIiKblpeXh7/85S8oKChAaWkpdu3ahalTp4rb58yZg61btxo8Jjo6Gjk5OeJyRUUFFixYgD179oin77777rvw8PDoqjRs1pDU/UaZnIaoo3iEiIiIiGxabW0thg8f3uIptzExMSgtLRX/Pv30U4PtM2fORGFhIVQqFbKzs5GXl4d58+aZOnQi6gI8QkREREQ2LTY2FrGxsS22kUqlzd6z7IcffkBOTg7OnDmDUaNGAQA2bNiAyZMnY/369fD39zd6zETUdVgQERERkd07cuQIfHx80L17d0yaNAlr165Fjx49AAD5+fnw9vYWiyEAiIiIgKOjI06dOoVHH320yT41Gg00Go24rL85rVarhVarbTYW/baW2tgCfX5SR8HMkZiWPj9bfz0B8713O7s/FkRERERk12JiYjBt2jQEBQWhqKgIr776KmJjY5Gfnw8nJyeo1Wrxhs96zs7OkMvlUKvVzfabnp6OtLS0Rutzc3Ph7u7ealwqlar9yVihNaN05g6hS9jL6wl0fa51dXWdejwLIiIiIrJr06dPF/89dOhQDBs2DH379sWRI0cQHh7e4X6XLVuGlJQUcbm6uhp9+vRBVFQUZDJZs4/TarVQqVSIjIyERCLp8P4tnT7PFWcdodHZ7qQKUkcBa0bpbP71BMz33tUffe0oFkREREREd7jvvvvQs2dPXLlyBeHh4VAoFCgvLzdoU19fj4qKimavOwJuX5cklUobrZdIJG36stjWdtZOo3Owi1nm7OX1BLo+187ui7PMEREREd3hl19+wfXr1+Hn5wcAUCqVqKysREFBgdjm0KFD0Ol0CA0NNVeYRGQkPEJERERENq2mpgZXrlwRl4uLi3Hu3DnI5XLI5XKkpaUhPj4eCoUCRUVFWLJkCfr164fo6GgAwKBBgxATE4O5c+di8+bN0Gq1SE5OxvTp0znDHJEN4BEiIiIismlnz57FyJEjMXLkSABASkoKRo4ciZUrV8LJyQnnz5/Hww8/jP79+yMxMREhISH49ttvDU5327ZtGwYOHIjw8HBMnjwZ48ePx4cffmiulIjIiHiEiIiIiGxaWFgYBKH5qZ3379/fah9yuRxZWVnGDIuILASPEBERERERkd1iQURERERERHaLBREREREREdktFkRERERERGS3WBAREREREZHdYkFERERERER2iwURERERERHZLRZERERERERkt1gQERERERGR3WJBREREREREdosFERERERER2S0WREREREREZLdYEBERERERkd1yNncA1uTeV/aaOwQiIiIiIjIiHiEiIiIiIiK71e6CKC8vD1OmTIG/vz8cHBywe/dug+2CIGDlypXw8/ODm5sbIiIicPnyZYM2FRUVmDlzJmQyGby9vZGYmIiamppOJUJERERERNRe7S6IamtrMXz4cGRkZDS5fd26dXjvvfewefNmnDp1Ct26dUN0dDRu3rwptpk5cyYKCwuhUqmQnZ2NvLw8zJs3r+NZEBERERERdUC7ryGKjY1FbGxsk9sEQcA777yD5cuX45FHHgEAfPzxx/D19cXu3bsxffp0/PDDD8jJycGZM2cwatQoAMCGDRswefJkrF+/Hv7+/p1Ih4iIiIiIqO2MOqlCcXEx1Go1IiIixHVeXl4IDQ1Ffn4+pk+fjvz8fHh7e4vFEABERETA0dERp06dwqOPPtqoX41GA41GIy5XV1cDALRaLbRabbPx6LdJHYVO52Yu+ti7OoeWntfO9GfsfruSLeQAtJyHtedGRERE1F5GLYjUajUAwNfX12C9r6+vuE2tVsPHx8cwCGdnyOVysc3d0tPTkZaW1mh9bm4u3N3dW41rzShdm+K3ZF2dw759+0zSr0qlMkm/XckWcgCazqOurs4MkdyWnp6OnTt34scff4Sbmxv++Mc/4s0338SAAQPENjdv3sRLL72E7du3Q6PRIDo6Ghs3bjQYc0pKSjB//nwcPnwYHh4eSEhIQHp6OpydOakmERERNWYV3xCWLVuGlJQUcbm6uhp9+vRBVFQUZDJZs4/TarVQqVRYcdYRGp1DV4RqdFJHAWtG6bo8hwup0UbtT/9aREZGQiKRGLXvrmIL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bmf35WikOIiIiIhshn6WXD8/P4NZcvU4Sy6R7eARIiIiIrJ7nCWXyH6xICIiIiK7x1lyiewXCyIiIiKye5wll8h+8RoiIiIiIiKyWyyIiIiIiIjIbvGUOSIiG3TvK3ubXC91ErBuDDAkdX+bp3+9+kacMUMjIiKyKDxCREREREREdosFERERERER2S0WREREREREZLdYEBERERERkd1iQURERERERHaLBREREREREdktFkRERERERGS3WBAREREREZHdYkFERERERER2iwURERERERHZLRZERERERERkt1gQERERERGR3WJBREREREREdosFERERERER2a3/r717j4/p2vsH/sltJomYREJuJBGXiriURhOD4hCJSJVKW1QJdVAnFGmVnLoE1TjapzdPGkcfFedBc6pFUSURt6q4pdStUpSmLZOoPLmQmozM+v3hN/sYucgkk8zt83695iWz9po937W2WbO/e+9ZmwkRERERERHZLCZERERERERksxxNHQAREZm3tvO/Nur6rq2INer6iIiIGoIJERERERHVmbEOksgdBFaGG2VVRA3CS+aIiIiIiMhm8QwREREREZGFMeblzLZ+KTMTImoSXZP3YGX4/X/VlXYNWpetf2iJiMg2GOM7E+D3JtGj8JI5IiIiIiKyWUyIiIiIiIjIZjEhIiIiIiIim2XS3xClpqbinXfegUqlwuOPP45Vq1YhPJzzLxJRw3BssS38YTE1JY4vRNbHZAnRv//9byQmJmL16tWIiIjABx98gOjoaOTl5cHb29tUYRGRhePYYv7qk8Do7ldirB+ZE9UHxxci62SyhOi9997DlClTMGnSJADA6tWr8fXXX+PTTz/F/PnzTRUWWQBjHg0GeETY2nBsoYbg+EK14fhC1srWb7ZrkoSooqICubm5SEpKksrs7e0RGRmJnJycKvXVajXUarX0vKSkBABQVFQEjUZT4/toNBqUl5fDUWOPSq1lHlF01AqUl2stug2Aebfj1q1bdaqn+/9069YtODk5NXJU90WkZBt1fceSBtfajrKyMgCAEMKo79tUDB1bANsbX8z5s1gbS4371q1bRhs7GmM8qI2xxzyOL6YbX+r6PVdXjvfuGGc9Fvq5NpSttBP4T1t7vLkFaiO19VFjFWCE8UWYwO+//y4AiCNHjuiVz507V4SHh1epv3jxYgGADz74aKLHr7/+2lTDgVEZOrYIwfGFDz6a+sHxhQ8++GisR33HF4u4MWtSUhISExOl51qtFkVFRfDy8oKdXc3ZZ2lpKQICAvDrr79CoVA0RahGZw1tAKyjHdbQBqD2dgghUFZWBn9/fxNF1/RsbXxh3E3PUmM3dtwcX6x/fDEU22l9TNXWho4vJkmIWrZsCQcHBxQUFOiVFxQUwNfXt0p9uVwOuVyuV+bh4VHn91MoFBb/H9Aa2gBYRzusoQ1Aze1wd3c3QTTGYejYAtju+MK4m56lxm7MuDm+2Mb4Yii20/qYoq0NGV9Mch8imUyGsLAwZGf/53porVaL7OxsKJVKU4RERFaAYwsRNRaOL0TWy2SXzCUmJiI+Ph69evVCeHg4PvjgA9y5c0eauYWIqD44thBRY+H4QmSdTJYQjR49Gjdv3sSiRYugUqnQo0cP7N69Gz4+PkZ7D7lcjsWLF1c5XW1JrKENgHW0wxraAFhPO2rSFGMLYLn9yLibnqXGbqlxNyaOL8bFdlofS22rnRAWOv8lERERERFRA5nkN0RERERERETmgAkRERERERHZLCZERERERERks5gQERERERGRzbLahCg1NRVt27aFs7MzIiIicPz4cVOHVKuUlBQ8+eSTaN68Oby9vTFy5Ejk5eXp1Rk4cCDs7Oz0Hq+88oqJIq4qOTm5SnwhISHS8rt37yIhIQFeXl5wc3NDXFxclRvcmYO2bdtWaYednR0SEhIAmOd2OHToEIYPHw5/f3/Y2dlh27ZtesuFEFi0aBH8/Pzg4uKCyMhIXLp0Sa9OUVERxo0bB4VCAQ8PD0yePBm3b99uwlZYDnMbX+oyftTl85efn4/Y2Fi4urrC29sbc+fOxb1795qsHStWrICdnR1mz55t9nH//vvveOmll+Dl5QUXFxd069YNJ0+elJab62eusrISCxcuRHBwMFxcXNC+fXssW7YMD86vZK6x2wpzG18ayljjk6Wp73hmKYwxBpoVYYUyMjKETCYTn376qTh//ryYMmWK8PDwEAUFBaYOrUbR0dFi3bp14ty5c+L06dNi2LBhIjAwUNy+fVuqM2DAADFlyhRx48YN6VFSUmLCqPUtXrxYdOnSRS++mzdvSstfeeUVERAQILKzs8XJkydF7969RZ8+fUwYcfUKCwv12pCVlSUAiP379wshzHM77Nq1S7z55ptiy5YtAoDYunWr3vIVK1YId3d3sW3bNvHDDz+IZ555RgQHB4s///xTqjN06FDx+OOPi6NHj4pvv/1WdOjQQYwdO7aJW2L+zHF8qcv48ajP371790TXrl1FZGSkOHXqlNi1a5do2bKlSEpKapI2HD9+XLRt21Z0795dzJo1y6zjLioqEkFBQWLixIni2LFj4ueffxZ79uwRly9fluqY62du+fLlwsvLS+zcuVNcvXpVbN68Wbi5uYkPP/zQ7GO3BeY4vjSUMcYnS1Pf8cxSGGsMNCdWmRCFh4eLhIQE6XllZaXw9/cXKSkpJozKMIWFhQKAOHjwoFQ2YMAAvQ+WuVm8eLF4/PHHq11WXFwsnJycxObNm6WyH3/8UQAQOTk5TRRh/cyaNUu0b99eaLVaIYT5b4eHEyKtVit8fX3FO++8I5UVFxcLuVwuPvvsMyGEEBcuXBAAxIkTJ6Q633zzjbCzsxO///57k8VuCSxhfHl4/KjL52/Xrl3C3t5eqFQqqU5aWppQKBRCrVY3arxlZWWiY8eOIisrS+/zZa5xz5s3T/Tr16/G5eb8mYuNjRUvv/yyXtmoUaPEuHHjzD52W2AJ40tD1Wd8siQNGc8shTHGQHNjdZfMVVRUIDc3F5GRkVKZvb09IiMjkZOTY8LIDFNSUgIA8PT01CvfuHEjWrZsia5duyIpKQnl5eWmCK9Gly5dgr+/P9q1a4dx48YhPz8fAJCbmwuNRqO3XUJCQhAYGGjW26WiogIbNmzAyy+/DDs7O6nc3LfDg65evQqVSqXX9+7u7oiIiJD6PicnBx4eHujVq5dUJzIyEvb29jh27FiTx2yuLGV8eXj8qMvnLycnB926ddO7wWR0dDRKS0tx/vz5Ro03ISEBsbGxevGZc9zbt29Hr1698Pzzz8Pb2xs9e/bEJ598Ii03589cnz59kJ2djZ9++gkA8MMPP+Dw4cOIiYkx+9itnaWMLw1Vn/HJkjRkPLMUxhgDzY2jqQMwtj/++AOVlZVV7hrt4+ODixcvmigqw2i1WsyePRt9+/ZF165dpfIXX3wRQUFB8Pf3x5kzZzBv3jzk5eVhy5YtJoz2PyIiIpCeno5OnTrhxo0bWLJkCZ566imcO3cOKpUKMpkMHh4eeq/x8fGBSqUyTcB1sG3bNhQXF2PixIlSmblvh4fp+re6z4RumUqlgre3t95yR0dHeHp6mvX2aWqWML5UN37U5fOnUqmqbZduWWPJyMjA999/jxMnTlRZZq5x//zzz0hLS0NiYiL+/ve/48SJE3j11Vchk8kQHx9v1p+5+fPno7S0FCEhIXBwcEBlZSWWL1+OcePGSXGZa+zWzhLGl4aq7/hkKRo6nlkKY4yB5sbqEiJrkJCQgHPnzuHw4cN65VOnTpX+7tatG/z8/DB48GBcuXIF7du3b+owq9AdYQSA7t27IyIiAkFBQfj888/h4uJiwsjqb+3atYiJiYG/v79UZu7bgWxbTeOHOfr1118xa9YsZGVlwdnZ2dTh1JlWq0WvXr3w9ttvAwB69uyJc+fOYfXq1YiPjzdxdLX7/PPPsXHjRmzatAldunTB6dOnMXv2bPj7+5t97GT5LGl8MpSljmf1YcljYE2s7pK5li1bwsHBocqsHQUFBfD19TVRVHU3Y8YM7Ny5E/v370ebNm1qrRsREQEAuHz5clOEZjAPDw889thjuHz5Mnx9fVFRUYHi4mK9Oua8XX755Rfs3bsXf/3rX2utZ+7bQde/tX0mfH19UVhYqLf83r17KCoqMtvtYwrmPr7UNH7U5fPn6+tbbbt0yxpDbm4uCgsL8cQTT8DR0RGOjo44ePAgPvroIzg6OsLHx8cs4/bz80NoaKheWefOnaVLhM35Mzd37lzMnz8fY8aMQbdu3TB+/HjMmTMHKSkpZh+7tTP38aWhGjI+WQJjjGeWwhhjoLmxuoRIJpMhLCwM2dnZUplWq0V2djaUSqUJI6udEAIzZszA1q1bsW/fPgQHBz/yNadPnwZw/z+mObp9+zauXLkCPz8/hIWFwcnJSW+75OXlIT8/32y3y7p16+Dt7Y3Y2Nha65n7dggODoavr69e35eWluLYsWNS3yuVShQXFyM3N1eqs2/fPmi1WinhI/MdXx41ftTl86dUKnH27Fm9Hd2srCwoFIoqX3zGMnjwYJw9exanT5+WHr169cK4ceOkv80x7r59+1aZNvinn35CUFAQAPP+zJWXl8PeXv+r38HBAVqt1uxjt3bmOr40lDHGJ0tgjPHMUhhjDDQ7Jp7UoVFkZGQIuVwu0tPTxYULF8TUqVOFh4eH3ixE5mb69OnC3d1dHDhwQG865/LyciGEEJcvXxZLly4VJ0+eFFevXhVfffWVaNeunejfv7+JI/+P1157TRw4cEBcvXpVfPfddyIyMlK0bNlSFBYWCiHuTzcZGBgo9u3bJ06ePCmUSqVQKpUmjrp6lZWVIjAwUMybN0+v3Fy3Q1lZmTh16pQ4deqUACDee+89cerUKfHLL78IIe5Pf+nh4SG++uorcebMGTFixIhqp9Ht2bOnOHbsmDh8+LDo2LEjp9GthjmOL48aP4R49OdPN311VFSUOH36tNi9e7do1apVk027rfPwLI7mGPfx48eFo6OjWL58ubh06ZLYuHGjcHV1FRs2bJDqmOtnLj4+XrRu3VqadnvLli2iZcuW4o033jD72G2BOY4vDWWM8clSGTqeWQpjjYHmxCoTIiGEWLVqlQgMDBQymUyEh4eLo0ePmjqkWgGo9rFu3TohhBD5+fmif//+wtPTU8jlctGhQwcxd+5ck9//5kGjR48Wfn5+QiaTidatW4vRo0frzUn/559/ir/97W+iRYsWwtXVVTz77LPixo0bJoy4Znv27BEARF5enl65uW6H/fv3V/v/Jz4+XghxfwrMhQsXCh8fHyGXy8XgwYOrtO3WrVti7Nixws3NTSgUCjFp0iRRVlZmgtaYP3MbXx41fghRt8/ftWvXRExMjHBxcREtW7YUr732mtBoNE3alod3IMw17h07doiuXbsKuVwuQkJCxJo1a/SWm+tnrrS0VMyaNUsEBgYKZ2dn0a5dO/Hmm2/qTVFurrHbCnMbXxrKWOOTJarPeGYpjDEGmhM7IR64PTUREREREZENsbrfEBEREREREdUVEyIiIiIiIrJZTIiIiIiIiMhmMSEiIiIiIiKbxYSIiIiIiIhsFhMiIiIiIiKyWUyIiIiIiIjIZjEhIiIiIiIim8WEiIiIiIiIbBYTIiIiIiIisllMiIiIiIiIyGYxISIiIiIiIpvFhIiIiIiIiGwWEyIiIiIiIrJZTIiIiIiIiMhmMSEiIiIiIiKbxYSIiIiIiIhsFhMiIiIiIiKyWUyIiIiIiIjIZjEhIiIiIiIim2VTCVFycjLs7Ozq9dq2bdvi6aefNnJE1qNt27aYOHGi9PzAgQOws7PDgQMHTBaTNXu4v4mIiIiofiw6IUpPT4ednZ30cHZ2hr+/P6Kjo/HRRx+hrKzM1CHWqLy8HMnJyY2eMOiSQN3D1dUVoaGhWLBgAUpLSxv1vS3BtWvX9PrnwUfv3r1NGtuRI0eQnJyM4uJik8ZB1NQ+/vhj2NnZISIiwtShEJEJnD9/Hi+99BJat24NuVwOf39/jBs3DufPn6/3Ot9++21s27bNeEGSVXE0dQDGsHTpUgQHB0Oj0UClUuHAgQOYPXs23nvvPWzfvh3du3cHACxYsADz5883cbT3lZeXY8mSJQCAgQMHNvr7paWlwc3NDbdv30ZmZiaWL1+Offv24bvvvqv3WbPa9O/fH3/++SdkMpnR190Yxo4di2HDhumVtWrVykTR3HfkyBEsWbIEEydOhIeHh96yvLw82Ntb9PEMohpt3LgRbdu2xfHjx3H58mV06NDB1CERURPZsmULxo4dC09PT0yePBnBwcG4du0a1q5diy+++AIZGRl49tlnDV7v22+/jeeeew4jR440ftBk8awiIYqJiUGvXr2k50lJSdi3bx+efvppPPPMM/jxxx/h4uICR0dHODpaRZMN9txzz6Fly5YAgFdeeQVxcXHYsmULjh49CqVSafT3s7e3h7Ozs9HWd/fuXchkskZLAp544gm89NJLjbLuxiCXy00dAlGjuHr1Ko4cOYItW7Zg2rRp2LhxIxYvXmzqsIioCVy5cgXjx49Hu3btcOjQIb0Dk7NmzcJTTz2F8ePH48yZM2jXrp0JIyVrY7WHmAcNGoSFCxfil19+wYYNGwBU/xuidevWYdCgQfD29oZcLkdoaCjS0tJqXG9mZiZ69OgBZ2dnhIaGYsuWLVXqFBcXY/bs2QgICIBcLkeHDh3wj3/8A1qtFsD9y7R0H/IlS5ZIl2glJydL67h48SKee+45eHp6wtnZGb169cL27dv13kej0WDJkiXo2LEjnJ2d4eXlhX79+iErK6tO/QPc3/kAAK1Wiw8++ABdunSBs7MzfHx8MG3aNPzf//2f3uuEEHjrrbfQpk0buLq64i9/+Uu1p7Br+g1Ramoq2rVrBxcXF4SHh+Pbb7/FwIED9c6S6V6bkZGBBQsWoHXr1nB1dZUu8Tt27BiGDh0Kd3d3uLq6YsCAAfjuu++qxPD777/j5Zdfho+PD+RyObp06YJPP/30kX3zsIfj05k4cSLatm0rPdddfvfuu+9izZo1aN++PeRyOZ588kmcOHGiyusvXryIF154Aa1atYKLiws6deqEN998E8D9/6tz584FAAQHB0v/R65duwag+t8Q/fzzz3j++efh6ekJV1dX9O7dG19//bVeHV3ffv7551i+fDnatGkDZ2dnDB48GJcvXza4b4iMbePGjWjRogViY2Px3HPPYePGjVXq3Lp1C+PHj4dCoYCHhwfi4+Pxww8/wM7ODunp6Xp16zKWEpF5eOedd1BeXo41a9ZUuUqjZcuW+Oc//4k7d+5g5cqVAKp+D+s8vL9nZ2eHO3fuYP369dL36YPfob///jsmT54Mf39/yOVyBAcHY/r06aioqJDqGPodu2TJErRu3RrNmzfHc889h5KSEqjVasyePRve3t5wc3PDpEmToFarq8S/YcMGhIWFwcXFBZ6enhgzZgx+/fXX+nQp1ZFVny4ZP348/v73vyMzMxNTpkyptk5aWhq6dOmCZ555Bo6OjtixYwf+9re/QavVIiEhQa/upUuXMHr0aLzyyiuIj4/HunXr8Pzzz2P37t0YMmQIgPuXwg0YMAC///47pk2bhsDAQBw5cgRJSUm4ceMGPvjgA7Rq1QppaWmYPn06nn32WYwaNQoApEv7zp8/j759+6J169aYP38+mjVrhs8//xwjR47El19+KZ0qTk5ORkpKCv76178iPDwcpaWlOHnyJL7//nspnppcuXIFAODl5QUAmDZtGtLT0zFp0iS8+uqruHr1Kv77v/8bp06dwnfffQcnJycAwKJFi/DWW29h2LBhGDZsGL7//ntERUXpDRo1SUtLw4wZM/DUU09hzpw5uHbtGkaOHIkWLVqgTZs2VeovW7YMMpkMr7/+OtRqNWQyGfbt24eYmBiEhYVh8eLFsLe3l5Lab7/9FuHh4QCAgoIC9O7dG3Z2dpgxYwZatWqFb775BpMnT0ZpaSlmz56t917l5eX4448/9Mrc3d2ldhti06ZNKCsrw7Rp02BnZ4eVK1di1KhR+Pnnn6X1nTlzBk899RScnJwwdepUtG3bFleuXMGOHTuwfPlyjBo1Cj/99BM+++wzvP/++9LZvZou4ysoKECfPn1QXl6OV199FV5eXli/fj2eeeYZfPHFF1UuL1ixYgXs7e3x+uuvo6SkBCtXrsS4ceNw7Ngxg9tLZEwbN27EqFGjIJPJMHbsWKSlpeHEiRN48sknAdw/eDN8+HAcP34c06dPR0hICL766ivEx8dXWVddx1IiMg87duxA27Zt8dRTT1W7vH///mjbtm2VRORR/vd//1faV5o6dSoAoH379gCA69evIzw8HMXFxZg6dSpCQkLw+++/44svvkB5eTlkMpnB37EpKSlwcXHB/PnzcfnyZaxatQpOTk6wt7fH//3f/yE5ORlHjx5Feno6goODsWjRIum1y5cvx8KFC/HCCy/gr3/9K27evIlVq1ahf//+OHXqVJVL6MlIhAVbt26dACBOnDhRYx13d3fRs2dPIYQQixcvFg83uby8vMproqOjRbt27fTKgoKCBADx5ZdfSmUlJSXCz89PWr8QQixbtkw0a9ZM/PTTT3qvnz9/vnBwcBD5+flCCCFu3rwpAIjFixdXef/BgweLbt26ibt370plWq1W9OnTR3Ts2FEqe/zxx0VsbGyNbX+wzXl5eeLmzZvi6tWr4p///KeQy+XCx8dH3LlzR3z77bcCgNi4caPea3fv3q1XXlhYKGQymYiNjRVarVaq9/e//10AEPHx8VLZ/v37BQCxf/9+IYQQarVaeHl5iSeffFJoNBqpXnp6ugAgBgwYUOW17dq109s+Wq1WdOzYUURHR+u9f3l5uQgODhZDhgyRyiZPniz8/PzEH3/8odemMWPGCHd3d2m9V69eFQCqfehiHzBggF58OvHx8SIoKEh6rluXl5eXKCoqksq/+uorAUDs2LFDKuvfv79o3ry5+OWXX/TW+WC73nnnHQFAXL16tcp7BwUF6fX37NmzBQDx7bffSmVlZWUiODhYtG3bVlRWVgoh/tO3nTt3Fmq1Wqr74YcfCgDi7NmzVd6LqKmcPHlSABBZWVlCiPufhzZt2ohZs2ZJdb788ksBQHzwwQdSWWVlpRg0aJAAINatWyeV13UsJSLTKy4uFgDEiBEjaq33zDPPCACitLS0yvewTnX7e82aNdP73tSZMGGCsLe3r3ZfUvedbOh3bNeuXUVFRYVUd+zYscLOzk7ExMTorV+pVOrFf+3aNeHg4CCWL1+uV+/s2bPC0dGxSjkZj9VeMqfj5uZW62xzLi4u0t8lJSX4448/MGDAAPz8888oKSnRq+vv7693FEChUGDChAk4deoUVCoVAGDz5s146qmn0KJFC/zxxx/SIzIyEpWVlTh06FCt8RYVFWHfvn144YUXUFZWJr3+1q1biI6OxqVLl/D7778DADw8PHD+/HlcunTpkf3QqVMntGrVCsHBwZg2bRo6dOiAr7/+Gq6urti8eTPc3d0xZMgQvZjDwsLg5uaG/fv3AwD27t2LiooKzJw5U+9U9MNnW6pz8uRJ3Lp1C1OmTNH7Hde4cePQokWLal8THx+vt31Onz6NS5cu4cUXX8StW7ekOO/cuYPBgwfj0KFD0Gq1EELgyy+/xPDhwyGE0GtTdHQ0SkpK8P333+u919SpU5GVlaX3ePzxxx/ZruqMHj1ar026I10///wzAODmzZs4dOgQXn75ZQQGBuq9tr4TXOzatQvh4eHo16+fVObm5oapU6fi2rVruHDhgl79SZMm6U148XCMRKawceNG+Pj44C9/+QuA+5+H0aNHIyMjA5WVlQCA3bt3w8nJSe+sv729fZUz+oaMpURkerp9tebNm9daT7fcGDPlarVabNu2DcOHD9f7LbqO7jvZ0O/YCRMm6F1hEhERASEEXn75Zb16ERER+PXXX3Hv3j0A9yeU0Gq1eOGFF/T2XXx9fdGxY0dpf4yMz6ovmQOA27dvw9vbu8bl3333HRYvXoycnByUl5frLSspKYG7u7v0vEOHDlV2WB977DEA938/4uvri0uXLuHMmTM1XtpUWFhYa7yXL1+GEAILFy7EwoULa1xH69atsXTpUowYMQKPPfYYunbtiqFDh2L8+PHSpXcP+vLLL6FQKODk5IQ2bdpIp4qB+5cClpSU1NhPuph/+eUXAEDHjh31lrdq1arGpEZH99qHZ4tydHSs9vpf4P5vZx6kS/yquzRGp6SkBBqNBsXFxVizZg3WrFlTbb2Ht0PHjh0RGRlZaxvq6uEkR9c3ut9j6ZKOrl27GuX9gPv9W90UxZ07d5aWP/h+j4qRqKlVVlYiIyMDf/nLX6TfNgL3dxj+67/+C9nZ2YiKisIvv/wCPz8/uLq66r3+4bHFkLGUiExPl+g86pYpdU2c6uLmzZsoLS195PdxQ79jdfuSAQEBVcq1Wi1KSkrg5eWFS5cuQQhRZT9Lpz6X8VPdWHVC9Ntvv6GkpKTGKVuvXLmCwYMHIyQkBO+99x4CAgIgk8mwa9cuvP/++9IkCIbQarUYMmQI3njjjWqX6xKo2l4PAK+//jqio6OrraNrT//+/XHlyhV89dVXyMzMxP/8z//g/fffx+rVq/HXv/5V7zX9+/eXfodS3Xt6e3tX++NlwHTTTz94dgj4T9+888476NGjR7WvcXNzw61btwAAL730Uo3JU3VJY03s7OwghKhSrjti/TAHB4dqy6tbh6lYQoxkW/bt24cbN24gIyMDGRkZVZZv3LgRUVFRdV6fIWMpEZmeu7s7/Pz8cObMmVrrnTlzBq1bt4ZCoajxqoqavp+bSk3fsY/67tVqtbCzs8M333xTbV03NzfjBUl6rDoh+t///V8AqPHLcMeOHVCr1di+fbteNl/TKUndEccHP4A//fQTAEhnOdq3b4/bt28/8mxDTR9i3TSSTk5OdTpj4enpiUmTJmHSpEm4ffs2+vfvj+Tk5CoJUW3at2+PvXv3om/fvlWSkAcFBQUBuH+m5sHpLm/evPnIMwu6116+fFm6HAYA7t27h2vXrtUpQdGd1VIoFLX2TatWrdC8eXNUVlYa5axPixYtqr2UTHfWy1C6vjt37lyt9Qy5fC4oKAh5eXlVyi9evCgtJzJnGzduhLe3N1JTU6ss27JlC7Zu3YrVq1cjKCgI+/fvR3l5ud5ZoodnSTR0LCUi03v66afxySef4PDhw3qXp+l8++23uHbtGqZNmwbg/vdzdTcvr+77ubrv1FatWkGhUDzy+7ipvmPbt28PIQSCg4MfeQCdjMtqf0O0b98+LFu2DMHBwRg3bly1dXTZ94NHxUtKSrBu3bpq61+/fh1bt26VnpeWluJf//oXevToAV9fXwDACy+8gJycHOzZs6fK64uLi6XrRHVf5A9/kL29vTFw4ED885//xI0bN6qs4+bNm9LfujMhOm5ubujQoUO1UzjW5oUXXkBlZSWWLVtWZdm9e/ekGCMjI+Hk5IRVq1bp9dkHH3zwyPfo1asXvLy88Mknn0h9ANzfCarrZVphYWFo37493n33Xdy+fbvKcl3fODg4IC4uDl9++WW1g9yDfVgX7du3x8WLF/Ve98MPP1Q71XddtGrVCv3798enn36K/Px8vWUP9muzZs0AVP0/Up1hw4bh+PHjyMnJkcru3LmDNWvWoG3btggNDa1XrERN4c8//8SWLVvw9NNP47nnnqvymDFjBsrKyrB9+3ZER0dDo9Hgk08+kV6v1WqrJFKGjKVEZB7mzp0LFxcXTJs2rco+TlFREV555RW4urpKt6Vo3749SkpK9M4q3bhxQ29fTadZs2ZVvk/t7e0xcuRI7NixAydPnqzyGt13clN9x44aNQoODg5YsmRJlSs2hBBV+oSMxyrOEH3zzTe4ePEi7t27h4KCAuzbtw9ZWVkICgrC9u3ba7xBaFRUFGQyGYYPH45p06bh9u3b+OSTT+Dt7V3tF+hjjz2GyZMn48SJE/Dx8cGnn36KgoICvQRq7ty52L59O55++mlMnDgRYWFhuHPnDs6ePYsvvvgC165dQ8uWLeHi4oLQ0FD8+9//xmOPPQZPT0907doVXbt2RWpqKvr164du3bphypQpaNeuHQoKCpCTk4PffvsNP/zwAwAgNDQUAwcORFhYGDw9PXHy5El88cUXmDFjhkH9N2DAAEybNg0pKSk4ffo0oqKi4OTkhEuXLmHz5s348MMP8dxzz6FVq1Z4/fXXkZKSgqeffhrDhg3DqVOn8M0339R4OZ6OTCZDcnIyZs6ciUGDBuGFF17AtWvXkJ6ejvbt29fpbIi9vT3+53/+BzExMejSpQsmTZqE1q1b4/fff8f+/fuhUCiwY8cOAPenld6/fz8iIiIwZcoUhIaGoqioCN9//z327t2LoqKiOvfPyy+/jPfeew/R0dGYPHkyCgsLsXr1anTp0qXeP+r86KOP0K9fPzzxxBOYOnWqdCfur7/+GqdPnwZwPwEEgDfffBNjxoyBk5MThg8fLiVKD5o/fz4+++wzxMTE4NVXX4WnpyfWr1+Pq1ev4ssvv2y0G9oSGcP27dtRVlaGZ555ptrlvXv3RqtWrbBx40Zs3boV4eHheO2113D58mWEhIRg+/bt0mf6wbGkrmMpEZmHjh07Yv369Rg3bhy6deuGyZMnS9+Pa9euxR9//IHPPvtMumJkzJgxmDdvHp599lm8+uqrKC8vR1paGh577LEqkyeFhYVh7969eO+99+Dv74/g4GBERETg7bffRmZmJgYMGICpU6eic+fOuHHjBjZv3ozDhw/Dw8Ojyb5j27dvj7feegtJSUnSrUmaN2+Oq1evYuvWrZg6dSpef/11o7wXPaSpp7UzJt2027qHTCYTvr6+YsiQIeLDDz8UpaWlevWrm4Zx+/btonv37sLZ2Vm0bdtW/OMf/xCffvpplemOg4KCRGxsrNizZ4/o3r27kMvlIiQkRGzevLlKXGVlZSIpKUl06NBByGQy0bJlS9GnTx/x7rvv6k3DeOTIEREWFiZkMlmVKbivXLkiJkyYIHx9fYWTk5No3bq1ePrpp8UXX3wh1XnrrbdEeHi48PDwEC4uLiIkJEQsX75c7z10bb558+Yj+3PNmjUiLCxMuLi4iObNm4tu3bqJN954Q1y/fl2qU1lZKZYsWSL8/PyEi4uLGDhwoDh37lyVaaAfnnZb56OPPhJBQUFCLpeL8PBw8d1334mwsDAxdOjQKq+trm+FEOLUqVNi1KhRwsvLS8jlchEUFCReeOEFkZ2drVevoKBAJCQkiICAAOHk5CR8fX3F4MGDxZo1a6Q6uqmy33nnnVr7ZsOGDaJdu3ZCJpOJHj16iD179tQ47XZ163p4+wohxLlz58Szzz4rPDw8hLOzs+jUqZNYuHChXp1ly5aJ1q1bC3t7e73/kw/3txD3/88899xz0vrCw8PFzp079erU1Le62B+cspioqQwfPlw4OzuLO3fu1Fhn4sSJwsnJSfzxxx/i5s2b4sUXXxTNmzcX7u7uYuLEieK7774TAERGRobe6+oylhKReTlz5owYO3as8PPzk76/x44dW+2tITIzM0XXrl2FTCYTnTp1Ehs2bKh2f+/ixYuif//+wsXFpcqtQn755RcxYcIE0apVKyGXy0W7du1EQkKC3u0pGvIdW9NtYmraR/vyyy9Fv379RLNmzUSzZs1ESEiISEhIEHl5eQb1I9WdnRD8FTWZjlarRatWrTBq1Ci9S2CIiAyxbds2PPvsszh8+DD69u1r6nCIiMiC8DoaajJ3796tck3sv/71LxQVFWHgwIGmCYqILM6ff/6p97yyshKrVq2CQqHAE088YaKoiIjIUlnFb4jIMhw9ehRz5szB888/Dy8vL3z//fdYu3Ytunbtiueff97U4RGRhZg5cyb+/PNPKJVKqNVqbNmyBUeOHMHbb79d60yZRERE1WFCRE2mbdu2CAgIwEcffYSioiJ4enpiwoQJWLFiBWQymanDIyILMWjQIPzXf/0Xdu7cibt376JDhw5YtWqVwRPKEBERAQB/Q0RERERERDaLvyEiIiIiIiKbxYSIiIiIiIhslkX+hkir1eL69eto3rx5nW7oSUR1I4RAWVkZ/P39bfZmrhxfiBoHxxeOL0SNpaHji0UmRNevX0dAQICpwyCyWr/++ivatGlj6jBMguMLUePi+MLxhaix1Hd8sciEqHnz5gDuN9rFxQWZmZmIioqCk5OTiSOzfBqNhv1pJJbYl6WlpQgICJA+Y7bowfFFoVBI5Za4PRsD+4F9ANSvDzi+1Dy+PMwa/o9ZehssPX7AttrQ0PHFIhMi3WlmhUIBFxcXuLq6QqFQWOzGNicajYb9aSSW3Je2fCnHg+PLwwmRpW5PY2I/sA+AhvUBx5eq48vDrOH/mKW3wdLjB2yzDfUdX2zzIl4iIiIiIiIwISIiIiIiIhvGhIiIiIiIiGwWEyIiMgtpaWno3r27dG29UqnEN998Iy2/e/cuEhIS4OXlBTc3N8TFxaGgoEBvHfn5+YiNjYWrqyu8vb0xd+5c3Lt3r6mbQkRmJjk5GXZ2dnqPkJAQaTnHFyLbxoSIiMxCmzZtsGLFCuTm5uLkyZMYNGgQRowYgfPnzwMA5syZgx07dmDz5s04ePAgrl+/jlGjRkmvr6ysRGxsLCoqKnDkyBGsX78e6enpWLRokamaRERmpEuXLrhx44b0OHz4sLSM4wuRbbPIWeaIyPoMHz5c7/ny5cuRlpaGo0ePok2bNli7di02bdqEQYMGAQDWrVuHzp074+jRo+jduzcyMzNx4cIF7N27Fz4+PujRoweWLVuGefPmITk5GTKZzBTNIiIz4ejoCF9f3yrlJSUlHF+IbBzPEBGR2amsrERGRgbu3LkDpVKJ3NxcaDQaREZGSnVCQkIQGBiInJwcAEBOTg66desGHx8fqU50dDRKS0uls0xEZLsuXboEf39/tGvXDuPGjUN+fj4AcHwhIp4hIiLzcfbsWSiVSty9exdubm7YunUrQkNDcfr0achkMnh4eOjV9/HxgUqlAgCoVCq9nRXdct2ymqjVaqjVaul5aWkpgPv3PtBoNFK57u8Hy2wR+4F9ANSvD0zZXxEREUhPT0enTp1w48YNLFmyBE899RTOnTsHlUpl8vHlYdbwf8zS22Dp8QO21YaGttHqE6K287822rqurYg12rqIqKpOnTrh9OnTKCkpwRdffIH4+HgcPHiwUd8zJSUFS5YsqVKemZkJV1fXKuVZWVmNGo+lYD+wDwDD+qC8vLwRI6ldTEyM9Hf37t0RERGBoKAgfP7553BxcWm09zV0fHmYNfwfs/Q2WHr8gG20oaHji9UnRERkOWQyGTp06AAACAsLw4kTJ/Dhhx9i9OjRqKioQHFxsd5R3IKCAuk3Ab6+vjh+/Lje+nSzRFX3uwGdpKQkJCYmSs9LS0sREBCAqKgovTvJazQaZGVlYciQIdLdsrsm72lYgx9wLjnaaOtqTNX1g61hH9SvD3RnR8yBh4cHHnvsMVy+fBlDhgwx+fjyMF3/LjxpD7XWrj5N1GOK8cXSPyeWHj9gW21o6PjChIiIzJZWq4VarUZYWBicnJyQnZ2NuLg4AEBeXh7y8/OhVCoBAEqlEsuXL0dhYSG8vb0B3D+ipFAoEBoaWuN7yOVyyOXyKuVOTk7VDr4PlqsrG76j8uB6LUlN/WNL2AeG9YE59dXt27dx5coVjB8/3qzGl4eptXZGGWdM2feW/jmx9PgB22hDQ9vHhIiIzEJSUhJiYmIQGBiIsrIybNq0CQcOHMCePXvg7u6OyZMnIzExEZ6enlAoFJg5cyaUSiV69+4NAIiKikJoaCjGjx+PlStXQqVSYcGCBUhISKh2h4SIbMfrr7+O4cOHIygoCNevX8fixYvh4OCAsWPHcnwhIiZERGQeCgsLMWHCBNy4cQPu7u7o3r079uzZgyFDhgAA3n//fdjb2yMuLg5qtRrR0dH4+OOPpdc7ODhg586dmD59OpRKJZo1a4b4+HgsXbrUVE0iIjPx22+/YezYsbh16xZatWqFfv364ejRo2jVqhUAji9Eto4JERGZhbVr19a63NnZGampqUhNTa2xTlBQEHbt2mXs0IjIwmVkZNS6nOMLkW3jfYiIiIiIiMhmGZQQpaWloXv37lAoFFAoFFAqlfjmm2+k5Xfv3kVCQgK8vLzg5uaGuLg4aRYWnfz8fMTGxsLV1RXe3t6YO3cu7t27Z5zWEBERERERGcCghKhNmzZYsWIFcnNzcfLkSQwaNAgjRoyQ7tI8Z84c7NixA5s3b8bBgwdx/fp1jBo1Snp9ZWUlYmNjUVFRgSNHjmD9+vVIT0/HokWLjNsqIiIiIiKiOjDoN0TDhw/Xe758+XKkpaXh6NGjaNOmDdauXYtNmzZh0KBBAIB169ahc+fOOHr0KHr37o3MzExcuHABe/fuhY+PD3r06IFly5Zh3rx5SE5OhkwmM17LiIiIiIiIHqHekypUVlZi8+bNuHPnDpRKJXJzc6HRaBAZGSnVCQkJQWBgIHJyctC7d2/k5OSgW7du8PHxkepER0dj+vTpOH/+PHr27Fnte6nVaqjVaum57uZLGo0Gjo6O0t/VkTuI+jaxiprew5ro2mgLbW1sltiXlhQrERERkTEYnBCdPXsWSqUSd+/ehZubG7Zu3YrQ0FCcPn0aMplM7y7PAODj4wOVSgUAUKlUesmQbrluWU1SUlKwZMmSKuWZmZlwdXUFcP8GadVZGV7npj2SLc0uU1N/kuEsqS/Ly8tNHQIRERFRkzI4IerUqRNOnz6NkpISfPHFF4iPj8fBgwcbIzZJUlISEhMTpeelpaUICAhAVFQUXFxckJWVhSFDhlR7l9quyXuMFse55GijrctcaTSaWvuT6s4S+1J39pWIiIjIVhicEMlkMnTo0AEAEBYWhhMnTuDDDz/E6NGjUVFRgeLiYr2zRAUFBfD19QUA+Pr64vjx43rr081Cp6tTHblcXu2doJ2cnKQdzQf/fpC60s6wBtbCUnZqjaGm/iTDWVJfWkqcRERERMbS4PsQabVaqNVqhIWFwcnJCdnZ2dKyvLw85OfnQ6lUAgCUSiXOnj2LwsJCqU5WVhYUCgVCQ0MbGgoREREREZFBDDpDlJSUhJiYGAQGBqKsrAybNm3CgQMHsGfPHri7u2Py5MlITEyEp6cnFAoFZs6cCaVSid69ewMAoqKiEBoaivHjx2PlypVQqVRYsGABEhISqj0DRERERERE1JgMSogKCwsxYcIE3LhxA+7u7ujevTv27NmDIUOGAADef/992NvbIy4uDmq1GtHR0fj444+l1zs4OGDnzp2YPn06lEolmjVrhvj4eCxdutS4rSIiIiIiIqoDgxKitWvX1rrc2dkZqampSE1NrbFOUFCQTc3WRkRERERE5qvBvyEiIiIiIiKyVEyIiIiIiIjIZjEhIiIiIiIim8WEiIiIiIiIbBYTIiIiIiIisllMiIiIiIiIyGYxISIiIiIiIpvFhIiIiIiIiGwWEyIiIiIiIrJZTIiIiIiIiMhmMSEiIiIiIiKbxYSIiMxCSkoKnnzySTRv3hze3t4YOXIk8vLy9OoMHDgQdnZ2eo9XXnlFr05+fj5iY2Ph6uoKb29vzJ07F/fu3WvKphAREZEFcTR1AEREAHDw4EEkJCTgySefxL179/D3v/8dUVFRuHDhApo1aybVmzJlCpYuXSo9d3V1lf6urKxEbGwsfH19ceTIEdy4cQMTJkyAk5MT3n777SZtDxEREVkGJkREZBZ2796t9zw9PR3e3t7Izc1F//79pXJXV1f4+vpWu47MzExcuHABe/fuhY+PD3r06IFly5Zh3rx5SE5Ohkwma9Q2EBERkeXhJXNEZJZKSkoAAJ6ennrlGzduRMuWLdG1a1ckJSWhvLxcWpaTk4Nu3brBx8dHKouOjkZpaSnOnz/fNIETERGRReEZIiIyO1qtFrNnz0bfvn3RtWtXqfzFF19EUFAQ/P39cebMGcybNw95eXnYsmULAEClUuklQwCk5yqVqtr3UqvVUKvV0vPS0lIAgEajgUajkcp1fz9YJncQDWmmngfXa86q6wdbwz6oXx/Ycn8RkXljQkREZichIQHnzp3D4cOH9cqnTp0q/d2tWzf4+flh8ODBuHLlCtq3b1+v90pJScGSJUuqlGdmZur9PkknKytL+ntleL3eslq7du0y3sqawIP9YKvYB4b1wYNnc4mIzAkTIiIyKzNmzMDOnTtx6NAhtGnTpta6ERERAIDLly+jffv28PX1xfHjx/XqFBQUAECNvztKSkpCYmKi9Ly0tBQBAQGIioqCQqGQyjUaDbKysjBkyBA4OTkBALom7zG8gTU4lxxttHU1pur6wdawD+rXB7qzr0RE5oYJERGZBSEEZs6cia1bt+LAgQMIDg5+5GtOnz4NAPDz8wMAKJVKLF++HIWFhfD29gZw/wi2QqFAaGhoteuQy+WQy+VVyp2cnKrd0XuwXF1pV6e21YWl7VjX1D+2hH1gWB+YU1+tWLECSUlJmDVrFj744AMAwN27d/Haa68hIyMDarUa0dHR+Pjjj/Uuw83Pz8f06dOxf/9+uLm5IT4+HikpKXB05O4UkSXjpApEZBYSEhKwYcMGbNq0Cc2bN4dKpYJKpcKff/4JALhy5QqWLVuG3NxcXLt2Ddu3b8eECRPQv39/dO/eHQAQFRWF0NBQjB8/Hj/88AP27NmDBQsWICEhodqkh4hsz4kTJ/DPf/5TGjd05syZgx07dmDz5s04ePAgrl+/jlGjRknLddP6V1RU4MiRI1i/fj3S09OxaNGipm4CERkZEyIiMgtpaWkoKSnBwIED4efnJz3+/e9/AwBkMhn27t2LqKgohISE4LXXXkNcXBx27NghrcPBwQE7d+6Eg4MDlEolXnrpJUyYMEHvvkVEZLtu376NcePG4ZNPPkGLFi2k8pKSEqxduxbvvfceBg0ahLCwMKxbtw5HjhzB0aNHAfxnWv8NGzagR48eiImJwbJly5CamoqKigpTNYmIjMCgc7wpKSnYsmULLl68CBcXF/Tp0wf/+Mc/0KlTJ6nOwIEDcfDgQb3XTZs2DatXr5ae85QzET1MiNpnbAsICKgytlQnKCjI4iYoIKKmkZCQgNjYWERGRuKtt96SynNzc6HRaBAZGSmVhYSEIDAwEDk5Oejdu3eN0/pPnz4d58+fR8+ePau8X11nsXyYbpnc3jgzWZpihj9Ln43R0uMHbKsNDW2jQRkI7yRPREREligjIwPff/89Tpw4UWWZSqWCTCaDh4eHXrmPj480ZX99pvU3dBbLhy3rpX1knbow5UEiS5+N0dLjB2yjDQ2dxdKghIh3kiciIiJL8+uvv2LWrFnIysqCs7Nzk71vXWexfJhuFr+FJ+2h1jZ88hZTzGJp6bMxWnr8gG21oaGzWDboGrXa7iS/YcMG+Pr6Yvjw4Vi4cKF0JMTYp5x1l9nVdKrMFm+c2BDWcHrVXFhiX1pSrEREdZWbm4vCwkI88cQTUlllZSUOHTqE//7v/8aePXtQUVGB4uJivbNEBQUF0gHe+kzrb+gslg9Ta+2MMpulKXeGLX02RkuPH7CNNjS0ffVOiJryTvJ1OeVc06k0W75xYkNYw+lVc2FJfckbJxKRNRo8eDDOnj2rVzZp0iSEhIRg3rx5CAgIgJOTE7KzsxEXFwcAyMvLQ35+PpRKJYD6TetPRJah3glRU95JvrZTzi4uLrWeSrPFGyc2hDWcXjUXltiXvHEiEVmj5s2b6x28BYBmzZrBy8tLKp88eTISExPh6ekJhUKBmTNnQqlUonfv3gD0p/VfuXIlVCoVp/UnshL1Soia+k7ydTnlXNOpNFu+cWJDWMPpVXNhSX1pKXESERnb+++/D3t7e8TFxendmFVHN63/9OnToVQq0axZM8THx3NafyIrYFBCZKo7yRMREREZ04EDB/SeOzs7IzU1FampqTW+htP6E1kngxKihIQEbNq0CV999ZV0J3kAcHd3h4uLC65cuYJNmzZh2LBh8PLywpkzZzBnzpwa7yTPU85ERERERGRK9oZU5p3kiYiIiIjImhh8yVxteCd5IiIiIiKyJAadISIiIiIiIrImTIiIiIiIiMhmMSEiIiIiIiKbxYSIiIiIiIhsFhMiIiIiIiKyWUyIiIiIiIjIZjEhIiIiIiIim8WEiIiIiIiIbBYTIiIiIiIisllMiIiIiIiIyGYxISIiIiIiIpvFhIiIiIiIiGwWEyIiIiIiIrJZTIiIyCykpKTgySefRPPmzeHt7Y2RI0ciLy9Pr87du3eRkJAALy8vuLm5IS4uDgUFBXp18vPzERsbC1dXV3h7e2Pu3Lm4d+9eUzaFiIiILAgTIiIyCwcPHkRCQgKOHj2KrKwsaDQaREVF4c6dO1KdOXPmYMeOHdi8eTMOHjyI69evY9SoUdLyyspKxMbGoqKiAkeOHMH69euRnp6ORYsWmaJJREREZAEcTR0AEREA7N69W+95eno6vL29kZubi/79+6OkpARr167Fpk2bMGjQIADAunXr0LlzZxw9ehS9e/dGZmYmLly4gL1798LHxwc9evTAsmXLMG/ePCQnJ0Mmk5miaURERGTGmBARkVkqKSkBAHh6egIAcnNzodFoEBkZKdUJCQlBYGAgcnJy0Lt3b+Tk5KBbt27w8fGR6kRHR2P69Ok4f/48evbsWeV91Go11Gq19Ly0tBQAoNFooNFopHLd3w+WyR2EMZpaZb3mrLp+sDXsg/r1gS33FxGZNyZERGR2tFotZs+ejb59+6Jr164AAJVKBZlMBg8PD726Pj4+UKlUUp0HkyHdct2y6qSkpGDJkiVVyjMzM+Hq6lqlPCsrS/p7ZXjd2/Qou3btMt7KmsCD/WCr2AeG9UF5eXkjRkJEVH9MiIjI7CQkJODcuXM4fPhwo79XUlISEhMTpeelpaUICAhAVFQUFAqFVK7RaJCVlYUhQ4bAyckJANA1eY/R4jiXHG20dTWm6vrB1rAP6tcHurOvRETmhgkREZmVGTNmYOfOnTh06BDatGkjlfv6+qKiogLFxcV6Z4kKCgrg6+sr1Tl+/Lje+nSz0OnqPEwul0Mul1cpd3JyqnZH78FydaWdYY2rhaXtWNfUP7aEfWBYH9h6XxGR+eIsc0RkFoQQmDFjBrZu3Yp9+/YhODhYb3lYWBicnJyQnZ0tleXl5SE/Px9KpRIAoFQqcfbsWRQWFkp1srKyoFAoEBoa2jQNISIiIoti0BmilJQUbNmyBRcvXoSLiwv69OmDf/zjH+jUqZNU5+7du3jttdeQkZEBtVqN6OhofPzxx3rX9efn52P69OnYv38/3NzcEB8fj5SUFDg6mvcJq7bzvzbq+q6tiDXq+ogsWUJCAjZt2oSvvvoKzZs3l37z4+7uDhcXF7i7u2Py5MlITEyEp6cnFAoFZs6cCaVSid69ewMAoqKiEBoaivHjx2PlypVQqVRYsGABEhISqj0LRERERGTQGSLeJ4SIGktaWhpKSkowcOBA+Pn5SY9///vfUp33338fTz/9NOLi4tC/f3/4+vpiy5Yt0nIHBwfs3LkTDg4OUCqVeOmllzBhwgQsXbrUFE0iIiIiC2DQKRneJ4SIGosQj57C2tnZGampqUhNTa2xTlBQkMXN2EZERESm06Br1MzhPiG6y+xqur+BMe8TYmzmeE8G3l/DeCyxLy0pViIiIiJjqHdCZG73CanpXgjGvE+IsZnzUWzeX8N4LKkveZ8QIiIisjX1TojM5T4hLi4utd4LwZj3CTE2c7zvCO+vYTyW2Je8TwgRERHZmnolROZ4n5Ca7oVgzPuEGJs57yTz/hrGY0l9aSlxEhEZIi0tDWlpabh27RoAoEuXLli0aBFiYmIAWPcMuUT0aAbNMsf7hBAREZGladOmDVasWIHc3FycPHkSgwYNwogRI3D+/HkAnCGXyNYZdFiD9wkhIiIiSzN8+HC958uXL0daWhqOHj2KNm3acIZcIhtnUEKUlpYGABg4cKBe+bp16zBx4kQA9+8TYm9vj7i4OL3Tzjq6+4RMnz4dSqUSzZo1Q3x8PO8TQkRERI2usrISmzdvxp07d6BUKhtthlyg9llya5vVU7dMbm+cmXJNMYOoJc60+iBLjx+wrTY0tI0GJUS8TwgRERFZorNnz0KpVOLu3btwc3PD1q1bERoaitOnTzfKDLlA3WbJrc2yXtpH1qkLU+5zWdJMq9Wx9PgB22hDQ2fJ5S8BiYiIyOp16tQJp0+fRklJCb744gvEx8fj4MGDjfqetc2Sq1AoanydbpbShSftodY2fHIoU8xqa4kzrT7I0uMHbKsNDZ0llwkRERERWT2ZTIYOHToAuD8J1IkTJ/Dhhx9i9OjRjTJDLlC3WXJro9baGWW2XFPuDFvSTKvVsfT4AdtoQ0PbZ9Asc0RERETWQKvVQq1Wc4ZcIuIZIiIiIrJuSUlJiImJQWBgIMrKyrBp0yYcOHAAe/bs4Qy5RMSEiIiIiKxbYWEhJkyYgBs3bsDd3R3du3fHnj17MGTIEACcIZfI1jEhIiIiIqu2du3aWpdzhlwi28bfEBERERERkc1iQkRERERERDaLCREREREREdksJkRERERERGSzmBAREREREZHNYkJEREREREQ2i9NuExERERGR0bSd/7VR1iN3EFgZbpRV1YpniIiIiIiIyGYxISIiIiIiIpvFS+aIyCwcOnQI77zzDnJzc3Hjxg1s3boVI0eOlJZPnDgR69ev13tNdHQ0du/eLT0vKirCzJkzsWPHDtjb2yMuLg4ffvgh3NzcmqoZ9Wasywt0rq2INer6iIiIrBXPEBGRWbhz5w4ef/xxpKam1lhn6NChuHHjhvT47LPP9JaPGzcO58+fR1ZWFnbu3IlDhw5h6tSpjR06ERERWTCeISIisxATE4OYmJha68jlcvj6+la77Mcff8Tu3btx4sQJ9OrVCwCwatUqDBs2DO+++y78/f2NHjMRERFZPiZERGQxDhw4AG9vb7Ro0QKDBg3CW2+9BS8vLwBATk4OPDw8pGQIACIjI2Fvb49jx47h2WefrXadarUaarVael5aWgoA0Gg00Gg0Urnu7wfL5A7CeI0zsgfjbIz1Ntb6LQH7oH59YMv9RUTmjQkREVmEoUOHYtSoUQgODsaVK1fw97//HTExMcjJyYGDgwNUKhW8vb31XuPo6AhPT0+oVKoa15uSkoIlS5ZUKc/MzISrq2uV8qysLOnvppgKtL527drVqOt/sB9sFfvAsD4oLy9vxEiIiOqPCRERWYQxY8ZIf3fr1g3du3dH+/btceDAAQwePLje601KSkJiYqL0vLS0FAEBAYiKioJCoZDKNRoNsrKyMGTIEDg5OQEAuibvqff7NrZzydGNst7q+sHWsA/q1we6s69ERObG4ITI1meCIiLz0K5dO7Rs2RKXL1/G4MGD4evri8LCQr069+7dQ1FRUY2/OwLu/y5JLpdXKXdycqp2R+/BcnWlXQNb0Xgae0e9pv6xJewDw/rA1vuKiMyXwbPMcSYoIjIHv/32G27dugU/Pz8AgFKpRHFxMXJzc6U6+/btg1arRUREhKnCJCIiIjNn8BkizgRFRI3h9u3buHz5svT86tWrOH36NDw9PeHp6YklS5YgLi4Ovr6+uHLlCt544w106NAB0dH3Lw3r3Lkzhg4diilTpmD16tXQaDSYMWMGxowZw3GFiIiIatQovyEy9kxQtc0C5ejoKP1dHVucBaohOHuS8VhiX5oy1pMnT+Ivf/mL9Fz3u574+HikpaXhzJkzWL9+PYqLi+Hv74+oqCgsW7ZM73K3jRs3YsaMGRg8eLB0Oe5HH33U5G0hIiIiy2H0hKgxZoKqyyxQNc10Y8uzQDUEZ08yHkvqS1POAjVw4EAIUfMBjD17Hj2BgaenJzZt2mTMsIiIiMjKGT0haoyZoGqbBcrFxaXWmW5scRaohuDsScZjiX3JWaCIiIjI1jT6tNvGmAmqLrNA1TTTjS3PAtUQnD3JeCypLy0lTiIiIiJjMXiWOUNxJigiIiIiIjJXBp8h4kxQRERERERkLQw+Q3Ty5En07NkTPXv2BHB/JqiePXti0aJFcHBwwJkzZ/DMM8/gsccew+TJkxEWFoZvv/22ykxQISEhGDx4MIYNG4Z+/fphzZo1xmsVERERERFRHRh8hogzQRERERERkbVo9N8QERERERERmSsmREREREREZLMafdptqlnb+V8bdX3XVsQadX1ERERERNaOZ4iIiIjIqqWkpODJJ59E8+bN4e3tjZEjRyIvL0+vzt27d5GQkAAvLy+4ubkhLi4OBQUFenXy8/MRGxsLV1dXeHt7Y+7cubh3715TNoWIGgETIiIiIrJqBw8eREJCAo4ePYqsrCxoNBpERUXhzp07Up05c+Zgx44d2Lx5Mw4ePIjr169j1KhR0vLKykrExsaioqICR44cwfr165Geno5FixaZoklEZES8ZI6IiIis2u7du/Wep6enw9vbG7m5uejfvz9KSkqwdu1abNq0CYMGDQIArFu3Dp07d8bRo0fRu3dvZGZm4sKFC9i7dy98fHzQo0cPLFu2DPPmzUNycjJkMpkpmkZERsAzRERERGRTSkpKANy/DQgA5ObmQqPRIDIyUqoTEhKCwMBA5OTkAABycnLQrVs3+Pj4SHWio6NRWlqK8+fPN2H0RGRsPENERERENkOr1WL27Nno27cvunbtCgBQqVSQyWTw8PDQq+vj4wOVSiXVeTAZ0i3XLauOWq2GWq2WnpeWlgIANBoNNBpNjTHqlsnta77voyFqe6/GontPU7y3MVh6/IBp2yB3MM7/Xd1n4FFtaGgbmRARERGRzUhISMC5c+dw+PDhRn+vlJQULFmypEp5ZmYmXF1dH/n6Zb20Rolj165dRllPfWRlZZnsvY3B0uMHTNOGleHGXd+j2lBeXt6g9TMhIiIiIpswY8YM7Ny5E4cOHUKbNm2kcl9fX1RUVKC4uFjvLFFBQQF8fX2lOsePH9dbn24WOl2dhyUlJSExMVF6XlpaioCAAERFRUGhUNQYp0ajQVZWFhaetIdaa2dwOx92Ljm6weswlK4NQ4YMgZOTU5O/f0NZevyAadvQNXmPUdYjtxdY1kv7yDbozr7WFxMiIiIismpCCMycORNbt27FgQMHEBwcrLc8LCwMTk5OyM7ORlxcHAAgLy8P+fn5UCqVAAClUonly5ejsLAQ3t7eAO4ftVYoFAgNDa32feVyOeRyeZVyJyenOu2gqrV2UFc2PCEy5Q59Xdtqriw9fsA0bTDG/9sHPaoNDW0fEyIiIiKyagkJCdi0aRO++uorNG/eXPrNj7u7O1xcXODu7o7JkycjMTERnp6eUCgUmDlzJpRKJXr37g0AiIqKQmhoKMaPH4+VK1dCpVJhwYIFSEhIqDbpISLLwYSIiIiIrFpaWhoAYODAgXrl69atw8SJEwEA77//Puzt7REXFwe1Wo3o6Gh8/PHHUl0HBwfs3LkT06dPh1KpRLNmzRAfH4+lS5c2VTOIqJEwISIiIiKrJsSjZ7xydnZGamoqUlNTa6wTFBRk0gkKiKhx8D5ERERERERks5gQERERERGRzWJCRERERERENosJERGZhUOHDmH48OHw9/eHnZ0dtm3bprdcCIFFixbBz88PLi4uiIyMxKVLl/TqFBUVYdy4cVAoFPDw8MDkyZNx+/btJmwFERERWRomRERkFu7cuYPHH3+8xh80r1y5Eh999BFWr16NY8eOoVmzZoiOjsbdu3elOuPGjcP58+eRlZUl3Xxx6tSpTdUEIiIiskCcZY6IzEJMTAxiYmKqXSaEwAcffIAFCxZgxIgRAIB//etf8PHxwbZt2zBmzBj8+OOP2L17N06cOIFevXoBAFatWoVhw4bh3Xffhb+/f5O1hYiIiCwHEyIiMntXr16FSqVCZGSkVObu7o6IiAjk5ORgzJgxyMnJgYeHh5QMAUBkZCTs7e1x7NgxPPvss9WuW61WQ61WS89LS0sBABqNBhqNRirX/f1gmdzh0VP5msqDcTbGehtr/ZaAfVC/PrDl/iIi82ZwQnTo0CG88847yM3NxY0bN7B161aMHDlSWi6EwOLFi/HJJ5+guLgYffv2RVpaGjp27CjVKSoqwsyZM7Fjxw7pJmgffvgh3NzcjNIoIrIuurvK+/j46JX7+PhIy1QqFby9vfWWOzo6wtPTU6pTnZSUFCxZsqRKeWZmJlxdXauUZ2VlSX+vDK97G5paY98r5cF+sFXsA8P6oLy8vBEjISKqP4MTIt11/i+//DJGjRpVZbnuOv/169cjODgYCxcuRHR0NC5cuABnZ2cA96/zv3HjBrKysqDRaDBp0iRMnToVmzZtaniLiIgMkJSUhMTEROl5aWkpAgICEBUVBYVCIZVrNBpkZWVhyJAhcHJyAgB0Td7T5PHW1bnk6EZZb3X9YGvYB/XrA93ZVyIic2NwQsTr/Imoqfn6+gIACgoK4OfnJ5UXFBSgR48eUp3CwkK91927dw9FRUXS66sjl8shl8urlDs5OVW7o/dgubrSzuC2NJXG3lGvqX9sCfvAsD6w9b4iIvNl1N8QNdZ1/rVd4+/o6Cj9XR1zvsbf2IxxfTavjTceS+xLc401ODgYvr6+yM7OlhKg0tJSHDt2DNOnTwcAKJVKFBcXIzc3F2FhYQCAffv2QavVIiIiwlShExERkZkzakLUWNf51+Ua/5quYzbna/yNzZi/GeC18cZjSX1pymv8b9++jcuXL0vPr169itOnT8PT0xOBgYGYPXs23nrrLXTs2FG6HNff31/6DWPnzp0xdOhQTJkyBatXr4ZGo8GMGTMwZswYnnkmIiKiGlnELHO1XePv4uJS63XM5nyNv7EZ4zcDvDbeeCyxL015jf/Jkyfxl7/8RXqu+8zHx8cjPT0db7zxBu7cuYOpU6eiuLgY/fr1w+7du6XfJgLAxo0bMWPGDAwePFiasOWjjz5q8rYQERGR5TBqQtRY1/nX5Rr/mq5jNudr/I3NmDvdvDbeeCypL00Z58CBAyFEzZe42tnZYenSpVi6dGmNdTw9PTk5y//Xdv7XRlvXtRWxRlsXERGRubE35soevM5fR3edv1KpBKB/nb8Or/MnIiIiIiJTMPgMEa/zJyIiIiIia2FwQsTr/ImIiIiIyFoYnBDxOn8iItvy4O+R5A4CK8PvT1hT399o8jdJRERkToz6GyIiIiIiIiJLwoSIiIiIiIhsFhMiIiIiIiKyWUyIiIiIiIjIZjEhIiIiIiIim8WEiIiIiIiIbBYTIiIiIiIisllMiIiIiIiIyGYxISIiIiIiIpvFhIiIiIiIiGwWEyIiIiIiIrJZTIiIiIiIiMhmMSEiIiIiq3bo0CEMHz4c/v7+sLOzw7Zt2/SWCyGwaNEi+Pn5wcXFBZGRkbh06ZJenaKiIowbNw4KhQIeHh6YPHkybt++3YStIKLGwoSIiIiIrNqdO3fw+OOPIzU1tdrlK1euxEcffYTVq1fj2LFjaNasGaKjo3H37l2pzrhx43D+/HlkZWVh586dOHToEKZOndpUTSCiRuRo6gCIiIiIGlNMTAxiYmKqXSaEwAcffIAFCxZgxIgRAIB//etf8PHxwbZt2zBmzBj8+OOP2L17N06cOIFevXoBAFatWoVhw4bh3Xffhb+/f5O1hYiMj2eIiIiIyGZdvXoVKpUKkZGRUpm7uzsiIiKQk5MDAMjJyYGHh4eUDAFAZGQk7O3tcezYsSaPmYiMi2eIiIiIyGapVCoAgI+Pj165j4+PtEylUsHb21tvuaOjIzw9PaU61VGr1VCr1dLz0tJSAIBGo4FGo6nxdbplcnthQEtqVtt7NRbde5rivY3B0uMHTNsGuYNx/u/qPgOPakND28iEiIiIiKgRpKSkYMmSJVXKMzMz4erq+sjXL+ulNUocu3btMsp66iMrK8tk720Mlh4/YJo2rAw37voe1Yby8vIGrZ8JEREREdksX19fAEBBQQH8/Pyk8oKCAvTo0UOqU1hYqPe6e/fuoaioSHp9dZKSkpCYmCg9Ly0tRUBAAKKioqBQKGp8nUajQVZWFhaetIdaa1efZuk5lxzd4HUYSteGIUOGwMnJqcnfv6EsPX7AtG3omrzHKOuR2wss66V9ZBt0Z1/riwkREVmM5OTkKkdbO3XqhIsXLwIA7t69i9deew0ZGRlQq9WIjo7Gxx9/XOVSGCIineDgYPj6+iI7O1tKgEpLS3Hs2DFMnz4dAKBUKlFcXIzc3FyEhYUBAPbt2wetVouIiIga1y2XyyGXy6uUOzk51WkHVa21g7qy4QmRKXfo69pWc2Xp8QOmaYMx/t8+6FFtaGj7mBBZkbbzv27wOuQOwuinOYmMqUuXLti7d6/03NHxP8PYnDlz8PXXX2Pz5s1wd3fHjBkzMGrUKHz33XemCJWIzMTt27dx+fJl6fnVq1dx+vRpeHp6IjAwELNnz8Zbb72Fjh07Ijg4GAsXLoS/vz9GjhwJAOjcuTOGDh2KKVOmYPXq1dBoNJgxYwbGjBnDGeaIrIDRZ5lLTk6GnZ2d3iMkJERafvfuXSQkJMDLywtubm6Ii4tDQUGBscMgIivl6OgIX19f6dGyZUsAQElJCdauXYv33nsPgwYNQlhYGNatW4cjR47g6NGjJo6aiEzp5MmT6NmzJ3r27AkASExMRM+ePbFo0SIAwBtvvIGZM2di6tSpePLJJ3H79m3s3r0bzs7O0jo2btyIkJAQDB48GMOGDUO/fv2wZs0ak7SHiIyrUc4Q8QguETWWS5cuwd/fH87OzlAqlUhJSUFgYCByc3Oh0Wj0ps4NCQlBYGAgcnJy0Lt372rXV9dZoKqbrcdYs+hYEt2MPw2Z/arTmzuNFQ6Apv99hDXMPtVQ9ekDU/bXwIEDIUTN/2ft7OywdOlSLF26tMY6np6e2LRpU2OER0Qm1igJke4I7sN0R3A3bdqEQYMGAQDWrVuHzp074+jRozXusBARAUBERATS09PRqVMn3LhxA0uWLMFTTz2Fc+fOQaVSQSaTwcPDQ+81D06dWx1DZ4F6cKYbW7681FizXxmDqWbQsobZpxrKkD5o6CxQRESNpVESoqY8gqs7+1TTkSdbPILbEHWd750ezRKPIpt7rA/eab579+6IiIhAUFAQPv/8c7i4uNRrnXWdBaq62XqMNYuOJdHN+GOs2a+MwRRniCx99qmGqk8fNHQWKCKixmL0hMhUR3BrOkply0dwG4JHPo3HkvrS0o7genh44LHHHsPly5cxZMgQVFRUoLi4WG+MKSgoqHVaXENngXqw3Niz6FgSY81+ZQymSkqsYfaphjKkD2y9r4jIfBk9IWrqI7guLi61HqWyxSO4DVHX+d7p0SzxKLKlHcG9ffs2rly5gvHjxyMsLAxOTk7Izs5GXFwcACAvLw/5+flQKpUmjpSIiIjMVaNPu91UR3BrOkplLkcwLQ2PfBqPJfWlucf5+uuvY/jw4QgKCsL169exePFiODg4YOzYsXB3d8fkyZORmJgIT09PKBQKzJw5E0qlkr9PJCIiohoZfdrth+mO4Pr5+ekdwdXhEVwiqqvffvsNY8eORadOnfDCCy/Ay8sLR48eRatWrQAA77//Pp5++mnExcWhf//+8PX1xZYtW0wcNREREZkzo58h4hFcImosGRkZtS53dnZGamoqUlNTmygiIiIisnRGT4h0R3Bv3bqFVq1aoV+/flWO4Nrb2yMuLg5qtRrR0dH4+OOPjR0GERERERHRIxk9IeIRXCIiIiIishSN/hsiIiIiIiIic8WEiIiIiIiIbFajT7tNRETUmNrO/9po67q2ItZo6yIiIsvAM0RERERERGSzmBAREREREZHNYkJEREREREQ2iwkRERERERHZLCZERERERERkszjLHBER0f9Xlxnr5A4CK8OBrsl7oK60q7UuZ60jIjJ/TIioWnX5ojcEdwqIiIiIyBzxkjkiIiIiIrJZTIiIiIiIiMhmMSEiIiIiIiKbxYSIiIiIiIhsFidVICIiaiR1mbWurjg5DRFR4+AZIiIiIiIislk8Q0RNgkdJiYiIiMgc8QwRERERERHZLCZERERERERks5gQERERERGRzWJCRERERERENsukCVFqairatm0LZ2dnRERE4Pjx46YMh4isBMcWImosHF+IrI/JEqJ///vfSExMxOLFi/H999/j8ccfR3R0NAoLC00VEhFZAY4tRNRYOL4QWSeTTbv93nvvYcqUKZg0aRIAYPXq1fj666/x6aefYv78+aYKiyyAMafwNjZjTwlu7LbawpTlHFvIWnE8MD2OL0TWySQJUUVFBXJzc5GUlCSV2dvbIzIyEjk5OVXqq9VqqNVq6XlJSQkAoKioCM7OzigvL8etW7fg5ORU5bWO9+40Qgusl6NWoLxcC0eNPSq1dqYOx+LcunVL+luj0dT6f7MujP3/98H4qlNWVgYAEEIY9X2biqFjC1D7+KLRaKTy6ranLY4vHCOspw8eNR7Upj7jG8eXmseXh+n611j/xxqyrevLGN+BpmTp8QOmbYOxvh914+2j2tDQ8cUkCdEff/yByspK+Pj46JX7+Pjg4sWLVeqnpKRgyZIlVcqDg4MbLUZb9qKpA7BgLf/L1BHUrq7xlZWVwd3dvXGDaQSGji0Ax5f64BhhHX1gqvGK40vTjy/m/t1EVBtDxtv6ji8mu2TOEElJSUhMTJSea7VaFBUVwcvLC2VlZQgICMCvv/4KhUJhwiitQ2lpKfvTSCyxL4UQKCsrg7+/v6lDaTK1jS92dv85MmuJ27MxsB/YB0D9+oDjS83jy8Os4f+YpbfB0uMHbKsNDR1fTJIQtWzZEg4ODigoKNArLygogK+vb5X6crkccrlcr8zDwwMApAFFoVBY7MY2R+xP47G0vrTEI7c6ho4tQO3jS3UsbXs2FvYD+wAwvA84vtQ+vjzMGv6PWXobLD1+wHba0JDxxSSzzMlkMoSFhSE7O1sq02q1yM7OhlKpNEVIRGQFOLYQUWPh+EJkvUx2yVxiYiLi4+PRq1cvhIeH44MPPsCdO3ekmVuIiOqDYwsRNRaOL0TWyWQJ0ejRo3Hz5k0sWrQIKpUKPXr0wO7du6v8WPFR5HI5Fi9eXOWUNNUP+9N42JemYayx5WHcnvexH9gHgO32QWONLw+zhv619DZYevwA22AIO2Gp818SERERERE1kEl+Q0RERERERGQOmBAREREREZHNYkJEREREREQ2iwkRERERERHZLItPiFJTU9G2bVs4OzsjIiICx48fN3VIFunQoUMYPnw4/P39YWdnh23btpk6JIuVkpKCJ598Es2bN4e3tzdGjhyJvLw8U4dFdVSX7Xf37l0kJCTAy8sLbm5uiIuLq3KzRmuyYsUK2NnZYfbs2VKZLfTB77//jpdeegleXl5wcXFBt27dcPLkSWm5EAKLFi2Cn58fXFxcEBkZiUuXLpkwYuOqrKzEwoULERwcDBcXF7Rv3x7Lli3Dg3MxWXsfGIuh+yqbN29GSEgInJ2d0a1bN+zatUtvuSn63ZA2fPLJJ3jqqafQokULtGjRApGRkVXqT5w4EXZ2dnqPoUOHmk0b0tPTq8Tn7OysV8fct8PAgQOrtMHOzg6xsbFSnabcDvXZ1zxw4ACeeOIJyOVydOjQAenp6VXqGCUXEBYsIyNDyGQy8emnn4rz58+LKVOmCA8PD1FQUGDq0CzOrl27xJtvvim2bNkiAIitW7eaOiSLFR0dLdatWyfOnTsnTp8+LYYNGyYCAwPF7du3TR0a1UFdtt8rr7wiAgICRHZ2tjh58qTo3bu36NOnjwmjbjzHjx8Xbdu2Fd27dxezZs2Syq29D4qKikRQUJCYOHGiOHbsmPj555/Fnj17xOXLl6U6K1asEO7u7mLbtm3ihx9+EM8884wIDg4Wf/75pwkjN57ly5cLLy8vsXPnTnH16lWxefNm4ebmJj788EOpjrX3gTEYuq/y3XffCQcHB7Fy5Upx4cIFsWDBAuHk5CTOnj0r1Wnqfje0DS+++KJITU0Vp06dEj/++KOYOHGicHd3F7/99ptUJz4+XgwdOlTcuHFDehQVFTVK/PVpw7p164RCodCLT6VS6dUx9+1w69YtvfjPnTsnHBwcxLp166Q6TbkdDN3X/Pnnn4Wrq6tITEwUFy5cEKtWrRIODg5i9+7dUh1j5QIWnRCFh4eLhIQE6XllZaXw9/cXKSkpJozK8jEhMq7CwkIBQBw8eNDUoVA9PLz9iouLhZOTk9i8ebNU58cffxQARE5OjqnCbBRlZWWiY8eOIisrSwwYMEBKiGyhD+bNmyf69etX43KtVit8fX3FO++8I5UVFxcLuVwuPvvss6YIsdHFxsaKl19+Wa9s1KhRYty4cUII2+gDYzB0X+WFF14QsbGxemURERFi2rRpQgjT9HtD97fu3bsnmjdvLtavXy+VxcfHixEjRhg71BoZ2oZ169YJd3f3Gtdnidvh/fffF82bN9c7wNfU20GnLvuab7zxhujSpYte2ejRo0V0dLT03Fi5gMVeMldRUYHc3FxERkZKZfb29oiMjEROTo4JIyPSV1JSAgDw9PQ0cSRUHw9vv9zcXGg0Gr2xJyQkBIGBgVY39iQkJCA2NlavrYBt9MH27dvRq1cvPP/88/D29kbPnj3xySefSMuvXr0KlUql1wfu7u6IiIiwmj7o06cPsrOz8dNPPwEAfvjhBxw+fBgxMTEAbKMPGqo++yo5OTlVPnPR0dFS/abud2Psb5WXl0Oj0VT5Hjxw4AC8vb3RqVMnTJ8+Hbdu3TJq7Dr1bcPt27cRFBSEgIAAjBgxAufPn5eWWeJ2WLt2LcaMGYNmzZrplTfVdjDUoz4LxswFLDYh+uOPP1BZWVnl7tA+Pj5QqVQmiopIn1arxezZs9G3b1907drV1OGQgarbfiqVCjKZDB4eHnp1rW3sycjIwPfff4+UlJQqy2yhD37++WekpaWhY8eO2LNnD6ZPn45XX30V69evBwCpndb8HTR//nyMGTMGISEhcHJyQs+ePTF79myMGzcOgG30QUPVZ19FpVLVWr+p+90Y+1vz5s2Dv7+/3o7r0KFD8a9//QvZ2dn4xz/+gYMHDyImJgaVlZVGjR+oXxs6deqETz/9FF999RU2bNgArVaLPn364LfffgNgedvh+PHjOHfuHP7617/qlTfldjBUTZ+F0tJS/Pnnn0bNBRwbHC0R1SghIQHnzp3D4cOHTR0K1YOtbr9ff/0Vs2bNQlZWVpUfEdsKrVaLXr164e233wYA9OzZE+fOncPq1asRHx9v4uiaxueff46NGzdi06ZN6NKlC06fPo3Zs2fD39/fZvqAGm7FihXIyMjAgQMH9MaTMWPGSH9369YN3bt3R/v27XHgwAEMHjzYFKHqUSqVUCqV0vM+ffqgc+fO+Oc//4lly5aZMLL6Wbt2Lbp164bw8HC9cnPfDk3FYs8QtWzZEg4ODlVmNSooKICvr6+JoiL6jxkzZmDnzp3Yv38/2rRpY+pwyEA1bT9fX19UVFSguLhYr741jT25ubkoLCzEE088AUdHRzg6OuLgwYP46KOP4OjoCB8fH6vvAz8/P4SGhuqVde7cGfn5+QAgtdOav4Pmzp0rnSXq1q0bxo8fjzlz5khnDW2hDxqqPvsqvr6+tdZv6n5vyP7Wu+++ixUrViAzMxPdu3evtW67du3QsmVLXL58ucExP8wY+4y6s6S6+CxpO9y5cwcZGRmYPHnyI9+nMbeDoWr6LCgUCri4uBg1F7DYhEgmkyEsLAzZ2dlSmVarRXZ2tl5GT9TUhBCYMWMGtm7din379iE4ONjUIZEBHrX9wsLC4OTkpDf25OXlIT8/32rGnsGDB+Ps2bM4ffq09OjVqxfGjRsn/W3tfdC3b98q063/9NNPCAoKAgAEBwfD19dXrw9KS0tx7Ngxq+mD8vJy2Nvr7yY4ODhAq9UCsI0+aKj67KsolUq9+gCQlZUl1W/qfq/v/tbKlSuxbNky7N69G7169Xrk+/z222+4desW/Pz8jBL3g4yxz1hZWYmzZ89K8VnKdgDuT+OuVqvx0ksvPfJ9GnM7GOpRnwWj5gIGTcFgZjIyMoRcLhfp6eniwoULYurUqcLDw6PKtIj0aGVlZeLUqVPi1KlTAoB47733xKlTp8Qvv/xi6tAszvTp04W7u7s4cOCA3jSW5eXlpg6N6qAu2++VV14RgYGBYt++feLkyZNCqVQKpVJpwqgb34OzzAlh/X1w/Phx4ejoKJYvXy4uXbokNm7cKFxdXcWGDRukOitWrBAeHh7iq6++EmfOnBEjRoywqimn4+PjRevWraVpt7ds2SJatmwp3njjDamOtfeBMTxqX2X8+PFi/vz5Uv3vvvtOODo6infffVf8+OOPYvHixdVOu92U/W5oG1asWCFkMpn44osv9MbRsrIyIcT9fY7XX39d5OTkiKtXr4q9e/eKJ554QnTs2FHcvXvXLNqwZMkSsWfPHnHlyhWRm5srxowZI5ydncX58+f12mnO20GnX79+YvTo0VXKm3o7PGpfc/78+WL8+PFSfd2023PnzhU//vijSE1NrXbabWPkAhadEAkhxKpVq0RgYKCQyWQiPDxcHD161NQhWaT9+/cLAFUe8fHxpg7N4lTXjwD05v0n81WX7ffnn3+Kv/3tb6JFixbC1dVVPPvss+LGjRumC7oJPJwQ2UIf7NixQ3Tt2lXI5XIREhIi1qxZo7dcq9WKhQsXCh8fHyGXy8XgwYNFXl6eiaI1vtLSUjFr1iwRGBgonJ2dRbt27cSbb74p1Gq1VMfa+8BYattXGTBgQJXv2s8//1w89thjQiaTiS5duoivv/5ab7kp+t2QNgQFBVU7ji5evFgIIUR5ebmIiooSrVq1Ek5OTiIoKEhMmTKl0Q9oG9KG2bNnS3V9fHzEsGHDxPfff6+3PnPfDkIIcfHiRQFAZGZmVllXU2+HR+1rxsfHiwEDBlR5TY8ePYRMJhPt2rWrdl/KGLmAnRAP3HKaiIiIiIjIhljsb4iIiIiIiIgaigkRERERERHZLCZERERERERks5gQERERERGRzWJCRERERERENosJERERERER2SwmREREREREZLOYEBERERERkc1iQkRERERERDaLCREREREREdksJkRERERERGSzmBAREREREZHN+n+NIacuc2JUBAAAAABJRU5ErkJggg==",
"text/plain": [
- "