diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c39c51b..d2027c5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -236,6 +236,28 @@ jobs: rabbit_fit.py $RABBIT_OUTDIR/test_tensor.hdf5 -o $RABBIT_OUTDIR/ -t 0 --postfix blinded --setConstraintMinimum bkg_2_norm 0.5 --doImpacts --globalImpacts + - name: pseudodata fit + run: >- + rabbit_fit.py $RABBIT_OUTDIR/test_tensor.hdf5 -o $RABBIT_OUTDIR/ --postfix pseudodata + -t 0 --pseudoData original --doImpacts --globalImpacts --unblind ^sig$ + + + alternative-fits: + runs-on: [self-hosted, linux, x64] + needs: [setenv, make-tensor] + + steps: + - env: + RABBIT_OUTDIR: ${{ needs.setenv.outputs.RABBIT_OUTDIR }} + PYTHONPATH: ${{ needs.setenv.outputs.PYTHONPATH }} + PATH: ${{ needs.setenv.outputs.PATH }} + run: | + echo "RABBIT_OUTDIR=${RABBIT_OUTDIR}" >> $GITHUB_ENV + echo "PYTHONPATH=${PYTHONPATH}" >> $GITHUB_ENV + echo "PATH=${PATH}" >> $GITHUB_ENV + + - uses: actions/checkout@v4 + - name: sparse tensor fit run: >- rabbit_fit.py $RABBIT_OUTDIR/test_tensor_sparse.hdf5 -o $RABBIT_OUTDIR/ --postfix sparse @@ -243,11 +265,6 @@ jobs: --saveHists --saveHistsPerProcess --computeHistErrors --computeHistErrorsPerProcess -m Project ch1 a -m Project ch1 b - - name: pseudodata fit - run: >- - rabbit_fit.py $RABBIT_OUTDIR/test_tensor.hdf5 -o $RABBIT_OUTDIR/ --postfix pseudodata - -t 0 --pseudoData original --doImpacts --globalImpacts --unblind ^sig$ - - name: covariance fit run: >- rabbit_fit.py $RABBIT_OUTDIR/test_tensor.hdf5 -o $RABBIT_OUTDIR/ --postfix covariance @@ -262,11 +279,44 @@ jobs: --saveHists --saveHistsPerProcess --computeHistErrors --computeHistErrorsPerProcess --computeHistImpacts --computeHistCov -m Project ch1 a -m Project ch1 b - - name: chi2 fit with Barlow--Beeston full + - name: Barlow--Beeston full (gamma) + run: >- + rabbit_fit.py $RABBIT_OUTDIR/test_tensor_symmetric.hdf5 -o $RABBIT_OUTDIR/ --postfix nonlinear + -t 0 --doImpacts --globalImpacts --globalImpactsDisableJVP --binByBinStatType gamma --binByBinStatMode full + --saveHists --saveHistsPerProcess --computeHistErrors --computeHistErrorsPerProcess + --computeHistImpacts --computeHistCov -m Project ch1 a -m Project ch1 b + + - name: chi2 fit with Barlow--Beeston full (normal-multiplicative) run: >- rabbit_fit.py $RABBIT_OUTDIR/test_tensor_symmetric.hdf5 -o $RABBIT_OUTDIR/ --postfix bb_full -t 0 --globalImpacts --binByBinStatType normal-multiplicative --binByBinStatMode full + regularization: + runs-on: [self-hosted, linux, x64] + needs: [setenv, make-tensor] + steps: + - env: + RABBIT_OUTDIR: ${{ needs.setenv.outputs.RABBIT_OUTDIR }} + PYTHONPATH: ${{ needs.setenv.outputs.PYTHONPATH }} + PATH: ${{ needs.setenv.outputs.PATH }} + WEB_DIR: ${{ needs.setenv.outputs.WEB_DIR }} + PLOT_DIR: ${{ needs.setenv.outputs.PLOT_DIR }} + run: | + echo "RABBIT_OUTDIR=${RABBIT_OUTDIR}" >> $GITHUB_ENV + echo "PYTHONPATH=${PYTHONPATH}" >> $GITHUB_ENV + echo "PATH=${PATH}" >> $GITHUB_ENV + echo "WEB_DIR=${WEB_DIR}" >> $GITHUB_ENV + echo "PLOT_DIR=${PLOT_DIR}" >> $GITHUB_ENV + + - name: lcurve scan + run: >- + rabbit_fit.py $RABBIT_OUTDIR/test_tensor.hdf5 -o $RABBIT_OUTDIR/ --postfix lcurve_scan + -t 0 --unblind -r SVD Select 'ch0_masked' -r SVD Select 'ch0_masked'--earlyStopping 15 + + - name: plot lcurve + run: >- + python tests/plot_epoch_loss_time.py results/fitresults_lcurve_scan.hdf5 -o $WEB_DIR/$PLOT_DIR --types lcurve --title Experiment --subtitle 'Work in progress' + bsm: runs-on: [self-hosted, linux, x64] needs: [setenv, make-tensor] @@ -431,7 +481,7 @@ jobs: copy-clean: runs-on: [self-hosted, linux, x64] - needs: [setenv, symmerizations, bsm, plotting, likelihoodscans] + needs: [setenv, symmerizations, alternative-fits, bsm, regularization, plotting, likelihoodscans] if: always() steps: - env: diff --git a/bin/rabbit_fit.py b/bin/rabbit_fit.py index 44893f1..60a7543 100755 --- a/bin/rabbit_fit.py +++ b/bin/rabbit_fit.py @@ -13,6 +13,8 @@ from rabbit.mappings import helpers as mh from rabbit.mappings import mapping as mp from rabbit.poi_models import helpers as ph +from rabbit.regularization import helpers as rh +from rabbit.regularization.lcurve import l_curve_optimize_tau, l_curve_scan_tau from rabbit.tfhelpers import edmval_cov from wums import output_tools, logging # isort: skip @@ -21,7 +23,7 @@ def make_parser(): - parser = parsing.common_parser() + parser = parsing.common_parser("Perform binned profilme maximum likelihood fits") parser.add_argument("--outname", default="fitresults.hdf5", help="output file name") parser.add_argument( "--fullNll", @@ -149,6 +151,12 @@ def make_parser(): type=str, help="Specify result from external postfit file", ) + parser.add_argument( + "--noFit", + default=False, + action="store_true", + help="Do not not perform the minimization.", + ) parser.add_argument( "--noPostfitProfileBB", default=False, @@ -182,7 +190,24 @@ def make_parser(): action="store_true", help="compute impacts of frozen (non-profiled) systematics", ) - + parser.add_argument( + "--lCurveScan", + default=False, + action="store_true", + help="For use with regularization, scan the L curve versus values for tau", + ) + parser.add_argument( + "--lCurveOptimize", + default=False, + action="store_true", + help="For use with regularization, find the value of tau that maximizes the curvature", + ) + parser.add_argument( + "--regularizationStrength", + default=0.0, + type=float, + help="For use with regularization, set the regularization strength (tau)", + ) return parser.parse_args() @@ -281,7 +306,21 @@ def fit(args, fitter, ws, dofit=True): edmval = None if args.externalPostfit is not None: - fitter.load_fitresult(args.externalPostfit, args.externalPostfitResult) + fitter.load_fitresult( + args.externalPostfit, + args.externalPostfitResult, + profile=not args.noPostfitProfileBB, + ) + + if args.lCurveScan: + tau_values, l_curve_values = l_curve_scan_tau(fitter) + ws.add_1D_integer_hist(tau_values, "step", "tau") + ws.add_1D_integer_hist(l_curve_values, "step", "lcurve") + + if args.lCurveOptimize: + best_tau, max_curvature = l_curve_optimize_tau(fitter) + ws.add_1D_integer_hist([best_tau], "best", "tau") + ws.add_1D_integer_hist([max_curvature], "best", "lcurve") if dofit: cb = fitter.minimize() @@ -293,7 +332,8 @@ def fit(args, fitter, ws, dofit=True): fitter._profile_beta() if cb is not None: - ws.add_loss_time_hist(cb.loss_history, cb.time_history) + ws.add_1D_integer_hist(cb.loss_history, "epoch", "loss") + ws.add_1D_integer_hist(cb.time_history, "epoch", "time") if not args.noHessian: # compute the covariance matrix and estimated distance to minimum @@ -477,6 +517,14 @@ def main(): mp.CompositeMapping(mappings), ] + ifitter.tau.assign(args.regularizationStrength) + regularizers = [] + for margs in args.regularization: + mapping = mh.load_mapping(margs[1], indata, *margs[2:]) + regularizer = rh.load_regularizer(margs[0], mapping, dtype=indata.dtype) + regularizers.append(regularizer) + ifitter.regularizers = regularizers + np.random.seed(args.seed) tf.random.set_seed(args.seed) @@ -560,7 +608,7 @@ def main(): if not args.prefitOnly: ifitter.set_blinding_offsets(blind=blinded_fits[i]) - fit(args, ifitter, ws, dofit=ifit >= 0) + fit(args, ifitter, ws, dofit=ifit >= 0 and not args.noFit) fit_time.append(time.time()) if args.saveHists: diff --git a/notebooks/tutorial_1_getting_started.ipynb b/notebooks/tutorial_1_getting_started.ipynb index 891553d..44006e5 100644 --- a/notebooks/tutorial_1_getting_started.ipynb +++ b/notebooks/tutorial_1_getting_started.ipynb @@ -91,7 +91,7 @@ "output_type": "stream", "text": [ "RABBIT_BASE: /home/david/work/Repos/rabbit\n", - "PATH: /home/david/work/Repos/rabbit/bin:/home/david/work/Repos/rabbit/env/bin:/home/david/.local/bin:/home/david/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin\n" + "PATH: /home/david/work/Repos/rabbit/env/bin:/home/david/.local/bin:/home/david/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/david/work/Repos/rabbit/bin\n" ] } ], @@ -158,7 +158,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "a52d336a", "metadata": {}, "outputs": [], @@ -215,25 +215,25 @@ "name": "stdout", "output_type": "stream", "text": [ - " ┌───────────────────────────────────────────────────────────┐\n", - "[-inf, 0) 0 │ │\n", - "[ 0, 0.1) 1325 │█████████████████████████████████████ │\n", - "[ 0.1, 0.2) 927 │█████████████████████████▉ │\n", - "[ 0.2, 0.3) 773 │█████████████████████▋ │\n", - "[ 0.3, 0.4) 1152 │████████████████████████████████▏ │\n", - "[ 0.4, 0.5) 2078 │██████████████████████████████████████████████████████████ │\n", - "[ 0.5, 0.6) 1969 │███████████████████████████████████████████████████████ │\n", - "[ 0.6, 0.7) 901 │█████████████████████████▏ │\n", - "[ 0.7, 0.8) 318 │████████▉ │\n", - "[ 0.8, 0.9) 250 │███████ │\n", - "[ 0.9, 1) 211 │█████▉ │\n", - "[ 1, inf) 0 │ │\n", - " └───────────────────────────────────────────────────────────┘\n" + " ┌──────────────────────────────────────────────────────────┐\n", + "[-inf, 0) 0 │ │\n", + "[ 0, 0.1) 216.6 │█████████████████████████████████████████████████████████ │\n", + "[ 0.1, 0.2) 195.9 │███████████████████████████████████████████████████▌ │\n", + "[ 0.2, 0.3) 193.3 │██████████████████████████████████████████████████▉ │\n", + "[ 0.3, 0.4) 199.1 │████████████████████████████████████████████████████▍ │\n", + "[ 0.4, 0.5) 203.3 │█████████████████████████████████████████████████████▌ │\n", + "[ 0.5, 0.6) 211.2 │███████████████████████████████████████████████████████▋ │\n", + "[ 0.6, 0.7) 187.4 │█████████████████████████████████████████████████▍ │\n", + "[ 0.7, 0.8) 191.7 │██████████████████████████████████████████████████▌ │\n", + "[ 0.8, 0.9) 209.9 │███████████████████████████████████████████████████████▎ │\n", + "[ 0.9, 1) 201.2 │█████████████████████████████████████████████████████ │\n", + "[ 1, inf) 0 │ │\n", + " └──────────────────────────────────────────────────────────┘\n" ] } ], "source": [ - "print(h_data)" + "print(h_flat)" ] }, { @@ -355,7 +355,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "id": "e9d85087", "metadata": {}, "outputs": [], @@ -392,7 +392,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "id": "756b3ded", "metadata": {}, "outputs": [ @@ -400,14 +400,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "2026-02-27 20:02:50.498638: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", - "2026-02-27 20:02:50.499025: I tensorflow/core/util/port.cc:153] 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", - "2026-02-27 20:02:50.555823: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", + "2026-03-15 19:33:32.230214: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", + "2026-03-15 19:33:32.230521: I tensorflow/core/util/port.cc:153] 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", + "2026-03-15 19:33:32.265862: 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", - "2026-02-27 20:02:51.916086: I tensorflow/core/util/port.cc:153] 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", - "2026-02-27 20:02:51.916466: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", + "2026-03-15 19:33:33.145917: I tensorflow/core/util/port.cc:153] 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", + "2026-03-15 19:33:33.146202: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", "\u001b[38;21mINFO:debug_inputdata.py: Debugging input file: results/getting_started/input.hdf5\u001b[0m\n", - "2026-02-27 20:02:52.713861: E external/local_xla/xla/stream_executor/cuda/cuda_platform.cc:51] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n", + "2026-03-15 19:33:33.712921: E external/local_xla/xla/stream_executor/cuda/cuda_platform.cc:51] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n", "ch0 {'axes': [Regular(10, 0, 1, name='x')], 'masked': False, 'flow': False, 'start': 0, 'stop': 10}\n", "\u001b[38;21mINFO:debug_inputdata.py: ✓ Successfully created FitDebugData object\u001b[0m\n", "\u001b[38;21mINFO:debug_inputdata.py: \n", @@ -443,7 +443,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 10, "id": "57e1b712", "metadata": {}, "outputs": [ @@ -451,13 +451,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "2026-02-27 20:06:26.836494: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", - "2026-02-27 20:06:26.836876: I tensorflow/core/util/port.cc:153] 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", - "2026-02-27 20:06:26.890034: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", + "2026-03-15 19:33:44.185281: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", + "2026-03-15 19:33:44.185589: I tensorflow/core/util/port.cc:153] 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", + "2026-03-15 19:33:44.227512: 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", - "2026-02-27 20:06:28.214774: I tensorflow/core/util/port.cc:153] 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", - "2026-02-27 20:06:28.215161: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", - "2026-02-27 20:06:28.772799: E external/local_xla/xla/stream_executor/cuda/cuda_platform.cc:51] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n", + "2026-03-15 19:33:45.107593: I tensorflow/core/util/port.cc:153] 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", + "2026-03-15 19:33:45.107878: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", + "2026-03-15 19:33:45.473938: E external/local_xla/xla/stream_executor/cuda/cuda_platform.cc:51] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n", "ch0 {'axes': [Regular(10, 0, 1, name='x')], 'masked': False, 'flow': False, 'start': 0, 'stop': 10}\n", "\u001b[38;21mINFO:rabbit_plot_inputdata.py: Make plots for channel: ch0\u001b[0m\n", "\u001b[38;21mINFO:rabbit_plot_inputdata.py: Make plot(s) with axes ['x']\u001b[0m\n", @@ -508,17 +508,17 @@ "By default fits to data are **blinded**: a random offset is applied to the POIs so the true data result is not visible until you add `--unblind`.\n", "\n", "To start with, we perform a fit to the Asimov dataset using `-t -1` and save:\n", - "- the expected prefit and postfit distribution (--saveHists) for each process (--saveHistsPerProcess) and the total uncertainties (--computeHistErrors)\n", - "- the effect of the systematic variations (--computeVariations)\n", - "- the uncertainty breakdown on the signal strength modifier following the traditional (--doImpacts) and global impacts definition (--globalImpacts)\n", + "- the expected prefit and postfit distribution (`--saveHists`) for each process (`--saveHistsPerProcess`) and the total uncertainties (`--computeHistErrors`)\n", + "- the effect of the systematic variations (`--computeVariations`)\n", + "- the uncertainty breakdown on the signal strength modifier following the traditional (`--doImpacts`) and global impacts definition (`--globalImpacts`)\n", "\n", - "When the fit terminates it prints out the estimated distance to the minimum (edmval). If the edmval is large (e.g. larger than 10^{-9}) it is a sign that the fit has not converged. \n", + "When the fit terminates it prints out the estimated distance to the minimum (edmval). If the edmval is large (e.g. larger than $10^{-9}$) it is a sign that the fit has not converged. \n", "It also prints the p-value from the saturated likelihood test in the asymptotic limit. This tells you how well your model describes the data." ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 11, "id": "ff440189", "metadata": {}, "outputs": [ @@ -526,13 +526,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "2026-02-27 20:09:32.214496: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", - "2026-02-27 20:09:32.214868: I tensorflow/core/util/port.cc:153] 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", - "2026-02-27 20:09:32.267018: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", + "2026-03-15 19:33:50.797558: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", + "2026-03-15 19:33:50.797905: I tensorflow/core/util/port.cc:153] 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", + "2026-03-15 19:33:50.833069: 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", - "2026-02-27 20:09:33.680090: I tensorflow/core/util/port.cc:153] 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", - "2026-02-27 20:09:33.680512: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", - "2026-02-27 20:09:36.024914: E external/local_xla/xla/stream_executor/cuda/cuda_platform.cc:51] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n", + "2026-03-15 19:33:51.771872: I tensorflow/core/util/port.cc:153] 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", + "2026-03-15 19:33:51.772152: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", + "2026-03-15 19:33:53.471400: E external/local_xla/xla/stream_executor/cuda/cuda_platform.cc:51] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n", "ch0 {'axes': [Regular(10, 0, 1, name='x')], 'masked': False, 'flow': False, 'start': 0, 'stop': 10}\n", "Save data histogram for BaseMapping\n", "\u001b[38;21mINFO:rabbit_fit.py: Save inclusive histogram for BaseMapping\u001b[0m\n", @@ -547,7 +547,7 @@ "/home/david/work/Repos/rabbit/env/lib/python3.12/site-packages/wums/ioutils.py:161: FutureWarning: .metadata was not set, returning None instead of Attribute error, boost-histogram 1.7+ will error.\n", " (axes, obj.storage_type(), obj.metadata, obj.label, obj.name, h5buf),\n", "Results written in file ./results/getting_started/fitresults.hdf5\n", - "\u001b[38;21mINFO:rabbit_fit.py: 9.14 seconds total time\u001b[0m\n" + "\u001b[38;21mINFO:rabbit_fit.py: 6.97 seconds total time\u001b[0m\n" ] } ], @@ -556,6 +556,247 @@ "--saveHists --saveHistsPerProcess --computeHistErrors --computeVariations --doImpacts --globalImpacts" ] }, + { + "cell_type": "markdown", + "id": "6ead14d2", + "metadata": {}, + "source": [ + "Various settings can be specified via command line options, see:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "3b30aab9", + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2026-03-15 19:34:03.925662: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", + "2026-03-15 19:34:03.925959: I tensorflow/core/util/port.cc:153] 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", + "2026-03-15 19:34:03.961242: 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", + "2026-03-15 19:34:04.910623: I tensorflow/core/util/port.cc:153] 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", + "2026-03-15 19:34:04.910883: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", + "usage: rabbit_fit.py [-h] [-v {0,1,2,3,4}] [--noColorLogger] [-o OUTPUT]\n", + " [--postfix POSTFIX] [--eager] [--diagnostics]\n", + " [--earlyStopping EARLYSTOPPING]\n", + " [--minimizerMethod {trust-krylov,trust-exact,BFGS,L-BFGS-B,CG,trust-ncg,dogleg}]\n", + " [--chisqFit] [--covarianceFit] [--noHessian]\n", + " [--prefitUnconstrainedNuisanceUncertainty PREFITUNCONSTRAINEDNUISANCEUNCERTAINTY]\n", + " [--unblind [UNBLIND ...]]\n", + " [--setConstraintMinimum SETCONSTRAINTMINIMUM SETCONSTRAINTMINIMUM]\n", + " [--freezeParameters FREEZEPARAMETERS [FREEZEPARAMETERS ...]]\n", + " [--pseudoData [PSEUDODATA ...]] [-t TOYS [TOYS ...]]\n", + " [--toysSystRandomize {frequentist,bayesian,none}]\n", + " [--toysDataRandomize {poisson,normal,none}]\n", + " [--toysDataMode {expected,observed}]\n", + " [--toysRandomizeParameters] [--seed SEED]\n", + " [--expectSignal EXPECTSIGNAL EXPECTSIGNAL]\n", + " [--allowNegativePOI] [--noBinByBinStat]\n", + " [--binByBinStatType {automatic,gamma,normal-additive,normal-multiplicative}]\n", + " [--binByBinStatMode {lite,full}]\n", + " [--poiModel POIMODEL [POIMODEL ...]]\n", + " [-m MAPPING [MAPPING ...]] [--compositeMapping]\n", + " [-r REGULARIZATION [REGULARIZATION ...]]\n", + " [--outname OUTNAME] [--fullNll]\n", + " [--contourScan [CONTOURSCAN ...]]\n", + " [--contourLevels CONTOURLEVELS [CONTOURLEVELS ...]]\n", + " [--contourScan2D CONTOURSCAN2D [CONTOURSCAN2D ...]]\n", + " [--scan [SCAN ...]] [--scan2D SCAN2D [SCAN2D ...]]\n", + " [--scanPoints SCANPOINTS] [--scanRange SCANRANGE]\n", + " [--scanRangeUsePrefit] [--prefitOnly] [--saveHists]\n", + " [--saveHistsPerProcess] [--computeHistErrors]\n", + " [--computeHistErrorsPerProcess] [--computeHistCov]\n", + " [--computeHistImpacts] [--computeVariations] [--noChi2]\n", + " [--externalPostfit EXTERNALPOSTFIT]\n", + " [--externalPostfitResult EXTERNALPOSTFITRESULT] [--noFit]\n", + " [--noPostfitProfileBB] [--doImpacts] [--globalImpacts]\n", + " [--globalImpactsDisableJVP] [--nonProfiledImpacts]\n", + " [--lCurveScan] [--lCurveOptimize]\n", + " [--regularizationStrength REGULARIZATIONSTRENGTH]\n", + " filename\n", + "\n", + "Perform binned profilme maximum likelihood fits\n", + "\n", + "positional arguments:\n", + " filename filename of the main hdf5 input\n", + "\n", + "options:\n", + " -h, --help show this help message and exit\n", + " -v {0,1,2,3,4}, --verbose {0,1,2,3,4}\n", + " Set verbosity level with logging, the larger the more\n", + " verbose\n", + " --noColorLogger Do not use logging with colors\n", + " -o OUTPUT, --output OUTPUT\n", + " output directory\n", + " --postfix POSTFIX Postfix to append on output file name\n", + " --eager Run tensorflow in eager mode (for debugging)\n", + " --diagnostics Calculate and print additional info for diagnostics\n", + " (condition number, edm value)\n", + " --earlyStopping EARLYSTOPPING\n", + " Number of iterations with no improvement after which\n", + " training will be stopped. Specify -1 to disable.\n", + " --minimizerMethod {trust-krylov,trust-exact,BFGS,L-BFGS-B,CG,trust-ncg,dogleg}\n", + " Mnimizer method used in scipy.optimize.minimize for\n", + " the nominal fit minimization\n", + " --chisqFit Perform diagonal chi-square fit instead of poisson\n", + " likelihood fit\n", + " --covarianceFit Perform chi-square fit using covariance matrix for the\n", + " observations\n", + " --noHessian Don't compute the hessian of parameters\n", + " --prefitUnconstrainedNuisanceUncertainty PREFITUNCONSTRAINEDNUISANCEUNCERTAINTY\n", + " Assumed prefit uncertainty for unconstrained nuisances\n", + " --unblind [UNBLIND ...]\n", + " Specify list of regex to unblind matching parameters\n", + " of interest. E.g. use '--unblind ^signal$' to unblind\n", + " a parameter named signal or '--unblind' to unblind\n", + " all.\n", + " --setConstraintMinimum SETCONSTRAINTMINIMUM SETCONSTRAINTMINIMUM\n", + " Set the constraint minima of specified parameter to\n", + " specified value\n", + " --freezeParameters FREEZEPARAMETERS [FREEZEPARAMETERS ...]\n", + " Specify list of regex to freeze matching parameters of\n", + " interest.\n", + " --pseudoData [PSEUDODATA ...]\n", + " run fit on pseudo data with the given name\n", + " -t TOYS [TOYS ...], --toys TOYS [TOYS ...]\n", + " run a given number of toys, 0 fits the data, and -1\n", + " fits the asimov toy (the default)\n", + " --toysSystRandomize {frequentist,bayesian,none}\n", + " Type of randomization for systematic uncertainties\n", + " (including binByBinStat if present). Options are\n", + " 'frequentist' which randomizes the contraint minima\n", + " a.k.a global observables and 'bayesian' which\n", + " randomizes the actual nuisance parameters used in the\n", + " pseudodata generation\n", + " --toysDataRandomize {poisson,normal,none}\n", + " Type of randomization for pseudodata. Options are\n", + " 'poisson', 'normal', and 'none'\n", + " --toysDataMode {expected,observed}\n", + " central value for pseudodata used in the toys\n", + " --toysRandomizeParameters\n", + " randomize the parameter starting values for toys\n", + " --seed SEED random seed for toys\n", + " --expectSignal EXPECTSIGNAL EXPECTSIGNAL\n", + " Specify tuple with signal name and rate multiplier for\n", + " signal expectation (used for fit starting values and\n", + " for toys). E.g. '--expectSignal BSM 0.0 --expectSignal\n", + " SM 1.0'\n", + " --allowNegativePOI allow signal strengths to be negative (otherwise\n", + " constrained to be non-negative)\n", + " --noBinByBinStat Don't add bin-by-bin statistical uncertainties on\n", + " templates (by default adding sumW2 on variance)\n", + " --binByBinStatType {automatic,gamma,normal-additive,normal-multiplicative}\n", + " probability density for bin-by-bin statistical\n", + " uncertainties, ('automatic' is 'gamma' except for data\n", + " covariance where it is 'normal')\n", + " --binByBinStatMode {lite,full}\n", + " Barlow-Beeston mode bin-by-bin statistical\n", + " uncertainties\n", + " --poiModel POIMODEL [POIMODEL ...]\n", + " Specify POI model to be used to introduce non standard\n", + " parameterization\n", + " -m MAPPING [MAPPING ...], --mapping MAPPING [MAPPING ...]\n", + " perform mappings on observables or parameters for the\n", + " prefit and postfit histograms, specifying the mapping\n", + " defined in rabbit/mappings/ followed by arguments\n", + " passed in the mapping __init__, e.g. '-m Project ch0\n", + " eta pt' to get a 2D projection to eta-pt or '-m\n", + " Project ch0' to get the total yield. This argument can\n", + " be called multiple times. Custom mappings can be\n", + " specified with the full path to the custom mapping\n", + " e.g. '-m custom_mappings.MyCustomMapping'.\n", + " --compositeMapping Make a composite mapping and compute the covariance\n", + " matrix across all mappings.\n", + " -r REGULARIZATION [REGULARIZATION ...], --regularization REGULARIZATION [REGULARIZATION ...]\n", + " apply regularization on the output \"nout\" of a mapping\n", + " by including a penalty term P(nout) in the -log(L) of\n", + " the minimization. As argument, specify the\n", + " regulaization defined in rabbit/regularization/,\n", + " followed by a mapping using the same syntax as\n", + " discussed above. e.g. '-r SVD Select ch0_masked' to\n", + " apply SVD regularization on the channel 'ch0_masked'\n", + " or '-r SVD Project ch0 pt' for the 1D projection to\n", + " pt. Custom regularization can be specified with the\n", + " full path e.g. '-r\n", + " custom_regularization.MyCustomRegularization Project\n", + " ch0 pt'.\n", + " --outname OUTNAME output file name\n", + " --fullNll Calculate and store full value of -log(L)\n", + " --contourScan [CONTOURSCAN ...]\n", + " run likelihood contour scan on the specified\n", + " variables, specify w/o argument for all parameters\n", + " --contourLevels CONTOURLEVELS [CONTOURLEVELS ...]\n", + " Confidence level in standard deviations for contour\n", + " scans (1 = 1 sigma = 68%)\n", + " --contourScan2D CONTOURSCAN2D [CONTOURSCAN2D ...]\n", + " run likelihood contour scan on the specified variable\n", + " pairs\n", + " --scan [SCAN ...] run likelihood scan on the specified variables,\n", + " specify w/o argument for all parameters\n", + " --scan2D SCAN2D [SCAN2D ...]\n", + " run 2D likelihood scan on the specified variable pairs\n", + " --scanPoints SCANPOINTS\n", + " default number of points for likelihood scan\n", + " --scanRange SCANRANGE\n", + " default scan range in terms of hessian uncertainty\n", + " --scanRangeUsePrefit use prefit uncertainty to define scan range\n", + " --prefitOnly Only compute prefit outputs\n", + " --saveHists save prefit and postfit histograms\n", + " --saveHistsPerProcess\n", + " save prefit and postfit histograms for each process\n", + " --computeHistErrors propagate uncertainties to inclusive prefit and\n", + " postfit histograms\n", + " --computeHistErrorsPerProcess\n", + " propagate uncertainties to prefit and postfit\n", + " histograms for each process\n", + " --computeHistCov propagate covariance of histogram bins (inclusive in\n", + " processes)\n", + " --computeHistImpacts propagate global impacts on histogram bins (inclusive\n", + " in processes)\n", + " --computeVariations save postfit histograms with each noi varied up to\n", + " down\n", + " --noChi2 Do not compute chi2 on prefit/postfit histograms\n", + " --externalPostfit EXTERNALPOSTFIT\n", + " load posfit nuisance parameters and covariance from\n", + " result of an external fit.\n", + " --externalPostfitResult EXTERNALPOSTFITRESULT\n", + " Specify result from external postfit file\n", + " --noFit Do not not perform the minimization.\n", + " --noPostfitProfileBB Do not profile the bin-by-bin parameters in the\n", + " postfit (e.g. if parameters are loaded from another\n", + " fit using --externalPostfit and/or no data is\n", + " available to be profiled).\n", + " --doImpacts Compute impacts on POIs per nuisance parameter and\n", + " per-nuisance parameter group\n", + " --globalImpacts compute impacts in terms of variations of global\n", + " observables (as opposed to nuisance parameters\n", + " directly)\n", + " --globalImpactsDisableJVP\n", + " Compute global impacts on parameters and observables\n", + " in the traditional 'backward mode' and not using the\n", + " more memory efficient 'forward mode' implementation\n", + " using jacobian vector products (JVP)\n", + " --nonProfiledImpacts compute impacts of frozen (non-profiled) systematics\n", + " --lCurveScan For use with regularization, scan the L curve versus\n", + " values for tau\n", + " --lCurveOptimize For use with regularization, find the value of tau\n", + " that maximizes the curvature\n", + " --regularizationStrength REGULARIZATIONSTRENGTH\n", + " For use with regularization, set the regularization\n", + " strength (tau)\n" + ] + } + ], + "source": [ + "!rabbit_fit.py --help" + ] + }, { "cell_type": "markdown", "id": "f336a76f", @@ -574,7 +815,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "id": "fb7b8c69", "metadata": { "scrolled": false @@ -648,10 +889,10 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 14, "id": "3ae77f44", "metadata": { - "scrolled": true + "scrolled": false }, "outputs": [ { @@ -678,10 +919,10 @@ " " ], "text/plain": [ - "" + "" ] }, - "execution_count": 15, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -703,7 +944,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 15, "id": "d7bf5a13", "metadata": {}, "outputs": [ @@ -748,23 +989,28 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 16, "id": "752271c5", - "metadata": {}, + "metadata": { + "scrolled": true + }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "2026-02-27 14:32:46.333436: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", - "2026-02-27 14:32:46.333706: I tensorflow/core/util/port.cc:153] 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", - "2026-02-27 14:32:46.368039: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", + "2026-03-15 19:34:37.683667: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", + "2026-03-15 19:34:37.683988: I tensorflow/core/util/port.cc:153] 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", + "2026-03-15 19:34:37.718839: 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", - "2026-02-27 14:32:47.330733: I tensorflow/core/util/port.cc:153] 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", - "2026-02-27 14:32:47.331048: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", - "2026-02-27 14:32:49.000833: E external/local_xla/xla/stream_executor/cuda/cuda_platform.cc:51] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n", + "2026-03-15 19:34:38.658897: I tensorflow/core/util/port.cc:153] 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", + "2026-03-15 19:34:38.659195: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", + "2026-03-15 19:34:40.273407: E external/local_xla/xla/stream_executor/cuda/cuda_platform.cc:51] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n", "ch0 {'axes': [Regular(10, 0, 1, name='x')], 'masked': False, 'flow': False, 'start': 0, 'stop': 10}\n", + "\u001b[1;32mDEBUG:fitter.py: Unblind parameters with []\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Blind signal strength modifier for b'signal'\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Freeze params with []\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Updated list of frozen params: []\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 3248.403393877774\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 2904.6404634447335\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 2330.7571804236213\u001b[0m\n", @@ -853,7 +1099,13 @@ "\u001b[1;32mDEBUG:fitter.py: Iteration 83: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 84: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 85: loss value 0.45506785046489384\u001b[0m\n", - "\u001b[1;32mDEBUG:fitter.py: Iteration 86: loss value 0.45506785046489384\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 86: loss value 0.45506785046489384\u001b[0m\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "\u001b[1;32mDEBUG:fitter.py: Iteration 87: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 88: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 89: loss value 0.45506785046489384\u001b[0m\n", @@ -869,13 +1121,7 @@ "\u001b[1;32mDEBUG:fitter.py: Iteration 99: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 100: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 101: loss value 0.45506785046489384\u001b[0m\n", - "\u001b[1;32mDEBUG:fitter.py: Iteration 102: loss value 0.45506785046489384\u001b[0m\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "\u001b[1;32mDEBUG:fitter.py: Iteration 102: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 103: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 104: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 105: loss value 0.45506785046489384\u001b[0m\n", @@ -979,7 +1225,13 @@ "\u001b[1;32mDEBUG:fitter.py: Iteration 203: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 204: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 205: loss value 0.45506785046489384\u001b[0m\n", - "\u001b[1;32mDEBUG:fitter.py: Iteration 206: loss value 0.45506785046489384\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 206: loss value 0.45506785046489384\u001b[0m\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "\u001b[1;32mDEBUG:fitter.py: Iteration 207: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 208: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 209: loss value 0.45506785046489384\u001b[0m\n", @@ -999,13 +1251,7 @@ "\u001b[1;32mDEBUG:fitter.py: Iteration 223: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 224: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 225: loss value 0.45506785046489384\u001b[0m\n", - "\u001b[1;32mDEBUG:fitter.py: Iteration 226: loss value 0.45506785046489384\u001b[0m\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "\u001b[1;32mDEBUG:fitter.py: Iteration 226: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 227: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 228: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 229: loss value 0.45506785046489384\u001b[0m\n", @@ -1112,7 +1358,13 @@ "\u001b[1;32mDEBUG:fitter.py: Iteration 330: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 331: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 332: loss value 0.45506785046489384\u001b[0m\n", - "\u001b[1;32mDEBUG:fitter.py: Iteration 333: loss value 0.45506785046489384\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 333: loss value 0.45506785046489384\u001b[0m\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "\u001b[1;32mDEBUG:fitter.py: Iteration 334: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 335: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 336: loss value 0.45506785046489384\u001b[0m\n", @@ -1123,13 +1375,7 @@ "\u001b[1;32mDEBUG:fitter.py: Iteration 341: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 342: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 343: loss value 0.45506785046489384\u001b[0m\n", - "\u001b[1;32mDEBUG:fitter.py: Iteration 344: loss value 0.45506785046489384\u001b[0m\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "\u001b[1;32mDEBUG:fitter.py: Iteration 344: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 345: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 346: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 347: loss value 0.45506785046489384\u001b[0m\n", @@ -1249,16 +1495,16 @@ "\u001b[1;32mDEBUG:fitter.py: Iteration 461: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 462: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 463: loss value 0.45506785046489384\u001b[0m\n", - "\u001b[1;32mDEBUG:fitter.py: Iteration 464: loss value 0.45506785046489384\u001b[0m\n", - "\u001b[1;32mDEBUG:fitter.py: Iteration 465: loss value 0.45506785046489384\u001b[0m\n", - "\u001b[1;32mDEBUG:fitter.py: Iteration 466: loss value 0.45506785046489384\u001b[0m\n", - "\u001b[1;32mDEBUG:fitter.py: Iteration 467: loss value 0.45506785046489384\u001b[0m\n" + "\u001b[1;32mDEBUG:fitter.py: Iteration 464: loss value 0.45506785046489384\u001b[0m\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ + "\u001b[1;32mDEBUG:fitter.py: Iteration 465: loss value 0.45506785046489384\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 466: loss value 0.45506785046489384\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 467: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 468: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 469: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 470: loss value 0.45506785046489384\u001b[0m\n", @@ -1372,13 +1618,7 @@ "\u001b[1;32mDEBUG:fitter.py: Iteration 578: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 579: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 580: loss value 0.45506785046489384\u001b[0m\n", - "\u001b[1;32mDEBUG:fitter.py: Iteration 581: loss value 0.45506785046489384\u001b[0m\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "\u001b[1;32mDEBUG:fitter.py: Iteration 581: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 582: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 583: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 584: loss value 0.45506785046489384\u001b[0m\n", @@ -1393,7 +1633,13 @@ "\u001b[1;32mDEBUG:fitter.py: Iteration 593: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 594: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 595: loss value 0.45506785046489384\u001b[0m\n", - "\u001b[1;32mDEBUG:fitter.py: Iteration 596: loss value 0.45506785046489384\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 596: loss value 0.45506785046489384\u001b[0m\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "\u001b[1;32mDEBUG:fitter.py: Iteration 597: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 598: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 599: loss value 0.45506785046489384\u001b[0m\n", @@ -1497,13 +1743,7 @@ "\u001b[1;32mDEBUG:fitter.py: Iteration 697: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 698: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 699: loss value 0.45506785046489384\u001b[0m\n", - "\u001b[1;32mDEBUG:fitter.py: Iteration 700: loss value 0.45506785046489384\u001b[0m\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "\u001b[1;32mDEBUG:fitter.py: Iteration 700: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 701: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 702: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 703: loss value 0.45506785046489384\u001b[0m\n", @@ -1532,7 +1772,13 @@ "\u001b[1;32mDEBUG:fitter.py: Iteration 726: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 727: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 728: loss value 0.45506785046489384\u001b[0m\n", - "\u001b[1;32mDEBUG:fitter.py: Iteration 729: loss value 0.45506785046489384\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 729: loss value 0.45506785046489384\u001b[0m\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "\u001b[1;32mDEBUG:fitter.py: Iteration 730: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 731: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 732: loss value 0.45506785046489384\u001b[0m\n", @@ -1624,13 +1870,7 @@ "\u001b[1;32mDEBUG:fitter.py: Iteration 818: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 819: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 820: loss value 0.45506785046489384\u001b[0m\n", - "\u001b[1;32mDEBUG:fitter.py: Iteration 821: loss value 0.45506785046489384\u001b[0m\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "\u001b[1;32mDEBUG:fitter.py: Iteration 821: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 822: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 823: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 824: loss value 0.45506785046489384\u001b[0m\n", @@ -1670,7 +1910,13 @@ "\u001b[1;32mDEBUG:fitter.py: Iteration 858: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 859: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 860: loss value 0.45506785046489384\u001b[0m\n", - "\u001b[1;32mDEBUG:fitter.py: Iteration 861: loss value 0.45506785046489384\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 861: loss value 0.45506785046489384\u001b[0m\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "\u001b[1;32mDEBUG:fitter.py: Iteration 862: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 863: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 864: loss value 0.45506785046489384\u001b[0m\n", @@ -1748,13 +1994,7 @@ "\u001b[1;32mDEBUG:fitter.py: Iteration 936: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 937: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 938: loss value 0.45506785046489384\u001b[0m\n", - "\u001b[1;32mDEBUG:fitter.py: Iteration 939: loss value 0.45506785046489384\u001b[0m\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "\u001b[1;32mDEBUG:fitter.py: Iteration 939: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 940: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 941: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 942: loss value 0.45506785046489384\u001b[0m\n", @@ -1798,7 +2038,13 @@ "\u001b[1;32mDEBUG:fitter.py: Iteration 980: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 981: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 982: loss value 0.45506785046489384\u001b[0m\n", - "\u001b[1;32mDEBUG:fitter.py: Iteration 983: loss value 0.45506785046489384\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 983: loss value 0.45506785046489384\u001b[0m\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "\u001b[1;32mDEBUG:fitter.py: Iteration 984: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 985: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 986: loss value 0.45506785046489384\u001b[0m\n", @@ -1873,13 +2119,7 @@ "\u001b[1;32mDEBUG:fitter.py: Iteration 1055: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1056: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1057: loss value 0.45506785046489384\u001b[0m\n", - "\u001b[1;32mDEBUG:fitter.py: Iteration 1058: loss value 0.45506785046489384\u001b[0m\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "\u001b[1;32mDEBUG:fitter.py: Iteration 1058: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1059: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1060: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1061: loss value 0.45506785046489384\u001b[0m\n", @@ -1937,7 +2177,13 @@ "\u001b[1;32mDEBUG:fitter.py: Iteration 1113: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1114: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1115: loss value 0.45506785046489384\u001b[0m\n", - "\u001b[1;32mDEBUG:fitter.py: Iteration 1116: loss value 0.45506785046489384\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1116: loss value 0.45506785046489384\u001b[0m\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "\u001b[1;32mDEBUG:fitter.py: Iteration 1117: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1118: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1119: loss value 0.45506785046489384\u001b[0m\n", @@ -1997,13 +2243,7 @@ "\u001b[1;32mDEBUG:fitter.py: Iteration 1173: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1174: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1175: loss value 0.45506785046489384\u001b[0m\n", - "\u001b[1;32mDEBUG:fitter.py: Iteration 1176: loss value 0.45506785046489384\u001b[0m\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "\u001b[1;32mDEBUG:fitter.py: Iteration 1176: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1177: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1178: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1179: loss value 0.45506785046489384\u001b[0m\n", @@ -2055,7 +2295,13 @@ "\u001b[1;32mDEBUG:fitter.py: Iteration 1225: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1226: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1227: loss value 0.45506785046489384\u001b[0m\n", - "\u001b[1;32mDEBUG:fitter.py: Iteration 1228: loss value 0.45506785046489384\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1228: loss value 0.45506785046489384\u001b[0m\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "\u001b[1;32mDEBUG:fitter.py: Iteration 1229: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1230: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1231: loss value 0.45506785046489384\u001b[0m\n", @@ -2126,13 +2372,7 @@ "\u001b[1;32mDEBUG:fitter.py: Iteration 1296: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1297: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1298: loss value 0.45506785046489384\u001b[0m\n", - "\u001b[1;32mDEBUG:fitter.py: Iteration 1299: loss value 0.45506785046489384\u001b[0m\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "\u001b[1;32mDEBUG:fitter.py: Iteration 1299: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1300: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1301: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1302: loss value 0.45506785046489384\u001b[0m\n", @@ -2191,7 +2431,13 @@ "\u001b[1;32mDEBUG:fitter.py: Iteration 1355: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1356: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1357: loss value 0.45506785046489384\u001b[0m\n", - "\u001b[1;32mDEBUG:fitter.py: Iteration 1358: loss value 0.45506785046489384\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1358: loss value 0.45506785046489384\u001b[0m\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "\u001b[1;32mDEBUG:fitter.py: Iteration 1359: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1360: loss value 0.45506785046489384\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1361: loss value 0.45506785046489384\u001b[0m\n", @@ -2250,13 +2496,255 @@ "\u001b[38;21mINFO:rabbit_fit.py: ndof: 8\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: 2*deltaNLL: 0.91\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: p-value: 99.88%\u001b[0m\n", - "\u001b[38;21mINFO:rabbit_fit.py: -delta log(L) scan for signal\u001b[0m\n" + "\u001b[38;21mINFO:rabbit_fit.py: -delta log(L) scan for signal\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Freeze params with signal\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Updated list of frozen params: [b'signal']\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=1 x=177.72316577849685\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 0.5476857428108668\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 0.5471598170531874\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 0.5471595997947589\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 0.5471595997947589\n", + " x: [ 1.777e+02 -5.037e-01 1.353e-01 6.970e-02 1.043e-01\n", + " 2.018e-02 1.611e-01]\n", + " nit: 3\n", + " jac: [ 0.000e+00 2.366e-09 3.406e-09 2.868e-09 5.017e-09\n", + " 9.478e-10 1.732e-09]\n", + " nfev: 5\n", + " njev: 5\n", + " nhev: 16\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=2 x=176.710750314708\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 0.8249974286105676\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 0.8244512074817072\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 0.8244509057738639\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 0.8244509057738639\n", + " x: [ 1.767e+02 -4.888e-01 1.599e-01 1.332e-01 1.156e-01\n", + " 2.476e-02 3.216e-01]\n", + " nit: 3\n", + " jac: [ 0.000e+00 3.491e-09 4.323e-09 3.996e-09 6.968e-09\n", + " 1.346e-09 2.386e-09]\n", + " nfev: 5\n", + " njev: 5\n", + " nhev: 16\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=3 x=175.6983348509192\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 1.2890233632744554\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 1.288456523460423\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 1.2884561236048309\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 1.2884561236048309\n", + " x: [ 1.757e+02 -4.735e-01 1.847e-01 1.980e-01 1.270e-01\n", + " 2.939e-02 4.817e-01]\n", + " nit: 3\n", + " jac: [ 0.000e+00 4.880e-09 5.254e-09 5.297e-09 9.212e-09\n", + " 1.804e-09 3.141e-09]\n", + " nfev: 5\n", + " njev: 5\n", + " nhev: 16\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=4 x=174.68591938713038\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 1.9495717344419772\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 1.9406783420340898\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 1.9406754113297742\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 1.9406754113213065\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 4: loss value 1.9406754113213065\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 1.9406754113213065\n", + " x: [ 1.747e+02 -4.579e-01 2.099e-01 2.640e-01 1.385e-01\n", + " 3.409e-02 6.411e-01]\n", + " nit: 5\n", + " jac: [ 0.000e+00 -2.075e-14 5.912e-15 4.222e-13 1.054e-12\n", + " -6.055e-12 -4.752e-14]\n", + " nfev: 7\n", + " njev: 7\n", + " nhev: 21\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=5 x=173.67350392334157\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 2.7914705573575764\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 2.782597355001463\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 2.78259312004906\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 2.7825931200324225\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 2.7825931200324225\n", + " x: [ 1.737e+02 -4.418e-01 2.353e-01 3.312e-01 1.500e-01\n", + " 3.886e-02 7.999e-01]\n", + " nit: 4\n", + " jac: [ 0.000e+00 -3.788e-14 4.277e-14 9.964e-13 2.176e-12\n", + " -1.270e-11 -1.361e-13]\n", + " nfev: 6\n", + " njev: 6\n", + " nhev: 26\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=6 x=172.66108845955273\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 3.824532037447826\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 3.815681966522786\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 3.8156761032234705\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 3.8156761032017545\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 4: loss value 3.8156761032017545\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 3.8156761032017545\n", + " x: [ 1.727e+02 -4.253e-01 2.611e-01 3.998e-01 1.617e-01\n", + " 4.370e-02 9.581e-01]\n", + " nit: 5\n", + " jac: [ 0.000e+00 -7.485e-14 7.006e-14 2.035e-12 3.856e-12\n", + " -2.313e-11 -3.278e-13]\n", + " nfev: 7\n", + " njev: 7\n", + " nhev: 21\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=7 x=171.64867299576392\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 5.050203785527582\u001b[0m\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 5.041379775311718\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 5.041371941763174\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 5.041371941745063\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 4: loss value 5.041371941745063\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 5.041371941745063\n", + " x: [ 1.716e+02 -4.084e-01 2.873e-01 4.698e-01 1.735e-01\n", + " 4.860e-02 1.116e+00]\n", + " nit: 5\n", + " jac: [ 0.000e+00 -9.766e-14 -8.177e-14 3.378e-12 5.247e-12\n", + " -3.344e-11 -6.541e-13]\n", + " nfev: 7\n", + " njev: 7\n", + " nhev: 21\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=1 x=179.74799670607447\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 0.547138832415329\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 0.5466487685616518\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 0.5466486373027741\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 0.5466486373027741\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 0.5466486373027741\n", + " x: [ 1.797e+02 -5.324e-01 8.721e-02 -5.377e-02 8.201e-02\n", + " 1.123e-02 -1.616e-01]\n", + " nit: 4\n", + " jac: [ 0.000e+00 1.277e-09 2.269e-09 1.744e-09 3.076e-09\n", + " 5.524e-10 1.020e-09]\n", + " nfev: 6\n", + " njev: 6\n", + " nhev: 18\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=2 x=180.76041216986332\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 0.8208344759224386\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 0.8203638094834421\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 0.8203637315935446\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 0.8203637315935446\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 0.8203637315935446\n", + " x: [ 1.808e+02 -5.463e-01 6.360e-02 -1.138e-01 7.101e-02\n", + " 6.839e-03 -3.236e-01]\n", + " nit: 4\n", + " jac: [ 0.000e+00 7.005e-10 1.504e-09 1.026e-09 1.816e-09\n", + " 2.977e-10 6.116e-10]\n", + " nfev: 6\n", + " njev: 6\n", + " nhev: 18\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=3 x=181.77282763365213\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 1.2751168218005096\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 1.274665120500328\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 1.2746650816104124\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 1.2746650816104124\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 1.2746650816104124\n", + " x: [ 1.818e+02 -5.598e-01 4.029e-02 -1.726e-01 6.011e-02\n", + " 2.513e-03 -4.860e-01]\n", + " nit: 4\n", + " jac: [ 0.000e+00 3.210e-10 8.640e-10 5.089e-10 9.015e-10\n", + " 1.141e-10 3.089e-10]\n", + " nfev: 6\n", + " njev: 6\n", + " nhev: 18\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=4 x=182.78524309744094\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 1.9084293313755505\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 1.9079961427483108\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 1.9079961288206475\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 1.9079961288206475\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 1.9079961288206475\n", + " x: [ 1.828e+02 -5.729e-01 1.728e-02 -2.304e-01 4.930e-02\n", + " -1.754e-03 -6.488e-01]\n", + " nit: 4\n", + " jac: [ 0.000e+00 1.041e-10 3.816e-10 1.831e-10 3.201e-10\n", + " -1.012e-12 1.108e-10]\n", + " nfev: 6\n", + " njev: 6\n", + " nhev: 18\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=5 x=183.79765856122975\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 2.719208205988628\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 2.718793060378127\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 2.718793057944183\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 2.718793057944183\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 2.718793057944183\n", + " x: [ 1.838e+02 -5.858e-01 -5.444e-03 -2.871e-01 3.859e-02\n", + " -5.963e-03 -8.120e-01]\n", + " nit: 4\n", + " jac: [ 0.000e+00 8.788e-12 8.748e-11 2.990e-11 4.728e-11\n", + " -5.298e-11 1.361e-11]\n", + " nfev: 6\n", + " njev: 6\n", + " nhev: 18\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=6 x=184.8100740250186\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 3.7058835738184888\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 3.705485987079693\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 3.7054859835372436\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 3.7054859835372436\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 3.7054859835372436\n", + " x: [ 1.848e+02 -5.983e-01 -2.788e-02 -3.428e-01 2.797e-02\n", + " -1.012e-02 -9.755e-01]\n", + " nit: 4\n", + " jac: [ 0.000e+00 -1.077e-11 4.074e-12 2.205e-11 4.352e-11\n", + " -5.030e-11 1.168e-11]\n", + " nfev: 6\n", + " njev: 6\n", + " nhev: 18\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=7 x=185.8224894888074\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 4.866880615817754\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 4.866500091828809\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 4.866500075752847\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 4.866500075752847\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 4.866500075752847\n", + " x: [ 1.858e+02 -6.106e-01 -5.003e-02 -3.974e-01 1.744e-02\n", + " -1.421e-02 -1.139e+00]\n", + " nit: 4\n", + " jac: [ 0.000e+00 -3.029e-12 1.425e-10 1.243e-10 2.558e-10\n", + " -4.305e-12 9.509e-11]\n", + " nfev: 6\n", + " njev: 6\n", + " nhev: 18\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Freeze params with signal\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Updated list of frozen params: []\u001b[0m\n", "/home/david/work/Repos/rabbit/env/lib/python3.12/site-packages/wums/ioutils.py:161: FutureWarning: .metadata was not set, returning None instead of Attribute error, boost-histogram 1.7+ will error.\n", " (axes, obj.storage_type(), obj.metadata, obj.label, obj.name, h5buf),\n", "\u001b[38;21mINFO:rabbit_fit.py: edmval: 7.600559610564e-30\u001b[0m\n", @@ -2265,17 +2753,268 @@ "\u001b[38;21mINFO:rabbit_fit.py: 2*deltaNLL: 0.0\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: p-value: 100.0%\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: -delta log(L) scan for signal\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Freeze params with signal\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Updated list of frozen params: [b'signal']\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=1 x=0.994373888393127\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 0.09266254956510425\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 0.09209563800140488\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 0.09209525605636201\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 0.09209525605633889\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 4: loss value 0.09209525605633889\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 0.09209525605633889\n", + " x: [ 9.944e-01 1.818e-02 2.418e-02 6.170e-02 1.142e-02\n", + " 4.525e-03 1.622e-01]\n", + " nit: 5\n", + " jac: [ 0.000e+00 4.895e-10 -1.399e-09 -6.404e-10 5.899e-10\n", + " 2.833e-11 1.303e-09]\n", + " nfev: 7\n", + " njev: 7\n", + " nhev: 20\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=2 x=0.9887477767862541\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 0.37000450472420776\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 0.3694119443450815\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 0.36941144683429467\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 0.36941144683429467\n", + " x: [ 9.887e-01 3.680e-02 4.868e-02 1.246e-01 2.294e-02\n", + " 9.111e-03 3.239e-01]\n", + " nit: 3\n", + " jac: [ 0.000e+00 6.149e-09 6.912e-09 7.742e-09 1.316e-08\n", + " 2.659e-09 3.541e-09]\n", + " nfev: 5\n", + " njev: 5\n", + " nhev: 16\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=3 x=0.9831216651793812\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 0.8341046234447972\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 0.8334859385771302\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 0.8334853105862069\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 0.8334853105841966\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 4: loss value 0.8334853105841966\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 0.8334853105841966\n", + " x: [ 9.831e-01 5.589e-02 7.349e-02 1.887e-01 3.455e-02\n", + " 1.376e-02 4.851e-01]\n", + " nit: 5\n", + " jac: [ 0.000e+00 -1.518e-14 3.537e-14 4.609e-13 1.238e-12\n", + " -7.031e-12 -3.186e-14]\n", + " nfev: 7\n", + " njev: 7\n", + " nhev: 23\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=4 x=0.9774955535725083\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 1.4947583907452402\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 1.485843940059127\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 1.485840521351538\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 1.485840521337026\u001b[0m\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1;32mDEBUG:fitter.py: Iteration 4: loss value 1.485840521337026\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 1.485840521337026\n", + " x: [ 9.775e-01 7.545e-02 9.862e-02 2.540e-01 4.625e-02\n", + " 1.847e-02 6.457e-01]\n", + " nit: 5\n", + " jac: [ 0.000e+00 -3.061e-14 2.541e-14 4.814e-13 1.258e-12\n", + " -7.111e-12 -4.163e-14]\n", + " nfev: 7\n", + " njev: 7\n", + " nhev: 21\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=5 x=0.9718694419656353\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 2.336887135953985\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 2.327990858616556\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 2.3279861202860452\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 2.3279861202632777\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 4: loss value 2.3279861202632777\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 2.3279861202632777\n", + " x: [ 9.719e-01 9.550e-02 1.241e-01 3.205e-01 5.804e-02\n", + " 2.325e-02 8.057e-01]\n", + " nit: 5\n", + " jac: [ 0.000e+00 -6.613e-14 9.401e-14 1.017e-12 2.380e-12\n", + " -1.350e-11 -1.105e-13]\n", + " nfev: 7\n", + " njev: 7\n", + " nhev: 21\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=6 x=0.9662433303587623\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 3.3702965452500733\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 3.361421317666846\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 3.3614148668610735\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 3.3614148668352395\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 4: loss value 3.3614148668352395\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 3.3614148668352395\n", + " x: [ 9.662e-01 1.161e-01 1.498e-01 3.884e-01 6.992e-02\n", + " 2.809e-02 9.652e-01]\n", + " nit: 5\n", + " jac: [ 0.000e+00 -9.384e-14 1.803e-13 1.842e-12 3.861e-12\n", + " -2.247e-11 -2.400e-13]\n", + " nfev: 7\n", + " njev: 7\n", + " nhev: 21\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=7 x=0.9606172187518894\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 4.596461398380022\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 4.587610090563674\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 4.587601506646672\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 4.587601506623194\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 4: loss value 4.587601506623194\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 4.587601506623194\n", + " x: [ 9.606e-01 1.371e-01 1.760e-01 4.576e-01 8.190e-02\n", + " 3.299e-02 1.124e+00]\n", + " nit: 5\n", + " jac: [ 0.000e+00 -1.369e-13 1.087e-13 2.778e-12 5.010e-12\n", + " -3.071e-11 -4.585e-13]\n", + " nfev: 7\n", + " njev: 7\n", + " nhev: 21\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=1 x=1.005626111606873\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 0.09210073170545405\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 0.09157762837044589\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 0.09157736788891653\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 0.09157736788891653\n", + " x: [ 1.006e+00 -1.775e-02 -2.387e-02 -6.055e-02 -1.133e-02\n", + " -4.465e-03 -1.626e-01]\n", + " nit: 3\n", + " jac: [ 0.000e+00 2.828e-09 4.199e-09 4.086e-09 7.000e-09\n", + " 1.384e-09 1.823e-09]\n", + " nfev: 5\n", + " njev: 5\n", + " nhev: 16\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=2 x=1.011252223213746\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 0.3657677413804158\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 0.36526907248501395\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 0.3652688941653155\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 0.3652688941653155\n", + " x: [ 1.011e+00 -3.507e-02 -4.744e-02 -1.200e-01 -2.257e-02\n", + " -8.871e-03 -3.257e-01]\n", + " nit: 3\n", + " jac: [ 0.000e+00 1.832e-09 3.136e-09 2.777e-09 4.776e-09\n", + " 9.261e-10 1.264e-09]\n", + " nfev: 5\n", + " njev: 5\n", + " nhev: 16\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=3 x=1.0168783348206187\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 0.8199822892933405\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 0.8195074173884369\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 0.8195073053132019\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 0.8195073053132019\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 0.8195073053132019\n", + " x: [ 1.017e+00 -5.199e-02 -7.071e-02 -1.783e-01 -3.372e-02\n", + " -1.322e-02 -4.892e-01]\n", + " nit: 4\n", + " jac: [ 0.000e+00 1.081e-09 2.174e-09 1.728e-09 2.983e-09\n", + " 5.576e-10 8.057e-10]\n", + " nfev: 6\n", + " njev: 6\n", + " nhev: 18\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=4 x=1.0225044464274917\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 1.4531696001934322\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 1.4527178603379598\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 1.4527177986784556\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 1.4527177986784556\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 1.4527177986784556\n", + " x: [ 1.023e+00 -6.852e-02 -9.368e-02 -2.355e-01 -4.477e-02\n", + " -1.751e-02 -6.530e-01]\n", + " nit: 4\n", + " jac: [ 0.000e+00 5.522e-10 1.345e-09 9.397e-10 1.625e-09\n", + " 2.797e-10 4.507e-10]\n", + " nfev: 6\n", + " njev: 6\n", + " nhev: 18\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=5 x=1.0281305580343647\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 2.263748578411164\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 2.2633192828608486\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 2.2633192560529043\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 2.2633192560529043\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 2.2633192560529043\n", + " x: [ 1.028e+00 -8.466e-02 -1.164e-01 -2.917e-01 -5.573e-02\n", + " -2.174e-02 -8.171e-01]\n", + " nit: 4\n", + " jac: [ 0.000e+00 2.196e-10 6.869e-10 4.041e-10 6.954e-10\n", + " 9.077e-11 1.994e-10]\n", + " nfev: 6\n", + " njev: 6\n", + " nhev: 18\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=6 x=1.0337566696412377\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 3.250132959327279\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 3.2497254018572406\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 3.2497253947960374\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 3.2497253947960374\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 3.2497253947960374\n", + " x: [ 1.034e+00 -1.004e-01 -1.387e-01 -3.469e-01 -6.661e-02\n", + " -2.592e-02 -9.816e-01]\n", + " nit: 4\n", + " jac: [ 0.000e+00 4.744e-11 2.348e-10 1.040e-10 1.718e-10\n", + " -1.420e-11 5.100e-11]\n", + " nfev: 6\n", + " njev: 6\n", + " nhev: 18\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=7 x=1.0393827812481107\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 4.410732400897245\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 4.410345860775596\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 4.41034585912335\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 4.41034585912335\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 4.41034585912335\n", + " x: [ 1.039e+00 -1.158e-01 -1.608e-01 -4.010e-01 -7.739e-02\n", + " -3.004e-02 -1.146e+00]\n", + " nit: 4\n", + " jac: [ 0.000e+00 -7.824e-12 1.843e-11 9.911e-12 1.306e-11\n", + " -4.415e-11 1.683e-12]\n", + " nfev: 6\n", + " njev: 6\n", + " nhev: 18\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Freeze params with signal\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Updated list of frozen params: []\u001b[0m\n", "Results written in file ./results/getting_started/fitresults_nll_scan.hdf5\n", - "\u001b[38;21mINFO:rabbit_fit.py: 5.82 seconds total time\u001b[0m\n", - "\u001b[1;32mDEBUG:rabbit_fit.py: 1.67 seconds initialization time\u001b[0m\n", + "\u001b[38;21mINFO:rabbit_fit.py: 7.05 seconds total time\u001b[0m\n", + "\u001b[1;32mDEBUG:rabbit_fit.py: 2.19 seconds initialization time\u001b[0m\n", "\u001b[1;32mDEBUG:rabbit_fit.py: For fit 0:\u001b[0m\n", - "\u001b[1;32mDEBUG:rabbit_fit.py: 0.01 seconds for prefit\u001b[0m\n", - "\u001b[1;32mDEBUG:rabbit_fit.py: 3.94 seconds for fit\u001b[0m\n", + "\u001b[1;32mDEBUG:rabbit_fit.py: 0.05 seconds for prefit\u001b[0m\n", + "\u001b[1;32mDEBUG:rabbit_fit.py: 4.47 seconds for fit\u001b[0m\n", "\u001b[1;32mDEBUG:rabbit_fit.py: 0.01 seconds for postfit\u001b[0m\n", "\u001b[1;32mDEBUG:rabbit_fit.py: For fit -1:\u001b[0m\n", - "\u001b[1;32mDEBUG:rabbit_fit.py: 0.02 seconds for prefit\u001b[0m\n", - "\u001b[1;32mDEBUG:rabbit_fit.py: 0.16 seconds for fit\u001b[0m\n", - "\u001b[1;32mDEBUG:rabbit_fit.py: 0.00 seconds for postfit\u001b[0m\n" + "\u001b[1;32mDEBUG:rabbit_fit.py: 0.03 seconds for prefit\u001b[0m\n", + "\u001b[1;32mDEBUG:rabbit_fit.py: 0.30 seconds for fit\u001b[0m\n", + "\u001b[1;32mDEBUG:rabbit_fit.py: 0.01 seconds for postfit\u001b[0m\n" ] } ], @@ -2286,7 +3025,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 17, "id": "fbf50956", "metadata": {}, "outputs": [ @@ -2294,10 +3033,10 @@ "name": "stdout", "output_type": "stream", "text": [ - "Write output file ./results/getting_started/nll_scan_signal_data.png\n", - "Write output file ./results/getting_started/nll_scan_signal_data.pdf\n", - "Write output file ./results/getting_started/nll_scan_signal_asimov.png\n", - "Write output file ./results/getting_started/nll_scan_signal_asimov.pdf\n" + "\u001b[38;21mINFO:plot_tools.py: Wrote file(s) ./results/getting_started//nll_scan_signal_data.pdf(.png)\u001b[0m\n", + "\u001b[38;21mINFO:plot_tools.py: Wrote file(s) ./results/getting_started//nll_scan_signal_data.pdf(.png)\u001b[0m\n", + "\u001b[38;21mINFO:plot_tools.py: Wrote file(s) ./results/getting_started//nll_scan_signal_asimov.pdf(.png)\u001b[0m\n", + "\u001b[38;21mINFO:plot_tools.py: Wrote file(s) ./results/getting_started//nll_scan_signal_asimov.pdf(.png)\u001b[0m\n" ] }, { @@ -2347,7 +3086,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 18, "id": "e80f3815", "metadata": {}, "outputs": [ @@ -2355,14 +3094,17 @@ "name": "stdout", "output_type": "stream", "text": [ - "2026-02-27 14:32:59.480374: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", - "2026-02-27 14:32:59.480618: I tensorflow/core/util/port.cc:153] 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", - "2026-02-27 14:32:59.513401: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", + "2026-03-15 19:35:01.197759: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", + "2026-03-15 19:35:01.198078: I tensorflow/core/util/port.cc:153] 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", + "2026-03-15 19:35:01.235052: 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", - "2026-02-27 14:33:00.454683: I tensorflow/core/util/port.cc:153] 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", - "2026-02-27 14:33:00.454933: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", - "2026-02-27 14:33:02.079904: E external/local_xla/xla/stream_executor/cuda/cuda_platform.cc:51] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n", + "2026-03-15 19:35:02.199344: I tensorflow/core/util/port.cc:153] 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", + "2026-03-15 19:35:02.199628: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", + "2026-03-15 19:35:03.833363: E external/local_xla/xla/stream_executor/cuda/cuda_platform.cc:51] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n", "ch0 {'axes': [Regular(10, 0, 1, name='x')], 'masked': False, 'flow': False, 'start': 0, 'stop': 10}\n", + "\u001b[1;32mDEBUG:fitter.py: Unblind parameters with ['.*']\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Freeze params with []\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Updated list of frozen params: []\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 1.0084468798474364\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 0.481138422082512\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 0.45736721285514637\u001b[0m\n", @@ -2387,6 +3129,256 @@ "\u001b[38;21mINFO:rabbit_fit.py: 2*deltaNLL: 0.91\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: p-value: 99.88%\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: -delta log(L) scan for signal\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Freeze params with signal\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Updated list of frozen params: [b'signal']\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=1 x=0.9848247428601383\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 0.5476857460839398\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 0.547159820304379\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 0.5471596030439969\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 0.5471596030439969\n", + " x: [ 9.848e-01 -5.037e-01 1.353e-01 6.970e-02 1.043e-01\n", + " 2.018e-02 1.611e-01]\n", + " nit: 3\n", + " jac: [ 0.000e+00 2.366e-09 3.406e-09 2.868e-09 5.017e-09\n", + " 9.478e-10 1.732e-09]\n", + " nfev: 5\n", + " njev: 5\n", + " nhev: 16\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=2 x=0.9792146030989721\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 0.8249974351071467\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 0.8244512139786053\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 0.8244509122718136\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 0.8244509122718136\n", + " x: [ 9.792e-01 -4.888e-01 1.599e-01 1.332e-01 1.156e-01\n", + " 2.476e-02 3.216e-01]\n", + " nit: 3\n", + " jac: [ 0.000e+00 3.491e-09 4.323e-09 3.996e-09 6.968e-09\n", + " 1.346e-09 2.386e-09]\n", + " nfev: 5\n", + " njev: 5\n", + " nhev: 16\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=3 x=0.9736044633378058\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 1.2890233730175633\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 1.288456533205901\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 1.2884561333464273\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 1.2884561333464273\n", + " x: [ 9.736e-01 -4.735e-01 1.847e-01 1.980e-01 1.270e-01\n", + " 2.939e-02 4.817e-01]\n", + " nit: 3\n", + " jac: [ 0.000e+00 4.880e-09 5.254e-09 5.297e-09 9.212e-09\n", + " 1.804e-09 3.141e-09]\n", + " nfev: 5\n", + " njev: 5\n", + " nhev: 16\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=4 x=0.9679943235766396\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 1.9495717474246916\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 1.940678355017197\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 1.9406754243135893\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 1.9406754243049735\u001b[0m\n", + "/home/david/work/Repos/rabbit/env/lib/python3.12/site-packages/scipy/optimize/_trustregion.py:250: RuntimeWarning: invalid value encountered in multiply\n", + " p, hits_boundary = m.solve(trust_radius)\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 4: loss value 1.9406754243049735\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 1.9406754243049735\n", + " x: [ 9.680e-01 -4.579e-01 2.099e-01 2.640e-01 1.385e-01\n", + " 3.409e-02 6.411e-01]\n", + " nit: 5\n", + " jac: [ 0.000e+00 -2.638e-14 2.776e-15 4.222e-13 1.056e-12\n", + " -6.055e-12 -4.896e-14]\n", + " nfev: 7\n", + " njev: 7\n", + " nhev: 21\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=5 x=0.9623841838154734\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 2.791470573575132\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 2.7825973712204934\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 2.7825931362701377\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 2.7825931362523635\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 4: loss value 2.7825931362523635\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 2.7825931362523635\n", + " x: [ 9.624e-01 -4.418e-01 2.353e-01 3.312e-01 1.500e-01\n", + " 3.886e-02 7.999e-01]\n", + " nit: 5\n", + " jac: [ 0.000e+00 -3.756e-14 3.580e-14 9.943e-13 2.175e-12\n", + " -1.270e-11 -1.388e-13]\n", + " nfev: 7\n", + " njev: 7\n", + " nhev: 21\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=6 x=0.9567740440543072\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 3.8245320568946966\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 3.8156819859733426\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 3.815676122672202\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 3.8156761226546005\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 4: loss value 3.8156761226546005\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 3.8156761226546005\n", + " x: [ 9.568e-01 -4.253e-01 2.611e-01 3.998e-01 1.617e-01\n", + " 4.370e-02 9.581e-01]\n", + " nit: 5\n", + " jac: [ 0.000e+00 -7.681e-14 8.032e-14 2.037e-12 3.857e-12\n", + " -2.313e-11 -3.262e-13]\n", + " nfev: 7\n", + " njev: 7\n", + " nhev: 21\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=7 x=0.951163904293141\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 5.0502038082005765\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 5.041379797989693\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 5.041371964440419\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 5.041371964422775\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 5.041371964422775\n", + " x: [ 9.512e-01 -4.084e-01 2.873e-01 4.698e-01 1.735e-01\n", + " 4.860e-02 1.116e+00]\n", + " nit: 4\n", + " jac: [ 0.000e+00 -9.199e-14 -9.381e-14 3.373e-12 5.242e-12\n", + " -3.344e-11 -6.579e-13]\n", + " nfev: 5\n", + " njev: 5\n", + " nhev: 21\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=1 x=0.9960450223824707\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 0.5471388291429359\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 0.5466487653093752\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 0.5466486340494675\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 0.5466486340494675\u001b[0m\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 0.5466486340494675\n", + " x: [ 9.960e-01 -5.324e-01 8.721e-02 -5.377e-02 8.201e-02\n", + " 1.123e-02 -1.616e-01]\n", + " nit: 4\n", + " jac: [ 0.000e+00 1.277e-09 2.269e-09 1.744e-09 3.076e-09\n", + " 5.524e-10 1.020e-09]\n", + " nfev: 6\n", + " njev: 6\n", + " nhev: 18\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=2 x=1.001655162143637\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 0.8208344694163234\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 0.8203638029764313\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 0.8203637250864895\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 0.8203637250864895\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 0.8203637250864895\n", + " x: [ 1.002e+00 -5.463e-01 6.360e-02 -1.138e-01 7.101e-02\n", + " 6.839e-03 -3.236e-01]\n", + " nit: 4\n", + " jac: [ 0.000e+00 7.005e-10 1.504e-09 1.026e-09 1.816e-09\n", + " 2.977e-10 6.116e-10]\n", + " nfev: 6\n", + " njev: 6\n", + " nhev: 18\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=3 x=1.0072653019048032\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 1.2751168120402308\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 1.274665110736663\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 1.2746650718473866\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 1.2746650718473866\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 1.2746650718473866\n", + " x: [ 1.007e+00 -5.598e-01 4.029e-02 -1.726e-01 6.011e-02\n", + " 2.513e-03 -4.860e-01]\n", + " nit: 4\n", + " jac: [ 0.000e+00 3.210e-10 8.640e-10 5.089e-10 9.015e-10\n", + " 1.141e-10 3.089e-10]\n", + " nfev: 6\n", + " njev: 6\n", + " nhev: 18\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=4 x=1.0128754416659693\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 1.908429318357536\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 1.9079961297317019\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 1.9079961158022811\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 1.9079961158022811\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 1.9079961158022811\n", + " x: [ 1.013e+00 -5.729e-01 1.728e-02 -2.304e-01 4.930e-02\n", + " -1.754e-03 -6.488e-01]\n", + " nit: 4\n", + " jac: [ 0.000e+00 1.040e-10 3.816e-10 1.831e-10 3.201e-10\n", + " -1.012e-12 1.108e-10]\n", + " nfev: 6\n", + " njev: 6\n", + " nhev: 18\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=5 x=1.0184855814271356\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 2.7192081897161735\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 2.718793044106555\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 2.7187930416729382\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 2.7187930416729382\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 2.7187930416729382\n", + " x: [ 1.018e+00 -5.858e-01 -5.444e-03 -2.871e-01 3.859e-02\n", + " -5.963e-03 -8.120e-01]\n", + " nit: 4\n", + " jac: [ 0.000e+00 8.777e-12 8.747e-11 2.989e-11 4.727e-11\n", + " -5.298e-11 1.361e-11]\n", + " nfev: 6\n", + " njev: 6\n", + " nhev: 18\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=6 x=1.024095721188302\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 3.70588355429072\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 3.7054859675532517\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 3.705485964009525\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 3.705485964009525\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 3.705485964009525\n", + " x: [ 1.024e+00 -5.983e-01 -2.788e-02 -3.428e-01 2.797e-02\n", + " -1.012e-02 -9.755e-01]\n", + " nit: 4\n", + " jac: [ 0.000e+00 -1.076e-11 4.096e-12 2.206e-11 4.353e-11\n", + " -5.030e-11 1.168e-11]\n", + " nfev: 6\n", + " njev: 6\n", + " nhev: 18\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=7 x=1.029705860949468\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 4.866880593035504\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 4.866500069048582\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 4.866500052971173\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 4.866500052971173\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 4.866500052971173\n", + " x: [ 1.030e+00 -6.106e-01 -5.003e-02 -3.974e-01 1.744e-02\n", + " -1.421e-02 -1.139e+00]\n", + " nit: 4\n", + " jac: [ 0.000e+00 -3.023e-12 1.425e-10 1.243e-10 2.558e-10\n", + " -4.305e-12 9.510e-11]\n", + " nfev: 6\n", + " njev: 6\n", + " nhev: 18\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Freeze params with signal\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Updated list of frozen params: []\u001b[0m\n", "/home/david/work/Repos/rabbit/env/lib/python3.12/site-packages/wums/ioutils.py:161: FutureWarning: .metadata was not set, returning None instead of Attribute error, boost-histogram 1.7+ will error.\n", " (axes, obj.storage_type(), obj.metadata, obj.label, obj.name, h5buf),\n", "\u001b[38;21mINFO:rabbit_fit.py: edmval: 7.600559610564e-30\u001b[0m\n", @@ -2395,17 +3387,268 @@ "\u001b[38;21mINFO:rabbit_fit.py: 2*deltaNLL: 0.0\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: p-value: 100.0%\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: -delta log(L) scan for signal\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Freeze params with signal\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Updated list of frozen params: [b'signal']\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=1 x=0.994373888393127\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 0.09266254956510425\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 0.09209563800140488\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 0.09209525605636201\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 0.09209525605633889\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 4: loss value 0.09209525605633889\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 0.09209525605633889\n", + " x: [ 9.944e-01 1.818e-02 2.418e-02 6.170e-02 1.142e-02\n", + " 4.525e-03 1.622e-01]\n", + " nit: 5\n", + " jac: [ 0.000e+00 4.895e-10 -1.399e-09 -6.404e-10 5.899e-10\n", + " 2.833e-11 1.303e-09]\n", + " nfev: 7\n", + " njev: 7\n", + " nhev: 20\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=2 x=0.9887477767862541\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 0.37000450472420776\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 0.3694119443450815\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 0.36941144683429467\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 0.36941144683429467\n", + " x: [ 9.887e-01 3.680e-02 4.868e-02 1.246e-01 2.294e-02\n", + " 9.111e-03 3.239e-01]\n", + " nit: 3\n", + " jac: [ 0.000e+00 6.149e-09 6.912e-09 7.742e-09 1.316e-08\n", + " 2.659e-09 3.541e-09]\n", + " nfev: 5\n", + " njev: 5\n", + " nhev: 16\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=3 x=0.9831216651793812\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 0.8341046234447972\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 0.8334859385771302\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 0.8334853105862069\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 0.8334853105841966\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 4: loss value 0.8334853105841966\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 0.8334853105841966\n", + " x: [ 9.831e-01 5.589e-02 7.349e-02 1.887e-01 3.455e-02\n", + " 1.376e-02 4.851e-01]\n", + " nit: 5\n", + " jac: [ 0.000e+00 -1.518e-14 3.537e-14 4.609e-13 1.238e-12\n", + " -7.031e-12 -3.186e-14]\n", + " nfev: 7\n", + " njev: 7\n", + " nhev: 23\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=4 x=0.9774955535725083\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 1.4947583907452402\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 1.485843940059127\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 1.485840521351538\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 1.485840521337026\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 4: loss value 1.485840521337026\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 1.485840521337026\n", + " x: [ 9.775e-01 7.545e-02 9.862e-02 2.540e-01 4.625e-02\n", + " 1.847e-02 6.457e-01]\n", + " nit: 5\n", + " jac: [ 0.000e+00 -3.061e-14 2.541e-14 4.814e-13 1.258e-12\n", + " -7.111e-12 -4.163e-14]\n", + " nfev: 7\n", + " njev: 7\n", + " nhev: 21\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=5 x=0.9718694419656353\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 2.336887135953985\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 2.327990858616556\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 2.3279861202860452\u001b[0m\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 2.3279861202632777\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 4: loss value 2.3279861202632777\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 2.3279861202632777\n", + " x: [ 9.719e-01 9.550e-02 1.241e-01 3.205e-01 5.804e-02\n", + " 2.325e-02 8.057e-01]\n", + " nit: 5\n", + " jac: [ 0.000e+00 -6.613e-14 9.401e-14 1.017e-12 2.380e-12\n", + " -1.350e-11 -1.105e-13]\n", + " nfev: 7\n", + " njev: 7\n", + " nhev: 21\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=6 x=0.9662433303587623\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 3.3702965452500733\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 3.361421317666846\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 3.3614148668610735\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 3.3614148668352395\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 4: loss value 3.3614148668352395\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 3.3614148668352395\n", + " x: [ 9.662e-01 1.161e-01 1.498e-01 3.884e-01 6.992e-02\n", + " 2.809e-02 9.652e-01]\n", + " nit: 5\n", + " jac: [ 0.000e+00 -9.384e-14 1.803e-13 1.842e-12 3.861e-12\n", + " -2.247e-11 -2.400e-13]\n", + " nfev: 7\n", + " njev: 7\n", + " nhev: 21\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=7 x=0.9606172187518894\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 4.596461398380022\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 4.587610090563674\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 4.587601506646672\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 4.587601506623194\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 4: loss value 4.587601506623194\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 4.587601506623194\n", + " x: [ 9.606e-01 1.371e-01 1.760e-01 4.576e-01 8.190e-02\n", + " 3.299e-02 1.124e+00]\n", + " nit: 5\n", + " jac: [ 0.000e+00 -1.369e-13 1.087e-13 2.778e-12 5.010e-12\n", + " -3.071e-11 -4.585e-13]\n", + " nfev: 7\n", + " njev: 7\n", + " nhev: 21\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=1 x=1.005626111606873\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 0.09210073170545405\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 0.09157762837044589\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 0.09157736788891653\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 0.09157736788891653\n", + " x: [ 1.006e+00 -1.775e-02 -2.387e-02 -6.055e-02 -1.133e-02\n", + " -4.465e-03 -1.626e-01]\n", + " nit: 3\n", + " jac: [ 0.000e+00 2.828e-09 4.199e-09 4.086e-09 7.000e-09\n", + " 1.384e-09 1.823e-09]\n", + " nfev: 5\n", + " njev: 5\n", + " nhev: 16\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=2 x=1.011252223213746\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 0.3657677413804158\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 0.36526907248501395\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 0.3652688941653155\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 0.3652688941653155\n", + " x: [ 1.011e+00 -3.507e-02 -4.744e-02 -1.200e-01 -2.257e-02\n", + " -8.871e-03 -3.257e-01]\n", + " nit: 3\n", + " jac: [ 0.000e+00 1.832e-09 3.136e-09 2.777e-09 4.776e-09\n", + " 9.261e-10 1.264e-09]\n", + " nfev: 5\n", + " njev: 5\n", + " nhev: 16\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=3 x=1.0168783348206187\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 0.8199822892933405\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 0.8195074173884369\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 0.8195073053132019\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 0.8195073053132019\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 0.8195073053132019\n", + " x: [ 1.017e+00 -5.199e-02 -7.071e-02 -1.783e-01 -3.372e-02\n", + " -1.322e-02 -4.892e-01]\n", + " nit: 4\n", + " jac: [ 0.000e+00 1.081e-09 2.174e-09 1.728e-09 2.983e-09\n", + " 5.576e-10 8.057e-10]\n", + " nfev: 6\n", + " njev: 6\n", + " nhev: 18\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=4 x=1.0225044464274917\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 1.4531696001934322\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 1.4527178603379598\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 1.4527177986784556\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 1.4527177986784556\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 1.4527177986784556\n", + " x: [ 1.023e+00 -6.852e-02 -9.368e-02 -2.355e-01 -4.477e-02\n", + " -1.751e-02 -6.530e-01]\n", + " nit: 4\n", + " jac: [ 0.000e+00 5.522e-10 1.345e-09 9.397e-10 1.625e-09\n", + " 2.797e-10 4.507e-10]\n", + " nfev: 6\n", + " njev: 6\n", + " nhev: 18\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=5 x=1.0281305580343647\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 2.263748578411164\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 2.2633192828608486\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 2.2633192560529043\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 2.2633192560529043\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 2.2633192560529043\n", + " x: [ 1.028e+00 -8.466e-02 -1.164e-01 -2.917e-01 -5.573e-02\n", + " -2.174e-02 -8.171e-01]\n", + " nit: 4\n", + " jac: [ 0.000e+00 2.196e-10 6.869e-10 4.041e-10 6.954e-10\n", + " 9.077e-11 1.994e-10]\n", + " nfev: 6\n", + " njev: 6\n", + " nhev: 18\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=6 x=1.0337566696412377\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 3.250132959327279\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 3.2497254018572406\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 3.2497253947960374\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 3.2497253947960374\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 3.2497253947960374\n", + " x: [ 1.034e+00 -1.004e-01 -1.387e-01 -3.469e-01 -6.661e-02\n", + " -2.592e-02 -9.816e-01]\n", + " nit: 4\n", + " jac: [ 0.000e+00 4.744e-11 2.348e-10 1.040e-10 1.718e-10\n", + " -1.420e-11 5.100e-11]\n", + " nfev: 6\n", + " njev: 6\n", + " nhev: 18\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Now at i=7 x=1.0393827812481107\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 4.410732400897245\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 4.410345860775596\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 4.41034585912335\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 4.41034585912335\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 4.41034585912335\n", + " x: [ 1.039e+00 -1.158e-01 -1.608e-01 -4.010e-01 -7.739e-02\n", + " -3.004e-02 -1.146e+00]\n", + " nit: 4\n", + " jac: [ 0.000e+00 -7.824e-12 1.843e-11 9.911e-12 1.306e-11\n", + " -4.415e-11 1.683e-12]\n", + " nfev: 6\n", + " njev: 6\n", + " nhev: 18\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Freeze params with signal\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Updated list of frozen params: []\u001b[0m\n", "Results written in file ./results/getting_started/fitresults_nll_scan_unblinded.hdf5\n", - "\u001b[38;21mINFO:rabbit_fit.py: 3.43 seconds total time\u001b[0m\n", - "\u001b[1;32mDEBUG:rabbit_fit.py: 1.68 seconds initialization time\u001b[0m\n", + "\u001b[38;21mINFO:rabbit_fit.py: 4.33 seconds total time\u001b[0m\n", + "\u001b[1;32mDEBUG:rabbit_fit.py: 2.25 seconds initialization time\u001b[0m\n", "\u001b[1;32mDEBUG:rabbit_fit.py: For fit 0:\u001b[0m\n", - "\u001b[1;32mDEBUG:rabbit_fit.py: 0.01 seconds for prefit\u001b[0m\n", - "\u001b[1;32mDEBUG:rabbit_fit.py: 1.51 seconds for fit\u001b[0m\n", + "\u001b[1;32mDEBUG:rabbit_fit.py: 0.05 seconds for prefit\u001b[0m\n", + "\u001b[1;32mDEBUG:rabbit_fit.py: 1.71 seconds for fit\u001b[0m\n", "\u001b[1;32mDEBUG:rabbit_fit.py: 0.01 seconds for postfit\u001b[0m\n", "\u001b[1;32mDEBUG:rabbit_fit.py: For fit -1:\u001b[0m\n", - "\u001b[1;32mDEBUG:rabbit_fit.py: 0.02 seconds for prefit\u001b[0m\n", - "\u001b[1;32mDEBUG:rabbit_fit.py: 0.19 seconds for fit\u001b[0m\n", - "\u001b[1;32mDEBUG:rabbit_fit.py: 0.01 seconds for postfit\u001b[0m\n" + "\u001b[1;32mDEBUG:rabbit_fit.py: 0.03 seconds for prefit\u001b[0m\n", + "\u001b[1;32mDEBUG:rabbit_fit.py: 0.29 seconds for fit\u001b[0m\n", + "\u001b[1;32mDEBUG:rabbit_fit.py: 0.00 seconds for postfit\u001b[0m\n" ] } ], @@ -2416,7 +3659,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 19, "id": "b3482fcf", "metadata": {}, "outputs": [ @@ -2453,7 +3696,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 20, "id": "03c4438b", "metadata": {}, "outputs": [ @@ -2461,8 +3704,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "Write output file ./results/getting_started/nll_scan_signal_data_unblinded.png\n", - "Write output file ./results/getting_started/nll_scan_signal_data_unblinded.pdf\n" + "\u001b[38;21mINFO:plot_tools.py: Wrote file(s) ./results/getting_started//nll_scan_signal_data_unblinded.pdf(.png)\u001b[0m\r\n", + "\u001b[38;21mINFO:plot_tools.py: Wrote file(s) ./results/getting_started//nll_scan_signal_data_unblinded.pdf(.png)\u001b[0m\r\n" ] }, { diff --git a/notebooks/tutorial_2_advanced.ipynb b/notebooks/tutorial_2_advanced.ipynb index 3513fb6..7971fae 100644 --- a/notebooks/tutorial_2_advanced.ipynb +++ b/notebooks/tutorial_2_advanced.ipynb @@ -190,7 +190,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "id": "bf3ee859", "metadata": {}, "outputs": [], @@ -214,6 +214,7 @@ " # 3. Normalization and shape systematics\n", " writer.add_norm_systematic(\"lumi\", [\"signal\", \"flat_bkg\", \"exp_bkg\"], \"ch0\", 1.01)\n", " writer.add_norm_systematic(\"flat_bkg_norm\", \"flat_bkg\", \"ch0\", 1.1)\n", + " writer.add_norm_systematic(\"exp_bkg_norm\", \"exp_bkg\", \"ch0\", 1.07)\n", "\n", " writer.add_systematic( \n", " [h_flat_up, h_flat_dn], \n", @@ -259,7 +260,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "id": "dbf2e6d2", "metadata": {}, "outputs": [ @@ -286,7 +287,57 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, + "id": "8e2ec66b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2026-03-15 19:35:46.730640: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", + "2026-03-15 19:35:46.730944: I tensorflow/core/util/port.cc:153] 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", + "2026-03-15 19:35:46.766460: 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", + "2026-03-15 19:35:47.636809: I tensorflow/core/util/port.cc:153] 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", + "2026-03-15 19:35:47.637076: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", + "\u001b[38;21mINFO:debug_inputdata.py: Debugging input file: ./results/advanced/input.hdf5\u001b[0m\n", + "2026-03-15 19:35:48.174603: E external/local_xla/xla/stream_executor/cuda/cuda_platform.cc:51] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n", + "ch0 {'axes': [Regular(10, 0, 1, name='x'), Regular(2, -2, 2, underflow=False, overflow=False, name='cat')], 'masked': False, 'flow': False, 'start': 0, 'stop': 20}\n", + "ch0_masked {'axes': [Regular(2, -2, 2, underflow=False, overflow=False, name='cat')], 'masked': True, 'flow': False, 'start': 20, 'stop': 22}\n", + "\u001b[38;21mINFO:debug_inputdata.py: ✓ Successfully created FitDebugData object\u001b[0m\n", + "\u001b[38;21mINFO:debug_inputdata.py: \n", + "Checking channels with data observations:\u001b[0m\n", + "\u001b[38;21mINFO:debug_inputdata.py: ✓ All channels have data observations\u001b[0m\n", + "\u001b[38;21mINFO:debug_inputdata.py: ✓ All channels have non-empty data observations\u001b[0m\n", + "\u001b[38;21mINFO:debug_inputdata.py: ✓ All bins in channel ch0 have more than 10 data observations. Smallest bin has 90.0\u001b[0m\n", + "\u001b[38;21mINFO:debug_inputdata.py: ✓ All bins in channel ch0 have more than 1 prediction\u001b[0m\n", + "\u001b[38;21mINFO:debug_inputdata.py: ✓ All bins in channel ch0_masked have more than 1 prediction\u001b[0m\n", + "\u001b[38;21mINFO:debug_inputdata.py: ✓ All bins in channel ch0 have less than 100% relative uncertainty in prediction\u001b[0m\n", + "\u001b[38;21mINFO:debug_inputdata.py: ✓ All bins in channel ch0_masked have less than 100% relative uncertainty in prediction\u001b[0m\n", + "\u001b[38;21mINFO:debug_inputdata.py: ✗ Found processes with zero normalization:\u001b[0m\n", + "\u001b[38;21mINFO:debug_inputdata.py: - Channel ch0_masked: exp_bkg, flat_bkg\u001b[0m\n", + "/home/david/work/Repos/rabbit/env/lib/python3.12/site-packages/hist/basehist.py:549: UserWarning: List indexing selection is experimental. Removed bins are not placed in overflow.\n", + " return super().__getitem__(self._index_transform(index))\n", + "\u001b[38;21mINFO:debug_inputdata.py: ✓ All systematics are nonzero\u001b[0m\n", + "\u001b[38;21mINFO:debug_inputdata.py: ✓ All processes have systematic variations\u001b[0m\n", + "/home/david/work/Repos/rabbit/bin/debug_inputdata.py:226: RuntimeWarning: All-NaN slice encountered\n", + " down_extreme = np.nanmin(down_ratio[..., iproc, isyst])\n", + "/home/david/work/Repos/rabbit/bin/debug_inputdata.py:227: RuntimeWarning: All-NaN slice encountered\n", + " up_extreme = np.nanmax(up_ratio[..., iproc, isyst])\n", + "\u001b[38;21mINFO:debug_inputdata.py: ✓ No extreme systematic variations found\u001b[0m\n", + "\u001b[38;21mINFO:debug_inputdata.py: \n", + "✗ Found 1 potential issues in the input data\u001b[0m\n" + ] + } + ], + "source": [ + "!debug_inputdata.py ./results/advanced/input.hdf5" + ] + }, + { + "cell_type": "code", + "execution_count": 8, "id": "bd42979b", "metadata": {}, "outputs": [ @@ -294,11 +345,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "2026-03-02 12:37:47.489183: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", - "2026-03-02 12:37:47.544034: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", + "2026-03-15 19:35:51.175454: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", + "2026-03-15 19:35:51.175758: I tensorflow/core/util/port.cc:153] 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", + "2026-03-15 19:35:51.213628: 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", - "2026-03-02 12:37:48.826788: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", - "2026-03-02 12:37:49.399114: E external/local_xla/xla/stream_executor/cuda/cuda_platform.cc:51] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n", + "2026-03-15 19:35:52.073863: I tensorflow/core/util/port.cc:153] 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", + "2026-03-15 19:35:52.074143: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", + "2026-03-15 19:35:52.435172: E external/local_xla/xla/stream_executor/cuda/cuda_platform.cc:51] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n", "ch0 {'axes': [Regular(10, 0, 1, name='x'), Regular(2, -2, 2, underflow=False, overflow=False, name='cat')], 'masked': False, 'flow': False, 'start': 0, 'stop': 20}\n", "ch0_masked {'axes': [Regular(2, -2, 2, underflow=False, overflow=False, name='cat')], 'masked': True, 'flow': False, 'start': 20, 'stop': 22}\n", "\u001b[38;21mINFO:rabbit_plot_inputdata.py: Make plots for channel: ch0\u001b[0m\n", @@ -364,7 +417,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 9, "id": "5db94378", "metadata": {}, "outputs": [ @@ -372,11 +425,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "2026-03-02 12:37:52.930564: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", - "2026-03-02 12:37:52.982631: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", + "2026-03-15 19:36:04.455574: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", + "2026-03-15 19:36:04.455884: I tensorflow/core/util/port.cc:153] 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", + "2026-03-15 19:36:04.490997: 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", - "2026-03-02 12:37:54.384452: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", - "2026-03-02 12:37:56.857147: E external/local_xla/xla/stream_executor/cuda/cuda_platform.cc:51] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n", + "2026-03-15 19:36:05.431998: I tensorflow/core/util/port.cc:153] 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", + "2026-03-15 19:36:05.432280: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", + "2026-03-15 19:36:07.116424: E external/local_xla/xla/stream_executor/cuda/cuda_platform.cc:51] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n", "ch0 {'axes': [Regular(10, 0, 1, name='x'), Regular(2, -2, 2, underflow=False, overflow=False, name='cat')], 'masked': False, 'flow': False, 'start': 0, 'stop': 20}\n", "ch0_masked {'axes': [Regular(2, -2, 2, underflow=False, overflow=False, name='cat')], 'masked': True, 'flow': False, 'start': 20, 'stop': 22}\n", "\u001b[38;21mINFO:rabbit_fit.py: Save inclusive histogram for Select\u001b[0m\n", @@ -384,26 +439,24 @@ "\u001b[38;21mINFO:rabbit_fit.py: Save inclusive histogram for Project ch0_masked\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: Save processes histogram for Project ch0_masked\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: Save inclusive histogram for Ratio ch0_masked ch0_masked cat:0 cat:1\u001b[0m\n", - "/home/david/work/Repos/rabbit/env/lib/python3.12/site-packages/scipy/optimize/_trustregion.py:250: RuntimeWarning: invalid value encountered in multiply\n", - " p, hits_boundary = m.solve(trust_radius)\n", - "\u001b[38;21mINFO:rabbit_fit.py: edmval: 1.616268164126988e-18\u001b[0m\n", + "\u001b[38;21mINFO:rabbit_fit.py: edmval: 5.825574184501759e-21\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: Saturated chi2:\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: ndof: 18\u001b[0m\n", - "\u001b[38;21mINFO:rabbit_fit.py: 2*deltaNLL: 7.1\u001b[0m\n", + "\u001b[38;21mINFO:rabbit_fit.py: 2*deltaNLL: 7.09\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: p-value: 98.93%\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: Save inclusive histogram for Select\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: Save processes histogram for Select\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: Save inclusive histogram for Project ch0_masked\u001b[0m\n", - "WARNING:tensorflow:5 out of the last 5 calls to triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", + "WARNING:tensorflow:5 out of the last 5 calls to triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", "\u001b[38;21mINFO:rabbit_fit.py: Save processes histogram for Project ch0_masked\u001b[0m\n", - "WARNING:tensorflow:5 out of the last 5 calls to triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", + "WARNING:tensorflow:5 out of the last 5 calls to triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", "\u001b[38;21mINFO:rabbit_fit.py: Save inclusive histogram for Ratio ch0_masked ch0_masked cat:0 cat:1\u001b[0m\n", - "WARNING:tensorflow:6 out of the last 6 calls to triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", - "WARNING:tensorflow:6 out of the last 6 calls to triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", + "WARNING:tensorflow:6 out of the last 6 calls to triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", + "WARNING:tensorflow:6 out of the last 6 calls to triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", "/home/david/work/Repos/rabbit/env/lib/python3.12/site-packages/wums/ioutils.py:161: FutureWarning: .metadata was not set, returning None instead of Attribute error, boost-histogram 1.7+ will error.\n", " (axes, obj.storage_type(), obj.metadata, obj.label, obj.name, h5buf),\n", "Results written in file ./results/advanced/fitresults.hdf5\n", - "\u001b[38;21mINFO:rabbit_fit.py: 20.22 seconds total time\u001b[0m\n" + "\u001b[38;21mINFO:rabbit_fit.py: 10.23 seconds total time\u001b[0m\n" ] } ], @@ -424,7 +477,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 10, "id": "859c06dd", "metadata": { "scrolled": false @@ -444,7 +497,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6MAAAOFCAYAAACfkzQ3AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA4bJJREFUeJzs3XlcVdX+//H3AcEB1MJUJqccUHLWtMxSK68jlkNl2aBZZp1rg1ndujl2y67l0HCarLRMTSsbrLTBucEs5xxzoAsHBBVFQUGB/fvDH/sLcUAOHPbGeD0fj/O4i7PWXutzzq4bH9baazkMwzAEAAAAAICF/OwOAAAAAABQ8ZCMAgAAAAAsRzIKAAAAALAcySgAAAAAwHIkowAAAAAAy5GMAgAAAAAsRzIKAAAAALAcySgAAAAAwHIkowAAAAAAy5GMAgAAAAAsRzIKAAAAALAcySgAAACAIt11111yOBxat25dsa/p37+/HA6HPvjgA6/GSktL07JlyzR16lQ9+uij+s9//qPFixdry5YtysnJ8TZ00+rVq+VwOHzymjRpUonj8MQwDLVo0cLsf9asWV73sXbtWvP6oKAgpaena8qUKXI4HJo7d65P4/UVklEAAAAAhVqxYoXef/999enTR1dffXWxrjl27Ji+/fZbr8bJycnR888/r8jISPXt21dPPfWUZsyYofHjx+uWW25Ru3bt1KJFCy1durQkH6Ncczgcuv32282fP/zwQ6/7+Pjjj83ygAEDFBQUpIcffli1atXSuHHjdOTIEZ/E6kuV7A4AAAAAQPmUkZGh0aNHS5KeffbZYl83a9YsnT17ttjtDcPQHXfcoQULFhTZbu/evRowYIBefvlljRkzptj9S1JERIScTmeh9bt27dLKlSslSVFRUbr++usLbdupUyevxi6O2267TU8//bQk6ZdfftGBAwd06aWXFuvanJwcffLJJ+bPt956qySpRo0aevLJJzVu3Dg9+uijeu+993wed6kYAAAAAODBlClTDEnG4MGDi9X+zJkzxttvv204HA5DkiHJmDdv3nmvmzt3rtlekvHAAw8Y69evN44dO2a43W7jyy+/NNq1a2fW+/n5Gb///ntpP14+c+bMMfu/6667fNp3cV111VVmDM8991yxr/vxxx/N62rWrGlkZGSYdadOnTJCQ0MNScbatWvLIuwSY5kuAAAAgAIyMzP1yiuvSJLuu+++Qttt27ZNr7zyiu677z41btxY99xzjwzD8GqsF1980Sy/8sorcrlc6ty5sy666CKFh4erX79+2rBhgzp06CDp3EzgzJkzS/Cpyre8S3UXLlxY7OvyzooOHjxYlStXNn+uWrWq7rzzTknS9OnTfRCl75CMAgAAAChg0aJFOnz4sMLDw3XttdcW2m7GjBl68MEH9dZbbykuLs7rcdxut37//XdJUsOGDQtNfCtVqqTnnnvO/HnVqlVej2WF48ePa8mSJZo1a5ZmzpypL7/8UvHx8cW69qabblJAQIAkafv27dq5c+d5rzEMI9/zorlLdPO64447JElLly5VbGxssWKxAskoAAAAgHwMw9DLL78s6dyzjP7+/oW2rVmzpurWrZvvFRQUVOyxtm/fbpY7d+5sJmOetG/f3iy73e5ij2GFI0eOaNSoUapTp44GDx6sRx55RGPHjlVMTIwaNmyoO+64Q/v27Suyj1q1aqlPnz7mz8XZyOi3337T//73P0lSnTp11L179wJtWrZsqXbt2iknJ0cul8u7D1aGSEYBAAAA5LN582Zt3LhRkueZtrxeeuklHTp0KN9r3LhxxR4rPT1dNWvWVM2aNdWsWbMi22ZnZ5vl6tWrF3uMsrZ//3516NBBs2fP9rhxU3Z2tj744AN17tzZ/F4L89eluudb8px3ie7NN9+sSpU871Gbex/feecdZWVlFdmnVUhGAQAAAOTzzTffSDqX8LVp06ZMxxo8eLCOHz+u48ePa8qUKUW2/fHHH81yq1atyjSu4jp9+rT69Oljzk5GRkbK5XLp119/1bZt2/Tmm2+qadOmkqSUlBRde+21RS7b7d+/v2rUqCFJ2rdvnzZt2lRo2+Is0c11zTXXSDp37M5vv/1W/A9YhkhGAQAAAOSzYsUKSeeOMClqia5VsrOz9d133+V7nnTs2LE2RvR/nnvuOf3xxx+SpO7du2vr1q164IEH1LFjR7Vq1UqjRo3Sb7/9pn79+kmSTpw4oQkTJhTaX9WqVTV48GDz56I2Mtq6dav2798vSapfv76uuOKKQtu2bdtWgYGBkmQeYWM3klEAAAAApoyMDHMGsqjkpqy99NJLuuWWW9SzZ0/Vq1dP//jHP3TkyBE5HA5NmzZN/fv3ty22XBkZGXr99dclSdWqVdPcuXMVEhJSoF2NGjU0d+5cXXzxxZKkuXPnKiEhodB+8y7VXbRokXJycjy2y7tEd+jQofLzKzy9q1y5svnMbe4fG+xGMgoAAADA9OuvvyojI0OSzKNU7LBs2TItXrxY33//vRITEyWdS/hWrVqlxx57zLa48lq9erWOHj0qSRoxYoQaNGhQaNtLLrlEDz74oKRzy2t/+umnQtt269ZNERERkqT4+Ph8y5NzebNEN1fu/fzxxx/zPX9rF5JRAAAAAKa8x7OEhYXZGElBp06dUr9+/fTss896fZZpWcibUHbt2vW87S+//HKzvH79+kLb+fv750suPe2qu3PnTu3evVuSFBUVVaxne3PvZ2Zmpo4cOXLe9mXN81ZLAAAAACqkpKQks1yrVi3b4li+fLkMw1BSUpL279+vuXPn6t1331V6erqefvppnThxQv/9739ti09SvqNaPv30U/3www9Ftk9JSTHLhw8fLrLt7bffrhdffFGS9NFHH+mll17Kt1Nu3iW6t956qxwOx3njzXs/Dx06pLp16573mrJEMgoAAADAdOjQIbPs6flHKzkcDoWGhio0NFRXXXWV+vbtq0GDBkmSpk+fLqfTqfr169sW37Fjx8zy4sWLvbo2LS2tyPrWrVvrsssu044dO3T48GGtXLlS//jHP8z6vEt0hw4dWqwxL7nkErN86NChMt8p+XxYpgsAAADAlHf2LveIkfJi4MCB6tOnj6RzO+x++umntsZTmucuT548WWS9w+HIt5FR3qW6e/fu1fbt2yVJ7dq1U1RUVLHGrFmzplnOfdbVTiSjAAAAAEx5Z0NPnDhR5uMdOnRIsbGxio2NVVZW1nnb593hN/dsT7tcdNFFZnnr1q0yDKPYr2+//fa8/d92221mecmSJcrMzJQkrzcuypWammqW7Z71lkhGAQAAAOQRGhpqlq2YPbv77rvVqFEjNWrUSL///vt52+edrT19+nRZhnZe9erVM8u5Z436Uv369dWtWzdJ5xLJ5cuXS8r/vOgtt9xS7P7y3s+899kuJKMAAAAATFYno3ln6GJjY8/bfteuXWbZ7t1+O3fubJaLk0j/8ccf+vDDD/Xhhx/m27W4KMOGDTPLH374oQ4cOKBNmzZJkq666iqvnpnNu4MuySgAAACAciXvbF/ezYzKSt5NdL766qsi26anp5uzg5J09dVXl1lcxXH99dercuXKkqRX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LPrjHtjbly/74x6Uvr+MjIxS/U4fGhpqSDLCw8N9Gl9xWbaBUWpqqpKSkpSSkqKLL75YdevW1UUXXWTV8JYYOnSohg4dqhMnTujgwYNasmSJZs6cqT179igmJkYff/yxbrzxxmL317p1a2VlZZ233YMPPqj58+dr48aN2r17t7Zs2aL27dsXeY2fnx8bHwEAAAAXsMqVK6ty5colvt7Pz97DVXyejObk5GjTpk1atWqVVq1apR07dig5OdnjtG9AQIDq1q2r6Oho9ejRQz169FCHDh1s/1JKq0aNGmrTpo3atGmjnj17qlu3bsrOztbjjz+umJgY+fv7+3Q8f39/DRw4UBs3bpQk/frrr+dNRgEAAADATj5JRg3D0Jdffql33nlHq1evzrdu2SjikdQzZ84oLi5O8fHx+vbbbyWdexaxe/fuuueee9SvXz+frR+3S9euXdWrVy8tW7ZMf/zxh+Lj48vkvNDmzZub5aNHj/q8fwAAAADwpVIlo0ePHtU777yj119/Xf/73/8kFUw+a9WqpVq1aikkJES1atVSzZo1deLECR09elRHjx5VSkqKjhw5YrY/ceKEli5dqqVLl6p+/fq6//77dffdd+uSSy4pTag+969//Uvx8fFq1KiRnnnmmSLbtmjRQsuWLZN0bsfdskhG8y7nrVmzps/7BwAAAABfKlEyeurUKU2ePFkvv/yyzpw5YyagtWrV0hVXXKFOnTqpc+fOuvzyy3XxxReft7/jx4/r119/1YYNG7Rhwwb9/PPPOnLkiP788089+eSTmjhxoh588EFNmDBBQUFBJQnZ57Zt26Zly5YpNDT0vMlo7vEukrx6TnbYsGHaunWr6tatq++++67I5cu7du0yy82aNSv2GAAAAABgB68fzvzss8/UokULvfjii8rMzFRQUJDuuOMOLV++XIcOHdLSpUs1fvx4/eMf/yhWIiqdS9B69uypf//73/r888916NAhfffddxo+fLiCg4OVmZmpF198UdHR0frss8+8DblM5CZ8hw4d0u7duwttl5aWpnXr1kk69zmbNGlS7DHatm2rHTt2aOXKlfr+++8LbXf69GnNmzdPkhQcHKyuXbsWe4zScjqd5ba/8hybL5Xnz1le+/I17oH9yvPnLM+x+VJ5/pzlOTZfKs+fszzH5kvl9XOW5/vpa+X1e6tI98Ar3my9269f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VivTZDQzM1NfffWVfv75Z23dulVHjhxRamqqqlWrppCQELVs2VJdunTRDTfcoODg4LIMBQAAAPBaq1at1Lt370Lrn332WT333HOaPHmyTp48qUGDBmnXrl2qVauWhVECF6YyWaabkZGh8ePHKzw8XDfddJNmzJihFStWaOvWrYqNjdXOnTv1ww8/6I033tCdd96piIgIPf744zp16lRZhIMLxOrVq+VwOHzyqlatmho1aqTevXvr5Zdf1uHDh+3+eKbY2NhC437xxRfLZMxJkyYVOuaRI0fKZMy5c+cWOuZvv/1WJmMCAGC1wMBATZo0SZMmTZIkHT58WE8++aS9QQEXCJ8no3/++afatGmj5557TseOHZNhGEW+JOnkyZOaPn262rZtq9jYWF+HhAro9OnTio2N1TfffKOHHnpIjRs31gsvvFCsnZ4BAAC89eSTTyoqKkqSNG/ePB07dszmiIDyz6fJ6PHjx9WjRw/98ccf+d7v3bu3/vWvf+nNN9/UV199pTlz5ujpp5/WgAED8rXbt2+frr32Wv7lhc+dPHlSjz/+uO68805lZ2fbHQ4AAPibCQwM1KhRoySdWyX48ccfF2hz+vRpzZ49W9dee62aNm2qqlWrqlatWmrVqpWGDh2qVatWFfjDee7KsdznRSVpxIgR5mqjv8rKytLixYvVp08fNW/eXMHBwapZs6aio6N1ww036PPPP+d3IZQbPn1m9N///re5BNEwDA0ePFiTJk3SZZddVug1u3fv1vjx4/XJJ5/I4XDozz//1NNPP13oWThAaXzwwQdq0aKFnnrqKbtDQSG6d++uNWvWFHj/sssu0++//25DRAAAFE+fPn306KOPSpJ+/vln3XvvvWbd77//rl69eikhISHfNRkZGUpJSdHvv/+uRYsW6a677tKcOXM8Jprn43a71bNnT+3atatA3YkTJ7Rr1y598cUXuv766/XVV18pMDDQ6zEAX/LZzGhaWpreffdd81+csWPH6qOPPioyEZWk5s2b66OPPtIjjzxiLt199913lZaW5qvQgHwmTpyo//3vf3aHAQDA305SUlK+/61oGjRoYJbzHvNiGIaGDRtmJqJdunTRyy+/rCVLluiDDz7QuHHjzA2P3nvvPc2fP9+8tnXr1lq2bJnmzp1rvjd27FgtW7ZMy5Ytyzf+/fffbyaiLVu21AsvvKCPP/5YCxcu1IQJExQZGSlJ+v777zVt2jTffnigBHw2M7pq1SplZmaaywief/55r65//vnn9dlnn+ngwYM6c+aMVq5cWWAZLyqu5s2b69///neRbU6dOqXY2Fjt2bNHn332mXJycjy2y8rK0quvvsr/CQMA4EPvvPOOuUy1f//+euuttzRy5Eibo7JW7okRKSkp+RLyhIQEbdu2TZJ0880368MPP8w38zls2DDde++9atWqlc6cOaNVq1bp9ttvlySFhISod+/e+fZV8bTDb1ZWlr799ltJ0lVXXaWVK1cWmPl0Op1q3bq1kpKStGrVKj399NM+/fyAt3yWjP75559m+eabb1alSt51HRAQoJtvvln//e9/JYmNjJBP3bp1zf9TLo4tW7Zo0KBBOnjwoMf6L7/8kmQUAAAfiY+P16hRo8w/BOfk5Oi+++5Tr169zNm4iqJevXpKSUnJtwfKzp07VbNmTUnSo48+6nEJbrNmzdS2bVtt2LBB+/fv93rc/fv3q0qVKqpSpYoefvhhj0tw69Spo27dumnx4sUlGgPwNZ8t0z19+rRZbty4cYn6uPTSS81yRkZGqWNCxdW2bdsiZ+d37dqllJQUCyOqeIYPH17oLtodO3a0OzwAgA/98ccfBVYkZWdna9++fTZFZJ/cRDNvwtmzZ08dP35cx48fV6dOnTxeZxhGqR5Ti4qKMscYMmRIoe1OnjxZ4jEAX/PZzGj9+vXN8vHjx0vUR97Z0Lp165YyIlR0Q4YMUbVq1Qo9vzYxMVEhISEWRwUAwN9P06ZN5efnly8h9ff3V5MmTWyMyh5xcXGSpIsvvvi8bTMzM3XgwAGtW7dOn3/+uXbu3OnzeLKysvTnn3/qp59+8vicKWAnnyWjV111lfz8/GQYhr755htzJzFv/Pzzz2b56quv9lVo8CApKUnR0dEe65xOp5xOp8UR+Z6fn58iIyO1d+9ej/WpqalFXm8Yhn755Rd9/vnn2rx5s/bs2aPjx4/r5MmTqlKlimrUqKGIiAi1bt1aV199tQYOHGguwfGFPXv2aN68eVq+fLncbrdSUlIUHh6uhg0bqn///rr99tt9+keb7OxsLV++XAsWLNCmTZuUkJCgnJwcNWjQQNHR0br99tvVp08fBQQEFKu/SZMmafLkyR7rDh8+rEsuucRnsQMA7BUZGam33nrLXKrr5+enN998s8It0T116pSOHj0q6dyS2L/aunWrPvnkE/3444/at2+f4uLifH4G+r59+/TRRx9pzZo12rdvn2JjYznKpYJzuVyFnlRi+2Zjhg8NGjTIcDgchp+fn7F06VKvrv3xxx8NPz8/w8/Pz7j++ut9GRbyiIiIMCQZERERdodSwKpVqwxJHl/dunUrUZ9XXHFFoX3u27ev0OtWrlxpXHbZZYVe6+kVGBhojBs3zkhNTS0ypoMHDxbaxwsvvGCcPXvWmDRpkuHn51fkeJUqVTImTJhgnDlz5rzfw8SJEwvt5/Dhw8aff/5pXH311ef9jA0aNDBWrVpVrO/+fGPm5c33nPuaOHFiseIAAFjn66+/NiQZX3/9td2hlMqcOXPM/97MmTOn2Nft2rXLvG7kyJHm+2fPnjXuvfdej/9d/cc//mH885//NBYvXmx06tSp0N978v7+4CmmnJwcY8KECUalSpXyjREeHm706NHDuO+++4y5c+caN954ozk2YHdu4LNnRqVzWXfdunVlGIZuvvlmvfvuu8rKyjrvdV9++aUGDBggwzBUrVo1vf76674MCxXY4cOHPb7vcDhUr149j3X/+c9/dO2112rHjh1ejXXmzBm9+OKLuvLKK3Xo0CGvY5XOzcbee++9mjRpUqG7AefKysrSlClTdPXVV5d4abx07kyyK664QuvWrTtv2z///FPXXnutpk6dWuLxAAB/X7krdirq41bLly83y1deeaVZnjBhgmbPni1Juu666/Tll1/q2LFjio2N1TfffKNXXnlFN910k6pWrVrisWfPnq0pU6YoKytLHTp00KJFi5SUlCS3262VK1fqjTfe0F133eXTVVxAaflsma4khYaGasWKFRo4cKD++OMP3XvvvZo8ebL++c9/qkOHDmrYsKEiIiJ09OhRxcbGavfu3XK5XNqyZYsMw1DNmjX19ddfV8jnC+B7WVlZSkxM9Fh36aWXetxl7s0339T48eNLNe7OnTs1ePBgrVu3Tn5+3v2955133tGePXu8uuaXX35RTEyMvvnmG1WrVs2rayXplltuKfR78sQwDD311FMKDg7WmDFjvB4PAIC/o7Nnz+rNN9+UJFWtWtXcRCgnJ0evvvqqJOmKK67Q8uXLCz114siRIyUe/5VXXpF07qzTNWvWKCgoyOdjAL7m02T02muvlSTzH37DMBQXF6d//etfhV5j/P918g6HQydOnFDXrl3PO47D4SjWjCsqtsWLFxe6edG9995b4L2kpCQ9/vjjPhn7p59+0ieffKKbbrrJq+u8TURz/fDDD3rqqac0a9Ysr68t6ZgPPfSQunTpog4dOpToegAA/k6mTp2q3bt3S1K+GcgjR46YO9h26dKl0ET04MGDXq/Kyiv3qJYOHToUmoiePHlSa9asKfEYgK/5NBldvXq1x+2scxl5HtAurJ3h44e4UTFt2rSp0IOcq1Wr5jEZfeedd3TixAmP1wQEBGjQoEFq06aNateurVOnTmn//v3mEhhPFi9e7HUymldwcLBuvvlmtW/fXjk5OVq/fr0++eQTZWZmemz/yiuvaMSIEWrTpk2Jx4yKitJNN92kBg0aKCkpSV988YU2bNjgsa1hGHrggQf0888/ez0D7KmvXN27d/f4H8rLLrtMv//+e6nGAQDA186cOaOpU6dq0qRJks4tUX722WfN+lq1apm7+//888/Kzs6Wv79/vj7i4+PVv39/8+f09PQix/RU36BBA+3evVubNm3SqVOnCqyWOnbsmG688Ubz+JhTp06Zm00BdvFpMioVP5kk6YQ3kpKS9MEHHxTZ5vTp04qNjdWePXv02Wefedw5zuFwaO7cuR6PdPnoo4889lujRg1t2LBBUVFRBeqmTJmiLl26eNyKvbAkrjg6deqkTz75JN8uhGPGjNGECRN0ww03eJzNzMnJ0bPPPqvFixeXaMzx48drwoQJ+f5i+9RTT2nOnDkaNWqUx+9zw4YNWr58ufr27VuiMQEAKO+2b9+e71lQ6dx/c48ePart27fro48+Mo8nrF69uj799NN8v2f4+/urR48e+uqrr/Tzzz/r+uuv12233aY6deooISFBv/zyixYuXKgzZ84oKChI6enp+u233/Sf//xHPXv2VOfOnSUp33+fP/zwQ7Vu3Vp+fn666qqrJJ17FnX37t2KjY1V165dNXLkSEVEROjIkSPavHmz3n//faWlpZljHD58WGPHjtWAAQPM1Y2A5WzZNgm2sXvHrKIUtZuuL14Oh8OYPXu2x7HPnDlj+Pv7e7zumWeeKTLu559/3uN1lStX9ti+qN10JRl169Y1jh49Wuh4f/75pxEUFOTx2oCAACM5ObnANUXtbCvJGDVqVJGfccaMGYVeO3DgQI/XeLObbl7dunXzeM1ll11WZIwAAPtt3LjRkGRs3LjR7lBKJe9uusV9tWnTptDPHR8fb4SGhhZ6bWBgoPHf//7XmD9/fr73b7jhBrOP7OxsIzw8vMC1uU6cOGFER0cX+XvQI488YqxZs6ZA3Ki47M4NfD4zCpRH3bt31/Tp09W+fXuP9cnJyerYsaPHuj59+hTZd2E72Ra2nPZ8xo4d63HmNlf9+vU1atQozZw5s0Dd2bNn9emnn2rUqFHFHi8gIKDQJc257r//fk2bNs3jLsFLly5VWlqagoODiz0mAAAXuqpVqyo0NFQdOnTQkCFDNHjw4EKfB42IiNCuXbv04osvavny5dq/f7/Onj2rhg0bqk+fPnI6nWrYsKEMw9CBAwf00ksvyc/PTy1atDD78PPz0xdffKGxY8dq06ZNkqTw8HCzvnr16vrtt9/kcrn08ccfa//+/UpLS1O9evV0/fXX6/7771erVq0kSW+//bYmTpyoU6dOlerxHqDUbEmBYRu7//pRlLKaGW3QoIHx22+/lUnM+/btMy699NJCx/akqJnR6tWrn/ecUsMwjLi4uALniOW+hg8fXqB9UbOUntp7UtgMsCRj9erVXo3JzCgA/D39XWZGgYrC7tzAqyeWN2/e7E3zMlNe4sCF4c8//1THjh01ePBgxcfHl7if1NRU/fjjj3rzzTf1z3/+U926dVOrVq104MABn8Xapk0b1ahR47ztIiMj1axZM49169ev92rM4uxgLanI50m8HRMAAADwapluhw4dNGjQIE2ePFmXXXZZWcVUqN9//10TJ04sdHMaoChLlizR5s2btW3btmItKT148KC++eYbffPNN9q4caPi4uLKPMZGjRp51dbTxklut7tMxiyqnbdjAgAAAF7NjF522WVasmSJWrdurWHDhpnr1cvaxo0bdeutt6pNmzb69NNPbUmEYa9u3brJMIxCXzk5OUpMTNS6des0cODAQvs5ePCgZs+eXWi9YRj68MMP1apVK1166aW6//779dlnn1mSiEpSw4YNi922sOTw5MmTOnv2rM/HrFWrVqFJfEpKSrHHAwAAACQvk9HNmzdr2rRpqlatmj788ENdfvnlatGihZ599lmfLlWUpAMHDuiZZ55R8+bN1alTJy1atEhVq1bVtGnTLEuCceFwOBwKDQ1V165dtWTJEo0YMaLQtr/99pvH98+ePavbbrtNt956a7HP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3Lhx5jOlf5WVlaWFCxfqv//9r3bu3CnDMPTee++pT58+uummm3wVmmUSEhL0ww8/KCUlRXv37tXixYvldrslSc8884zXR7scOnTILIeEhBTZNu/MbGJi4nmTUcMwdOLECa/iyaty5cpFnuMJAAAAoGxlZmYqMzOzxNf7YJFsqfgsGW3evLmZjDocDr399tsaMWJE0YNXqqQ77rhDt912m+666y4tWLBAhmFo/PjxF2Qyunbt2gJHXYSEhGj+/Pnq3bu31/3lnRktbBmwp/r09PTz9p2QkFCq8yE54xEAAACw19SpUzV58mS7wygxnx1KmLubp8Ph0F133XXeRDQvf39/vf322+Yupn/88Yd27tzpq9BslZKSoocffljLli3z+tq8M5dVq1Ytsm3eWcrTp0+ft+/w8HClpqaW+PXkk096/XkAAADKu9WrV8vhcJz3Va9ePV1//fV6+OGHy9XvrVu3blW/fv1Ut25dBQcHa9asWXaHdEHK+8/B6tWrfdp3bGys2ffcuXNL1deTTz5Zqt/pw8PDffOhSshnyWje8y09HUFyPlWqVMmXwP72228+ictKQ4cOlWEYSk1N1ZYtWzRhwgRVr15de/bsUUxMjD777DOv+st7Tubx48eLbJu3/nyJq3TujwY1atQo8YslugAAoCKLj4/XihUr9NJLL6lVq1aaNm2a3SEpPj5e3bp109dff63k5GSlp6ebvyPmTYDK4pxw2KNy5cql+p3e7n8WfLZM988//zTLRR11UpSWLVua5aJ2hC3vatSooTZt2qhNmzbq2bOnunXrpuzsbD3++ONFHtHyV2FhYWY5JSUlX3L6VykpKWbZiqM3AAAA/u6GDRum22+/vcD7p06d0p49e7RkyRL99ttvysnJ0RNPPKGIiAgNGzbMhkjPmT9/vlJTUyVJt9xyiwYOHKgOHToU69ru3btrzZo16tatm89nAoHC+CwZzcnJMcvZ2dml7uNCON6lOLp27apevXpp2bJl+uOPPxQfH3/enXFzhYaGmuW8yaYnx44dM8sRERElCxYAAACmJk2aFLnvx+OPP67x48dr6tSpks4tmbz55psVEBBgVYj55J5pHxISooULF9o+6wWcj8+W6eZNnDZt2lSiPjZv3myW69atW+qYytK//vUv3X777Ro/fvx527Zo0cIsJyQkFHuMvDOjW7duLbRdTk6Otm/fLkmqX7++qlevXuwxAAAAUDL+/v6aMmWKeWJCXFyc9u3bZ1s8WVlZkqTq1asXSEQbNmwowzDMF1Ae+CwZzXvmZkkelD558mS+80XPd4an3bZt26b58+fr7bffPm/b3ONdJHl1/mfHjh3N8tKlSwttt3HjRvMYmC5duhS7fwAAAJROpUqV1KtXL/PnXbt22RgNcGHxWTIaExNjLklYunSpV1sMnz59WkOHDlVCQoIcDofatGlj7qxbXjVr1kzSubNAd+/eXWi7tLQ0rVu3TtK5RLRJkybFHiMqKkpRUVGSpBUrVuRbipvXkiVLzPLAgQOL3T8AAABKL/dUCUnav39/gTqHw6FXX31VkvTtt9/qqquuUtWqVXXjjTcW6OvMmTN688031bNnT4WGhqpy5cpq1KiRevXqpfnz53s8U7J79+5yOBx67733JJ3byyV3o6K8R/HlxjJ8+PAC761Zs0aStGbNmhLt9Dp37lw5HA5dcsklks5trvnkk08qKipKVatW1SWXXKLevXtr7dq15jUpKSl67LHH1KxZM1WtWlVhYWHq3r27li5det7Z2xUrVuj2229Xw4YNVaVKFdWsWVMtW7bUQw89pL1795433tjYWD388MNq3ry5qlWrposuukiXX365XnjhhWKdTCGdW524cOFC3XDDDQoPD1flypVVr149devWTW+88YZOnjxZrH4qNMOHxo0bZzgcDsPPz8/w8/MzWrVqZXzwwQdGVlaWx/bHjx83pk6daoSGhhp+fn7mtcuWLfNlWGViwYIFhiRDktG9e3fj5MmTBdpkZGQYd911l9nuwQcf9HqcN99807x+2LBhRnZ2dr76TZs2GVWqVDEkGY0aNTIyMzOL7C8iIsKQZERERHgdCwAAwN/dqlWrzN+9Jk6cWKxrxo0bZ16zYMGCfHUNGjQwJBmvvPKK8frrrxsOh8Nse8MNN+Rru2fPHqNZs2ZmvadXVFSUsWfPnnzXdevWrdD2eT9Dbix33XVXgfc8vebMmVPs723OnDmGJKNWrVrG/v37jUsvvdRjn/7+/sann35q7Nq1y/y91NPrhRde8DjO6dOnjVtvvbXI78jf39948cUXjZycHI99vP/++0blypULvb5Fixb5ftdftWpVgT4SExONzp07FxlHWFiYsX79+gLXHjx4sETfcVmwOzfw2QZGkjRlyhT98ssv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psjISLndbosj+j8kowAAAICNco8vSUtL01VXXaXq1avbHFH5c/HFF5vlgwcPnrd97vGKtWrVMt/L/Z4PHDiQ72jJoq7/q7xHzTRt2rREx9/g/3iVjBY2Xe1rDoej0H8AAAAAgL+TVq1aadGiRZKknTt3qnPnzoW2jY2N1e7duyWdO6e+atWqlsRot0svvVRVq1bV6dOntWXLliLbpqWlae/evZKkli1bmu+3bdtWP/74o9LT07Vjx458dX+1adMmj+/nTT537txZZDKalJSkzZs3S5I6deqUL5HFOV4lo7GxseddXy1JhmEUeM/TdZ7aFdYWAAAA+Dvq2bOnnn76aUnStGnTPG6ck2v48OFas2aNGjRooAMHDlgVou0CAgLUrVs3LV++XGvXrtUvv/xSaNLucrnMHW/z7mDcs2dP89nJKVOmaPHixR6vP3DggPnHgb/q0aOH/Pz8lJOToxdeeEE33XRToSeDPPHEE3rvvfdUrVo1NjAqhNdnqhjnziYt8iWdSyhzX4Vd99d2zZo1U4cOHdS+fXsffkQAAACg/Lr88svNxGrJkiV6/fXXPU7azJo1S2vWrJEk3XXXXWVyPGJuElce5X3u8d5771VsbGyBNt99952ee+45SVLVqlU1cuRIs65fv36qX7++JOmjjz7SzJkzC3zPhw8f1h133KHs7GyPMYSHh5vH72zcuFFPP/10vudIc33yySeaN2+eJGnIkCEsvS6EVzOjxV2ffdttt+nw4cMyDENBQUG666671K5dOzVs2FARERFKTk7WwYMHtWPHDr3zzjs6duyYmZAuXLiQh7EBAABQYTgcDr399tvq1KmTTp8+rQceeECffPKJevfurcaNGys5OVlLlizRt99+K0nq0KGDHn/8cZ/GkLu5z5YtW/Txxx+rUaNGCgsLU3h4uE/HKY1+/frppptu0kcffaTt27erQ4cOuuuuu9S+fXudPHlSP/30kxYsWGCeTzpz5kxdcskl5vWVKlXSW2+9pd69e0uSxo4dq6+++kr/+Mc/1KBBA23evFkLFixQXFyc2rZtq61bt3r8o8DMmTO1atUqJScna+rUqfruu+80aNAgNWvWTMePH9eyZcv06aefKicnRw0bNtS0adOs+YIuQF4lo3kPofUkKSlJw4YN0+HDhyVJ48eP18MPP5zvgWNJat68uXko8MSJE/Xqq69q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AAAAAFiOZLQMuFwuORwOnx2k3LNnTzkcjmK95s6d65MxAQAAAKAskYyWgQ8++MCn/e3du9en/QEAAACA3TjaxcfmzJmj9evX+6y/jIwMxcXFSZIeeOABxcTEFNm+VatWPhsbAAAAAMoKyagPpKamatu2bZozZ47PZ0X379+v3NN3+vfvr969e/u0fwAAAACwA8loKXXq1Em//vprmfX/xx9/mOVmzZqV2TgAAAAAYCWeGS2l5OTkMu0/NxkNCAhQgwYNynQsAAAAALAKM6OltGfPHnMZrST9+eefat68uc/6z01GGzdurEqVKik7O1txcXGKjY1V9erV1bRpU9WoUcNn4wEAAACAFZgZLaXKlSurSpUq5qty5co+7T93J92wsDBNnTpVderUUaNGjdSjRw917NhRtWrVUp8+fXy6aRIAAAAAlDWS0XIud2Z01apVeuqpp5SSkpKvPisrS8uXL9dVV12lV155xY4QAQAAAMBrLNMtx9LT05WQkGD+3K5dO02bNk2XX365srKytH37dr3xxhtatGiRcnJy9OCDD6px48bq27fvefs2DEMnTpwocWyVK1f2+SwwAAAAgOLLzMxUZmZmia5NT0/3cTTeIxktx/bv3y9/f39JUt++fbVgwQIFBweb9d27d1f37t3VuXNnjR07VpL06KOPqnfv3vLzK3rSOzExUTVr1ixxbBMnTtSkSZNKfD0AAACA0pk6daomT55sdxgl5jDy7r6DUouNjVWjRo0kWZewZWdnq3Pnztq4caMkaePGjWrfvr3HtpGRkXK73QoLC9Pu3btLPCYzowAAAIC9SjszGh4eLkmKiIhQfHy8L0MrFmZG/wb8/f01cOBAMxn99ddfC01GczkcDnbhBQAAAC5gpZkgyl2BaSc2MPqbyHuczNGjR22MBAAAAADOj2T0byIrK8ssl+ZZUAAAAACwAsloOTZs2DC1bNlS1113nXJycopsu2vXLrPcrFmzsg4NAAAAAEqFZLQca9u2rXbs2KGVK1fq+++/L7Td6dOnNW/ePElScHCwunbtalWIAAAAAFAiJKPl2NChQ80jWu6++27FxcUVaHP69GmNGTNGBw4ckCQ9+OCDqlq1qqVxAgAAAIC3SEZtNHfuXDkcDjkcDnXv3r1Afb169TR9+nRJktvtVosWLfToo49q3rx5WrhwoSZMmKDWrVvrnXfe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aYL33nsPR48eRX5+vrFiJCIiIiIioirGoGT03r17CAsLw/z589G2bVvExMRg9erV6N+/P+rVq4eXX34ZO3bsQEpKirHiJSIiIiIioirA4KFdOnTogMDAQFy4cAF37tzBV199hX79+iEzMxPbt2/HuHHjUK9ePfzvf//DV199hZiYGCOETURERERERJVZucYZbdCgAQICAnDw4EE8evQIO3bswNixY+Ho6IjQ0FC8++67aNq0Kdq1a4eFCxfi3LlzcsVNRERERERElVi5klFVTk5OGDVqFLZt24bExEQcPXoUb7/9Nho3bozLly/j448/RteuXeHp6Ylp06bhwIEDyMnJkWvzREREREREVInIloyqsrKyQu/evfHFF1/g5s2buHz5MpYsWYIuXbogPj4e69evx+DBg+Hi4oKRI0ciJCQEjx49MkYoREREREREVAEZJRkt7qmnnsKHH36I06dP4/79+9iwYQMGDhwIpVKJXbt24bXXXkP9+vXRs2dPrFy5ElFRUaYIi4iIiIiIiMzEJMmoqvr16+P111/Hvn378OjRI+zatQsTJkyAi4sL/vzzT8yZMwe+vr5o0aKFqUMjIiIiIiIiE7Ey58Zr1KiBoUOHYujQoVAqlTh9+jT27t2LPXv24Pr16+YMjYiIiIiIiIzIrMmoKgsLCzzzzDN45pln8Mknn+DmzZvmDqlKS0hIgK+vr8Z5AQEBCAgIMHFEREREREQkN4VCAYVCoXFeQkKCiaNRV2GS0eKaNWtm7hCqNDc3N0RERJg7DCIiIiIiMiJtFU1eXl6Ii4szcUT/Mfk9o0RERERERERMRomIiIiIiMjkmIwSERERERGRyTEZJSIiIiIiIpNjMkpEREREREQmx2SUiIiIiIiITI7JKBEREREREZkck1EiIiIiIiIyOSajREREREREZHJMRomIiIiIiMjkmIwSERERERGRyTEZJSIiIiIiIpOzMncAZB4JCQnw9fXVOC8gIAABAQEmjoiIiIiIiOSmUCigUCg0zktISDBxNOqYjFZTbm5uiIiIMHcYRERERERkRNoqmry8vBAXF2fiiP7DZrpERERERERkcgbVjDZp0sRYcagRBAG3bt0yybZMJT09HTdv3kRSUhLc3Nzg4+MDa2trg8p4+PAhoqOjkZ2djQYNGsDb2xuCIBgpYiIiIiIiIuMxKBmNiYnRK/kR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P/+M9u3ba5yfnp6OoUOH4ujRo6W+BkEQ8P777yMoKAiWlpalLldESkYtLBBbUKBzeSIiIiIiqprMnYxWy6FditSvXx+nT5/Ghg0bsH37dkRFRSE9PR0eHh7o168f3n77bbRp06bM5Q8ZMgRRUVFYsmQJTp8+jcjISNjZ2aFZs2YYM2YMXn/9da099Do6OiI0NBRHjhyBQqHAjRs3cOfOHYiiiAYNGsDf3x/Tp0/HU089VeYYiYiIiIiomjJzvWS1rhmtjlgzSkREREREAOAlCIgDzFYzWm07MCIiIiIiIiLzqdbNdKuzBKUSvr6+GucFBAQgICDAxBEREREREZHcFApFqR2dJpg4luLYTLeaYW+6REREREQEsJkuERERERERVUNMRomIiIiIiMjkmIwSERERERGRyTEZJSIiIiIiIpNjMkpEREREREQmx2SUiIiIiIiITI7JKBERERERUXVkYd50kMkoERERERERmRyTUSIiIiIiIjI5JqPVlZmr5ImIiIiIqHpjRkJERERERFQdKZVm3byVWbdOZpOgVMLX11fjvICAAAQEBJg4IiIiIiIikptCoYBCodA4L8HEsRQniKIomjkGMiEvLy/ExcXB08ICsQUF5g6HiIiIiIjMxEsQEAfA09MTsbGxJt8+m+lWV2aukiciIiIiouqNySgRERERERGZHJNRIiIiIiIiMjkmo0RERERERGRyTEaJiIiIiIjI5JiMEhERERERkckxGSUiIiIiIiKTYzJKRERERERUHQmCWTfPZLSaEs0dQDWWk5ODwMBA5OTkmDuUaovHwPx4DMyPx8C8uP/Nj8fA/HgMzE80czIqiKLIvKQa8fT0xP379+EBII6H3ixSU1NRq1YtpKSkoGbNmuYOp1riMTA/HgPz4zEwL+5/8+MxMD8eA/PzsLREvFIJDw8PxMXFmXz7rBmtpsz9KwgREREREVVvTEarKyajRERERETVm5lbSlqZdetkNg+VSvj6+mqcFxAQgICAABNHREREREREclMoFFAoFBrnPWQySuZQz8ICERER5g6DiIiIiIiMSFtFk6cg4L6J41HFZrrVFTsvIiIiIiIiM2IyWk0JTEaJiIiIiMiMmIwSERERERGRyTEZpXIp7WboilBeRY5NThX5dVbUsuTGY2B+Ffl1VuTY5FSRX2dFjk1OFfl1VuTY5FRRX2dFPp5y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6tSBjY0NvL298frrryMsLAxTp04t1zZ4Hagz9j7nOa+bsY8Bz3nz43VgXrwGSmeqPMAU14Agiv/edUpERERERERkIqwZJSIiIiIiIpNjMkpEREREREQmx2SUiIiIiIiITI7JKBEREREREZkck1EiIiIiIiIyOSajREREREREZHJMRomIiIiIiMjkmIwSERERERGRyTEZJSIiIiIiIpNjMkpEREREREQmx2SUiIiIiIiITI7JKBEREREREZkck1EiIiIiIiIyOSajREREREREVZS3tzcEQYAgCIiJiTF3OGqYjBIREREREZHJMRklIiIiIiIik2MySkRERERERCbHZJSIiIiIiIhMzsrcARAREREREVU1BQUFOHXqFCIjI/H48WM0aNAAzZs3R8uWLeHk5KRXGY8ePcK1a9cQGxuLe/fuwc7ODp6envDw8EDHjh1ha2tr5FdhXIIoiqK5gyAiIiIiIqoK8vLyEBwcjKCgIDx8+LDEfDs7O7z22mtYtmwZatWqpbGMa9euYc6cOThw4AAKCgo0LuPq6oo333wT77zzDlxcXNTmbdmyBZMmTdIa5x9//IHevXvr96KMhM10iYiIiIiIZJCamop+/fph5syZGhNRAMjOzsaaNWvQqVMnxMfHl5j/119/oUuXLti3b1+piSgAJCYm4uOPP0a3bt3w5MkT2V6DKbGZLhERERERUTkplUqMGDECJ06ckJ7r0qULhg4dCldXV0RHR+P333/HhQsXAAC3bt3CmDFjcPz4cQiCAADIycnBK6+8goyMDKmMXr16oU+fPnB3d0dmZiZu376NH3/8EQkJCQCAGzduICgoCCtWrJDWcXJyQtOmTQEAMTExUlLbsGFDWFtbAwDs7e2NuDf0w2a6RERERERE5bR27VpMnz5deqxQKDBt2jQp0QQK7yNdsWIFPvjgA+m5PXv2YMiQIQCAX3/9FYMGDQIACIKAHTt2YNSoUSW2lZubixEjRuDXX38FAPj5+eHMmTMa4/L29sadO3cAANHR0fD29i7fC5URm+kSERERERGVQ0FBAT755BPp8TvvvIPp06erJaIAYGlpiTlz5mDYsGHSc9u3b5emz549K02PHDlSYyIKADY2Nmo1oRcvXiznKzAPNtMlIiIiIiIqhyNHjuDu3bsAChPOmTNnlrqsIAiYMmUKdu/eDUA9AW3dujUCAgIAACNGjNC6zZYtW0rTubm5ZQ3drJiMEhERERERlYPqfaKDBw9Gw4YNtS7fp08ffPHFFwAACwsLiKIIQRAwatSoUmtDiytqeluZMRklIiIiIiIqh3PnzknTTz31lM7l7e3t8e6775ZpW48ePcKpU6ewaNGiMq1fkTAZJSIiIiIiKgfVYVwaNGggS5np6en4448/EB4ejhs3bkh/pQ0ZUxkxGSUiIiIiIiqHlJQUadrDw6NcZcXGxmLevHn44YcfNN4LamFhgZYtW2Lw4MH49NNPy7Utc2MySkREREREVA6qY3YmJyeXuZwrV66gV69eePLkCQDAzs4O/fv3R6dOndCuXTs0b94cTZs2ha2tLQAwGSUiIiIiIqrO6tSpI02XtWMhpVKJUaNGSYnoxIkTsXLlSri4uMgSY0XEZJSIiIiIiKgcnnrqKalH3evXr+u1TmBgoFSLOnfuXFy5cgWRkZEAgKZNm2Ljxo2wtLQsdf2bN2+WL+gKwMLcARAREREREVVm3bt3l6Z/+eUXnZ0MxcTEYNGiRVi9ejU2btwIFxcXRERESPN9fX21JqIAsHfv3vIFXQEwGSUiIiIiIiqHIUOGwMnJCQCQmZmJzz//XOvyGzdulKa7d+8Oa2trWFj8l5pdvnwZ+fn5pa4fGhqKDz/8UO25vLw8nXEqlUqdy5gSk1EiIiIiIqJycHJywrRp06THy5cvx8aNGyGKYoll9+7di6CgIOnx0KFDAQDt27eXnouJicHLL7+M27dvS8/l5OTg3LlzmDhxIgYMGICcnBy1ckNCQnQmm7du3TLodRmbIGraQ0RERERERKS3rKwsdOrUCdeuXZOea9u2LXr06IE2bdrg0aNHOHnyJA4dOiTNb9OmDc6dOwcbGxtkZGTAx8cH8fHxauXWqlULDg4OiI+PV0tue/TogaysLISFhUnP1alTB9u2bcOAAQOk5zp16oTz588DABwcHNC5c2dkZWXhyy+/RNeuXWXfD4ZgB0ZERERERETlZG9vj0OHDqFfv36IiooCAISHhyM8PFzj8k2bNsX+/fthY2MDoDBR3LZtG/r166eWdKakpKiNYwoA/v7+2LVrF44ePYrhw4dLzz958qREjenIkSOlZDQjIwPHjx8HUJg8mxub6RIREREREcnAy8sLZ8+exdy5c+Ho6KhxGXt7e8yYMQNhYWFo2LCh2jx/f38cPXoUnTp1KrX84OBgHD58GDVr1sSwYcOwdetW+Pj4wMnJCd26dYOnp6faOnPmzMGKFSvQqlUr2Nvbo06dOmjbti2cnZ1lec3lwWa6REREREREMsvJycHx48dx69YtPHnyBE5OTmjevDm6d+8udXZUGqVSifDwcNy4cQPR0dGoWbMmWrVqhR49eujsZbcyYTJKREREREREJsdmukRERERERGRyTEaJiIiIiIjI5JiMEhERERERkckxGSUiIiIiIiKTYzJKREREREREJsdklIiIiIiIiEyOySgRERERERGZHJNRIiIiIiIiMjkmo0RERERERGRyTEaJiIiIiIjI5JiMEhERERERkckxGSUiIiIiIiKTYzJKREREREREJsdklIiIiIiIiEyOySgRERERERGZ3P8D74Pr+1Gkd6QAAAAASUVORK5CYII=", + "image/png": "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9lqeDY08efDBB3X77bdryJAhCggIKNIYgwYNUmBgoCTpq6++0ocffmjWebNEV/q/+xkYGJhnMyO7kIwCAAAAMLVv316VKlWSJK1fv77Ux8vZkEiS3n//ff36668e22VlZWnMmDHmc6KNGjXSNddcU+rxFSYkJMScuTx27JicTmeBS4dnzpypZcuWSZJ69OhR5JnJSy+9VH379pV0/pzVF198UZLk5+enW265xat4c+7nNddck+eYGLuQjAIAAAAwVapUyUzy1q5dW+rjNW/e3Ey2srOzdd111+mJJ57Qjz/+qAMHDmjTpk2aO3euOnTooLfeekvS+Z1mZ8yYUeTZxdI0efJkc5Zx/vz5atu2rWbPnq2NGzcqNjZWK1as0N13360RI0ZIkoKCgvT88897NUbupbo5mxjdcMMNqlWrVpH7OHv2rLm89/rrr/dq/NJifzoMAAAAoEy54YYbtGzZMq1bt05ZWVny9/cv1fHeffddderUSfv371dmZqZefvllvfzyyx7b+vv76/XXX1efPn1KNaaiqlWrlhYvXqyePXsqJSVFO3fu1LBhwzy29fPz07x589SmTRuvxujdu7eqV6+eZzdcb5fobtq0KU8iWxYwM+pDqamp2rRpk3755RcdOXJEhmHYHRIAAADgtR49ekg6fxbmpk2bSn282rVr6/fff9fw4cPN5yM96d69u3755ReNHDmy1GPyxlVXXaX169frpptuksPh8NimX79+2rp1q/r16+d1/5UqVdKtt95q/hwYGKj+/ft71ceaNWsknT+Opn379l7HUBocBhlTiaSnp2vKlCl677338p1zdMkll+ihhx7SU089VaIDg7t3764ff/yxSG1nzZqloUOHFnssAAAAwDAMXXnllVq/fr0ef/zxAmcpS8OJEyf0yy+/aO/evTp58qSCgoIUGRmpzp072757blEcPnxYK1askNvtVkBAgJo0aaLo6GjVq1fP1rjat29vy/0sDMloCaSlpen666/XunXrCm1Xs2ZNLVu2TC1atCjWOPXq1Svygb4kowAAAPCFDz/8UPfcc4/CwsJ06NChUl+qi9Kzfft2XXHFFXI4HNq3b58aNGhgd0iSeGa0RJ544gkzEW3Tpo0mT56sli1bqlKlSvrzzz/13HPP6YcfftCRI0c0aNAg/fnnn14/ZJ2enm6eQfTQQw8pJiam0PbF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/18n73A4dPLkSXXu3PmC4zgcjiLNuKJ8W7hwYYGbF91///353ktMTNSTTz7pk7F/+eUXffbZZ7rlllu8us7bRDTHTz/9pGeeeUYzZszw+trijvnII4+oU6dOateuXbGuBwDg72Ty5MnauXOnJOWZgTx69Ki5g22nTp0KTEQPHDjg9aqs3HKOamnXrl2BieipU6e0atWqYo8B+JpPk9GVK1d63M46h5HrAe2C2hk+fogb5dOGDRsKPMi5SpUqHpPR9957TydPnvR4TUBAgAYMGKBWrVqpZs2aOn36tPbt22cugfFk4cKFXiejuQUHB+vWW29V27ZtlZ2drbVr1+qzzz5TRkaGx/avvfaahg0bplatWhV7zKioKN1yyy2qV6+eEhMT9dVXX2ndunUe2xqGoYceeki//vqr1zPAnvrK0bVrV4//obziiiv0559/lmgcAAB87ezZs5o8ebImTJgg6fwS5eeff96sr1Gjhrm7/6+//qqsrCz5+/vn6SMuLk59+/Y1f05LSyt0TE/19erV086dO7VhwwadPn0632qp48eP6+abbzaPjzl9+rS52RRgF58mo1LRk0mSTngjMTFRH330UaFtzpw5o9jYWO3atUtffPGFx53jHA6HZs+e7fFIl08++cRjv9WqVdO6desUFRWVr27SpEnq1KmTx63YC0riiqJDhw767LPP8uxCOGrUKI0bN0433XSTx9nM7OxsPf/881q4cGGxxhw7dqzGjRuX5y+2zzzzjGbNmqURI0Z4/D7XrVunpUuXqnfv3sUaEwCAsm7r1q15ngWVzv8399ixY9q6das++eQT83jCqlWr6vPPP8/ze4a/v7+6deumb775Rr/++qtuvPFG3XHHHapVq5bi4+P122+/af78+Tp79qyCgoKUlpamP/74Q//5z3/UvXt3dezYUZLy/Pf5448/VsuWLeXn56drrrlG0vlnUXfu3KnY2Fh17txZw4cPV0REhI4ePaqNGzfqww8/VGpqqjnGkSNHNHr0aPXr189c3QhYzpZtk2Abu3fMKkxhu+n64uVwOIyZM2d6HPvs2bOGv7+/x+uee+65QuN+8cUXPV5XsWJFj+0L201XklG7dm3j2LFjBY538OBBIygoyOO1AQEBRlJSUr5rCtvZVpIxYsSIQj/jtGnTCry2f//+Hq/xZjfd3Lp06eLxmiuuuKLQGAEA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kurWrauqVasWeQwAAAAUj7+/vyZNmmSemHDo0CHt3bvXtngyMzMlSVWrVs2XiNavX1+GYZgvoCzwWTKa+8zN4jwoferUqTzni17oDE+7bdmyRXPnztW77757wbY5x7tI8ur8z/bt25vlxYsXF9hu/fr15jEwnTp1KnL/AAAAKJkKFSqoR48e5s87duywMRrg4uKzZDQmJsZckrB48WKvthg+c+aMBg8erPj4eDkcDrVq1crcWbesatKkiaTzZ4Hu3LmzwHapqalas2aNpPOJaKNGjYo8RlRUlKKioiRJy5Yty7MUN7dFixaZ5f79+xe5fwAAAJRczqkSkrRv3758dQ6HQ6+//rok6fvvv9c111yjypUr6+abb87X19mzZ/X222+re/fuCg0NVcWKFdWgQQP16NFDc+fO9XimZNeuXeVwOPTBBx9IOr+XS85GRbmP4suJZejQofneW7VqlSRp1apVxdrpdfbs2XI4HLrssssknd9c8+mnn1ZUVJQqV66syy67TD179tTq1avNa5KTk/XEE0+oSZMmqly5ssLCwtS1a1ctXrz4grO3y5Yt05133qn69eurUqVKql69upo3b65HHnlEu3fvvmC8sbGxevTRR9W0aVNVqVJFl1xyia688kq99NJLRTqZQjq/OnH+/Pm66aabFB4erooVK6pOnTrq0qWL3nrrLZ06dapI/ZRrhg+NGTPGcDgchp+fn+Hn52e0aNHC+Oijj4zMzEyP7U+cOGFMnjzZCA0NNfz8/MxrlyxZ4suwSsW8efMMSYYko2vXrsapU6fytUlPTzfuueces93DDz/s9Thvv/22ef2QIUOMrKysPPUbNmwwKlWqZEgyGjRoYGRkZBTaX0REhCHJiIiI8DoWAACAv7sVK1aYv3uNHz++SNeMGTPGvGbevHl56urVq2dIMl577TXjzTffNBwOh9n2pptuytN2165dRpMmTcx6T6+oqChj165dea7r0qVLge1zf4acWO65555873l6zZo1q8jf26xZswxJRo0aNYx9+/YZl19+ucc+/f39jc8//9zYsWOH+Xupp9dLL73kcZwzZ84Yt99+e6Hfkb+/v/Hyyy8b2dnZHvv48MMPjYoVKxZ4fbNmzfL8rr9ixYp8fSQkJBgdO3YsNI6wsDBj7dq1+a49cOBAsb7j0mB3buCzDYwkadKkSfrtt9/0008/yeFwaNu2bbr77rs1fPhw1alTR/Xq1VNISIji4+P1v//9T/Hx8ea69Zx17WPGjCn0QfGyYtCgQXr++ee1bds2rVy5Uk2bNtXw4cPVuHFj+fv7a/fu3ZozZ47517FGjRpp/PjxefqYPXu2eZxNQTuXDRs2TO+9957WrVunuXPn6tChQxo6dKiqVaumdevW6Y033lB6erocDodeeeUVBQYGlvpnBwAAwHmZmZn67rvvzJ9znh/9q+XLl+vLL79UYGCg7rrrLjVt2lRXXXWVWX/48GFde+21SkpKkiQNHDhQ1113nSIiIrR371598cUXWrt2rXbt2qWrrrpKf/75p3lG5JQpU5ScnKypU6fqxx9/VK1atcxZ0gutyvvggw905swZPfnkk9q6dWueY2oK+iyFOXv2rPr166cDBw7o3nvvVdeuXZWenq4PP/xQP/30k7KysjR8+HBVqVJFbrdbN998s/r06aOAgAB99tln5qNp48aN07333quQkBCzb8MwdO+992r+/PmSpEsvvVR33nmnrrzySqWmpurXX3/V3LlzlZWVpTFjxig4OFgPPPBAnvi+/fZb3X333ebPN954o7p37646depo/fr1mj9/vnbs2KEHH3ywwM+Ylpam66+/3lyS3b17d/Xo0UP169fXwYMH9d133+n7779XQkKCunTpot9++02tWrXy+rssF3yd3Z48edK44447DIfDYc505p4tzXn9tT4wMNCYPHmyr8MpVfv27TOaNm1a6F9EJBlXX321cfDgwXzX5/wFSZLRpUuXAsdJSEgw2rRpU2D/AQEBxptvvlmkmO3+6wcAALBPdna2kZqaetG+Cprp8iVvZkazsrKMf//732b7pk2bGufOncvTJvfM4xVXXJFvVjPHwIEDDUlGlSpVjJ9++ilffXZ2tvHqq6+afQ0YMCBfm5wVefXq1fM4hqeZ0Rw5s6uF/U5amNy/1/r5+RlLly7NU5+VlWVcc801eX6H/evvr9nZ2cbgwYPN+lWrVuWpX7JkSZ7vct++ffniWLZsmVG9enVDkhEUFGQcO3bMrMvIyMgzGzt9+vR8/0zFx8cb7du3zxPnX2dGH3/8cfNzfvbZZx6/j0WLFhl+fn6GJKNdu3Z5VjcyM/p/fJ6M5vjxxx+Nm266yQgICDATT0+vSy65xHjooYeMnTt3llYopSotLc148803jZtvvtlo2bKlUbVqVeOyyy4zrrnmGmPYsGHGF198UeAy5aImo4Zx/l+e1157zbj66quNkJAQIzAw0Khfv75x3333GVu2bClyvHb/AwcAAOyTmpp6wT+il+VXampqqX9HuZPRIUOGGEuWLMn3WrRokfHiiy8aHTp0yBPfX5Mnw8ibjP7www8ex9y7d6+5fHfmzJmFxnfXXXcZkgyHw2EkJyfnqSsryajT6fTY5r333jPb9OrVy+MfF5YtW2a2+eCDD/LU9e7d26z75ZdfCozlv//9r9lu6tSp5vsLFiww37/11lsLvH7nzp15llPnTkZTUlKMoKAgQ5Lx73//u8A+DMMwxo4da/axefNm832S0f/j02W6ud1www264YYblJ6erg0bNmjXrl06ceKETp8+rWrVqikkJEStWrVSdHS0/Px8to+S5apUqaKRI0dq5MiRXl87dOjQPA+QFyYwMFD//Oc/9c9//tPrcQAAAOC9uXPnau7cuRdsV6VKFU2fPl3XXXddgW0aNGigG264wWPdt99+K8MwVKFCBd1yyy2FjjVw4EDNmTNHhmFozZo16tev3wXjs1pBMdWrV88s33zzzR7PQc3dJjs72yyfO3fOfKTt2muvLfTkjQcffFCTJk1SWlqali9frtGjR0uSfvjhB7PNuHHjCrw+KipKAwYM0GeffZavbtWqVUpLS5MkDRkypMA+pPP36rnnnpMkrVy5Ui1btiy0fXlUaslojkqVKqlTp04cOQIAAGCzKlWqKDU11e4wiq1KlSp2h2CqVKmSWrRooTZt2uiJJ5644LOZObvWevL7779LOv/8qTfHAOYc7VfWNGzY0OP7/v7+XrXJ7cCBAzp9+rQkqU2bNoWOX7VqVTVu3FibNm3S5s2bzfe3bt0qSQoKClJ0dHShfXTs2NFjMppzryRdsI/cyuq9slupJ6MomxITEwv8F8jpdMrpdFocEQAAKG0Oh0NBQUF2h3HRGD9+fJ6jUUoiNDS0wLqjR48Wq8+UlJTihlOqCkoovW2TW3Jysllu0KDBBdvXr19fmzZtynNdTvnyyy8v8A8DOQo6ZvJivFcul0sul8tjXWJiosXR5EUyWk7Vrl1b27dvtzsMAACAcqGwEw8yMzMlScHBwfrkk0+K3Kc359eXNxUqnE9zcr7b3O8VRUHJcu7+PvvssyLP1kdERBR5bF8rbKIpMjJSbrfb4oj+D8koAAAAYKOc40tSU1N1zTXXqGrVqjZHVPZceumlZvnAgQMXbJ9zvGKNGjXM93K+5/379+c5WrKw6/8q91EzjRs3LtbxN/g/XiWjBU1X+5rD4SjwHwAAAADg76RFixZasGCBJGn79u3q2LFjgW1jY2O1c+dOSefPqa9cubIlMdrt8ssvV+XKlXXmzBlt2rSp0LapqanavXu3JKl58+bm+61bt9bPP/+stLQ0bdu2LU/dX23YsMHj+7mTz+3btxeajCYmJmrjxo2SpA4dOuRJZHGeV8lobGzsBddXS5JhGPne83Sdp3YFtQUAAAD+jrp3765nn31WkjRlyhSPG+fkGDp0qFatWqV69epp//79VoVou4CAAHXp0kVLly7V6tWr9dtvvxWYtLtcLnPH29w7GHfv3t18dnLSpElauHChx+v3799v/nHgr7p16yY/Pz9lZ2frpZde0i233FLgySBPPfWUPvjgA1WpUoUNjArg9ZkqxvmzSQt9SecTypxXQdf9tV2TJk3Url07tW3b1ocfEQAAACi7rrzySjOxWrRokd58802PkzYzZszQqlWrJEn33HNPqRyPmJPElUW5n3u8//77FRsbm6/NDz/8oBdeeEGSVLlyZQ0fPtys69Onj+rWrStJ+uSTTzR9+vR83/ORI0d01113KSsry2MM4eHh5vE769ev17PPPpvnOdIcn332mebMmSNJGjRoEEuvC+DVzGhR12ffcccdOnLkiAzDUFBQkO655x61adNG9evXV0REhJKSknTgwAFt27ZN7733no4fP24mpPPnz+dhbAAAAJQbDodD7777rjp06KAzZ87ooYce0meffaaePXuqYcOGSkpK0qJFi/T9999Lktq1a6cnn3zSpzHkbO6zadMmffrpp2rQoIHCwsIUHh7u03FKok+fPrrlllv0ySefaOvWrWrXrp3uuecetW3bVqdOndIvv/yiefPmmeeTTp8+XZdddpl5fYUKFfTOO++oZ8+ekqTRo0frm2++0T/+8Q/Vq1dPGzdu1Lx583To0CG1bt1amzdv9vhHgenTp2vFihVKSkrS5MmT9cMPP2jAgAFq0qSJTpw4oSVLlujzzz9Xdna26tevrylTpljzBV2EvEpGcx9C60liYqKGDBmiI0eOSJLGjh2rRx99NM8Dx5LUtGlT81Dg8ePH6/XXX9fYsWO1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4iqN/spqX9wD+/sqy/egvNxP7oG9ffn6+5fK5ucsjf64B/b25cv+uAf295eQkKDs7Gz5+/v7IKpiMFCuhIeHG5KM8PBwn/TXrFkzn/RTGv2V1dhSUlIMSUZKSopP+iurn7Ms98U9sL+vsnwPysv95B7Y25evv3/DKJufszT64x7Y25cv++Me2N+fr3MDb5WpmdHvvvtOGRkZioiIULt27ewOBwAAAABQSspMMmoYhoYMGaLjx4+rU6dOWrNmjd0hAQAAAABKSZlIRrOysvTBBx8oOTlZkrR161abIwIAAAAAlCafJ6MnTpzQ5MmTtXr1am3atElnz54t8rU5Dy6Hhob6OiwAAAAAQBni02Q0OTlZnTp10p49eySdX3pbHOPGjfNlWAAAAACAMsbPl5298sor2r17tyTPiWhBWzY7HA45HA61b99en3/+ue644w5fhoVS5HQ6y2x/ZTk2XyrLn7Os9uVr3AP7leXPWZZj86Wy/DnLcmy+VJY/Z1mOzZfK6ucsy/fT18rq91ae7oE3HEZxpy//4uzZs6pbt66OHDkiSerdu7deeuklNW3aVLGxsRo0aJA2btyop556Si+88IIkad++ffryyy/173//W2fPnlXnzp31zTffKDg42BchwYOIiAjzPCe32213OOXSyZMnVb16daWkpKhatWp2h1MucQ/sxz2wH/fAXnz/9uMe2I97YD+7cwOfzYxu2LBBSUlJkqTatWvr888/V9OmTSVJ9evX17hx42QYhr7++mvzmoYNG2r06NFavHix/P399dNPP2nAgAG+CgkAAAAAUEb5LBmNj483y7feeqsqVMj7OOo111wjSdqxY4fOnTuXp+7GG2/UHXfcIcMwtGzZMr311lu+CgsAAAAAUAb5LBnNPa17+eWX56uvUaOGatasqezsbO3bty9f/ahRoySdf9Z08uTJxd78CAAAAABQ9vksGU1PTzfLVapU8dimcePGkmRucpRbixYtzI2M4uLi9NNPP/kqNAAAAABAGeOzo13q1KljlhMSEjy2ady4sX799Vdt3rxZ/fr1y1MXGBiosLAwxcfHy+FwaMeOHbr22mt9FR7+IikpSdHR0R7rnE7n32aHLgAAAKA8c7lc/6+9O4+Lov7/AP4abgQURUEOFQ88yPvATPNA/ZbmbWpqpWaHSnb4y6NMRVMptdJivVNJs+zwzlLR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kzrhAQrH26zsVLtYnjp1KrKzs9Xm37lzB/PnzwdQmLxOnjxZbf748eOl6dGjR2vslTcpKQmvvfaaNG/WrFlm7xGLiIiIiIhIHwYlo0eOHJGm33rrLVkDmTp1qsbtVFQTJ06EIAgQBAGBgYEl5vfv3x8jRowAABw7dgxPP/001q5di127dmHRokXo0qULEhMTAQBLly6Fi4uL2vrPPPOMdMlyeHg4fHx8MG/ePPzwww/49ttvMWfOHLRq1QoHDhwAAAwaNKhEQktERERERFRRGdSBkeqAqP3795c1kH79+knTqj3tVlaCICAkJASpqakIDQ3FpUuX1BLuInPnzsW0adM0lrFixQokJibi+++/x6NHj7B48WKNy73yyitYt25dlRqrlYiIiIiIqjaDspf4+HgIgoA6derAzs5O1kDs7Ozg4uICURSlFsPKztHREQcPHkRISAj8/f1Rr149WFtbw8vLC2PHjsXJkyexePHiUi+ttbKywvbt23H27FmMHTsW7dq1g7OzM+zs7NCkSRNMmjQJp06dwrfffgt7e3sTvzoiIiIiIqKyE8SiHnT0UNTrbZMmTXDjxg3Zg2nWrBlu374NQRBQUFAge/kEeHl5IS4uDp6enoiNjTV3OEREREREZCbmzg0MHmcUgNE6yWHnO6aTkJAAX19fjfMCAgIQEBBg4oiIiIiIiEhuCoUCCoVC47yEhAQTR6OuTMkoVX5ubm6IiIgwdxhERERERGRE2hqailpGzYU93hAREREREZHJMRklIiIiIiIik2MySkRERERERCZXpntGExIS8Nprr8kdi9lvoCUiIiIiIiLTKFMymp6ejpCQELljISIiIiIiomqiTMmoAUOTEhEREREREZVgUDLas2dPjgVKRERERERE5WZQMnrs2DEjhUFERERERETVCXvTJaJqJz4+HoGBgYiPjzd3KEREZCb8LCAyPyajRFTtxMfHY+HChfwCQkRUjfGzgMj8mIwSERERERGRyTEZJSIiIiIiIpMr09AuVPklJCTA19dX47yAgAAEBASYOCIiIiIiIpKbQqGAQqHQOC8hIcHE0ahjMlpNubm5ISIiwtxhEBERERGREWlraPLy8kJcXJyJI/qPQZfpPnjwwFhxEBERERERUTViUDLq6emJbt26ISgoCFeuXDFWTERERERERFTFGZSMenh44MyZM/j444/Rrl07NGnSBO+//z6OHj2K/Px8Y8VIREREREREVYxByei9e/cQFhaGefPmoW3btoiJicGqVavQv39/1KtXDy+//DJ27NiBlJQUY8VLREREREREVYDBQ7t06NABgYGBuHDhAu7cuYOvv/4a/fr1Q2ZmJrZv345x48ahXr16+N///oevv/4aMTExRgibiIiIiIiIKrNyjTPaoEEDBAQE4ODBg3j06BF27NiBsWPHwtHREaGhoXjvvffQtGlTtGvXDgsWLMC5c+fkipuIiIiIiIgqsXIlo6qcnJwwatQobNu2DYmJiTh69CjeeecdNG7cGJcvX8Ynn3yCrl27wtPTE1OnTsWBAweQk5Mj1+aJiIiIiIioEpEtGVVlZWWF3r1748svv8TNmzdx+fJlLF68GF26dEF8fDzWrVuHwYMHw8XFBSNHjkRISAgePXpkjFCIiIiIiIioAjJKMlrcU089hY8++ginT5/G/fv3sX79egwcOBBKpRK7du3Ca6+9hvr166Nnz55YsWIFoqKiTBEWERERERERmYlJklFV9evXx+uvv459+/bh0aNH2LVrFyZMmAAXFxf8+eefmD17Nnx9fdGiRQtTh0ZEREREREQmYmXOjdeoUQNDhw7F0KFDoVQqcfr0aezduxd79uzB9evXzRkaERERERERGZFZk1FVFhYWeOaZZ/DMM8/g008/xc2bN80dUpWWkJAAX19fjfMCAgIQEBBg4oiIiIiIiEhuCoUCCoVC47yEhAQTR6OuwiSjxTVr1szcIVRpbm5uiIiIMHcYRERERERkRNoamry8vBAXF2fiiP5j8ntGiYiIiIiIiJiMEhERERERkckxGSUiIiIiIiKTYzJKREREREREJsdklIiIiIiIiEyOySgRERERERGZHJNRIiIiIiIiMjkmo0RERERERGRyTEaJiIiIiIjI5JiMEhERERERkckxGSUiIiIiIiKTYzJKREREREREJmdl7gDIPBISEuDr66txXkBAAAICAkwcERERERERyU2hUEChUGicl5CQYOJo1DEZrabc3NwQERFh7jCIiIiIiMiItDU0eXl5IS4uzsQR/YeX6RIREREREZHJGdQy2qRJE2PFoUYQBNy6dcsk2zKV9PR03Lx5E0lJSXBzc4OPjw+sra0NKuPhw4eIjo5GdnY2GjRoAG9vbwiCYKSIiYiIiIiIjMegZDQm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7nm3f//+GDFiBHbu3Iljx47h6aefxpQpU+Dm5obLly8jODgYD/8dl2np0qVwKTZmHwDMmjULO3bswO3btxEUFISIiAi8+OKLsLGxwfHjx7F+/XoAhYnrl19+KXUERUREREREVNEZLRnds2cPPvroI0QWH+8MkJLRgoICuLm5YfTo0Zg4cSK6d+9urHBMThAEhISEIDU1FaGhobh06RKmTp1aYrm5c+di2rRpGstwdnbG/v378cILLyA6Ohp79uzBnmKDSDs6OmLbtm1q95gSERERERFVdLJfppubm4uRI0dixIgRiIyM1Nh7rqq0tDRs2rQJPXv2xJtvvol8PQZnrSwcHR1x8OBBhISEwN/fH/Xq1YO1tTW8vLwwduxYnDx5EosXL9baotmqVStcunQJS5YsQYcOHVCrVi3Y29vDx8cH7733Hi5fvqw+SDMREREREVElIIiaMsRyePXVV7Ft2zbpsa2tLTp16oRLly4hIyMDgiCgoKAAQGHLqL29vZSACoKAcePGYevWrXKGRCq8vLwQFxcHTwCxvG+Uqqnz58+jU6dOCAsLQ8eOHc0dDhERmQE/C4gAL0FAHABPT0/ExsaafPuytoxu374d27Ztk1r6Jk+ejMePH+PPP/9E/fr1SyxvaWmJ27dv48033wRQOB7p9u3bcfz4cTnDIiIiIiIiogpG1ntGv/jiC2n6/fffx+eff65zHS8vL6xduxYNGzbExx9/DACYOXOmNP4mGUcCAF9fX43zAgICEBAQYNqAiIiIiIhIdgqFAgqFQuO8BBPHUpxsyWhERATOnz8PQRDg4eGBRYsWGbT+nDlzEBISghs3biAsLAx37txBo0aN5AqPinFD4TEjIiIiIqKqS1tDk5eFBeLMeOuebJfpRkVFSdPPPfccHBwcDAvEwgIvvvii9FhTL7xEREREREQkEzMPDSlbMnr79m1pul27dmUqQ7UllMkoERERERFR1SVbMmpl9d8Vv9nZ2WUq49GjR9K0Uqksd0ykhZl/BSEiIiIioupNtmTU09NTmr569WqZyggPD5em3dzcyh0TacFklIiIiIioejPzUI+yJaM9e/aUhnTZt28fHj9+bND6t2/fxq+//io97t69u1yhERERERERUXFVJRl1dXVF//79IYoikpOTMWPGDIh6vrisrCy88soryMjIgCAI6NSpE3vSJSIiIiIi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xuuvv46wsDBMmTKlXNtgPVBn7H3Oc143Yx8DnvPmx3pgXqwDpTNVHmCKOiCI4r93nRIRERERERGZCFtGiYiIiIiIyOSYjBIREREREZHJMRklIiIiIiIik2MySkRERERERCbHZJSIiIiIiIhMjskoERERERERmRyTUSIiIiIiIjI5JqNERERERERkckxGiYiIiIiIyOSYjBIREREREZHJMRklIiIiIiIik2MySkRERERERCbHZJSIiIiIiIhMjskoERERERFRFeXt7Q1BECAIAmJiYswdjhomo0RERERERGRyTEaJiIiIiIjI5JiMEhERERERkckxGSUiIiIiIiKTszJ3AERERERERFVNQUEBTp06hcjISDx+/BgNGjRA8+bN0bJlSzg5OelVxqNHj3Dt2jXExsbi3r17sLOzg6enJzw8PNCxY0fY2toa+VUYlyCKomjuIIiIiIiIiKqCvLw8BAcHIygoCA8fPiwx387ODq+99hqWLl2KWrVqaSzj2rVrmD17Ng4cOICCggKNy7i6uuKtt97Cu+++CxcXF7V5W7ZswaRJk7TG+ccff6B37976vSgj4WW6REREREREMkhNTUW/fv0wY8YMjYkoAGRnZ2P16tXo1KkT4uPjS8z/66+/0KVLF+zbt6/URBQAEhMT8cknn6Bbt2548uSJbK/BlHiZLhERERERUTkplUqMGDECJ06ckJ7r0qULhg4dCldXV0RHR+P333/HhQsXAAC3bt3CmDFjcPz4cQiCAADIycnBK6+8goyMDKmMXr16oU+fPnB3d0dmZiZu376NH3/8EQkJCQCAGzduICgoCMuXL5fWcXJyQtOmTQEAMTExUlLbsGFDWFtbAwDs7e2NuDf0w8t0iYiIiIiIymnNmjWYNm2a9FihUGDq1KlSogkU3ke6fPlyfPjhh9Jze/bswZAhQwAAv/76KwYNGgQAEAQBO3bswKhRo0psKzc3FyNGjMCvv/4KAPDz88OZM2c0xuXt7Y07d+4AAKKjo+Ht7V2+FyojXqZLRERERERUDgUFBfj000+lx++++y6mTZumlogCgKWlJWbPno1hw4ZJz23fvl2aPnv2rDQ9cuRIjYkoANjY2Ki1hF68eLGcr8A8eJkuERERERFRORw5cgR3794FUJhwzpgxo9RlBUHAG2+8gd27dwNQT0Bbt26NgIAAAMCIESO0brNly5bSdG5ubllDNysmo0REREREROWgep/o4MGD0bBhQ63L9+nTB19++SUAwMLCAqIoQhAEjBo1qtTW0OKKLr2tzJiMEhERERERlcO5c+ek6aeeekrn8vb29njvvffKtK1Hjx7h1KlTWLhwYZnWr0iYjBIREREREZWD6jAuDRo0kKXM9PR0/PHHHwgPD8eNGzekv9KGjKmMmIwSERERERGVQ0pKijTt4eFRrrJiY2Mxd+5c/PDDDxrvBbWwsEDLli0xePBgfPbZZ+XalrkxGSUiIiIiIioH1TE7k5OTy1zOlStX0KtXLzx58gQAYGdnh/79+6NTp05o164dmjdvjqZNm8LW1hYAmIwSERERERFVZ3Xq1JGmy9qxkFKpxKhRo6REdOLEiVixYgVcXFxkibEiYjJKRERERERUDk899ZTUo+7169f1WicwMFBqRZ0zZw6uXLmCyMhIAEDTpk2xceNGWFpalrr+zZs3yxd0BWBh7gCIiIiIiIgqs+7du0vTv/zyi85OhmJiYrBw4UKsWrUKGzduhIuLCyIiIqT5vr6+WhNRANi7d2/5gq4AmIwSERERERGVw5AhQ+Dk5AQAyMzMxBdffKF1+Y0bN0rT3bt3h7W1NSws/kvNLl++jPz8/FLXDw0NxUcffaT2XF5ens44lUqlzmVMickoERERERFROTg5OWHq1KnS42XLlmHjxo0QRbHEsnv37kVQUJD0eOjQoQCA9u3bS8/FxMTg5Zdfxu3bt6XncnJycO7cOUycOBEDBgxATk6OWrkhISE6k81bt24Z9LqMTRA17SEiIiIiIiLSW1ZWFjp16oRr165Jz7Vt2xY9evRAmzZt8OjRI5w8eRKHDh2S5rdp0wbnzp2DjY0NMjIy4OPjg/j4eLVya9WqBQcHB8THx6sltz169EBWVhbCwsKk5+rUqYNt27ZhwIAB0nOdOnXC+fPnAQAODg7o3LkzsrKy8NVXX6Fr166y7wdDsAMjIiIiIiKicrK3t8ehQ4fQr18/REVFAQDCw8MRHh6ucfmmTZti//79sLGxAVCYKG7btg39+vVTSzpTUlLUxjEFAH9/f+zatQtHjx7F8OHDpeefPHlSosV05MiRUjKakZGB48ePAyhMns2Nl+kSERERERHJwMvLC2fPnsWcOXPg6OiocRl7e3tMnz4dYWFhaNiwodo8f39/HD16FJ06dSq1/ODgYBw+fBg1a9bEsGHDsHXrVvj4+MDJyQndunWDp6en2jqzZ8/G8uXL0apVK9jb26NOnTpo27YtnJ2dZXnN5cHLdImIiIiIiGSWk5OD48eP49atW3jy5AmcnJzQvHlzdO/eXersqDRKpRLh4eG4ceMGoqOjUbNmTbRq1Qo9evTQ2ctuZcJklIiIiIiIiEyOl+kSERERERGRyTEZJSIiIiIiIpNjMkpEREREREQmx2SUiIiIiIiITI7JKBEREREREZkck1EiIiIiIiIyOSajREREREREZHJMRomIiIiIiMjkmIwSERERERGRyTEZJSIiIiIiIpNjMkpEREREREQmx2SUiIiIiIiITI7JKBEREREREZkck1EiIiIiIiIyOSajREREREREZHL/D+b+7FkWgocmAAAAAElFTkSuQmCC", "text/plain": [ "" ] @@ -454,7 +507,7 @@ }, { "data": { - "image/png": "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7+vnzp2rpUuXSpIaN26siRMn6sILL1TNmjV16NAhLV68WD///LMSExM1fvx4rVmzxnztokWLlJmZqQceeEDbt29Xp06dzDtluutmK0OHDtWRI0fUpUsXXX/99WrTpo22bt2qZcuWac+ePUpJSdHgwYO1ZcsWtWnT5rz9JScna8CAAYqPj1eNGjX0wQcf6LrrrivSJjs7W4MHD9amTZskSRdffLFGjBihdu3aaceOHfrggw+0c+dODR061C3v+c9OnTqlYcOG6ciRI7rlllt0xRVXqGbNmvrqq6/Ms1fvvvuuhg0bphtuuKHIa1977TXdd999kiQ/Pz+NGTNGPXv2VGhoqOLi4vT2228rJSVFS5YskSS99957pdYxZcoUrVu3Tu3atdOwYcPUunVr9ejRo1i7m2++WZs2bdLIkSM1ePBg+fv7a9myZfr0008lSdOmTdO8efMUHx+vfv36adSoUapXr56+/PJLvf3225KkefPmyel0qkOHDpaMIWAHLge5Pn36mGvL/fLLLy4XBABAheSckZ6I8HYVlffgYSmwltu6j46OVnR0tI4ePWo+17dvX7Vo0aJcr//iiy8k5f/H7U8//aRmzZoV2X/XXXdp8ODBWrNmjb799ltlZ2crMDDQPI4kPfnkk5KksLAwXX311a6+pTIdPHhQEyZM0KuvvmrWcfPNN+uhhx7SbbfdpmXLlunMmTO69957S7w8srDjx49r4MCB2rlzp/z9/bVkyRINHz68WLsXX3zRDHHjxo3TggULFBQUJEm66aabdP/99+uGG27QqlWrLH63JVu8eLGCg4P1xRdfaNCgQebzt9xyi/r166dbb71VkrRmzZoiQe748eO69957JUl16tTR0qVLddVVVxV5/T333KPrrrtO27dv15IlSzRhwgT95S9/KbGOpUuX6q677tLTTz+tmjVrllrv//73P73++uuaOHGi+dxtt92mcePGafHixcrOzlZ8fLxmzJihxx9/XH5++d8MGjt2rCIjI/Xkk0/KMAz99NNPBDlUKy5/R659+/aaOHGiDMPQxo0b9b///c+KugAAQBVw8OBB1a1bV+PGjSsW4iSpRo0aGjFihCQpKytLhw8f9nSJRbRo0ULz5883Q1yB2rVr65133lF4eLgk6fPPP9ehQ4dK7efEiRMaOHCgtm/fLn9/f7333nsaOXJksXa5ubl6+eWXJUmNGjXS/PnzzRBXoE6dOlq4cKECAgJcfXvlYhiGpk6dWiTEFRg3bpw5Bnv27Cmyb+HChTpzJv/s9owZM4qEuAItWrTQ66+/bj6eO3duqXU0b95czz33XJkhTpKuvfbaIiFOyv8u4V//+lfzcadOnfTYY4+ZIa7AHXfcYW4fPHiwzOMAvsaSu1bOnTtXiYmJ+vzzzzVy5Eh99NFH6t69uxVdAwBQtoCQ/LNadhUQ4u0KylR4/bnSlHSjE2+57777Sg1MwcHBeuCBB3TvvffKMAxt2LDBPDtV2MmTJ3XVVVdp69atkqSHHnqo2CWIBX755Rf9/vvvkvIvJQwJKfnPMyIiQjfddFOl1tutjKlTp5b4vMPhUOvWrXXkyJFiNzwpuCw2JCTEvGFKSXr06KG+fftqw4YN+uqrr5Sbm1viWsC33357ucLrny9VLdC8eXNze8iQIapRo/jH1sJtuOEJqhtLglxAQIA++eQTPfLII3r88cfVq1cvDRgwQFdccYUiIyMVHh6uWrXKd9lInz59rCgJAFBdOBxuvTQRxRmGoaNHjyouLk6rV6/WwoULvV2S6bLLLitzf69evcztnTt3FtufmZmpv/zlL9q8ebP53LvvvqsZM2YoODi4WPuCSyolqXPnzmUeu3Pnzh4JcpGRkapfv36p+0sKXZK0fft2SfmX455vrcHOnTtrw4YNSktL08GDB9W6detibcp7+W5Jr/1zneVpA1Q3lgS5wn+JHA6H8vLytHbt2jJvT1sSh8NRZMFSAADgfSdPntT777+vtWvXKj4+Xvv371dmZqa3yypRq1atytwfHR1tbpe0FEFycrKSk5NVt25dXX755VqxYoX279+vOXPm6NFHHy3W/tixY+Z24bNDJTnffqtU9jgF49GyZcvzti0c0lJSUkoMWhdccEG5jlueMEZgA4qzJMj9+dR8ac8BAAB7+fjjj3X77bcXCT316tXTxRdfrDZt2qhz585KTU3VrFmzvFdkIX/+DtWfFb787s/fZStQt25drV69WtHR0Wrfvr2Sk5P11FNPaezYsWrXrl2Rtjk5OeWuzVPfkfPEcQpf5ljaf8L/+XuKAKxlSZArfOdKAADgG3bs2KFRo0bp3LlzCg8P14wZMzRkyBBzQfEC7lzcu6IOHDigLl26lLq/8FJJjRo1Kra/Zs2aWr16tbp16yZJev755zVu3DhlZ2fL6XRq9erVRd57gwYNzO1Dhw7pkksuKfXYVf1mHPXr19fRo0f166+/nrft/v37ze3CYwDAcywJcl999ZUV3QAAgCpk/vz55tmWNWvWKCYmpsR2x48f92RZZfrpp5/KDHLfffeduX3ppZcW29+kSRMzxEnSmDFj9MYbb2j9+vVau3at3nvvPY0ZM8bcf9FFF5nb27Zt07Bhw0o99o4dO8r9PryhU6dOOnr0qPbt26f09HTVrl271LYF3yEMDg4u16WYAKzn8vIDAADANxWcdQkLCys1xBmGoRUrVniyrDI988wzpV7ql5GRoWeeeUZS/nIEV1xxxXn7czgcmjdvnnm54tSpU3Xq1Clzf9euXc2F1WNjY0v97uDx48f17rvvVuSteNyVV14pSTpz5oxiY2NLbffDDz+Y/4nft29fj10yCqAogpwNJSUlKSYmpsSfsn7xAgBQEQU3zUhJSdGuXbuK7c/JydG0adOKXJmTkZFRan9l7bPK/v37NXny5GLfXUtLS9PYsWOVlJQkKX/9sfPdmbFA+/btNX36dEn5/wY/9NBD5r7AwEBNmjTJ3DdlyhRlZ2cXef2ZM2d0xx13mGu0VVUTJkww13ybM2eO1q1bV6zNgQMHiqz59ve//91j9QHeEhsbW+pn74LfKd5gyaWVZUlPT1daWppSU1OLfUEYldOkSZMSb5kMAICVrrzySr366qvm9pQpU9ShQwdlZmZq9+7d+s9//qPffvtNtWrVMkPatGnTNGHCBF1//fXmzS4KboyxZcsWLV26VC1btlR4eLgiIiIsrTcqKkonT57UggULtGXLFl1//fWKjo7W1q1b9d///tf8flyrVq00e/bsCvX94IMPavHixTpw4IBeeeUVjR8/3rwE88EHH9TSpUu1Z88evfXWW9q6dauGDx+u9u3bKz4+Xu+//75++eUXDRo0SF9++aUklTtEelLjxo313HPPyel06vTp07rqqqt0yy236LLLLlOtWrUUFxenRYsWmWckb775Zl199dXeLRrwAKfTKafTWeK+qKgoJSYmeriifJYHuYyMDM2bN0/r1q3Td999Z/5iL7y0QG5uriZPnqzbbrtNvXv3troEAABggZEjR+qWW27R22+/rSNHjujhhx8u1mbgwIF6/fXX1aVLF508eVIrV67UypUrdfLkSTPIde/eXWvXrtW5c+fMhbUXLlyo8ePHW1pv8+bNNX/+fN100036+eef9fPPPxdrExMTo88//7zCQSo4OFhz587VNddcI8MwNGnSJG3cuFH+/v6qVauWVq1apUGDBmn37t3avHlzkXXopPxFrxcuXGjeGKS8t+b3tMmTJystLU0PPvig8vLytGjRIi1atKhYu9GjR+vNN9/kZneAF1l6aeXHH3+s9u3ba8aMGVq1apXS09NlGIb5U9iCBQvUp08ftW/fXt98842VZQAAAAs4HA4tWrRIH374oQYMGKCmTZsqMDBQkZGRuvHGG/XZZ59p1apVatGihVasWKGLL75YtWrVUpcuXYrcnv4f//iHJk2apAsuuECBgYGKiooqc8FqV1xzzTXaunWrpkyZohYtWigwMFBhYWG6/PLLNXfuXG3evLnS66wNHjxYo0aNkpS/EPi8efPMfc2bN9fmzZv1zDPPqEuXLqpVq5ZCQ0PVs2dPLVq0SB999FGRNefCw8Nde6Nu4nA4NH36dP3yyy9yOp1q3769atWqpaCgIDVr1kxjxozRmjVrtHjxYvMyTADe4TAsWvBt2bJluvHGG0sMbVL+L4bc3FxJ+WfkAgIC5HA4ZBiG/P399d5775m/HFGyglO3kZGRSkhI8HY5AACgAr788kvzUsSMjAyFhIR4uSIArvLm53NLzsjt2LFD48aNU15engzD0AUXXKAFCxZoz549atWqVbH2/v7+mjNnjho3biwpP9hNmDDBq18WBAAAqIw777xTo0aN0tNPP11mu7fffluS1LRpU0IcAJdZEuSeeeYZnT17Vg6HQ127dtXWrVt1++23Kzo6utRrp6dPn65du3ape/fukvLv6DRr1iwrygEAAPCY9PR0ffjhh3r00Ud16NChEtt8++23Wrx4sSRxBRIAS7gc5I4dO6YlS5ZIyj/T9uabb6pRo0blem29evX06aefKjg4WIZhaMGCBUXWZgEAAKjqpkyZooCAAGVkZOjyyy/XK6+8op07d+q3337T+vXrNX36dPXr10+GYSg0NFTTpk3zdskAfIDLQW7r1q3KycmRw+HQNddco06dOlXo9Y0aNdLo0aMlSXl5eYqPj3e1JAAAUMU9+uijqlGjhss/jz76qLffinr37q2FCxcqKChICQkJmjJlii688EI1b95cAwYM0NNPP63c3FzVqlVLH374obnswoYNGywZ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Ha377ruvQq+/7bbb1KVLFxmGoX379unAgQOulgQAAAAAPs3lILd//35z+8orr1SNGhW/EeaQIUPM7fj4eFdLAgAAAACf5nKQO3jwoLndqVOnSvURGRlpbu/Zs8fVkgAAAADAp7kc5EJCQsztkydPVqqPxMREc9vf39/VkgAAAADAp7kc5KKiosztHTt2VKqPrVu3mtsRERGulgQAAAAAPs3lINevXz/VqFFDhmHo448/1m+//Vah12/atEkrVqwwH/fp08fVkqqUpKQkzZ49W0OHDlW7du0UEhKiCy+8UDfeeKMWLFig3Nxcb5cIAAAAwGZcDnJ169Y1F/M+e/asJk+erLNnz5brtUePHtW4ceN07tw5ORwO9e/fX02aNHG1pCrjiy++ULt27TRr1ix99tln2rNnjzIzM7Vz507997//1R133KHu3btr06ZN3i4VAAAAgI1YsiD4008/reDgYEnSypUr1aNHD61fv145OTkltv/999/1+OOPq23bttq9e7ckyeFw6KmnnrKinCph586dGjlypE6fPi1JGjp0qF588UV98MEHeuyxxxQTEyMp/4zkgAEDzHEAAAAAgPNxGIZhWNHRypUrNWzYMJ07d858Ljg4WOfOnVN2drYcDoc6dOigAwcOKCsrS1L+YuIFYmNjNXnyZCtKqRJuuukmffDBB5KkuXPnasqUKXI4HOb+7Oxs3XvvvZo3b54kadCgQVq5cmWZfUZFRSkxMVGRkZFKSEhwX/EAAAAAypSdna2GDRsqLS3NK5/PLQtykvT999/r1ltvLbKod+HwIhUNb5JUr149vfrqq7rxxhutKsPrzp49qzp16ignJ0ddunTRzz//XGwcpPw//K5du5o3iUlISCiyFMOfEeQAAACAqsHbQc6SSysL9OrVSzt27NAbb7yhXr16mTdBKfxToF27dnr88ce1d+9enwpxUv5dOAsuKx01alSJIU6SAgMDiyyGvnnzZo/UBwAAAMDealjdYc2aNTVhwgRNmDBBmZmZ2rZtm44dO6bTp08rJCREYWFh6tixoxo0aGD1oauMpKQkc7t58+Zltg0PDze3MzMz3VYTAAAAAN9heZArLDg4WD169HDnIaqkjh07auHChZKkvn37ltn2p59+Mrfbtm3r1roAAAAA+Aa3BrnqqlWrVmrVqtV5223btk1LliyRlP/9tw4dOpSr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2GLP553LVUZGhhcqyucwDMPw2tFRIVFRUUpMTFREeLgSDx/2djkAAABAtZV+NFkRbaOVlpamyMhIJSQkePT4XFoJAAAAADZDkAMAAAAAmyHIAQAAAIDNEOQAAAAAwGYIcgAAAABgMwQ5G+JGo56TlZWlWbNmKSsry9ulVBuMuecx5p7HmHseY+55jLnnMebVC8sP2EhkZKQOHz6sC5o00ZGjR71dTrWQmpqqunXr6vTp06pTp463y6kWGHPPY8w9jzH3PMbc8xhzz2PMPavw8gMRERFKTEz06PE5IwcAAAAANkOQAwAAAACbqeHtAlAJhpR35oy3q6gWCsY578wZ5dXgr4snMOaex5h7HmPueYy55zHmnseYe1beWe9+F5E/YRvKTUnR7i5dvV1GtZCemytJ2ntFH9X29/dyNdUDY+55jLnnMeaex5h7HmPueYy5Z2XVrOvV43NpJQAAAADYDGfkPOTkyZM6cOCAeVeb6Oho+flVLkenhki33Mf/snhCbqaku6X/d5e//IMZc09gzD2PMfe8gjFvuPpjNarf2NvlVAupqWlSs5aKXLdKdeqEerucaoEx9zzG3LPSE45IPXt57fgEOTfbs2eP7rvvPn3xxRfK/b/T3ZLUtGlT3X333brnnnvkX8FT34ZDygp0WF0qSpCbmz/OWYEO+TPmHsGYex5j7nkFY37typGEZw/Jzcz/N3jgimsYcw9hzD2PMfeshuneXeKBIOdG33zzja6++mqdKeHGJL///rumTZumr7/+WsuWLatQmKsfVE8/jvnRpdrmvzJfd06+06U+rO6rKtaUmpqq8MnhWnfDOpfXY6mK768q1sSYe74vxtyzfWWey9QVi66wpB5JOrHmhBoMbFCl+qqKNVmpKr6/qliTlari+6uKNVmpKr6/qliTN7EguJscP35c7du314kTJ+Tn56dZs2ZpwoQJql+/vjZu3Kj77rtPmzdvliT985//1OzZs8/bZ8GC4E0aN9bRpCSX6ouJidHOnTtd6sPqvqpiTVYurFkV319VrIkx93xfjLln+zIMQ0kpSQpvGK4jx4+4POZdL+qquG1xLvVhdV9VsabU1FTG3MN9Meae74sx92xfxw/sV8duvb22IDhn5Nzk6aef1okTJyRJL730kpxOp7mvf//++uqrr3TxxRfr4MGDeu655/S3v/1NjRo18la5AAAPcTgcCgkIkSSFBISY21b05yqr+qqKNZ0LOCeJMfdkX4y55/tizD3bV1CNIEtqqSzuWukGubm5evPNNyVJjRs31qRJk4q1qVOnjqZNmyZJysjI0Pvvv+/RGgEAAADYF0HODX744QfzbNzQoUNL/f7bddddZ26vWLHCI7UBAAAAsD+CnBvs3r3b3L7mmmtKbde0aVNddNFFkqRNmza5vS4AAAAAvoHvyLnBkSNHzO3mzZuX2bZp06batm2bkpOTderUKdWrV68cRzCUc/asSzUahut9WN1XVaypoI+cs2eVExhYJWqysq+qWBNj7vm+GHPP98WYe74vxtzzfTHmnu+LMfdsXznZOZbUUlkEOTc4evSouR0WFlZm2wYN/rjt6ZEjR8oMcseOHZMkJScfU8P6pbc7L4eUfjZbjcLqV76PQtLOZlnSl1X9WNlXwU1dWzVvJofDtfW1quL7q4o1Meae74sx93xfjLnn+2LMPd8XY+75vhjzivdlyJAqew9/h0PpZ7Mk/fE53ZMIcm5Q+Ixc4aBWksL7MzIyymxbsKC4ISn1/yaNK05nWvM/Glb2VRVrkqwZb6lqvr+qWJPEmHujL8bc830x5p7vizH3fF+Muef7Ysw931fB53RPIsi5QWpqqrkdHBxcZtugoD9uW5qZmVlm25o1a+rs2bPy9/d3aakCV/+HBgAAAPAVriyrfezYMeXm5qpmzZoWVlQ+BDk3KByyTp06VWboOnXqlLl9vtB3vjN2AAAAAKoH7lrpBuHh4eZ2SkpKmW0L769du7bbagIAAADgOwhybnDBBReY2+cLcidPnjS3IyMj3VYTAAAAAN9BkHODwmfktm7dWmq7vLw8bd++XZLUrFkzhYaGur02AAAAAPZHkHODSy+91Nz+9NNPS20XFxdnLlXQq1cvt9cFAAAAwDcQ5NygXbt2ateunSRp7dq1RS6fLGzZsmXm9vDhwz1SGwAAAAD7I8i5ydSpUyVJWVlZuuuuu5SXl1dk/+bNm/Xvf/9bktSyZUtdf/31Hq4QAAAAgF05DFcWTkCpcnJydPnll2vjxo2SpD59+mj8+PGqU6eONm7cqHnz5ik9PV0Oh0Mff/yxhg4d6tZ60tPTtW/fPp08eVJNmjRRmzZtFBAQ4NZjAp7GPC/q5MmTOnDggNLS0hQREaHo6Gj5+fH/d1Zy9xgzp4tjXvse5jmqA7fMcwNuc+TIEaNz586GpBJ/AgICjGuvvdYYMmSI0bZtWyM4ONiIiYkxbrjhBuP11183zp0753INhw8fNsaOHWvUrFmzyLEbNmxoPPjgg0ZmZqYF79S+5s6da0gyHnnkEUv6mzhxYql/3n/+seqYdmP1mBsG8/zPdu/ebQwZMsTw9/cvMh5NmzY1nn32WZd/tzDP3T/GzOni3DnmzOnysfr3N/P8/Kwcc+Z5yY4ePWrMmjXLbZ/H3TnPCXJulpWVZbz88stGz549jbCwMCMwMNBo0aKFMWjQIKN27dpl/iXq0qWLERcXV+ljx8fHGw0bNizzGN27dzfS09MtfMf2ctlll1n6C6tPnz78kjwPq8eceV7U119/bYSEhJQ5Htddd51L/zBV93nu7jFmThfn7jGv7nO6vKz8/c08Lx8rx5x5Xtznn39u1K1b122fx909zwlyXvDLL78YwcHB5h/g0KFDjRdffNH44IMPjMcee8yIiYkx99WtW9eIj4+v8DHOnj1rtG3b1uznrrvuMvbt22ecOXPG+PHHH40rr7zS3Hfrrbe64V1WfW+++ablv7DCw8MNScbIkSONL774osyfvXv3WnJMO7F6zJnnRR07dsxo0KCBIcnw8/MzHn30UeP333830tPTjXXr1hW5QuCf//xnpY9Tnee5u8eYOV2cJ+Z1dZ7T5WXl72/meflY/W8m87wod38e98Q8J8h5wY033mj+wc2dO9fIy8srsj8rK8uYMmWK2WbQoEEVPkZsbKz5+mnTphXbn52dbXTv3t2QZDgcDmPHjh2Vfj92curUKePrr782JkyYYAQEBFj6CzItLc3sb968ea4X6yPcOebM86Luv//+Ir9b/uz06dNGixYtDElGrVq1jOTk5Aofo7rPc3ePMXO6OHePeXWf02Vx1+9v5nnp3DXmzPPi3P153BPznCDnYZmZmeZfzC5duhSbNAWysrKMjh07mhMgISGhQse55JJLDElGjRo1jJMnT5bY5rPPPjP7v++++yr6VmynW7dubr2EYPPmzWZ/a9ascb1gH+DuMWee/+HcuXPmWYvGjRuXeolZwfctJBkvv/xyhY9Tnee5J8aYOV2UJ8a8Os/psrjz9zfzvGTuHHPmeVGe+DzuiXnObZ48bOvWrcrJyZEkjRo1Sg6Ho8R2gYGBGjJkiPl48+bN5T5GYmKitmzZIknq27ev6tWrV2K7K6+8UrVq1ZIkrVixotz921VycrJb+9+7d6+53bZtW7ceyy7cOebM86J++OEHnThxQpI0dOhQ+fv7l9juuuuuM7crMx7VeZ67e4yZ08V5Yl5X5zldFnf9/mael86d/2Yyz4ty9+dxT81zgpyHJSUlmdvNmzcvs214eLi5nZmZWe5j7N6929y+5pprSm1Xs2ZNXXnllZKk+Ph4ZWRklPsYdrR7925lZmaaP/Hx8Zb2X/BLMjg4WJGRkcrLy1NiYqK+/vprbdy40fwwUp24c8yZ50WVdzyaNm2qiy66SJK0adOmCh+nOs9zd48xc7o4T8zr6jyny+Ku39/M89K5899M5nlR7v487ql5TpDzsI4dO2rhwoVauHCh+vbtW2bbn376ydyuyP+eHDlyxNw+3+Rs2rSpuV34f2t8UVBQkGrWrGn+BAUFWdr/nj17JEnNmjXT/Pnz1bx5c0VFRalv377q0aOHGjVqpMsvv1wrV6609LhVmTvHnHleVGXGIzk5WadOnarQcarzPHf3GDOni/PEvK7Oc7os7vr9zTwvnTv/zWSeF+Xuz+OemucEOQ9r1aqVxo8fr/HjxysyMrLUdtu2bdOSJUskSVFRUerQoUO5j3H06FFzOywsrMy2DRo0MLcLTzpUXMFfvt27d2vKlClKSEgost8wDH333XcaPHiwHnjgARmG4Y0yfQbzvChPjUd1nufuHmPmdHGeGJPqPKe9gXnuHczzotz9edxT85wgVwXFxcXp6quv1rlz5yRJM2fOVGBgYLlfX3gSFJ4cJSm8vzpctuBOhf8XpUWLFvroo4904sQJnTp1St9++62cTqe5/5lnntGrr77qjTJ9BvO8KE+NR3We5+4eY+Z0cZ4Yk+o8p72Bee4dzPOKc+XzuKfmOUGuCklNTdXMmTN12WWXmRNgzJgxmjRpUoX7KRAcHFxm28Kn7SvyPTwUlZqaqpSUFPn7+6tnz5768ccfNWzYMIWFhalu3brq3bu35s6dq2XLlpmv+cc//qG0tDQvVm1vzPOiPDEe1X2eu3uMmdPFeWLMq/Oc9gbmuecxzyvGis/jnprnNSrUGmXavn27EhMTS9wXHR2t6OjoEvfl5OTo9ddf16xZs3Ts2DHz+YkTJ2revHny86tY3m7UqJG5fb7vCRTef76JVhVVdsytVqdOHfN/bMoyfPhwDR8+XMuXL1dKSopWr16tESNGeKBC61SVMWee5ysY8z+PR+HHf1bZ8ahO87wk7h7j6jSny8vdY17d57Q3MM89j3lePlZ+HvfUPCfIWei5557TokWLStz3yCOPaNasWcWe37Jli26//fYitzNt1qyZXn31VQ0ePLhSdRS+u05KSkqZbQvvr127dqWO502VGXNvGzlypJYvXy4p/wu0dvslWVXGnHmer2DM/zweZX3g9cR42H2el8TdY1yd5nR5VaV57Ytz2huY51VbdZ3nVn8e99Q859JKL8nNzdXDDz+sbt26mZMmLCxMzz33nHbv3l3pECdJF1xwgbl9vslz8uRJc7vwXXPgPu3btze3q9vtfq3EPC+qsuNR1pe8XeGL89zdY8ycLq4qzWtfnNPewDyv2qrbPHfX53FPzXOCnIXeeustGYZR4k/hsxSGYcjpdOpf//qXzp07J4fDob///e/av3+/pk6dqpo1a7pUR+H/Bdi6dWuZbbdt2yZJ8vf3V5s2bVw6rjeUd8yrksKXN9StW9eLlVROVRlz5nnRMS/veOTl5Wn79u2S8v+3MTQ01C01232el8TdY1yd5nR5VaV57Ytz2huY51VbdZrn7vw87ql5TpDzgn/961+aP3++JKlJkyb69ttv9eKLL5a66ntFderUSQEBAZKkTz/9tNR2SUlJ2rhxoySpW7duFbozJoq6//771bFjR3Xp0kXp6elltt21a5e5XZH1AVEU87yoSy+91Nwuazzi4uLM2yL36tWrQseo7vPc3WPMnC7O3WNe3ee0NzDPPY95XjJ3fh731DwnyHlYamqqnnrqKUlS/fr19d1331X4w9T51KlTRwMGDJAk7dy5U/Hx8SW2++ijj8x1QoYPH25pDdVN9+7d9csvv2jz5s1avHhxqe3y8vK0YMECSZLD4dCgQYM8VaLPYZ4X1a5dO7Vr106StHbt2iKXahRW+K5kFR2P6j7P3T3GzOni3D3m1X1OewPz3POY58W5+/O4x+a5AY+aN2+eIcmQZMybN89tx/nyyy/N4/Tr18/IzMwssv/gwYNG48aNDUlGnTp1jOPHj7utlqrq119/NcfokUcecamvM2fOGHXq1DEkGaGhocbWrVuLtcnJyTEefvhh85hjxoxx6Zh2ZOWYGwbz/M/mz59vjsfYsWON3NzcIvs3bdpk1KxZ05BktGzZ0sjKyqpQ/8xz948xc7o4d445c7r8rPz9zTwvH6vGnHlenCc+j3tinhPkPOzmm282/1AXLVpkfPHFF+X6OXHiRJF+brvttjL/cufl5RkjRoww21x88cXGK6+8YixbtsyYPXu20ahRI3Pf3LlzPfTuq5aK/oI835h/+OGH5v6AgADj//2//2e8+eabxvvvv288+uijRufOnc39zZo1M5KTk61/U1Wc1WPOPC8qOzvb6N69u/me+/TpY7z55pvG0qVLjQceeMCoXbu2IclwOBzGJ598UmIfzPOyuTrGzOmKc/eYV/c5XV4V+f3NPLeGlWPOPC/Kis/jVWGeE+Q8rH///uYfWkV+1q9fX6Sf800ewzCMtLQ0Y+DAgWX2+9BDDxl5eXnuf+NVkNWhwjAM44UXXjACAwPLHPOuXbsaBw8etPbN2IQ7xpx5XtSRI0eK/IP855+AgADjlVdeKfX1zPPzc2WMmdOV4+4xr+5zujysDBWGwTwvD6vHnHn+Bys+j1eFec535DwsKSnJY8eqXbu2vvzySy1atEgDBgxQo0aNFBAQoKioKI0ePVrffPON/vWvf8nhcHisJl93zz33aP/+/br77rvVo0cPXXDBBQoICFB4eLiGDRum9957Tz/++KOaN2/u7VJ9BvO8qAsuuEA//PCDXn75ZfXs2VNhYWEKDAxUixYtNHHiRMXFxWnSpEkuHaO6z3N3jzFzujh3j3l1n9PewDz3POb5Hzz1edzd89xhGP/3DTsAAAAAgC1wRg4AAAAAbIYgBwAAAAA2Q5ADAAAAAJshyAEAAACAzRDkAAAAAMBmCHIAAAAAYDMEOQAAAACwGYIcAAAAANgMQQ4AAAAAbIYgBwAAAAA2Q5ADAAAAAJshyAEAAACAzRDkAAAAAMBmCHIAAAAAUIoWLVrI4XDI4XDo4MGD3i7HRJADAAAAAJshyAEAAACAzRDkAAAAAMBmCHIAAAAAYDM1vF0AAAAAAPxZbm6uvv/+e8XHx+vEiRNq2rSp2rZtq/bt2ys0NLRcfRw/fly7du1SQkKCfv/9d9WsWVORkZGKiIhQly5dFBQU5OZ34T4OwzAMbxcBAAAAAJKUk5OjuXPnas6cOTp27Fix/TVr1tTtt9+uJ554QnXr1i2xj127dmn69On6/PPPlZubW2Kbxo0b684779Tdd9+tBg0aFNn31ltvacKECWXWuX79evXr1698b8oNuLQSAAAAQJWQmpqqgQMHaurUqSWGOEk6e/as5s2bp65du+rIkSPF9n/33Xfq1q2bPv3001JDnCQlJyfrscceU8+ePZWSkmLZe/AULq0EAAAA4HV5eXkaMWKEvv76a/O5bt26adiwYWrcuLF+/fVXrVy5Ups3b5Yk7d+/XzfddJM2bNggh8MhScrKytItt9yijIwMs4++ffuqf//+Cg8P15kzZ3TgwAF98MEHSkpKkiTt3btXc+bM0TPPPGO+JjQ0VK1bt5YkHTx40AyEzZo1U0BAgCQpODjYjaNxflxaCQAAAMDrXnnlFU2ZMsV8HBsbq8mTJ5shTcr/3twzzzyjmTNnms99/PHHuu666yRJK1as0JAhQyRJDodD77//vm644YZix8rOztaIESO0YsUKSVL37t31448/llhXixYtdOjQIUnSr7/+qhYtWrj2Ri3CpZUAAAAAvCo3N1dPPvmk+fjuu+/WlClTioQ4SfL399f06dN1/fXXm88tXrzY3N64caO5PXLkyBJDnCQFBgYWOQO3ZcsWF9+B53FpJQAAAACvWrt2rX777TdJ+WFt6tSppbZ1OBy644479NFHH0kqGt46duwop9MpSRoxYkSZx2zfvr25nZ2dXdnSvYYgBwAAAMCrCn8vbujQoWrWrFmZ7fv3768XXnhBkuTn5yfDMORwOHTDDTeUehbuzwoul7QrghwAAAAAr/r555/N7QsvvPC87YODg3XPPfdU6ljHjx/X999/r9mzZ1fq9VUFQQ4AAACAVxVeaqBp06aW9Jmenq7169dr27Zt2rt3r/lT2rIGdkOQAwAAAOBVp0+fNrcjIiJc6ishIUEPPfSQlixZUuJ33/z8/NS+fXsNHTpUTz31lEvH8iaCHAAAAACvKrwm26lTpyrdz44dO9S3b19zge+aNWvqqquuUteuXXXxxRerbdu2at26tYKCgiSJIAcAAAAAlRUWFmZuV/YmJHl5ebrhhhvMEDd+/Hg9++yzatCggSU1VjUEOQAAAABedeGFF5p3rtyzZ0+5XjNr1izz7N2MGTO0Y8cOxcfHS5Jat26tBQsWyN/fv9TX79u3z7WivYwFwQEAAAB4Ve/evc3tDz/88Lw3JDl48KBmz56tF198UQsWLFCDBg20c+dOc39MTEyZIU6SPvnkE9eK9jKCHAAAAACvuu666xQaGipJOnPmjJ5//vky2y9YsMDc7t27twICAuTn90e02b59u86dO1fq69esWaMHH3ywyHM5OTnnrTMvL++8bTyFIAcAAADAq0JDQzV58mTz8dNPP60FCxbIMIxibT/55BPNmTPHfDxs2DBJ0iWXXGI+d/DgQY0bN04HDhwwn8vKytLPP/+s8ePHa/DgwcrKyirS76JFi84b1Pbv31+h9+VODqOk0QEAAAAAD8rMzFTXrl21a9cu87mLLrpIl19+uTp16qTjx4/rm2++0apVq8z9nTp10s8//6zAwEBlZGSoTZs2OnLkSJF+69atq1q1aunIkSNFguHll1+uzMxMxcXFmc+FhYXpnXfe0eDBg83nunbtqk2bNkmSatWqpUsvvVSZmZl66aWX1KNHD8vHoby42QkAAAAArwsODtaqVas0cOBA7d69W5K0bds2bdu2rcT2rVu31meffabAwEBJ+SHrnXfe0cCBA4sEttOnTxdZp06SBgwYoOXLl2vdunUaPny4+XxKSkqxM3UjR440g1xGRoY2bNggKT94ehOXVgIAAACoEqKiorRx40bNmDFDtWvXLrFNcHCw7rrrLsXFxalZs2ZF9g0YMEDr1q1T165dS+1/7ty5Wr16terUqaPrr79eb7/9ttq0aaPQ0FD17NlTkZGRRV4zffp0PfPMM+rQoYOCg4MVFhamiy66SPXq1bPkPVcWl1YCAAAAqHKysrK0YcMG7d+/XykpKQoNDVXbtm3Vu3dv88YopcnLy9O2bdu0d+9e/frrr6pTp446dOigyy+//Lx3s7QLghwAAAAA2AyXVgIAAACAzRDkAAAAAMBmCHIAAAAAYDMEOQAAAACwGYIcAAAAANgMQQ4AAAAAbIYgBwAAAAA2Q5ADAAAAAJshyAEAAACAzRDkAAAAAMBmCHIAAAAAYDMEOQAAAACwGYIcAAAAANgMQQ4AAAAAbIYgBwAAAAA28/8BpQ2Qy0mHSM0AAAAASUVORK5CYII=", + "image/png": "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wcHBuuWWWwrd7rvvvlPfvn1Vp04dVaxYUVFRUXryySd17tw5a58lS5aoT58+ql27toKDg9W6dWs99NBDOnbsWGm7DSi7TCft37/fXLx4sbl48WLz0KFDzjaHIoSHh5uSzPDwcG+XUu5JMiWZkyZNyvP6nDlzrHUHDhwodP+itps0aZIpyWzfvr25fv16s3bt2ta2ub9CQkLMX3/91VyzZo1ZrVq1AreRZH7++ef5jp9zDBf8CABgI7GxsWbz5s0L/XkhyWzRooUZGxubZ79XX33VWj9r1qx87R47dsysU6eOKcns1KmTmZGRYa276667TEnmoEGDzCVLlphVq1Yt9NitWrVyy2eJAwcOWMd45513zAEDBhTZB48++qjpcDjytLFy5Upr/cqVK/Osy8rKMv/1r39Z64cOHWpmZmbm2+bpp582DcMo8JhBQUHmvHnzrP7q3r27y/sh53dPpUqVzPT0dHPgwIGF9kGdOnXMw4cPF9jO1q1bzYYNGxbZhw0bNjS3bNlS4P6RkZGmJPONN94wZ86cmadPbr755gK3mzx5cqHH6tKli5menm6OHz++0G3CwsLMlJQUl/cp4M3P505PCD5v3jw99dRTkqTnn39eEyZMcLZJeJFpmsr8219j7aZCUJBPnGk6duyYbr75Zp06dUoPP/ywunTpouPHj2vmzJn6448/dO7cOd1+++1KSUlRamqq7rrrLvXq1Uvp6en68MMP9dNPP0mSxo4dq0GDBsnPz2XTRgKwoaNHj+qaa66x5mwdNGiQunXrpvDwcO3du1dffPGF1q5dq9jYWF155ZXavn27wsLCJEljxozRggULtGbNGj366KO64YYbFBERYbU9duxYJSUlKTg4WB9++KEqVMj/8SI2Nla33Xabzp49q27duunGG29UgwYNtHHjRn322WeKi4vTjh071Lt3b23atEkhISFu6Yfnn39eBw8eVPXq1TVs2DBdeeWVSkxM1MqVK/X1119Lkl555RVVr15dTzzxxEXbM01Tjz/+uKZPny5J+uc//6kPPvgg333/06dP17PPPitJqly5skaMGKFOnTopJSVFy5cv15dffqnhw4erRYsWLn7HBZswYYIWLlyoDh06aMCAAYqKitLu3bs1Y8YMHT16VElJSXrggQe0ZMmSPPslJCSoZ8+eOn78uCSpQ4cO6t+/v1q2bKnY2Fh9/fXXWr9+vQ4dOqSePXtq27Zt1jj6uxUrVmjx4sUKDAzU8OHD1bJlS1155ZX5tvvkk0/066+/qkWLFhoxYoSaNm2qTZs26dVXX1VaWpp+/fVXderUSVu2bFHdunX1wAMPqHXr1tq9e7f+97//6cSJE0pISNBLL72kqVOnur4zAS9xOsjVrFlTpmnKMAzt3bvXFTXBizLT0/X6XYO9XYZTHv5gvgIqVvR2GU77888/VblyZa1du1ZXXHGF9fo999yj1q1ba//+/frzzz9lGIaWLFmiG264wdrm3nvv1TXXXKNffvlFR44cUVxcnBo2bOiNtwG4n2lKGecuvl1ZFRAieeCPTw899JCSkpIUEhJiXcqW22OPPaYZM2bo4YcfVkpKihXeJMnPz09z5szRZZddptTUVI0aNUpfffWVDMPQ119/rY8//liS9NJLLxUaRLZv3y5JeuKJJ/Tss89af1waMmSIJkyYoFtvvVWrVq3S7t279fLLL2vy5Mlu6YeDBw+qSZMmWrp0aZ5ax40bpw8++ED33XefMjIyNHnyZI0YMaLQECJlh7gnn3xSr7zyiiTp1ltv1dy5c/MF2cOHD1uhMDIyUkuWLNGll15qrX/44Yf11ltv6cEHH7T6yZ3Onj2r6dOna9SoUXr99dcVEBBgrbv//vvVpk0bK9xmZmbmeT/jxo2zQtyYMWP0v//9L8/6iRMn6rHHHtP06dN14sQJjR8/Xp988kmBdSxatEiXXnqpFi5cqObNmxda76+//qp//OMfWrhwoSpVqiQpu6979OihPn36SJK2bNmiNm3aaNmyZapTp461780336y2bdvK4XBo3bp1pegtoOxyOsh169bNOvvxxx9/OF0QgL9MmjQpT4iTpODgYN1xxx3WX3ZHjRqVJ8RJ2R+67r33Xv3yyy+Ssj+4EOTgszLOSS8U/mG7zHsiQQqs5NZD7Nu3TwsXLpQkvfbaa/lCnJQ9n+uYMWO0YcMGffTRR1q0aJFSUlJUo0YNSVLTpk318ssv66GHHtKSJUv0ySefqF+/fho1apQk6dprr73oPKZXXnmlnnvuuXxXTdSqVUvz5s1T48aNlZaWprfeektPPfVUgWf2XGHWrFkFBs677rpLmzdv1quvvqqMjAy9++67evrppwttZ9KkSdYZnoEDB+rjjz8usOZZs2ZZ9x7+97//zRPicowaNUpLliyxzgq6W5MmTfTaa6/lCXGSVLt2bd1zzz2aOnWq0tLSFB8fr8jISEnSkSNHNH/+fElSy5YtNX369HxnHitUqKBp06bpu+++044dO/R///d/mj59uurWrVtgHa+++mqRIU6SgoKCNHv2bCvE5fjHP/6hBg0a6PDhw5Kk2bNn5wlxktS6dWtdddVVWrNmTZH3rgN25PRPyJYtW2rkyJF65513tH79ev3666/q0qWLK2qDF1QICtLDH8z3dhlOqRAU5O0SXOamm24q8PWcX6qS8twYXtg2WVlZLq0LgL0sXbpUpmmqQoUKuvXWW4vcdtCgQfroo49kmqbWrFmT5+fQgw8+qAULFmjlypUaO3asFi9erPj4eFWtWlVz5sy56CXcEydOLPTS97p16+r+++/Xa6+9psTERG3bti3fH7JcoX379rr22msLXT9hwgTFxMQoIyNDK1euLDTIPfPMM9Yf1Jo2bap58+blC0U5li5dKklq3LixBgwYUOixH3nkEY8FuTFjxigwMLDAdU2bNrWWzVwPt1m1apX1AJdHH3200Gmj/Pz89Oijj+ruu+9WZmam1qxZYz3sJrfGjRsX+W+Ro127dmrQoEGB6yIjI3X48GHVr1+/0IfuRUZGas2aNfwuhM9xyZ+6ZsyYofj4eC1dulSDBg3SF198wRMsbcowDJ+4LNFX5P5lmlvuX57F2QbwaQEh2We17CrAPfeC5bZhwwZJUmZmpqpXr17s/Y4ePZrnez8/P7377rtq06aNjh8/rv/7v/+TJL3xxhuFftDO7WJ/6L3yyiv12muvSZI2b97sliB35ZVXFnkfdd26ddWsWTPt3LlTO3bsKHCbadOm5bl3bN++fVq1apWuu+66fNtmZmZqy5YtkqTLL7+8yLDrjvdbmNatWxe6rrDfHzlP1pQuXmvu9Vu2bCkwyOU8lfJiCvs9J/1Va3G2AXyNS4JcQECAvvzyS02aNEnPP/+8rrrqKvXq1UvXXHONwsPDVb9+/XynwwvTrVs3V5QE+ITi/PLhFxTKPcNw+6WJdlfaR6+fOnUq32uNGzfWiy++qDFjxkjKvqRy+PDhF22rUqVKqlWrVpHb5P4wnnMflqs1adLkotvkBLkTJ04UuD4nxA0ZMkSffvqpJGn06NHatm2bKv7tj6EpKSnWmaDcV0oUpEaNGqpcubLOnDlz0RqddbFaCpK7Pxo3blzs9gvrx3r16hXruPwuBArmkiCX+38ewzCUlZWl5cuXa/ny5SVqxzAMZWZmuqIkoExjnAPwpJyfOZUrV7bOohVHs2bNCnx948aN1vKGDRuUkJCg8PDwItsKDAy86NmX3JcmumtOueI8wTcneAUVcan+k08+qWeffVZVqlTR22+/rb179+qll17SpEmT8myXkZFR7NoMwyj08kxXc/dxct8rWNjvvMIu7QRQPC4JcmYBk4MW9BqAbDk3ZgOAJ4SGhkqSzpw5o65du6pKlSqlbuvLL7/U+++/Lyk7FKWmpuqBBx6wnmJZmJSUFJ06dUrVqlUrdJs9e/ZYyzVr1ix1jUXZv3//RbfJeQp37dq1C1w/fvx4PfvsszIMQ1OnTtWiRYuUnJysqVOnaujQoYqKirK2zel7KftpxEVJTU296ETc3pTz4BtJOnDgQJGXV+buZ3f9WwLlnUuCXO4nVwLIVtQfM2JjYz1YCYDyrk2bNvrss88kSTt27FDnzp0L3fbgwYPatWuXJKl79+4KDg621iUnJ+u+++6TJN1www265pprNHHiRC1ZskRz58696CWWW7ZsKfIWipx7+XJqdofcxyjI0aNHtW/fPknZc6QV5MYbb7Q+94SGhmratGm66667lJ6erujoaH333XfW+ooVK6p58+bavXu3tm3bpqysrELPCnpi6gFn5P43udg9jJs2bbKWi7ofD0DpuSTIrVq1yhXNALaX+w8af/75Z4H3ECQkJGjx4sWeLAtAOXfdddfpqaeekiS9/PLL1vxwBRkxYoRWr16tyMjIPGdVTNPU6NGjlZSUpCpVquitt95SvXr19Nlnn2nz5s0aO3asrrvuuiLve3r55ZcLDXJJSUl68803JUnVqlVT+/btS/NWL2rt2rVatWqVevToUeD6F154wboU8MYbbyxWm8OHD9d7772n1atX64cfftDnn3+uf/7zn9b6Pn36aPfu3dq3b5++/PLLQp82nPOgl7Kqe/fu8vPzU1ZWlhVeCwqlDodDL7/8sqTss7aF9TUA51z8QnEAxZb7fpJZs2blW5+Wlqbo6GidP3/ek2UBKOc6duxonYVbuHChZs6cWeBVA6+++qpWr14tSfk+pH/66afWHGIvv/yyGjRooICAAM2ePVt+fn5KSUnR6NGji7waYcmSJXrjjTfybXPs2DENHTpUZ8+elSQ98MADRd6f5qz77rsvz2WcOd59913NnDlTklS/fv08YawohmHozTfftO47e+SRR/I8KGb06NFWX44bN67AqzLmzp1bovsXvSE8PNyaPmHHjh0aP358vvvfMjIyNG7cOOuJn4MHDy5yUnUApeeemTaBcqpt27YKDQ3ViRMnNG/ePKWnp+vee+9V7dq1tWXLFs2cOVObNm1Sv379PDZXEAAYhqHZs2erU6dOSktL0+jRo7VgwQJdf/31atq0qZKSkrRw4UJ9//33krLnWnvssces/RMSEvTQQw9Jyj4rc//991vr2rdvr3HjxmnatGlatGiR/u///k+33XZbvhoCAgKUmZmphx9+WEuXLtU//vEP1a9fX7///rvmzZtn3TvcpEkT6+yhO7Rs2VK7du1S586dNXz4cHXq1ElJSUlavnx5nikF3n777XxPoCxKq1atNH78eE2dOlVHjx7V008/rddff9065sSJE/X888/rwIED6tSpk0aMGKEOHTrozJkzWrVqlT7//HNVr15dUVFR2rBhg1P3MbrT9OnTtWLFCqWkpGj69On65Zdf1L9/fzVv3lyxsbFavHixfvvtN0nZ98b973//83LFgA8z3ez06dNmQkKCuWvXLncfyueFh4ebkszw8HBvl1LuSTIlmZMmTcq37uuvvzb9/f2tbf7+NWzYMHPnzp3W9wcOHMiz/6RJk6x1hZkzZ06h++dYuXKltc3KlStLfAwAvmfNmjVm7dq1C/35JMns3LmzeeTIEWufrKwss2/fvqYks2LFiuaePXvytXv27FmzcePGpiSzdu3aZlJSkrXurrvuMiWZkZGR5kcffWQGBgYWeuyWLVsW+jPNGQcOHLCOsW7dOrNDhw6F1lCxYkXzww8/zNdGUT9Tc/dDo0aNTEmmn5+f+dtvv1nrHA6HOXr06EKPW79+fXP9+vXmbbfdZkoyR44c6fJ+KM7vjuJst2nTJuszSWFfkZGR5tatWwtsPzIy0pRk3nXXXUXWW5ztunfvbkoyu3fvXug2uccg4Gre/Hzu8ksrz549q1deeUV9+/ZV1apVVa1aNUVEROjSSy+1tnE4HLr//vv1888/u/rwgNfdeOON+uOPPzRs2DC1aNFCQUFBqlWrlnr16qXPPvtMH374YZ7HMgOAp1x99dXau3evXnzxRV111VUKDQ1VUFCQWrZsqZtuukkLFy7Ur7/+muc+t9mzZ+ubb76RJD333HMFTkkQEhKit99+W1L2A1Fy5pj7u2HDhmnLli265557rEsza9Sooa5du+r111/X5s2b1ahRI9e/8VxCQ0P1888/69VXX1WHDh1UrVo164EkDz/8sHbs2FGsefEKEhISojfeeENS9hQGo0aNksPhkJR9r1hMTIx++OEH3XTTTapdu7YCAwPVpEkTjR8/Xlu3blXHjh116NAhSdmXdpZVbdu2VWxsrP73v/+pW7duqlmzpipUqKCaNWuqe/fuevXVV7Vz5063PbAGQDbDNF03T8DixYv10EMPKSEhQVLep/YZhmH9MHM4HAoICJBhGIqKitI777yja665xlVl+KyIiAjFx8crPDxccXFx3i4HAICLGjFihD744ANFRkbq4MGD3i6nTDNNU2FhYTp69KhiYmI0evRob5cE4CK8+fncZWfkFi5cqEGDBikhIUGmaRZ7Hrndu3erV69e1g3UAAAAvuTTTz/V4MGDdeutt+rMmTOFbrd8+XIdPXpUUvZ9dQBQFJcEue3bt2vYsGHKysqSaZqqV6+eZs+erd27d6tJkyb5tvf399fUqVNVp04dSdln6O6++24lJia6ohwAAIAyo1atWlqwYIHmz59f4BONpezJwCdMmGBtX9R8ewAguSjIvfLKKzp//rwMw1D79u2t69+bNWtW6EThjz/+uHbu3KlOnTpJks6dO6fJkye7ohwAAIAyo1u3bmrbtq0k6dFHH9WYMWP0yy+/6PDhw/r99981Z84ctWnTRhs3bpQkTZ48mXupAVyU0/fIJScnKyIiQhkZGapQoYI2btyY5+bWqKgo7du3L889cn/fv1GjRkpLS5O/v7+Sk5NVvXp1Z0ryWTnX4FaoUEFRUVEFbhMdHa3o6GgPVwYAQMFKe4/cwYMHC3ywSklFRkZq3759TrfjrISEBPXs2VO7d+8ucrsHH3xQb7zxhvz9/SVJTZs21Z9//un08ffu3ev2B8kAviomJkYxMTEFrtuzZ48yMzO9co+c03/u2bJlizIyMmQYhm644YYSP6Godu3aGjJkiN577z1lZWVp165duvLKK50ty6fVrVvXmmgTAABfFBYWps2bNzvdTs4k3d4WFham7du3a968eZo7d64OHDigQ4cOyd/fX3Xr1tWVV16p++67Tz169MhzNdPSpUuVkZHhkuMDKJ2iTpTknGjxBqeD3P79+63ldu3alaqN3FMTEOQAAPAd77//vt5///0S7xcYGKjWrVu7viAvCggI0PDhw0s0vUGLFi3cWBEAO3P6HrmUlBRrOefhJSUVFBRkLfPAEwAAAAAomtNBLvekobt27SpVG9u2bbOWa9Wq5WxJAAAAAODTnA5yl19+ubW8evXqEu+fkZGhlStXWt8zbwoAAAAAFM3pINe2bVtFRkbKNE1t3bpVH3zwQYn2nzx5svUEp9DQUHXp0sXZkgAAAADAp7lkHrn//Oc/1vJDDz2kTz755KL7nDp1SuPHj9dLL70kSTIMQ+PGjZOfn0tKAgAAAACf5ZLZJkeMGKEFCxZo6dKlOnfunIYPH65Zs2apT58+OnPmjLXd/PnztXfvXu3Zs0dffvmlTpw4oZxp7C6//HL961//ckU5AAAAAODTnJ4QPEdaWppuu+02LVmyJLvhXHOgFMQ0TRmGIdM0dfnll+vbb79V3bp1XVGKz8qZp8IbEw4CAAAAyMubn89ddh1jcHCwvvrqK7399ttq1KiRTNPM8yUp3/fVqlXT008/rXXr1hHiAAAAAKCYXHJpZW4jR47UPffcoxUrVmjVqlXauHGjkpOTderUKYWEhCg0NFRt2rRR165d1b9/f4WEhLi6BAAAAADwaS4PcpLk5+en3r17q3fv3u5oHgAAAADKNR4RCQAAAAA24/Izcg6HQ8uXL9f69et11VVXqVevXvm2mT59unbv3q0ePXro2muvVa1atVxdBgAAAAD4LJeekZszZ44iIiLUt29fTZo0Sdu3by9wu0OHDuntt9/W0KFD1bhxY02bNs2VZQAAAACAT3NZkHv44Yc1cuRIJSUlqTgzGuQ8vfLs2bN6/PHHNXr0aFeVAgAAAAA+zSVBbu7cuZoxY4YVzipXrqzBgwfrmmuuKXD70aNHa9KkSWrWrJmk7FA3a9Ysffrpp64oBwAAAAB8mtMTgmdlZal58+bav3+/DMNQly5dNG/ePEVERFx037S0ND3wwAOaO3euJCkqKkqxsbHOlOPTmBAcAAAAKDtsPSH4vn37rBBXtWpVffHFF8UKcVL2JOLvvPOOGjZsKEnau3evtm7d6mxJAAAAAODTnA5yuc+g3XHHHSV+AmVQUJBuv/126/sNGzY4WxIAAAAA+DSng9zu3but5VatWpWqjcaNG1vLx44dc7YkAAAAAPBpTge5gIAAazkrK6tUbRw5csRaDgoKcrYkAAAAAPBpTge53PfDrVu3rlRt5L6cMiwszNmSAAAAAMCnOf3UypMnT6pOnTrKzMxUUFCQtmzZoubNmxd7/z179qhNmza6cOGCDMNQQkKC6tat60xJPivnqTgVKlRQVFRUgdtER0crOjraw5UBAAAAvikmJkYxMTEFrtuzZ48yMzO98tRKp4OcJN1+++36/PPPJUmNGjXSF198ocsuu+yi++3atUs333yz9uzZI8MwdN111+nbb791thyfxfQDAAAAQNlh6+kHJGnatGmqUqWKDMPQwYMHdcUVV+iGG27QV199pf379+vChQuSsif+TkhI0KpVq3T77berdevW2rt3rySpQoUKeuWVV1xRDgAAAAD4tAquaCQiIkJff/21+vbtq7S0NJmmqe+++07fffedtU1oaKhSU1OVmZlpvZZzMtAwDH344Ydq06aNK8oBAAAAAJ/mkjNyknTNNddow4YN6tixo6TskJb76/jx48rIyMjzmiQ1bNhQy5Yt0z//+U9XlQIAAAAAPs1lQU6SLrnkEq1du1bLli3TkCFDFB4eXuB2lStXVu/evfXBBx8oNjZWPXv2dGUZAAAAAODTXHJp5d/16tVLvXr1kiQlJiYqOTlZp06dUnBwsEJDQ9WgQQP5+/u749AAAAAA4PPcEuRyq1u3LtMJAAAAAIALufTSSgAAAACA+7nljNzx48d19uzZUu3bsGFDF1cDAAAAAL7FZUEuNTVV//73v/Xdd98pPj6+VG0YhpFnegIAAAAAQH4uCXKHDh1Sjx499Oeff1rTCgAAAAAA3MMlQe6JJ57QwYMHZRiG9VrFihVVp06dPK8BAAAAAJzndJD7888/9cknn1iBrW3btpo5c6Y6duwoPz+epQIAAAAAruZ0kNu+fbskyTRNhYaG6ocfflDNmjWdLgwAAAAAUDCnT5nt3r1bUvaDSoYNG0aIAwAAAAA3czrIBQYGWsstW7Z0tjkAAAAAwEU4HeQaNWpkLcfFxTnbHAAAAADgIpwOcr169VJoaKgk6ZdffnG6IAAAAABA0ZwOcsHBwZowYYJM09Tq1au1YMECV9QFAAAAACiES+YHGD9+vO6++26Zpqm7775bixYtckWzAAAAAIACuGRCcEl69913dcUVV+jRRx/V4MGD1b59ew0bNkxRUVFq0qSJgoODi9VOw4YNXVUSAAAAAPgklwS5sLCwPN+bpqmNGzdq48aNJWrHMAxlZma6oiQAAAAA8FkuCXJHjx6VYRgyTVOGYcgwDEnZgQ4AAAAA4FouCXINGza0whvcLzExUa1atSpwXXR0tKKjoz1cEQAAAOCbYmJiFBMTU+C6xMRED1fzF8PktJltREREKD4+XuHh4czZBwAAAHiZNz+fu+SplQAAAAAAzyHIAQAAAIDNEOQAAAAAwGYIcgAAAABgMy55aqW/v78rmmEeOQAAAAAoBpcEuZz543gAJgAAAAC4n0uCnFS6yb9z5p7r0aOHQkJCXFUKAAAAAPg0lwS5rKysYm134cIFHThwQPv27dOiRYv0/vvvKysrSydPntQHH3ygiIgIV5QDAAAAAD7Now87CQwMVIsWLXTDDTfonXfe0a5du3TJJZdo8+bN6tGjh06dOuXJcgAAAADAlrz61MqmTZvqiy++ULVq1XTgwAFFR0d7sxwAAAAAsAWvTz/QrFkz3XnnnTJNU59//rmSkpK8XRIAAAAAlGleD3KS1LlzZ0mSw+HQypUrvVyNe5w5c0abN2/WL7/8ouTkZJ7wCQAAAKDUykSQCw0NtZYTEhK8WIlrnT9/Xs8884wiIyNVpUoVXXHFFeratavq1Kmj0NBQPfnkk0pNTfV2mQAAAABspkwEuW3btlnLAQEBXqzEdc6ePavu3btr0qRJOnToUL71J0+e1AsvvKBmzZrlef8AAAAAcDFeD3JnzpzRq6++an0fFRXlvWJc6NFHH9X69eslSVdccYW+/fZbJSQk6MSJE/rxxx913XXXSZKSk5M1ePBgZWRkeLNcAAAAADbitSCXkpKi7777Tl26dLEup6xQoYIuv/xyb5XkMqdOndK7774rKfvJnGvXrlWfPn1Uv3591ahRQ9dcc42+/fZbdevWTZK0e/durVmzxpslAwAAALARl0wI7u/v79T+hmFIkkaNGqV69eq5oiSv2rlzpy5cuCBJGj9+vAIDA/Nt4+fnp3/961/68ccfJUlbtmxRr169PFonAAAAAHtySZAzTVOGYTj1JMYOHTpo0qRJrijH6/bs2WMtX3rppYVul/sy0tz7AAAAAEBRXBLkJJUqxIWEhKht27bq06ePJkyY4DMPOmnWrJmmTp0qSWrVqlWh28XHx1vLvnAmEgAAAIBnuCTIZWVluaIZn9GlSxd16dKlyG0yMjL04osvWt8PGDDA3WUBAAAA8BEuOyOHoiUkJOinn37SiRMntHv3bn3++efWGblnn31Wbdq0KXZbpmk6Nf9cUFCQgoKCSr0/AAAA4AvS09OVnp5e6v2dubXMWQQ5D/nxxx81ZMiQPK+Fhobq448/1vXXX1+ithISElStWrVS1zJp0iRNnjy51PsDAAAAvmDq1KmaMmWKt8soFcP0ZowsR+bNm5cvyElSixYtNH36dPXt2/eibURERCg+Pl5hYWHauXNnqWvhjBwAAADg/Bm5Sy65RAkJCQoPD1dcXJwLK7s4gpyHpaam6sCBA1q4cKGmT5+u06dPy9/fX/Pnz9ctt9xS5L45Qc4bAwUAAABAXt78fO61CcHLq6pVq+ryyy/XlClTtHTpUvn5+cnhcOixxx6Tw+HwdnkAAAAAbIAg50VXX321+vTpIyl7HjnOsgEAAAAoDoKcG0yYMEHDhg3T008/fdFtL7nkEms5ISHBnWUBAAAA8BEEOTfYunWrPv74Y82ePfui2+aeFLx69epurAoAAACAryDIuUHz5s0lSUePHtWuXbsK3e7MmTNas2aNpOwQ16xZM4/UBwAAAMDeCHJu0LlzZ2v5wQcf1JkzZ/Jtk56eroceesi6nPLOO+9UQECAx2oEAAAAYF9MP+AGGRkZuuKKK/THH39IksLDw3XvvfcqKipK/v7+2r17tz766CPt27dPktSsWTOtW7dOoaGhRbbL9AMAAABA2eHNz+cVPHq0ciIgIEBffvmlbrzxRu3atUvx8fF65plnCty2S5cumjdv3kVDHAAAAADk8FiQS09PV1BQkKcO53VNmjTRxo0b9eGHH+q7777T/v37deDAAQUFBalFixZq3ry5br75ZvXr10/+/v7eLhcAAACAjbg8yGVlZWnBggVasWKFfvrpJx05ckSnT5+Ww+FQZmamtc2LL76oYcOGqWHDhq4uocwICQnRqFGjNGrUKG+XAgAAAMCHuPRhJxs2bFCnTp10++236+2339aOHTt04sQJZWRkKPeteKZp6qmnnlLjxo31j3/8Q3v27HFlGQAAAADg01wW5H766Sd169ZNmzZtkmma1tfFLFu2TO3atdNPP/3kqlIAAAAAwKe5JMj9+eefuuWWW5Seni7TNBUSEqKnnnpK33//vRo0aJD/oH5+euCBBxQYGCjDMHT27FkNHDhQqamprigHAAAAAHyaS4LctGnTdOLECRmGoWbNmmnjxo165pln1Lt3bwUGBubb3jAMzZw5Uzt37lTjxo0lScePH9dLL73kinIAAAAAwKc5HeROnTqlOXPmWN+/++67atGiRbH2bdSokX744QdVqFBBpmlq+vTpOnv2rLMlAQAAAIBPczrIbd68WefOnZNhGOrdu7euueaaEu3fuHFjDR48WFL2FAW7du1ytiQAAAAA8GlOB7l9+/ZZyx07dixVG+3atbOWCXIAAAAAUDSng1xSUpK1XNo54SpXrmwtx8XFOVsSAAAAAPg0p4NcnTp1rOW9e/eWqo2dO3dayzVq1HC2JAAAAADwaU4HuUsuucRa/vXXX0u8v2maeeaQa9asmbMlAQAAAIBPczrIde7cWXXq1JFpmvrll1/09ddfl2j/119/XZs2bZIkVapUqcQPSwEAAACA8qaCsw34+fnp0Ucf1aOPPipJuu+++/T5559fNJA5HA7NnDlTEydOlJQ9t9yoUaMUEBDgbEk+LzExUa1atSpwXXR0tKKjoz1cEQAAAOCbYmJiFBMTU+C6xMRED1fzF8M0TdPZRjIyMtS1a1f99ttvMgxDfn5+Gjp0qPr06aPHH39c8fHxMgxD69ev1549e7Rnzx598skn2r17t6TsyysjIyO1efNmVatWzek35asiIiIUHx+v8PBwHgoDAAAAeJk3P5+7JMhJ0vHjx3Xddddp8+bN2Q0bRrH2M01TYWFhWrFihZo3b+6KUnwWQQ4AAAAoO7z5+dzpe+Ry1KxZU2vXrtUTTzyhypUryzRN6ytH7tdM05RhGBo+fLi2bdtGiAMAAACAYnLZGbncTp8+rc8++0yrVq3Sxo0blZycrFOnTikkJEShoaFq06aNunbtqqFDh6pBgwauPrzP4owcAAAAUHZ48/O50w87KUiVKlU0cuRIjRw50h3NAwAAAEC55rJLKwEAAAAAnuGSINeiRQu9/PLLOnLkiCuaAwAAAAAUwSVBbs+ePZo4caIaNmyofv36adGiRcrIyHBF0wAAAACAv3HppZUOh0PffPONBg8erPDwcI0bN05bt2515SEAAAAAoNxzSZCbOHGiGjduLOmvKQaOHTum1157TVdccYU6duyomTNn6uTJk644HAAAAACUay4Jcs8//7z27t2rtWvXauzYsapfv76kv0Ld77//roceekj169fXHXfcoR9++EFumPUAAAAAAMoFt8wjl5WVpR9//FGffvqp5s+fr5SUlL8OaBiSsudcuPvuu3XXXXdZZ/NQNOaRAwAAAMoOb34+d0uQyy0jI0Pff/+95s2bp8WLF+vMmTPZB/7/gU6SunfvrnvvvVcDBw5UcHCwO8uxNYIcAAAAUHb4dJDLLS0tTV9//bU+/fRTLV26VBcuXMgu4v+HuipVqnAfXREIcgAAAEDZ4c3P5x6dEDw4OFi33nqrFi5cqMTERL3++uuqUqWKpOz76U6fPu3JcgAAAADAlip4+oCnT5/W119/rfnz5+vbb7/V+fPnPV0CAAAAANiaR4LcqVOn9OWXX2r+/Pn6/vvvrUsqJVlPrwwKCtKNN97oiXIAAAAAwNbcFuRSUlK0ePFizZ8/X8uWLVNGRoYk5Zl2wM/PT71799bQoUM1YMAAVa1a1V3lAAAAAIDPcGmQO3bsmL744gvNnz9fK1askMPhkKR8c8Z16dJFQ4YM0W233aY6deq4sgQAAAAA8HkuCXJvvfWW5s+fr9WrVysrK0tS/vDWunVrDR06VLfffrsaNWrkisMCAAAAQLnkkiA3evRoGYaRL7w1atRIQ4YM0ZAhQ9S6dWtXHAoAAAAAyj2XXVqZE+Lq1Kmjf/7znxoyZIiuvPJKVzUPAAAAAPj/XBLkqlatqoEDB2ro0KHq2bOn/P39XdEsAAAAAKAALglyiYmJCgoKckVTKIbExES1atWqwHXR0dGKjo72cEUAAACAb4qJiVFMTEyB6xITEz1czV8M8+83tqHMioiIUHx8vMLDwxUXF+ftcgAAAIByzZufz4t9Ru7DDz/M8/2dd97p8mIAAAAAABdX7CA3YsQIGYZhfZ87yLnqnjjDMJSZmemStgAAAADAV5X4HjnTNPMEutyvcZUmAAAAALifX0k2LiqoEeIAAAAAwDOKfUZuzpw5ha7LyspySTEAAAAAgIsrdpC766673FkHAAAAAKCYSnRpJQAAAADA+1wyIfg999wjSapTp45efPHFEu//9NNPKz4+Xs2aNdMTTzzhipIAAAAAwGe5ZEJwPz8/GYahpk2bavfu3SXev0ePHlqzZk2p9y8vmBAcAAAAKDu8+fm8TFxaefr0aZmmqYSEBG+XAgAAAABlXokurXzmmWeKXH/ixImLbpNbVlaW9u3bp02bNkmSQkJCSlIOAAAAAJRLJQpykydPzjcZeA7TNJWSkqIpU6aUuIicNtu2bVvifQEAAACgvCnxw07cNSl4cHCwJk+eXOr9AQAAAKC8KFGQmzRpUoGvT5kyRYZhqEaNGhozZkyJi6hZs6auv/56NWvWrMT7lk+mHI5z3i4CAAAAKOecfm5kqZWJp1aieHKeilOrlr/mfRbp7XIAAACAcu32f/6pY8cc9n5qpQvyIAAAAACgGFwyIXhWVpYrmkExBQXVUY/u27xdBgAAAFBuZd/qVM9rx3dJkHPWfffdp+PHj6tz5856/PHHvV2ODRjy92eqBgAAAKC88nqQO3PmjD766CNlZGQoNjaWIAcAAAAAF+HyIBcbG6vNmzcrPT39ottmZGRo/vz5unDhgiTp8OHDri4HAAAAAHyOy4Lc4sWL9cADDyg5ObnE++ZMCN61a1dXlQMAAAAAPsslQW79+vUaPHiwHA5HsfcxDCPPky4jIyM1Y8YMV5QDAAAAAD7NJUFu2rRpcjgcVjjr1KmTWrZsqT///FOrV6+WYRjq0KGDWrVqJUnau3ev1q5da+1z7733atq0aapataoryvF5iYlJVl/+XXR0tKKjoz1cEQAAAOCbYmJiFBMTU8AaUykpxT+R5WpOTwh+9OhRNWjQwJqC4KOPPtLQoUOt9aNHj9Zbb72loUOHau7cudbrSUlJ6tu3rzZt2qTKlStr6dKluvrqq50pxeflTAgeHh6muLh4b5cDAAAAlFsOxznVq1fVvhOC79ixw7qkskuXLnlCnCSNHDlSkrRs2bI8r9epU0fLly9XWFiYzpw5o4EDB+rYsWPOlgMAAAAAPs/pIBcf/9eZoeuuuy7f+ksvvVR+fn5KTk7WyZMn86yrXr26HnnkEUnS8ePH9dhjjzlbDgAAAAD4PKeDXEJCgrUcHh6eb31QUJAaN24sSdq9e3e+9UOGDJEkmaapefPm5Qt7AAAAAIC8nA5yVapUsZbT0tIK3CYqKkqStGvXrnzrwsLCFBwcLElKT0/XihUrnC0JAAAAAHya00EuIiLCWv7zzz8L3CYqKkqmaer333/Pt84wDIWGhlrfHzx40NmSAAAAAMCnOR3kGjRoYC1/9tlnyszMzLdNzhm5X375Jd860zSVnJxsTQpesWJFZ0sCAAAAAJ/mdJBr06aNatasKSn7frmhQ4cqNTU1zzZXXXWVJGnjxo3avHlznnXLli3ThQsXrMnBc0IfAAAAAKBgTge5ChUq6MEHH7SC2IIFC1S7dm299NJL1jZXXHGF6tevL0kaNGiQfv75Z508eVIrV67UfffdZ52N8/f3V+vWrZ0tCQAAAAB8mtNBTpImTpyoq666ygpzmZmZeaYlMAxDTzzxhEzT1MGDB9WtWzfVrFlTvXv31uHDh61tRo4caQU+AAAAAEDBXBLkgoOD9f3332vixImqXbu2FehyGzVqlG688UaZpml95TBNUy1atNDkyZNdUQ4AAAAA+DSXBDlJCgkJ0fPPP68jR45o//79+Sb39vf316JFi/T8889b882ZpqkmTZpo7Nix2rhxo+rUqeOqcgAAAADAZxlmQafPPOD06dMyDEOVK1f2xuFtKSIiQvHx8QoPD1NcXPzFdwAAAADgFg7HOdWrV1XHjjkUHh6uuLg4jx6/gkePlkvuicQBAAAAAMXnsksrAQAAAACeQZADAAAAAJsp1qWVvXr1cncdkrKnIFi+fLlHjgUAAAAAdlWsILdq1Spr0m53MU3T7ccAAAAAAF9Q7IedeOnhlgAAAACAvylWkFu5cqW76wAAAAAAFFOxglz37t3dXQcAAAAAoJh4aiUAAAAA2AxBDgAAAABsptgPOymJzMxMbdy4UT/99JOOHDmi06dP6/Tp0/rkk08kZT84JT4+XhEREe44vM9LTExSq1atClwXHR2t6OhoD1cEAAAA+KaYmBjFxMQUsMZUSorD4/XkMEwXPo4yKytLb7zxhiZNmqTTp09br+dMLeBwZL9Rh8OhwMBA9erVS3fffbeGDh3qqhJ8WkREhOLj4xUeHqa4uHhvlwMAAACUWw7HOdWrV1XHjjkUHh6uuLg4jx7fZZdWpqamqkuXLho3bpxSU1Nlmqb1VRDTNLVixQoNHz5c119/vc6cOeOqUgAAAADAp7kkyGVmZmrw4MHasGGDFdwiIyM1dOhQVa9ePd/2hmEoNDTUCno//PCDBgwY4IpSAAAAAMDnuSTIvf3221q2bJkMw1CFChX07LPPat++fZo7d65q1qyZ/6B+fjp06JBeeOEF+fn5WWfnFi1a5IpyAAAAAMCnOR3kTNPU66+/bn3/7LPP6sknn5SfX9FNh4SEaMKECXr33Xet1yZMmKCsrCxnSwIAAAAAn+Z0kNu0aZN2794twzDUrFkz/fvf/y7R/nfddZfatWsn0zS1d+9e7d+/39mSAAAAAMCnOR3k9u3bZy1fe+21qlCh5DMa9OvXz1retWuXsyUBAAAAgE9zOsgdPHjQWm7Tpk2p2ggPD7eWd+/e7WxJAAAAAODTnA5yISEh1nJKSkqp2oiP/2tONH9/f2dLAgAAAACf5nSQi4iIsJa3b99eqja2bNliLYeFhTlbEgAAAAD4NKeDXI8ePVShQgWZpqnFixfr0KFDJdr/999/15IlS6zvu3Xr5mxJAAAAAODTnA5y1apVsybzPn/+vB588EGdP3++WPsePXpUw4YNU2ZmpgzDUM+ePVW3bl1nSwIAAAAAn+aSCcFffvllBQcHS5K+/fZbde7cWStXrlRGRkaB2x8+fFjPP/+8mjdvrtjYWEmSYRh66aWXXFEOAAAAAPi0ks8VUIDIyEgtWLBAN998szIzM7V9+3b17t1bwcHByszMtLZr3bq19u/fr/T0dEnZk4nneOONN9S+fXtXlAMAAAAAPs0lZ+Qk6frrr9fKlSvVuHFjmaYp0zR17tw5ZWRkyDAMSdLOnTt1/vx5a70kVa9eXfPmzdODDz7oqlLKlMTERE2ZMkX9+/dXixYtFBISoksvvVS33XabZs+eLYfD4e0SAQAAANiMYeY+LeYC58+f16effqp3331X69evz3NGLrcWLVrozjvv1P3336+aNWu6soQy45tvvtGQIUN06tSpQrdp166d3nnnHbVr1+6i7UVERCg+Pl7h4WGKi4u/6PYAAAAA3MPhOKd69arq2DGHwsPDFRcX59HjuzzI5ZaWlqatW7cqOTlZp06dUkhIiEJDQ9W6dWufDW85duzYoQ4dOigtLU2S1L9/f/Xu3Vv169dXbGysPv30U+3YsUNS9gNj1q1bpxYtWhTZJkEOAAAAKBu8HeRcco9cYYKDg9W5c2d3HqLMmjJlihXiZsyYodGjR1uXmErSY489pn/961968803derUKY0dO1bffvutt8oFAAAAYCNuPSNXXp0/f15Vq1ZVRkaG2rVrp99++y1PiMtx4cIFtW/f3ppIPS4uTuHh4YW2yxk5AAAAoGzw9hk5lz3sxFmpqamaPHmyt8twiS1btlhTLwwePLjAECdJgYGB6tevn/X9pk2bPFIfAAAAAHsr1aWVR48e1erVq5WQkCDTNNWgQQN17txZDRs2LHFbZ8+e1S+//KKJEydq06ZNPhHmEhMTreXIyMgit61fv761nHMpJgAAAAAUpURB7vDhw3rkkUf0xRdf5Fvn5+enW265RW+99VaeB5mcOHFCixYt0rJlyxQfH6/U1FSdPn1a58+f1/nz53Xy5ElJ2XPKFXbmym5at26tOXPmSJK6d+9e5LYbNmywlps3b+7WugAAAAD4hmIHudjYWPXs2VOJiYnWHHC5g5fD4dDChQv1xx9/aNmyZQoLC9O6des0ePBgJSQk5Gsv9615vhLgcjRp0kRNmjS56HZbt27VvHnzJGXf/3bJJZcUq/2sLFOpqamlri8oKEhBQUGl3h8AAADwBenp6UpPTy/Vvg7HOXnzaSPFCnJZWVm64447dPToURmGIcMw8kzqncM0TcXGxmrUqFH65JNPNGDAAGufop6pYpqmatSooW7dujn3bmxk48aN6t+/vzXP3sSJExUYGFisfY8cOaJq1aqV+tiTJk3yiUtYAQAAAGdMnTpVU6ZM8XYZpVKsp1YuXbpU/fr1swJZ48aN9fzzz6tDhw7WE1p+//13Pfnkk9q/f78Mw1CnTp20bt06a58BAwaoa9euioyMVPXq1SVJ/v7+qlGjhmrVqqWwsDCfOzNXkNTUVE2dOlXTpk2zQtzQoUP10Ucfyc+v6GfP5Dy1sn79+tq1a1epa+CMHAAAAOD8GbmoqAgdP16G55H7/PPPreXmzZtr06ZNCg4Otl6LiopSVFSU+vfvr06dOmnHjh1av369JCkkJEQrVqxQx44dXVy6vWRkZOidd97R5MmTlZycbL0+cuRIvfnmmxcNcbn5+RmqWrWqO8oEAAAAyg1nTnA4HBXkzfNQxUoPuR/I8cILL+QJcbmFhITo2WeflfTXw0umTJlS7kPc5s2b1blzZ0VHR1shrmHDhlq6dKneeecdBQQEeLlCAAAAAHZSrCB35MgRa7lnz55Fbtu7d+883/fp06cUZfkGh8Ohp59+Wh07drTmiAsNDdV///tfxcbGqm/fvl6uEAAAAIAdFevSylOnTkmSqlSpoho1ahS5bZUqVVS9enVrWoGoqCjnKrQp0zQVHR2tWbNmScp+MueYMWM0ZcoU6x5BAAAAACiNYgW5nMska9euXaxGQ0NDrSBX3Ccx+prnnnvOCnF169bVwoULddVVV3m5KgAAAAC+oEQTghf3qZLl4emTRUlNTdVLL70kSapRo4Z+/vlnNW3a1MtVAQAAAPAVxX9UIort448/1tmzZyVJzz//PCEOAAAAgEuV6IwciufHH3+0litVqqRvv/22WPt16tRJoaGh7ioLAAAAgI8gyLlBYmKitXzXXXcVe7+VK1eqR48ebqgIAAAAgC/h0ko3yB3kAAAAAMDVOCPnBn/88Ye3SwAAAADgwzgjBwAAAAA2U6IzcvHx8erVq1extstRnO1zGIah5cuXl6QkAAAAACh3ShTkzp8/r9WrVxdr25y55Iq7fc6k4wAAAACAohU7yJmm6c46AAAAAADFVKwgV5JH6AMAAAAA3KtYQW7OnDnurgMAAAAAUEw8tRIAAAAAbIYgBwAAAAA2Q5ADAAAAAJshyAEAAACAzZRoHjmUDYmJSWrVqlWB66KjoxUdHe3higAAAADfFBMTo5iYmALWmEpJcXi8nhyGyQRxthEREaH4+HiFh4cpLi7e2+UAAAAA5ZbDcU716lXVsWMOhYeHKy4uzqPH59JKAAAAALAZLq20IdOULly44O0yAAAAgHLL4fDu53GCnA2dOXNaL7zwgrfLAAAAAMotP78M7x7fq0cHAAAAAJQYDzuxkZyHnYSF1deBAwe9XQ4AAABQbqWlnVSzZmFee9gJl1bakqHAwEBvFwEAAACUWw6Hdz+Pc2klAAAAANgMQQ4AAAAAbIYgBwAAAAA2Q5ADAAAAAJshyAEAAACAzRDkAAAAAMBmCHIAAAAAYDMEOQAAAACwGYIcAAAAANgMQQ4AAAAAbIYgBwAAAAA2Q5ADAAAAAJshyAEAAACAzRDkAAAAAMBmCHIAAAAAYDMEOQAAAACwmQreLgAll5SUpFatWhW4Ljo6WtHR0R6uCAAAAPBNMTExiomJyfe6aWYpJcXhhYqyGaZpml47OkokIiJC8fHxCgsLU3x8vLfLAQAAAMqttLSTatiwlo4dcyg8PFxxcXEePT6XVgIAAACAzRDkAAAAAMBmCHIAAAAAYDMEOQAAAACwGYIcAAAAANgMQQ4AAAAAbIYgBwAAAAA2Q5ADAAAAAJshyAEAAACAzRDkAAAAAMBmCHIAAAAAYDMEOQAAAACwGYIcAAAAANgMQQ4AAAAAbIYgBwAAAAA2Q5ADAAAAAJshyAEAAACAzRDkAAAAAMBmCHIAAAAAYDMEOQAAAACwGYIcAAAAANgMQQ4AAAAAbKaCtwtAySUlJalVq1YFrouOjlZ0dLSHKwIAAAB8U0xMjGJiYvK9bppZSklxeKGibIZpmqbXjo4SiYiIUHx8vMLCwhQfH+/tcgAAAIByKy3tpBo2rKVjxxwKDw9XXFycR4/PpZUAAAAAYDMEOQAAAACwGYIcAAAAANgMQQ4AAAAAbIYgBwAAAAA2Q5ADAAAAAJshyAEAAACAzRDkAAAAAMBmCHIAAAAAYDMEOQAAAACwGYIcAAAAANgMQQ4AAAAAbIYgBwAAAAA2Q5ADAAAAAJshyAEAAACAzRDkAAAAAMBmCHIAAAAAYDMEOQAAAACwGYIcAAAAANgMQQ4AAAAAbIYgBwAAAAA2Q5ADAAAAAJup4O0CUHJJSUlq1apVgeuio6MVHR3t4YoAAAAA3xQTE6OYmJh8r5tmllJSHF6oKJthmqbptaOjRCIiIhQfH6+wsDDFx8d7uxwAAACg3EpLO6mGDWvp2DGHwsPDFRcX59Hjc2klAAAAANgMQQ4AAAAAbIYgBwAAAAA2Q5ADAAAAAJshyAEAAACAzRDkAAAAAMBmCHIAAAAAYDMEOQAAAACwGYIcAAAAANgMQQ4AAAAAbIYgBwAAAAA2Q5ADAAAAAJshyAEAAACAzRDkyoCYmBgZhqHJkyd7uxQAAAAANkCQKwPmzp3r7RIAAAAA2AhBzsvmzJmjtWvXersMAAAAADZSwdsFlEenTp3S1q1bNWfOHM7GAQAAACgxgpyHderUSRs2bPB2GQAAAABsjEsrPSwpKcnbJQAAAACwOYKch8XGxiotLc362rVrl7dLAgAAAGAzXFrpYUFBQUV+XyymqYzz511UEQAAAICSyjif7tXjE+Rs6MzJE3p56M2l3r+Cn58q+Pu7sCIAAADAfjIdDmVmZZVqXyNAMk0XF1QCBDkbSk1L11OLvi/1/te1ilKf1s1dWBEAAABgP8t37tMPO/Z4u4xSIcjZUL26dbV969ZS7x8UFFS6SzoBAAAAH/JAerrS00t3ieTp08nq0PlyHT/ucHFVxUOQsyE/Pz/VrFPH22UAAAAAthZQsaIql3bfAFOG4dJySoSnVgIAAACAzRDkAAAAAMBmCHIAAAAAYDMEOQAAAACwGYIcAAAAANgMQQ4AAAAAbIYgBwAAAAA2Q5ADAAAAAJshyAEAAACAzVTwdgHlXaNGjWSaprfLAAAAAGAjnJEDAAAAAJshyAEAAACAzRDkAAAAAMBmCHIAAAAAYDMEOQAAAACwGYIcAAAAANgMQQ4AAAAAbIYgBwAAAAA2Q5ADAAAAAJshyAEAAACAzRDkAAAAAMBmKni7AJRcUnKyWrVqVeC66OhoRUdHe7giAAAAwDfFxMQoJiYm3+tZjkylpDi8UFE2wzRN02tHR4lEREQoPj5eYfXrKz4hwdvlAAAAAOVWakqimjYP17FjDoWHhysuLs6jx+fSSgAAAACwGYIcAAAAANgMQQ4AAAAAbIYgBwAAAAA2Q5ADAAAAAJshyAEAAACAzRDkAAAAAMBmCHIAAAAAYDMEOQAAAACwGYIcAAAAANgMQQ4AAAAAbIYgBwAAAAA2Q5ADAAAAAJshyAEAAACAzRDkAAAAAMBmCHIAAAAAYDMEOQAAAACwGYIcAAAAANgMQQ4AAAAAbIYgBwAAAAA2Q5ADAAAAAJshyAEAAACAzVTwdgEouaTkZLVq1arAddHR0YqOjvZwRQAAAIBviomJUUxMTL7XsxyZSklxeKGibIZpmqbXjo4SiYiIUHx8vMLq11d8QoK3ywEAAADKrdSURDVtHq5jxxwKDw9XXFycR4/PpZUAAAAAYDMEOQAAAACwGYIcAAAAANgMQQ4AAAAAbIanVtqQKVPnMs55uwwAAACg3ErLTPPq8QlyNnQ87bg6f9LZ22UAAAAA5VblDH+vHp9LKwEAAADAZjgjZ0OhwaFaN3Sdt8sAAAAAyq3kE4fUYWJrrx2fIGdDhgyFBIR4uwwAAACg3KroV9Grx+fSSgAAAACwGYIcAAAAANgMQQ4AAAAAbIYgBwAAAAA2Q5ADAAAAAJshyAEAAACAzRDkAAAAAMBmCHIAAAAAYDMEOQAAAACwGYIcAAAAANgMQQ4AAAAAbIYgBwAAAAA2U8HbBaDkkpOT1apVqwLXRUdHKzo62sMVAQAAAL4pJiZGMTEx+V7PdGQoJcXhhYqyGaZpml47OkokIiJC8fHxql+/nhISjni7HAAAAKDcSkw+qNatmunYMYfCw8MVFxfn0eNzaSUAAAAA2AxBDgAAAABshiAHAAAAADZDkAMAAAAAmyHIAQAAAIDNEOQAAAAAwGaYR86WTOnCWW8XAQAAAJRfjjSvHp4gZ0dnkqUXwrxdBQAAAFB+GUFePTyXVgIAAACAzXBGzo4q1ZKe2O/tKgAAAIDy6+huaUZHrx2eIGdHhiEFVvJ2FQAAAED5FVjRq4fn0koAAAAAsBmCHAAAAADYDEEOAAAAAGyGIAcAAAAANkOQAwAAAACbIcgBAAAAgM0Q5AAAAADAZghyAAAAAGAzBDkAAAAAsBmCHAAAAADYDEEOAAAAAGymgrcLQMklJx9Tq1atClwXHR2t6OhoD1cEAAAA+KaYmBjFxMTkez0zM10pKQ4vVJTNME3T9NrRUSIRERGKj49X/fp1lZBw1NvlAAAAAOVW4tGdat2mjY4dcyg8PFxxcXEePT6XVgIAAACAzRDkAAAAAMBmCHIAAAAAYDMEOQAAAACwGYIcAAAAANgMQc6GeNCo56Snp2vy5MlKT0/3dinlBn3uefS559Hnnkefex597nn0ued582M50w/YSHh4uBISElS3bh0dPZro7XLKhdTUVFWrVk2nTp1S1apVvV1OuUCfex597nn0uefR555Hn3sefe5ZiUd36tLWbXT8uENhYWGKj4/36PE5IwcAAAAANkOQAwAAAACbIcgBAAAAgM1U8HYBKAXTVEa6w9tVlAs5/ZyR7qDPPYQ+9zz63PPoc8+jzz2PPvc8+tyzMtOzvHp8gpwNnT+TqbfHrvZ2GeVC2oWzkqQ5j/+k4MBKXq6mfKDPPY8+9zz63PPoc8+jzz2PPvcs0/+UV49PkPOQlJQU7d+/X6dPn1ZYWJiaNWsmPz+ubAUAAABQckw/4Ga7d+/Wv//9b33zzTdyOP46xd2gQQONHTtWjzzyiPz9/YvVVs70A7UCArSy2SXuKhm5nHE41GX3H/q1+aWqXMx/JziHPvc8+tzzcvr8aOxeVa9dx9vllAupqamq0yhCSQfjeCy7h9Dnnkefe1ZCQqw6dr/Sa9MPcEbOjdasWaPrr79e586dy7fu8OHDGj9+vH788UctXLiw2GEuh3/WBadq+yQlRUNr1HCqDVe3VRZr8s9y/P//XpC/4dwH3LL4/spiTfS559uizz3fVk6fH7qxr044GZ7L4vsrizWd+f9/TD3Yu6fTf7Aoi++vLNZEn3u+Lfrcs22dqRzsklpKizNybnLs2DG1bNlSx48fl5+fnyZPnqy7775bNWrU0Pr16/Xvf/9bmzZtkiT95z//0ZQpUy7apjUheO1aSjj4p1P1tW7fXts3bnSqDVe3VRZrSk1NVY369ZVy5IjTf9kqi++vLNZEn3u+Lfrcs21lpaVp05Vd1GnvHq1vFuX0h61+B/br68ZNnGrD1W2VxZrOOBz0uYfbos893xZ97tm2zlQOVt+DWzkj52tefvllHT9+XJL0+uuvKzo62lrXs2dPrVq1SpdffrkOHjyo//73v3rooYdUu3bt4jVuGPILCXGuQFe04eq2ymBNfpmZ2f8NCaHPPdQWfe75tuhzz7ZlBAcras2PUv36ilrzo9PhOah9e7VwUVB1VVtlsabU1FT63MNt0eeeb4s+92xbcfs2Sz27uaSe0iDIuYHD4dB7770nSapTp45GjRqVb5uqVatq/Pjxeuihh3T27Fl99tlneuihhzxdKgDAw4xcYZDw7Lm2+IOF59uizz3fFn3u2baMwIquqaWUeGyiG6xdu9Y6G9e/f/9C73+76aabrOUlS5Z4pDYAAAAA9keQc4PY2Fhr+YYbbih0uwYNGuiyyy6TJP3+++9urwsAAACAb+DSSjc4cuSItRwZGVnktg0aNNDWrVuVlJSkkydPqnr16hc/gGkq64Lj4tsV2Yacb8PVbZXBmnLayLrgoM891BZ97vm26HPPt0Wfe74t+tzzbdHnnm+LPvdsW2amd58ZSZBzg6NHj1rLoaGhRW5bs2ZNa/nIkSNFBrnk5OTs/x47rrCadZ2o0NDxcykKr1nfiTb+cuzcCZe05ap2XNmWqSxJUsvGUTKcPIFdFt9fWayJPvd8W/S559uizz3fFn3u+bboc8+3RZ+XvC1TpqTSBTJTpk6czQ6DOZ/TPYnpB9xg8ODBWrBggSTp1KlTRT41aNy4cZo+fbokacOGDerQoUOh2/r7+ysrK8u1xQIAAABwip+fnxwOF50tLCbOyLlBamqqtRwcXPREgUFBQdZyWlpakdtWrFhR58+fl7+/f/GnKiiAYRil3hcAAADwJc6c10pOTpbD4VDFip5/giVBzg1yh6yTJ08WGbpOnjxpLV8s9J09e9bp2gAAAADYH0+tdIP69f+6dvfEiRNFbpt7feXKld1WEwAAAADfQZBzg3r16lnLFwtyKSkp1nJ4eLjbagIAAADgOwhybpD7jNyWLVsK3S4rK0vbtm2TJDVs2FBVqlRxe20AAAAA7I8g5wa5nzz51VdfFbrdxo0brakKrrrqKrfXBQAAAMA3EOTcoEWLFmrRooUkafny5Xkun8xt4cKF1vKAAQM8UhsAAAAA+yPIucm4ceMkSenp6RozZky++d82bdqkV199VZLUuHFj3XLLLR6uEAAAAIBdMSG4m2RkZOjqq6/W+vXrJUndunXTiBEjVLVqVa1fv15vvvmmzpw5I8MwtHjxYvXv39+t9Zw5c0Z79+5VSkqK6tatq6ioKAUEBLj1mICnMc7zSklJ0f79+3X69GmFhYWpWbNm8vPj73eu5O4+Zkznx7j2PYxzlAduGecm3ObIkSPmFVdcYUoq8CsgIMC88cYbzX79+pnNmzc3g4ODzVatWpm33nqr+c4775iZmZlO15CQkGDecccdZsWKFfMcu1atWuYTTzxhpqWlueCd2teMGTNMSeakSZNc0t7IkSML/ff++5erjmk3ru5z02Sc/11sbKzZr18/09/fP09/NGjQwJw2bZrTP1sY5+7vY8Z0fu7sc8Z08bj65zfj/OJc2eeM84IdPXrUnDx5sts+j7tznBPk3Cw9Pd184403zC5dupihoaFmYGCg2ahRI7NPnz5m5cqVi/yfqF27dubGjRtLfexdu3aZtWrVKvIYnTp1Ms+cOePCd2wvV155pUt/YHXr1o0fkhfh6j5nnOf1448/miEhIUX2x0033eTUL6byPs7d3ceM6fzc3eflfUwXlyt/fjPOi8eVfc44z2/p0qVmtWrV3PZ53N3jnCDnBX/88YcZHBxs/QP279/ffO2118zPP//cfPbZZ81WrVpZ66pVq2bu2rWrxMc4f/682bx5c6udMWPGmHv37jXPnTtnrlu3zrz22mutdXfeeacb3mXZ995777n8B1b9+vVNSeagQYPMb775psivPXv2uOSYduLqPmec55WcnGzWrFnTlGT6+fmZzzzzjHn48GHzzJkz5ooVK/JcIfCf//yn1Mcpz+Pc3X3MmM7PE+O6PI/p4nLlz2/GefG4+ncm4zwvd38e98Q4J8h5wW233Wb9w82YMcPMysrKsz49Pd0cPXq0tU2fPn1KfIyYmBhr//Hjx+dbf+HCBbNTp06mJNMwDHP79u2lfj92cvLkSfPHH3807777bjMgIMClPyBPnz5ttffmm286X6yPcGefM87zevTRR/P8bPm7U6dOmY0aNTIlmZUqVTKTkpJKfIzyPs7d3ceM6fzc3eflfUwXxV0/vxnnhXNXnzPO83P353FPjHOCnIelpaVZ/2O2a9cu36DJkZ6ebrZu3doaAHFxcSU6Ttu2bU1JZoUKFcyUlJQCt/n666+t9v/973+X9K3YTseOHd16CcGmTZus9pYtW+Z8wT7A3X3OOP9LZmamddaiTp06hV5ilnO/hSTzjTfeKPFxyvM490QfM6bz8kSfl+cxXRR3/vxmnBfMnX3OOM/LE5/HPTHOecyTh23ZskUZGRmSpMGDB8swjAK3CwwMVL9+/azvN23aVOxjxMfHa/PmzZKk7t27q3r16gVud+2116pSpUqSpCVLlhS7fbtKSkpya/t79uyxlps3b+7WY9mFO/uccZ7X2rVrdfz4cUlS//795e/vX+B2N910k7Vcmv4oz+Pc3X3MmM7PE+O6PI/porjr5zfjvHDu/J3JOM/L3Z/HPTXOCXIelpiYaC1HRkYWuW39+vWt5bS0tGIfIzY21lq+4YYbCt2uYsWKuvbaayVJu3bt0tmzZ4t9DDuKjY1VWlqa9bVr1y6Xtp/zQzI4OFjh4eHKyspSfHy8fvzxR61fv976MFKeuLPPGed5Fbc/GjRooMsuu0yS9Pvvv5f4OOV5nLu7jxnT+XliXJfnMV0Ud/38ZpwXzp2/Mxnnebn787inxjlBzsNat26tOXPmaM6cOerevXuR227YsMFaLslfT44cOWItX2xwNmjQwFrO/dcaXxQUFKSKFStaX0FBQS5tf/fu3ZKkhg0batasWYqMjFRERIS6d++uzp07q3bt2rr66qv17bffuvS4ZZk7+5xxnldp+iMpKUknT54s0XHK8zh3dx8zpvPzxLguz2O6KO76+c04L5w7f2cyzvNy9+dxT41zgpyHNWnSRCNGjNCIESMUHh5e6HZbt27VvHnzJEkRERG65JJLin2Mo0ePWsuhoaFFbluzZk1rOfegQ8nl/M8XGxur0aNHKy4uLs960zT1888/q2/fvnrsscdkmqY3yvQZjPO8PNUf5Xmcu7uPGdP5eaJPyvOY9gbGuXcwzvNy9+dxT41zglwZtHHjRl1//fXKzMyUJE2cOFGBgYHF3j/3IMg9OAqSe315uGzBnXL/FaVRo0b64osvdPz4cZ08eVI//fSToqOjrfWvvPKK3nrrLW+U6TMY53l5qj/K8zh3dx8zpvPzRJ+U5zHtDYxz72Ccl5wzn8c9Nc4JcmVIamqqJk6cqCuvvNIaAEOHDtWoUaNK3E6O4ODgIrfNfdq+JPfhIa/U1FSdOHFC/v7+6tKli9atW6ebb75ZoaGhqlatmrp27aoZM2Zo4cKF1j5PPfWUTp8+7cWq7Y1xnpcn+qO8j3N39zFjOj9P9Hl5HtPewDj3PMZ5ybji87inxnmFEm2NIm3btk3x8fEFrmvWrJmaNWtW4LqMjAy98847mjx5spKTk63XR44cqTfffFN+fiXL27Vr17aWL3afQO71FxtoZVFp+9zVqlatav3FpigDBgzQgAEDtGjRIp04cUI//PCDBg4c6IEKXaes9DnjPFtOn/+9P3J//3el7Y/yNM4L4u4+Lk9jurjc3eflfUx7A+Pc8xjnxePKz+OeGucEORf673//qw8++KDAdZMmTdLkyZPzvb5582bdc889eR5n2rBhQ7311lvq27dvqerI/XSdEydOFLlt7vWVK1cu1fG8qTR97m2DBg3SokWLJGXfQGu3H5Jlpc8Z59ly+vzv/VHUB15P9Ifdx3lB3N3H5WlMF1dZGte+OKa9gXFetpXXce7qz+OeGudcWuklDodDTz/9tDp27GgNmtDQUP33v/9VbGxsqUOcJNWrV89avtjgSUlJsZZzPzUH7tOyZUtrubw97teVGOd5lbY/irrJ2xm+OM7d3ceM6fzK0rj2xTHtDYzzsq28jXN3fR731DgnyLnQ+++/L9M0C/zKfZbCNE1FR0frueeeU2ZmpgzD0MMPP6x9+/Zp3LhxqlixolN15P4rwJYtW4rcduvWrZIkf39/RUVFOXVcbyhun5cluS9vqFatmhcrKZ2y0ueM87x9Xtz+yMrK0rZt2yRl/7WxSpUqbqnZ7uO8IO7u4/I0pourLI1rXxzT3sA4L9vK0zh35+dxT41zgpwXPPfcc5o1a5YkqW7duvrpp5/02muvFTrre0m1adNGAQEBkqSvvvqq0O0SExO1fv16SVLHjh1L9GRM5PXoo4+qdevWateunc6cOVPktjt37rSWSzI/IPJinOfVoUMHa7mo/ti4caP1WOSrrrqqRMco7+Pc3X3MmM7P3X1e3se0NzDOPY9xXjB3fh731DgnyHlYamqqXnrpJUlSjRo19PPPP5f4w9TFVK1aVb169ZIk7dixQ7t27Spwuy+++MKaJ2TAgAEuraG86dSpk/744w9t2rRJn3zySaHbZWVlafbs2ZIkwzDUp08fT5XocxjnebVo0UItWrSQJC1fvjzPpRq55X4qWUn7o7yPc3f3MWM6P3f3eXkf097AOPc8xnl+7v487rFxbsKj3nzzTVOSKcl888033Xac7777zjpOjx49zLS0tDzrDx48aNapU8eUZFatWtU8duyY22opqw4cOGD10aRJk5xq69y5c2bVqlVNSWaVKlXMLVu25NsmIyPDfPrpp61jDh061Klj2pEr+9w0Ged/N2vWLKs/7rjjDtPhcORZ//vvv5sVK1Y0JZmNGzc209PTS9Q+49z9fcyYzs+dfc6YLj5X/vxmnBePq/qccZ6fJz6Pe2KcE+Q87Pbbb7f+UT/44APzm2++KdbX8ePH87Rz1113Ffk/d1ZWljlw4EBrm8svv9ycOXOmuXDhQnPKlClm7dq1rXUzZszw0LsvW0r6A/Jifb5gwQJrfUBAgHn//feb7733nvnZZ5+ZzzzzjHnFFVdY6xs2bGgmJSW5/k2Vca7uc8Z5XhcuXDA7depkvedu3bqZ7733njl//nzzscceMytXrmxKMg3DML/88ssC22CcF83ZPmZMl5y7+7y8j+niKsnPb8a5a7iyzxnnebni83hZGOcEOQ/r2bOn9Y9Wkq+VK1fmaedig8c0TfP06dNm7969i2z3ySefNLOystz/xssgV4cK0zTN6dOnm4GBgUX2efv27c2DBw+69s3YhDv6nHGe15EjR/L8Qv77V0BAgDlz5sxC92ecX5wzfcyYLh1393l5H9PF4cpQYZqM8+JwdZ8zzv/iis/jZWGcc4+chyUmJnrsWJUrV9Z3332nDz74QL169VLt2rUVEBCgiIgIDRkyRGvWrNFzzz0nwzA8VpOve+SRR7Rv3z6NHTtWnTt3Vr169RQQEKD69evr5ptv1qeffqp169YpMjLS26X6DMZ5XvXq1dPatWv1xhtvqEuXLgoNDVVgYKAaNWqkkSNHauPGjRo1apRTxyjv49zdfcyYzs/dfV7ex7Q3MM49j3H+F099Hnf3ODdM8//fYQcAAAAAsAXOyAEAAACAzRDkAAAAAMBmCHIAAAAAYDMEOQAAAACwGYIcAAAAANgMQQ4AAAAAbIYgBwAAAAA2Q5ADAAAAAJshyAEAAACAzRDkAAAAAMBmCHIAAAAAYDMEOQAAAACwGYIcAAAAANgMQQ4AAAAACtGoUSMZhiHDMHTw4EFvl2MhyAEAAACAzRDkAAAAAMBmCHIAAAAAYDMEOQAAAACwmQreLgAAAAAA/s7hcOiXX37Rrl27dPz4cTVo0EDNmzdXy5YtVaVKlWK1cezYMe3cuVNxcXE6fPiwKlasqPDwcIWFhaldu3YKCgpy87twH8M0TdPbRQAAAACAJGVkZGjGjBmaOnWqkpOT862vWLGi7rnnHr3wwguqVq1agW3s3LlTjz/+uJYuXSqHw1HgNnXq1NEDDzygsWPHqmbNmnnWvf/++7r77ruLrHPlypXq0aNH8d6UG3BpJQAAAIAyITU1Vb1799a4ceMKDHGSdP78eb355ptq3769jhw5km/9zz//rI4dO+qrr74qNMRJUlJSkp599ll16dJFJ06ccNl78BQurQQAAADgdVlZWRo4cKB+/PFH67WOHTvq5ptvVp06dXTgwAF9++232rRpkyRp3759+uc//6nVq1fLMAxJUnp6uoYPH66zZ89abXTv3l09e/ZU/fr1de7cOe3fv1+ff/65EhMTJUl79uzR1KlT9corr1j7VKlSRU2bNpUkHTx40AqEDRs2VEBAgCQpODjYjb1xcVxaCQAAAMDrZs6cqdGjR1vfx8TE6MEHH7RCmpR939wrr7yiiRMnWq8tXrxYN910kyRpyZIl6tevnyTJMAx99tlnuvXWW/Md68KFCxo4cKCWLFkiSerUqZPWrVtXYF2NGjXSn3/+KUk6cOCAGjVq5NwbdREurQQAAADgVQ6HQy+++KL1/dixYzV69Og8IU6S/P399fjjj+uWW26xXvvkk0+s5fXr11vLgwYNKjDESVJgYGCeM3CbN2928h14HpdWAgAAAPCq5cuX69ChQ5Kyw9q4ceMK3dYwDN1333364osvJOUNb61bt1Z0dLQkaeDAgUUes2XLltbyhQsXSlu61xDkAAAAAHhV7vvi+vfvr4YNGxa5fc+ePTV9+nRJkp+fn0zTlGEYuvXWWws9C/d3OZdL2hVBDgAAAIBX/fbbb9bypZdeetHtg4OD9cgjj5TqWMeOHdMvv/yiKVOmlGr/soIgBwAAAMCrck810KBBA5e0eebMGa1cuVJbt27Vnj17rK/CpjWwG4IcAAAAAK86deqUtRwWFuZUW3FxcXryySc1b968Au998/PzU8uWLdW/f3+99NJLTh3LmwhyAAAAALwq95xsJ0+eLHU727dvV/fu3a0JvitWrKjrrrtO7du31+WXX67mzZuradOmCgoKkiSCHAAAAACUVmhoqLVc2oeQZGVl6dZbb7VC3IgRIzRt2jTVrFnTJTWWNQQ5AAAAAF516aWXWk+u3L17d7H2mTx5snX2bsKECdq+fbt27dolSWratKlmz54tf3//Qvffu3evc0V7GROCAwAAAPCqrl27WssLFiy46ANJDh48qClTpui1117T7NmzVbNmTe3YscNa36pVqyJDnCR9+eWXzhXtZQQ5AAAAAF510003qUqVKpKkc+fO6X//+1+R28+ePdta7tq1qwICAuTn91e02bZtmzIzMwvdf9myZXriiSfyvJaRkXHROrOysi66jacQ5AAAAAB4VZUqVfTggw9a37/88suaPXu2TNPMt+2XX36pqVOnWt/ffPPNkqS2bdtarx08eFDDhg3T/v37rdfS09P122+/acSIEerbt6/S09PztPvBBx9cNKjt27evRO/LnQyzoN4BAAAAAA9KS0tT+/bttXPnTuu1yy67TFdffbXatGmjY8eOac2aNfr++++t9W3atNFvv/2mwMBAnT17VlFRUTpy5EiedqtVq6ZKlSrpyJEjeYLh1VdfrbS0NG3cuNF6LTQ0VHPnzlXfvn2t19q3b6/ff/9dklSpUiV16NBBaWlpev3119W5c2eX90Nx8bATAAAAAF4XHBys77//Xr1791ZsbKwkaevWrdq6dWuB2zdt2lRff/21AgMDJWWHrLlz56p37955AtupU6fyzFMnSb169dKiRYu0YsUKDRgwwHr9xIkT+c7UDRo0yApyZ8+e1erVqyVlB09v4tJKAAAAAGVCRESE1q9frwkTJqhy5coFbhMcHKwxY8Zo48aNatiwYZ51vXr10ooVK9S+fftC258xY4Z++OEHVa1aVbfccos++ugjRUVFqUqVKurSpYvCw8Pz7PP444/rlVde0SWXXKLg4GCFhobqsssuU/Xq1V3ynkuLSysBAAAAlDnp6elavXq19u3bpxMnTqhKlSpq3ry5unbtaj0YpTBZWVnaunWr9uzZowMHDqhq1aq65JJLdPXVV1/0aZZ2QZADAAAAAJvh0koAAAAAsBmCHAAAAADYDEEOAAAAAGyGIAcAAAAANkOQAwAAAACbIcgBAAAAgM0Q5AAAAADAZghyAAAAAGAzBDkAAAAAsBmCHAAAAADYDEEOAAAAAGyGIAcAAAAANkOQAwAAAACbIcgBAAAAgM0Q5AAAAADAZv4fi5EbGngj6bMAAAAASUVORK5CYII=", "text/plain": [ "" ] @@ -477,7 +530,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 11, "id": "4b59c023", "metadata": {}, "outputs": [ @@ -547,45 +600,165 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 12, "id": "c9574185", - "metadata": {}, + "metadata": { + "scrolled": false + }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "2026-03-02 12:44:53.027227: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", - "2026-03-02 12:44:53.079520: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", + "2026-03-15 19:36:33.411472: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", + "2026-03-15 19:36:33.411790: I tensorflow/core/util/port.cc:153] 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", + "2026-03-15 19:36:33.447409: 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", - "2026-03-02 12:44:54.425711: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", - "2026-03-02 12:44:56.764407: E external/local_xla/xla/stream_executor/cuda/cuda_platform.cc:51] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n", + "2026-03-15 19:36:34.392834: I tensorflow/core/util/port.cc:153] 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", + "2026-03-15 19:36:34.393111: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", + "2026-03-15 19:36:36.037133: E external/local_xla/xla/stream_executor/cuda/cuda_platform.cc:51] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n", "ch0 {'axes': [Regular(10, 0, 1, name='x'), Regular(2, -2, 2, underflow=False, overflow=False, name='cat')], 'masked': False, 'flow': False, 'start': 0, 'stop': 20}\n", "ch0_masked {'axes': [Regular(2, -2, 2, underflow=False, overflow=False, name='cat')], 'masked': True, 'flow': False, 'start': 20, 'stop': 22}\n", + "\u001b[1;32mDEBUG:fitter.py: Unblind parameters with ['.*']\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Freeze params with []\u001b[0m\n", "\u001b[1;32mDEBUG:fitter.py: Updated list of frozen params: []\u001b[0m\n", - "\u001b[38;21mINFO:rabbit_fit.py: edmval: 1.4428862892810091e-27\u001b[0m\n", + "\u001b[38;21mINFO:rabbit_fit.py: Save inclusive histogram for Select\u001b[0m\n", + "\u001b[38;21mINFO:rabbit_fit.py: Save processes histogram for Select\u001b[0m\n", + "\u001b[38;21mINFO:rabbit_fit.py: Save inclusive histogram for Project ch0_masked\u001b[0m\n", + "\u001b[38;21mINFO:rabbit_fit.py: Save processes histogram for Project ch0_masked\u001b[0m\n", + "\u001b[38;21mINFO:rabbit_fit.py: Save inclusive histogram for Ratio ch0_masked ch0_masked cat:0 cat:1\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 0: loss value 4.241174094930731\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 1: loss value 4.209372249795071\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 2: loss value 4.195073198975771\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 3: loss value 4.1884883842370755\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 4: loss value 4.185317167386907\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 5: loss value 3.5707944747629647\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 6: loss value 3.569887521486505\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 7: loss value 3.3762832131999017\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 8: loss value 3.3757409287159565\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 9: loss value 3.3754779431134407\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 10: loss value 3.3199540121082087\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 11: loss value 3.319687460511248\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 12: loss value 3.3195608427718835\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 13: loss value 3.3194966944083704\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 14: loss value 3.297963333090652\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 15: loss value 3.297834381394358\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 16: loss value 3.29777415376609\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 17: loss value 3.2977449048777663\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 18: loss value 3.291576462989008\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 19: loss value 3.291525154967852\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 20: loss value 3.291501203175513\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 21: loss value 3.2914896056700926\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 22: loss value 3.288859792564658\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 23: loss value 3.2888329783478145\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 24: loss value 3.2888205978135794\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 25: loss value 3.2888147576257514\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 26: loss value 3.2879805985903356\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 27: loss value 3.2879666898983024\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 28: loss value 3.2879602954261724\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 29: loss value 3.287957309798473\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 30: loss value 3.287710438476064\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 31: loss value 3.2877069231760916\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 32: loss value 3.287650682483137\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 33: loss value 3.287605069284875\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 34: loss value 3.2876041436683376\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 35: loss value 3.287575889728448\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 36: loss value 3.287575411493814\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 37: loss value 3.2875602413307687\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 38: loss value 3.287559797751385\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 39: loss value 3.2875574633267033\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 40: loss value 3.2875558450021973\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 41: loss value 3.287555067952049\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 42: loss value 3.2875546712147976\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 43: loss value 3.2875545026082635\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 44: loss value 3.2875544176581126\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 45: loss value 3.287554374804299\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 46: loss value 3.2875543531831695\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 47: loss value 3.2875543422629008\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 48: loss value 3.2875543367650386\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 49: loss value 3.287554333986328\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 50: loss value 3.2875543325857675\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 51: loss value 3.2875543318765046\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 52: loss value 3.2875543315197047\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 53: loss value 3.287554331337862\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 54: loss value 3.28755433124644\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 55: loss value 3.2875543312009565\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 56: loss value 3.287554331178378\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 57: loss value 3.287554331165044\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 58: loss value 3.2875543311580615\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 59: loss value 3.287554331156266\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 60: loss value 3.2875543311553512\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 61: loss value 3.287554331154493\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 62: loss value 3.287554331154493\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 63: loss value 3.287554331154493\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 64: loss value 3.287554331154493\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 65: loss value 3.287554331154493\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 66: loss value 3.287554331154493\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 67: loss value 3.287554331154493\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 68: loss value 3.287554331154493\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 69: loss value 3.287554331154493\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 70: loss value 3.287554331154493\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 71: loss value 3.287554331154493\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 72: loss value 3.287554331154493\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 73: loss value 3.2875543311522657\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 74: loss value 3.2875543311522657\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 75: loss value 3.2875543311522657\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 76: loss value 3.2875543311522657\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 77: loss value 3.2875543311522657\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 78: loss value 3.2875543311522657\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 79: loss value 3.2875543311522657\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 80: loss value 3.2875543311522657\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: Iteration 81: loss value 3.2875543311522657\u001b[0m\n", + "\u001b[1;32mDEBUG:fitter.py: message: A bad approximation caused failure to predict improvement.\n", + " success: False\n", + " status: 2\n", + " fun: 3.2875543311522657\n", + " x: [ 9.975e-01 3.367e-01 1.143e-01 -7.165e-01 2.116e-02\n", + " 2.150e-01 -1.113e-11]\n", + " nit: 82\n", + " jac: [ 1.860e-05 -1.180e-06 -1.121e-07 2.384e-07 -3.423e-07\n", + " -5.299e-08 9.231e-08]\n", + " nfev: 75\n", + " njev: 75\n", + " nhev: 247\u001b[0m\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[38;21mINFO:rabbit_fit.py: edmval: 1.1920776218073565e-13\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: Saturated chi2:\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: ndof: 18\u001b[0m\n", - "\u001b[38;21mINFO:rabbit_fit.py: 2*deltaNLL: 0.0\u001b[0m\n", - "\u001b[38;21mINFO:rabbit_fit.py: p-value: 100.0%\u001b[0m\n", + "\u001b[38;21mINFO:rabbit_fit.py: 2*deltaNLL: 6.58\u001b[0m\n", + "\u001b[38;21mINFO:rabbit_fit.py: p-value: 99.32%\u001b[0m\n", + "\u001b[38;21mINFO:rabbit_fit.py: Save inclusive histogram for Select\u001b[0m\n", + "\u001b[38;21mINFO:rabbit_fit.py: Save processes histogram for Select\u001b[0m\n", + "\u001b[38;21mINFO:rabbit_fit.py: Save inclusive histogram for Project ch0_masked\u001b[0m\n", + "WARNING:tensorflow:5 out of the last 5 calls to triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", + "\u001b[38;21mINFO:rabbit_fit.py: Save processes histogram for Project ch0_masked\u001b[0m\n", + "WARNING:tensorflow:5 out of the last 5 calls to triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", + "\u001b[38;21mINFO:rabbit_fit.py: Save inclusive histogram for Ratio ch0_masked ch0_masked cat:0 cat:1\u001b[0m\n", + "WARNING:tensorflow:6 out of the last 6 calls to triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", + "WARNING:tensorflow:6 out of the last 6 calls to triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", "/home/david/work/Repos/rabbit/env/lib/python3.12/site-packages/wums/ioutils.py:161: FutureWarning: .metadata was not set, returning None instead of Attribute error, boost-histogram 1.7+ will error.\n", " (axes, obj.storage_type(), obj.metadata, obj.label, obj.name, h5buf),\n", "Results written in file ./results/advanced/fitresults_nonlinear.hdf5\n", - "\u001b[38;21mINFO:rabbit_fit.py: 6.92 seconds total time\u001b[0m\n", - "\u001b[1;32mDEBUG:rabbit_fit.py: 3.00 seconds initialization time\u001b[0m\n", - "\u001b[1;32mDEBUG:rabbit_fit.py: For fit -1:\u001b[0m\n", - "\u001b[1;32mDEBUG:rabbit_fit.py: 0.05 seconds for prefit\u001b[0m\n", - "\u001b[1;32mDEBUG:rabbit_fit.py: 3.86 seconds for fit\u001b[0m\n", - "\u001b[1;32mDEBUG:rabbit_fit.py: 0.01 seconds for postfit\u001b[0m\n" + "\u001b[38;21mINFO:rabbit_fit.py: 21.26 seconds total time\u001b[0m\n", + "\u001b[1;32mDEBUG:rabbit_fit.py: 2.36 seconds initialization time\u001b[0m\n", + "\u001b[1;32mDEBUG:rabbit_fit.py: For fit 0:\u001b[0m\n", + "\u001b[1;32mDEBUG:rabbit_fit.py: 2.65 seconds for prefit\u001b[0m\n", + "\u001b[1;32mDEBUG:rabbit_fit.py: 6.67 seconds for fit\u001b[0m\n", + "\u001b[1;32mDEBUG:rabbit_fit.py: 9.59 seconds for postfit\u001b[0m\n" ] } ], "source": [ "!rabbit_fit.py ./results/advanced/input.hdf5 -t 0 --unblind -o ./results/advanced \\\n", - "--binByBinStatMode full --binByBinStatType gamma --postfix nonlinear -v 4 # \\\n", - "# -m Select ch0_masked -m Project ch0_masked -m Ratio ch0_masked ch0_masked cat:0 cat:1 \\\n", - "# --saveHists --saveHistsPerProcess --computeHistErrors --computeHistCov --computeVariations --computeHistImpacts \\\n", - "# --globalImpactsDisableJVP" + "--binByBinStatMode full --binByBinStatType gamma --postfix nonlinear -v 4 \\\n", + "-m Select ch0_masked -m Project ch0_masked -m Ratio ch0_masked ch0_masked cat:0 cat:1 \\\n", + "--saveHists --saveHistsPerProcess --computeHistErrors --computeHistCov --computeVariations --computeHistImpacts \\\n", + "--globalImpactsDisableJVP" ] }, { @@ -606,7 +779,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 13, "id": "e0750323", "metadata": {}, "outputs": [], @@ -616,72 +789,7 @@ }, { "cell_type": "code", - "execution_count": 12, - "id": "b82f7fa6", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2026-03-02 12:41:25.238428: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", - "2026-03-02 12:41:25.301392: 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", - "2026-03-02 12:41:26.646163: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", - "2026-03-02 12:41:27.206536: E external/local_xla/xla/stream_executor/cuda/cuda_platform.cc:51] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n", - "ch0 {'axes': [Regular(10, 0, 1, name='x'), Regular(2, -2, 2, underflow=False, overflow=False, name='cat')], 'masked': False, 'flow': False, 'start': 0, 'stop': 20}\n", - "ch0_masked {'axes': [Regular(2, -2, 2, underflow=False, overflow=False, name='cat')], 'masked': True, 'flow': False, 'start': 20, 'stop': 22}\n", - "\u001b[38;21mINFO:rabbit_plot_inputdata.py: Make plots for channel: ch0\u001b[0m\n", - "\u001b[38;21mINFO:rabbit_plot_inputdata.py: Make plot(s) with axes ['x']\u001b[0m\n", - "\u001b[33;21mWARNING:boostHistHelpers.py: Encountered 2 values below 1e-05 in h1 and h2 in divideHists, these will be set to 1.0\u001b[0m\n", - "\u001b[33;21mWARNING:boostHistHelpers.py: Encountered 2 values below 1e-05 in h1 and h2 in divideHists, these will be set to 1.0\u001b[0m\n", - "\u001b[33;21mWARNING:boostHistHelpers.py: Encountered 2 values below 0.01 in h1 and h2 in divideHists, these will be set to 1.0\u001b[0m\n", - "\u001b[38;21mINFO:plot_tools.py: Wrote file(s) ./results/advanced//hist_stack_x_ch0_cat0.pdf(.png)\u001b[0m\n", - "\u001b[38;21mINFO:plot_tools.py: Wrote file(s) ./results/advanced//hist_stack_x_ch0_cat0.pdf(.png)\u001b[0m\n", - "\u001b[38;21mINFO:rabbit_plot_inputdata.py: Make plot(s) with axes ['x']\u001b[0m\n", - "\u001b[33;21mWARNING:boostHistHelpers.py: Encountered 2 values below 1e-05 in h1 and h2 in divideHists, these will be set to 1.0\u001b[0m\n", - "\u001b[33;21mWARNING:boostHistHelpers.py: Encountered 2 values below 1e-05 in h1 and h2 in divideHists, these will be set to 1.0\u001b[0m\n", - "\u001b[33;21mWARNING:boostHistHelpers.py: Encountered 2 values below 0.01 in h1 and h2 in divideHists, these will be set to 1.0\u001b[0m\n", - "\u001b[38;21mINFO:plot_tools.py: Wrote file(s) ./results/advanced//hist_stack_x_ch0_cat1.pdf(.png)\u001b[0m\n", - "\u001b[38;21mINFO:plot_tools.py: Wrote file(s) ./results/advanced//hist_stack_x_ch0_cat1.pdf(.png)\u001b[0m\n" - ] - }, - { - "data": { - "text/html": [ - "\n", - "
\n", - " \n", - " \n", - "
\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "!rabbit_plot_inputdata.py ./results/advanced/input_linear.hdf5 -o ./results/advanced --legCols 1 \\\n", - "--varName slope --varLabel 'Slope' --varColor red --selectionAxes cat --channels ch0 --titlePos 0\n", - "\n", - "# this is needed to force refreshing HTML if the figures get re-generated\n", - "import time\n", - "v = time.time()\n", - "\n", - "display(HTML(\"\"\"\n", - "
\n", - " \n", - " \n", - "
\n", - "\"\"\"))" - ] - }, - { - "cell_type": "code", - "execution_count": 13, + "execution_count": 15, "id": "82223c10", "metadata": {}, "outputs": [ @@ -689,13 +797,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "2026-02-27 18:24:17.620821: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", - "2026-02-27 18:24:17.621223: I tensorflow/core/util/port.cc:153] 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", - "2026-02-27 18:24:17.673117: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", + "2026-03-15 19:37:11.770371: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", + "2026-03-15 19:37:11.770676: I tensorflow/core/util/port.cc:153] 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", + "2026-03-15 19:37:11.805472: 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", - "2026-02-27 18:24:19.015989: I tensorflow/core/util/port.cc:153] 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", - "2026-02-27 18:24:19.016352: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", - "2026-02-27 18:24:21.387088: E external/local_xla/xla/stream_executor/cuda/cuda_platform.cc:51] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n", + "2026-03-15 19:37:12.803805: I tensorflow/core/util/port.cc:153] 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", + "2026-03-15 19:37:12.804076: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", + "2026-03-15 19:37:14.453412: E external/local_xla/xla/stream_executor/cuda/cuda_platform.cc:51] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n", "ch0 {'axes': [Regular(10, 0, 1, name='x'), Regular(2, -2, 2, underflow=False, overflow=False, name='cat')], 'masked': False, 'flow': False, 'start': 0, 'stop': 20}\n", "ch0_masked {'axes': [Regular(2, -2, 2, underflow=False, overflow=False, name='cat')], 'masked': True, 'flow': False, 'start': 20, 'stop': 22}\n", "\u001b[38;21mINFO:rabbit_fit.py: Save inclusive histogram for Select\u001b[0m\n", @@ -704,24 +812,24 @@ "\u001b[38;21mINFO:rabbit_fit.py: Save processes histogram for Project ch0_masked\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: Save inclusive histogram for Ratio ch0_masked ch0_masked cat:0 cat:1\u001b[0m\n", "\u001b[38;21mINFO:fitter.py: Likelihood is purely quadratic, solving by Cholesky decomposition instead of iterative fit\u001b[0m\n", - "\u001b[38;21mINFO:rabbit_fit.py: edmval: 3.8459996837530024e-30\u001b[0m\n", + "\u001b[38;21mINFO:rabbit_fit.py: edmval: 1.1085409134056905e-29\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: Saturated chi2:\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: ndof: 18\u001b[0m\n", - "\u001b[38;21mINFO:rabbit_fit.py: 2*deltaNLL: 6.86\u001b[0m\n", + "\u001b[38;21mINFO:rabbit_fit.py: 2*deltaNLL: 6.85\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: p-value: 99.13%\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: Save inclusive histogram for Select\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: Save processes histogram for Select\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: Save inclusive histogram for Project ch0_masked\u001b[0m\n", - "WARNING:tensorflow:5 out of the last 5 calls to triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", + "WARNING:tensorflow:5 out of the last 5 calls to triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", "\u001b[38;21mINFO:rabbit_fit.py: Save processes histogram for Project ch0_masked\u001b[0m\n", - "WARNING:tensorflow:5 out of the last 5 calls to triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", + "WARNING:tensorflow:5 out of the last 5 calls to triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", "\u001b[38;21mINFO:rabbit_fit.py: Save inclusive histogram for Ratio ch0_masked ch0_masked cat:0 cat:1\u001b[0m\n", - "WARNING:tensorflow:6 out of the last 6 calls to triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", - "WARNING:tensorflow:6 out of the last 6 calls to triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", + "WARNING:tensorflow:6 out of the last 6 calls to triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", + "WARNING:tensorflow:6 out of the last 6 calls to triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", "/home/david/work/Repos/rabbit/env/lib/python3.12/site-packages/wums/ioutils.py:161: FutureWarning: .metadata was not set, returning None instead of Attribute error, boost-histogram 1.7+ will error.\n", " (axes, obj.storage_type(), obj.metadata, obj.label, obj.name, h5buf),\n", "Results written in file ./results/advanced/fitresults_linear.hdf5\n", - "\u001b[38;21mINFO:rabbit_fit.py: 11.63 seconds total time\u001b[0m\n" + "\u001b[38;21mINFO:rabbit_fit.py: 8.70 seconds total time\u001b[0m\n" ] } ], @@ -732,59 +840,6 @@ "--saveHists --saveHistsPerProcess --computeHistErrors --computeHistCov --computeVariations --computeHistImpacts" ] }, - { - "cell_type": "code", - "execution_count": 13, - "id": "b218b74d", - "metadata": { - "scrolled": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[38;21mINFO:rabbit_plot_hists.py: Make plot for Select in channel ch0_masked\u001b[0m\n", - "\u001b[38;21mINFO:plot_tools.py: Wrote file(s) ./results/advanced//postfit_cat_ch0_masked_Select.pdf(.png)\u001b[0m\n", - "\u001b[38;21mINFO:plot_tools.py: Wrote file(s) ./results/advanced//postfit_cat_ch0_masked_Select.pdf(.png)\u001b[0m\n", - "\u001b[38;21mINFO:rabbit_plot_hists_uncertainties.py: Make plot for Select in channel ch0_masked\u001b[0m\n", - "\u001b[38;21mINFO:plot_tools.py: Wrote file(s) ./results/advanced//uncertainties_cat_ch0_masked_Select.pdf(.png)\u001b[0m\n", - "\u001b[38;21mINFO:plot_tools.py: Wrote file(s) ./results/advanced//uncertainties_cat_ch0_masked_Select.pdf(.png)\u001b[0m\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6MAAAOFCAYAAACfkzQ3AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA4bBJREFUeJzs3Xd8VMX+//H3JiSUhGIQUmlSApEOgiJKUS41KEVFsYB4Ed2LBVGvXqlexYtSLGtDBUVAULGggijdgkhHegsmm5AAgUAWEkhyfn/wy34TU8gmm3OCeT0fj3042TNn5nP2RM1nZ86MzTAMQwAAAAAAmMjH6gAAAAAAAOUPySgAAAAAwHQkowAAAAAA05GMAgAAAABMRzIKAAAAADAdySgAAAAAwHQkowAAAAAA05GMAgAAAABMRzIKAAAAADAdySgAAAAAwHQkowAAAAAA05GMAgAAACjUfffdJ5vNpnXr1hX5nH79+slms+njjz/2qK/U1FQtXbpUU6ZM0RNPPKH//ve/WrRokbZu3aqsrCxPQ3dbvXq1bDabV14TJ04sdhz5MQxDzZo1c7c/c+ZMj9tYu3at+/yAgAC5XC5NnjxZNptNc+bM8Wq83kIyCgAAAKBAK1as0EcffaTevXvrhhtuKNI5J0+e1PLlyz3qJysrSy+99JIiIiLUp08fPfvss5o+fbrGjRunO+64Q23atFGzZs20ZMmS4lxGmWaz2XT33Xe7f/7kk088buOzzz5zl/v376+AgAA99thjqlmzpsaOHavjx497JVZvqmB1AAAAAADKprS0NI0aNUqS9MILLxT5vJkzZ+rChQtFrm8Yhu655x7Nnz+/0Hr79u1T//799dprr2n06NFFbl+SwsPDZbfbCzy+e/durVy5UpIUGRmpm2++ucC6HTp08Kjvorjrrrv03HPPSZJ+++03HTp0SFdddVWRzs3KytLnn3/u/vnOO++UJFWrVk3PPPOMxo4dqyeeeEIffvih1+MuEQMAAAAA8jF58mRDkjFo0KAi1T9//rzx3nvvGTabzZBkSDLmzp17yfPmzJnjri/JePjhh43169cbJ0+eNJxOp/HNN98Ybdq0cR/38fEx/vjjj5JeXi6zZ892t3/fffd5te2iuv76690xvPjii0U+7+eff3afV716dSMtLc197OzZs0ZISIghyVi7dm1phF1sTNMFAAAAkEd6erpef/11SdKDDz5YYL3t27fr9ddf14MPPqiGDRvqgQcekGEYHvX1yiuvuMuvv/66HA6HOnbsqBo1aigsLEx9+/bVhg0b1K5dO0kXRwJnzJhRjKsq23JO1V2wYEGRz8s5Kjpo0CBVrFjR/XPlypV17733SpKmTZvmhSi9h2QUAAAAQB4LFy7UsWPHFBYWpu7duxdYb/r06XrkkUf07rvvKjY21uN+nE6n/vjjD0lS/fr1C0x8K1SooBdffNH986pVqzzuywynTp3S4sWLNXPmTM2YMUPffPON4uLiinTubbfdJj8/P0nSjh07tGvXrkueYxhGrudFs6fo5nTPPfdIkpYsWaKYmJgixWIGklEAAAAAuRiGoddee03SxWcZfX19C6xbvXp1BQcH53oFBAQUua8dO3a4yx07dnQnY/lp27atu+x0OovchxmOHz+ukSNHqnbt2ho0aJAef/xxjRkzRtHR0apfv77uueceHThwoNA2atasqd69e7t/LspCRhs3btSff/4pSapdu7a6du2ap07z5s3Vpk0bZWVlyeFweHZhpYhkFAAAAEAuW7Zs0aZNmyTlP9KW06uvvqqjR4/meo0dO7bIfblcLlWvXl3Vq1dXkyZNCq2bmZnpLletWrXIfZS2gwcPql27dpo1a1a+CzdlZmbq448/VseOHd2fa0H+OlX3UlOec07Rvf3221WhQv5r1Gbfx/fff18ZGRmFtmkWklEAAAAAuXz//feSLiZ8rVq1KtW+Bg0apFOnTunUqVOaPHlyoXV//vlnd7lFixalGldRnTt3Tr1793aPTkZERMjhcOj333/X9u3b9c4776hx48aSpOTkZHXv3r3Qabv9+vVTtWrVJEkHDhzQ5s2bC6xblCm62W688UZJF7fd2bhxY9EvsBSRjAIAAADIZcWKFZIubmFS2BRds2RmZuqHH37I9TzpmDFjLIzo/7z44ovav3+/JKlr167atm2bHn74YbVv314tWrTQyJEjtXHjRvXt21eSdPr0aY0fP77A9ipXrqxBgwa5fy5sIaNt27bp4MGDkqS6devq2muvLbBu69at5e/vL0nuLWysRjIKAAAAwC0tLc09AllYclPaXn31Vd1xxx3q0aOH6tSpo3/84x86fvy4bDabpk6dqn79+lkWW7a0tDS99dZbkqQqVapozpw5CgoKylOvWrVqmjNnjq644gpJ0pw5cxQfH19guzmn6i5cuFBZWVn51ss5RXfIkCHy8Sk4vatYsaL7mdvsLxusRjIKAAAAwO33339XWlqaJLm3UrHC0qVLtWjRIv34449KSEiQdDHhW7VqlZ588knL4spp9erVOnHihCRp+PDhqlevXoF1r7zySj3yyCOSLk6v/eWXXwqs26VLF4WHh0uS4uLick1PzubJFN1s2ffz559/zvX8rVVIRgEAAAC45dyeJTQ01MJI8jp79qz69u2rF154weO9TEtDzoSyc+fOl6x/zTXXuMvr168vsJ6vr2+u5DK/VXV37dqlPXv2SJIiIyOL9Gxv9v1MT0/X8ePHL1m/tOW/1BIAAACAcikxMdFdrlmzpmVxLFu2TIZhKDExUQcPHtScOXP0wQcfyOVy6bnnntPp06f1v//9z7L4JOXaquWLL77QTz/9VGj95ORkd/nYsWOF1r377rv1yiuvSJI+/fRTvfrqq7lWys05RffOO++UzWa7ZLw57+fRo0cVHBx8yXNKE8koAAAAALejR4+6y/k9/2gmm82mkJAQhYSE6Prrr1efPn00cOBASdK0adNkt9tVt25dy+I7efKku7xo0SKPzk1NTS30eMuWLXX11Vdr586dOnbsmFauXKl//OMf7uM5p+gOGTKkSH1eeeWV7vLRo0dLfaXkS2GaLgAAAAC3nKN32VuMlBUDBgxQ7969JV1cYfeLL76wNJ6SPHd55syZQo/bbLZcCxnlnKq7b98+7dixQ5LUpk0bRUZGFqnP6tWru8vZz7paiWQUAAAAgFvO0dDTp0+Xen9Hjx5VTEyMYmJilJGRccn6OVf4zd7b0yo1atRwl7dt2ybDMIr8Wr58+SXbv+uuu9zlxYsXKz09XZI8XrgoW0pKirts9ai3RDIKAAAAIIeQkBB32YzRs/vvv18NGjRQgwYN9Mcff1yyfs7R2nPnzpVmaJdUp04ddzl7r1Fvqlu3rrp06SLpYiK5bNkySbmfF73jjjuK3F7O+5nzPluFZBQAAACAm9nJaM4RupiYmEvW3717t7ts9Wq/HTt2dJeLkkjv379fn3zyiT755JNcqxYXZujQoe7yJ598okOHDmnz5s2SpOuvv96jZ2ZzrqBLMgoAAACgTMk52pdzMaPSknMRnW+//bbQui6Xyz06KEk33HBDqcVVFDfffLMqVqwoSXr99ddzLWiUn4ceekh33nmnhg4dKj8/vyL1MXjwYPn7+0uSvv76a3300UfuY55M0ZX+7376+/vnWszIKiSjAAAAANzat2+vSpUqSZI2bdpU6v1lL0gkSR988IF+/fXXfOtlZmZq7Nix7udEGzVqpOuvv77U4ytMUFCQe+TyxIkTstvtBU4dnjVrllasWCFJ6tmzZ5FHJq+44gr169dP0sV9Vl966SVJko+Pj2677TaP4s2+n9dff32ubWKsQjIKAAAAwK1SpUruJG/9+vWl3l/z5s3dyVZWVpZuvPFGPfnkk/rxxx91+PBhbd26VfPmzVOHDh309ttvS7q40uzMmTOLPLpYmqZMmeIeZVywYIHatm2rOXPmaMuWLYqJidGqVat07733auTIkZKkgIAAvfDCCx71kXOqbvYiRjfddJNq165d5DbOnz/vnt7bvXt3j/ovLdanwwAAAADKlJtuukkrVqzQhg0blJmZKV9f31Lt77333lOnTp106NAhZWRk6JVXXtErr7ySb11fX1+98cYb6tu3b6nGVFS1a9fWkiVL1KtXL6WkpGjPnj0aPnx4vnV9fHw0f/58tWnTxqM++vTpo+rVq+daDdfTKbpbt27NlciWBYyMelFqaqq2bt2qX375RceOHZNhGFaHBAAAAHisZ8+eki7uhbl169ZS7y84OFi///67RowY4X4+Mj89evTQL7/8olGjRpV6TJ649tprtWnTJt1yyy2y2Wz51unfv7927Nih/v37e9x+pUqVdPvtt7t/9vf314ABAzxqY926dZIubkfTvn17j2MoDTaDjKlE0tLSNHXqVL3//vt59jmqUaOGHn74YT399NMl2jC4R48e+vHHH4tUd/bs2Ro2bFix+wIAAAAMw9A111yjTZs26YknnihwlLI0nDp1Sr/88osOHDig06dPKyAgQBEREercubPlq+cWxdGjR7Vq1So5nU75+fmpSZMmioqKUr169SyNq3379pbcz8KQjJaAy+VS9+7dtWHDhkLr1apVSytWrFCLFi2K1U+9evWKvKEvySgAAAC84aOPPtJ9992n0NBQxcbGlvpUXZSeXbt26eqrr5bNZtPBgwfVoEEDq0OSxDOjJfLkk0+6E9E2bdpoypQpatmypSpVqqQ//vhDzz//vH744QcdO3ZMgwcP1h9//OHxQ9ZpaWnuPYgefvhhRUdHF1q/uAkvAAAAkNPtt9+usWPHKiEhQStWrNA//vEPq0NCMc2dO1eSFB0dXWYSUYmR0WJLSUlR7dq1df78eTVs2FC7du3KM789KytL3bp109q1ayVJK1as8Hjlqp07d6p58+aSpO+++y7X0tcAAABAaXr++ec1fvx4DRw4UJ9//rnV4aAY0tLS1LBhQ8XHx2vNmjW68cYbrQ7JjQWMimn37t06f/68JGns2LH5Pmjt4+Ojxx9/3P3ztm3bPO5n//797nKTJk2KESkAAABQPE8++aQaNWqkxYsXu7cFweXlrbfeUnx8vO65554ylYhKJKPFljNJvPrqqwus17hx43zP8bQfPz8/yx96BgAAQPlSqVIl996ezz33nMXRwFNnzpzRiy++qKCgIE2bNs3qcPLgmdFiatSokaZMmSJJioqKKrCe0+l0l0NCQjzuJzsZbdiwoSpUqKDMzEzFxsYqJiZGVatWVePGjUu0Ui8AAABQmJtuukn33nuvPvroI61bt0433HCD1SGhiGbOnKnjx49r9uzZqlWrltXh5MEzo6XowoUL6tmzp1atWiVJ2r59u8cLDHXt2lVr1qxRt27d1KNHD73yyitKTk52H69QoYJuvvlmTZgwQddee+0l2wsICFBaWpp8fX1Vu3Ztzy4IAAAAwN9GUlKSMjMzValSJblcLtP7Jxn1ovj4eP30009KTk7Wvn37tGjRIvfI6PPPP1+sqQ3h4eGKj4+/ZD0fHx/NnDlTo0ePLrSer6+vsrKyPI4DAAAAwN+Tj4+PMjMzTe+XZNSLPvnkE91555253gsKCtK8efPUq1cvj9tzuVwKDAx0/9ymTRtNnTpV11xzjTIyMrRjxw69/fbbWrhwobvOt99+qz59+hTYpr+/vy5cuOBxLH9VtWpVVatWTYmJiQoODi5xe9m82V5Zjc0wDMXHxyssLEw2m63MxFUa7ZXVtrgH1rdVlu9Bebmf3ANr2/L25y+Vzessjfa4B9a25c32uAclb+/06dM6c+ZMidvz8/NzL85qKgNes2DBAkNSnldkZKTx3Xffedzetm3bDF9fX8PX19eIjo42zpw5k2+96dOnu/tq2rSpkZmZWWCbYWFhhiQjJCTESElJKfYrLS3NMAzDaNasmcfXVRhvtldWY0tJSTEkGSkpKV5pr6xeZ1lui3tgfVtl+R6Ul/vJPbC2LW9//oZRNq+zNNrjHljbljfb4x6UvL20tLQS/U0fEhJiSDLCwsK8Gl9RmbaAUUpKihITE5WcnKwrrrhCwcHBqlGjhlndm2LIkCEaMmSITp8+rcOHD2vx4sWaMWOG9u7dq+joaH322We69dZbi9xey5YtlZGRccl6jzzyiObNm6dNmzZpz5492rp1q9q2bVvoOT4+Pix8BAAAAFzGKlasqIoVKxb7fB8fazdX8XoympWVpc2bN2vVqlVatWqVdu7cqaSkpHyHff38/BQcHKyoqCh169ZN3bp1U7t27Sz/UEqqWrVqatWqlVq1aqUePXqoS5cuyszM1FNPPaXo6Gj5+vp6tT9fX18NGDBAmzZtkiT9/vvvl0xGAQAAAMBKXklGDcPQN998o/fff1+rV6/ONW/ZKOSR1PPnzys2NlZxcXFavny5pIvPInbt2lUPPPCA+vbt67X541bp3LmzevbsqaVLl2r//v2Ki4srlf1CmzZt6i6fOHHC6+0DAAAAgDeVKBk9ceKE3n//fb311lv6888/JeVNPmvWrKmaNWsqKChINWvWVPXq1XX69GmdOHFCJ06cUHJyso4fP+6uf/r0aS1ZskRLlixR3bp19dBDD+n+++/XlVdeWZJQve7f//634uLi1KBBAz3//POF1m3WrJmWLl0q6eKKu6WRjOaczlu9enWvtw8AAAAA3lSsZPTs2bOaNGmSXnvtNZ0/f96dgNasWVPXXnutOnTooI4dO+qaa67RFVdcccn2Tp06pd9//10bNmzQhg0b9Ouvv+r48eM6cuSInnnmGU2YMEGPPPKIxo8fr4CAgOKE7HXbt2/X0qVLFRIScslkNHt7F0kePSc7dOhQbdu2TcHBwfrhhx8Knb68e/dud7lJkyZF7gMAAAAArODxw5lffvmlmjVrpldeeUXp6ekKCAjQPffco2XLluno0aNasmSJxo0bp3/84x9FSkSliwlajx499J///EdfffWVjh49qh9++EHDhg1TYGCg0tPT9corrygqKkpffvmlpyGXiuyE7+jRo9qzZ0+B9VJTU7Vu3TpJF6+zUaNGRe6jdevW2rlzp1auXKkff/yxwHrnzp3T3LlzJUmBgYHq3LlzkfsoKbvdXmbbK8uxeVNZvs6y2pa3cQ+sV5avsyzH5k1l+TrLcmzeVJavsyzH5k1l9TrL8v30trL6uZWne+ART5be7du3r+Hj42PYbDbjmmuuMRYuXGicPXu2NFb5dTt37pyxaNEio2PHjobNZjN8fHyMvn37lmqfRTF//nz3dipdu3bNd9uVtLQ047777nPXe+SRRzzq488//zR8fHwMSUZ4eLjx559/5qlz9uxZY8SIEe4+nn322ULbzN7axarlm1E6y5jDM9wD63EPrMc9sBafv/W4B9bjHljP6tzAZhiFrDD0Fz4+PmrVqpUmT56s6Ohob+bERfLNN99o3Lhx2r59uzIzM03vP6cLFy6oTZs22rlzpyQpPDxcI0aMUOPGjeXr66t9+/Zp7ty5OnjwoCSpUaNG+u233xQUFORuY86cORo+fLgkqUuXLlq9enWefmbOnKnHH39ckhQQEKAHH3xQrVu3VoUKFbR7924tWLBABw4ckCS1a9dO69atU+XKlQuMOzw83L25cM7pwzDP6dOnVb16daWkpLC9jkW4B9bjHliPe2AtPn/rcQ+sxz2wntW5gUfPjH722WcaMGCAZSvc9uvXT3379tUXX3xhSf85+fn56euvv1bfvn21Z88eOZ1OTZ48Od+61113nT755JNciWhRPfroo3I6nZo+fbpcLpemT5+eb72ePXtq/vz5hSaiAAAAAFBWeJSMDhw4sLTiKDKbzVYm4pCkq666Sps2bdJHH32k77//XocOHdLhw4dVsWJFRUZGqkmTJrrlllvUr1+/Yu8tarPZ9PLLL+uBBx7Qyy+/rK1bt+rIkSM6ffq0QkJC1KlTJ917773q1avXZb8NDgAAAIDywyv7jJZnVapU0ahRozRq1CiPzx02bJiGDRtWpLqRkZF67733PO4DAAAAAMqiUk1GT5w4oS+++ELr16/Xnj17dPLkSaWlpemKK65Q7dq11b59e91444266aabGNUDAAAAgHKkVJLR5ORkPfnkk5o3b54uXLiQ53hMTIwk6fvvv9cLL7ygunXr6plnntHIkSNLIxwAAAAAQBnj9WR027Zt6tmzp44dOybDMGSz2XSpBXuPHDmihx56SAsXLtSXX36pqlWrejss/EVSUpKioqLyPWa32/8+excBAAAA5ZjD4ZDD4cj3WFJSksnR5ObVZDQ+Pl49evTQ8ePH3dNuDcNQr1691LZtWzVs2FAhISFyOp06ePCgfv/9d61cudJdb/Xq1erVq5dWr14tPz8/b4aG/y/7vgQHB2vXrl0WR1M+VaxYURMmTFDFihWtDqXc4h5Yj3tgPe6Btfj8rcc9sB73wByFDTRFRETI6XRa9sikR/uMXso999yjefPmuUdDo6Oj9fzzz6tly5YFnvP777/rueee0w8//HAxIJtNkydP1n/+8x9vhYUcsn/hwsPDFRcXZ3U4AAAAACxidW7g462GTp06pYULF7qz6lGjRumrr74qNBGVpGuuuUbLli1zryprGIamTZuW77OmAAAAAIC/B68lo6tWrVJGRoYkqU6dOpo5c2aRz7XZbHI4HAoPD5ckpaSkaNWqVd4KDQAAAABQxngtGY2NjXWX77jjDvn7+3t0fuXKlXXnnXe6fz548KC3QgMAAAAAlDFeS0bT0tLc5caNGxerjSZNmrjLp0+fLnFMAAAAAICyyWvJaPYUW6n4ieSZM2fc5dDQ0BLHBAAAAAAom7yWjN5www3u8vLly4vVRvaKutLFhY0AAAAAAH9PXktG69atq379+skwDP3www9atmyZR+cvX75cy5Ytk81m03XXXadmzZp5KzQAAAAAQBnjtWRUkt59912FhITIMAwNHjxYH330kbKysgo9xzAMzZ8/X4MHD5YkVapUSe+++643wwIAAAAAlDFeTUZDQkK0fv16tWvXTmfPntXw4cPVuHFjzZgxQ6tXr1ZMTIzOnz+vuLg4rVu3Tg6HQ82aNdM999yj1NRUBQUFacmSJYqKivJmWAAAADBBQkKCJk6cqISEBKtDAXAZsBmGYRS1sq+vr0eNZzdts9mKVCcqKkp16tSRzWbTt99+61FfKJqIiAg5nU6Fh4crLi7O6nAAAMDfyObNm9WuXTtt2rRJbdu2tTocAJdgdW5QwZPKhmHIZrPpUvlrdvL51yQ053n51dm1a5d27drlSUgAAAAAgMuQR8mopEsmot6oU9hIKrwjMTGxwOnQdrtddrvd5IgAAAAAeJvD4ZDD4cj3WGJiosnR5OZRMnqpxYhw+QgODmYUGgAAIB9z5szR8OHDC61TpUoVhYaGqm3btho8eLAGDhyoChU8HucBSl1hA03Z03St4tUFjAAAAIDy4OzZszp48KA+/fRT3XHHHWrfvr02b95sdVjAZYWvbwAAAIACjBkzRj169Mj1XmZmpk6cOKEdO3bos88+U0xMjLZt26auXbvqu+++U+fOnb0eR0xMjBo0aCBJmj17toYNG+b1PgCzlWoymp6erm+//Va//vqrtm3bpuPHjyslJUVVqlRRUFCQmjdvrk6dOumWW25RYGBgaYYCAAAAeKxFixbq1atXgcdfeOEFvfjii5o0aZLOnDmjgQMHavfu3apZs6aJUQKXp1KZppuWlqZx48YpLCxMt912m6ZPn64VK1Zo27ZtiomJ0a5du/TTTz/p7bff1r333qvw8HA99dRTOnv2bGmEg8vE6tWrZbPZvPKqUqWKGjRooF69eum1117TsWPHrL48t5iYmALjfuWVV0qlz4kTJxbY5/Hjx0ulzzlz5hTY58aNG0ulTwAAzObv76+JEydq4sSJkqRjx47pmWeesTYo4DLh9WT0yJEjatWqlV588UWdPHlShmEU+pKkM2fOaNq0aWrdurViYmK8HRLKoXPnzikmJkbff/+9Hn30UTVs2FAvv/xykVZ6BgAA8NQzzzyjyMhISdLcuXN18uRJiyMCyj6vJqOnTp1St27dtH///lzv9+rVS//+97/1zjvv6Ntvv9Xs2bP13HPPqX///rnqHThwQN27d+dfXnjdmTNn9NRTT+nee+9VZmam1eEAAIC/GX9/f40cOVLSxVmCn332WZ46586d06xZs9S9e3c1btxYlStXVs2aNdWiRQsNGTJEq1atyvPFefbMseznRSVp+PDh7tlGf5WRkaFFixapd+/eatq0qQIDA1W9enVFRUXplltu0VdffcXfQigzvPrM6H/+8x/3FETDMDRo0CBNnDhRV199dYHn7NmzR+PGjdPnn38um82mI0eO6LnnnitwLxygJD7++GM1a9ZMzz77rNWhoABdu3bVmjVr8rx/9dVX648//rAgIgAAiqZ379564oknJEm//vqr/vnPf7qP/fHHH+rZs6fi4+NznZOWlqbk5GT98ccfWrhwoe677z7Nnj0730TzUpxOp3r06KHdu3fnOXb69Gnt3r1bX3/9tW6++WZ9++238vf397gPwJu8NjKampqqDz74wP0vzpgxY/Tpp58WmohKUtOmTfXpp5/q8ccfd0/d/eCDD5Samuqt0IBcJkyYoD///NPqMAAA+NtJTEzM9c/ypl69eu5yzm1eDMPQ0KFD3Ylop06d9Nprr2nx4sX6+OOPNXbsWPeCRx9++KHmzZvnPrdly5ZaunSp5syZ435vzJgxWrp0qZYuXZqr/4ceesidiDZv3lwvv/yyPvvsMy1YsEDjx49XRESEJOnHH3/U1KlTvXvxQDF4bWR01apVSk9Pd08jeOmllzw6/6WXXtKXX36pw4cP6/z581q5cmWeabwov5o2bar//Oc/hdY5e/asYmJitHfvXn355ZfKysrKt15GRobeeOMN/iMMAIAXvf/+++5pqv369dO7776rESNGWByVubJ3jEhOTs6VkMfHx2v79u2SpNtvv12ffPJJrpHPoUOH6p///KdatGih8+fPa9WqVbr77rslSUFBQerVq1eudVXyW+E3IyNDy5cvlyRdf/31WrlyZZ6RT7vdrpYtWyoxMVGrVq3Sc88959XrBzzltWT0yJEj7vLtt9+uChU8a9rPz0+33367/ve//0kSCxkhl+DgYPd/lIti69atGjhwoA4fPpzv8W+++YZkFAAAL4mLi9PIkSPdXwRnZWXpwQcfVM+ePd2jceVFnTp1lJycnGsNlF27dql69eqSpCeeeCLfKbhNmjRR69attWHDBh08eNDjfg8ePKhKlSqpUqVKeuyxx/Kdglu7dm116dJFixYtKlYfgLd5bZruuXPn3OWGDRsWq42rrrrKXU5LSytxTCi/WrduXejo/O7du5WcnGxiROXPsGHDClxFu3379laHBwDwov379+eZkZSZmakDBw5YFJF1shPNnAlnjx49dOrUKZ06dUodOnTI9zzDMEr0mFpkZKS7j8GDBxdY78yZM8XuA/A2r42M1q1b110+depUsdrIORoaHBxcwohQ3g0ePFhVqlQpcP/ahIQEBQUFmRwVAAB/P40bN5aPj0+uhNTX11eNGjWyMCprxMbGSpKuuOKKS9ZNT0/XoUOHtG7dOn311VfatWuX1+PJyMjQkSNH9Msvv+T7nClgJa8lo9dff718fHxkGIa+//5790pinvj111/d5RtuuMFboaGc8vHxUUREhPbt25fv8ZSUlELPNwxDv/32m7766itt2bJFe/fu1alTp3TmzBlVqlRJ1apVU3h4uFq2bKkbbrhBAwYMcE/B8Ya9e/dq7ty5WrZsmZxOp5KTkxUWFqb69eurX79+uvvuu736pU1mZqaWLVum+fPna/PmzYqPj1dWVpbq1aunqKgo3X333erdu7f8/PyK1N7EiRM1adKkfI8dO3ZMV155pddiBwBYKyIiQu+++657qq6Pj4/eeeedcjdF9+zZszpx4oSki1Ni/2rbtm36/PPP9fPPP+vAgQOKjY31+h7oBw4c0Keffqo1a9bowIEDiomJYSsXlFleS0YjIiJ0yy236IsvvtCKFSv0zTffqF+/fkU+/5dfftGaNWtks9nUvXv3XFN24X2JiYmKiorK95jdbpfdbjc5otJR2MhnYYncqlWrNHr0aO3cuTPf4y6XSy6XSwkJCdq4caM++OADPfjgg3rkkUc0btw4VatWrdgxZ2Rk6IUXXtDkyZPzTHmKiYlRTEyMVq9erX//+9969tln9dxzzxU5QSzIn3/+qbvvvlvr1q3Lc2znzp3auXOnPv30U9WrV09z5sxR165dS9TfXxVl+fqdO3fmqjdhwgRNnDjRq3EAAIpvxIgRCgsLU58+ffTNN9+od+/eVodkupyr9ed8JCUjI0MPP/ywZs2alat+vXr1FBkZqSZNmujGG2/UK6+8og0bNhSrb8MwNHHiRL344ovKyMhwvx8WFubu47rrrtOXX36pL7/8slh94PLkcDgK3DbT6pWvvbrPqMPh0C+//KLExETdfvvteuONN3TvvfdecjGjb775xv18WUBAgN566y1vhoV8BAcHl8pUkLLm2LFj+b5vs9lUp06dfI/997//1bhx4zzu6/z583rllVf03XffacWKFQoJCfG4DcMw9M9//jPX8u0FycjI0OTJk/X9999r2bJlqlGjhsf9SRf3JOvdu7cSEhIuWffIkSPq3r27XnjhBT3zzDPF6g8A8PeV/UVveX3catmyZe7ydddd5y6PHz/enYjedNNNevzxx3X99dfn+X93QQlDUcyaNUuTJ0+WJLVr105PPfWUunbtmmeEdtWqVcXuA5enwgaaIiIi5HQ6TY7o/3g1GQ0JCdGKFSs0YMAA7d+/X//85z81adIk/etf/1K7du1Uv359hYeH68SJE4qJidGePXvkcDi0detWGYah6tWr67vvviuXzxfA+zIyMgpMsK666qp8V5l75513ipWI5rRr1y4NGjRI69atk4+PZ2uEvf/++9q7d69H5/z222+Kjo7W999/rypVqnh0riTdcccdRUpEsxmGoWeffVaBgYEaPXq0x/0BAPB3dOHCBb3zzjuSpMqVK7sXEcrKytIbb7whSbr22mu1bNmyAgdqjh8/Xuz+X3/9dUkXR1vXrFmjgIAAr/cBeJtXk9Hu3btLkvuX3zAMxcbG6t///neB52TPk7fZbDp9+rQ6d+58yX5sNluu6QdAfhYtWlTg4kX//Oc/87yXmJiop556yit9//LLL/r888912223eXSep4lotp9++knPPvusZs6c6fG5xe3z0UcfVadOndSuXbtinQ8AwN/JlClTtGfPHknSfffd515H4vjx4+4VbDt16lRgInr48OECHw8qiuytWtq1a1dgInrmzBmtWbOm2H0A3ubVZHT16tX5LmedLecD2gXV8/ZD3CifNm/eXOBGzlWqVMk3GX3//fd1+vTpfM/x8/PTwIED1apVK9WqVUtnz57VwYMHtXDhwgLn2i9atMjjZDSnwMBA3X777Wrbtq2ysrK0fv16ff7550pPT8+3/uuvv67hw4erVatWxe4zMjJSt912m+rVq6fExER9/fXXBT67YhiGHn74Yf36668ejwDn11a2rl275vs/yquvvlp//PFHifoBAMDbzp8/rylTprjXMQgODtYLL7zgPl6zZk336v6//vqrMjMz5evrm6uNuLi4XGutuFyuQvvM73i9evW0Z88ebd68WWfPns0zW+rkyZO69dZb3dvHnD171r3YFGAVryajUtGTSZJOeCIxMVEff/xxoXXOnTunmJgY7d27V19++WW+K8fZbDbNmTMn34WNPv3003zbrVatmjZs2KDIyMg8xyZPnqxOnTrl+/xtcRcgkKQOHTro888/z7UK4ejRozV+/Hjdcsst+Y5mZmVl6YUXXtCiRYuK1ee4ceM0fvz4XN/YPvvss5o9e7ZGjhyZ7+e5YcMGLVu2TH369ClWnwAAlHU7duzI9SyodPH/uSdOnNCOHTv06aefurcnrFq1qr744otcf2f4+vqqW7du+vbbb/Xrr7/q5ptv1l133aXatWsrPj5ev/32mxYsWKDz588rICBALpdLGzdu1H//+1/16NFDHTt2lKRc/3/+5JNP1LJlS/n4+Oj666+XdPFZ1D179igmJkadO3fWiBEjFB4eruPHj2vLli366KOPlJqa6u7j2LFjGjNmjPr37++e3QiYzkC5Eh4ebkgywsPDrQ4lj1WrVhmSSu1ls9mMWbNm5dv3+fPnDV9f33zPe/755wuN+6WXXsr3vIoVK+Zb//Dhw4XGGRwcbJw4caLA/o4cOWIEBATke66fn5+RlJSU55wJEyYU2ufIkSMLvcbp06cXeO6AAQPyPaewPo8dO1ZgX126dMn3nKuvvrrQGAEA1tu0aZMhydi0aZPVoZTI7NmzPf47o1WrVgVed1xcnBESElLguf7+/sb//vc/Y968ebnev+WWW9xtZGZmGmFhYXnOzXb69GkjKiqq0L+DHn/8cWPNmjV54kb5ZXVu4PWRUaAs6tq1q6ZNm6a2bdvmezwpKSnXEuw5XWpp+lOnTuX7fkHTaS9lzJgxhW5JU7duXY0cOVIzZszIc+zChQv64osvNHLkyCL35+fnV+CU5mwPPfSQpk6dqqNHj+Y5tmTJEqWmpiowMLDIfQIAcLmrXLmyQkJC1K5dOw0ePFiDBg0q8HnQ8PBw7d69W6+88oqWLVumgwcP6sKFC6pfv7569+4tu92u+vXryzAMHTp0SK+++qp8fHzUrFkzdxs+Pj76+uuvNWbMGG3evFnSxW1bslWtWlUbN26Uw+HQZ599poMHDyo1NVV16tTRzTffrIceekgtWrSQJL333nuaMGGCzp49W6LHe4ASsyQFhmWs/vajMKU1MlqvXj1j48aNpRLzgQMHjKuuuqrAvvNT2Mho1apVjZSUlEv2Gxsba1SoUCHfNoYNG5anfmGjlPnVz09BI8CSjNWrV3vUJyOjAPD39HcZGQXKC6tzA4+eWN6yZYsn1UtNWYkDl4cjR46offv2GjRokOLi4ordTkpKin7++We98847+te//qUuXbqoRYsWOnTokNdibdWqlapVq3bJehEREWrSpEm+x9avX+9Rn0VZwVpSoc+TeNonAAAA4NE03Xbt2mngwIGaNGmSrr766tKKqUB//PGHJkyYUODiNEBhFi9erC1btmj79u1FmlJ6+PBhff/99/r++++1adMmxcbGlnqMDRo08KhufgsnebpxcVH7LKyelZslAwAA4PLk0cjo1VdfrcWLF6tly5YaOnSoe756adu0aZPuvPNOtWrVSl988YUliTCs1aVLFxmGUeArKytLCQkJWrdunQYMGFBgO4cPH9asWbMKPG4Yhj755BO1aNFCV111lR566CF9+eWXpiSiklS/fv0i1y0oOTxz5owuXLjg9T5r1qxZYBKfnJxc5P4AAAAAycNkdMuWLZo6daqqVKmiTz75RNdcc42aNWumF154watTFSXp0KFDev7559W0aVN16NBBCxcuVOXKlTV16lTTkmBcPmw2m0JCQtS5c2ctXrxYw4cPL7Duxo0b833/woULuuuuu3TnnXcWeT9LPz8/jxLIS8nIyChy3b/uUZbT2bNnTe3zUvuhAQDKh9DQUE2YMEGhoaFWhwLgMuBRMlqhQgWNHTtWu3fv1i233CLDMLR3716NHz9ejRs3Vvv27fXYY49pwYIFOnjwoEeBHDx4UPPnz9djjz2m9u3bq3Hjxpo4caL27dsnwzB06623avfu3Ro7dmyBK5UB2caNG1fgsd27d+f7/hNPPKFPPvmk0HavuOIKde/eXWPGjNHXX3+t5ORkjR8/vkSx5nTkyJEi1y3oCyBfX98iPXfqaZ8nT55USkpKvsdq1qxZ5P4AAH9foaGhmjhxIskogCIpVlYXERGhxYsXa9u2bXrjjTc0f/58nTt3Tps3b9aWLVv0+uuvS7r4h3ujRo1Us2ZNBQUFqWbNmqpatarOnDmjEydOKDk5WSdOnNCBAwd08uRJd/uGYUi6uGT20KFD9fDDD6t169Ylv1q4JSYmKioqKt9jdrtddrvd5Ii8q169eqpYsWK+26vs2bNHWVlZ8vH5v+9iDhw4IIfDkW9bgYGBeuyxx3T77bfr6quvznWeJCUkJHgtbk+S0cOHD+f7/pVXXimbzeb1PgvqL7tPAAAAlD0Oh6PAv3MTExNNjia3Eg0xtmrVSrNmzdLLL7+sOXPm6IMPPsg1vTE5OVm///77JdvJTj6ztWjRQvfff7+GDRum6tWrlyREFCA4ODjfxW/+Lnx8fBQcHKw///wzz7Fz587p/PnzqlSpkvu9xYsXKysrK9+2vv76a3Xr1q3Avg4cOFDygP+/bdu2KSUl5ZK/9wkJCdq7d2++xyIjIz3qc+3atXrggQcuWW/16tUFHvO0TwAAAJijsIGmiIgISxei9GiabkFq1Kihxx57TNu3b1dCQoIWLFigkSNHqnHjxoUuOpP9aty4sUaOHKkFCxYoISFB27Zt06OPPkoiihIpbHTwrwv8FPQccnBwcKGJaEZGhn7++efiBZiP1NRUvfPOO5esN3369AIXKerSpYtHfS5YsOCSW96kp6dr+vTpBR73tE8AAADA6w9fBgcH64477tAdd9wh6eIf/UlJSUpMTFRiYqJOnjypK664QsHBwQoODlbt2rXl5+fn7TCAQv110Z6CVoNNT0+XYRgFJrYffPCB9u3b59XYZs6cqZEjR6pGjRr5Ho+Li9Pbb79d4Pk333yzR/1lZGToxRdf1Jtvvllgnbffflvx8fH5HmvQoIFHW9IUlycrBAMAAKDsK/WVgPz8/BQeHq7w8PDS7spyqampOnDggM6ePavGjRt7/OxeUZw8eVKHDh3SmTNnFBYWpkaNGuV5hhGX9tdktHLlyvnWO3XqlObOnat777031/uGYWj+/PkaO3as12NLSEhQv3799Omnn+ZZAGLfvn269dZblZqamu+5LVq00A033OBxn2+99ZYiIiL09NNP51ox1zAMffTRR3riiScKPNdut3v99zw/x44dy/OsLwAAAC5fLEtbQmlpaZo6daref//9PM8n1qhRQw8//LCefvppj1Y3zc++ffv0xBNPaOnSpcrMzHS/X6dOHT366KN67LHHCt3qozyqWLFigcf+OspWp06dAusOGzZMn332mW688UZVq1ZNe/fu1YYNG/TTTz95Lda/+vnnn9W0aVMNGTJErVu3VlZWltavX6/PPvtMaWlpBZ43duzYYieG//nPfzR//nwNHjxYderUUVJSkr7++mutX7++wHOqV69epOdNPVGlSpV83z958qReffVVPfDAA7LZbMrMzGQqPwAAwGXMq8loURZe+TtxuVzq3r27NmzYkO/xU6dO6cUXX9SsWbO0YsUKtWjRolj9rFu3Tr169cp378jY2FiNHTtWa9eu1eLFi0lIcyjsd/GvyWjPnj0LXGXMMAwtWbJES5Ys8Wp8l3L69Gm9++67Ra7fo0cP3X333SXqc+fOndq5c2eR67/55pte/3e+cePGWrp0ab7HxowZozFjxkiSJkyYoIkTJ3q1bwAAAJinxPPdMjIyNHz4cEVERGjYsGFeCOny8eSTT7oT0TZt2mjZsmWKj49XcnKy1q5dqx49eki6OL1w8ODBxXrm7fjx4xowYIDOnj0rHx8fTZ48WbGxsUpNTdXKlSvVpk0bSRdXfJ08ebL3Lu5voLDR6L+ugNurVy81bdq0WP00adKkwGPe3PalMBEREZo9e7apU1iHDx+uO++80+vtsjIvAABA+VDiv1wrVKigX375RfHx8dqyZYs3YrospKSk6P3335ckNWzYUOvXr1fPnj0VGhqqK664QjfccIOWLVumG2+8UdLFabbr1q3zuJ+pU6fqxIkTkqTXXntN48aNU0REhAICAtStWzetXr1a9evXlyRNmzZNx44d884F/g3UqlWrwGMrVqzI9bOfn5/mzJlT4BTRgowfP77QhX88ncr7yCOP6KqrrvLonIYNG2rdunXFfi57+vTpHk/t/ec//6lZs2aVyrOigwYN8vg+AAAA4PLjlWGUrl27Sro4ZfTkyZO5jjmdTn322Wd64YUXNHbsWI0cOVJjx47Viy++qG+++cadaF1udu/erfPnz0u6+Jyev79/njo+Pj56/PHH3T9v27bNoz4yMzP1wQcfSJJq166tUaNG5alTrVo19yI6LpdLCxcu9KiPv7Nbb721wGNTp07NMy23Y8eOWrFiRZGSwRYtWmjlypWaNGmS6tWrV2A9u92umJiYooasOnXqaO3aterfv/8l6/r4+Mhut2vjxo3uLySK45577tGSJUtUt27dS9YNCQnRvHnz9M4775TalPDg4GAtWLCgwNWEAQAA8PfglWdGu3btqlmzZkmStm7dqi5dumju3LmaOXOmtm/fXui5NptNffv21dixY4u1CqhV9u/f7y5fffXVBdZr3LhxvucUxfr1693JenR0dIF//Pfv31//+te/JEnffvutu1zeRUdHq2rVqjpz5kyeY5mZmfr000/zbAB87bXXaufOnVq4cKGWL1+u/fv3a9++fcrKylJ4eLg6duyo2267TT179lSFChf/9WnUqJE6duyo3377LU8/x44d06uvvqoZM2YUOe7w8HB99dVXWrdunRYtWqQ1a9YoISFBKSkpql27turVq6e+ffvqjjvuUMOGDT38VPLXt29f7dq1S4sWLdKXX36pP/74Q4mJiTIMQ+Hh4WrevLkGDx6s/v37KzAw0Ct9FqZ///46fPiwZs6cqZUrVyo2NlZOp5PtXQAAAP5GbIZhGCVtJC4uTnXr1pXNZtOjjz6qjRs36ueff5Z0cfGXSwbx/6f62e12zZgx47JYhOfXX3/VmjVrJF2cslizZs186y1fvlw9e/aUJE2aNEnjx48vch8ffPCBRowYIUn6/PPPNXDgwALrtmrVStu3b1ft2rWVmJhYYL2IiAg5nU6Fh4crLi6uyLEAAAAA+HuxOjfwyshoRESEqlatqtTUVL366quSciehderU0VVXXaW6deuqVq1aOnr0qGJiYrRv3z4dP37cXdfhcCg1NdU9NbUsu+6663TdddcVWufChQt66aWX3D8PGDDAoz5yLn5T2FRQ6eJnvH37diUlJenUqVNMcQQAAABQpnlta5dmzZrl2eKkT58+Gjt2rPuZ0r/KyMjQggUL9L///U+7du2SYRj68MMP1bt3b912223eCs008fHx+umnn5ScnKx9+/Zp0aJFcjqdkqTnn3/e461djh496i4HBQUVWjfnyGxCQsIlk1HDMHT69GmP4smpYsWKhe7jCQAAAKB0paenKz09vdjne2GSbIl4LRlt2rSpOxm12Wx67733NHz48MI7r1BB99xzj+666y7dd999mj9/vgzD0Lhx4y7LZHTt2rV5troICgrSvHnz1KtXL4/byzkyWtA04PyOu1yuS7YdHx9fov0h2eMRAAAAsNaUKVM0adIkq8MoNq9tSpi9mqfNZtN99913yUQ0J19fX7333nvuVUz379+vXbt2eSs0SyUnJ+uxxx7T0qVLPT4358hl5cqVC62bc5Ty3Llzl2w7LCxMKSkpxX4988wzHl8PAABAWbd69WrZbLZLvurUqaObb75Zjz32WJn6u3Xbtm3q27evgoODFRgYqJkzZ1od0mUp5+/B6tWrvdp2TEyMu+05c+aUqK1nnnmmRH/Th4WFeeeiislryWjO/S3z24LkUipVqpQrgd24caNX4jLTkCFDZBiGUlJStHXrVo0fP15Vq1bV3r17FR0drS+//NKj9nLuk3nq1KlC6+Y8fqnEVbr4pUG1atWK/WKKLgAAKM/i4uK0YsUKvfrqq2rRooWmTp1qdUiKi4tTly5d9N133ykpKUkul8v9N2LOBKg09gmHNSpWrFiiv+mt/l3w2jTdI0eOuMuFbXVSmObNm7vLha0IW9ZVq1ZNrVq1UqtWrdSjRw916dJFmZmZeuqppwrdouWvQkND3eXk5ORcyelfJScnu8tmbL0BAADwdzd06FDdfffded4/e/as9u7dq8WLF2vjxo3KysrS008/rfDwcA0dOtSCSC+aN2+eUlJSJEl33HGHBgwYoHbt2hXp3K5du2rNmjXq0qWL10cCgYJ4LRnNyspylzMzM0vcxuWwvUtRdO7cWT179tTSpUu1f/9+xcXFXXJl3GwhISHucs5kMz8nT550l8PDw4sXLAAAANwaNWpU6LofTz31lMaNG6cpU6ZIujhl8vbbb5efn59ZIeaSvad9UFCQFixYYPmoF3ApXpummzNx2rx5c7Ha2LJli7scHBxc4phK07///W/dfffdGjdu3CXrNmvWzF2Oj48vch85R0a3bdtWYL2srCzt2LFDklS3bl1VrVq1yH0AAACgeHx9fTV58mT3jgmxsbE6cOCAZfFkZGRIkqpWrZonEa1fv74Mw3C/gLLAa8lozj03i/Og9JkzZ3LtL3qpPTyttn37ds2bN0/vvffeJetmb+8iyaP9P9u3b+8uL1mypMB6mzZtcm8D06lTpyK3DwAAgJKpUKGCevbs6f559+7dFkYDXF68loxGR0e7pyQsWbLEoyWGz507pyFDhig+Pl42m02tWrVyr6xbVjVp0kTSxb1A9+zZU2C91NRUrVu3TtLFRLRRo0ZF7iMyMlKRkZGSpBUrVuSaipvT4sWL3eUBAwYUuX0AAACUXPauEpJ08ODBPMdsNpveeOMNSdLy5ct1/fXXq3Llyrr11lvztHX+/Hm988476tGjh0JCQlSxYkU1aNBAPXv21Lx58/LdU7Jr166y2Wz68MMPJV1cyyV7oaKcW/FlxzJs2LA8761Zs0aStGbNmmKt9DpnzhzZbDZdeeWVki4urvnMM88oMjJSlStX1pVXXqlevXpp7dq17nOSk5P15JNPqkmTJqpcubJCQ0PVtWtXLVmy5JKjtytWrNDdd9+t+vXrq1KlSqpevbqaN2+uRx99VPv27btkvDExMXrsscfUtGlTValSRTVq1NA111yjl19+uUg7U0gXZycuWLBAt9xyi8LCwlSxYkXVqVNHXbp00dtvv60zZ84UqZ1yzfCisWPHGjabzfDx8TF8fHyMFi1aGB9//LGRkZGRb/1Tp04ZU6ZMMUJCQgwfHx/3uUuXLvVmWKVi/vz5hiRDktG1a1fjzJkzeeqkpaUZ9913n7veI4884nE/77zzjvv8oUOHGpmZmbmOb9682ahUqZIhyWjQoIGRnp5eaHvh4eGGJCM8PNzjWAAAAP7uVq1a5f7ba8KECUU6Z+zYse5z5s+fn+tYvXr1DEnG66+/brz11luGzWZz173lllty1d27d6/RpEkT9/H8XpGRkcbevXtzndelS5cC6+e8huxY7rvvvjzv5feaPXt2kT+32bNnG5KMmjVrGgcPHjSuuuqqfNv09fU1vvjiC2P37t3uv0vze7388sv59nPu3DnjzjvvLPQz8vX1NV555RUjKysr3zY++ugjo2LFigWe36xZs1x/669atSpPGwkJCUbHjh0LjSM0NNRYv359nnMPHz5crM+4NFidG3htASNJmjx5sn777Tf99NNPstls2rlzp+69916NGDFCderUUb169RQUFKT4+Hj9+eefio+Pd89bz57XPnbs2EIfFC8rBg8erBdeeEE7d+7U6tWr1bRpU40YMUKNGzeWr6+v9u3bp7lz57q/HWvUqJEmTJiQq405c+a4t7MpaOWy4cOH6/3339eGDRs0b948xcbGatiwYapWrZo2bNigN998U2lpabLZbHr11Vfl7+9f6tcOAACAizIyMvT999+7f85+fvSvVq5cqa+++kr+/v6655571LRpU1177bXu40ePHtUNN9ygpKQkSdKgQYN04403Kjw8XAcOHNCXX36p9evXa+/evbr22mv1xx9/uPeInDp1qpKTkzVt2jT9+OOPql27tnuU9FKz8j788EOdO3dOTz31lHbs2JFrm5qCrqUw58+fV//+/XX48GHdf//96tq1q9LS0vTRRx/pp59+UmZmpkaMGKEqVarI6XTq1ltvVd++feXn56fPP//c/Wja+PHjdf/99ysoKMjdtmEYuv/++7VgwQJJ0hVXXKG7775b11xzjVJTU/Xrr79q3rx5yszM1NixYxUYGKgHH3wwV3zfffed7r33XvfPN998s3r06KE6depo06ZNWrBggXbv3q2HHnqowGt0uVzq3r27e0p2jx491LNnT9WvX19HjhzR999/r+XLlyshIUFdunTRb7/9platWnn8WZYL3s5uT58+bdx1112GzWZzj3TmHC3Nfv31uL+/vzFlyhRvh1OqDh48aDRt2rTQb0QkGdddd51x5MiRPOdnf4MkyejSpUuB/SQkJBht2rQpsH0/Pz/jrbfeKlLMVn/7AQAArJOVlWWkpqZetq+CRrq8yZOR0czMTOM///mPu37Tpk2NCxcu5KqTc+Tx6quvzjOqmW3QoEGGJKNKlSrGTz/9lOd4VlaW8dprr7nbGjhwYJ462TPy6tWrl28f+Y2MZsseXS3sb9LC5Py71sfHx1i2bFmu45mZmcb111+f62/Yv/79mpWVZQwZMsR9fM2aNbmOL126NNdnefDgwTxxrFixwqhevbohyQgICDBOnDjhPpaenp5rNHbGjBl5fqfi4+ON9u3b54rzryOjTzzxhPs6P//883w/j8WLFxs+Pj6GJKNdu3a5ZjcyMvp/vJ6MZvvxxx+NW265xfDz83Mnnvm9atSoYTz88MPGnj17SiuUUuVyuYy33nrLuPXWW42WLVsaVatWNa688krj+uuvN4YPH258+eWXBU5TLmoyahgX/+V5/fXXjeuuu84ICgoy/P39jfr16xsPPPCAsX379iLHa/UvHAAAsE5qauolv0Qvy6/U1NRS/4xyJqNDhw41li5dmue1ePFi46WXXjI6dOiQK76/Jk+GkTsZ/eGHH/Lt88CBA+7pu7NmzSo0vnvuuceQZNhsNiM5OTnXsbKSjNrt9nzrvP/+++46vXv3zvfLhRUrVrjrfPjhh7mO9enTx33sl19+KTCW//3vf+5606ZNc7+/cOFC9/u33357gefv2bMn13TqnMloSkqKERAQYEgy/vOf/xTYhmEYxrhx49xtbNu2zf0+yej/8eo03Zxuuukm3XTTTUpLS9PmzZu1d+9enTp1SmfPnlW1atUUFBSkVq1aKSoqSj4+XltHyXRVqlTRqFGjNGrUKI/PHTZsWK4HyAvj7++vf/3rX/rXv/7lcT8AAADw3Lx58zRv3rxL1qtSpYpmzJihG2+8scA6DRo00E033ZTvse+++06GYahChQq67bbbCu1r0KBBmjt3rgzD0Lp169S/f/9Lxme2gmKqV6+eu3zrrbfmuw9qzjpZWVnu8oULF9yPtN1www2F7rzx0EMPafLkyXK5XFq5cqXGjBkjSfrhhx/cdcaPH1/g+ZGRkRo4cKA+//zzPMfWrFkjl8slSRo6dGiBbUgX79Xzzz8vSVq9erVatmxZaP3yqNSS0WyVKlVSp06d2HIEAADAYlWqVFFqaqrVYRRblSpVrA7BrVKlSmrRooXatGmjJ5988pLPZmavWpuf33//XdLF50892QYwe2u/sqZhw4b5vu/r6+tRnZwOHz6ss2fPSpLatGlTaP9Vq1ZV48aNtXXrVm3bts39/o4dOyRJAQEBioqKKrSNjh075puMZt8rSZdsI6eyeq+sVurJKAAAAMoGm82mgIAAq8O4bEyYMCHX1iglERISUuCx48ePF6vNlJSU4oZTqgpKKD2tk1NycrK73KBBg0vWr1+/vrZu3ZrrvOzyVVddVeAXA9kK2mby73avrEYyWk4lJiYW+G2O3W6X3W43OSIAAIC/r8J2PMjIyJAkBQYG6tNPPy1ym57sX1/eVKhwMc3J/mxzvlcUBSXLOdv7/PPPizxaHx4eXuS+vc3hcMjhcOR7LDEx0eRociMZLaeCg4O1a9cuq8MAAAAo97K3L0lNTdX111+vqlWrWhxR2XPFFVe4y4cPH75k/eztFWvWrOl+L/tzPnToUK6tJQs7/69ybjXTuHHjYm1/Y7bCBpoiIiLkdDpNjuj/eJSMFjRc7W02m63AXwAAAADg76RFixZauHChJGnXrl3q2LFjgXVjYmK0Z88eSRf3qa9cubIpMVrtqquuUuXKlXXu3Dlt3bq10Lqpqanat2+fJKl58+bu91u3bq2ff/5ZLpdLO3fuzHXsrzZv3pzv+zmTz127dhWajCYmJmrLli2SpA4dOuRKZHGRR8loTEzMJedXS5JhGHney++8/OoVVBcAAAD4O+rRo4eee+45SdLUqVPzXTgn27Bhw7RmzRrVq1dPhw4dMitEy/n5+alLly5atmyZ1q5dq99++63ApN3hcLhXvM25gnGPHj3c01UnT56sRYsW5Xv+oUOH3F8O/FW3bt3k4+OjrKwsvfzyy7rtttsK3Bnk6aef1ocffqgqVaqwgFEBPN5Txbi4N2mhL+liQpn9Kui8v9Zr0qSJ2rVrp7Zt23rxEgEAAICy65prrnEnVosXL9Zbb72V76DNzJkztWbNGknSfffdVyrbI2YncWVRzqmm//znPxUTE5Onzg8//KAXX3xRklS5cmWNGDHCfaxv376qW7euJOnTTz/VjBkz8nzOx44d0z333KPMzMx8YwgLC3Nvv7Np0yY999xzuZ4jzfb5559r7ty5kqTBgwcz9boAHo2MFnV+9l133aVjx47JMAwFBATovvvuU5s2bVS/fn2Fh4crKSlJhw8f1s6dO/X+++/r5MmT7oR0wYIFPIwNAACAcsNms+m9995Thw4ddO7cOT388MP6/PPP1atXLzVs2FBJSUlavHixli9fLklq166dnnrqKa/GkL24z9atW/XZZ5+pQYMGCg0NVVhYmFf7KYm+ffvqtttu06effqodO3aoXbt2uu+++9S2bVudOXNGv/zyi+bPn+/en3TGjBm68sor3edXqFBB7777rnr16iVJGjNmjL799lv94x//UL169bRlyxbNnz9fsbGxat26tbZt25bvlwIzZszQqlWrlJSUpClTpuiHH37QwIED1aRJE506dUpLly7VF198oaysLNWvX19Tp0415wO6DHmUjObchDY/iYmJGjp0qI4dOyZJGjdunB577LFcDxxLUtOm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3nvvPRw9ehT5+fnGipGIiIiIiIiqGIOS0Xv37iEsLAwfffQR2rZti5iYGKxevRr9+/dHvXr18PLLL2PHjh1ISUkxVrxERERERERUBRg8tEuHDh0QGBiICxcu4M6dO/jqq6/Qr18/ZGZmYvv27Rg3bhzq1auH//3vf/jqq68QExNjhLCJiIiIiIioMivXOKMNGjRAQEAADh48iEePHmHHjh0YO3YsHB0dERoainfffRdNmzZFu3btsHDhQpw7d06uuImIiIiIiKgSK1cyqsrJyQmjRo3Ctm3bkJiYiKNHj+Ltt99G48aNcfnyZXz88cfo2rUrPD09MW3aNBw4cAA5OTlybZ6IiIiIiIgqEdmSUVVWVlbo3bs3vvjiC9y8eROXL1/GkiVL0KVLF8THx2P9+vUYPHgwXFxcMHLkSISEhODRo0fGCIWIiIiIiIgqIKMko8U99dRT+OCDD3D69Gncv38fGzZswMCBA6FUKrFr1y689tprqF+/Pnr27ImVK1ciKirKFGERERERERGRmZgkGVVVv359vP7669i3bx8ePXqEXbt2YcKECXBxccGff/6JOXPmwNfXFy1atDB1aERERERERGQiVubceI0aNTB06FAMHToUSqUSp0+fxt69e7Fnzx5cv37dnKERERERERGREZk1GVVlYWGBZ555Bs888ww++eQT3Lx509whVWkJCQnw9fXVOC8gIAABAQEmjoiIiIiIiOSmUCigUCg0zktISDBxNOoqTDJaXLNmzcwdQpXm5uaGiIgIc4dBRERERERGpK2iycvLC3FxcSaO6D8mv2eUiIiIiIiIiMkoERERERERmRyTUSIiIiIiIjI5JqNERERERERkckxGiYiIiIiIyOSYjBIREREREZHJMRklIiIiIiIik2MySkRERERERCbHZJSIiIiIiIhMjskoERERERERmRyTUSIiIiIiIjI5JqNERERERERkclbmDoDMIyEhAb6+vhrnBQQEICAgwMQRERERERGR3BQKBRQKhcZ5CQkJJo5GHZPRasrNzQ0RERHmDoOIiIiIiIxIW0WTl5cX4uLiTBzRf9hMl4iIiIiIiEzOoJrRJk2aGCsONYIg4NatWybZlqmkp6fj5s2bSEpKgpubG3x8fGBtbW1QGQ8fPkR0dDSys7PRoEEDeHt7QxAEI0VMRERERERkPAYlozExMXolP6Io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P6N9+/Ya56enp2Po0KE4evRoqa9BEAS8//77CAoKgqWlZanLFZGSUQsLxBYU6FyeiIiIiIiqJnMno9VyaJci9evXx+nTp7FhwwZs374dUVFRSE9Ph4eHB/r164e3334bbdq0KXP5Q4YMQVRUFJYsWYLTp08jMjISdnZ2aNasGcaMGYPXX39daw+9jo6OCA0NxZEjR6BQKHDjxg3cuXMHoiiiQYMG8Pf3x/Tp0/HUU0+VOUYiIiIiIqqmzFwvWa1rRqsj1owSEREREREAeAkC4gCz1YxW2w6MiIiIiIiIyHyqdTPd6ixBqYSvr6/GeQEBAQgICDBxREREREREJDeFQlFqR6cJJo6lODbTrWbYmy4REREREQFspktERERERETVEJNRIiIiIiIiMjkmo0RERERERGRyTEaJiIiIiIjI5JiMEhERERERkckxGSUiIiIiIiKTYzJKRERERERUHVmYNx1kMkpEREREREQmx2SUiIiIiIiITI7JaHVl5ip5IiIiIiKq3piREBERERERVUdKpVk3b2XWrZPZJCiV8PX11TgvICAAAQEBJo6IiIiIiIjkplAooFAoNM5LMHEsxQmiKIpmjoFMyMvLC3FxcfC0sEBsQYG5wyEiIiIiIjPxEgTEAfD09ERsbKzJt89mutWVmavkiYiIiIioemMySkRERERERCbHZJSIiIiIiIhMjskoERERERERmRyTUSIiIiIiIjI5JqNERERERERkckxGiYiIiIiIyOSYjBIREREREVVHgmDWzTMZraZEcwdQjeXk5CAwMBA5OTnmDqXa4jEwPx4D8+MxMC/uf/PjMTA/HgPzE82cjAqiKDIvqUY8PT1x//59eACI46E3i9TUVNSqVQspKSmoWbOmucOplngMzI/HwPx4DMyL+9/8eAzMj8fA/DwsLRGvVMLDwwNxcXEm3z5rRqspc/8KQkRERERE1RuT0eqKySgRERERUfVm5paSVmbdOpnNQ6USvr6+GucFBAQgICDAxBEREREREZHcFAoFFAqFxnkPmYySOdSzsEBERIS5wyAiIiIiIiPSVtHkKQi4b+J4VLGZbnXFzouIiIiIiMiMmIxWUwKTUSIiIiIiMiMmo0RERERERGRyTEapXEq7GboilFeRY5NTRX6dFbUsufEYmF9Ffp0VOTY5VeTXWZFjk1NFfp0VOTY5VdTXWZGPp9wq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dWBjYwNvb2+8/vrrCAsLw9SpU8u1DV4H6oy9z3nO62bsY8Bz3vx4HZgXr4HSmSoPMMU1IIjiv3edEhEREREREZkIa0aJiIiIiIjI5JiMEhERERERkckxGSUiIiIiIiKTYzJKREREREREJsdklIiIiIiIiEyOySgRERERERGZHJNRIiIiIiIiMjkmo0RERERERGRyTEaJiIiIiIjI5JiMEhERERERkckxGSUiIiIiIiKTYzJKREREREREJsdklIiIiIiIiEyOySgREREREVEV5e3tDUEQIAgCYmJizB2OGiajREREREREZHJMRomIiIiIiMjkmIwSERERERGRyTEZJSIiIiIiIpOzMncAREREREREVU1BQQFOnTqFyMhIPH78GA0aNEDz5s3RsmVLODk56VXGo0ePcO3aNcTGxuLevXuws7ODp6cnPDw80LFjR9ja2hr5VRiXIIqiaO4giIiIiIiIqoK8vDwEBwcjKCgIDx8+LDHfzs4Or732GpYtW4ZatWppLOPatWuYM2cODhw4gIKCAo3LuLq64s0338Q777wDFxcXtXlbtmzBpEmTtMb5xx9/oHfv3vq9KCNhM10iIiIiIiIZpKamol+/fpg5c6bGRBQAsrOzsWbNGnTq1Anx8fEl5v/111/o0qUL9u3bV2oiCgCJiYn4+OOP0a1bNzx58kS212BKbKZLRERERERUTkqlEiNGjMCJEyek57p06YKhQ4fC1dUV0dHR+P3333HhwgUAwK1btzBmzBgcP34cgiAAAHJycvDKK68gIyNDKqNXr17o06cP3N3dkZmZidu3b+PHH39EQkICAODGjRsICgrCihUrpHWcnJzQtGlTAEBMTIyU1DZs2BDW1tYAAHt7eyPuDf2wmS4REREREVE5rV27FtOnT5ceKxQKTJs2TUo0gcL7SFesWIF58+ZJz+3ZswdDhgwBAPz6668YNGgQAEAQBOzYsQOjRo0qsa3c3FyMGDECv/76KwDAz88PZ86c0RiXt7c37ty5AwCIjo6Gt7d3+V6ojNhMl4iIiIiIqBwKCgrwySefSI/feecdTJ8+XS0RBQBLS0vMmTMHw4YNk57bvn27NH327FlpeuTIkRoTUQCwsbFRqwm9ePFiOV+BebCZLhERERERUTkcOXIEd+/eBVCYcM6cObPUZQVBwJQpU7B7924A6glo69atERAQAAAYMWKE1m22bNlSms7NzS1r6GbFZJSIiIiIiKgcVO8THTx4MBo2bKh1+T59+uCLL74AAFhYWEAURQiCgFGjRpVaG1pcUdPbyozJKBERERERUTmcO3dOmn7qqad0Lm9vb4933323TNt69OgRTp06hUWLFpVp/YqEySgREREREVE5qA7j0qBBA1nKTE9Pxx9//IHw8HDcuHFD+ittyJjKiMkoERERERFROaSkpEjTHh4e5SorNjYW8+fPxw8//KDxXlALCwu0bNkSgwcPxqefflqubZkbk1EiIiIiIqJyUB2zMzk5uczlXLlyBb169cKTJ08AAHZ2dujfvz86deqEdu3aoXnz5mjatClsbW0BgMkoERERERFRdVanTh1puqwdCymVSowaNUpKRCdOnIiVK1fCxcVFlhgrIiajRERERERE5fDUU09JPepev35dr3UCAwOlWtS5c+fiypUriIyMBAA0bdoUGzduhKWlZanr37x5s3xBVwAW5g6AiIiIiIioMuvevbs0/csvv+jsZCgmJgaLFi3C6tWrsXHjRri4uCAiIkKa7+vrqzURBYC9e/eWL+gKgMkoERERERFROQwZMgROTk4AgMzMTHz++edal9+4caM03b17d1hbW8PC4r/U7PLly8jPzy91/dDQUHzwwQdqz+Xl5emMU6lU6lzGlJiMEhERERERlYOTkxOmTZsmPV6+fDk2btwIURRLLLt3714EBQVJj4cOHQoAaN++vfRcTEwMXn75Zdy+fVt6LicnB+fOncPEiRMxYMAA5OTkqJUbEhKiM9m8deuWQa/L2ARR0x4iIiIiIiIivWVlZaFTp064du2a9Fzbtm3Ro0cPtGnTBo8ePcLJkydx6NAhaX6bNm1w7tw52NjYICMjAz4+PoiPj1crt1atWnBwcEB8fLxactujRw9kZWUhLCxMeq5OnTrYtm0bBgwYID3XqVMnnD9/HgDg4OCAzp07IysrC19++SW6du0q+34wBDswIiIiIiIiKid7e3scOnQI/fr1Q1RUFAAgPDwc4eHhGpdv2rQp9u/fDxsbGwCFieK2bdvQr18/taQzJSVFbRxTAPD398euXbtw9OhRDB8+XHr+yZMnJWpMR44cKSWjGRkZOH78OIDC5Nnc2EyXiIiIiIhIBl5eXjh79izmzp0LR0dHjcvY29tjxowZCAsLQ8OGDdXm+fv74+jRo+jUqVOp5QcHB+Pw4cOoWbMmhg0bhq1bt8LHxwdOTk7o1q0bPD091daZM2cOVqxYgVatWsHe3h516tRB27Zt4ezsLMtrLg820yUiIiIiIpJZTk4Ojh8/jlu3buHJkydwcnJC8+bN0b17d6mzo9IolUqEh4fjxo0biI6ORs2aNdGqVSv06NFDZy+7lQmTUSIiIiIiIjI5NtMlIiIiIiIik2MySkRERERERCbHZJSIiIiIiIhMjskoERERERERmRyTUSIiIiIiIjI5JqNERERERERkckxGiYiIiIiIyOSYjBIREREREZHJMRklIiIiIiIik2MySkRERERERCbHZJSIiIiIiIhMjskoERERERERmRyTUSIiIiIiIjI5JqNERERERERkckxGiYiIiIiIyOT+H+ILXKtS8qCrAAAAAElFTkSuQmCC", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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7+vnzp2rpUuXSpIaN26siRMn6sILL1TNmjV16NAhLV68WD///LMSExM1fvx4rVmzxnztokWLlJmZqQceeEDbt29Xp06dzDtluutmK0OHDtWRI0fUpUsXXX/99WrTpo22bt2qZcuWac+ePUpJSdHgwYO1ZcsWtWnT5rz9JScna8CAAYqPj1eNGjX0wQcf6LrrrivSJjs7W4MHD9amTZskSRdffLFGjBihdu3aaceOHfrggw+0c+dODR061C3v+c9OnTqlYcOG6ciRI7rlllt0xRVXqGbNmvrqq6/Ms1fvvvuuhg0bphtuuKHIa1977TXdd999kiQ/Pz+NGTNGPXv2VGhoqOLi4vT2228rJSVFS5YskSS99957pdYxZcoUrVu3Tu3atdOwYcPUunVr9ejRo1i7m2++WZs2bdLIkSM1ePBg+fv7a9myZfr0008lSdOmTdO8efMUHx+vfv36adSoUapXr56+/PJLvf3225KkefPmyel0qkOHDpaMIWAHLge5Pn36mGvL/fLLLy4XBABAheSckZ6I8HYVlffgYSmwltu6j46OVnR0tI4ePWo+17dvX7Vo0aJcr//iiy8k5f/H7U8//aRmzZoV2X/XXXdp8ODBWrNmjb799ltlZ2crMDDQPI4kPfnkk5KksLAwXX311a6+pTIdPHhQEyZM0KuvvmrWcfPNN+uhhx7SbbfdpmXLlunMmTO69957S7w8srDjx49r4MCB2rlzp/z9/bVkyRINHz68WLsXX3zRDHHjxo3TggULFBQUJEm66aabdP/99+uGG27QqlWrLH63JVu8eLGCg4P1xRdfaNCgQebzt9xyi/r166dbb71VkrRmzZoiQe748eO69957JUl16tTR0qVLddVVVxV5/T333KPrrrtO27dv15IlSzRhwgT95S9/KbGOpUuX6q677tLTTz+tmjVrllrv//73P73++uuaOHGi+dxtt92mcePGafHixcrOzlZ8fLxmzJihxx9/XH5++d8MGjt2rCIjI/Xkk0/KMAz99NNPBDlUKy5/R659+/aaOHGiDMPQxo0b9b///c+KugAAQBVw8OBB1a1bV+PGjSsW4iSpRo0aGjFihCQpKytLhw8f9nSJRbRo0ULz5883Q1yB2rVr65133lF4eLgk6fPPP9ehQ4dK7efEiRMaOHCgtm/fLn9/f7333nsaOXJksXa5ubl6+eWXJUmNGjXS/PnzzRBXoE6dOlq4cKECAgJcfXvlYhiGpk6dWiTEFRg3bpw5Bnv27Cmyb+HChTpzJv/s9owZM4qEuAItWrTQ66+/bj6eO3duqXU0b95czz33XJkhTpKuvfbaIiFOyv8u4V//+lfzcadOnfTYY4+ZIa7AHXfcYW4fPHiwzOMAvsaSu1bOnTtXiYmJ+vzzzzVy5Eh99NFH6t69uxVdAwBQtoCQ/LNadhUQ4u0KylR4/bnSlHSjE2+57777Sg1MwcHBeuCBB3TvvffKMAxt2LDBPDtV2MmTJ3XVVVdp69atkqSHHnqo2CWIBX755Rf9/vvvkvIvJQwJKfnPMyIiQjfddFOl1tutjKlTp5b4vMPhUOvWrXXkyJFiNzwpuCw2JCTEvGFKSXr06KG+fftqw4YN+uqrr5Sbm1viWsC33357ucLrny9VLdC8eXNze8iQIapRo/jH1sJtuOEJqhtLglxAQIA++eQTPfLII3r88cfVq1cvDRgwQFdccYUiIyMVHh6uWrXKd9lInz59rCgJAFBdOBxuvTQRxRmGoaNHjyouLk6rV6/WwoULvV2S6bLLLitzf69evcztnTt3FtufmZmpv/zlL9q8ebP53LvvvqsZM2YoODi4WPuCSyolqXPnzmUeu3Pnzh4JcpGRkapfv36p+0sKXZK0fft2SfmX455vrcHOnTtrw4YNSktL08GDB9W6detibcp7+W5Jr/1zneVpA1Q3lgS5wn+JHA6H8vLytHbt2jJvT1sSh8NRZMFSAADgfSdPntT777+vtWvXKj4+Xvv371dmZqa3yypRq1atytwfHR1tbpe0FEFycrKSk5NVt25dXX755VqxYoX279+vOXPm6NFHHy3W/tixY+Z24bNDJTnffqtU9jgF49GyZcvzti0c0lJSUkoMWhdccEG5jlueMEZgA4qzJMj9+dR8ac8BAAB7+fjjj3X77bcXCT316tXTxRdfrDZt2qhz585KTU3VrFmzvFdkIX/+DtWfFb787s/fZStQt25drV69WtHR0Wrfvr2Sk5P11FNPaezYsWrXrl2Rtjk5OeWuzVPfkfPEcQpf5ljaf8L/+XuKAKxlSZArfOdKAADgG3bs2KFRo0bp3LlzCg8P14wZMzRkyBBzQfEC7lzcu6IOHDigLl26lLq/8FJJjRo1Kra/Zs2aWr16tbp16yZJev755zVu3DhlZ2fL6XRq9erVRd57gwYNzO1Dhw7pkksuKfXYVf1mHPXr19fRo0f166+/nrft/v37ze3CYwDAcywJcl999ZUV3QAAgCpk/vz55tmWNWvWKCYmpsR2x48f92RZZfrpp5/KDHLfffeduX3ppZcW29+kSRMzxEnSmDFj9MYbb2j9+vVau3at3nvvPY0ZM8bcf9FFF5nb27Zt07Bhw0o99o4dO8r9PryhU6dOOnr0qPbt26f09HTVrl271LYF3yEMDg4u16WYAKzn8vIDAADANxWcdQkLCys1xBmGoRUrVniyrDI988wzpV7ql5GRoWeeeUZS/nIEV1xxxXn7czgcmjdvnnm54tSpU3Xq1Clzf9euXc2F1WNjY0v97uDx48f17rvvVuSteNyVV14pSTpz5oxiY2NLbffDDz+Y/4nft29fj10yCqAogpwNJSUlKSYmpsSfsn7xAgBQEQU3zUhJSdGuXbuK7c/JydG0adOKXJmTkZFRan9l7bPK/v37NXny5GLfXUtLS9PYsWOVlJQkKX/9sfPdmbFA+/btNX36dEn5/wY/9NBD5r7AwEBNmjTJ3DdlyhRlZ2cXef2ZM2d0xx13mGu0VVUTJkww13ybM2eO1q1bV6zNgQMHiqz59ve//91j9QHeEhsbW+pn74LfKd5gyaWVZUlPT1daWppSU1OLfUEYldOkSZMSb5kMAICVrrzySr366qvm9pQpU9ShQwdlZmZq9+7d+s9//qPffvtNtWrVMkPatGnTNGHCBF1//fXmzS4KboyxZcsWLV26VC1btlR4eLgiIiIsrTcqKkonT57UggULtGXLFl1//fWKjo7W1q1b9d///tf8flyrVq00e/bsCvX94IMPavHixTpw4IBeeeUVjR8/3rwE88EHH9TSpUu1Z88evfXWW9q6dauGDx+u9u3bKz4+Xu+//75++eUXDRo0SF9++aUklTtEelLjxo313HPPyel06vTp07rqqqt0yy236LLLLlOtWrUUFxenRYsWmWckb775Zl199dXeLRrwAKfTKafTWeK+qKgoJSYmeriifJYHuYyMDM2bN0/r1q3Td999Z/5iL7y0QG5uriZPnqzbbrtNvXv3troEAABggZEjR+qWW27R22+/rSNHjujhhx8u1mbgwIF6/fXX1aVLF508eVIrV67UypUrdfLkSTPIde/eXWvXrtW5c+fMhbUXLlyo8ePHW1pv8+bNNX/+fN100036+eef9fPPPxdrExMTo88//7zCQSo4OFhz587VNddcI8MwNGnSJG3cuFH+/v6qVauWVq1apUGDBmn37t3avHlzkXXopPxFrxcuXGjeGKS8t+b3tMmTJystLU0PPvig8vLytGjRIi1atKhYu9GjR+vNN9/kZneAF1l6aeXHH3+s9u3ba8aMGVq1apXS09NlGIb5U9iCBQvUp08ftW/fXt98842VZQAAAAs4HA4tWrRIH374oQYMGKCmTZsqMDBQkZGRuvHGG/XZZ59p1apVatGihVasWKGLL75YtWrVUpcuXYrcnv4f//iHJk2apAsuuECBgYGKiooqc8FqV1xzzTXaunWrpkyZohYtWigwMFBhYWG6/PLLNXfuXG3evLnS66wNHjxYo0aNkpS/EPi8efPMfc2bN9fmzZv1zDPPqEuXLqpVq5ZCQ0PVs2dPLVq0SB999FGRNefCw8Nde6Nu4nA4NH36dP3yyy9yOp1q3769atWqpaCgIDVr1kxjxozRmjVrtHjxYvMyTADe4TAsWvBt2bJluvHGG0sMbVL+L4bc3FxJ+WfkAgIC5HA4ZBiG/P399d5775m/HFGyglO3kZGRSkhI8HY5AACgAr788kvzUsSMjAyFhIR4uSIArvLm53NLzsjt2LFD48aNU15engzD0AUXXKAFCxZoz549atWqVbH2/v7+mjNnjho3biwpP9hNmDDBq18WBAAAqIw777xTo0aN0tNPP11mu7fffluS1LRpU0IcAJdZEuSeeeYZnT17Vg6HQ127dtXWrVt1++23Kzo6utRrp6dPn65du3ape/fukvLv6DRr1iwrygEAAPCY9PR0ffjhh3r00Ud16NChEtt8++23Wrx4sSRxBRIAS7gc5I4dO6YlS5ZIyj/T9uabb6pRo0blem29evX06aefKjg4WIZhaMGCBUXWZgEAAKjqpkyZooCAAGVkZOjyyy/XK6+8op07d+q3337T+vXrNX36dPXr10+GYSg0NFTTpk3zdskAfIDLQW7r1q3KycmRw+HQNddco06dOlXo9Y0aNdLo0aMlSXl5eYqPj3e1JAAAUMU9+uijqlGjhss/jz76qLffinr37q2FCxcqKChICQkJmjJlii688EI1b95cAwYM0NNPP63c3FzVqlVLH374obnswoYNGywZ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Ha377ruvQq+/7bbb1KVLFxmGoX379unAgQOulgQAAAAAPs3lILd//35z+8orr1SNGhW/EeaQIUPM7fj4eFdLAgAAAACf5nKQO3jwoLndqVOnSvURGRlpbu/Zs8fVkgAAAADAp7kc5EJCQsztkydPVqqPxMREc9vf39/VkgAAAADAp7kc5KKiosztHTt2VKqPrVu3mtsRERGulgQAAAAAPs3lINevXz/VqFFDhmHo448/1m+//Vah12/atEkrVqwwH/fp08fVkqqUpKQkzZ49W0OHDlW7du0UEhKiCy+8UDfeeKMWLFig3Nxcb5cIAAAAwGZcDnJ169Y1F/M+e/asJk+erLNnz5brtUePHtW4ceN07tw5ORwO9e/fX02aNHG1pCrjiy++ULt27TRr1ix99tln2rNnjzIzM7Vz507997//1R133KHu3btr06ZN3i4VAAAAgI1YsiD4008/reDgYEnSypUr1aNHD61fv145OTkltv/999/1+OOPq23bttq9e7ckyeFw6KmnnrKinCph586dGjlypE6fPi1JGjp0qF588UV98MEHeuyxxxQTEyMp/4zkgAEDzHEAAAAAgPNxGIZhWNHRypUrNWzYMJ07d858Ljg4WOfOnVN2drYcDoc6dOigAwcOKCsrS1L+YuIFYmNjNXnyZCtKqRJuuukmffDBB5KkuXPnasqUKXI4HOb+7Oxs3XvvvZo3b54kadCgQVq5cmWZfUZFRSkxMVGRkZFKSEhwX/EAAAAAypSdna2GDRsqLS3NK5/PLQtykvT999/r1ltvLbKod+HwIhUNb5JUr149vfrqq7rxxhutKsPrzp49qzp16ignJ0ddunTRzz//XGwcpPw//K5du5o3iUlISCiyFMOfEeQAAACAqsHbQc6SSysL9OrVSzt27NAbb7yhXr16mTdBKfxToF27dnr88ce1d+9enwpxUv5dOAsuKx01alSJIU6SAgMDiyyGvnnzZo/UBwAAAMDealjdYc2aNTVhwgRNmDBBmZmZ2rZtm44dO6bTp08rJCREYWFh6tixoxo0aGD1oauMpKQkc7t58+Zltg0PDze3MzMz3VYTAAAAAN9heZArLDg4WD169HDnIaqkjh07auHChZKkvn37ltn2p59+Mrfbtm3r1roAAAAA+Aa3BrnqqlWrVmrVqtV5223btk1LliyRlP/9tw4dOpSr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2GLP553LVUZGhhcqyucwDMPw2tFRIVFRUUpMTFREeLgSDx/2djkAAABAtZV+NFkRbaOVlpamyMhIJSQkePT4XFoJAAAAADZDkAMAAAAAmyHIAQAAAIDNEOQAAAAAwGYIcgAAAABgMwQ5G+JGo56TlZWlWbNmKSsry9ulVBuMuecx5p7HmHseY+55jLnnMebVC8sP2EhkZKQOHz6sC5o00ZGjR71dTrWQmpqqunXr6vTp06pTp463y6kWGHPPY8w9jzH3PMbc8xhzz2PMPavw8gMRERFKTEz06PE5IwcAAAAANkOQAwAAAACbqeHtAlAJhpR35oy3q6gWCsY578wZ5dXgr4snMOaex5h7HmPueYy55zHmnseYe1beWe9+F5E/YRvKTUnR7i5dvV1GtZCemytJ2ntFH9X29/dyNdUDY+55jLnnMeaex5h7HmPueYy5Z2XVrOvV43NpJQAAAADYDGfkPOTkyZM6cOCAeVeb6Oho+flVLkenhki33Mf/snhCbqaku6X/d5e//IMZc09gzD2PMfe8gjFvuPpjNarf2NvlVAupqWlSs5aKXLdKdeqEerucaoEx9zzG3LPSE45IPXt57fgEOTfbs2eP7rvvPn3xxRfK/b/T3ZLUtGlT3X333brnnnvkX8FT34ZDygp0WF0qSpCbmz/OWYEO+TPmHsGYex5j7nkFY37typGEZw/Jzcz/N3jgimsYcw9hzD2PMfeshuneXeKBIOdG33zzja6++mqdKeHGJL///rumTZumr7/+WsuWLatQmKsfVE8/jvnRpdrmvzJfd06+06U+rO6rKtaUmpqq8MnhWnfDOpfXY6mK768q1sSYe74vxtyzfWWey9QVi66wpB5JOrHmhBoMbFCl+qqKNVmpKr6/qliTlari+6uKNVmpKr6/qliTN7EguJscP35c7du314kTJ+Tn56dZs2ZpwoQJql+/vjZu3Kj77rtPmzdvliT985//1OzZs8/bZ8GC4E0aN9bRpCSX6ouJidHOnTtd6sPqvqpiTVYurFkV319VrIkx93xfjLln+zIMQ0kpSQpvGK4jx4+4POZdL+qquG1xLvVhdV9VsabU1FTG3MN9Meae74sx92xfxw/sV8duvb22IDhn5Nzk6aef1okTJyRJL730kpxOp7mvf//++uqrr3TxxRfr4MGDeu655/S3v/1NjRo18la5AAAP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", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "!rabbit_plot_hists.py results/advanced/fitresults_linear.hdf5 -m Select -o ./results/advanced \\\n", - " --legCols 1 --rrange 0.91 1.09 --ratioToData --yscale 1.2 --unfoldedXsec \\\n", - "--varName slope --varLabel 'Slope' --varColor red\n", - "\n", - "!rabbit_plot_hists_uncertainties.py results/advanced/fitresults.hdf5 -m Select -o ./results/advanced \\\n", - "--yscale 2 --titlePos 0\n", - "\n", - "display(Image(filename='results/advanced/postfit_cat_ch0_masked_Select.png'))\n", - "display(Image(filename='results/advanced/uncertainties_cat_ch0_masked_Select.png'))" - ] - }, { "cell_type": "markdown", "id": "296d1ecf", @@ -795,7 +850,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 17, "id": "7282ea08", "metadata": { "scrolled": false @@ -827,10 +882,10 @@ " " ], "text/plain": [ - "" + "" ] }, - "execution_count": 14, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -863,7 +918,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 18, "id": "8a2c11c5", "metadata": {}, "outputs": [ @@ -914,7 +969,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 19, "id": "88f32607", "metadata": {}, "outputs": [ @@ -922,28 +977,26 @@ "name": "stdout", "output_type": "stream", "text": [ - "2026-02-27 18:24:43.474660: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", - "2026-02-27 18:24:43.475005: I tensorflow/core/util/port.cc:153] 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", - "2026-02-27 18:24:43.526523: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", + "2026-03-15 19:38:25.751113: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", + "2026-03-15 19:38:25.751448: I tensorflow/core/util/port.cc:153] 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", + "2026-03-15 19:38:25.787805: 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", - "2026-02-27 18:24:44.891990: I tensorflow/core/util/port.cc:153] 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", - "2026-02-27 18:24:44.892382: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", - "2026-02-27 18:24:47.282371: E external/local_xla/xla/stream_executor/cuda/cuda_platform.cc:51] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n", + "2026-03-15 19:38:26.728311: I tensorflow/core/util/port.cc:153] 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", + "2026-03-15 19:38:26.728601: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", + "2026-03-15 19:38:28.334016: E external/local_xla/xla/stream_executor/cuda/cuda_platform.cc:51] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n", "ch0 {'axes': [Regular(10, 0, 1, name='x'), Regular(2, -2, 2, underflow=False, overflow=False, name='cat')], 'masked': False, 'flow': False, 'start': 0, 'stop': 20}\n", "ch0_masked {'axes': [Regular(2, -2, 2, underflow=False, overflow=False, name='cat')], 'masked': True, 'flow': False, 'start': 20, 'stop': 22}\n", "\u001b[38;21mINFO:rabbit_fit.py: Save inclusive histogram for Custom ch0_masked ch0_masked cat:0 cat:1\u001b[0m\n", - "/home/david/work/Repos/rabbit/env/lib/python3.12/site-packages/scipy/optimize/_trustregion.py:250: RuntimeWarning: invalid value encountered in multiply\n", - " p, hits_boundary = m.solve(trust_radius)\n", - "\u001b[38;21mINFO:rabbit_fit.py: edmval: 1.616268164126988e-18\u001b[0m\n", + "\u001b[38;21mINFO:rabbit_fit.py: edmval: 5.825574184501759e-21\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: Saturated chi2:\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: ndof: 18\u001b[0m\n", - "\u001b[38;21mINFO:rabbit_fit.py: 2*deltaNLL: 7.1\u001b[0m\n", + "\u001b[38;21mINFO:rabbit_fit.py: 2*deltaNLL: 7.09\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: p-value: 98.93%\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: Save inclusive histogram for Custom ch0_masked ch0_masked cat:0 cat:1\u001b[0m\n", "/home/david/work/Repos/rabbit/env/lib/python3.12/site-packages/wums/ioutils.py:161: FutureWarning: .metadata was not set, returning None instead of Attribute error, boost-histogram 1.7+ will error.\n", " (axes, obj.storage_type(), obj.metadata, obj.label, obj.name, h5buf),\n", "Results written in file ./results/advanced/fitresults_custom_mapping.hdf5\n", - "\u001b[38;21mINFO:rabbit_fit.py: 14.31 seconds total time\u001b[0m\n" + "\u001b[38;21mINFO:rabbit_fit.py: 6.05 seconds total time\u001b[0m\n" ] } ], @@ -956,7 +1009,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 20, "id": "a3923da2", "metadata": {}, "outputs": [ @@ -986,10 +1039,10 @@ " " ], "text/plain": [ - "" + "" ] }, - "execution_count": 18, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -1020,7 +1073,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 21, "id": "2d956f1f", "metadata": {}, "outputs": [ @@ -1103,7 +1156,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 22, "id": "dd2b8907", "metadata": {}, "outputs": [ @@ -1111,24 +1164,26 @@ "name": "stdout", "output_type": "stream", "text": [ - "2026-02-27 18:28:38.263050: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", - "2026-02-27 18:28:38.263420: I tensorflow/core/util/port.cc:153] 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", - "2026-02-27 18:28:38.312556: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", + "2026-03-15 19:38:36.810408: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", + "2026-03-15 19:38:36.810719: I tensorflow/core/util/port.cc:153] 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", + "2026-03-15 19:38:36.845330: 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", - "2026-02-27 18:28:39.716507: I tensorflow/core/util/port.cc:153] 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", - "2026-02-27 18:28:39.716943: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", - "2026-02-27 18:28:42.087247: E external/local_xla/xla/stream_executor/cuda/cuda_platform.cc:51] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n", + "2026-03-15 19:38:37.896801: I tensorflow/core/util/port.cc:153] 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", + "2026-03-15 19:38:37.897139: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", + "2026-03-15 19:38:39.550020: E external/local_xla/xla/stream_executor/cuda/cuda_platform.cc:51] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n", "ch0 {'axes': [Regular(10, 0, 1, name='x'), Regular(2, -2, 2, underflow=False, overflow=False, name='cat')], 'masked': False, 'flow': False, 'start': 0, 'stop': 20}\n", "ch0_masked {'axes': [Regular(2, -2, 2, underflow=False, overflow=False, name='cat')], 'masked': True, 'flow': False, 'start': 20, 'stop': 22}\n", - "\u001b[38;21mINFO:rabbit_fit.py: edmval: 8.135389877298164e-17\u001b[0m\n", + "/home/david/work/Repos/rabbit/env/lib/python3.12/site-packages/scipy/optimize/_trustregion.py:250: RuntimeWarning: invalid value encountered in multiply\n", + " p, hits_boundary = m.solve(trust_radius)\n", + "\u001b[38;21mINFO:rabbit_fit.py: edmval: 4.597630221862748e-19\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: Saturated chi2:\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: ndof: 18\u001b[0m\n", - "\u001b[38;21mINFO:rabbit_fit.py: 2*deltaNLL: 7.1\u001b[0m\n", + "\u001b[38;21mINFO:rabbit_fit.py: 2*deltaNLL: 7.09\u001b[0m\n", "\u001b[38;21mINFO:rabbit_fit.py: p-value: 98.93%\u001b[0m\n", "/home/david/work/Repos/rabbit/env/lib/python3.12/site-packages/wums/ioutils.py:161: FutureWarning: .metadata was not set, returning None instead of Attribute error, boost-histogram 1.7+ will error.\n", " (axes, obj.storage_type(), obj.metadata, obj.label, obj.name, h5buf),\n", "Results written in file ./results/advanced/fitresults_custom_model.hdf5\n", - "\u001b[38;21mINFO:rabbit_fit.py: 6.91 seconds total time\u001b[0m\n" + "\u001b[38;21mINFO:rabbit_fit.py: 8.15 seconds total time\u001b[0m\n" ] } ], @@ -1140,7 +1195,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 23, "id": "449ff8ce", "metadata": {}, "outputs": [ @@ -1150,12 +1205,13 @@ "text": [ " Parameter pull +/- constraint (pull prefit +/- constraint prefit)\r\n", " ----------------------------------------------------------------------------------------------------\r\n", - " signal 1.22521 +/- 0.09383 ( 1.0 +/- 0.0)\r\n", - " slope 0.26962 +/- 0.73037 ( 0.0 +/- 0.0)\r\n", - " flat_bkg_norm -0.51407 +/- 0.61778 ( 0.0 +/- 1.0)\r\n", - " flat_bkg_shapeSymAvg -0.07825 +/- 0.35522 ( 0.0 +/- 1.0)\r\n", - " flat_bkg_shapeSymDiff 0.19305 +/- 0.97924 ( 0.0 +/- 1.0)\r\n", - " lumi 0.0 +/- 1.0 ( 0.0 +/- 1.0)\r\n" + " signal 1.22422 +/- 0.09194 ( 1.0 +/- 0.0)\r\n", + " slope 0.26832 +/- 0.73088 ( 0.0 +/- 0.0)\r\n", + " exp_bkg_norm 0.04124 +/- 0.62111 ( 0.0 +/- 1.0)\r\n", + " flat_bkg_norm -0.52118 +/- 0.62703 ( 0.0 +/- 1.0)\r\n", + " flat_bkg_shapeSymAvg -0.07734 +/- 0.35558 ( 0.0 +/- 1.0)\r\n", + " flat_bkg_shapeSymDiff 0.19182 +/- 0.97941 ( 0.0 +/- 1.0)\r\n", + " lumi -0.0 +/- 1.0 ( 0.0 +/- 1.0)\r\n" ] } ], @@ -1165,7 +1221,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 24, "id": "8bc1fe92", "metadata": {}, "outputs": [ @@ -1193,10 +1249,10 @@ " " ], "text/plain": [ - "" + "" ] }, - "execution_count": 32, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } diff --git a/rabbit/fitter.py b/rabbit/fitter.py index 2c31b33..005b9eb 100644 --- a/rabbit/fitter.py +++ b/rabbit/fitter.py @@ -258,6 +258,9 @@ def __init__( self.kstat = tf.where(self.betamask, 1.0, self.sumw**2 / self.varbeta) if self.binByBinStatType == "gamma" and self.binByBinStatMode == "full": + logger.warning( + "Running with '--binByBinStatType gamma --binByBinStatMode full' is experimental and results should be taken with care" + ) self.nbeta = tf.Variable( tf.ones_like(self.nobs), trainable=True, name="nbeta" ) @@ -305,6 +308,11 @@ def __init__( name="cov", ) + # regularization + self.regularizers = [] + # one common regularization strength parameter + self.tau = tf.Variable(1.0, trainable=True, name="tau", dtype=tf.float64) + # determine if problem is linear (ie likelihood is purely quadratic) self.is_linear = ( (self.chisqFit or self.covarianceFit) @@ -314,7 +322,7 @@ def __init__( and ((not self.binByBinStat) or self.binByBinStatType == "normal-additive") ) - def load_fitresult(self, fitresult_file, fitresult_key): + def load_fitresult(self, fitresult_file, fitresult_key, profile=True): # load results from external fit and set postfit value and covariance elements for common parameters cov_ext = None with h5py.File(fitresult_file, "r") as fext: @@ -350,6 +358,9 @@ def load_fitresult(self, fitresult_file, fitresult_key): covval[np.ix_(idxs, idxs)] = cov_ext[np.ix_(idxs_ext, idxs_ext)] self.cov.assign(tf.constant(covval)) + if profile: + self._profile_beta() + def update_frozen_params(self): logger.debug(f"Updated list of frozen params: {self.frozen_params}") new_mask_np = np.isin(self.parms, self.frozen_params) @@ -358,12 +369,14 @@ def update_frozen_params(self): self.frozen_indices = np.where(new_mask_np)[0] def freeze_params(self, frozen_parmeter_expressions): + logger.debug(f"Freeze params with {frozen_parmeter_expressions}") self.frozen_params.extend( match_regexp_params(frozen_parmeter_expressions, self.parms) ) self.update_frozen_params() def defreeze_params(self, unfrozen_parmeter_expressions): + logger.debug(f"Freeze params with {unfrozen_parmeter_expressions}") unfrozen_parmeter = match_regexp_params( unfrozen_parmeter_expressions, self.parms ) @@ -373,6 +386,7 @@ def defreeze_params(self, unfrozen_parmeter_expressions): self.update_frozen_params() def init_blinding_values(self, unblind_parameter_expressions=[]): + logger.debug(f"Unblind parameters with {unblind_parameter_expressions}") unblind_parameters = match_regexp_params( unblind_parameter_expressions, [ @@ -465,6 +479,9 @@ def get_poi(self): else: return poi + def get_x(self): + return tf.concat([self.get_poi(), self.get_theta()], axis=0) + def _default_beta0(self): if self.binByBinStatType in ["gamma", "normal-multiplicative"]: return tf.ones(self.beta_shape, dtype=self.indata.dtype) @@ -547,6 +564,11 @@ def defaultassign(self): if self.do_blinding: self.set_blinding_offsets(False) + xinit = self.get_x() + nexp0 = self.expected_yield(full=True) + for reg in self.regularizers: + reg.set_expectations(xinit, nexp0) + def bayesassign(self): # FIXME use theta0 as the mean and constraintweight to scale the width if self.poi_model.npoi == 0: @@ -1449,49 +1471,80 @@ def _compute_yields_with_beta(self, profile=True, compute_norm=False, full=True) beta = solve_quad_eq(abeta, bbeta, cbeta) elif self.binByBinStatMode == "full": norm_profile = norm[: self.indata.nbins] + logbeta0 = self.logbeta0[: self.indata.nbins] + + # Minimum total expected yield for which all betas are positive. + # Optimise in log-space u = log(x - threshold) so that + # x = threshold + exp(u) > threshold for any real u, + # guaranteeing den > 0 and beta > 0 without any clipping. + # Protect against zero norm_profile for masked processes: + # kstat/0 = inf for the argmin gradient gives 0*(-inf) = NaN. + # Use a dummy norm=1 for betamask bins so the division is finite, + # then set those entries to +inf to exclude them from the min. + norm_thresh = tf.where( + betamask, tf.ones_like(norm_profile), norm_profile + ) + f_thresh = tf.where( + betamask, + tf.fill( + tf.shape(kstat), tf.cast(float("inf"), kstat.dtype) + ), + kstat / norm_thresh, + ) + threshold = self.nobs - self.varnobs * tf.reduce_min( + f_thresh, axis=1 + ) + + # Initialise nbeta in log-space. + self.nbeta.assign(tf.zeros_like(self.nobs)) # solving nbeta numerically using newtons method (does not work with forward differentiation i.e. use --globalImpacts with --globalImpactsDisableJVP) - def fnll_nbeta(x): - beta = ( + def fnll_nbeta(u): + # x = threshold + exp(u) > threshold always; den > 0 guaranteed. + x = threshold + tf.exp(u) + + den = ( kstat - * beta0 - / ( - kstat - + ((x - self.nobs) / self.varnobs)[..., None] - * norm_profile - ) + + ((x - self.nobs) / self.varnobs)[..., None] + * norm_profile ) + beta = kstat * beta0 / den + beta = tf.where(betamask, beta0, beta) + + # some safeguards + betasafe = tf.where( + beta0 == 0.0, + tf.constant(1.0, dtype=beta.dtype), + beta, + ) + logbeta = tf.math.log(betasafe) + new_nexp = tf.reduce_sum(beta * norm_profile, axis=-1) ln = 0.5 * (new_nexp - self.nobs) ** 2 / self.varnobs lbeta = tf.reduce_sum( kstat * (beta - beta0) - - kstat - * beta0 - * (tf.math.log(beta) - tf.math.log(beta0)), + - kstat * beta0 * (logbeta - logbeta0), axis=-1, ) return ln + lbeta - def body(i, edm): + def val_grad_hess_nbeta(): with tf.GradientTape() as t2: with tf.GradientTape() as t1: - nll = fnll_nbeta(nexp_profile * self.nbeta) - grad = t1.gradient(nll, self.nbeta) + val = fnll_nbeta(self.nbeta) + grad = t1.gradient(val, self.nbeta) hess = t2.gradient(grad, self.nbeta) + return val, grad, hess - eps = 1e-8 - hess_sign = tf.where( - hess != 0, tf.sign(hess), tf.ones_like(hess) - ) - safe_hess = hess_sign * tf.maximum(tf.abs(hess), eps) - step = grad / safe_hess + def body(i, edm): + val, grad, hess = val_grad_hess_nbeta() + safe_hess = tf.maximum(hess, 1e-8) + step = tf.clip_by_value(grad / safe_hess, -1.0, 1.0) self.nbeta.assign_sub(step) - return i + 1, tf.reduce_max( - tf.reduce_max(0.5 * grad * step) - ) + return i + 1, tf.reduce_max(0.5 * grad**2 / safe_hess) def cond(i, edm): return tf.logical_and(i < 50, edm > 1e-10) @@ -1500,15 +1553,13 @@ def cond(i, edm): edm0 = tf.constant(tf.float64.max) tf.while_loop(cond, body, loop_vars=(i0, edm0)) + x = threshold + tf.exp(self.nbeta) beta = ( kstat * beta0 / ( kstat - + ( - (nexp_profile * self.nbeta - self.nobs) - / self.varnobs - )[..., None] + + ((x - self.nobs) / self.varnobs)[..., None] * norm_profile ) ) @@ -1665,54 +1716,87 @@ def cond(i, edm): beta = (self.nobs + kstat * beta0) / (nexp_profile + kstat) elif self.binByBinStatMode == "full": norm_profile = norm[: self.indata.nbins] + logbeta0 = self.logbeta0[: self.indata.nbins] + + # Minimum total expected yield for which all betas are positive. + # Optimise in log-space u = log(x - threshold) so that + # x = threshold + exp(u) > threshold for any real u, + # guaranteeing den > 0 and beta > 0 without any clipping. + # Protect against zero norm_profile for masked processes: + # kstat/0 = inf for the argmin gradient gives 0*(-inf) = NaN. + # Use a dummy norm=1 for betamask bins so the division is finite, + # then set those entries to +inf to exclude them from the min. + norm_thresh = tf.where( + betamask, tf.ones_like(norm_profile), norm_profile + ) + f_thresh = tf.where( + betamask, + tf.fill( + tf.shape(kstat), tf.cast(float("inf"), kstat.dtype) + ), + 1.0 + kstat / norm_thresh, + ) + threshold = self.nobs / tf.reduce_min(f_thresh, axis=1) + + # Initialise nbeta in log-space from the current nexp_profile. + self.nbeta.assign(tf.zeros_like(self.nobs)) # solving nbeta numerically using newtons method (does not work with forward differentiation i.e. use --globalImpacts with --globalImpactsDisableJVP) - def fnll_nbeta(x): - beta = ( - kstat - * beta0 - / ( - norm_profile - + kstat - - (self.nobs / x)[..., None] * norm_profile - ) - ) + def fnll_nbeta(u): + # x = threshold + exp(u) > threshold always; den > 0 guaranteed. + x = threshold + tf.exp(u) + + den = (1 - self.nobs / x)[ + ..., None + ] * norm_profile + kstat + beta = kstat * beta0 / den + beta = tf.where(betamask, beta0, beta) + + # some safeguards + betasafe = tf.where( + beta0 == 0.0, + tf.constant(1.0, dtype=beta.dtype), + beta, + ) + logbeta = tf.math.log(betasafe) + new_nexp = tf.reduce_sum(beta * norm_profile, axis=-1) + nexpsafe = tf.where( + self.nobs == 0.0, + tf.constant(1.0, dtype=new_nexp.dtype), + new_nexp, + ) + lognexp = tf.math.log(nexpsafe) + ln = ( new_nexp - self.nobs - - self.nobs - * (tf.math.log(new_nexp) - tf.math.log(self.nobs)) + - self.nobs * (lognexp - self.lognobs) ) lbeta = tf.reduce_sum( kstat * (beta - beta0) - - kstat - * beta0 - * (tf.math.log(beta) - tf.math.log(beta0)), + - kstat * beta0 * (logbeta - logbeta0), axis=-1, ) return ln + lbeta - def body(i, edm): + def val_grad_hess_nbeta(): with tf.GradientTape() as t2: with tf.GradientTape() as t1: - nll = fnll_nbeta(nexp_profile * self.nbeta) - grad = t1.gradient(nll, self.nbeta) + val = fnll_nbeta(self.nbeta) + grad = t1.gradient(val, self.nbeta) hess = t2.gradient(grad, self.nbeta) + return val, grad, hess - eps = 1e-8 - hess_sign = tf.where( - hess != 0, tf.sign(hess), tf.ones_like(hess) - ) - safe_hess = hess_sign * tf.maximum(tf.abs(hess), eps) - step = grad / safe_hess + def body(i, edm): + val, grad, hess = val_grad_hess_nbeta() + safe_hess = tf.maximum(hess, 1e-8) + step = tf.clip_by_value(grad / safe_hess, -1.0, 1.0) self.nbeta.assign_sub(step) - return i + 1, tf.reduce_max( - tf.reduce_max(0.5 * grad * step) - ) + return i + 1, tf.reduce_max(0.5 * grad**2 / safe_hess) def cond(i, edm): return tf.logical_and(i < 50, edm > 1e-10) @@ -1721,15 +1805,12 @@ def cond(i, edm): edm0 = tf.constant(tf.float64.max) tf.while_loop(cond, body, loop_vars=(i0, edm0)) + x = threshold + tf.exp(self.nbeta) beta = ( kstat * beta0 / ( - norm_profile - - (self.nobs / (nexp_profile * self.nbeta))[ - ..., None - ] - * norm_profile + (1 - self.nobs / x)[..., None] * norm_profile + kstat ) ) @@ -2100,6 +2181,7 @@ def _compute_lbeta(self, beta, full_nll=False): lbeta = -kstat * beta0 * (logbeta - self.logbeta0) + kstat * ( beta - beta0 ) + elif self.binByBinStatType == "normal-multiplicative": kstat = self.kstat betamask = self.betamask @@ -2129,13 +2211,7 @@ def _compute_lbeta(self, beta, full_nll=False): return None - def _compute_nll_components(self, profile=True, full_nll=False): - nexp, _, beta = self._compute_yields_with_beta( - profile=profile, - compute_norm=False, - full=False, - ) - + def _compute_ln(self, nexp, full_nll=False): if self.chisqFit: ln = 0.5 * tf.reduce_sum((nexp - self.nobs) ** 2 / self.varnobs, axis=-1) elif self.covarianceFit: @@ -2163,15 +2239,37 @@ def _compute_nll_components(self, profile=True, full_nll=False): ln = tf.reduce_sum( -self.nobs * (lognexp - self.lognobs) + nexp - self.nobs, axis=-1 ) + return ln + + def _compute_nll_components(self, profile=True, full_nll=False): + nexpfullcentral, _, beta = self._compute_yields_with_beta( + profile=profile, + compute_norm=False, + full=len(self.regularizers), + ) + + nexp = nexpfullcentral[: self.indata.nbins] + + ln = self._compute_ln(nexp, full_nll) lc = self._compute_lc(full_nll) lbeta = self._compute_lbeta(beta, full_nll) - return ln, lc, lbeta, beta + if len(self.regularizers): + x = self.get_x() + penalties = [ + reg.compute_nll_penalty(x, nexpfullcentral) * tf.exp(2 * self.tau) + for reg in self.regularizers + ] + lpenalty = tf.add_n(penalties) + else: + lpenalty = None + + return ln, lc, lbeta, lpenalty, beta def _compute_nll(self, profile=True, full_nll=False): - ln, lc, lbeta, beta = self._compute_nll_components( + ln, lc, lbeta, lpenalty, beta = self._compute_nll_components( profile=profile, full_nll=full_nll ) l = ln + lc @@ -2179,6 +2277,8 @@ def _compute_nll(self, profile=True, full_nll=False): if lbeta is not None: l = l + lbeta + if lpenalty is not None: + l = l + lpenalty return l def _compute_loss(self, profile=True): diff --git a/rabbit/parsing.py b/rabbit/parsing.py index d86c711..d4a1c90 100644 --- a/rabbit/parsing.py +++ b/rabbit/parsing.py @@ -11,8 +11,8 @@ def __call__(self, parser, namespace, values, option_string=None): setattr(namespace, self.dest, values) -def common_parser(): - parser = argparse.ArgumentParser() +def common_parser(description=""): + parser = argparse.ArgumentParser(description=description) parser.add_argument( "-v", "--verbose", @@ -217,5 +217,18 @@ def common_parser(): action="store_true", help="Make a composite mapping and compute the covariance matrix across all mappings.", ) + parser.add_argument( + "-r", + "--regularization", + nargs="+", + action="append", + default=[], + help=""" + apply regularization on the output "nout" of a mapping by including a penalty term P(nout) in the -log(L) of the minimization. + As argument, specify the regulaization defined in rabbit/regularization/, followed by a mapping using the same syntax as discussed above. + e.g. '-r SVD Select ch0_masked' to apply SVD regularization on the channel 'ch0_masked' or '-r SVD Project ch0 pt' for the 1D projection to pt. + Custom regularization can be specified with the full path e.g. '-r custom_regularization.MyCustomRegularization Project ch0 pt'. + """, + ) return parser diff --git a/rabbit/regularization/__init__.py b/rabbit/regularization/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/rabbit/regularization/helpers.py b/rabbit/regularization/helpers.py new file mode 100644 index 0000000..c98aae9 --- /dev/null +++ b/rabbit/regularization/helpers.py @@ -0,0 +1,13 @@ +from rabbit import common + +# dictionary with class name and the corresponding filename where it is defined +baseline_regularizations = { + "SVD": "svd", +} + + +def load_regularizer(class_name, *args, **kwargs): + regularization = common.load_class_from_module( + class_name, baseline_regularizations, base_dir="rabbit.regularization" + ) + return regularization(*args, **kwargs) diff --git a/rabbit/regularization/lcurve.py b/rabbit/regularization/lcurve.py new file mode 100644 index 0000000..ba785ca --- /dev/null +++ b/rabbit/regularization/lcurve.py @@ -0,0 +1,234 @@ +import numpy as np +import tensorflow as tf +from wums import logging + +logger = logging.child_logger(__name__) + + +def _compute_curvature(fitter): + """ + Following Eq.(4.3) from https://iopscience.iop.org/article/10.1088/1748-0221/7/10/T10003/pdf + """ + + # the full derivative d(Li) / d(tau) = pd(Li)/pd(tau) + pd(Li)/pd(x) * d(x)/d(tau) + # = pd(Li)/pd(tau) - pd(Li)/pd(x) * (pd2(L)/pd(x^2))^-1 * pd2(L)/pd(x)pd(tau) + # there is no dependency of Li on tau, thus, the first term is 0 + # (pd2(L)/pd(x^2))^-1 is the covariance matrix + with tf.GradientTape(persistent=True) as t3: + t3.watch(fitter.tau) + + # 1) compute dx/dtau + with tf.GradientTape(persistent=True) as t2: + t2.watch(fitter.tau) + with tf.GradientTape() as t1: + nll = fitter._compute_nll() + + pdLpdx = t1.gradient(nll, fitter.x) + + pd2Lpdx2 = t2.jacobian(pdLpdx, fitter.x) + pd2Lpdxpdtau = t2.jacobian(pdLpdx, fitter.tau) + + chol = tf.linalg.cholesky(pd2Lpdx2) + dxdtau = -tf.linalg.cholesky_solve(chol, pd2Lpdxpdtau[:, None]) + dxdtau = tf.reshape(dxdtau, [-1]) + + # 2) compute pdLx/pdx, pdLy/pdx and pd^2Lx/pdx^2, pd^2Ly/pdx^2 + with tf.GradientTape(persistent=True) as t_inner: + nexpfullcentral, _, beta = fitter._compute_yields_with_beta( + profile=False, + compute_norm=False, + full=len(fitter.regularizers), + ) + + nexp = nexpfullcentral[: fitter.indata.nbins] + + ln = fitter._compute_ln(nexp) + lc = fitter._compute_lc() + lbeta = fitter._compute_lbeta(beta) + lx = tf.math.log(ln + lc + lbeta) + + x = fitter.get_x() + penalties = [ + reg.compute_nll_penalty(x, nexpfullcentral) + for reg in fitter.regularizers + ] + ly = tf.math.log(tf.add_n(penalties)) + + pdLxpdx = t_inner.gradient(lx, fitter.x) + pdLypdx = t_inner.gradient(ly, fitter.x) + + pdLxpdx_dxdtau = tf.reduce_sum(pdLxpdx * dxdtau) + pdLypdx_dxdtau = tf.reduce_sum(pdLypdx * dxdtau) + + pdLxpdx_d2xdtau2 = t3.gradient(pdLxpdx_dxdtau, fitter.tau) + pdLypdx_d2xdtau2 = t3.gradient(pdLypdx_dxdtau, fitter.tau) + + pd2Lxpdx2 = t3.jacobian(pdLxpdx, fitter.x) + pd2Lypdx2 = t3.jacobian(pdLypdx, fitter.x) + + dLxdtau = tf.reduce_sum(pdLxpdx * dxdtau) + dLydtau = tf.reduce_sum(pdLypdx * dxdtau) + + d2Lxdtau2 = ( + tf.reduce_sum(dxdtau * tf.linalg.matvec(pd2Lxpdx2, dxdtau)) + pdLxpdx_d2xdtau2 + ) + d2Lydtau2 = ( + tf.reduce_sum(dxdtau * tf.linalg.matvec(pd2Lypdx2, dxdtau)) + pdLypdx_d2xdtau2 + ) + + curvature = (d2Lydtau2 * dLxdtau - d2Lxdtau2 * dLydtau) / tf.pow( + tf.square(dLxdtau) + tf.square(dLydtau), 1.5 + ) + + return curvature + + +@tf.function +def compute_curvature(fitter): + return _compute_curvature(fitter) + + +def l_curve_scan_tau(fitter, min=1.7, max=2.1, step=0.1): + tau0 = fitter.tau.numpy() + + curvatures = [] + tau_steps = np.arange(min, max, step) + + for i, v in enumerate(tau_steps): + logger.info(f"Iteration {i} with tau = {v}") + + fitter.tau.assign(v) + cb = fitter.minimize() + val = compute_curvature(fitter).numpy() + curvatures.append(val) + + logger.info(f"Curvature (value) = {val}") + + # set tau back to the original value + fitter.tau.assign(tau0) + + return tau_steps, np.array(curvatures) + + +@tf.function +def neg_curvature_val_grad_hess(fitter): + with tf.GradientTape() as t2: + t2.watch(fitter.tau) + with tf.GradientTape() as t1: + t1.watch(fitter.tau) + val = -1 * _compute_curvature(fitter) + grad = t1.gradient(val, fitter.tau) + hess = t2.gradient(grad, fitter.tau) + + return val, grad, hess + + +@tf.function +def neg_curvature_val_grad(fitter): + with tf.GradientTape() as t1: + t1.watch(fitter.tau) + val = -1 * _compute_curvature(fitter) + grad = t1.gradient(val, fitter.tau) + + return val, grad + + +@tf.function +def neg_curvature_val_grad_hessp(fitter, p): + p = tf.stop_gradient(p) + with tf.GradientTape() as t2: + t2.watch(fitter.tau) + with tf.GradientTape() as t1: + t1.watch(fitter.tau) + val = -1 * _compute_curvature(fitter) + grad = t1.gradient(fitter.tau) + hessp = t2.gradient(grad, fitter.tau, output_gradients=p) + return val, grad, hessp + + +def l_curve_optimize_tau(fitter): + # FIXME: this does not work yet + # find the tau where the curvature is maximum, minimize curvature w.r.t. tau + logger.info(f"Run l curve optimization") + + # def scipy_loss(xval): + # logger.info(f"=======") + # logger.info(f"x = {xval}") + # tau.assign(xval[0]) + # cb = fitter.minimize() + # val, grad = neg_curvature_val_grad(fitter, tau) + # logger.info(f"Curvature (value) = {-val}") + # logger.info(f"Curvature (gradient) = {grad}") + # return val.__array__(), grad.__array__() + + # def scipy_hessp(xval, pval): + # tau.assign(xval[0]) + # p = tf.convert_to_tensor(pval) + # val, grad, hessp = neg_curvature_val_grad_hessp(fitter, tau, p) + # return hessp.__array__() + + # def scipy_hess(xval): + # tau.assign(xval[0]) + # val, grad, hess = neg_curvature_val_grad_hess(fitter, tau) + # return hess.__array__() + # # logger.debug(f"xval = {xval}") + # # logger.debug(f"p = {p}") + # # logger.debug(f"val = {val}; grad = {grad}; hessp = {hessp}") + + # res = scipy.optimize.minimize( + # scipy_loss, + # [0], + # method="trust-exact", + # jac=True, + # # hessp=scipy_hessp, + # hess=scipy_hess, + # options=dict( + # disp = True + # ), + # ) + + # tau.assign(res["x"][0]) + # val = res["fun"] + + # logger.info(f"Optimization terminated") + + # logger.info(f" maximum curvature: {-val}") + # logger.info(f" tau: {tau.numpy()}") + + # return tau.numpy(), val.numpy() + + edm = 1 + i = 0 + while i < 50 and (edm < 0 or edm > 1e-16): + logger.info(f"Iteration {i}") + + cb = fitter.minimize() + val, grad, hess = neg_curvature_val_grad_hess(fitter) + + logger.info(f"Curvature (value) = {-val}") + logger.info(f"Curvature (gradient) = {grad}") + logger.info(f"Curvature (hessian) = {hess}") + + eps = 1e-8 + hess_sign = tf.where(hess != 0, tf.sign(hess), tf.ones_like(hess)) + safe_hess = hess_sign * tf.maximum(tf.abs(hess), eps) + step = grad / safe_hess + + logger.info(f"Curvature (step) = {-step}") + fitter.tau.assign_sub(step) + + edm = 0.5 * grad * step + i = i + 1 + + logger.debug(f"Curvature edm = {edm}") + logger.debug(f"Curvature tau = {fitter.tau}") + + tau = fitter.tau.numpy() + curvature = val.numpy() + + logger.info(f"Optimization terminated") + logger.info(f" edm: {edm}") + logger.info(f" maximum curvature: {-val}") + logger.info(f" tau: {tau}") + + return tau, curvature diff --git a/rabbit/regularization/regularizer.py b/rabbit/regularization/regularizer.py new file mode 100644 index 0000000..3621cc3 --- /dev/null +++ b/rabbit/regularization/regularizer.py @@ -0,0 +1,17 @@ +class Regularizer: + + def __init__(self, mapping, dtype): + """ + Initialize the regularization depending on the mapping + """ + + def set_expectations(self, initial_params, initial_observables): + """ + Set the expectations to use in the regularization, this step should be called once per fit configuration + """ + + def compute_nll_penalty(self, params, observables): + """ + Compute the penalty term that gets added to -ln(L), this function should be called in each step of the minimization + """ + return 0 diff --git a/rabbit/regularization/svd.py b/rabbit/regularization/svd.py new file mode 100644 index 0000000..070e73c --- /dev/null +++ b/rabbit/regularization/svd.py @@ -0,0 +1,92 @@ +import tensorflow as tf + +from rabbit.regularization.regularizer import Regularizer + + +class SVD(Regularizer): + """ + Singular Value Decomposition (SVD) see: https://arxiv.org/abs/hep-ph/9509307 + """ + + def __init__(self, mapping, dtype): + if len(mapping.channel_info) > 1: + raise NotImplementedError( + "Regularization currently only works for 1 channel at a time; use multiple regularizers if you want to penalize multiple channels." + ) + + self.mapping = mapping + + # there is an embiguity about what to do with the flow bins. + # they are not part of the fit, thus, the flow bins are not taken except for masked channels + self.input_shape = [ + a.extent if v["flow"] else a.size + for v in mapping.channel_info.values() + for a in v["axes"] + ] + + self.ndims = len(self.input_shape) + + if self.ndims == 1: + kernel = tf.constant([1, -2, 1], dtype=dtype) + self.kernel = kernel[:, tf.newaxis, tf.newaxis] # (W, In, Out) + elif self.ndims == 2: + kernel = tf.constant([[0, 1, 0], [1, -4, 1], [0, 1, 0]], dtype=dtype) + self.kernel = kernel[:, :, tf.newaxis, tf.newaxis] # (H, W, In, Out) + elif self.ndims == 3: + # Axial neighbors are 1, center is -6 + kernel = tf.zeros((3, 3, 3), dtype=dtype) + indices = [ + [1, 1, 1], + [0, 1, 1], + [2, 1, 1], + [1, 0, 1], + [1, 2, 1], + [1, 1, 0], + [1, 1, 2], + ] + values = [-6.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] + kernel = tf.tensor_scatter_nd_update(kernel, indices, values) + self.kernel = kernel[:, :, :, tf.newaxis, tf.newaxis] + else: + raise NotImplementedError("SVD regularization only implemented in up to 3D") + + self.paddings = [[0, 0]] + [[1, 1]] * self.ndims + [[0, 0]] + + def set_expectations(self, initial_params, initial_observables): + # TODO: do we need to include this in autodiff for global impacts, since initial_params = (poi0, theta0)? + nexp0 = self.mapping.compute_flat(initial_params, initial_observables) + self.nexp0 = tf.reshape(nexp0, self.input_shape) + + def compute_nll_penalty(self, params, observables): + mask = self.nexp0 != 0 + nexp0_safe = tf.where(mask, self.nexp0, tf.cast(1.0, self.nexp0.dtype)) + + nexp = self.mapping.compute_flat(params, observables) + nexp = tf.reshape(nexp, self.input_shape) + + dexp = nexp / nexp0_safe + dexp = tf.where(mask, dexp, tf.ones_like(dexp)) + + # add batch (first) and channel (last) dimensions + dexp = dexp[tf.newaxis, ..., tf.newaxis] + + # padding 'SYMMETRIC' means copy the element at the edge, i.e. apply the kernel (1 -2 1) to (x x y) -> x -2x + y = -x y + # which is equivalent to applying a "modified kernal" of (-1, 1) to (x y) -> -x y + padded_input = tf.pad(dexp, self.paddings, mode="SYMMETRIC") + + if self.ndims == 1: + curvature_map = tf.nn.conv1d( + padded_input, self.kernel, stride=1, padding="VALID" + ) + elif self.ndims == 2: + curvature_map = tf.nn.conv2d( + padded_input, self.kernel, strides=[1, 1, 1, 1], padding="VALID" + ) + elif self.ndims == 3: + curvature_map = tf.nn.conv3d( + padded_input, self.kernel, strides=[1, 1, 1, 1, 1], padding="VALID" + ) + + penalty = tf.reduce_sum(tf.square(curvature_map)) + + return penalty diff --git a/rabbit/workspace.py b/rabbit/workspace.py index 9556099..c6b1f65 100644 --- a/rabbit/workspace.py +++ b/rabbit/workspace.py @@ -504,12 +504,13 @@ def add_expected_hists( return name, label - def add_loss_time_hist(self, loss, time, name="epoch"): + def add_1D_integer_hist(self, values, name_x, name_y): axis_epoch = hist.axis.Integer( - 0, len(loss), underflow=False, overflow=False, name="epoch" + 0, len(values), underflow=False, overflow=False, name=name_x + ) + self.add_hist( + f"{name_x}_{name_y}", axis_epoch, values, label=f"{name_x} {name_y}" ) - self.add_hist(f"{name}_loss", axis_epoch, loss, label=f"{name} loss") - self.add_hist(f"{name}_time", axis_epoch, time, label=f"{name} time") def write_meta(self, meta): ioutils.pickle_dump_h5py("meta", meta, self.fout) diff --git a/tests/plot_epoch_loss_time.py b/tests/plot_epoch_loss_time.py index 844d8cd..66748ec 100644 --- a/tests/plot_epoch_loss_time.py +++ b/tests/plot_epoch_loss_time.py @@ -50,6 +50,19 @@ "--legCols", type=int, default=2, help="Number of columns in legend" ) parser.add_argument("--startEpoch", type=int, default=0, help="Epoch to start plotting") +parser.add_argument( + "--types", + nargs="+", + default=["loss"], + choices=["loss", "lcurve"], + help="Make 1D plot as function of epoch/step/...", +) +parser.add_argument( + "--ylim", + type=float, + nargs=2, + help="Min and max values for y axis (if not specified, range set automatically)", +) args = parser.parse_args() outdir = output_tools.make_plot_dir(args.outpath) @@ -58,19 +71,30 @@ times = [] losses = [] dlosses = [] +tau_steps = [] +lcurves = [] +best_tau = [] +best_curvature = [] for infile in args.infile: fitresult, meta = rabbit.io_tools.get_fitresult(infile, args.result, meta=True) - h_time = fitresult["epoch_time"].get() - h_loss = fitresult["epoch_loss"].get() + if "loss" in args.types: + h_loss = fitresult["epoch_loss"].get() + loss = 2 * h_loss.values() + losses.append(loss) + dlosses.append(-np.diff(loss)) # reduction of loss after each epoch + epochs.append(np.arange(1, len(loss) + 1)) - times.append(h_time.values()) - loss = 2 * h_loss.values() + h_time = fitresult["epoch_time"].get() + times.append(h_time.values()) - epochs.append(np.arange(1, len(loss) + 1)) + if "lcurve" in args.types: + tau_steps.append(fitresult["step_tau"].get().values()) + lcurves.append(fitresult["step_lcurve"].get().values()) - losses.append(loss) - dlosses.append(-np.diff(loss)) # reduction of loss after each epoch + if "best_tau" in fitresult.keys(): + best_tau.append(fitresult["best_tau"].get().values()) + best_curvature.append(fitresult["best_lcurve"].get().values()) linestyles = [ "-", @@ -82,51 +106,65 @@ ":", "-.", ] -linestyles = [linestyles[i % len(linestyles)] for i in range(len(epochs))] +linestyles = [linestyles[i % len(linestyles)] for i in range(len(args.infile))] start = args.startEpoch stop = None -for x, y, xlabel, ylabel, stop, suffix in ( - (times, losses, "time [s]", r"$-2\Delta \ln(L)$", None, "loss"), - (epochs, losses, "epoch", r"$-2\Delta \ln(L)$", None, "loss_time"), - (times, dlosses, "epoch", r"$-2(\ln(L_{t}) - \ln(L_{t-1}))$", -1, "reduction_loss"), - ( - epochs, - dlosses, - "time [s]", - r"$-2(\ln(L_{t}) - \ln(L_{t-1}))$", - -1, - "reduction_loss_time", - ), -): - ymin = min([min(iy) for iy in y]) +if args.labels: + labels = args.labels +else: + labels = [None] * len(args.infile) + + +def plot(x, y, xlabel, ylabel, stop, suffix, points=[]): + if any(x in suffix for x in ["loss"]): + # Normalize to 0 + ymin = min([min(iy) for iy in y]) + y = [iy - ymin for iy in y] - y = [iy - ymin for iy in y] x = [ix[start:stop] for ix in x] - if args.logy: - ylim = [ - min([min(iy[iy > 0]) for iy in y]) * 0.5, - max([max(iy) for iy in y]) * 2, - ] + if args.ylim: + ylim = args.ylim else: - ylim = [0, max([max(iy) for iy in y]) * 1.1] + if args.logy: + ylim = [ + min([min(iy[iy > 0]) for iy in y]) * 0.5, + max([max(iy) for iy in y]) * 2, + ] + else: + ymin = min([min(iy) for iy in y]) + ylim = [ymin * 1.1 if ymin < 0 else 0, max([max(iy) for iy in y]) * 1.1] fig, ax1 = plot_tools.figure( None, xlabel, ylabel, width_scale=1, - xlim=[0, max([max(ix) for ix in x])], + xlim=[min([min(ix) for ix in x]), max([max(ix) for ix in x])], ylim=ylim, automatic_scale=False, logy=args.logy, ) - for ix, iy, l, s in zip(x, y, args.labels, linestyles): + ax1.plot([1.85, 1.85], ylim, color="grey", linestyle="--") + + for ix, iy, l, s in zip(x, y, labels, linestyles): ax1.plot(ix, iy, label=l, linestyle=s) + for point_x, point_y in points: + ax1.plot( + point_x, + point_y, + marker="*", + markersize=15, + markerfacecolor="yellow", + markeredgecolor="black", + markeredgewidth=1.5, + linestyle="None", + ) + plot_tools.add_decor( ax1, args.title, @@ -156,3 +194,37 @@ outfile, args=args, ) + + +combinations = [] +if "loss" in args.types: + plot(epochs, losses, "epoch", r"$-2\Delta \ln(L)$", None, "loss") + plot( + epochs, + dlosses, + "time [s]", + r"$-2(\ln(L_{t}) - \ln(L_{t-1}))$", + -1, + "reduction_loss", + ) + if "time" in args.types: + plot(times, losses, "time [s]", r"$-2\Delta \ln(L)$", None, "loss_time") + plot( + times, + dlosses, + "epoch", + r"$-2(\ln(L_{t}) - \ln(L_{t-1}))$", + -1, + "reduction_loss_time", + ) + +if "lcurve" in args.types: + plot( + tau_steps, + lcurves, + r"$\tau$", + "Curvature", + None, + "lcurve", + points=zip(best_tau, best_curvature), + )