{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.11.13","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"nvidiaTeslaT4","dataSources":[{"sourceId":3004,"databundleVersionId":861823,"sourceType":"competition"}],"dockerImageVersionId":31193,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"# ============================================================\n# Kaggle Digit Recognizer — Top-10% residual CNN + EfficientNet ensemble\n# Strong Keras augmentation (no Lambda), expanded TTA, smarter pseudo-labeling, multi-GPU\n# (Mixed precision-safe, no py_function in augmentation)\n# ============================================================\n\nimport os, sys, re, subprocess, math, json, gc, random, shutil, warnings\nfrom pathlib import Path\nwarnings.filterwarnings(\"ignore\")\n\n# ------------------------------------------------------------\n# 0) (Optional) Protobuf compat trick\n# ------------------------------------------------------------\nos.environ[\"TF_CPP_MIN_LOG_LEVEL\"] = \"2\"\nos.environ[\"TF_ENABLE_ONEDNN_OPTS\"] = \"0\"\n\n_SENT = Path(\"/tmp/.pb_ok\")\n\ndef _parse_ver(v):\n    try:\n        return tuple(int(x) for x in re.findall(r\"\\d+\", v)[:3])\n    except Exception:\n        return (0, 0, 0)\n\ndef _pb_version():\n    try:\n        from google.protobuf import __version__ as _pbv\n        return _pbv\n    except Exception:\n        return \"unknown\"\n\nif not _SENT.exists():\n    cur = _pb_version()\n    if cur != \"unknown\" and _parse_ver(cur) >= (4, 21, 0):\n        subprocess.run(\n            [sys.executable, \"-m\", \"pip\", \"install\", \"-q\", \"protobuf==3.20.3\"],\n            check=False,\n        )\n        _SENT.write_text(\"ok\")\n        os.kill(os.getpid(), 9)\n    else:\n        _SENT.write_text(\"ok\")\nelse:\n    try:\n        _SENT.unlink()\n    except Exception:\n        pass\n\n# ------------------------------------------------------------\n# 1) Imports\n# ------------------------------------------------------------\nimport numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\n\nfrom collections import Counter\nfrom sklearn.model_selection import StratifiedKFold\nfrom sklearn.metrics import confusion_matrix\n\nfrom scipy.ndimage import rotate as scipy_rotate\n\nimport tensorflow as tf\nfrom tensorflow import keras\nfrom tensorflow.keras import layers\nfrom IPython.display import FileLink, Image, display\n\nprint(\"TF version:\", tf.__version__)\nprint(\"GPUs:\", tf.config.list_physical_devices(\"GPU\"))\n\n# Optional multi-GPU (T4 x2)\nUSE_STRATEGY = True\nstrategy = tf.distribute.MirroredStrategy() if (USE_STRATEGY and len(tf.config.list_physical_devices(\"GPU\")) >= 1) else None\nprint(\"Using MirroredStrategy:\", bool(strategy))\n\n# ------------------------------------------------------------\n# 2) Global config & reproducibility\n# ------------------------------------------------------------\nBASE_SEED    = 42\nSEEDS        = [42, 1337, 2025, 31415, 7777]   # 5 initializations\nFOLDS        = 5\nEPOCHS       = 40\nBATCH        = 128\nIMG_H, IMG_W = 28, 28\nNUM_CLASSES  = 10\n\nWEIGHT_DECAY   = 3e-4\nDROPOUT_CONV   = 0.25\nDROPOUT_DENSE  = 0.4\nLABEL_SMOOTH   = 0.01\nUSE_MIXED_PRECISION = True\n\n# Pseudo-labeling & TTA\nPL_THRESH       = 0.995\nMAX_PL_SAMPLES  = 10000\nTTA_ROT_DEG     = [-10, -5, 0, 5, 10]\nTTA_SHIFTS      = [(0,0), (1,0), (-1,0), (0,1), (0,-1)]\nTTA_FLIPS       = [False, True]  # horizontal flips\n\n# Extra ensemble models\nEXTRA_FULL_MODELS   = 2\nFULL_VAL_FRACTION   = 0.10\n\n# Diverse heads\nUSE_EFFICIENTNET_B0 = True  # add lightweight EfficientNet-like head (customized for 28x28)\n\n# Visualisations\nPLOT_SAMPLE_GRID   = True\nPLOT_MISCLASS      = True\nPLOT_CONF_HIST     = True\nPLOT_MODEL_DIAGRAM = False\n\nnp.random.seed(BASE_SEED)\nrandom.seed(BASE_SEED)\ntf.random.set_seed(BASE_SEED)\n\nWORK = Path(\"/kaggle/working\")\nOUT  = WORK / \"mnist_out\"\nOUT.mkdir(parents=True, exist_ok=True)\nFIGS = OUT / \"figs\"\nFIGS.mkdir(parents=True, exist_ok=True)\n\ndef savefig(path):\n    plt.tight_layout()\n    plt.savefig(path, dpi=200, bbox_inches=\"tight\")\n    plt.close()\n\ndef showimg(path):\n    try:\n        display(Image(filename=str(path)))\n    except Exception:\n        pass\n\n# Mixed precision\nif USE_MIXED_PRECISION:\n    try:\n        from tensorflow.keras import mixed_precision\n        mixed_precision.set_global_policy(\"mixed_float16\")\n        print(\"Using mixed precision: mixed_float16\")\n    except Exception as e:\n        print(\"Mixed precision not enabled:\", e)\n\n# ------------------------------------------------------------\n# 3) Load data\n# ------------------------------------------------------------\nDATA = Path(\"/kaggle/input/digit-recognizer\")\ntrain_df = pd.read_csv(DATA / \"train.csv\")\ntest_df  = pd.read_csv(DATA / \"test.csv\")\n\nX_raw = train_df.drop(columns=[\"label\"]).values.reshape(-1, IMG_H, IMG_W).astype(\"float32\")\ny_all = train_df[\"label\"].values.astype(\"int32\")\nXtest_raw = test_df.values.reshape(-1, IMG_H, IMG_W).astype(\"float32\")\n\nprint(\"Train images:\", X_raw.shape, \"Test images:\", Xtest_raw.shape)\nprint(\"Label distribution:\", Counter(y_all))\n\nX      = X_raw[..., np.newaxis] / 255.0\nX_test = Xtest_raw[..., np.newaxis] / 255.0\n\nprint(\"Model input shapes:\", X.shape, X_test.shape)\n\n# ------------------------------------------------------------\n# 3.1) Visualize samples per class\n# ------------------------------------------------------------\nif PLOT_SAMPLE_GRID:\n    print(\"Plotting sample digits per class …\")\n    rng = np.random.default_rng(BASE_SEED)\n    n_per_class = 10\n    plt.figure(figsize=(12, 12))\n    for digit in range(NUM_CLASSES):\n        idx = np.where(y_all == digit)[0]\n        chosen = rng.choice(idx, size=n_per_class, replace=False)\n        for j, i_sample in enumerate(chosen):\n            ax = plt.subplot(NUM_CLASSES, n_per_class, digit * n_per_class + j + 1)\n            ax.imshow(X_raw[i_sample], cmap=\"gray\")\n            ax.axis(\"off\")\n            if j == 0:\n                ax.set_ylabel(str(digit), rotation=0, fontsize=10, labelpad=10)\n    plt.suptitle(\"Training digits per class\", fontsize=14)\n    p_samples = FIGS / \"train_samples_per_class.png\"\n    savefig(p_samples)\n    showimg(p_samples)\n\n# ------------------------------------------------------------\n# 4) Augmentation (mixed-precision safe): rotation/translation/zoom/contrast + random erasing\n# ------------------------------------------------------------\n# Keras augmentation pipeline — only built-in layers (no Lambda)\naug = keras.Sequential(\n    [\n        layers.RandomRotation(0.12),             # ~±7°\n        layers.RandomTranslation(0.10, 0.10),\n        layers.RandomZoom(0.12, 0.12),\n        layers.RandomContrast(0.25),\n    ],\n    name=\"augment\",\n)\n\n# Random erasing implemented in pure TF for batches\ndef random_erase_batch(x, prob=0.25, min_frac=0.02, max_frac=0.07):\n    # x: [B, H, W, C], float\n    b = tf.shape(x)[0]\n    h = tf.shape(x)[1]\n    w = tf.shape(x)[2]\n    c = tf.shape(x)[3]\n    def erase_one(img):\n        do = tf.less(tf.random.uniform([]), prob)\n        def _do():\n            area = tf.cast(h*w, tf.float32)\n            target = tf.random.uniform([], min_frac, max_frac) * area\n            side = tf.cast(tf.sqrt(target), tf.int32)\n            side = tf.maximum(side, 1)\n            y0 = tf.random.uniform([], 0, h - side + 1, dtype=tf.int32)\n            x0 = tf.random.uniform([], 0, w - side + 1, dtype=tf.int32)\n            mask = tf.ones([side, side, c], dtype=img.dtype)\n            pad_top = y0\n            pad_left = x0\n            pad_bottom = h - y0 - side\n            pad_right = w - x0 - side\n            mask = tf.pad(mask,\n                          [[pad_top, pad_bottom], [pad_left, pad_right], [0,0]],\n                          constant_values=0.0)\n            # Where mask==1, erase to 0\n            return img * (1.0 - mask)\n        return tf.cond(do, _do, lambda: img)\n    return tf.map_fn(erase_one, x)\n\n# ------------------------------------------------------------\n# 5) Dataset helpers (one-hot labels) — augmentation applied on batches\n# ------------------------------------------------------------\ndef make_ds(X, y=None, bs=BATCH, training=True):\n    X = X.astype(\"float32\")\n    if y is None:\n        ds = tf.data.Dataset.from_tensor_slices(X)\n        ds = ds.batch(bs).prefetch(tf.data.AUTOTUNE)\n        return ds\n\n    y = y.astype(\"int32\")\n    y_oh = tf.keras.utils.to_categorical(y, num_classes=NUM_CLASSES).astype(\"float32\")\n\n    ds = tf.data.Dataset.from_tensor_slices((X, y_oh))\n    if training:\n        ds = ds.shuffle(8192, seed=BASE_SEED, reshuffle_each_iteration=True)\n\n    ds = ds.batch(bs)\n\n    if training:\n        def apply_aug(x, y):\n            # Aug layers operate in float; ensure dtype consistency\n            x = tf.cast(x, tf.float32)\n            x = aug(x)\n            x = random_erase_batch(x)\n            return x, y\n        ds = ds.map(apply_aug, num_parallel_calls=tf.data.AUTOTUNE)\n\n    ds = ds.prefetch(tf.data.AUTOTUNE)\n    return ds\n\n# ------------------------------------------------------------\n# 6) Models: Residual CNN and EfficientNet-like head (no internal aug)\n# ------------------------------------------------------------\ndef ConvBNAct(x, filters, k=3, strides=1):\n    x = layers.Conv2D(\n        filters, k, strides=strides, padding=\"same\", use_bias=False,\n        kernel_initializer=\"he_normal\",\n        kernel_regularizer=keras.regularizers.l2(WEIGHT_DECAY),\n    )(x)\n    x = layers.BatchNormalization()(x)\n    x = layers.Activation(\"relu\")(x)\n    return x\n\ndef ResidualBlock(x, filters):\n    shortcut = x\n    x = ConvBNAct(x, filters)\n    x = ConvBNAct(x, filters)\n\n    if shortcut.shape[-1] != filters:\n        shortcut = layers.Conv2D(\n            filters, 1, padding=\"same\", use_bias=False,\n            kernel_initializer=\"he_normal\",\n            kernel_regularizer=keras.regularizers.l2(WEIGHT_DECAY),\n        )(shortcut)\n        shortcut = layers.BatchNormalization()(shortcut)\n\n    x = layers.Add()([x, shortcut])\n    x = layers.Activation(\"relu\")(x)\n    return x\n\ndef make_rescnn(input_shape=(IMG_H, IMG_W, 1), steps_per_epoch_est=200):\n    inp = keras.Input(shape=input_shape)\n    x = inp\n\n    # Stem\n    x = ConvBNAct(x, 64)\n    x = ConvBNAct(x, 64)\n\n    # Stage 1\n    x = ResidualBlock(x, 64)\n    x = layers.MaxPooling2D()(x)\n    x = layers.SpatialDropout2D(DROPOUT_CONV)(x)\n\n    # Stage 2\n    x = ResidualBlock(x, 128)\n    x = layers.MaxPooling2D()(x)\n    x = layers.SpatialDropout2D(DROPOUT_CONV)(x)\n\n    # Stage 3\n    x = ResidualBlock(x, 192)\n    x = layers.GlobalAveragePooling2D()(x)\n    x = layers.Dropout(DROPOUT_CONV)(x)\n\n    # Dense head\n    x = layers.Dense(256, activation=\"relu\", kernel_initializer=\"he_normal\")(x)\n    x = layers.Dropout(DROPOUT_DENSE)(x)\n\n    out = layers.Dense(NUM_CLASSES, activation=\"softmax\", dtype=\"float32\", name=\"predictions\")(x)\n\n    model = keras.Model(inp, out, name=\"mnist_res_cnn\")\n\n    lr_schedule = keras.optimizers.schedules.CosineDecayRestarts(\n        initial_learning_rate=4e-3,\n        first_decay_steps=steps_per_epoch_est * 4,\n        t_mul=2.0,\n        m_mul=1.0,\n        alpha=1e-5,\n    )\n\n    opt = keras.optimizers.Adam(learning_rate=lr_schedule)\n    loss = keras.losses.CategoricalCrossentropy(label_smoothing=LABEL_SMOOTH)\n    model.compile(optimizer=opt, loss=loss, metrics=[keras.metrics.CategoricalAccuracy(name=\"acc\")])\n    return model\n\ndef make_efficient_head(input_shape=(IMG_H, IMG_W, 1), steps_per_epoch_est=200):\n    # Small EfficientNet-like stem for 28x28 grayscale\n    inp = keras.Input(shape=input_shape)\n    x = layers.Conv2D(32, 3, padding=\"same\", use_bias=False, kernel_initializer=\"he_normal\",\n                      kernel_regularizer=keras.regularizers.l2(WEIGHT_DECAY))(inp)\n    x = layers.BatchNormalization()(x)\n    x = layers.Activation(\"swish\")(x)\n\n    # Depthwise separable blocks\n    for f in [32, 64, 96]:\n        x = layers.DepthwiseConv2D(3, padding=\"same\", use_bias=False,\n                                   depthwise_regularizer=keras.regularizers.l2(WEIGHT_DECAY))(x)\n        x = layers.BatchNormalization()(x)\n        x = layers.Activation(\"swish\")(x)\n        x = layers.Conv2D(f, 1, padding=\"same\", use_bias=False,\n                          kernel_regularizer=keras.regularizers.l2(WEIGHT_DECAY))(x)\n        x = layers.BatchNormalization()(x)\n        x = layers.Activation(\"swish\")(x)\n        x = layers.MaxPooling2D()(x)\n        x = layers.SpatialDropout2D(DROPOUT_CONV)(x)\n\n    x = layers.GlobalAveragePooling2D()(x)\n    x = layers.Dropout(DROPOUT_CONV)(x)\n    x = layers.Dense(192, activation=\"swish\")(x)\n    x = layers.Dropout(DROPOUT_DENSE)(x)\n    out = layers.Dense(NUM_CLASSES, activation=\"softmax\", dtype=\"float32\")(x)\n\n    model = keras.Model(inp, out, name=\"mnist_eff_head\")\n\n    lr_schedule = keras.optimizers.schedules.CosineDecayRestarts(\n        initial_learning_rate=3e-3,\n        first_decay_steps=steps_per_epoch_est * 4,\n        t_mul=2.0,\n        m_mul=1.0,\n        alpha=1e-5,\n    )\n    opt = keras.optimizers.Adam(learning_rate=lr_schedule)\n    loss = keras.losses.CategoricalCrossentropy(label_smoothing=LABEL_SMOOTH)\n    model.compile(optimizer=opt, loss=loss, metrics=[keras.metrics.CategoricalAccuracy(name=\"acc\")])\n    return model\n\n# ------------------------------------------------------------\n# 6.1) Model summary (optional quick check)\n# ------------------------------------------------------------\nsteps_per_epoch_dummy = max(1, math.ceil((len(X) * (FOLDS - 1) / FOLDS) / BATCH))\nexample_model = make_rescnn(input_shape=X.shape[1:], steps_per_epoch_est=steps_per_epoch_dummy)\nprint(example_model.summary())\ndel example_model\ngc.collect()\n\n# ------------------------------------------------------------\n# 7) Expanded TTA: rotations, shifts, flips\n# ------------------------------------------------------------\ndef tta_predict(model, Xarr):\n    preds = []\n    for flip in TTA_FLIPS:\n        Xf = np.copy(Xarr)\n        if flip:\n            Xf = Xf[:, :, ::-1, :]  # horizontal flip\n        for (dy, dx) in TTA_SHIFTS:\n            # shift via np.roll; pad zeros at exposed edges\n            Xs = np.roll(Xf, shift=dy, axis=1)\n            Xs = np.roll(Xs, shift=dx, axis=2)\n            if dy > 0: Xs[:, :dy, :, :] = 0\n            if dy < 0: Xs[:, dy:, :, :] = 0\n            if dx > 0: Xs[:, :, :dx, :] = 0\n            if dx < 0: Xs[:, :, dx:, :] = 0\n            for deg in TTA_ROT_DEG:\n                if deg == 0:\n                    Xr = Xs\n                else:\n                    Xr = np.stack(\n                        [\n                            scipy_rotate(\n                                Xs[i, ..., 0],\n                                deg,\n                                reshape=False,\n                                order=1,\n                                mode=\"constant\",\n                                cval=0.0,\n                            )\n                            for i in range(len(Xs))\n                        ],\n                        axis=0,\n                    )[..., np.newaxis]\n                preds.append(model.predict(Xr, batch_size=BATCH, verbose=0))\n    return np.mean(preds, axis=0)\n\n# ------------------------------------------------------------\n# 8) 5-fold × 5-seed CV training + ensemble\n# ------------------------------------------------------------\nskf_base = StratifiedKFold(n_splits=FOLDS, shuffle=True, random_state=BASE_SEED)\n\noof_sum_probs  = np.zeros((len(X), NUM_CLASSES), dtype=np.float32)\noof_sum_counts = np.zeros(len(X), dtype=np.int32)\n\ntest_probs_list = []\nhistories = []\n\nsteps_per_epoch_est = steps_per_epoch_dummy\nmodel_counter = 0\n\ndef build_model(model_type, steps_est):\n    if strategy:\n        with strategy.scope():\n            return (make_rescnn if model_type==\"rescnn\" else make_efficient_head)(input_shape=X.shape[1:], steps_per_epoch_est=steps_est)\n    else:\n        return (make_rescnn if model_type==\"rescnn\" else make_efficient_head)(input_shape=X.shape[1:], steps_per_epoch_est=steps_est)\n\nMODEL_TYPES = [\"rescnn\"] + ([\"eff\"] if USE_EFFICIENTNET_B0 else [])\n\nfor seed in SEEDS:\n    print(f\"\\n*************** SEED {seed} ***************\\n\")\n    np.random.seed(seed); random.seed(seed); tf.random.set_seed(seed)\n\n    for fold, (tr_idx, val_idx) in enumerate(skf_base.split(X, y_all), start=1):\n        for mtype in MODEL_TYPES:\n            model_counter += 1\n            print(f\"\\n==== Model {model_counter}: {mtype.upper()} | Seed {seed}, Fold {fold}/{FOLDS} ====\\n\")\n\n            Xtr, Xval = X[tr_idx], X[val_idx]\n            ytr, yval = y_all[tr_idx], y_all[val_idx]\n\n            model = build_model(mtype, steps_per_epoch_est)\n            ckpt_path = OUT / f\"best_{mtype}_seed{seed}_fold{fold}.weights.h5\"\n\n            cbs = [\n                keras.callbacks.ModelCheckpoint(\n                    str(ckpt_path),\n                    save_weights_only=True,\n                    monitor=\"val_acc\",\n                    mode=\"max\",\n                    save_best_only=True,\n                    verbose=1,\n                ),\n                keras.callbacks.EarlyStopping(\n                    monitor=\"val_acc\",\n                    mode=\"max\",\n                    patience=8,\n                    restore_best_weights=True,\n                    verbose=1,\n                ),\n            ]\n\n            h = model.fit(\n                make_ds(Xtr, ytr, training=True),\n                validation_data=make_ds(Xval, yval, training=False),\n                epochs=EPOCHS,\n                verbose=2,\n                callbacks=cbs,\n            )\n            histories.append(h.history)\n\n            # OOF predictions\n            val_probs = model.predict(Xval, batch_size=BATCH, verbose=0)\n            oof_sum_probs[val_idx] += val_probs\n            oof_sum_counts[val_idx] += 1\n\n            # Test predictions with expanded TTA\n            test_probs_list.append(tta_predict(model, X_test))\n\n            gc.collect()\n\n# ------------------------------------------------------------\n# 9) Pseudo-labeling step (lower threshold, larger cap)\n# ------------------------------------------------------------\nprint(\"\\nComputing ensemble test probabilities for pseudo-labeling …\")\nensemble_test_probs = np.mean(test_probs_list, axis=0)\nensemble_test_conf  = ensemble_test_probs.max(axis=1)\nensemble_test_pred  = ensemble_test_probs.argmax(axis=1)\n\npl_idx = np.where(ensemble_test_conf >= PL_THRESH)[0]\nprint(f\"[PL] High-confidence test samples (>= {PL_THRESH}): {len(pl_idx)}\")\n\nif len(pl_idx) > MAX_PL_SAMPLES:\n    sorted_idx_global = np.argsort(ensemble_test_conf[pl_idx])\n    pl_idx = pl_idx[sorted_idx_global[-MAX_PL_SAMPLES:]]\n    print(f\"[PL] Capped to most confident {MAX_PL_SAMPLES} samples\")\n\nif len(pl_idx) > 0:\n    X_pl = X_test[pl_idx]\n    y_pl = ensemble_test_pred[pl_idx]\n\n    X_aug = np.concatenate([X, X_pl], axis=0)\n    y_aug = np.concatenate([y_all, y_pl], axis=0)\n    print(\"Augmented train with pseudo-labels:\", X_aug.shape, y_aug.shape)\n\n    tf.random.set_seed(9999); np.random.seed(9999); random.seed(9999)\n    steps_per_epoch_est_pl = max(1, math.ceil(len(X_aug) / BATCH))\n\n    # Train both heads on pseudo-labeled set\n    for mtype in MODEL_TYPES:\n        print(f\"[PL] Training {mtype.upper()} head on augmented data\")\n        pl_model = build_model(mtype, steps_per_epoch_est_pl)\n        ckpt_path_pl = OUT / f\"best_pl_{mtype}.weights.h5\"\n\n        cbs_pl = [\n            keras.callbacks.ModelCheckpoint(\n                str(ckpt_path_pl),\n                save_weights_only=True,\n                monitor=\"val_acc\",\n                mode=\"max\",\n                save_best_only=True,\n                verbose=1,\n            ),\n            keras.callbacks.EarlyStopping(\n                monitor=\"val_acc\",\n                mode=\"max\",\n                patience=5,\n                restore_best_weights=True,\n                verbose=1,\n            ),\n        ]\n\n        idx_all = np.arange(len(X_aug))\n        np.random.shuffle(idx_all)\n        split = int(0.9 * len(idx_all))\n        tr_pl, val_pl = idx_all[:split], idx_all[split:]\n        Xtr_pl, Xval_pl = X_aug[tr_pl], X_aug[val_pl]\n        ytr_pl, yval_pl = y_aug[tr_pl], y_aug[val_pl]\n\n        print(\"Pseudo-label training shapes:\", Xtr_pl.shape, Xval_pl.shape)\n\n        h_pl = pl_model.fit(\n            make_ds(Xtr_pl, ytr_pl, training=True),\n            validation_data=make_ds(Xval_pl, yval_pl, training=False),\n            epochs=20,\n            verbose=2,\n            callbacks=cbs_pl,\n        )\n\n        pl_test_probs = tta_predict(pl_model, X_test)\n        test_probs_list.append(pl_test_probs)\n\n# ------------------------------------------------------------\n# 9.5) Extra full-data models (bagging)\n# ------------------------------------------------------------\nif EXTRA_FULL_MODELS > 0:\n    print(f\"\\nTraining {EXTRA_FULL_MODELS} extra models on the full training data …\")\n    for m in range(EXTRA_FULL_MODELS):\n        print(f\"\\n[Full-data model {m+1}/{EXTRA_FULL_MODELS}]\")\n        seed_fd = 12345 + m\n        np.random.seed(seed_fd); random.seed(seed_fd); tf.random.set_seed(seed_fd)\n\n        idx_all = np.arange(len(X))\n        np.random.shuffle(idx_all)\n        split = int((1.0 - FULL_VAL_FRACTION) * len(idx_all))\n        tr_idx_fd, val_idx_fd = idx_all[:split], idx_all[split:]\n\n        Xtr_fd, Xval_fd = X[tr_idx_fd], X[val_idx_fd]\n        ytr_fd, yval_fd = y_all[tr_idx_fd], y_all[val_idx_fd]\n\n        print(\"Full-data model shapes:\", Xtr_fd.shape, Xval_fd.shape)\n\n        steps_per_epoch_fd = max(1, math.ceil(len(Xtr_fd) / BATCH))\n\n        for mtype in MODEL_TYPES:\n            full_model = build_model(mtype, steps_per_epoch_fd)\n            ckpt_path_fd = OUT / f\"best_full_{mtype}_{m+1}.weights.h5\"\n\n            cbs_fd = [\n                keras.callbacks.ModelCheckpoint(\n                    str(ckpt_path_fd),\n                    save_weights_only=True,\n                    monitor=\"val_acc\",\n                    mode=\"max\",\n                    save_best_only=True,\n                    verbose=1,\n                ),\n                keras.callbacks.EarlyStopping(\n                    monitor=\"val_acc\",\n                    mode=\"max\",\n                    patience=6,\n                    restore_best_weights=True,\n                    verbose=1,\n                ),\n            ]\n\n            h_fd = full_model.fit(\n                make_ds(Xtr_fd, ytr_fd, training=True),\n                validation_data=make_ds(Xval_fd, yval_fd, training=False),\n                epochs=EPOCHS,\n                verbose=2,\n                callbacks=cbs_fd,\n            )\n            histories.append(h_fd.history)\n\n            test_probs_list.append(tta_predict(full_model, X_test))\n            gc.collect()\n\n# ------------------------------------------------------------\n# 10) Final submission\n# ------------------------------------------------------------\nfinal_test_probs = np.mean(test_probs_list, axis=0)\nfinal_pred = final_test_probs.argmax(axis=1)\n\nsub = pd.DataFrame({\"ImageId\": np.arange(1, len(final_pred) + 1), \"Label\": final_pred})\nsub_path = OUT / \"submission.csv\"\nsub.to_csv(sub_path, index=False)\nprint(\"\\nSaved submission to:\", sub_path)\ntry:\n    display(FileLink(str(sub_path)))\nexcept Exception:\n    pass\n\n# ------------------------------------------------------------\n# 11) OOF diagnostics (CV models only)\n# ------------------------------------------------------------\noof_sum_counts[oof_sum_counts == 0] = 1\noof_probs = oof_sum_probs / oof_sum_counts[:, None]\n\nval_pred = oof_probs.argmax(axis=1)\nval_acc  = (val_pred == y_all).mean()\nprint(f\"\\n[OOF ensemble] accuracy (CV models only) = {val_acc * 100:.4f}%\")\n\ncm = confusion_matrix(y_all, val_pred, labels=list(range(NUM_CLASSES)))\ncm_df = pd.DataFrame(cm, index=range(NUM_CLASSES), columns=range(NUM_CLASSES))\ncm_df.to_csv(OUT / \"confusion_matrix_oof.csv\", index=True)\n\nplt.figure(figsize=(6, 5))\ncmn = cm / (cm.sum(axis=1, keepdims=True) + 1e-9)\nim = plt.imshow(cmn, cmap=\"Blues\", vmin=0.0, vmax=1.0)\nplt.colorbar(im, fraction=0.046, pad=0.04)\nplt.title(\"OOF Confusion Matrix (row-normalized) — Ensemble\")\nplt.xlabel(\"Predicted label\")\nplt.ylabel(\"True label\")\np_cm = FIGS / \"confusion_matrix_oof.png\"\nsavefig(p_cm)\nshowimg(p_cm)\n\nconf = oof_probs.max(axis=1)\nif PLOT_CONF_HIST:\n    plt.figure(figsize=(6, 4))\n    plt.hist(conf, bins=30, range=(0.8, 1.0), alpha=0.9)\n    plt.xlabel(\"Max predicted probability\")\n    plt.ylabel(\"Count\")\n    plt.title(\"OOF prediction confidence histogram\")\n    p_hist = FIGS / \"oof_confidence_hist.png\"\n    savefig(p_hist)\n    showimg(p_hist)\n\nif PLOT_MISCLASS:\n    mis_idx = np.where(val_pred != y_all)[0]\n    print(\"Number of OOF misclassified examples:\", len(mis_idx))\n    if len(mis_idx) > 0:\n        max_show = min(36, len(mis_idx))\n        chosen = np.random.choice(mis_idx, size=max_show, replace=False)\n        plt.figure(figsize=(10, 10))\n        for k, idx in enumerate(chosen):\n            ax = plt.subplot(6, 6, k + 1)\n            ax.imshow(X_raw[idx], cmap=\"gray\")\n            ax.axis(\"off\")\n            ax.set_title(f\"T:{y_all[idx]} P:{val_pred[idx]}\", fontsize=8)\n        plt.suptitle(\"OOF misclassified examples (True vs Predicted)\", fontsize=14)\n        p_mis = FIGS / \"oof_misclassified_examples.png\"\n        savefig(p_mis)\n        showimg(p_mis)\n\n# ------------------------------------------------------------\n# 12) Save meta & zip artifacts\n# ------------------------------------------------------------\nmeta = {\n    \"base_seed\": BASE_SEED,\n    \"seeds\": SEEDS,\n    \"folds\": FOLDS,\n    \"epochs\": EPOCHS,\n    \"batch\": BATCH,\n    \"oof_accuracy\": float(val_acc),\n    \"tta_rot_deg\": TTA_ROT_DEG,\n    \"tta_shifts\": TTA_SHIFTS,\n    \"tta_flips\": TTA_FLIPS,\n    \"weight_decay\": WEIGHT_DECAY,\n    \"dropout_conv\": DROPOUT_CONV,\n    \"dropout_dense\": DROPOUT_DENSE,\n    \"label_smoothing\": LABEL_SMOOTH,\n    \"pseudo_label_threshold\": PL_THRESH,\n    \"extra_full_models\": EXTRA_FULL_MODELS,\n    \"full_val_fraction\": FULL_VAL_FRACTION,\n    \"use_efficient_head\": USE_EFFICIENTNET_B0,\n    \"num_models_cv\": model_counter,\n    \"num_models_total_including_pl\": len(test_probs_list),\n}\n(OUT / \"run_meta.json\").write_text(json.dumps(meta, indent=2))\n\n(OUT / \"README.txt\").write_text(\n    f\"Kaggle Digit Recognizer — Residual CNN + EfficientNet-like ensemble with strong augmentation (mixed-precision safe), \"\n    f\"expanded TTA, pseudo-labeling, and multi-GPU.\\n\"\n    f\"OOF ensemble accuracy (CV models): {val_acc * 100:.4f}%.\\n\"\n    f\"Submission saved to: mnist_out/submission.csv\\n\"\n    f\"Figures saved in: mnist_out/figs\\n\"\n)\n\nzip_path = WORK / \"mnist_out.zip\"\nshutil.make_archive(str(zip_path.with_suffix(\"\")), \"zip\", root_dir=OUT)\nprint(\"\\nZipped artifacts:\", zip_path)\ntry:\n    display(FileLink(str(zip_path)))\nexcept Exception:\n    pass\n\nprint(\"\\nAll done.\")","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true,"execution":{"iopub.status.busy":"2025-11-28T16:56:00.224011Z","iopub.execute_input":"2025-11-28T16:56:00.224621Z"}},"outputs":[{"name":"stderr","text":"2025-11-28 16:56:02.871259: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:477] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\nWARNING: All log messages before absl::InitializeLog() is called are written to STDERR\nE0000 00:00:1764348963.106900      79 cuda_dnn.cc:8310] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\nE0000 00:00:1764348963.175099      79 cuda_blas.cc:1418] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n","output_type":"stream"},{"name":"stdout","text":"TF version: 2.18.0\nGPUs: [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU'), PhysicalDevice(name='/physical_device:GPU:1', device_type='GPU')]\nINFO:tensorflow:Using MirroredStrategy with devices ('/job:localhost/replica:0/task:0/device:GPU:0', '/job:localhost/replica:0/task:0/device:GPU:1')\n","output_type":"stream"},{"name":"stderr","text":"I0000 00:00:1764348978.401258      79 gpu_device.cc:2022] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 13942 MB memory:  -> device: 0, name: Tesla T4, pci bus id: 0000:00:04.0, compute capability: 7.5\nI0000 00:00:1764348978.401912      79 gpu_device.cc:2022] Created device /job:localhost/replica:0/task:0/device:GPU:1 with 13942 MB memory:  -> device: 1, name: Tesla T4, pci bus id: 0000:00:05.0, compute capability: 7.5\n","output_type":"stream"},{"name":"stdout","text":"Using MirroredStrategy: True\nUsing mixed precision: mixed_float16\nTrain images: (42000, 28, 28) Test images: (28000, 28, 28)\nLabel distribution: Counter({1: 4684, 7: 4401, 3: 4351, 9: 4188, 2: 4177, 6: 4137, 0: 4132, 4: 4072, 8: 4063, 5: 3795})\nModel input shapes: (42000, 28, 28, 1) (28000, 28, 28, 1)\nPlotting sample digits per class …\n","output_type":"stream"},{"output_type":"display_data","data":{"image/png":"iVBORw0KGgoAAAANSUhEUgAACUQAAAk6CAYAAADn7oRVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAB7CAAAewgFu0HU+AAEAAElEQVR4nOzdd5xU1f0//rOwgHQUUFRaFMQC9iDGAoQodrF3LLFhi8YYWxSIJWo0lmhssUfFr6hoFCuCioKKiA0RSxCVIqKACEjZ+f3hz/24yrm73J3Zcvf5fDx8PHZ43XPOe2fnzM7Mvr23KJfL5QIAAAAAAAAAAEAG1KvuAgAAAAAAAAAAAPJFQxQAAAAAAAAAAJAZGqIAAAAAAAAAAIDM0BAFAAAAAAAAAABkhoYoAAAAAAAAAAAgMzREAQAAAAAAAAAAmaEhCgAAAAAAAAAAyAwNUQAAAAAAAAAAQGZoiAIAAAAAAAAAADJDQxQAAAAAAAAAAJAZGqIAAAAAAAAAAIDM0BAFAAAAAAAAAABkhoYoAAAAAAAAAAAgMzREAQAAAAAAAAAAmaEhCgAAAAAAAAAAyAwNUQAAAAAAAAAAQGZoiAIAAAAAAAAAADJDQxQAAAAAAAAAAJAZGqIAAAAAAAAAAIDM0BAFAAAAGTJkyJBQVFRU+l91GjNmTJlaxowZU631ZMlP79chQ4ZEj7vzzjvLHDtt2rQqq3FlKlo35MO0adPKPObuvPPO6i4JAAAAqCIaogAAAMisn/8xPN//de7cubq/RQAAAAAAfqa4ugsAAAAAgJ+aNm1ambP5HHXUURoQAQAAAKgwDVEAAABkVlFRUahfv36Fjl2xYkWZ2xUZV1zsbTUUwrRp08LQoUNLb/fp00dDFAAAAAAV5pNbAAAAMqtTp05h+fLl5R43bdq08Ktf/ar0du/evcOYMWMKWFnhDBkyJAwZMqS6ywgh/NDEksvlqruMOu2oo44KRx11VHWXUcrjAQAAAICqUK+6CwAAAAAAAAAAAMgXDVEAAAAAAAAAAEBmaIgCAAAAAAAAAAAyo7i6CwAAAIAsmTp1anjrrbfCzJkzw8KFC0Pnzp3DoYceGj1+zpw54d133w0fffRR+Oabb8KKFSvC6quvHtZZZ52w7bbbhrZt21Zh9f9n+fLl4aWXXgqffPJJ+PLLL0OrVq1C165dww477BAaNWpU5fW8+eab4b333gtffPFFWG211UKHDh1Cnz59whprrJF6znnz5oXRo0eHzz77LCxZsiSsu+66YaONNgpbbrllHitfNd9++214/vnnw/Tp08PixYurtaaSkpIwbty48P7774c5c+aE1q1bh44dO4bevXuHxo0bV3k9aX344Ydh0qRJYcaMGWHhwoWhuLg4NGvWLHTo0CFssMEGoVu3bqGoqKjK6snlcmHcuHHhww8/DDNnzgwtWrQIv/rVr0Lfvn3DaqutVqm5V6xYEV5//fXw4Ycfhi+//DKsWLEitG3bNmy44YahZ8+eoX79+nn5HpYsWRJeeuml8Nlnn4XZs2eHxo0bh9122y1ssMEGeZn/p2bOnBnGjx8fZs+eHb7++uvQsGHD0LZt27DxxhuHzTffPDRo0CDva4ZQ2OfmJUuWhEmTJoXJkyeHr7/+OixZsiQ0btw4rLHGGqFz586he/fuqzR/LpcL7733Xnj77bfD7Nmzw3fffRcaNmwYWrRoETp27Bg23HDDsN5666WuFwAAAGqlHAAAANRx//vf/3IhhNL/evfuHT128ODBZY790YgRI3JbbbVVmSyEkGvZsuUv5nj99ddzf/rTn3KbbLLJL47/+X/bbrtt7tFHH63w9xKrb2U6depUetyRRx6Zy+VyueXLl+cuvvjiXLt27VZaT/PmzXMXXXRRbunSpeXWMnr06DJjR48eHT32yCOPLD2uU6dOpf8+fPjwXPfu3VdaS7169XJHHnlkbtasWRW5a0rNnDkzd9hhh+UaNmy40nk32mij3P333196/E+zwYMHr9JaFfX111/njj/++Nxqq6220po23njj3AMPPLDKNd1xxx1ljv3f//5Xbi0rVqzIXXfdddHHQIsWLXKnnnpqbuHChblcLv6zW5ny6v7pY7Ki/91xxx0r/R5uvPHG3IYbblju+JYtW+YOOOCA3BtvvFHufVNRsfvk+uuvj36PzZs3z5155pml9+uq+OKLL3KDBg3Krb766tHvs1WrVrmzzz479/XXX1dozpX9rL7++uvcCSeckGvRosUv5r/66qtXue6YpUuX5m699dbo3v/xv2bNmuX222+/3KhRo1Y6z8+f21f2WPmpQj4353I/PPfE7r+f/9e1a9fcWWedlVu8eHF0viVLluQuvfTSXMeOHcudr23btrmjjjoq99FHH61SzQAAAFBbOUMUAAAAVNKpp54arr/++godO2/evPDrX/+6wnOPGzcu7L333uGYY44JN954Y2jYsGHaMsv1zTffhL333ju89NJL0WO+/fbbcMEFF4Rx48aFESNGFOzsLLlcLvzhD38I//znP6PHlJSUhLvuuiuMHTs2PP/886Fjx47lzvvqq6+GXXfdNXzzzTfRY95///1wyCGHhFdeeSVcd911qepfFVOmTAn9+vULM2bMiB4zefLkcNBBB4WXX345XHvttQWrZdGiRWHvvfcOzz33XPSYBQsWhH/+859h1KhR4amnnipYLWl99913Ye+99w6jRo2q0PHz588PDz74YNhyyy0Ldiau5cuXh0MOOSQMHz48esy3334brrrqqvDoo4+G559/PnTo0KFCc991111h0KBBYfHixYnHzZs3L1x++eXh7rvvDv/973/DVltttUrfw6RJk8Jee+0VPvvss1Uat6o++OCDMGDAgDBlypRyj124cGF46KGHwkcffRQmTZpUqXUL/dw8bty4sPvuuyc+9/zUhx9+GP7+97+HP/7xj6Fdu3a/yGfPnh369+8f3nrrrQrNN2fOnHDnnXeG/v37h/XXX79CYwAAAKA20xAFAAAAlXDFFVeUNkM1b948/O53vwtdunQJ9evXD9OmTQvjxo2Ljq1Xr17YeOONw8YbbxzWXXfd0Lx587B8+fIwe/bsMGHChDJ/6L799ttDs2bNCtYMs3z58nDAAQeUNkN169Yt9O7dO6y11lrh22+/DS+99FJ44403So8fOXJkuOSSS8KQIUMKUs+QIUNKm6HWWmut8Lvf/S506tQpLF++PLzzzjvh2WefDcuXLw8hhPDxxx+Ho446KowaNSrx0meTJ08O/fv3D/Pnzy/9t4YNG4bf/e53YeONNw4NGjQIH3/8cXjqqadKm366detWkO/vR59//nn47W9/G2bOnFn6b8XFxeG3v/1t6NGjR2jQoEH44IMPwtNPPx0WLVoUrrvuuoJcliyEH5rQ9tlnn180Q3Xv3j307t07rLHGGmHOnDnh+eefD1OnTi1t0srnpbiKi4tD/fr1Qy6XCyUlJaX/Xq9evejPtl69emVun3TSSWWaoerXrx969eoVNt1009CmTZtQVFQU5s2bV9pEk9SIli/nnntuaTNUq1atwq677hp+9atfhUWLFoWJEyeGsWPHln6/H330Uejbt2947bXXyr0k5GWXXRbOPffcMv+2/vrrh+222y6ss846oX79+uGzzz4Lzz//fPj8889DCD9cgq53795h/PjxoXv37hWq/6uvvgp77713aTNUjx49wvbbbx/atGkT5s6dG15//fW8XHbwtddeC/379w/z5s0r8+89evQI2267bVhzzTXD8uXLw6xZs8Ibb7wR3n333ZDL5Sq97s/l+7n5q6++CnvuuWeZZqjVV1899O7dO6y//vqhefPmYfHixWHu3Llh8uTJ4c033yy3we3ggw8uU0ejRo3C9ttvHzbeeOOw+uqrhxUrVoT58+eHDz74IEycODHMnTu3EvcIAAAA1ELVe4IqAAAAqH6VuWRe/fr1cyGE3Mknn5ybP3/+L47//vvvy9yeN29erl+/frl77703N3fu3MS63n777dxvfvObMuuNHz8+cUzaS+b9ePm4tm3b5h577LGVHv/AAw+UucxckyZNVvo9/yjtJfMaNGiQKyoqytWvXz93xRVX/OI+zOV+uG86dOhQZv5nn302Ov/y5ctzPXv2LHN8v379cp999tkvjp0/f37u6KOPzoUQco0aNarw5enS2G233crMv8022+Q+/PDDXxz35Zdf5vbee+9VrmlVLpl33XXXlTm2devWuf/+978rPfa+++7LNWvW7Bf1VPaSeT9alcfOT02bNq3MuF//+te5jz/+OHHMW2+9lTvzzDNzN954Y4XWqIifPp4bNmyYKyoqyoUQcieccMJKL4k3adKk3EYbbVSm9oEDByau8eSTT5bOG0LIdevWLffcc8+t9Nhly5blbrjhhjKXZNxwww1Xurd+tLLnuY4dO+aef/75lR6fNFdFfPnll7n27duXWXf77bfPTZw4MTpm+vTpub/97W+5XXbZZaX5qlwyr5DPzUOHDi1z7Pnnn594KbxFixblHnvssdyuu+6amz179i/yF154ocx8u+2220qP+9GKFSty48aNyx133HGrfJk/AAAAqK3K/i90AAAAwCpZsWJFOPPMM8P1118fWrRo8Yv855dRatmyZXjuuefCoYceWu7ZX3r06BGef/75Mpfxuuaaa/JS988tXbo0NG/ePLz44othzz33XOkxBx54YBg8eHDp7UWLFoWHHnoo77UsW7Ys5HK5cNddd4WzzjprpZei6tGjRxg2bFiZf7vnnnuicw4fPjy89tprpbd/85vfhCeeeCK0b9/+F8e2aNEi3H777WHgwIHh+++/r8R3kuzZZ58NI0eOLL29ySabhGeeeSZ06dLlF8e2bds2DB8+POyyyy4FqWnx4sVlfrYNGzYMTz/9dNhjjz1WevwhhxwSRowYEerVq1fQ+2hV/fTMUPXq1QsPPvhguWew2nTTTcOVV14ZTjzxxILUtHTp0pDL5cKJJ54YbrrpptC0adNfHLPZZpv94jJ5d999d5g4ceJK51yyZEk4+uijS8+OtOWWW4ZXX3019OvXb6XHFxcXh5NOOikMHz689ExOU6ZMCf/5z38q9D2sWLEirLHGGuHFF18Mffv2Xekxlb2c57nnnlt6FqsQQth3333D888/H7bYYovomA4dOoRzzjmnzD5Kq5DPzT8961q/fv3CxRdfHFZbbbXo8Y0bNw577rlnGDlyZFhzzTUT52vZsmV44IEHVnrcj+rVqxd69eoVbrnllrDXXntFjwMAAIAs0RAFAAAAldC5c+dwySWXFGz+Ro0albkk1pNPPlmQS0SFEMJFF10UNtxww8RjTjrppDKND0mXBKyMAQMGhMMOOyzxmN/85jfh17/+dYVquemmm0q/LioqCrfcckto1KhR4vzXXnttaN26dQUrXnU/rSmEEG688caVNtX9qLi4ONxyyy2hcePGea/l//2//1fmcl6nn3562GqrrRLH9OvXLxx99NF5r6UyZs+eXfp127ZtQ6dOnaqxmv+z7rrrhiuvvDLxmHbt2oWrr766zL/deOONKz32rrvuCrNmzQoh/HBJwPvuuy+0bNmy3Dp23333cMABB5Q7/8r87W9/K9j9+fnnn5dpaOzUqVO48847Q4MGDSo0Ph+X61tVq/Lc/NPH5dZbb13ptX8634YbbhiaNWtW6TkBAAAgazREAQAAQCUcc8wx5TbWVFaPHj1Kv54/f354//33875Go0aNwu9///tyj2vVqlWZegpRSwghnHzyyRU6bscddyz9+qOPPgrLli37xTELFy4ML774Yunt3r17h0022aTcuVu1alVuU1ZaS5cuDU888UTp7c033zzssMMO5Y7r0KFD2HffffNez09rKSoqCoMGDarQuIr+nKrKTxtDvvzyyzBjxoxqrOb//P73v1/pmaF+bt999y1zlqhHHnlkpcfdfffdpV/3798/dOvWrcK1HHzwwaVfT5w4MSxYsKDcMc2aNQuHH354hddYVQ899FBYunRp6e2zzjorNG/evGDr5UtFn5t/+rh88803K73uT+f74IMPwqJFiyo9JwAAAGSNhigAAACohD59+qQe+/XXX4ebb745HH744WGzzTYLa6+9dmjatGkoLi4u89/Pm3d+elmpfNlyyy0rfJaRzp07l349b968vNdSv379sN12261yLblcbqXNHa+//nooKSkpvb3zzjtXuJZVOXZVTJo0qcyl5mKXpluZQlzy6tVXXy39umvXrmXu1yRbbLFFaNOmTd7rSatnz56lX+dyubDPPvuEDz/8sBor+kHsMpQ/V1RUVOaxMHfu3PDRRx+VOWbRokXh9ddfL73906bAiujatWvp1yUlJeHtt98ud0zPnj1DkyZNVmmdVTFmzJjSr4uKiso0bVWHfD83//Rx+cwzz4Tzzz+/Uk1MP51v3rx54YADDqgxzX8AAABQU2iIAgAAgEoo7xJzK7No0aJwzjnnhLXXXjuceOKJ4d577w1vv/12mDVrVli0aFFYsWLFL/77qZ9e2ixf1l133Qof+9Mz3SxcuDDvtay++uoVvizcz8+6s7J6PvnkkzK3f3pWl/KsyrGr4udnktlss80qPHbzzTfPay3Lly8P06dPL729qt9zoe6jNLbZZpuw7bbblt5+7bXXQrdu3cIOO+wQLrnkkvDCCy9U+dl06tWrF7p3717h43/+8508eXKZ2++++26ZM6Gdd955v2jUSfrv5/PPnTu33JrSPM+tinfffbf06y5duhT0UpVJCvXcfMopp5S5/N+ll14a1l577XDooYeGf//73+H9999fpUuhDhgwoEzT4siRI0OnTp1C//79w1VXXRXGjx9f5oxbAAAAUBcVV3cBAAAAUJu1atVqlY7/7rvvwq677hpeeuml1GsuWbIk9diYilzO60dFRUWlX6/KH/ELXUsIK6/n500Ka6yxRoXnL1Rjxs9rWnPNNSs8dq211sprLT8/y9eq3D8hFO4+SuuBBx4IO++8c5gyZUoI4YfHxNixY8PYsWNDCCEUFxeHrbfeOvzud78LBx54YMEbulq2bBlWW221Ch//85/vzx8rX331VZnbPz37WRrz588v95hVfZ5bVT9tylpnnXUKulZMIZ+bN9lkk3DHHXeE3//+96VnhluwYEG4//77w/333x9C+GHf7bjjjmG33XYL+++/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fm5e1Utv/vxx2alTpzK333jjjXIbFpPmK9TjHAAAAGoSDVEAAABQRXbbbbcyTTl/+tOfomf7efbZZ8OOO+4Yvvjii9C0adOqKjGz1l9//XDhhReW3l6yZEnYZZddwimnnBLeeOONsGjRorB06dIwZcqU8Ne//jVstdVWYfbs2WHbbbctWE0777xzmbNEvfPOO6F///7hk08++cWxX331VTjggAPCyJEjy1xqL59uvPHG0Lhx49Lbt9xyS/jNb34THnnkkTB37txQUlISvvzyyzBs2LCw1VZbheHDh4dGjRqFLbfcMu+1tGzZMmy00UZlahs2bFi5l4a7+uqrQ6dOncIFF1xQ7mXBXnzxxXD00UeX3i4qKgoDBgyoVN0r07Bhw1BUVBRuuOGGcPLJJ6+0oe3tt98Ov/3tb8ucHWrgwIFhq622WumcTZs2Dbfeemtp09iKFSvCfvvtF84888zw5ZdfRmvJ5XLhlVdeCX/4wx9Cx44dw3/+859Kfnf587e//S106NCh9PbDDz8c+vXrFyZNmhQdM2PGjHD55ZeH3XffvVJrF/q5eZtttgk77LBDuO2228JXX30VPW7p0qXhoosuCsOGDSv9t+222y6stdZaZY4788wzQ9euXcNll10WPvzww8S1H3nkkXDWWWeV3m7cuHHYZZddKlQ3AAAA1GbF1V0AAAAA1BXt2rULJ598crj66qtDCCEsXrw47LfffmGLLbYIO+64Y2jZsmX46quvwgsvvBDee++9EEII9evXD//4xz/CCSecUJ2lZ8I555wT3nnnnfDAAw+EEH5oIrnhhhvCDTfcsNLj11hjjXD//feXOZtKcXF+P0q5+eabQ8+ePcPMmTNDCCGMGzcubLjhhqFfv36he/fuobi4OHz44YfhySefLG2kueqqq8Ipp5yS1zpCCKFr167h3nvvDQcddFDpmXleffXVsO+++0bHXHnllWHChAlh4sSJIYT83j/HH398OP3000MIIXz77bfhkEMOCSGEsNpqq4X69euXHnfzzTeHww47rPT2rFmzwsUXXxwuvvji0K5du7DllluG9ddfP7Rq1ao0f/XVV8Pbb79dZr3TTjstbLDBBnmr/0drr712OOCAA8KVV14Z/vWvf4X77rsv7LbbbuFXv/pVWLx4cZg4cWJ48cUXy5zxZ/311y99nojZe++9w9///vdw1llnhVwuF3K5XPjHP/4Rrr/++tCzZ8+w2WabhdatW4dly5aFefPmhQ8++CC8+eabBbv8YGW1bt06DB8+POy8885h/vz5IYQQXnrppbDFFluETTfdNGy77bahbdu2YcWKFWHWrFlh0qRJ4a233golJSVhs802q9TaVfHcPHbs2DB27NhwwgknhA033DBsvvnmoV27dqF58+Zh8eLF4ZNPPgmjR48u0zBVXFwcfRx88skn4dxzzw3nnntu6NixY9hyyy1Dp06dQqtWrcKKFSvC559/HsaOHRs++uijMuMuvfTS0KJFizR3EwAAANQqGqIAAACgCl122WXh7bffDqNGjSr9tzfffDO8+eabvzi2QYMG4bbbbgs77LBDVZaYWfXr1w/33ntv6NixY7j66qvD8uXLo8duuummYfjw4WUuSxZCyHsjQfv27cOoUaNCv379Spuili1bFp566qnw1FNP/eL4U045JZx88skFaYgKIYR99tkn/Pe//w3HHXdc+Oyzz6LHNW7cOPzrX/8KRx11VDjwwANL/z2f988pp5wSXnrppfDQQw+V+fclS5aUuZ10WbVZs2aFkSNHlrvW8ccfH6666qp0hVbApZdeGj755JPw8MMPh3nz5oX77rsvemyXLl3C888/H9ZYY41y5z3zzDNDly5dwlFHHRXmzZsXQvjhLEM/Nt+Up1BnG0urZ8+eYdy4cWGvvfYq08jz9ttv/6KBLd+q6rl5xYoV4b333ittrIpp3rx5GDZsWPj1r39d7pzTp08vc3axlalXr1648MILS5sMAQAAIOtcMg8AAACqUMOGDcNTTz0Vhg4dWnrGmp9r0KBB2GuvvcJrr70WjjjiiKotMOPq168frrjiivDWW2+FP/3pT6FHjx6hVatWoXHjxmH99dcPe+yxRxg2bFh47bXXQteuXX9xeauWLVvmvaaNNtoovPfee+G4444Lq6222kqP6datW7j33nvDP//5z7yv/3P9+/cPkydPDtdff3347W9/G9ZZZ53QsGHD0K5du9CzZ89w0UUXhalTp4ajjjoqhBDK3Ef5vH/q168fhg8fHkaOHBkGDhwYunfvHlq2bJl4Fqrzzz8/XHzxxWG77bYrt9mnfv36Yeeddw7PPfdcuPnmm8ucdSrfGjRoEB566KFwzTXXlLks3E81a9Ys/PGPfwyTJk2KHrMye++9d5g2bVq46KKLypzNLKZTp07h2GOPDaNGjQqXXXZZhdepKj/uh3/+85+ha9euice2bNkyHHLIIeH666+v9LqFfG5+/PHHwwknnBDWX3/9co9t3bp1OOWUU8LUqVPLXFLzp6655ppw3nnnha222qrcs7I1atQo7LPPPuH1118PgwcPrnDNAAAAUNsV5XK5XHUXAQAAAHXR4sWLw8svvxzef//98O2334bWrVuHddZZJ2y33XYVOjsMhffoo4+GAQMGlN5+5ZVXwrbbbluw9b799tswatSoMH369LB48eKwzjrrhI022ihsvfXWBVuzMnK5XGjdunXpZdiOP/74cPPNN1dzVT/4/vvvw7vvvhs++uijMHPmzLBw4cLQoEGD0LJly9C1a9ewxRZbFGyfHXXUUeGuu+4KIfzQgDRt2rTSrKSkJLzyyivho48+CrNmzQrNmzcPv/rVr0Lfvn1D48aNK732tGnTwoQJE8KcOXPCN998E4qLi0PLli1D586dw0YbbRQ6duxY6TWq0v/+97/w2muvhS+//DLMnz8/NG7cOKy11lph4403DptuumneL2MZQmGfm+fMmRPefffd8Mknn4Svv/46fP/996FJkyahbdu2oXv37qFHjx6r9D1999134Z133gkff/xxmD17dli0aFFo1KhRaNWqVdhwww3DFltsEZo1a1apmgEAAKA20hAFAAAAEHHkkUeGu+++O4QQQnFxcViwYEFemlayYvTo0eG3v/1t6e1bb701HHvssdVYUc2Q1BAFAAAAQOG5ZB4AAADASrzzzjth2LBhpbf79eunGeonVqxYES688MLS2/Xr1w+77LJLNVYEAAAAAD/QEAUAAADUGSNGjAjLli0r97j3338/DBgwICxdurT03wYNGlTI0mqEV155JXz++eflHrd06dLw+9//PowdO7b03/bcc8/Qvn37QpYHAAAAABWiIQoAAACoM0455ZTQqVOncPrpp4eRI0eGzz//PCxdujSUlJSEuXPnhlGjRoWTTz45bLnlluGTTz4pHde/f/+w1157VWPlVWPkyJFhvfXWCwMGDAh33nlnePfdd8PChQtDCCEsXLgwvPPOO+Gaa64JG220Uekl4UIIoWnTpuGKK66orrIBAAAAoIzi6i4AAAAAoCrNnDkzXHvtteHaa68t/beioqKQy+VWevzGG28c7rzzzlBUVFRVJVarZcuWhUcffTQ8+uijFTq+UaNG4c477wxdu3YtcGUAAAAAUDHOEAUAAADUGU2aNFnpv6+sGap+/frhiCOOCOPGjQvt2rUrdGk1Quz+ienRo0d4/vnnw/7771+gigAAAABg1TlDFAAAAFBnvPPOO+HZZ58NY8aMCRMnTgz/+9//wpw5c8KSJUtC48aNwxprrBE22GCD0Lt373DwwQeHLl26VHfJVeq8884Le+yxR3jqqafC+PHjw9SpU8OMGTPCwoULQ1FRUVh99dXDOuusE7bbbruw6667hl133bXOnDkLAAAAgNqjKBc7HzwAAAAAAAAAAEAt45J5AAAAAAAAAABAZmiIAgAAAAAAAAAAMkNDFAAAAAAAAAAAkBkaogAAAAAAAAAAgMzQEAUAAAAAAAAAAGSGhigAAAAAAAAAACAzNEQBAAAAAAAAAACZoSEKAAAAAAAAAADIDA1RAAAAAAAAAABAZmiIAgAAAAAAAAAAMkNDFAAAAAAAAAAAkBnF+Z6wqKgo31NCpuRyueouoQx7FpLZs1C72LNQu9izULvUpD1rv0KymrRfQ7BnoTz2LNQu9izULvYs1C753LPOEAUAAAAAAAAAAGSGhigAAAAAAAAAACAzNEQBAAAAAAAAAACZoSEKAAAAAAAAAADIDA1RAAAAAAAAAABAZmiIAgAAAAAAAAAAMkNDFAAAAAAAAAAAkBkaogAAAAAAAAAAgMzQEAUAAAAAAAAAAGSGhigAAAAAAAAAACAzNEQBAAAAAAAAAACZoSEKAAAAAAAAAADIDA1RAAAAAAAAAABAZmiIAgAAAAAAAAAAMkNDFAAAAAAAAAAAkBkaogAAAAAAAAAAgMzQEAUAAAAAAAAAAGSGhigAAAAAAAAAACAzNEQBAAAAAAAAAACZoSEKAAAAAAAAAADIjOLqLgAAAMiurbfeOpo99NBD0WzatGnRbK+99opm8+fPr1BdAAAAAABAdjlDFAAAAAAAAAAAkBkaogAAAAAAAAAAgMzQEAUAAAAAAAAAAGSGhigAAAAAAAAAACAzNEQBAAAAAAAAAACZoSEKAAAAAAAAAADIjOLqLoDK69y5czQ76aSTEseeddZZ0eyNN96IZocffng0mzJlSuKaAADUHc2aNYtmHTt2TJVts8020eyZZ56pWGHAKuvTp080Gzx4cKpxQ4cOjWZjxoxJrKe8HFh1zZs3j2aPPfZYNEva5yGEcM8990SzgQMHllsXZF2jRo2i2WmnnRbN/vKXv0SzN998M5o9/vjjifXccccd0Wzu3LmJYwGgNmnVqlU0O+KII6LZddddF83efffdxDX32GOPaPbpp58mjgWq3qBBg6LZ+uuvH83++Mc/FqKc1F5//fVoNmDAgGg2c+bMAlRTdZwhCgAAAAAAAAAAyAwNUQAAAAAAAAAAQGZoiAIAAAAAAAAAADJDQxQAAAAAAAAAAJAZGqIAAAAAAAAAAIDM0BAFAAAAAAAAAABkRlEul8vldcKionxOV6f07ds3mu27777R7JBDDolmLVq0SFxzxYoV0axRo0bRbOHChdHs3nvvjWannHJK6nqyIs9brtLs2cLYYIMNotlTTz0VzVq2bJk470477RTNJk6cWH5hrDJ7tm5I2rP9+vWrwkoKK+n39z333FOFlRSOPVvz/POf/4xm5b02jPnzn/8czR544IFoNn369FTrUTj2bHb06dMnVTZ48OD8FxNCGDp0aDQbMmRIQdasC2rSnrVf00t63zls2LBotvPOO6de8+KLL45mhXoeqOtq0n4NwZ4tT69evaLZ2LFjU82ZdJ+X9/j4/PPPo9lxxx0XzZ599tnyC2Ol7NnsOProo6PZbbfdFs0qs2d79uwZzSZMmBDN2rRpE82++uqrxDXrOnu2dmnbtm00u/POO6NZ//79o1ll9uzuu+8ezZ5++unEsaRjz7LrrrtGs8suuyxxbI8ePaJZTXtspZX0nuPggw+OZjNnzixEOXm9X50hCgAAAAAAAAAAyAwNUQAAAAAAAAAAQGZoiAIAAAAAAAAAADJDQxQAAAAAAAAAAJAZGqIAAAAAAAAAAIDM0BAFAAAAAAAAAABkRlEul8vldcKionxOlzm9evWKZsOGDYtmc+fOjWZPPPFENHvssccS65k+fXo0GzlyZDTbcsstE+eNOf744xPzf//736nmrU3yvOUqzZ5Nb4MNNohmSfvyV7/6Veo158+fH80GDRoUzdI+7hYvXpyYP/7446nmrU3s2dpltdVWi2YXXXRRNDvwwAOjWfv27VPXk/Tzqo7H1rJly6LZFVdcEc3uvffeaPbBBx9UqqZ8s2erXt++fRPzZ555JpoVFxfnu5zw9ddfR7PXX389cexDDz0Uze6///5otnDhwvILY6XsWUaPHh3N+vTpU5A1x4wZE83Ke06r62rSnrVfk9WvXz+aHX300dHs5ptvTrVe0mdIIYTwr3/9K5odddRR0Szp87CLL744ms2cOTOxnpr0WC6UmvY92rPJkj4zHjt2bKo5q+P9aNLnRAMGDCjImllhz9YuSb+7brzxxmjWsGHDAlQTwuGHHx7Ndtxxx2i20047RbOPPvoomv3+979PrOeLL75IzLPAnq1dRowYEc322GOPVHN+9dVX0axNmzaJY4877rho9sgjj0SzefPmlVsXK2fP1g1JfQZ77rlnNCtvz1b16+pFixYl5k2aNMn7mklOPvnkaHbTTTcVZM183q/OEAUAAAAAAAAAAGSGhigAAAAAAAAAACAzNEQBAAAAAAAAAACZoSEKAAAAAAAAAADIDA1RAAAAAAAAAABAZmiIAgAAAAAAAAAAMqMol8vl8jphUVE+p8uc7t27R7O2bdtGs3HjxkWzJUuWVKqmmDXXXDOavfDCC9GsW7du0ezJJ59MXHPPPfeMZiUlJYlja4s8b7lKs2fTu+aaa6LZKaecUnWF/P+SfpZpH3dLly5NzN98881o9uKLL0azO+64I5pNnTq1/MKqkD1buyT9Dpo8eXIVVvKDQuzL6vDpp59Gs3322SeavfXWW4UoJ1FNu1/rwp697777EvNDDjmkiioprGnTpkWz6667Lpo9/fTT0aw6npdqGnu2dunTp080Gzx4cKpxNc2YMWOiWd++fauukBqqJu1Z+zXZOeecE80uueSSVHPec8890ay81wN33313NEv6PCyto48+OjFPqicratJ+DcGeLU+vXr2i2dixY1PNmXSfz5gxI3HssGHDotlxxx0XzZo0aRLNJk6cGM2S3leGEMLMmTMT8yywZ2uejh07RrNRo0ZFs/XWWy/VetOnT49m5X1Gu/baa0ezpk2bpqonSXmf326zzTbRbMGCBfkup1rYszVP0n0wZcqUaLb++utHs+HDh0ezl19+OZpdffXV0aw8SX9X6devX6o5a9rjtTrUtPvAnk3WsmXLaDZo0KBoduGFF0azRo0apa4n7d95HnvssWiW9Llw0rgQQjj88MOj2UknnZQ4No1HH300mu277755Xy+E/O5ZZ4gCAAAAAAAAAAAyQ0MUAAAAAAAAAACQGRqiAAAAAAAAAACAzNAQBQAAAAAAAAAAZIaGKAAAAAAAAAAAIDM0RAEAAAAAAAAAAJlRlMvlcnmdsKgon9NRAS1btoxmV111VeLY1q1bp1qzRYsW0axv376p5gwhhDXXXDOaffXVV6nnrUnyvOUqzZ4Nobi4OJqdcMIJ0ey6666LZtXxc076Wda0ej777LNotv/++0ezCRMmVKqmNOzZmqdLly7R7LHHHotm3bp1S7XenDlzotltt92WOPbcc8+NZjXtsZXWrFmzotnuu+8ezSZNmlSAamre/ZqVPVuvXvz/o3jkkUcSx+61117RbMmSJdHs17/+dTSbO3du4poxXbt2TcyHDBkSzdK+xl20aFE0u/766xPHnn/++dFs+fLlqeqpaezZ2qWqf15jxoxJzF944YVoNnjw4DxXU349lXkvXFvUpD1rvyYbP358NEv6HfvFF19Esx49ekSztm3bpq5n9dVXTxybxtKlSxPzf/3rX9HszDPPzHc51aIm7dcQ7NkQkj9/+stf/hLNLrjgglTrJb2GLykpSRy73XbbRbOk54Kkz6KbNm0azS666KLEei6++OJo5nVxYdizIUycODGabbbZZqnmHDFiRDQbOHBgNPvuu+8S573sssui2XrrrRfNOnToEM169uyZuGaSK664IpolfVZWm9izNc+pp54aza6++upo9uGHH0azjTbaKJrtuOOO0WyfffaJZiEkf1bWqVOnaJb0cz722GOj2R133JFYT11gz9Y8a621VjS76667otlOO+2U91refffdxHz69OnRLOl16jvvvBPNkj4zLk/S+4pBgwZFsyuvvDLVnEnq16+falx58rlnnSEKAAAAAAAAAADIDA1RAAAAAAAAAABAZmiIAgAAAAAAAAAAMkNDFAAAAAAAAAAAkBkaogAAAAAAAAAAgMzQEAUAAAAAAAAAAGSGhigAAAAAAAAAACAzinK5XC6vExYV5XM6/n/t2rWLZg888EA022GHHQpRTliyZEk0a9CgQTSrX79+4rynn356NLvuuuvKras2yPOWqzR7NoQOHTpEs//973/RLOm+q46fcyHqmTdvXmL+1ltvRbM+ffqkqmfmzJnRbI899khVS2XYszXPpEmTolmPHj3yvt4777wTzTbffPPEsYcddlg0O+igg9KWFHX//fcn5sccc0w0++1vf5vvcsK//vWvaHbqqafmfb0Q7NlC2X///aPZgw8+mHrexx9/PJrtueeeqedNq0WLFtHs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BKDAynvPRTqXX355Yt6tW7dolvR+w+dWFBUVpcpCCOG7777Ldzl1xsKFC6NZefc7ALVHZX7P+n0QV5n7rl4951apC9Zee+1olvY90Pfff5+YX3vttdHs22+/TbVmTZO0tw488MBo1r1790KUE5599tlo9vTTTxdkzZrAsxgAAAAAAAAAAJAZGqIAAAAAAAAAAIDM0BAFAAAAAAAAAABkhoYoAAAAAAAAAAAgMzREAQAAAAAAAAAAmaEhCgAAAAAAAAAAyIzi6i6gprr++utTjx0/fnw0Gz16dOp5a4v27dtXdwlk1CGHHBLNunTpknreL7/8Mpo98MADqeetLbp37x7NTj/99MSxzZo1i2YzZsyIZgcccEA0mzBhQuKaZN+cOXMS82XLllVRJdWndevW0eyaa66JZgMGDEict0mTJtFsyZIl0Wzs2LHRbMyYMYlrkn2NGjVKzIuL4285li9fnu9y6ox99tknmh166KGp5rzkkkvSlgOEEAYPHlzdJVALrb/++tVdQq117rnnRrPDDjss9bxJv0e9dqkbmjdvHs2aNm0azXK5XOK8SZ+TkF7S/V7ezwRIZ/vtt0/M27Rpk2reRx99NNU4sqMyz+me8+P++te/JuY777xzNCspKcl3OdQRV199dWI+YsSIqimkGh144IHR7L777qvCSn7wzDPPVPmaNYEzRAEAAAAAAAAAAJmhIQoAAAAAAAAAAMgMDVEAAAAAAAAAAEBmaIgCAAAAAAAAAAAyQ0MUAAAAAAAAAACQGRqiAAAAAAAAAACAzCiu7gKq029+85to1qlTp9TzDho0KPXY2mKXXXaJZsccc0zqeYcNG5Z6LNnXrl27aNawYcPU837//ffRbObMmannrUmaNGkSze64445otsUWW6Re89Zbb41mEyZMSD0vZMWxxx4bzU466aRottlmmxWinPDXv/41ml1++eUFWZNsSHpNHUIIO+ywQzQbPXp0vsupVXr27JmY77HHHtHsxBNPjGb16sX/v5e77rormo0bNy6xHqremDFjotnQoUOj2eDBgwtQDX369KnuEiCT6tevH82OPvroaHbaaadFs6KiosQ1L7vssmj20ksvJY6FtLp27VrdJdRY/fr1S8yTngsWLVoUzZLeW7/33nvlFwZ1WMeOHaPZLbfckjg26bP6SZMmRTP7ksrYa6+9otkVV1wRzbLy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dcJ22223Ja/dYostwrbSSiuV2s/cuXNLr3nzzTeH7bDDDiu1n0bjzEL74sxC++LMQvvSSGfWeU076qijwjZmzJiwXXjhhWG74oorWrIlWlkjndeicGahGme2fenXr1/Ynn/++bBNnTo1bBMmTAib5+DG48xC++LMQvtSyzPrG6IAAAAAAAAAAIBsGIgCAAAAAAAAAACyYSAKAAAAAAAAAADIhoEoAAAAAAAAAAAgGwaiAAAAAAAAAACAbBiIAgAAAAAAAAAAstGxrTfAl9OpU6ewff/73w/byJEjk+v2798/bOutt171jf0vrbXWWsl+yCGHhO2ee+4JW3Nzc+k9QT306dMnbK+99lrYVl555Xpsp3j66afDduKJJ4btgQceSK7bvXv30nuCslLPiUOHDg1bv379wvatb30rbAsWLAjbnDlzwlYURTF16tSwLVmyJGwLFy4M20033ZS8J+Sia9euYUud2eHDh4ftqKOOKr2fSqUStmuvvTZsxx57bOl7AmnHHHNM2MaOHRu2Sy65JGz1em954403hu1f//pXXe4JkZ49e4bt0ksvDdv8+fPDNmLEiOQ9e/XqVX1j/8GFF14YtgkTJpRaE9qbb3zjG2F74oknwlav57QOHeL/x/qwww4L229/+9t6bAfaxI477hi21PPsDjvsELbtt98+bEOGDEnuJ/WceMMNNySvhVysuOKKYbv33nvDljpfqc+CUiZNmpTsl19+edi8xoWiWHPNNcP2gx/8IGy9e/euw26KYsqUKWH71a9+VZd7Uju+IQoAAAAAAAAAAMiGgSgAAAAAAAAAACAbBqIAAAAAAAAAAIBsGIgCAAAAAAAAAACyYSAKAAAAAAAAAADIhoEoAAAAAAAAAAAgG02VSqVS0wWbmmq53DJl4MCBYTvvvPPCtt9++9VjO0XqofHaa6+F7bnnngvbUUcdVXo/2267bdief/750uu2thofuRZzZuvjuuuuC9sxxxzTijv5P04++eSwPfbYY2F76aWXkuvee++9YTvggAOqb6wdcGZbX7UzcsQRR4Rtq622qvV22sRHH30UttS5vPjii5PrPv7446X31F44s+1L//79w3bqqaeG7dBDD63HdkqbMmVK2HbYYYewffrpp/XYTrvizLL88suH7ZRTTklee+yxx4ZtlVVWKbulupg2bVrYhg4dGrZ//OMfddhNeY10Zp3XtNTnL9dff33YUv/GqZ95tcdG2WtT1913331hGz16dHI/s2bNSvYcNNJ5LQpntpobb7wxbCNGjAhb6vmuXo+B1L/lvHnzwjZs2LCwPfnkky3aUw6c2XykzuyOO+5Yqg0aNCh5z9Tj5/e//33YDj744LDNnz8/ec9lnTNbXseOHcOW+jvgBRdckFx39dVXD9tGG21UfWM1VO3fI/V8mfqM6YQTTgjbCy+8ELZFixYl97MscGbro3v37mHr3bt38tpRo0aFLfV+rlevXmFryXvWlKVLl4btN7/5TdhSf5udO3du6f0sC2p5Zn1DFAAAAAAAAAAAkA0DUQAAAAAAAAAAQDYMRAEAAAAAAAAAANkwEAUAAAAAAAAAAGTDQBQAAAAAAAAAAJANA1EAAAAAAAAAAEA2miqVSqWmCzY11XK5ZcqBBx4YtjvuuKMu91y6dGnYTjvttLBdeumlYVt77bXDNmPGjC+3sf/ghBNOCNvll19eet3WVuMj12LObHmDBw8O29/+9rewLbfccqXv+fe//z1se++9d9jeeeedsG2//fZh+/Of/5zcz7333hu2Aw44IHlte+HMlrfSSiuF7YEHHgjb17/+9eS6HTrE89ypn0+j/VvWw1tvvZXsgwYNCtvcuXNrvZ020Wj/zu3pzNZL//79w/aXv/wlbGuttVap+33++edh23///ZPXXnjhhWHbYostSu0nde5eeeWVUmvmxJnNR9++fcO26aabhu3kk08O20477dSiPbUXN954Y9iOPvroVtxJdY10Zp3XolhttdXC9uCDD4Ztq622Clvq37glr7UnTZqU7JEdd9yx1D1ffvnl5LpDhw4N2+zZs6tvrB1opPNaFM5sURTFJptsEraJEyeGrV+/fmFri/fAZe/50EMPhe3ggw9O3vOTTz6puq/2zpmlV69eYfvJT36SvDb1t5zUv+WUKVPCNnLkyLBNnTo1uZ9lgTNb3vHHHx+21N8e6+WLL74I2/z588O2/PLLh61Lly7Je9bj8XPBBReE7fzzz09em/oZ5MKZrY9VVlklbKm/ZxZFUXTs2DFsjz32WNi++c1vhu2ZZ54JW+rvpNXstddeYUt9HnbPPfeE7aCDDgpbc3Pzl9tYxmp5Zn1DFAAAAAAAAAAAkA0DUQAAAAAAAAAAQDYMRAEAAAAAAAAAANkwEAUAAAAAAAAAAGTDQBQAAAAAAAAAAJANA1EAAAAAAAAAAEA2Orb1Bmhbp59+etguvfTSUmtusMEGZbeT9Pbbb9dlXShr9uzZYXv88cfDtuWWW4bt1ltvTd7z6quvDtu0adOS10aGDRtW6rqiKIpFixaVvpb8bbXVVmHbdtttw9ahQ/l57X//+99hmzRpUul162GLLbYIW9nn0mrXbb755mFrtJ8P7UfXrl2T/bTTTgvbWmutVeqejzzySNj22WefsC1YsCC57v777x+21JmFZcVGG20UtkcffTRsa6+9dj22A8u866+/Pmyp1+JNTU2l7vfuu++GbfDgwclrU++fBw4cGLaDDjoobKnPtAYNGpTcT+pnt99++yWvhbKmTJkStqlTp4atX79+9dhOqxs6dGjYRo0albz2mmuuqfV2oOGknivPOuus5LW333572FK/ezbZZJOwnXHGGWE7+OCDk/uBddZZJ2z1evzMnTs3bNddd13YXnvttbDdfffdYdtrr73Cts0224StKIrisMMOC9tqq62WvDaSOrMrrbRS8trjjjuu1D3hk08+Cdsuu+ySvHb69OlhmzdvXtkt1UXqd8if//znsB1wwAFhGzduXNjGjx//5TbGl+IbogAAAAAAAAAAgGwYiAIAAAAAAAAAALJhIAoAAAAAAAAAAMiGgSgAAAAAAAAAACAbBqIAAAAAAAAAAIBsGIgCAAAAAAAAAACy0VSpVCo1XbCpqZbLLVOWX375sK266qp1uecHH3wQtubm5lJrPvroo2Hbddddk9e+8sorYdt6663DtnTp0qr7ahQ1PnIt5swyfvz4sI0YMSJ57fDhw8P2wAMPlN5TI3Fm62P06NFhW7hwYfLamTNnhu3ZZ58N26efflp9Y63oqquuCtuPf/zjutzz/PPPD9vZZ59dl3u2Nme29W222WbJ/uqrr9b8njvttFPYnn766dLrpn6HpF6LpgwaNChsqde+ywpntn156623wrbuuuu23ka+hAkTJoRtzJgxYWvJY/Kaa64J23bbbRe2F154IWw777xz2Kq9ZqqHRjqzy8J5rfZ+bNy4cWFL/VulfnZTpkwJ28iRI8M2derUsLVEt27dwnbrrbeGrdrPLvXzSf13pn63NJpGOq9FsWyc2Zbo379/2FLn66mnngrbQw89FLZf/OIXX25j/8Hjjz8eth133LHUmqnPpoqiKA44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G2wQtj59+oTt448/DltRFMWnn34atrJ/I1p77bXDds455ySv/fa3vx22nj17hm3NNdcM2worrBC21O+XkSNHhq0oimLy5MnJ3hp8QxQAAAAAAAAAAJANA1EAAAAAAAAAAEA2DEQBAAAAAAAAAADZMBAFAAAAAAAAAABkw0AUAAAAAAAAAACQDQNRAAAAAAAAAABANpoqlUqlpgs2NdVyubrabLPNwnbKKaeUuq4oimLTTTcNW8eOHatvrJ374osvwvaLX/wiee2f/vSnsD399NOl99RIanzkWqw9ndmBAweG7dxzzw3b8OHDk+t27dq11H7mzZtX6rru3buXuq4oiuKaa64J23/913+VXpeYM5vWo0ePsD333HNh69+/fz22Uzz11FNhe//998O23Xbbha1v374t2lOtTZs2LWw/+9nPktf+7ne/q/FuGo8zm4/Uufz9738ftp49e4bt888/T95zm222CdvUqVOT11KOM5uPnXfeOWxbbrll2NZaa62wHXTQQcl7ps77csstl7y2Hj755JOw7brrrmF75ZVXar+ZOmmkM9uezmvqvez48ePDNmDAgOS6qZ9B6t+qHtdNmTIlbEVRFI8++mjYevXqFbbU74Gyey2Koth6663D9tJLLyWvbS8a6bwWRfs6sw8++GDYhgwZ0oo7qa5Dh/j/d25ubl4m7pn6fOGtt96qx3bqwpnNx4gRI8I2ZsyYsKWe96v9e1xwwQVhq/ZZEeU4s6R85zvfSfabb745bCuvvHKpe+63335hmzBhQqk1c+LM1kfqs6CLLrooee3mm28etrJ/ty37XrdeGm0///znP8N2++23h+2SSy4J28KFC1u0p0gtfz6+IQoAAAAAAAAAAMiGgSgAAAAAAAAAACAbBqIAAAAAAAAAAIBsGIgCAAAAAAAAAACyYSAKAAAAAAAAAADIhoEoAAAAAAAAAAAgG02VSqVS0wWbmmq5XIsNHjw4bH/605/Ctuqqq4Zt4cKFyXtecsklYZs/f37y2sjyyy8ftp/97Gel1qxm8eLFYZs1a1bY+vTpE7Zqj4+lS5eGLfXfedFFFyXXbSQ1PnIt1mhnds011wzb3/72t7D169evHtupizfeeCNst956a/LaK664ImxffPFF2S2R4MymXXnllWE79thjS605b968ZN9///3D9thjj4UtdUZ22223sD388MPJ/TSSJUuWJPv1118ftgkTJoRt2223DVvq5/PPf/4zbJ999lnYWsKZbV8233zzsF1zzTVh23777cOWeg2b+v1RFEUxceLEZKf2nNn6SL1//MpXvpK8dtiwYWE7/vjjw9a1a9ewdejg/8V67bXXwvbNb34zbHPmzKnHdkprpDPbaOc19Z70+eefD9tqq60Wtmo/73fffTdsqc9tBg0aVOqeqZ95tb2WvbbsddU+K7vggguSPQeNdF6LovHO7De+8Y2wpV4TduvWrR7bSZoyZUrYbr/99rCNGzcubH379k3e89FHHw1bS34XlJW6Z+qztEMPPbQe26kLZ7bxpJ6jR40aFbZTTz211Jpvvvlm2Pbdd9+wFUVRTJ06NdmpPWeW3XffPWwPPvhg8trU42fRokVhu/zyy8OW+tv0J598ktzPssCZrY+nnnoqbNttt13pdVN/d3rkkUdKrXnXXXeFbcUVVyy1ZlEUxTvvvBO21N+1W/KYTN1z2rRpYUv9LWfmzJml91MPtTyzPpUEAAAAAAAAAACyYSAKAAAAAAAAAADIhoEoAAAAAAAAAAAgGwaiAAAAAAAAAACAbBiIAgAAAAAAAAAAsmEgCgAAAAAAAAAAyEbHtt5ALXTr1i1sY8eODduqq64atnnz5oXtBz/4QXI/48ePT/YyNttss7CdffbZYatUKsl133nnnbBdeOGFYbvpppvC9t3vfjdsV155ZXI/vXr1Ctvpp58etk6dOoXtvPPOS96TxnLfffeFrV+/fmF79913wzZ37tzkPTfddNPqG6uh2bNnh+2SSy5pxZ1Ut+666yb70qVLw/b1r389bA899FDYPvvss6r7onF07ty55mv+6U9/SvbU4ycl9VxxyCGHlFqzJaZNmxa2amcv0rFj+qXdj3/841It5cADDwzbjBkzwjZ8+PBS96P9WX755cP2xz/+MWxrrbVWqfulfi/dcccdyWvHjBkTtttvvz1sixYtCtusWbOS90zp2bNn2Jqbm8M2Z86c0veksaSeu374wx+G7cQTTwxbnz59WrSnHKTeJ7/33nthS/17FEVR9OjRI2yp98LObB5Sn2ekfp+nHo/VPtMZNWpU2CZNmhS2rbbaKrluZMSIEWE77bTTSq1ZFNX/O8tcd8EFF5TdDsuIKVOmhO3NN98M26BBg0rfc/LkyWFLfb47derUsE2fPj1s3bt3D9sJJ5wQtvYm9fsXUlLPa0VRFL/85S/D1rdv37Clnp9Sn32nPpuaP39+2Opl4MCBYdt4442T106YMKHW24Fi1113Tfaf/vSnYavH34BS7/9aYsmSJWF75plnwta/f/+wpV6DQEvssMMOYav2Pu+iiy4K2xlnnBG2wYMHh2306NFhW2mllZL7SUn9LefUU08N27hx40rfk9rxDVEAAAAAAAAAAEA2DEQBAAAAAAAAAADZMBAFAAAAAAAAAABkw0AUAAAAAAAAAACQDQNRAAAAAAAAAABANgxEAQAAAAAAAAAA2WiqVCqVmi7Y1FTL5b6UAQMGhO3NN98steYbb7wRtq985Sul1iyKothll13Ctueee4bt4IMPDttqq61Wej/77LNP2H7/+9+XXjfSt2/fZP/zn/8ctg022CBsjzzySNh233336htrRTU+ci3WFmd24MCBYXv++efDtsIKK9RjOw3lV7/6Vavfc/DgwWFrye+7zp07h+3jjz8O2/bbbx+2v//976X3U5Yzm5Y6s6nHVsrChQuTfe211w7b0qVLw3bNNdeE7aCDDqq+sRrbeeedS1131llnhW3XXXctuZvy/vWvf4Ut9Rz89ttv12M7zmwbqPb67u677w7b1772tVpvp02knteefPLJ0uumfj6LFy8O20YbbRS21O/JtuDMFsX6668ftiuuuCJsqfePy4o5c+aEbfz48WF79NFHwzZu3Liw9ejRI7mfLbbYImyPP/548tr2opHObKM9x6be577wwgthS73PbW5uTt5zueWWq76x/6B79+5hS/133HbbbWFLfTZXFOl/r9Tjqux11T7TSn3ONn/+/OS17UUjndeiaLwzm/LAAw+EbciQIaXXfeihh8I2fPjw0utGfv3rX4ft0EMPLb1u2XOZknr+LYqimDRpUtimT58etokTJ5baT1twZltftZ956nk49VxxyCGHhG3ChAnVN1Zj/fr1C9sRRxwRtuOOOy5sqf/Gomib/87W5syWd/LJJ4dtxx13DNs3v/nN5Lpdu3Ytvada69Ah/X0k1V7nl/Hhhx+GbfLkyaXXPeGEE8KWeg5etGhR6XvWgzNbH6nHcrWfeer95YIFC8KWeh2b+rtkaj9TpkwJW1GkP4ObMWNG8lrKqeWZ9Q1RAAAAAAAAAABANgxEAQAAAAAAAAAA2TAQBQAAAAAAAAAAZMNAFAAAAAAAAAAAkA0DUQAAAAAAAAAAQDYMRAEAAAAAAAAAANkwEAUAAAAAAAAAAGSjqVKpVGq6YFNTLZdr8T0ffvjhsH3rW98K27hx48L23HPPJfczfPjwsO24445hS/13NDc3h+2FF14I23nnnRe2oiiKP/3pT2Gr8UPjS3nmmWfCNnjw4LCdcsopYbv88stbtKdaa4ufa0pbnNldd901bI8++mjN77d48eJknzFjRth+8YtfhG3WrFlhu/nmm8O28sorh63av0drP34+++yzZE+dr0ceeSRsQ4cODdtvf/vbsL399tvJ/dSDM5uWep7dbbfd6nLPP/7xj2EbNGhQ2Hr37l3qfqnHwMyZM5PXXn311WG79NJLw5Z63u/evXvYrrrqquR++vbtG7bNN988bKnXRanfk9OnT0/upx6c2dZ34IEHJvvtt99e83u+9dZbYZszZ07YUq8nc/K1r30tbC+++GIr7qQ6Z7YoLr744rCddNJJrbiTxvPSSy8l+4knnhi2v/71r7XeDkVjndn29Bx76623hu2ggw4KW7Wf98svv1xqP926dQvbgAEDwpb6mVfba+ra++67L2w33nhj2G655Zawrbbaasn9TJkyJWyp1/Apqc8IJkyYUGrNlmik81oU7evM9u/fP2x///vf63LP1OPnggsuCNtOO+0Utn322adFe4p06BD/P9ap97I33XRT2I466qgW7SkHzmzrW7p0abKn/k1Sn3teeOGFYdtkk02qb+w/OPLII0tdVxTpz4J69uwZtpEjR4atLZ7XGo0zW95tt90Wtu9973utuJP6abS/89TLZZddFraTTz65FXdSXaP9zNvTmU057bTTwnbuuecmr11uueVqvZ1i/vz5YfvNb34Ttmp7/fjjj0vviXJqeWZ9QxQAAAAAAAAAAJANA1EAAAAAAAAAAEA2DEQBAAAAAAAAAADZMBAFAAAAAAAAAABkw0AUAAAAAAAAAACQDQNRAAAAAAAAAABANpoqlUqlpgs2NdVyuRa74IILwnb88ceHrWvXrvXYTtK///3vsF1//fVhO++88+qxnTbRr1+/sK2//vphe/zxx+uxnbqo8ZFrsbY4s5tssknYnnvuubA98cQTYZs9e3bYbrrppuR+Jk2alOxlDB48OGzPP/982Kr9e6QeP3//+9/D9uyzz4Zt8uTJYXv44YeT+/nXv/6V7DlwZtOuvvrqsP3oRz9qxZ3UT+p3yBlnnJG8du7cuWFbuHBh6T3VQ+/evcOW+h37xRdf1GM7pTmz9dGrV6+wpV7DFkX5n0HqcZc6e7/97W/D1qFD+v8H2X///cO2+uqrh23IkCFh23DDDcOWeu1bFEWxaNGisF1xxRVhO/PMM8PWaGek0fbTFmf24osvDttJJ53UijtpGx999FHYdtppp+S1U6dOrfV2qKKRzmwuz7FTpkwJ24ABA5LXpp7Xmpubw5b62aX+jVPXvfnmm2ErivR7ywsvvDBsqdcDAwcODNu+++6b3M/ee+8dttTzc8+ePcP20ksvhW3rrbdO7qceGum8FkX7OrOdOnUK2w033BC2gw8+uB7bSSp7nut1zw8//DBsw4YNC9uLL77Yoj3lwJltfanHa1Gkf+fX47m07HVFURSzZs0K2+233x62++67L2z1+Mw8J85seanH5IEHHtiKO6nu0UcfDVvqc/GnnnoquW7qc63Ua9GRI0cm121tqfccRx11VNhSn93VizPb+lLv84qiKLp161Zq3dTfilPvS1N/Q6Xx1PLM+oYoAAAAAAAAAAAgGwaiAAAAAAAAAACAbBiIAgAAAAAAAAAAsmEgCgAAAAAAAAAAyIaBKAAAAAAAAAAAIBsGogAAAAAAAAAAgGw0VSqVSk0XbGqq5XJ1td9++4XtnnvuKb3uiy++GLYxY8aE7fnnnw/bBx98UHo/NJYaH7kWa09nFtqCM5u26qqrhu34448P2x577BG2LbfcskV7irz//vthe/bZZ8N2xBFHhO3TTz9t0Z6oPWe2PlLn+dJLLy297tKlS8M2bNiwsD3yyCOl79lIdt9992T/5JNPwpb6vdWeOLNFcfHFF4ftpJNOasWdtMz8+fPDdtVVV4XtuuuuC1vquZu20UhnNpfn2G7duoXttNNOS157+umnhy31b5X62d13331hmzp1atguuuiisBVF+ndEo+nbt2/YevXqFbbUf2PqZ1cvjXReiyKfMztw4MCwHXzwwclrf/rTn4atU6dOpfaT+rm25DEwa9assE2cODFsv/rVr8KW+swcZ7YtpH7fF0VRHHnkkWHbZ599wtbc3By2SZMmVd9YieueeuqpsM2YMaPUPUlzZssbMGBA2FKvtVJ/Xy2KoujRo0ep/Zxwwglhe+GFF8I2d+7cUverpmPHjmHbZpttwrbZZpuFbfTo0cl7rrnmmmFbbbXVktdGfvSjH4Xt+uuvL7VmSziz0L7U8sz6higAAAAAAAAAACAbBqIAAAAAAAAAAIBsGIgCAAAAAAAAAACyYSAKAAAAAAAAAADIhoEoAAAAAAAAAAAgGwaiAAAAAAAAAACAbDRVKpVKTRdsaqrlcpCdGh+5FnNmIc2ZrY/VV189bLfeemvy2u233z5sF154YdhuvvnmsH3wwQfJe9J+OLP1scsuu4TtyiuvTF676aabhu1HP/pR2K6//vrqG6Pdc2aLYsSIEWEbN25cK+6kumeeeSZs5557btgee+yxemyHNtBIZzaX51iol0Y6r0XhzBZF+v3qySefXGrNp556Kmwbb7xx2O69997kur/+9a/D9tprr1XfGP9rziy0L84sOUm9RjnllFNKrdlon/k5s9C+1PLM+oYoAAAAAAAAAAAgGwaiAAAAAAAAAACAbBiIAgAAAAAAAAAAsmEgCgAAAAAAAAAAyIaBKAAAAAAAAAAAIBsGogAAAAAAAAAAgGw0VSqVSk0XbGqq5XKQnRofuRZzZiHNmYX2xZmF9sWZhfalkc6s8wppjXRei8KZhWqcWWhfnFloX5xZaF9qeWZ9QxQAAAAAAAAAAJANA1EAAAAAAAAAAEA2DEQBAAAAAAAAAADZMBAFAAAAAAAAAABkw0AUAAAAAAAAAACQDQNRAAAAAAAAAABANgxEAQAAAAAAAAAA2TAQBQAAAAAAAAAAZMNAFAAAAAAAAAAAkA0DUQAAAAAAAAAAQDYMRAEAAAAAAAAAANkwEAUAAAAAAAAAAGTDQBQAAAAAAAAAAJANA1EAAAAAAAAAAEA2DEQBAAAAAAAAAADZMBAFAAAAAAAAAABkw0AUAAAAAAAAAACQDQNRAAAAAAAAAABANgxEAQAAAAAAAAAA2TAQBQAAAAAAAAAAZMNAFAAAAAAAAAAAkA0DUQAAAAAAAAAAQDYMRAEAAAAAAAAAANkwEAUAAAAAAAAAAGTDQBQAAAAAAAAAAJANA1EAAAAAAAAAAEA2DEQBAAAAAAAAAADZMBAFAAAAAAAAAABko6lSqVTaehMAAAAAAAAAAAC14BuiAAAAAAAAAACAbBiIAgAAAAAAAAAAsmEgCgAAAAAAAAAAyIaBKAAAAAAAAAAAIBsGogAAAAAAAAAAgGwYiAIAAAAAAAAAALJhIAoAAAAAAAAAAMiGgSgAAAAAAAAAACAbBqIAAAAAAAAAAIBsGIgCAAAAAAAAAACyYSAKAAAAAAAAAADIhoEoAAAAAAAAAAAgGwaiAAAAAAAAAACAbBiIAgAAAAAAAAAAsmEgCgAAAAAAAAAAyIaBKAAAAAAAAAAAIBsGogAAAAAAAAAAgGwYiAIAAAAAAAAAALJhIAoAAAAAAAAAAMiGgSgAAAAAAAAAACAbBqIAAAAAAAAAAIBsGIgCAAAAAAAAAACyYSAKAAAAAAAAAADIhoEoAAAAAAAAAAAgGwaiAAAAAAAAAACAbBiIAgAAAAAAAAAAsmEgCgAAAAAAAAAAyIaBKAAAAAAAAAAAIBsGogAAAAAAAAAAgGx0rPWCTU1NtV4SslKpVNp6C/8vziykObPQvjiz0L44s9C+NNKZdV4hrZHOa1E4s1CNMwvtizML7YszC+1LLc+sb4gCAAAAAAAAAACyYSAKAAAAAAAAAADIhoEoAAAAAAAAAAAgGwaiAAAAAAAAAACAbBiIAgAAAAAAAAAAsmEgCgAAAAAAAAAAyIaBKAAAAAAAAAAAIBsGogAAAAAAAAAAgGwYiAIAAAAAAAAAALJhIAoAAAAAAAAAAMiGgSgAAAAAAAAAACAbBqIAAAAAAAAAAIBsGIgCAAAAAAAAAACyYSAKAAAAAAAAAADIhoEoAAAAAAAAAAAgGwaiAAAAAAAAAACAbBiIAgAAAAAAAAAAsmEgCgAAAAAAAAAAyIaBKAAAAAAAAAAAIBsGogAAAAAAAAAAgGx0bOsNAPD/6NSpU7L37Nmz1LqDBw8u1a6//vrkunPmzAnbokWLqm8MAAAAAAAAWGbstddeYdt7773DNmLEiLDNmjUrbE1NTWH79NNPw1YURXHvvfeG7eKLL05eS9vzDVEAAAAAAAAAAEA2DEQBAAAAAAAAAADZMBAFAAAAAAAAAABkw0AUAAAAAAAAAACQDQNRAAAAAAAAAABANgxEAQAAAAAAAAAA2WiqVCqVmi7Y1FTL5SA7NT5yLebMtr5OnTqF7fzzz09ee+KJJ9Z6O8nHQLXH61/+8pewnXrqqWF76aWXqm+sQTiz0L44s9C+OLPtS8+ePcN27LHHllpz/vz5pe5XFEXx6KOPhu2xxx4rtR/SGunMOq/UyzrrrBO2adOmhW377bcP27PPPtuSLZXSSOe1KJxZimLPPfcs1YqiKI455piwDRkyJGyp1wqNxpmF9sWZhfbFmW08999/f9iqvTYsoyV/C031O+64I2x33nln2B566KHkPZd1tTyzviEKAAAAAAAAAADIhoEoAAAAAAAAAAAgGwaiAAAAAAAAAACAbBiIAgAAAAAAAAAAsmEgCgAAAAAAAAAAyIaBKAAAAAAAAAAAIBtNlUqlUtMFm5pquRxtqHv37mEbNGhQ2Pbcc896bKeYNGlS2CZOnFiXe9ZDjY9cizmzrW/NNdcM23vvvdeKO/k/Uo+Bljxe//znP4ftO9/5TtgWLVpU+p714MymbbbZZmG76qqrwvbII4+Uvucaa6wRto8//jhst99+e6n7vf3226Wuo204s8uGnXfeOWxbbLFF2LbccsvkumWfE4cNGxa2F198MWz33Xdfcj+//e1vw9Zoz5dlObONZ9111w3bU089FbbevXuHrV6vN995552wnXXWWWG76667St9zWddIZ9Z5LYptt902bKkzeeCBB5a6X+p3wOTJk0utWc2MGTPCNnPmzLrcc5111gnbww8/HLaRI0eG7Y033mjRnspopPNaFM5sTlZcccWwnXPOOWE75phjwrb88ssn75l6PP/mN78J2/nnnx+21O+XtuDMti+pv53stNNOrbiT+nnooYfaegsNzZktr2PHjmFbbrnlwrZkyZLkukuXLi29J/LnzDaeIUOGhO3uu+8O25QpU8L28ssvhy31HnmPPfYIW1EURadOnZI9Mm/evLB97WtfC9vUqVNL3S8ntTyzviEKAAAAAAAAAADIhoEoAAAAAAAAAAAgGwaiAAAAAAAAAACAbBiIAgAAAAAAAAAAsmEgCgAAAAAAAAAAyIaBKAAAAAAAAAAAIBtNlUqlUtMFm5pquRwttM022yT7gQceGLYf/OAHYVt55ZXLbqkuOnRoP7N9NT5yLebMtr7U+Zk8eXLy2vXWW6/W20k+Bur1eN1tt93C9vjjj9flnmU5s+W98cYbYRswYEAr7qRlHnjggbBVe3ykfga//vWvwzZt2rSq++I/c2bbl29961th+/73vx+21GvYlrwubO3nxGqPjzvvvDNsRxxxRNgWLFhQek+tzZltX7bddtuwrbjiimHbaaedwjZ48OCw9ezZM7mfrbbaKmzjxo1LXhtJ/X6hsc5sLud11113Ddt5552XvDZ1Jlv7eatej4133303bC+++GLYjj766OS6H330Udi6dOkSthVWWKHUmm2hkc5rUeRzZpcVu+yyS9guueSSsG255Zal7lft8VH28Txz5sywbb755mGbM2dOqfu1hDObttpqq4XtjDPOKLVmSx53q6yyStgOOuigUvtJvZdtbm4utWZL/Nd//VfYxo4d24o7aUzObHmXX3552H7yk5+E7dhjj02ue8MNN4Ttiy++qL4x/tc6d+4cttRjctGiRfXYTpIzS8pmm22W7Pvss0/Yzj777FL3TP0uPPHEE0utmZNantn2M0UCAAAAAAAAAABQhYEoAAAAAAAAAAAgGwaiAAAAAAAAAACAbBiIAgAAAAAAAAAAsmEgCgAAAAAAAAAAyIaBKAAAAAAAAAAAIBtNlUqlUtMFm5pquRxfwsknnxy2E088MXltr169wjZr1qywLVmyJGxPPfVU2NZcc83kfnbaaaewpR5b7elxV+Mj12Lt6We3LFh55ZWTfdSoUWHr27dv2CZPnhy2J598Mmyp3xFFURT3339/2Pr16xe2v/71r2Hbddddk/dsbc5sed/97nfDdtttt5Ve9/bbbw/bwoULw7bHHnuErXfv3mFL/cxb8viYNm1a2IYMGRK2t956q/Q9lwXObOvr1KlTsh999NFhGzNmTNhWWmmlsH344YdhSz03zZkzJ2xFkf79UtZ6660XtjvuuCN5bdeuXcN20EEHhe2uu+6qvrEG4cySsuKKKyb7nnvuGbZf//rXYUu9nx00aFDY3n777eR+lgWNdGZzOa9f/epXw5Z6/1cU6Z/BBx98ELa77747bEcccUTYVlhhhbC15LFx5JFHhi31eyB1z6effjp5z2HDhoXts88+S17bXjTSeS2KfM5se7LpppuG7fjjj09eO2LEiLCtssoqZbcUGj9+fLLvu+++Nb/naaedFrZf/OIXNb9fNcvKme3fv3/YjjnmmLClHpOpz0RTOnRIf19Ac3NzqXXLSu2ntfdSFEUxadKksKX+PYqiKD755JMa76bxLCtnth4uvPDCsJ166qml133kkUfClvq75fXXX1/qfqn3lZ9++mmpNYuiKDp37hy2au+R6+FrX/ta2E4//fSwpT4v3HbbbVu0pzKcWVoidS7ffPPNsK277rphS32GXe15dllQyzPrG6IAAAAAAAAAAIBsGIgCAAAAAAAAAACyYSAKAAAAAAAAAADIhoEoAAAAAAAAAAAgGwaiAAAAAAAAAACAbBiIAgAAAAAAAAAAstFUqVQqNV2wqamWy/H/tf7664ftiSeeCNs///nP5Lp33HFH2MaNGxe2Tz/9NGyDBw8O25NPPpncT9euXcP21FNPhe0b3/hGct1GUuMj12LOLCuuuGLYnnnmmeS1m2yySal79unTJ2z/8z//U2rNenFmy0vtdZ999glbc3Nzct3f//73YUv9e6WeYwYNGhS2nXbaKWxrr7122IqiKI444oiwLbfccmF7+umnw9aenvPagjPb+o4//vhkv/TSS8P29ttvl7rut7/9bdgWL16c3E8jSb2+LYqi2G677cKW+vmccsoppffU2pxZWmLTTTcNW+q5NPX69/vf/37Yfve73325jWWskc6s87ps2GuvvcJ23333lV63X79+YXvvvfdKr9tIGum8FoUz2xbeeuutsK233nrJa1OPn+nTp4ftvPPOC9tDDz0UtmqPj/fffz/ZI1OmTAnbt771rbC1xWdTy8qZXbp0adiqfR5Uax06pL8v4PHHHw/ba6+9VuvtJM/lsGHDan6/ambMmBG21GvmoiiKSZMm1Xo7DWdZObP1kPqM9uGHHw7bjjvuWI/tlPbBBx+ELfX5dTWpvwcPGTKk9LopqcdP2cf6v//977Cl/j5UL84sKT169Ej26667Lmz7779/qXtefvnlYTvxxBNLrZmTWp5Z3xAFAAAAAAAAAABkw0AUAAAAAAAAAACQDQNRAAAAAAAAAABANgxEAQAAAAAAAAAA2TAQBQAAAAAAAAAAZMNAFAAAAAAAAAAAkA0DUQAAAAAAAAAAQDY6tvUG+HLefvvtsB199NFhe+6555Lrfvzxx6X3FPn+978ftg4dys/g3X///aWvBWL77bdf2DbeeOPktZVKJWxPP/102D799NPqG6PdSz0+xo8f34o7+T8WLlwYttTjNdWq2WGHHcK26aabhq1jRy/RaCzHHHNM2F555ZXktb169QrbnDlzym6p3Rg5cmTYUr8jiiL9e/Rvf/tb6T1BI+nUqVPYevbsmbz2rrvuCtuKK64Ytpa8LwVaV+/evcOWep786KOPkusuXry49J6gvbj00kvDdtJJJyWvPffcc8N2yy23lNpP9+7dw/bEE08kr21qaip1z0mTJoXtf/7nf0qtSfvys5/9LGwvv/xy8top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QDYMRAEAAAAAAAAAANkwEAUAAAAAAAAAAGTDQBQAAAAAAAAAAJCNpkqlUqnpgk1NtVyuXerevXvYHnnkkbB9/etfr/leJk2alOypvW655Zal7vn888+HbZdddkleu2DBglL3bE9qfORazJltfXvttVfY9t133+S1t912W9gOO+ywsI0cOTJs8+bNC1u130tTpkxJ9hw4s+1Lr169wjZu3LiwpR7rnTt3Dltzc3NyP7fffnvYxowZE7aZM2eG7fPPP0/ec1nnzLa+8847L9nPOOOMUuu+8sorYXvsscfC9sADD4Ttk08+Sd5z1KhRYRs9enTYUr8ndt9997A9/vjjyf0sC5xZWmL99dcP2+TJk8N2/PHHh+2WW25p0Z5y10hn1nnNx5577hm2+++/P2zPPPNM2HbccccW7SkHjXRei6Jtzmzqc8+//vWvYUt9Jvr000+H7bjjjkvu56WXXgpbjx49wta1a9ewffDBB8l7trYrr7wybD/+8Y/DlvrMvCiK4nvf+17Y5syZU31j7YAzS3uSOutFkT7vKWeffXbYUp+jtQVnNh8rrbRS2B599NGwbb311vXYTvHRRx+FLfWaIPW659///nfynv/85z/D9l//9V9he/XVV5PrNhJnlgEDBoRt2LBhyWtPOOGEsK2xxhql9jNt2rSw7bbbbslr33777VL3bE9qeWZ9QxQAAAAAAAAAAJANA1EAAAAAAAAAAEA2DEQBAAAAAAAAAADZMBAFAAAAAAAAAABkw0AUAAAAAAAAAACQDQNRAAAAAAAAAABANpoqlUqlpgs2NdVyuexssMEGYVtxxRVrfr+111472a+66qqwrbvuuqXu+ZOf/CRsV199dak1c1LjI9di7enMbrrppmF74403WnEnjenXv/512A499NCwzZs3L2xf//rXk/ecMmVK9Y21c87ssmHXXXcN29577x220aNH12E3RfHggw+G7fTTTw/b66+/Xo/ttCvObOur9hr2e9/7XtjefvvtsD366KOl91QP5557btjOPPPMsD399NNh22mnnVq0pxw4s9TLzJkzS13Xp0+fGu8kL410Zp3XZcNll10WtuOOOy5su+++e3LdRnudUQ+NdF6Lom3ObI8ePcKWeu+05pprhi31/nDixIlfal85+8Mf/hC2YcOGhe3GG29MrnvOOeeE7YMPPqi6r/bAmaU9qfZe9u677w5br169St2zU6dOpa6rF2c2H1tttVXYJk+eXJd7pj4r+uSTT0qtmfp78Fe/+tVSaxZFUfz73/8OW+pv3gsWLCh9z3pwZmmJ3XbbLWw//vGPw/btb387bJ07dw7be++9l9zPhhtuGLbFixcnr20vanlmfUMUAAAAAAAAAACQDQNRAAAAAAAAAABANgxEAQAAAAAAAAAA2TAQBQAAAAAAAAAAZMNAFAAAAAAAAAAAkA0DUQAAAAAAAAAAQDaaKpVKpaYLNjXVcjm+hNGjR4fttNNOS1679tprl7rn+PHjw/bd7343bEuWLCl1v5zU+Mi1WL3O7NChQ8N20003lVpz2rRpYdttt93CNm/evFL3a0QjR44M2y9/+cuw9e7dO2wffvhh2Pr06fPlNpaxZeXMEuvcuXPYNtpoo+S13/ve98L205/+NGwdO3YM26effhq2DTfcMLmfjz/+ONlz4MxSLz169AjbK6+8ErZ11lknbN///veT97ztttuq7qu9c2apl5kzZ5a6zuvftEY6s87rsuGyyy4L209+8pOwjRs3LrnugQceWHpP7UUjndeiaJszu+aaa4bt/fffL7XmlltuGbbXXnut1JrtTeq58m9/+1vYUp9Dn3LKKcl7XnrppdU31s45s7Qnq622WrI/++yzYevbt2+pe3bq1KnUdfXizOajW7duYTv77LPDlvrM+JZbbkne85///GfYyv49a9VVVw1b6nVzURTFWWedVeqeK620Utg+//zzUmvWizObtt1224Vtm222CdvVV18dNjMBRXHAAQeE7cYbbwxb6vdSURTFddddF7Zjjz22+sbagVqeWd8QBQAAAAAAAAAAZMNAFAAAAAAAAAAAkA0DUQAAAAAAAAAAQDYMRAEAAAAAAAAAANkwEAUAAAAAAAAAAGTDQBQAAAAAAAAAAJCNjm29gS9r0KBBYZs3b17Ypk6dWo/t1MXNN98ctu222y5s66yzTti6dOlSej/f/va3w/bf//3fYVuyZEnpe5KPBx98MGzNzc2l1lxjjTXCttpqq4Ut9TuiXoYOHRq2b37zm2Hbfffdk+tusskmpfcU+dOf/lTzNSEnixcvDtvrr7+evPb0008P27PPPhu2O++8M2wrr7xy2FZcccXkfj7++ONkB2Jz5swJW+psrb322vXYDgDtSM+ePcOWen/4wAMPJNedP39+6T01ko022ihsBx54YKk177rrrrLbKbp16xa2PffcM2x/+ctfwvbRRx+V3g/lbb311jVf85BDDgnb2Wefnby2LT6fqodrr702bGVf+44dO7bsdoAW2GuvvcLWr1+/sO29997Jdfv27VtqP/fff3+p62gbyy23XNg23HDDsDXa321Tr6lPOeWUVtxJy6Q+m6r2mTGkfq+fcMIJYdtss83CVu218XvvvVd1X+3d3XffHbatttoqbCeeeGJy3Xr8rThnviEKAAAAAAAAAADIhoEoAAAAAAAAAAAgGwaiAAAAAAAAAACAbBiIAgAAAAAAAAAAsmEgCgAAAAAAAAAAyIaBKAAAAAAAAAAAIBsd23oD/1fnzp2T/S9/+UvY5s6dG7Zzzz239J7K6t27d9gOP/zwsK2xxhph69KlS6m9TJ8+PdmvuuqqsP31r38N2xdffFFqPyw7/vjHP4Zt6NChNb/fxIkTw/byyy8nr61UKrXeTrHPPvuErVu3bqX3Unavt9xyS9hSv5eA+rn//vvDNnr06LD95je/Cdu4ceOS99x6662rbwz4j1ZfffWw9erVq9SaCxYsKLsdoCiKY445Jmyp99fTpk2rw24gduCBB4btyiuvDNuYMWOS655zzjllt9RQzjrrrLCtueaaYXvxxRfD9uCDD5beT8+ePcN25513hm2HHXYI20cffVR6P5T3wgsvhK2pqanUmn379g1bhw7t5/89Tp2toiiKiy++OGx77bVXqXt+5zvfCdu8efNKrQnLitTnREVRFHvssUepdQcPHhy21Hvg5ubmUver5oYbbqjLutTHvffeG7ZtttkmbLvuumvYpk6d2qI9LcvOPvvssP34xz8uve7NN98ctvnz55del8Zy/fXXh+2AAw4I2w9+8IOwVfu89KKLLgrbs88+m7y2kfTp0ydsw4cPD9tRRx1V+p733HNP6WuXRe3nXRoAAAAAAAAAAEAVBqIAAAAAAAAAAIBsGIgCAAAAAAAAAACyYSAKAAAAAAAAAADIhoEoAAAAAAAAAAAgGwaiAAAAAAAAAACAbBiIAgAAAAAAAAAAstGxrTfwf40ePTrZV1xxxVLthhtuKL2nRvL73/8+bO+//37Yrr322uS6U6dOLbslSDrrrLPCtsUWW4Std+/epe638cYbh22TTTZJXlupVErds9HcdNNNYTv22GNbcSdAS/3jH/8odd1GG21U450A/1fqtU2fPn1KrTlu3Liy22EZkfq9/vnnn4dt5syZ9dhOXSy//PJh22233ZLXjhkzJmyp1/hjx46tvjGooaamplIt9dxTFEUxefLksP3xj3+svrEa6tmzZ7IfdthhYfvOd74Ttubm5rBNnDgxbIsXL07uJ2Xp0qVhS30G15J70vrKfha07777hi312VRRFMWVV14ZthdeeKHUfsq64447kn3gwIFhS/3sUp9hP/bYY1X3Ba1p6NChyX700UeHbfjw4bXeTtGhQ/z9Bannw3pJ7aclpk2bFrbZs2fX5Z7UxxtvvBG2vffeO2wPPPBA2DbYYIOWbCkLI0aMCNsZZ5wRts033zxsHTumxwHefPPNsJ155plha4vfTdTH22+/HbZbb701bCeffHLYhg0blrxn6nl40aJFyWvLeOedd8L20ksvJa/deeedw7bGGmuErXPnzlX3VcaHH35Yl3Vz5RuiAAAAAAAAAACAbBiIAgAAAAAAAAAAsmEgCgAAAAAAAAAAyIaBKAAAAAAAAAAAIBsGogAAAAAAAAAAgGwYiAIAAAAAAAAAALLRVKlUKjVdsKmp1HWrrrpqsu+6665hO/XUU8O25ZZbltpPS3z44Ydhu+OOO8I2Y8aMsF177bVh++KLL77cxmgINT5yLVb2zLbEOuusE7azzjorbIcddlip+1X7b2ztf5PUfj7++OPktanfBT//+c/DtmDBguob4z9yZqmX1L/lN77xjbA99thjYfvkk0+S9+zVq1fVfbV3zixdunQJW+psFUVRjB07Nmzrrbde2KZOnRq2I488MmxPP/10cj/LAmc27cwzzwzboYceGrbDDz88bE888URLthRad911w9a5c+ew7bLLLmFLvfZtif79+4dt2rRpdblnLhrpzDbaeU3ZbLPNwjZp0qSwrbDCCsl1U+/zHnzwwbDdddddYfvggw/CtvPOO4dt9OjRYSuKolhrrbWSPXLuueeG7fzzzy+15rKikc5rUbTNmU29Lpw4cWLYUp9Dt0SHDvH/m9zc3FyXe0ZSeymKopg7d27YTjjhhLDdfffdYfvss8+qb2wZ5szWR+r56Zprrkle20jnsrX3UhQt28+sWbPCtv/++4ct9bqo0TizRfHQQw+FbciQIWGbN29e2FJ/7508eXJyP6n3ebNnzy51XVmp98dFURSjRo0K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nUo9TmHJkiVh++tf/1ry/aC+rL322mHr1atX2H7729+GbeXKlck9DzjggJoHK6FWrVol+7nnnhu21OuQ1M/In332Wdga088c1I8RI0aE7eOPPw7bo48+GraazmVj0rNnz7CNGzcu05p/+9vfwjZ79uxMazYUPiEKAAAAAAAAAADIDReiAAAAAAAAAACA3HAhCgAAAAAAAAAAyA0XogAAAAAAAAAAgNxwIQoAAAAAAAAAAMgNF6IAAAAAAAAAAIDcqKzvARqqZs3iu2KnnHJK8tkjjjgi057t27cPW5cuXcI2f/78TPvVh1122SXZ11lnnUzrbrnllmGrrIz/mn/zzTeZ9qNx6dWrV7L37NkzbMViMWxvvvlm5pmA8qiqqgpbnz596nCSf/nVr34Vtq5du4ZtypQpZZgGKJe11lorbIccckjY5s2bl1z31VdfzToShC699NJk/8tf/hK2p556qsTT1I8hQ4aEbbPNNgvbe++9V45xaOLWX3/9sHXr1i3zugcddFDYUu9r/eEPf8i8Z1176KGHwrbvvvtmXneHHXbI/Cxklfr5sBzP1UbqfO23335he/fdd8N2zz331GomyINbbrklbDvttFPdDfI9rFmzpr5HgJKZNGlS2FKvqVNmzJiRdZyy6N27d7Kfc845mda99dZbw3bbbbeFbeHChZn2o3Fp3rx5sp977rlhS/3M2rZt27Bts802YavpfdiGpKb7EieddFLYWrduHbavv/46bHfeeWfYqqurk/M0dD4hCgAAAAAAAAAAyA0XogAAAAAAAAAAgNxwIQoAAAAAAAAAAMgNF6IAAAAAAAAAAIDccCEKAAAAAAAAAADIDReiAAAAAAAAAACA3HAhCgAAAAAAAAAAyI3K+h6goVpvvfXC9oc//KEse/7zn/8M2/z588uyZznsvffeYRs3blxZ9rzxxhvDtmLFirLsSeMxcODAZK+oqAjb7Nmzw7b//vtnHanO9erVK2xLly4N2+LFi8sxDpTN888/H7Y+ffrU4ST/kpoHKBQ6dOgQthkzZoTthBNOCNtzzz1Xq5myOPjgg8P2ox/9KGxnnHFGOcaBQvv27cO23377JZ894IADwtazZ8/MM5VDTf8tWay99tolXxMamg033LC+RyiJTz75pL5HgJLZcsstMz33t7/9rcST1Gz06NFha9GiRdjefvvtsH377be1mgkakrXWWitsf/zjH8P2k5/8pBzjZPbCCy/U9wjwH1l33XXDduWVV4btkEMOCVt1dXWmWd56661Mz9WkVatWYbv00kvDNnz48Mx7Llq0KGxXXXVV2ObMmZN5T/Ih9fe1UCgUDj300LCl3jN+5ZVXwjZv3ryaB2sEBg8enOynnXZapnVT77c/88wzmdZsDHxCFAAAAAAAAAAAkBsuRAEAAAAAAAAAALnhQhQAAAAAAAAAAJAbLkQBAAAAAAAAAAC54UIUAAAAAAAAAACQGy5EAQAAAAAAAAAAuVFZ3wM0VB07dizLup988knYjjrqqLLsWdcmTJgQtnbt2mVet1gshu3zzz/PvC75MGjQoLD9+te/Tj6b+rs1cuTIsC1ZsqTmwepQr169wvbiiy+G7e233w7b/vvvn9yzoX0NYOjQoWH78MMP63AS4PvYbLPNwtatW7ewnXLKKWF77rnnajVTFqnvwRUVFWF7+umnyzEOFNq0aRO21N/XQqFQePfdd0s9Ttmkfr7OKvX6/+ijjy75fnDooYeWZd3U95hx48aVZc9yWHvttcM2atSosuzp5wbqwx577BG2ZcuWhW3atGnlGCepU6dOYUu99p05c2Y5xoEGZ8SIEWE78cQT63CS2mlMrxegUCgUrrzyyrAddthhJd/vr3/9a9hGjx6ded3dd989bKeeemrYUr8jq41HH300bHPmzCnLnjQezZs3D9vtt9+efHbLLbcM23fffRe2wYMH1zxYI3DIIYeE7dprr8287uOPPx62gQMHhm3lypWZ92zofEIUAAAAAAAAAACQGy5EAQAAAAAAAAAAueFCFAAAAAAAAAAAkBsuRAEAAAAAAAAAALnhQhQAAAAAAAAAAJAbLkQBAAAAAAAAAAC5UVnfA9Snbt26he2BBx4oy57vvfde2ObPn1+WPcth5513DlvXrl3Lsucdd9wRtssvv7wse9J4bLDBBmGrqKjIvO4777yT+dm6Nm7cuLC1adMmbDvssEPYUv9OFgqFwpIlS2oeDOpQ7969w/bcc8/V4STA97HvvvuGbe211w7bM888U45xktq3bx+2X/ziF2FL/dvz2muv1WomaOpeeeWV+h4Bvpd+/fqF7bjjjivLnjNnzgzb119/XZY9y6FHjx5hS703VZNFixaF7YYbbsi8LqQMGTIkbMViMWyp90QXLFhQq5kiu+66a9i6d+8ettR/xz333FObkaBB6du3b9jGjx9f8v1Wr16d7C1atCj5nh988EHJ14Ta2G677ZJ9v/32C1uzZvHng6Ra6ve2Q4cOTc6T1dFHHx221GuJctliiy3C1rlz57ClXm+TH6NGjQrbgQcemHndk046KWzlev1bDh06dAjbnXfeGbaWLVsm133hhRfCNnDgwLCtXLkyuW5e+YQoAAAAAAAAAAAgN1yIAgAAAAAAAAAAcsOFKAAAAAAAAAAAIDdciAIAAAAAAAAAAHLDhSgAAAAAAAAAACA3XIgCAAAAAAAAAAByo7K+B6hPp5xySti22GKLzOuuXr06bJdddlnmdevajjvuGLYrr7wybO3atcu859KlS8M2cuTIsKW+5lAsFjP3v/3tb2FL/Z185plnah6sxAYOHBi2mr4G0Jj07t07bF27dg3bGWecUY5xkjbeeOM63zMl9bVbuHBh2KqqqsoxDk1E6hz8/Oc/D9urr74atrvuuqs2I2WyzTbbhK1z585hu+WWW8LmNSzlMmTIkMzPfvrppyWcBJqO1q1bh+38888PW8eOHTPvOXPmzLBdfPHFmdbs0aNH2H70ox+FraKiIrlu27Ztw/bLX/4ybKmva220atUqbGuttVZZ9oTBgwdneu7LL78s8SQ1Gzt2bNhatGgRtueffz5sH374YW1GgjqX+p546623hq2yMtuv3RYtWhS2Sy65JPls6vc10JhMnDgxbAcffHDy2fXWWy9s1dXVmeZJvafTvXv3sPXq1Su57llnnRW2fv36hS3rf0dt/PCHPwxbt27dwpb6N43G5aKLLgrbaaedlnndN998M2z33HNP5nXr2gYbbBC2e++9N2ypn0k///zz5J7nnXde2FauXJl8tinyCVEAAAAAAAAAAEBuuBAFAAAAAAAAAADkhgtRAAAAAAAAAABAbrgQBQAAAAAAAAAA5IYLUQAAAAAAAAAAQG64EAUAAAAAAAAAAORGZX0PUG7NmsV3vrp06VKWPSdMmBC2hx56qCx7lsNpp50Wtp133rkse1599dVhW7JkSVn2JB9uuOGGsO27777JZwcOHBi2HXbYIWwzZswIW0VFRdjeeuutsD399NNhq0lqz5TZs2dnalBfunXrlum5WbNmlXiSQqFr167JPnLkyEzrLliwIPOe5XDooYeGbcqUKXU4CQ3RhhtumOyp79EbbLBB2EaMGBG2ZcuW1TxYie26665h++6778L297//vRzjQNJ///d/Z3522rRpYdt+++0zr1sOxxxzTMnX7N+/f9juvffe5LMvv/xy2C6//PKwrVmzpsa5aPjWXXfdsKX+XtXGj370o7DNmTMn05rt27cP2/rrrx+2mn4eLRaLmeYpl2effTZsixYtqsNJyJMePXok+5AhQzKtW473k3fcccdk//GPfxy21HmeOHFi2FavXl3zYFCHDjrooGRP/X3O+t7URx99FLYDDjggbMcdd1ym/WrS0L4/w7bbbhu2rOeuNs4///xMrbH561//GrbbbrstbC+88EI5xqEepM7Xr371q7C1adMmbEuXLk3umfrdbX2895vVT3/607Cl3k9O+fWvf53sTzzxRKZ1myqfEAUAAAAAAAAAAOSGC1EAAAAAAAAAAEBuuBAFAAAAAAAAAADkhgtRAAAAAAAAAABAbrgQBQAAAAAAAAAA5IYLUQAAAAAAAAAAQG5U1vcA5XbssceG7YgjjijLnvPmzSvLuuUwaNCgsB100EEl3+8f//hHsv/+978v+Z5w1FFHJXvqHEyaNClsxWIx0zw9e/YMW69evZLPpvbM2qCx2XjjjcNWVVUVtqFDh4atT58+Ydtkk00yPVcbXbt2DdvUqVMzr5v6+jz//PNhmzJlSuY9yb/DDz882ffbb7+wXXHFFWF78MEHM83Trl27sO2xxx7JZ1u3bh22X/ziF2GrqKgI23HHHZd5nhdffDFsTz/9dNiWLVuWXJd8SP1dP+CAAzKve8EFF2RqeZH6HpxqhUKh8Mknn4StWTP/Pxql16ZNm7BtvvnmdThJw/PBBx8k+xlnnBG2b7/9ttTj0ERUVqbfam/evHmmde+8886w1fR3PbLhhhtmeq4mu+++e9jWXnvtsL377rvJddddd92wZf25gaZhyy23DNtVV12VfLam136Rjz76qORrlssDDzwQto8//rgOJwFqa/78+WF75JFHks+OHj06bMuXL886Eo3I6aefHra2bdtmWnP27NnJnvp+2Zj069cvbKn3jD/99NOw3XDDDbWaif+bd+QAAAAAAAAAAIDccCEKAAAAAAAAAADIDReiAAAAAAAAAACA3HAhCgAAAAAAAAAAyA0XogAAAAAAAAAAgNxwIQoAAAAAAAAAAMgNF6IAAAAAAAAAAIDcqKzvAcptzJgxdb7nWWedFbYDDzwwbNdcc03Yhg0bFraePXuG7Y477ghboVAo/OIXvwhbu3btks9msc022yT7I488ErZvvvkmbM8//3zYHnvssbA98cQTYauurg4bjcvXX3+d7KlzUtMZipx44omZnuvVq1ey77HHHmHbYYcdMu0Jjc0mm2wStq5du4ZtwoQJJZ9l6tSpyZ6atU+fPmE79NBDwzZlypSaB4MS++EPfxi2ms7W66+/HrYHH3wwbCNGjAjbjjvuGLZjjz02OU9KRUVF2IrFYtgWLVoUts8//zxsAwYMSM5zzDHHhK1ly5ZhO++888J20003Jfek8WjevHnYunXrVoeT5MuCBQvC1qJFi+Sz5557bthWr16deSYah+XLl4fttddeC1vqe2xjknrvpVAoFAYPHhy21PthRx55ZKZ5jjvuuGR/5513Mq0LKStXrkz2r776Kmzt27cPW+rnylSrjdTr4pRf/vKXJZ7kX2bOnBm21M8UcN9994Ut9R5Sbbz55pslXzP1fRRoOpYsWRK2oUOHhm3OnDnlGIcmIvWeaEq/fv2SPfXe79y5czPt+dZbb4Xto48+Cttuu+2WXHefffYJW+p96tTX7o033gjbXnvtlZznpZdeCtuXX36ZfLYp8glRAAAAAAAAAABAbrgQBQAAAAAAAAAA5IYLUQAAAAAAAAAAQG64EAUAAAAAAAAAAOSGC1EAAAAAAAAAAEBuuBAFAAAAAAAAAADkRkWxWCyWdMGKilIuV2vvvvtu2DbffPM6nISGaPz48WE788wzy7JniY9crTW0M0va+uuvH7ZPPvkkbKm/d6+88krYdtppp+83WI45sw1P165dw/arX/0q05q///3vw1ZVVZVpzUKhUBg+fHjYJk+eHLZDDz00bFOmTMk8T1PgzJbHuHHjwnbOOedkXjf19Un9WS5evDhsL774Ytjuvffe5DwjR44M21ZbbRW21PfL2bNnJ/fMqm3btmHr0KFD2Grzb1o5OLPZdezYMWypM1KTFStWhG358uVh69SpU+Y9Iy+99FKyb7nllmFr165d2P7+97+H7fjjjw9bixYtkvPMnTs32fOgIZ3ZxnReUzp37hy2Y489tg4n+ZerrroqbKl/A2rSrFn8/2TeeuutYTvyyCPDlvr72Ldv3+Q8zzzzTLLnQUM6r4VCfs5sbXTr1i1sJ598cti22WabsKW+33Xp0iVsrVu3DluhkP63KfV3a9WqVWFLvcao6e/rEUccEbbHH388+Wxj4cxmN2jQoLDdfffddThJzdasWZPpucrKyhJP8i+pv3epf5duuOGGcozTqDizdW/gwIHJfvDBB2daN/W123fffcNWjp+BC4VCYdKkSWGrj58P8sKZTdtoo43Cdscdd4StX79+5Rgns48++ihsn3/+edhS7y8VCun3g+rj71bq9W/qddHXX39djnHKopRfV58QBQAAAAAAAAAA5IYLUQAAAAAAAAAAQG64EAUAAAAAAAAAAOSGC1EAAAAAAAAAAEBuuBAFAAAAAAAAAADkhgtRAAAAAAAAAABAblQUi8ViSResqCjlcrXWtWvXsD3++ONh22KLLcoxDg3MmWeeGbbx48eXZc8SH7laa2hnluyqq6vDlvp7t3Tp0rDtuOOOyT0XLFhQ82CNnDNLbQwfPjxskydPDtuhhx4atilTptRqprxzZsujTZs2YTvkkEMyr/viiy+GbfHixWH79ttvw/b111+HrXnz5sl5vvnmm7DNmjUrbLvvvnvYGtrfyYamoX19GtOZTf193n777TOvu2rVqrCtWLEibB07dsy8Z+Stt95K9v/5n/8J23XXXRe21Pfgww47rObBmrCGdGYb03mlUNhoo43C9uGHH2Zac968eWHr379/8tmPPvoo056NSUM6r4WCM1sfNtlkk7C98soryWdT39f/8Y9/hO3oo48O25tvvhm21atXJ+dpCpzZ7HbZZZewTZ8+PWwtWrQowzT5sWTJkrB16tSpDidpmJzZ/Fh77bXD9uijj4Zt5513zrxn6nylXse+8847mfds6pzZ7Fq2bBm23/72t2FL/W6kNlJfuw022KAsezZrFn/GUOr95M8//zzTfo888kiyjx07NmwffPBBpj0bmlKeWZ8QBQAAAAAAAAAA5IYLUQAAAAAAAAAAQG64EAUAAAAAAAAAAOSGC1EAAAAAAAAAAEBuuBAFAAAAAAAAAADkhgtRAAAAAAAAAABAblTW9wDlVlVVFba+ffuG7fDDDw/bzjvvnHme3r17h23TTTfNvG5dmzZtWtg+//zzzOteddVVYfvyyy8zrxt58803S74m1JdisZipdezYMWzrr79+cs8FCxbUPBgAjd7XX38dtrvuuqsOJ6mdffbZJ/OzTz/9dNhS32ehXL799tuwPf/883U4yb+89957db7nwoUL63xPIJsDDjig5Gt+/PHHYfvoo49Kvh80Nq1atQrbOuusk3ndCy+8MGyvvvpq5nUhq9Rr38022yxsP/3pT5PrtmzZMmw77bRT2LbaaqtMa3bu3Dk5Tzl8+umnYTvxxBPrcBKoP5MmTQpb1t8Hz58/P9mHDh0atnfeeSfTnlAu33zzTdhOO+20TK02Kivj6y2ps7X99tuHbdSoUck9V61aFbZf/OIXYbvpppuS61I3fEIUAAAAAAAAAACQGy5EAQAAAAAAAAAAueFCFAAAAAAAAAAAkBsuRAEAAAAAAAAAALnhQhQAAAAAAAAAAJAbLkQBAAAAAAAAAAC5UVnfA9SnTz75JGwTJ04sy56dO3cO29prrx22rbfeOmz33ntvrWaKTJ8+PWyHHHJI2L755psyTAPU5MYbbwzbCSecELaKiopyjAPUwpQpU+p7BMil//mf/0n2zz77LGxXXXVVqccB6sn+++8ftk033TRsH3zwQTnGgVxo3bp1sp911lkl3/O+++4r+ZqQJ5WV8Vv/zZs3z7zu66+/nvlZqGsff/xx2C6//PI6nORf2rdvH7YXXnghbD169Mi856effhq2H/7wh2FbvHhx5j2hMUn9vrO6ujrTmjX97DhnzpxM6wKFwpo1a8L2yCOPhO24447LvGfq3shNN92UeV3qhk+IAgAAAAAAAAAAcsOFKAAAAAAAAAAAIDdciAIAAAAAAAAAAHLDhSgAAAAAAAAAACA3XIgCAAAAAAAAAAByw4UoAAAAAAAAAAAgN1yIAgAAAAAAAAAAcqOyvgdoahYtWpTpufPOO6/Ek9TssssuC9s333xTh5MA38fbb78dtmKxWIeTAED9adGiRdj69++ffHbJkiVhW7hwYdaRgAbms88+C9uqVavqcBLIj8rK9FuMm2++eaZ1582bF7Y77rgj05rQVBx77LFhq6ioSD5bUwey+fLLLzO12li5cmXYFi9eXJY9oaE5/vjj63S/m266qU73g6Yk9Tr1kksuCduee+4ZtmeffTa558UXX1zzYDRYPiEKAAAAAAAAAADIDReiAAAAAAAAAACA3HAhCgAAAAAAAAAAyA0XogAAAAAAAAAAgNxwIQoAAAAAAAAAAMgNF6IAAAAAAAAAAIDcqKzvAfh+2rVrV5Z1n3rqqbBNnz69LHsC5fH000+HraKiImzNmsV3Y0844YTkniNGjKh5MGjChg4dGrapU6fW4STQdGy55ZZh69KlS/LZSy65pNTjAA3Q888/H7ZPPvmkDieB/Nh8883Lsu6rr74atsWLF5dlT8iLVatWha1YLGZed5tttgnbO++8k3ldoDwWLlxY3yNAnXj//ffD1q1bt7Clfj+SknqdOm3atExrAjXbbbfdwnbSSSdlWvOoo45K9q+//jrTujQMPiEKAAAAAAAAAADIDReiAAAAAAAAAACA3HAhCgAAAAAAAAAAyA0XogAAAAAAAAAAgNxwIQoAAAAAAAAAAMgNF6IAAAAAAAAAAIDcqKzvAfh+xo8fH7aBAwdmXveJJ54I2+rVqzOvC9S9JUuWhG3x4sVh22CDDcoxDgDUi/322y/zs9ddd10JJwHqU0VFRdgOOeSQsHXv3j1s8+fPr8VEkG/Dhg0ry7pTpkwpy7rQFNx1111hO++88zKv630kaFwefPDB+h4BSmLddddN9mbN4s8Aqa6uzrTnRx99FLbBgweHbenSpZn2A2r24x//OGxfffVV2E499dSwffLJJ7WaiYbNJ0QBAAAAAAAAAAC54UIUAAAAAAAAAACQGy5EAQAAAAAAAAAAueFCFAAAAAAAAAAAkBsuRAEAAAAAAAAAALnhQhQAAAAAAAAAAJAblfU9AN/Pc889F7Zp06aFbZ999kmue/7554ft4YcfDttLL72UXBeoex988EHYPvzww7B16tQpbCeeeGJyzz/84Q9he/vtt5PPQlNQVVUVtmHDhoVt5MiRYZs4cWKtZoK8q6zM/iPOwQcfHLZrr70287pA3SsWi2FbsGBB2FasWFGOcSAXtt1227CNGDGiDicB6tPf//73+h4BgJxad911w3bPPfckn+3SpUuJpykUJk+eHLbU72OA8undu3fYnn766bA9+eSTYVu5cmWtZqJh8wlRAAAAAAAAAABAbrgQBQAAAAAAAAAA5IYLUQAAAAAAAAAAQG64EAUAAAAAAAAAAOSGC1EAAAAAAAAAAEBuuBAFAAAAAAAAAADkRmV9D8D3891334XtwAMPDFuzZtnvvK1Zsybzs0DDMm7cuLDdfffdYbv33nuT67799tuZZ4KmYOrUqWHr06dPHU4CTcesWbPC9vXXXyef/eqrr0o9DtAAvfLKK2FbvHhxHU4CjUunTp3Ctu666yafLRaLYXv//ffD9uCDD9Y4F/DvffHFF2H75JNPks++++67Yfvyyy+zjgQkXHzxxWGr6T3aefPmhe2OO+7IPBPUtVatWoVt0003LcueqbN36aWXlmVPILv99tuvvkegkfEJUQAAAAAAAAAAQG64EAUAAAAAAAAAAOSGC1EAAAAAAAAAAEBuuBAFAAAAAAAAAADkhgtRAAAAAAAAAABAbrgQBQAAAAAAAAAA5EZFsVgslnTBiopSLge5U+IjV2vOLKQ5s9C4OLPQuDiz1EazZvH/4/Xyyy+H7U9/+lPYrr766lrNlHcN6cw6rw3LoEGDkv3uu+8O26RJk8J27LHHZp6pqWtI57VQcGahJs4sNC7ObN0bM2ZMsp933nmZ1m3evHmm52hcnFloXEp5Zn1CFAAAAAAAAAAAkBsuRAEAAAAAAAAAALnhQhQAAAAAAAAAAJAbLkQBAAAAAAAAAAC54UIUAAAAAAAAAACQGy5EAQAAAAAAAAAAueFCFAAAAAAAAAAAkBsVxWKxWNIFKypKuRzkTomPXK05s5DmzELj4sxC4+LMQuPSkM6s8wppDem8FgrOLNTEmYXGxZmFxsWZhcallGfWJ0QBAAAAAAAAAAC54UIUAAAAAAAAAACQGy5EAQAAAAAAAAAAueFCFAAAAAAAAAAAkBsuRAEAAAAAAAAAALnhQhQAAAAAAAAAAJAbLkQBAAAAAAAAAAC54UIUAAAAAAAAAACQGy5EAQAAAAAAAAAAueFCFAAAAAAAAAAAkBsuRAEAAAAAAAAAALnhQhQAAAAAAAAAAJAbLkQBAAAAAAAAAAC5UVEsFov1PQQAAAAAAAAAAEAp+IQoAAAAAAAAAAAgN1yIAgAAAAAAAAAAcsOFKAAAAAAAAAAAIDdciAIAAAAAAAAAAHLDhSgAAAAAAAAAACA3XIgCAAAAAAAAAAByw4UoAAAAAAAAAAAgN1yIAgAAAAAAAAAAcsOFKAAAAAAAAAAAIDdciAIAAAAAAAAAAHLDhSgAAAAAAAAAACA3XIgCAAAAAAAAAAByw4UoAAAAAAAAAAAgN1yIAgAAAAAAAAAAcsOFKAAAAAAAAAAAIDdciAIAAAAAAAAAAHLDhSgAAAAAAAAAACA3XIgCAAAAAAAAAAByw4UoAAAAAAAAAAAgN1yIAgAAAAAAAAAAcsOFKAAAAAAAAAAAIDdciAIAAAAAAAAAAHLDhSgAAAAAAAAAACA3XIgCAAAAAAAAAAByw4UoAAAAAAAAAAAgN1yIAgAAAAAAAAAAcsOFKAAAAAAAAAAAIDdciAIAAAAAAAAAAHLDhSgAAAAAAAAAACA3Kku9YEVFRamXhFwpFov1PcL/xZmFNGcWGhdnFhoXZxYal4Z0Zp1XSGtI57VQcGahJs4sNC7OLDQuziw0LqU8sz4hCgAAAAAAAAAAyA0XogAAAAAAAAAAgNxwIQoAAAAAAAAAAMgNF6IAAAAAAAAAAIDccCEKAAAAAAAAAADIDReiAAAAAAAAAACA3HAhCgAAAAAAAAAAyA0XogAAAAAAAAAAgNxwIQoAAAAAAAAAAMgNF6IAAAAAAAAAAIDccCEKAAAAAAAAAADIDReiAAAAAAAAAACA3HAhCgAAAAAAAAAAyA0XogAAAAAAAAAAgNxwIQoAAAAAAAAAAMgNF6IAAAAAAAAAAIDccCEKAAAAAAAAAADIDReiAAAAAAAAAACA3HAhCgAAAAAAAAAAyA0XogAAAAAAAAAAgNxwIQoAAAAAAAAAAMgNF6IAAAAAAAAAAIDccCEKAAAAAAAAAADIDReiAAAAAAAAAACA3HAhCgAAAAAAAAAAyA0XogAAAAAAAAAAgNxwIQoAAAAAAAAAAMiNyvoeAACgIevYsWPYRo0alXndTp06ha1Xr15h23XXXTPvmbLRRhuFbdGiRWXZEwAAAICmo3///mEbM2ZMpucGDBgQtunTp3+PqQCAvPIJUQAAAAAAAAAAQG64EAUAAAAAAAAAAOSGC1EAAAAAAAAAAEBuuBAFAAAAAAAAAADkhgtRAAAAAAAAAABAbrgQBQAAAAAAAAAA5EZlfQ9A/my//fZhe+aZZ5LP3nLLLWE7+eSTs44EudGtW7ewnX766WH78MMPw/bOO++Eba+99vp+g/2Hvv3227Bde+21Yfv444/DtnLlylrNRNO2zz77hO3RRx8NW7FYLMc4Sak9a/o+O3Xq1LAtW7Ys80yQF0OHDg1b6jXuDTfcELb58+fXZiRoUNZZZ52wjRo1Kmy/+c1vwtasWfz/aVVXVyfnueyyy8J2/PHHh2399dcPW+p183XXXZec56uvvgrbH//4x+SzAFBqgwYNCts999yTfDbrz5333Xdf2J5++unknil9+/YNW8+ePUv+XFVVVdh23HHHsBUKhcKSJUuSHRqL/v37Z2qFQqEwZsyY0g5Do7PJJpuErWPHjmHbddddw7bNNttknmf//fcPW/fu3cOW+n5YUVGR6blCIf3z88SJE5PPAqXXunXrZN92223D9rOf/SxsgwcPDlvq38KGZt68eWH7wQ9+kHx29erVpR7nP+YTogAAAAAAAAAAgNxwIQoAAAAAAAAAAMgNF6IAAAAAAAAAAIDccCEKAAAAAAAAAADIDReiAAAAAAAAAACA3HAhCgAAAAAAAAAAyI2KYrFYLOmCFRWlXI4Gauuttw7b3/72t7BtsskmyXX333//sD366KM1D9YIlPjI1ZozW/fWXnvtsB122GHJZydMmBC2tm3bhq2h/b3L6rnnngvbY489lnx27NixmfZsaF87Zza7zTbbLGx33HFH2Hr37h222vz9WLRoUdjeeuutsN12221hu//++5N7fvbZZzUP1sg5s6QccsghyX7nnXeGrU2bNmG74IILwpb1+09T4cw2PKmfyc4+++yw7b777pn2S33NG9rfj5qk5k19D/7JT34StpdffrlWM5VaQ/ozcV4hrSGd10LBmS2X1M+HAwcODFvqtW2hkP77k/V7d22+52d99plnngnbJZdcErYFCxaE7e233w5bbTizpNTm58p+/fqFrX///pnXrWsN7eduZzbtmmuuCdtJJ51Uh5PUj6VLlyb7wQcfHLbU70DIzpltGlq0aBG20047LWzHH398ct0tttgi80xZrFmzJtm/+eabsK1atSpsqd+Dffzxx2E7/PDDw7bTTjuFrVAoFFavXp3skVKeWZ8QBQAAAAAAAAAA5IYLUQAAAAAAAAAAQG64EAUAAAAAAAAAAOSGC1EAAAAAAAAAAEBuuBAFAAAAAAAAAADkhgtRAAAAAAAAAABAblQUi8ViSResqCjlcrkzffr0sHXr1i1s1157bdg+/PDDsC1evDg5T+rPa/fddw/bGWecEbbWrVuH7bTTTkvOc9VVVyV7HpT4yNWaM1v3tt5667DNmTMn87qpP8uG9veuPqy11lqZnmtoXztnNq1jx45he+edd8LWoUOHsKW+5lVVVcl5brnllrDdcMMNYUt9byfNmW0aevToEbatttoqbD/96U+T6w4aNCjTPH//+9/Dtnz58kxr1mTmzJlhmzt3btief/75sC1atKhWM2XhzDY899xzT9gOOeSQku/XVF7Dpv4t2GSTTTI9Vx8a0p+J89o0tGjRImwtW7YMW7t27ZLrnnTSSWFLncmUF198MWzXX3992KqrqzPtV5OGdF4LBWe2Jm3btg3bOeecE7Zzzz03bKm/AzX9eaTeU16wYEHy2SzuvffeZH/77bfDdt9995V6nHrhzDYN/fv3D9uYMWMyPZcnF1xwQdjGjh1bd4N8D85sWup3IKn3JVq1apV5z/fffz9sDz30UNjmz5+fab/XX389bE8//XTy2VWrVmXak+yc2fxYf/31w/a3v/0tbDvuuGM5xinMmDEjbN99913YbrrpprC99dZbyT1fffXVGudq7Ep5Zn1CFAAAAAAAAAAAkBsuRAEAAAAAAAAAALnhQhQAAAAAAAAAAJAbLkQBAAAAAAAAAAC54UIUAAAAAAAAAACQGy5EAQAAAAAAAAAAuVFZ3wM0NV999VXYunfvHrbLL7+8DNNk98UXX4Tt6quvDtsNN9xQhmmg4Wnbtm3YfvzjH5dlz+rq6rCtWLEibC+++GLYevbsmdyzsrJuv43ce++9YXvwwQfrcBLq0xFHHBG2s88+O2wdOnTItN+3334btjPOOCP57JQpUzLtCRQKbdq0Cdv9998ftl69epVjnKQ999yzzvc8+OCDMz2X+nlk8eLFYbvsssuS6/7pT3/KNA9NwxtvvBG2Fi1aZHquNvr165fpubvvvjvZf//734ftu+++C9vy5cszzUP+pb4XFgqFwvnnnx+2zTbbLGxnnXVW2ObPn1/jXFl06dIlbEcddVTY+vfvH7b27duH7b/+67+S83Tq1CnZszjmmGPCNm3atLDNmzev5LPQMKVep44bNy5shxxySNiKxWKmttNOO4WtUCgUlixZErYFCxYknwViqe9rqdbYXHDBBWEbO3Zs3Q1CvXn99dfD9uqrr4atd+/eYUu971soFApXXnll2FavXp18FmhYUj8/3nPPPWHbcccdw5b6d+Diiy9OznPnnXeG7f333w9b6vU4dccnRAEAAAAAAAAAALnhQhQAAAAAAAAAAJAbLkQBAAAAAAAAAAC54UIUAAAAAAAAAACQGy5EAQAAAAAAAAAAueFCFAAAAAAAAAAAkBsuRAEAAAAAAAAAALlRWd8D8P0sXLgwbHfffXfYNt544+S6rVu3Dtvbb78dtvHjx4dt0aJFyT0hL4YMGRK23/zmN2HbZpttMu/5yCOPhO26664L29y5c8P2zjvvZJ4HyuGII45I9tTf9bZt25Z6nELz5s3DdttttyWf/eUvf5lpz8mTJ4ftzjvvDNtnn32WaT9oiH70ox+FrVevXmXZ88EHHwzb5ZdfHrZisViOcZIqKirClppn0003Dduee+4Zto4dO36/wWjw2rdvn+wbbLBBpnVXrFgRtv322y9sa621Vtg+/PDDTLPU5Ac/+EGm5958880STwJp559/frKfddZZmdadN29e2EaPHh223r17Z3quUCgUtt5667D913/9V/LZcvj888/D9sYbb4StU6dOYdtiiy3C9uijj4atR48eYaNxqenn0XvuuSds//3f/x221Gu72bNnh23//fcP25IlS8IG5Mv06dPDNmDAgLobhCalc+fOYevatWumNV955ZVkX716daZ1gfqx/vrrh+3ll18OW+o90YceeihsN910U9j+8pe/hI3GzydEAQAAAAAAAAAAueFCFAAAAAAAAAAAkBsuRAEAAAAAAAAAALnhQhQAAAAAAAAAAJAbLkQBAAAAAAAAAAC54UIUAAAAAAAAAACQG5X1PQDfz4ABA8L23nvv1eEkkD/bbrtt2Pbcc8+wXXDBBWFr27ZtrWaKPPjgg2F74IEHyrInlEPfvn3Ddt555yWfLdf5yqJ58+bJvttuu2VaN/XcAQccELbDDjssue4XX3yRaR6oDzNnzgxbs2bx/9fx17/+NWwHHXRQcs9//OMfmeZpTJ599tmw3XXXXXU4CfWlZ8+eyb7rrrtmWve7774L28cff5xpzXJ5880363sE+F4222yzsqyb+p526qmnhu2KK64IW02viysqKsJWLBbDlvre/OGHH4atqqoqOc9VV10VtjfeeCNsnTp1Ctvo0aPDlvq6kh+TJk1K9tT34NQ5GDduXNiuvPLKsC1ZsiQ5D5Afqfepx44dW3eDwP8j9Zpp4403rsNJ/mWDDTYIW+p92GOOOaYM0xQKb7/9dtiuu+66sM2fP78M00B5tGnTJtnfeeedsK233nphu+iii8I2ZsyYmgejyfEJUQAAAAAAAAAAQG64EAUAAAAAAAAAAOSGC1EAAAAAAAAAAEBuuBAFAAAAAAAAAADkhgtRAAAAAAAAAABAbrgQBQAAAAAAAAAA5EZFsVgslnTB6aohGgAAvnxJREFUiopSLpc7DzzwQNgOOOCAsK233npha9euXaZWKBQKb7zxRrJTeiU+crXWFM7skUcemezXXntt2Nq0aVPqcQqrV68O2+TJk5PPjhw5Mmyff/555pmIObPZ/eAHPwjb888/H7a2bduWY5zMvvvuu7BNmjQp+ewee+wRth49emSeKXLDDTck+89//vOS79nQOLNNQ+r7c+rfl9atWyfX3WabbcK2cuXKmgfjP+bM1r2dd9452Z999tlM6y5btixsHTp0yLQmDU9DOrN5Oa/rrLNO2KZNm5Z8dpdddgnbokWLwrbrrruG7cYbbwzbZ599FrYrrrgibIVCobBmzZpkjyxYsCDTPPVhgw02CNvQoUPDlnpPojYa0nktFPJzZlOqq6uTPfVnMmLEiLDV9HMe+eDMNg1Z/5ynT5+e7AMGDMi0Ltk5s2nbbrtt2GbPnp1pzTPOOCPZd99997DttttuYUu9hqsPqd/zvPLKK2G7+OKLwzZjxoxazZQHzmzdGzJkSLJPnTo1bKn3mLbccsuwffrppzUPRqNQyjPrE6IAAAAAAAAAAIDccCEKAAAAAAAAAADIDReiAAAAAAAAAACA3HAhCgAAAAAAAAAAyA0XogAAAAAAAAAAgNxwIQoAAAAAAAAAAMiNyvoeoKnZbrvtMj138803h22//fYLW2Vl+o949uzZYTvllFMyPVcsFpN7Ql1r1apVsrdp06bke06aNClsl112Wdjeeeedks8C9aVFixZha9u2bR1O8i833XRT2C688MKwrV69OmyffPJJcs/27duHbaeddgrbtGnTkutGjj766GR/4oknwjZ16tRMe0J9OPjgg8O21VZbha2ms7Vy5crMM0Fj0a5du7Ks+9hjj4VtnXXWCdtXX31VjnGg0fjmm2/C9vnnn2deN3XuUj8jDx8+vCzzNAWLFy8O27XXXluHk1BfanpPNNVHjx4dthNOOCFsN954Y9juvffesC1ZsiRsQO2U4/cjF1xwQcnXhHJasWJF2FI/A6Zew/7ud7+r1UyRqqqqsM2cOTNsDzzwQNg22GCD5J6DBw8O2x577BG2PffcM2y9e/cO24gRI5LzpN4XTv28Aikffvhh5mdTv1vafvvtw/b444+Hbc2aNZnnoXHzCVEAAAAAAAAAAEBuuBAFAAAAAAAAAADkhgtRAAAAAAAAAABAbrgQBQAAAAAAAAAA5IYLUQAAAAAAAAAAQG64EAUAAAAAAAAAAORGRbFYLJZ0wYqKUi7XKO26665hmzlzZtiy/lGsWrUqbIsWLUo++1//9V+Z5jn//PPDNnHixLCtWLEiOU9TUOIjV2tN4cwef/zxyX799deXfM8jjzwybHfddVfJ96N8nNnsunTpErannnoqbJtttlly3TPPPDNs1113Xdi+/vrrsNXHn/Naa60VttT32d/85jeZ95w9e3bY+vfvH7bly5dn3rOuObNNw8Ybbxy2qqqqsJ199tnJda+44orMM5GNM1v3pk2blux77rlnyfecNWtW2K688sqwPfroo8l1U9+fqqurax6M/1hDOrN5Oa8dOnQI24wZM5LPbrXVVmGbN29e2E4//fSwPfDAA8k9aTwa0nktFPJzZlP69u2b7KNHjw7bvvvuG7bUn2Xq65p67pJLLglboVAoXHrppWFL/WxNds5s45J6D+XJJ58s+X61+fMYO3Zs6QYp45qNjTOb3dNPPx221O9Xa/Lss8+GLfV97+WXXw7bp59+mnmerHr37h22c889N2w/+clPMu95yy23hO2EE04IW2P6uduZrXup338UCun3g0aMGJFpz9T34Isuuihs06dPz7Qf5VPKM+sTogAAAAAAAAAAgNxwIQoAAAAAAAAAAMgNF6IAAAAAAAAAAIDccCEKAAAAAAAAAADIDReiAAAAAAAAAACA3HAhCgAAAAAAAAAAyI2KYrFYLOmCFRWlXK5RGj9+fNhGjhwZts8++yxsV111VdhuuOGGsH3xxRdhKxQKhSFDhoRtzJgxYdt8883DNnbs2LBdeOGFyXmaghIfuVprCme2d+/eyT5jxoywVVZWZtoz9ef8wQcfhO3ee+9NrnvxxReH7csvv6x5MP5jzmx23bt3D1uLFi3CNnfu3DJM07h069YtbE899VTYNt1008x7brTRRmFbtGhR5nXrmjPbNKy//vph+/TTT8OWOj+FQqHQv3//rCORkTNb96ZNm5bse+65Zx1N8i+pr3lNfz+uvvrqsC1fvjxs//znP8N20003Jfds6hrSmW0K53XnnXdO9ueeey7Tut99913Yjj322LDdfvvtmfajfjSk81ooNI0zWxvbb7992AYNGhS2wYMHh61nz55hq+nP47777gvb0KFDk8+SjTPbuDz55JNhK8fPlRdccEGyp36XUw41zZP6HVFeOLPZ9ejRI2yTJk0K2yOPPJJc97e//W3YVq1aVfNgjdyIESPCdskllySfbdeuXdhuu+22sP385z8PW0P7mjuzDU+zZvHn9qR+Lj3nnHPClrq/kPo7MHHixLAVCoXCH//4x7DNnz8/+SzZlPLM+oQoAAAAAAAAAAAgN1yIAgAAAAAAAAAAcsOFKAAAAAAAAAAAIDdciAIAAAAAAAAAAHLDhSgAAAAAAAAAACA3XIgCAAAAAAAAAAByw4UoAAAAAAAAAAAgNyqKxWKxpAtWVJRyuUbpsMMOC9uQIUPCdtppp4Vt4cKFtZopi2OPPTZsf/rTn8K2fPnysPXo0SO55+LFi2serJEr8ZGrNWe2UPjxj38ctltvvTVsG220UclnqenP4+abbw7byJEjw/bll19mnqmpc2bTunfvHrbHHnssbL/85S/D9sgjj9RmpNx7+umnw7bbbrtlXrdLly5hW7RoUeZ165oz2zSsu+66YZs3b17YmjVL//8gBx54YNhmzpxZ41z855zZute1a9dkT33/3mKLLUo9TvJcVldXl3y/mrzwwgth69OnTx1O0jA1pDPbFM5rTbp16xa2MWPGhO2YY44JW+pMXnnllWE799xzw1YopN8rojwa0nktFJzZctlggw3CNmjQoLBdfPHFyXU7duwYtqVLl4Zt//33D9vLL7+c3LOpc2YbnrFjx4Yt9X22KbjggguSPfW1ywtnlsZk7733TvZ77703bG3atAnbr3/967BdfvnlNQ9Wh5zZ/Gjfvn3YUncbrrjiirCttdZayT0/++yzsG2yySZhW7VqVXJdYqU8sz4hCgAAAAAAAAAAyA0XogAAAAAAAAAAgNxwIQoAAAAAAAAAAMgNF6IAAAAAAAAAAIDccCEKAAAAAAAAAADIDReiAAAAAAAAAACA3KgoFovFki5YUVHK5Wig7r///rAdeOCBYevevXty3QULFmQdqdEo8ZGrNWc2bb311gvb7rvvHraf//znYdtvv/1qNVNkwoQJYTvzzDPLsmdT4MwWCpWVlWH785//HLYDDjggbPvuu2/Ynnrqqe83WBP19NNPh2233XbLvG6XLl3CtmjRoszr1jVnltS/S8OHD08+++KLL4atX79+YVu1alXNg/FvObMNT7du3cJ2wgknhO3NN98MW+/evcOW+pqn9isUCoXmzZsnexYffPBB2Pbee+/ks//85z9LPU6D05DOrPOa3QUXXBC2U089NWzt27cP28svv5zc89xzzw3btGnTks+STUM6r4WCM9vQ7LDDDsn+0EMPhW2DDTYIW+rn1f79+9c4V1PmzDY8Y8eODduYMWPqbpAGyN8PZ7axSf2cu/baa2dac968eWH75ptvMq1ZX1I/A0ycODFsy5cvD1vqZ4f64MySuqNw5513Jp9Nva/12WefhS31mjv1/hOlPbM+IQoAAAAAAAAAAMgNF6IAAAAAAAAAAIDccCEKAAAAAAAAAADIDReiAAAAAAAAAACA3HAhCgAAAAAAAAAAyA0XogAAAAAAAAAAgNyoKBaLxZIuWFFRyuVooG677bawHXHEEWHr3r17ct0FCxZkHanRKPGRqzVntjyaNYvvm/7gBz8I24033phcd+eddw7b/Pnzw7b55psn1yXmzBYK2223Xdhmz54dtldffTVs22+/fS0myr+11147bE899VTYUn9WNenSpUvYFi1alHnduubM0rlz57BNmzYt+ezWW28dtj//+c9hO/zww2sejH/LmSVlo402SvbU64mRI0eGrX///pnmeeedd5L94IMPDtu8efMy7dnQNKQz67yWR48ePcL22GOPhW3TTTdNrvvKK6+E7bLLLgvb1KlTk+sSa0jntVBwZhubXr16hS31M2nHjh3Dduedd4btqKOO+n6D5Zgz2/CkXjM++eSTmdacPn162GbMmJHpuUIhPeuYMWNqmOo/33PAgAGZ1swTZ7bhOe6448KWer3ZoUOHTPsdeuihYbv77rszrVlfWrRoEbZHH300bLvvvnvYDjzwwExrloszS0rLli2T/aqrrgrb8ccfH7aHHnoobEOGDAnb6tWrk/M0BaU8sz4hCgAAAAAAAAAAyA0XogAAAAAAAAAAgNxwIQoAAAAAAAAAAMgNF6IAAAAAAAAAAIDccCEKAAAAAAAAAADIDReiAAAAAAAAAACA3Kis7wFonNq3b1/fI0CDVl1dHbbly5eHrVOnTpn37N69e9j233//sD388MOZ96Rp2HvvvTM917Zt27Btu+22YZszZ06m/fLklFNOCdt2221Xlj032WSTsC1atKgse0I5rFixImyff/555nU/+eSTzM9CY9K7d++wffTRR2FbsGBByWf5+OOPk/2hhx4KW4sWLcLWv3//TPP07Nkz2XfdddewzZs3L9OeNB6dO3cOW2N6LfXee++FLfVz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ueeeyT5x4sSwdevWLWxvvfVW2Pr37x+2xYsXJ+dpCkp85GqtMZ3Z1Neuurq6DiepWWqep59+OmyXXnppct3HHnss80xk48xmt+6664bt6KOPDttZZ52VXHejjTbKOlImqa95Q/v78d577yX7brvtFra8fI9uaH8mjenMTps2LWx9+/YN25tvvplcd+211w5bjx49ah7s33j33XfDdu6554bt7rvvzrQf5ePMNjypczl79uywtWnTJtN+De377AsvvBC2XXfdtQ4naZga0pltCue1c+fOyX7ccceFbbPNNiv1OLUybty4sP3zn/+sw0majoZ0XguF/JzZQYMGha2m15qpP5NXXnklbDfeeGPNg/2H9thjj2QfOHBg2FLf81P/jcOGDQvbfffdl5ynKXBms2toX7v6MGDAgLBNnz697gZpQhra37vGdGbrQ9u2bcOW+p6X+h7csmXLsNX0Pmvq584ZM2aELfXeb+p3uqn/xkKhUPjhD38Ytg4dOoRt2bJlYVtvvfWSe9Y1Z7butWrVKtnnz58ftg033DBsqdfjqTUPOuigsI0ZMyZshUKhsNZaa4Ut9T71jjvuGLavvvoquWdTV8oz6xOiAAAAAAAAAACA3HAhCgAAAAAAAAAAyA0XogAAAAAAAAAAgNxwIQoAAAAAAAAAAMgNF6IAAAAAAAAAAIDccCEKAAAAAAAAAADIjYpisVgs6YIVFaVcrknZdtttw/biiy+GrbKyshzjFN54442w7bvvvmH76KOPyjFObpT4yNVaYzqzjz32WNj23HPPsuw5e/bssC1cuDBs1113XdgeeeSRWs1E3XJm617r1q2TfauttgrboEGDwrbjjjuGbe+99w5b6mteH38/xo4dG7bf/va3yWdXrVpV4mkaHmc2u6OPPjpsl19+edg23HDD5LrffPNN2N5///2w/exnPwvbP/7xj7CtWLEiOQ8NS1M5s6mfnx599NGy7FkOe+21V9jOOOOMsPXr1y9sLVu2DFu5/n689tprYbvkkkvCdvfdd5djnEalIZ3ZxvQ9FupDQzqvhULTOLOpn0cLhUJhwoQJYevevXvYqqurw5b159Wa/jxSz1ZVVYXt+uuvD9ull16a3LOpc2bLI/UeypgxY+pukFoaMGBAsk+fPr1uBuH/5cw2DZ06dQrb//7v/4Ztv/32K8c4ZbNmzZqw3XfffWG7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N4btrLPOCttXX32VeU9IefDBB8O27bbbhq26ujpsa9asqdVMWbRq1SpsRx55ZNiOOeaY5LpLliwJ26233lrjXDRNVVVVZVm3a9euJV+zXK+nU7NOnjw5bKnXvrNmzUruueuuu9Y8GPwbqfc9BwwYkHndioqKTM+98847YTvhhBOyjpNZz549w/bmm29mXrdZs/j/6079O3HTTTdl3pP8S/2sWiikf5eR+j3G888/n3kmaAq23nrrsNXmPZ211lorbKeddlrYunXrlmnPl156KWx/+MMfwlYopH9+HjJkSNhOPvnksK277rphW716dXKezz//PNmhIdlqq63C9utf/zpsjzzySDnGSRo4cGDYDj/88LD9/9i57zgrq3vx93sLoqgIdkVExRolluiJLcKA2COKJXZjP4kaFdQYK2BPIqixoMZuFBWsiBobaIw9BA0qElEIEgVUNChV2PePc+7v3nNvvms8z+w9Zc37/e/n9axnMTNrdpkve9KkScl1U+8/8f/nE6IAAAAAAAAAAIBsGIgCAAAAAAAAAACyYSAKAAAAAAAAAADIhoEoAAAAAAAAAAAgGwaiAAAAAAAAAACAbBiIAgAAAAAAAAAAstG2qTeQoyVLlhRqSy0Vz6c9+uijYbv11lvDtvTSS4etVCqVOnfuHLadd945eW3krLPOCtuKK65YaE2opQsuuCBs++yzT9jWWmutQvdLncsddtgheW19vTm59957w3bOOec04k7Izauvvhq2ddZZJ2wHHnhg2B544IEG7QlykDpbF110UdhOP/305LqdOnUK2zLLLBO2Ll26JNeNlMvlQtc1RNF7zpw5M9nXXHPNsM2ZM6fQPaEhFi1aVOi61M/ypZdeGrbJkycXul99TjzxxLBtueWWhde9/fbbw/bpp58WXpfW65VXXkn21OvD+++/v/C6ke22265QK5VKpYMOOihsqefwKUOHDg3b1VdfXWhNqM8jjzwStvPPP78m96xUKmG77777anLPn/zkJ2HbYIMNwnb88ceHLfXvqM+XX34ZtltuuaXwurRubdum/zzWsWPHsH3++edhK/qcObWfn/3sZ8lr99hjj7B99NFHYZs1a1b9G4Mq++STT8I2e/bssKXeXyqVSqVll102bHvttVe9+/rf2nbbbcM2bty45LUNeUyMTJ06NWzHHnts8toXXnih2tuBej311FNh23rrrQutucoqq4Rt0003DVtqfqNUSv9uSv1+ueGGG8KWej/5kEMOSe7ns88+S3b+J58QBQAAAAAAAAAAZMNAFAAAAAAAAAAAkA0DUQAAAAAAAAAAQDYMRAEAAAAAAAAAANkwEAUAAAAAAAAAAGTDQBQAAAAAAAAAAJANA1EAAAAAAAAAAEA2ypVKpVLVBcvlai6XnVGjRoVtr732CttLL70UtkmTJoVt8803T+5nhx12CNuSJUuS10ZmzpwZtrXWWqvQmjmp8pFrMGc2bfjw4WE7+OCDG3EnTaO+3wP3339/2I466qiwLV68uPCeGpsz2/z0798/bEOHDg3btGnTwta1a9cG7amIIUOGhG3AgAGF1nzllVeSfccddyy0bkvizDa+jTfeONnvueeesG299dbV3k7ya96Qn49PPvkkbHfffXfYxo0bF7YxY8Yk7/n555/Xv7EWzpltWbp06RK2t956K2wrrbRSLbZTEwsXLgzb73//++S1Z599dtjmzp1beE/NSXM6s63hvG6//fbJXt9zv5ZixIgRYTvjjDPClnp+T/M6r6VSPmd2+eWXD1vqNV6pVCodc8wxYWvbtm3YUt/L1ONLQx57VltttUL7KWr27NnJfsABB4TtxRdfrPZ2moQz2/zce++9YevQoUPY+vXrF7bU32t+85vfhK1Pnz5hK5VKpW+//TZsqfeYrr/++uS6xJzZ2thvv/3ClnrvpVQqlZZbbrmwNfb3q77vR2o/zz33XNief/75sN11111hS72n1Vo4s83PJptsErY333wzbKnn4ykLFiwIW31/C029V9SxY8ewffzxx2FLvdZNvUZuLap5Zn1CFAAAAAAAAAAAkA0DUQAAAAAAAAAAQDYMRAEAAAAAAAAAANkwEAUAAAAAAAAAAGTDQBQAAAAAAAAAAJANA1EAAAAAAAAAAEA2ypVKpVLVBcvlai6XnTXWWCNs7733Xtg6duxYi+0kv1+zZs0K28033xy2P/7xj2F76aWXvtvGMlblI9dgzmzaJptsErZhw4aFbfPNNw/b448/Xng/hx9+eNjatWtXaM033ngjbJdddlny2kcffbTQPVsSZ7Zlefnll8O2ww47hO2VV14J24gRIwrv56CDDiq0n5Rp06aFbaeddip8bS6c2eZnmWWWCdvWW29daM2DDz44bKeeemrYGvLzMXr06LDt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O2zPPPNM2N56661abKewfv36hW3kyJGF1pw7d26yT5gwodC6cNlll4Xt9ttvT147bdq0sC1YsKDwnhpb9+7dw3bBBReEbf78+WF7+umnG7QnWrff//73YVt77bXDVt/jc+oxKPXznJJ6fG5uDjnkkLD16NEjee0555wTtm+//bbwnqC169u3b9jatWsXto8++ii57pQpU4puCQobM2ZM2FKvr2th8ODBha8dNGhQ9Tby33r27JnsRb8+vXr1KnQdtZF6Dfjuu+8WWrPodQMHDix0XamUfn2Yei7erVu3sC21VPz/KlPXlUql0m677ZbskQ033DBsP/rRj8KW+l1WKpVKP/jBD8L29ddf178xsjZnzpywHXzwwYXXXW+99cKWes6Y8uWXX4Zt5syZYUv9jiiVSqW333670H46deoUttVWWy1skydPLnQ/aIhNNtkk2a+55pqw9enTp9rbKT3xxBNhO+yww5LX1uKxa+mllw7bGmusUXjdp556qvC15KFcLtdk3UqlUpN1iaW+5rX6PpOP1HPu1HumJ510UtjGjx/fkC2FUs/jU1JzERMnTiy4G/63fEIUAAAAAAAAAACQDQNRAAAAAAAAAABANgxEAQAAAAAAAAAA2TAQBQAAAAAAAAAAZMNAFAAAAAAAAAAAkA0DUQAAAAAAAAAAQDbaNvUGWqKJEycm+5133hm2WbNmVXs7DbLqqquG7eSTT676/S688MJkf+aZZ6p+T1qHb775JmwffPBBI+6ktsrlctjOOuussK2wwgphe/DBB8P22muvfbeNwb+xYMGCsJ1zzjmNuJOWp0OHDmE7+uijw/byyy8n1/3Nb35TdEvQ6i21VPx/SYYMGRK21GN3fY+zCxcurH9j8G/U1dUVat+lFzF27NiwDR48uNB1DZH6Nw4cOLDQdaVS8X8n1MKECRMKteZm2223Ddu9994btm7duiXXbd++fdi+/vrr+jcGBUyZMqWptwD8vzz++OPJvv766xda99tvvw3bTTfdFLYLLrggbE3x2DR06NCw9enTp/C6F198ceFrISX1/ktrUKlUmnoL/0NqP639e8V/2WCDDZp6C9/ZjjvuGLbUz/M999xTi+3wv+QTogAAAAAAAAAAgGwYiAIAAAAAAAAAALJhIAoAAAAAAAAAAMiGgSgAAAAAAAAAACAbBqIAAAAAAAAAAIBsGIgCAAAAAAAAAACy0bapN1BrRxxxRNXXHDZsWLLPmjWr6veslb322itsvXr1KrTm/Pnzw/b2228XWhP4L4ccckjYjjzyyEJr/vSnPy26HaABOnToELaRI0eGrXfv3mEbMGBAg/YExE499dSwdevWLWxLliwJ27333tugPdG61dXVhW3gwIGFrmuIsWPHhq3oa8taSe11zJgxjX5PIPbmm2+G7dhjjw1bfWcu9dr62muvrXdfALR8kydPTvbVV189bPfff3/YLrnkkrD94x//qH9jjWjppZcO29FHH1143Ycffjhs7777buF1gZajXC439RbgO+vUqVOyp14/ViqVsH3++edFt0QV+YQoAAAAAAAAAAAgGwaiAAAAAAAAAACAbBiIAgAAAAAAAAAAsmEgCgAAAAAAAAAAyIaBKAAAAAAAAAAAIBsGogAAAAAAAAAAgGy0beoN1Nraa69d9TXfeeedqq/ZVDp27Fj1Nd9+++2wPffcc1W/H7QmF1xwQaHrrr766rAtWLCg4G6AhrjkkkvC1qdPn7DdeeedYbvtttsatCcgdsghhxS6LvXcePTo0UW3QytRV1cXtjFjxjTeRv7b2LFjw9arV6/G20gDFf3apf79pVLL+hpADnbeeefC17744otV3AkALdEee+zR1FtoFCussELY7rrrrrC1b9++8D2feOKJsC1ZsqTwutDaVSqVpt4CZGmHHXZI9lVXXTVsn3/+edj8vaZ58AlRAAAAAAAAAABANgxEAQAAAAAAAAAA2TAQBQAAAAAAAAAAZMNAFAAAAAAAAAAAkA0DUQAAAAAAAAAAQDYMRAEAAAAAAAAAANkwEAUAAAAAAAAAAGSjbVNvoNYuueSSsN11111hq1QqYVuyZEmD9tSc/PKXv6z6mo899ljV14TW4sgjj0z2TTbZJGzTpk0L229/+9uwLV68uP6NAYV069YtbAceeGDYZs+eHbYbb7wxbHPmzPluGwP+rSOOOCJsW221VaE1r7nmmrANHTo0ee3MmTPDlvr9kvL++++HbeTIkWGbOnVqoftRv0GDBoVt4MCBVb/f2LFjk/2FF14IW2qvTaGuri5sqa9d6rrBgweHrbn9+6G1a9++feFrU4+jb731VuF1AaC5OeSQQ8LWt2/fQms+8cQTyf7ggw8WWhdI/326uSmXy029BaiK3XffvfC1n376adimT59e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Vt+TonI5s1tttVXYRo0alby2c+fOVd5N7cyePTtsAwYMCNv48ePD9vbbbzdkS9lzZrnjjjvCduSRRzbeRv7bBx98ELbdd989ee2UKVOqvJvmx5nNR5s2bcK2+uqrh+3GG28M2z777JO8Z+r79cUXX4QtdfbefPPN5D1bO2e2NlLPjev7mXzyySfDVt8Zamw9e/YM2+WXXx62H/7wh2F77LHHwvbHP/4xuZ+bbrop2XPQnM5sLue1uenWrVvYJk2aVHjd1Pcr9XP19ddfh23bbbcNW+o5c2vRnM5rqdQ6zuwtt9yS7Mcee2yhde+5556wPfPMM2G76667Ct2vvmuPOOKIQmsuWbIkbLfeemvy2okTJ4Zt+PDhYfv000/r31gz4cw2P6usskrY3n///bCtvPLKYUu9f3v11Vd/p339O6nv18EHHxy23//+92H75ptvwta3b9/kfl5//fVkz4Ez2zqkXleeffbZhddduHBh2FLvRQ8cODBsM2bMKLyf1sCZbVlWW221sF155ZVhS81hrL/++g3aUyT1nnFqP16zplXzzPqEKAAAAAAAAAAAIBsGogAAAAAAAAAAgGwYiAIAAAAAAAAAALJhIAoAAAAAAAAAAMiGgSgAAAAAAAAAACAbBqIAAAAAAAAAAIBstG3qDeToq6++CtuTTz5ZqN12221hmz59+nfbWCMZN25c2D799NNG3Amtyfjx48N24IEHJq99+eWXq7yb2imXy2Fbaql4xnXKlCk12A20LKkzMmTIkLDtsccetdhOYbvvvnvYnHVysnjx4rCtuOKKYevRo0fhe1YqlbClHoOXXXbZwveE5maDDTYI2xprrBG2GTNmVH0vgwYNSvazzz47bEsvvXTYHn744bCdd955YZs0aVJyP9BSrL766mF76KGHGnEn/+WVV14J25577hm2r7/+uhbbgcK23XbbwtcuWrQobEceeWThdSO77rprsvft27fQuqn3qfv37x+2kSNHFrof1NJRRx0VtpVXXjls8+fPD9vdd99daC8dOnRI9iuvvDJsJ5xwQtgmT54cttRr608++SS5H2hJUu8Zd+/evSb3PO2008J200031eSe0JLMmjUrbCeddFLYxo4dW4PdpK200kphO+6448J2zjnn1GI7/Bs+IQoAAAAAAAAAAMiGgSgAAAAAAAAAACAbBqIAAAAAAAAAAIBsGIgCAAAAAAAAAACyYSAKAAAAAAAAAADIhoEoAAAAAAAAAAAgGwaiAAAAAAAAAACAbLRt6g3w/1hppZXC9tRTT9XknnPnzg3bgw8+GLYf/ehHYTvyyCPD9tZbbyX3c9VVVyU7FPHXv/412Q844ICwpc5BU+jUqVPYbr311rD1798/bKlzN2LEiOR+vvnmm2SHxrbpppuG7f777w9b9+7da7Gdmhg5cmTYtt1220bcCTSdk08+OWwdOnQI2xVXXJFcd5NNNglbv379wnbllVeGrUePHmFbuHBhcj9Q1Pjx48P29NNPJ6/dfffdw/b888+H7aGHHqp3X//OWWedFbZlllkmee2CBQvC9sknn4TtggsuCNukSZOS94SW4tBDDw3bueeeG7bNNtusFtspLbVU/H8yU6/Zv/7661psB1qF3XbbLWzDhw9PXtuxY8ewffzxx2HbddddwzZx4sTkPaG169y5c9jqe496u+22C9tLL70UtqOPPjpsqefTkJPU68O99967Jvds165dTdaFlqR9+/Zh22WXXcI2atSosC1ZsiRsqffK/v73v4etVEr/3WWDDTYI2y9/+cuwpV4jn3/++cn9LFq0KNn5n3xCFAAAAAAAAAAAkA0DUQAAAAAAAAAAQDYMRAEAAAAAAAAAANkwEAUAAAAAAAAAAGTDQBQAAAAAAAAAAJANA1EAAAAAAAAAAEA2ypVKpVLVBcvlai6XnQ4dOoTtoYceCtsuu+xS6H5z5sxJ9v333z9szz33XNiuuOKKsP3yl78M27x585L72W677cI2YcKE5LUtRZWPXIM5s6XSxRdfHLZzzz23EXfS/JxyyinJfuedd4Zt7ty51d5Ok3Bmm59+/fqF7fbbbw9b6jG4qEcffTTZL7nkkrD1798/bIcddljYUj+TJ5xwQnI/qa9PLpzZfPz4xz8O2/Dhw8P261//OmypM1kqlUpLLRX/f5Fnn302bHV1dWFLPW9u7c8zSiVntimcfPLJyT5o0KCwrbTSSlXeTdqMGTOS/fLLLw9b6sxOnDix8J5au+Z0ZlvDee3WrVuyp16vpc56mzZtCu3nmWeeCVt979kMGDAgbNddd13YTjvttPo3xr/VnM5rqdQ6zuyhhx6a7Oecc07YNt9887ClnsOmzmXq9WpDHtOvuuqqsJ1xxhmF123tnNnmZ+WVVw7b+++/H7ZVVlklbH/4wx/Ctvvuu4dt1VVXDVupVCrdfffdYUs9X/j666+T6xJzZluWFVdcMWx/+9vfwta1a9ewDR48OGyp969LpVLpq6++CluPHj2S11KMM9v8pP4+8tvf/jZsixcvDttvfvObsN1www1h++STT8JWn1GjRoVtzz33LLTmVlttley5zEykVPPM+oQoAAAAAAAAAAAgGwaiAAAAAAAAAACAbBiIAgAAAAAAAAAAsmEgCgAAAAAAAAAAyIaBKAAAAAAAAAAAIBsGogAAAAAAAAAAgGyUK5VKpaoLlsvVXC47/fv3D9uVV15ZaM2///3vYTv++OOT17700kuF7nnwwQeH7d577y20ZqlUKu2xxx5he+aZZwqv25xU+cg1WGs4s+3bt0/2xx9/PGx1dXWF7vnuu++G7ZBDDglb165dk+ueddZZYevZs2f9G6uyBx54IGzHHnts2ObNm1eL7dSEM9v4jjnmmGS/5JJLwrbmmmsWuufs2bPDdv7554ft5ptvTq67ZMmSsC2zzDJhW2655cL26aefhu30009P7mfYsGHJngNnNh+33HJL2DbccMOwFX3srs+pp54atquvvjpsU6dODdv666/fkC1lwZltfrp06RK2Rx99NGxbbrllofulHoNXW221QmtSO83pzLaG89qvX79kHzFiRKF1v/rqq7DdfffdYTvvvPPCttdeeyXved9994XtuuuuC9tpp52WXJdYczqvpVLrOLP16dOnT9ieeOKJsLVt2zZsX3zxRdhWWWWVsNX38/HII4+E7ec//3nYZsyYkVyXmDPbsvziF78I2zXXXFP1+40ZMybZd9lll6rfkzRntmXZddddw/bHP/4xbNOnTw/buuuuG7bU43qpVCrttttuYdthhx3C9tprryXXJebMNr5tttkm2e+///6wrbfeemF74403wpY6P7Wy8cYbhy31Wrd3795hu+2225L3TD0PWbBgQfLalqKaZ9YnRAEAAAAAAAAAANkwEAUAAAAAAAAAAGTDQBQAAAAAAAAAAJANA1EAAAAAAAAAAEA2DEQBAAAAAAAAAADZMBAFAAAAAAAAAABko21TbyBH22+/fdiuuOKKQmvOnTs3bHvttVfYPvzww0L3q88BBxxQ6LolS5Yk+8KFCwutCymdOnVK9rq6uqrfc8GCBWF75513CrVSqVR64YUXwtazZ8+w3XXXXWFbeeWVk/dM+clPfhK222+/PWxPP/104XuSh/XWWy9sF110UfLaNddcs9A9p06dGrZ+/fqF7a233ip0v1KpVFpuueXCdtttt4XtoIMOKnxPaEl23XXXsB1zzDGFWq1cf/31YVt33XXDdvrpp4etT58+yXs+++yz9e4Lqu3jjz8OW+r17PDhwwvd7+GHHw5b6vG5vmuhpejatWvYzj///MLrzp49O2xHH3102EaPHl3ofl26dCl0HbQm66yzTtjati32Nn3qPZ1KpRK2+t4zPvPMM8M2Y8aM+jcGmbvhhhvClnq9utVWWxW6X8eOHZN9mWWWCVvqfWpoLQYMGFDouoceeihsqb93vvHGG8l1d9ttt7Ctv/76YXvttdeS60JzcumllyZ76m9EKX379i10Xa1MmjQpbL/+9a/D1rt377Ade+yxyXum3iuYOXNm8trWyCdEAQAAAAAAAAAA2TAQBQAAAAAAAAAAZMNAFAAAAAAAAAAAkA0DUQAAAAAAAAAAQDYMRAEAAAAAAAAAANkwEAUAAAAAAAAAAGSjbVNvIEcrrrhi2Nq2LfYlHzJkSNg+/PDDQmvW57LLLgvbgQceGLZKpRK2V199NXnPF154of6NQQuwyiqrhG2dddYJ27Rp05Lrzp07N2xPPvlk2O65556w/eIXv0jes6h99tknbE8//XRN7knLceyxx4atc+fONbnn97///bB98803YVt22WXDtummmybvedZZZ4XtoIMOSl4bWbJkSdg+//zzQmtCU+nbt2/YyuVy2BYuXFiL7SQtXrw4bG+++WbYUv+OpZdeukF7gsb22WefhW3evHlha9++fdhSzwl69OiR3M+6664btuHDh4dtxowZyXWhMd1///1h23LLLQuvO2DAgLCNHj268LqRVVddteprQkuz3HLLJfsaa6wRtkWLFoWt6HPG+fPnh+36669PXlur95shF4cffnjYttpqq7ClXlem3pv6wQ9+kNzPr3/967CdfvrpyWuhNdhwww0LXTdixIhC11111VXJft555xVaF1qL1Huts2bNasSdNEzqfTQaj0+IAgAAAAAAAAAAsmEgCgAAAAAAAAAAyIaBKAAAAAAAAAAAIBsGogAAAAAAAAAAgGwYiAIAAAAAAAAAALJhIAoAAAAAAAAAAMiGgSgAAAAAAAAAACAbbZt6A61NuVwO21dffRW2m266qRbbKQ0ZMiRs/fv3D1vq35Hy0EMPFboOGmLmzJnJfuaZZ4btyiuvLHTPrl27hq179+5hmzZtWnLdfv36he3cc88N2xZbbJFctxbGjRvX6PekeencuXPYTjjhhEbcyX95+OGHw7Z48eKwrbDCCmHbcccdG7SnIi6++OKwPfDAA424E2i41VdfPWwLFiwI24QJE2qxnaTU74LjjjsubEuWLAnbwoULG7QnaGxjxowJ2z//+c+wbbDBBoXut9FGGyV76rn63nvvHbZdd9210H6gFtZee+3C1/7rX/8K23vvvVd43cgmm2wStkMOOaTq94PmaI011gjb888/n7z2e9/7XrW3U/r000/Dlnq9OmXKlKrvBXLTtm3857Nf/epXhdY8+eSTw/buu++GbdSoUYXXfeGFF8KWeq8McpL6+2vKsssuW+i6efPmFboOclLfLEGqF51DaApt2rQJ2+677x621L9x/vz5yXtWKpX6N8b/4ROiAAAAAAAAAACAbBiIAgAAAAAAAAAAsmEgCgAAAAAAAAAAyIaBKAAAAAAAAAAAIBsGogAAAAAAAAAAgGwYiAIAAAAAAAAAALLRtqk30NpUKpWwtWnTJmxbbrll2AYMGBC2Aw44ILmftddeO2ypvaacfvrpYbvhhhsKrQkNsXjx4mS/8847w3b88ceHbdNNNy20n5NOOilsd999d/LaDh06hK1t28b/lX7qqaeGLfV1pXVYsmRJ2L799ttG3Ml/2WWXXRr9nkUNHjw4bBdffHEj7gRq64477gjbXnvtFbbPPvusBrtJu+uuu8LWu3fvsP35z38O23PPPdegPUFzsu+++4btpptuCttOO+1Ui+2Udtxxx7D16dMnbM8++2wttgM18c4774Tt66+/DluPHj3Cdtppp4Vtiy22CNu6664btlKpVPr888/DVt/rYKiFddZZJ2zHHXdc2H72s5+FbfXVV2/QniJ///vfw5Z6H3bKlCnV3wy0IrvuumvYUu8LP/7442G7/fbbw7Zo0aKwXXbZZWErlUqlX//612Grq6sL28MPP5xcF3IxZMiQsN1zzz1hS/39NfXacY899vhuG4OMzZw5M9lTcwjbbLNNtbdTM0cddVTYUo/fqX//sccem7znrFmz6t8Y/4dPiAIAAAAAAAAAALJhIAoAAAAAAAAAAMiGgSgAAAAAAAAAACAbBqIAAAAAAAAAAIBsGIgCAAAAAAAAAACyYSAKAAAAAAAAAADIRtum3kCOpkyZErbp06eHbe211w7b6NGjw1Yul8NWqVTCVp/Zs2eH7fjjjw/b448/HrZvv/228H6gVr744ouwXXvttWG7/vrrC91vr732KnRdUzj11FOTfdiwYWFbsmRJtbdDC7PMMsuErWPHjo24k6YzatSosF122WVhGzduXNga8tgOLcnyyy8ftv79+4ftoosuCttqq62WvOe9994btu233z5sEydODNuBBx6YvCfkInUORo4cGbaddtqpFttJPg85++yzw/bss8/WYjtQEzvssEPYJkyY0Ig7qd/QoUPD9uabbzbiTmhNunfvHrYnn3wybKn3aBsi9b7w7bffHrZbb701bFOnTm3QnoDYRhttVOi6FVZYIWxLLVXsMwree++9QteVSqXSiSeeGLYBAwaEbfHixYXvCc3NI488ErbJkyeHrXfv3mHbcccdw9apU6fvsi3I2tVXX53s++yzT9hSj6XnnXde2N5444169/XvbLbZZsm+xx57hG3jjTcudM+HHnoobE888UShNfn3fEIUAAAAAAAAAACQDQNRAAAAAAAAAABANgxEAQAAAAAAAAAA2TAQBQAAAAAAAAAAZMNAFAAAAAAAAAAAkA0DUQAAAAAAAAAAQDbKlUqlUtUFy+VqLpedrl27hu23v/1t2A488MCwpb7mb775ZnI/Dz74YNhuueWWsH3++efJdYlV+cg1mDOblvr6dO7cOWzPPPNM2DbZZJMG7anabrrpprBdcMEFyWtbw+8CZ7a4Nm3ahC11DkaPHp1cN/VYWtTzzz8fttRjaepxtFQqlcaPHx+2b7/9tt598b/nzLYsa6+9dtieeuqpsG2++eZhS33NG/LzMW7cuLCdfvrpYXvppZcK37M1cGZbhx49eoTt0ksvDduOO+6YXLfoz0/q8XnbbbcttGZr0ZzObC7n9d133w3bhhtumLx2qaUa9/85zps3L2z1PYc/5JBDqr0d6tGczmup1DRn9pFHHglb3759wzZ79uywpV47ps5zqVQq3XbbbWGbOnVq8lry58w2P506dQrbiy++GLbu3buH7bzzzgvb5ZdfHrb6nhNMmjQp2SNLL7102BYvXlxozdbCmc3Hyy+/HLbtt98+bNOnTw/be++9l7xnnz59wnbYYYeF7b777kuuS8yZ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VDb0AEV02GGHhW3//fcP24MPPhi2k08+OWxr1679boN9i1atWoVtm222ybXmEUccEbY5c+bkWhMao/XXXz9st9xyS9gGDRoUtjZt2iTvWVFREbaamprktdBU1Pb6M2XKlLDtvvvuYUvtkffffz9s++yzT9jefvvtsDWEFi3SZ92rqqrClnr9njFjRtjuuuuuWuei2Nq3b5/ss2fPDtsOO+wQtsmTJ4ftd7/7XdiWL1+enKe+/fSnPw3bsmXLktd++eWXpR4HanXwwQeH7de//nWuNe++++6wHXvssWGrrq5OrtulS5ewLVy4MGxt27YNW2Vl/Jhk1113Tc6Ter2ESOozYOpzZZZl2eDBg8OWeu/7wQcfhG3kyJFhmzVrVnKevHr06BG2+fPnhy313596jpZlWTZt2rTaB4Pvadttt032Y445JmyjR48u9TjJz3+pvZ5lWfbHP/4xbA3x/On6668P2wsvvFCPk8A3WrZsGbYrr7wybCeeeGLYUr87OfTQQ5Pz3HPPPcmeR+q971577ZW8NvU6PGLEiLA99NBDYfuf//mf5D0pvs6dOyd76vnTjjvumOueX331Vdguu+yysD3xxBPJdf/93/89bB07dgxb6ln0r371q7DV9rr/6quvhu3mm29OXgt5pX7Hev7554dtzJgxYVu1alXYxo4dG7baPh8uXrw42SMTJkwI25NPPhm2IUOGJNf1efb78Q1RAAAAAAAAAABAYTgQBQAAAAAAAAAAFIYDUQAAAAAAAAAAQGE4EAUAAAAAAAAAABSGA1EAAAAAAAAAAEBhOBAFAAAAAAAAAAAURmVDD1BERxxxRK7rbrrpprCtXbs25zRprVq1ClufPn1yrTlkyJCwjR8/PnntsmXLct0TGsL06dPDdtBBB5XlnosXLw7bQw89FLYuXbqEbe+9967TTJGrr766LOtSDBtuuGHYJkyYkLy2f//+YaupqQnbBx98ELbRo0eH7e23307O05jcfffdyX722WeHbaONNgpbr169wnbXXXfVOhdNX/v27cN23333Ja/t3bt32A499NCw/eUvf6l1rsZi+PDhYTvuuOPC1q5du+S61157bdh+/vOf1z4Y5JB6rVhvvfXCdu+994btmGOOCduqVau+22Df4uOPPw5b3s/Qa9asCduMGTNyrQkpqT138MEHJ69dsmRJ2GbOnBm2MWPGhG3p0qXJe5bDwoULw7ZgwYKwbbvttmGbP39+nWaCPO6///5k//GPf1zye65evTpsw4YNC1u5XtNSz5/69euXe92qqqqw1eW9BKSknoWkngtvsskmYbvooovCNmnSpLBVV1eHrVzmzp2bq2VZ+jnBVVddFbZFixbVPhjN1tZbb53sO+64Y651//GPf4Tt2GOPDVtt+yDl0UcfDdu+++4btpNOOilsHTt2zD3PWWedFbabb74597o0b127dk32W2+9NWyp940vvvhi2FJnFF599dXkPOWQ+qz74Ycfhq22n3frr79+2FKfD5or3xAFAAAAAAAAAAAUhgNRAAAAAAAAAABAYTgQBQAAAAAAAAAAFIYDUQAAAAAAAAAAQGE4EAUAAAAAAAAAABSGA1EAAAAAAAAAAEBhVDb0AE1Rq1atkn2HHXbIte7MmTNzXVcXe++9d67rnnrqqbD927/9W9gqK/2Vo2np169f2H7+85/nWvOf//xnrpZlWfbmm2+GbYsttgjbnnvuWetceXz66adhq66uLss9KYazzz47bIMHDy7LPU855ZSw/eUvfynLPevbZpttluxdunQJW01NTanHoUBSr3kDBgxIXnvuueeGrSntvX322SdsU6dOzbVmRUVFsl9yySW51oWUQw45JNn79u2ba93rr78+bKtWrcq1Zm06deoUtryfPauqqsI2d+7cXGvC7rvvHrbzzz8/bOvWrUuue8UVV4RtwoQJtQ/WBAwfPjxsqZ8Btf3cad26ddhWrlxZ+2AUWsuWLcN25plnhq22z2Mpa9euDVvqWdG4cePCNmPGjLB17NgxOc9uu+0WtrFjx4Yt9dx8u+22S94z5bjjjgtb6jPFo48+mvueFF+vXr2S/ZFHHgnbJptsErZhw4aFbdq0abUP1kiccMIJYRs4cGDy2mOPPTZs++23X9jK9bmBYvjrX/+a7Pfee2/YDjrooLDNmTMnbOX6DNiiRfx9JaeddlrYBg0aVI5xstdee60s61J8Xbt2DduDDz6YvPZHP/pR2K6++uqwjRgxImyrV69O3jOv9u3bh+3xxx/PteY222wTtj59+iSvTf0uJ/V5pbnyDVEAAAAAAAAAAEBhOBAFAAAAAAAAAAAUhgNRAAAAAAAAAABAYTgQBQAAAAAAAAAAFIYDUQAAAAAAAAAAQGE4EAUAAAAAAAAAABRGZUMP0BRtsMEGyd6xY8ewffjhh2GrqanJPVNem2yySa7rpkyZErZNN9007zjQ6IwaNSpsLVu2DNunn34atvvvvz9sQ4cOTc7Tp0+fsDXEz5CTTjopbJ999lk9TkJTM2zYsLKsO378+LC99NJLZblnfevQoUPYLrroovobhMLZcMMNw3bZZZeFbcGCBcl1r7rqqtwzNRV5X4Mff/zxZH/22WdzrQspu+++e7JXVFSEbfXq1WF74IEHcs+UZ5Ysy7KxY8eGrU2bNmFbt25d2FLvbyGvc845J2ypv48zZ85MrjthwoTcMzUVqfcZqZ87O+64Y3LdiRMnhm3MmDG1D0ahjRs3LmxnnXVWWe554403hu2UU07JteZWW20Vtttuuy157U477ZTrnuWSeob9H//xH2F79NFHyzEOBTFgwIBkT/29mzFjRtimTZuWe6b6tu2224btkksuCVvnzp2T67744othu/TSS2sfDL5FdXV1sj/33HNhO+igg8K2zTbb5J4pr4MPPjhsgwYNKvn9Fi1alOy//e1vS35PiqNdu3Zhe/DBB8PWs2fP5LqpswannXZa7YPVoxUrVoQt9TupCy+8MGyp51a1Sf2OiP+fb4gCAAAAAAAAAAAKw4EoAAAAAAAAAACgMByIAgAAAAAAAAAACsOBKAAAAAAAAAAAoDAciAIAAAAAAAAAAArDgSgAAAAAAAAAAKAwKht6gKbo888/T/bXX389bHvttVfYKioqcs+UV5cuXcK2Zs2asN11111h23zzzcP29ddff7fBoB717t07bAMHDsy1ZqdOncI2dOjQXGuWS01NTdimTp2avPaBBx4o9ThQJxdccEFDj/CdHXLIIWH74Q9/GLatt946bD/72c/qMlLotddeK8u6NC4tW7YMW+r93ezZs5PrLl++PPdM9a1bt25hO++883KtmXpPfdZZZyWvXbVqVa57QrncfffdYVu7dm3J73f66acn+69//etc66Y+l95zzz251oSUjTfeOGypZ0FLly4txzgNIvUam/r/8/zzz4ct9Vm2RYv0vwFN3RNOOeWUer/nDjvsELaHHnoo15qbbrpprvs1Rqn31Ndcc009TkJT065du7CNGDEieW3qdebCCy/MO1K969q1a9imTJkSttTz7XXr1iXvuXjx4toHg0Zip512Ctutt94atqqqqrD17ds3ec8+ffrUOlcpXXvttcn+xhtv1NMkNEVt27YNW8+ePcP20UcfJde95ZZbcs9Uap07d0727bbbLmwnnnhi2PK+53711VeTfdy4cbnWba58QxQAAAAAAAAAAFAYDkQBAAAAAAAAAACF4UAUAAAAAAAAAABQGA5EAQAAAAAAAAAAheFAFAAAAAAAAAAAUBgORAEAAAAAAAAAAIVR2dADFNHSpUvDVlFREbbOnTuHbdGiRblm6dq1a7KfeeaZYaupqQnbunXrwvaHP/yh9sGgEXn55ZfD9sgjj4TtgAMOKMM09W/KlClhGzFiRP0NQrNyzTXXhG3MmDG5133yySfD9uqrr+Zac7PNNgtb9+7dk9emXvd79eqVa566aNEiPguf+jOZNWtWOcahkfnqq6/C9uGHH4Ztq622Sq7bvn37sC1fvrz2wb6n1P2OP/745LWTJk0KW+vWrXPNM2rUqLC98MILudaEhvLSSy+VfM3Uz5DRo0eX/H5ZlmXPPPNMWdaFyIIFC8K24447hq1nz57JdXv06BG2hQsX1j5YCaVmybL0+/ROnTqFLfVsKu9zqyzz/pbGZ5dddmnoERq1yy+/PGxz5sypx0loan7xi1+Ebeutt8697sqVK3NfWw6DBw8OW+oz6a677prrfu+9916y33zzzbnWhbqYOXNm2MaNGxe2DTbYIGypnyGNTeoZU+p1FGrz9ddfh+2tt94KW23PjJ999tmwPfHEE2GrqqoKW+r5be/evcPWtm3bsGVZlm200UbJXmrnnXdesuc9N9Jc+YYoAAAAAAAAAACgMByIAgAAAAAAAAAACsOBKAAAAAAAAAAAoDAciAIAAAAAAAAAAArDgSgAAAAAAAAAAKAwHIgCAAAAAAAAAAAKw4EoAAAAAAAAAACgMCobeoAievjhh8N25JFHhm3fffcN2y233JJrlo4dOyb7euutF7Y1a9bkuicUydChQ8O23Xbb5Vpz0003DdtVV12VvLZDhw5hq6mpCdsDDzwQtjPOOCN5TyiHO+64I2wDBgxIXrvHHnuErX///mHr169f7YOVWEVFRdhSe7Zc1q1bF7bUnwnNw6pVq8I2atSosNX2d+eRRx4J25/+9KewtW/fPmw//OEPwzZo0KCwvfvuu2HLsiwbP3582C6++OKw/fWvfw3bjTfemLwnNDap167Ro0eH7eWXXw5b6jV45MiRYWvTpk3Y6mLJkiVlWRciEydODNvAgQPDVtv74qeeeipsM2fOrH2wb9GzZ89c89T23nblypVhS72OduvWLWydOnUKW+rZ3HfpUHRXXHFFsg8fPjxs66+/fqnHyT755JNkv+2220p+T5qH1OtaXcyZMydsN910U9gWLFiQ636pPZllWbbrrruGbdasWWGbO3durjVnzJiRnAcawt/+9rewnXDCCWH74x//GLbU71BTqqqqcl2XZenfAaU899xzYfv8889zTgNZ9umnn4Yt9Vpx1llnJdcdPHhw2Hbeeeewvfnmm2Fr1apV2FK/J503b17Ysiz9e5UvvvgibNOnTw/bk08+GbaHHnooOQ/fj2+IAgAAAAAAAAAACsOBKAAAAAAAAAAAoDAciAIAAAAAAAAAAArDgSgAAAAAAAAAAKAwHIgCAAAAAAAAAAAKw4EoAAAAAAAAAACgMCobeoAiWrFiRa7rDjvssLDdeeedYTviiCPC9rvf/S7XLMA3Pvnkk1wtZdy4cWFr37598tqampqw3XfffWE766yzwrZ27drkPaEcFi5cGLaxY8cmr509e3bY2rVrl3um5m777bcP25NPPlmPk9AYzZgxI2yVlemPFCNHjgzbeeedF7bq6uqwvf3222H75S9/GbY5c+aELcuy7Pbbbw9b6jV46tSpYfvyyy+T94T69txzzyX76tWrw9axY8ewPfjgg7lnilRVVSV7hw4dcq07f/78XNdBXqn3vvvvv3/YJk+enFx3wIABYRs6dGjYKioqwpZ6vVuyZEnYZs6cGbYsy7LLL788bKn/P6nP3alZZ82alZwHUh577LGw7bjjjmHbcsstc99z7ty5Yfv888/DduGFF4btlVdeCVuPHj2S8wwfPjzZ8/j73/8etgMPPDB57VtvvVXqcWgmzj777LDV9l4y9dly0003DVvqOWxeV111VbJPnDgxbIsWLQrbM888k3smaEruuOOOsD3wwAMlv19tv3N5+umnw9a7d++wpZ6VXX/99bXOBaW2bNmysNX2eph6LtyiRfydPmvWrAlb6rNuuX4X+l//9V+5rkv9HPB729LyDVEAAAAAAAAAAEBhOBAFAAAAAAAAAAAUhgNRAAAAAAAAAABAYTgQBQAAAAAAAAAAFIYDUQAAAAAAAAAAQGE4EAUAAAAAAAAAABRGRU1NTU1JF6yoKOVyTdJ6660XtiuvvDJs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\n","text/plain":"<IPython.core.display.Image object>"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1mModel: \"mnist_res_cnn\"\u001b[0m\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"mnist_res_cnn\"</span>\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┓\n┃\u001b[1m \u001b[0m\u001b[1mLayer (type)       \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape     \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m   Param #\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mConnected to     \u001b[0m\u001b[1m \u001b[0m┃\n┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━┩\n│ input_layer         │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m28\u001b[0m, \u001b[38;5;34m28\u001b[0m, \u001b[38;5;34m1\u001b[0m) │          \u001b[38;5;34m0\u001b[0m │ -                 │\n│ (\u001b[38;5;33mInputLayer\u001b[0m)        │                   │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ cast (\u001b[38;5;33mCast\u001b[0m)         │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m28\u001b[0m, \u001b[38;5;34m28\u001b[0m, \u001b[38;5;34m1\u001b[0m) │          \u001b[38;5;34m0\u001b[0m │ input_layer[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m] │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ conv2d (\u001b[38;5;33mConv2D\u001b[0m)     │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m28\u001b[0m, \u001b[38;5;34m28\u001b[0m,    │        \u001b[38;5;34m576\u001b[0m │ cast[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]        │\n│                     │ \u001b[38;5;34m64\u001b[0m)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ batch_normalization │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m28\u001b[0m, \u001b[38;5;34m28\u001b[0m,    │        \u001b[38;5;34m256\u001b[0m │ conv2d[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]      │\n│ (\u001b[38;5;33mBatchNormalizatio…\u001b[0m │ \u001b[38;5;34m64\u001b[0m)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ activation          │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m28\u001b[0m, \u001b[38;5;34m28\u001b[0m,    │          \u001b[38;5;34m0\u001b[0m │ batch_normalizat… │\n│ (\u001b[38;5;33mActivation\u001b[0m)        │ \u001b[38;5;34m64\u001b[0m)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ conv2d_1 (\u001b[38;5;33mConv2D\u001b[0m)   │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m28\u001b[0m, \u001b[38;5;34m28\u001b[0m,    │     \u001b[38;5;34m36,864\u001b[0m │ activation[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]  │\n│                     │ \u001b[38;5;34m64\u001b[0m)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ batch_normalizatio… │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m28\u001b[0m, \u001b[38;5;34m28\u001b[0m,    │        \u001b[38;5;34m256\u001b[0m │ conv2d_1[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n│ (\u001b[38;5;33mBatchNormalizatio…\u001b[0m │ \u001b[38;5;34m64\u001b[0m)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ activation_1        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m28\u001b[0m, \u001b[38;5;34m28\u001b[0m,    │          \u001b[38;5;34m0\u001b[0m │ batch_normalizat… │\n│ (\u001b[38;5;33mActivation\u001b[0m)        │ \u001b[38;5;34m64\u001b[0m)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ conv2d_2 (\u001b[38;5;33mConv2D\u001b[0m)   │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m28\u001b[0m, \u001b[38;5;34m28\u001b[0m,    │     \u001b[38;5;34m36,864\u001b[0m │ activation_1[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m…\u001b[0m │\n│                     │ \u001b[38;5;34m64\u001b[0m)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ batch_normalizatio… │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m28\u001b[0m, \u001b[38;5;34m28\u001b[0m,    │        \u001b[38;5;34m256\u001b[0m │ conv2d_2[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n│ (\u001b[38;5;33mBatchNormalizatio…\u001b[0m │ \u001b[38;5;34m64\u001b[0m)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ activation_2        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m28\u001b[0m, \u001b[38;5;34m28\u001b[0m,    │          \u001b[38;5;34m0\u001b[0m │ batch_normalizat… │\n│ (\u001b[38;5;33mActivation\u001b[0m)        │ \u001b[38;5;34m64\u001b[0m)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ conv2d_3 (\u001b[38;5;33mConv2D\u001b[0m)   │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m28\u001b[0m, \u001b[38;5;34m28\u001b[0m,    │     \u001b[38;5;34m36,864\u001b[0m │ activation_2[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m…\u001b[0m │\n│                     │ \u001b[38;5;34m64\u001b[0m)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ batch_normalizatio… │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m28\u001b[0m, \u001b[38;5;34m28\u001b[0m,    │        \u001b[38;5;34m256\u001b[0m │ conv2d_3[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n│ (\u001b[38;5;33mBatchNormalizatio…\u001b[0m │ \u001b[38;5;34m64\u001b[0m)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ activation_3        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m28\u001b[0m, \u001b[38;5;34m28\u001b[0m,    │          \u001b[38;5;34m0\u001b[0m │ batch_normalizat… │\n│ (\u001b[38;5;33mActivation\u001b[0m)        │ \u001b[38;5;34m64\u001b[0m)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ add (\u001b[38;5;33mAdd\u001b[0m)           │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m28\u001b[0m, \u001b[38;5;34m28\u001b[0m,    │          \u001b[38;5;34m0\u001b[0m │ activation_3[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m…\u001b[0m │\n│                     │ \u001b[38;5;34m64\u001b[0m)               │            │ activation_1[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m…\u001b[0m │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ activation_4        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m28\u001b[0m, \u001b[38;5;34m28\u001b[0m,    │          \u001b[38;5;34m0\u001b[0m │ add[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]         │\n│ (\u001b[38;5;33mActivation\u001b[0m)        │ \u001b[38;5;34m64\u001b[0m)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ max_pooling2d       │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m14\u001b[0m,    │          \u001b[38;5;34m0\u001b[0m │ activation_4[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m…\u001b[0m │\n│ (\u001b[38;5;33mMaxPooling2D\u001b[0m)      │ \u001b[38;5;34m64\u001b[0m)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ spatial_dropout2d   │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m14\u001b[0m,    │          \u001b[38;5;34m0\u001b[0m │ max_pooling2d[\u001b[38;5;34m0\u001b[0m]… │\n│ (\u001b[38;5;33mSpatialDropout2D\u001b[0m)  │ \u001b[38;5;34m64\u001b[0m)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ conv2d_4 (\u001b[38;5;33mConv2D\u001b[0m)   │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m14\u001b[0m,    │     \u001b[38;5;34m73,728\u001b[0m │ spatial_dropout2… │\n│                     │ \u001b[38;5;34m128\u001b[0m)              │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ batch_normalizatio… │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m14\u001b[0m,    │        \u001b[38;5;34m512\u001b[0m │ conv2d_4[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n│ (\u001b[38;5;33mBatchNormalizatio…\u001b[0m │ \u001b[38;5;34m128\u001b[0m)              │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ activation_5        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m14\u001b[0m,    │          \u001b[38;5;34m0\u001b[0m │ batch_normalizat… │\n│ (\u001b[38;5;33mActivation\u001b[0m)        │ \u001b[38;5;34m128\u001b[0m)              │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ conv2d_5 (\u001b[38;5;33mConv2D\u001b[0m)   │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m14\u001b[0m,    │    \u001b[38;5;34m147,456\u001b[0m │ activation_5[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m…\u001b[0m │\n│                     │ \u001b[38;5;34m128\u001b[0m)              │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ batch_normalizatio… │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m14\u001b[0m,    │        \u001b[38;5;34m512\u001b[0m │ conv2d_5[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n│ (\u001b[38;5;33mBatchNormalizatio…\u001b[0m │ \u001b[38;5;34m128\u001b[0m)              │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ conv2d_6 (\u001b[38;5;33mConv2D\u001b[0m)   │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m14\u001b[0m,    │      \u001b[38;5;34m8,192\u001b[0m │ spatial_dropout2… │\n│                     │ \u001b[38;5;34m128\u001b[0m)              │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ activation_6        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m14\u001b[0m,    │          \u001b[38;5;34m0\u001b[0m │ batch_normalizat… │\n│ (\u001b[38;5;33mActivation\u001b[0m)        │ \u001b[38;5;34m128\u001b[0m)              │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ batch_normalizatio… │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m14\u001b[0m,    │        \u001b[38;5;34m512\u001b[0m │ conv2d_6[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n│ (\u001b[38;5;33mBatchNormalizatio…\u001b[0m │ \u001b[38;5;34m128\u001b[0m)              │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ add_1 (\u001b[38;5;33mAdd\u001b[0m)         │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m14\u001b[0m,    │          \u001b[38;5;34m0\u001b[0m │ activation_6[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m…\u001b[0m │\n│                     │ \u001b[38;5;34m128\u001b[0m)              │            │ batch_normalizat… │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ activation_7        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m14\u001b[0m,    │          \u001b[38;5;34m0\u001b[0m │ add_1[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]       │\n│ (\u001b[38;5;33mActivation\u001b[0m)        │ \u001b[38;5;34m128\u001b[0m)              │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ max_pooling2d_1     │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m128\u001b[0m) │          \u001b[38;5;34m0\u001b[0m │ activation_7[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m…\u001b[0m │\n│ (\u001b[38;5;33mMaxPooling2D\u001b[0m)      │                   │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ spatial_dropout2d_1 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m128\u001b[0m) │          \u001b[38;5;34m0\u001b[0m │ max_pooling2d_1[\u001b[38;5;34m…\u001b[0m │\n│ (\u001b[38;5;33mSpatialDropout2D\u001b[0m)  │                   │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ conv2d_7 (\u001b[38;5;33mConv2D\u001b[0m)   │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m192\u001b[0m) │    \u001b[38;5;34m221,184\u001b[0m │ spatial_dropout2… │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ batch_normalizatio… │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m192\u001b[0m) │        \u001b[38;5;34m768\u001b[0m │ conv2d_7[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n│ (\u001b[38;5;33mBatchNormalizatio…\u001b[0m │                   │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ activation_8        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m192\u001b[0m) │          \u001b[38;5;34m0\u001b[0m │ batch_normalizat… │\n│ (\u001b[38;5;33mActivation\u001b[0m)        │                   │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ conv2d_8 (\u001b[38;5;33mConv2D\u001b[0m)   │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m192\u001b[0m) │    \u001b[38;5;34m331,776\u001b[0m │ activation_8[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m…\u001b[0m │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ batch_normalizatio… │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m192\u001b[0m) │        \u001b[38;5;34m768\u001b[0m │ conv2d_8[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n│ (\u001b[38;5;33mBatchNormalizatio…\u001b[0m │                   │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ conv2d_9 (\u001b[38;5;33mConv2D\u001b[0m)   │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m192\u001b[0m) │     \u001b[38;5;34m24,576\u001b[0m │ spatial_dropout2… │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ activation_9        │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m192\u001b[0m) │          \u001b[38;5;34m0\u001b[0m │ batch_normalizat… │\n│ (\u001b[38;5;33mActivation\u001b[0m)        │                   │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ batch_normalizatio… │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m192\u001b[0m) │        \u001b[38;5;34m768\u001b[0m │ conv2d_9[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]    │\n│ (\u001b[38;5;33mBatchNormalizatio…\u001b[0m │                   │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ add_2 (\u001b[38;5;33mAdd\u001b[0m)         │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m192\u001b[0m) │          \u001b[38;5;34m0\u001b[0m │ activation_9[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m…\u001b[0m │\n│                     │                   │            │ batch_normalizat… │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ activation_10       │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m192\u001b[0m) │          \u001b[38;5;34m0\u001b[0m │ add_2[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]       │\n│ (\u001b[38;5;33mActivation\u001b[0m)        │                   │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ global_average_poo… │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m192\u001b[0m)       │          \u001b[38;5;34m0\u001b[0m │ activation_10[\u001b[38;5;34m0\u001b[0m]… │\n│ (\u001b[38;5;33mGlobalAveragePool…\u001b[0m │                   │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ dropout (\u001b[38;5;33mDropout\u001b[0m)   │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m192\u001b[0m)       │          \u001b[38;5;34m0\u001b[0m │ global_average_p… │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ dense (\u001b[38;5;33mDense\u001b[0m)       │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m256\u001b[0m)       │     \u001b[38;5;34m49,408\u001b[0m │ dropout[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]     │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ dropout_1 (\u001b[38;5;33mDropout\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m256\u001b[0m)       │          \u001b[38;5;34m0\u001b[0m │ dense[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]       │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ cast_1 (\u001b[38;5;33mCast\u001b[0m)       │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m256\u001b[0m)       │          \u001b[38;5;34m0\u001b[0m │ dropout_1[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ predictions (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m10\u001b[0m)        │      \u001b[38;5;34m2,570\u001b[0m │ cast_1[\u001b[38;5;34m0\u001b[0m][\u001b[38;5;34m0\u001b[0m]      │\n└─────────────────────┴───────────────────┴────────────┴───────────────────┘\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┓\n┃<span style=\"font-weight: bold\"> Layer (type)        </span>┃<span style=\"font-weight: bold\"> Output Shape      </span>┃<span style=\"font-weight: bold\">    Param # </span>┃<span style=\"font-weight: bold\"> Connected to      </span>┃\n┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━┩\n│ input_layer         │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1</span>) │          <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ -                 │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">InputLayer</span>)        │                   │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ cast (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)         │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1</span>) │          <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ input_layer[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>] │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ conv2d (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)     │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>,    │        <span style=\"color: #00af00; text-decoration-color: #00af00\">576</span> │ cast[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]        │\n│                     │ <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ batch_normalization │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>,    │        <span style=\"color: #00af00; text-decoration-color: #00af00\">256</span> │ conv2d[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]      │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalizatio…</span> │ <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ activation          │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>,    │          <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalizat… │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)        │ <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ conv2d_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)   │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>,    │     <span style=\"color: #00af00; text-decoration-color: #00af00\">36,864</span> │ activation[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]  │\n│                     │ <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ batch_normalizatio… │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>,    │        <span style=\"color: #00af00; text-decoration-color: #00af00\">256</span> │ conv2d_1[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalizatio…</span> │ <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ activation_1        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>,    │          <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalizat… │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)        │ <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ conv2d_2 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)   │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>,    │     <span style=\"color: #00af00; text-decoration-color: #00af00\">36,864</span> │ activation_1[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">…</span> │\n│                     │ <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ batch_normalizatio… │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>,    │        <span style=\"color: #00af00; text-decoration-color: #00af00\">256</span> │ conv2d_2[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalizatio…</span> │ <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ activation_2        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>,    │          <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalizat… │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)        │ <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ conv2d_3 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)   │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>,    │     <span style=\"color: #00af00; text-decoration-color: #00af00\">36,864</span> │ activation_2[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">…</span> │\n│                     │ <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ batch_normalizatio… │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>,    │        <span style=\"color: #00af00; text-decoration-color: #00af00\">256</span> │ conv2d_3[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalizatio…</span> │ <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ activation_3        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>,    │          <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalizat… │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)        │ <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ add (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Add</span>)           │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>,    │          <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ activation_3[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">…</span> │\n│                     │ <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)               │            │ activation_1[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">…</span> │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ activation_4        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">28</span>,    │          <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ add[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]         │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)        │ <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ max_pooling2d       │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>,    │          <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ activation_4[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">…</span> │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">MaxPooling2D</span>)      │ <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ spatial_dropout2d   │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>,    │          <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ max_pooling2d[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]… │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">SpatialDropout2D</span>)  │ <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)               │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ conv2d_4 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)   │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>,    │     <span style=\"color: #00af00; text-decoration-color: #00af00\">73,728</span> │ spatial_dropout2… │\n│                     │ <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>)              │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ batch_normalizatio… │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>,    │        <span style=\"color: #00af00; text-decoration-color: #00af00\">512</span> │ conv2d_4[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalizatio…</span> │ <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>)              │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ activation_5        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>,    │          <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalizat… │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)        │ <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>)              │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ conv2d_5 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)   │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>,    │    <span style=\"color: #00af00; text-decoration-color: #00af00\">147,456</span> │ activation_5[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">…</span> │\n│                     │ <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>)              │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ batch_normalizatio… │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>,    │        <span style=\"color: #00af00; text-decoration-color: #00af00\">512</span> │ conv2d_5[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalizatio…</span> │ <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>)              │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ conv2d_6 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)   │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>,    │      <span style=\"color: #00af00; text-decoration-color: #00af00\">8,192</span> │ spatial_dropout2… │\n│                     │ <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>)              │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ activation_6        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>,    │          <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalizat… │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)        │ <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>)              │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ batch_normalizatio… │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>,    │        <span style=\"color: #00af00; text-decoration-color: #00af00\">512</span> │ conv2d_6[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalizatio…</span> │ <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>)              │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ add_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Add</span>)         │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>,    │          <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ activation_6[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">…</span> │\n│                     │ <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>)              │            │ batch_normalizat… │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ activation_7        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">14</span>,    │          <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ add_1[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]       │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)        │ <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>)              │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ max_pooling2d_1     │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>) │          <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ activation_7[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">…</span> │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">MaxPooling2D</span>)      │                   │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ spatial_dropout2d_1 │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>) │          <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ max_pooling2d_1[<span style=\"color: #00af00; text-decoration-color: #00af00\">…</span> │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">SpatialDropout2D</span>)  │                   │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ conv2d_7 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)   │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">192</span>) │    <span style=\"color: #00af00; text-decoration-color: #00af00\">221,184</span> │ spatial_dropout2… │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ batch_normalizatio… │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">192</span>) │        <span style=\"color: #00af00; text-decoration-color: #00af00\">768</span> │ conv2d_7[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalizatio…</span> │                   │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ activation_8        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">192</span>) │          <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalizat… │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)        │                   │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ conv2d_8 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)   │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">192</span>) │    <span style=\"color: #00af00; text-decoration-color: #00af00\">331,776</span> │ activation_8[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">…</span> │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ batch_normalizatio… │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">192</span>) │        <span style=\"color: #00af00; text-decoration-color: #00af00\">768</span> │ conv2d_8[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalizatio…</span> │                   │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ conv2d_9 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)   │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">192</span>) │     <span style=\"color: #00af00; text-decoration-color: #00af00\">24,576</span> │ spatial_dropout2… │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ activation_9        │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">192</span>) │          <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ batch_normalizat… │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)        │                   │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ batch_normalizatio… │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">192</span>) │        <span style=\"color: #00af00; text-decoration-color: #00af00\">768</span> │ conv2d_9[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]    │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalizatio…</span> │                   │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ add_2 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Add</span>)         │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">192</span>) │          <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ activation_9[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">…</span> │\n│                     │                   │            │ batch_normalizat… │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ activation_10       │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">192</span>) │          <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ add_2[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]       │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Activation</span>)        │                   │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ global_average_poo… │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">192</span>)       │          <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ activation_10[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]… │\n│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">GlobalAveragePool…</span> │                   │            │                   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ dropout (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dropout</span>)   │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">192</span>)       │          <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ global_average_p… │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ dense (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>)       │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">256</span>)       │     <span style=\"color: #00af00; text-decoration-color: #00af00\">49,408</span> │ dropout[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]     │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ dropout_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dropout</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">256</span>)       │          <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ dense[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]       │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ cast_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Cast</span>)       │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">256</span>)       │          <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │ dropout_1[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]   │\n├─────────────────────┼───────────────────┼────────────┼───────────────────┤\n│ predictions (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">10</span>)        │      <span style=\"color: #00af00; text-decoration-color: #00af00\">2,570</span> │ cast_1[<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>][<span style=\"color: #00af00; text-decoration-color: #00af00\">0</span>]      │\n└─────────────────────┴───────────────────┴────────────┴───────────────────┘\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1m Total params: \u001b[0m\u001b[38;5;34m974,922\u001b[0m (3.72 MB)\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">974,922</span> (3.72 MB)\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m972,490\u001b[0m (3.71 MB)\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">972,490</span> (3.71 MB)\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m2,432\u001b[0m (9.50 KB)\n","text/html":"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">2,432</span> (9.50 KB)\n</pre>\n"},"metadata":{}},{"name":"stdout","text":"None\n\n*************** SEED 42 ***************\n\n\n==== Model 1: RESCNN | Seed 42, Fold 1/5 ====\n\nINFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\nINFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\nEpoch 1/40\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 34 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\n","output_type":"stream"},{"name":"stderr","text":"WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\nI0000 00:00:1764349001.050271     127 service.cc:148] XLA service 0x7ab4f851fa00 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\nI0000 00:00:1764349001.051097     127 service.cc:156]   StreamExecutor device (0): Tesla T4, Compute Capability 7.5\nI0000 00:00:1764349001.051119     127 service.cc:156]   StreamExecutor device (1): Tesla T4, Compute Capability 7.5\nI0000 00:00:1764349001.094019     127 cuda_dnn.cc:529] Loaded cuDNN version 90300\nI0000 00:00:1764349001.094032     129 cuda_dnn.cc:529] Loaded cuDNN version 90300\nI0000 00:00:1764349002.054329     129 device_compiler.h:188] Compiled cluster using XLA!  This line is logged at most once for the lifetime of the process.\n","output_type":"stream"},{"name":"stdout","text":"INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\nINFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\n\nEpoch 1: val_acc improved from -inf to 0.37589, saving model to /kaggle/working/mnist_out/best_rescnn_seed42_fold1.weights.h5\n263/263 - 31s - 119ms/step - acc: nan - loss: nan - val_acc: 0.3759 - val_loss: 2.1064\nEpoch 2/40\nINFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\nINFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\n\nEpoch 2: val_acc improved from 0.37589 to 0.88823, saving model to /kaggle/working/mnist_out/best_rescnn_seed42_fold1.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.8882 - val_loss: 0.7457\nEpoch 3/40\nINFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\nINFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\n\nEpoch 3: val_acc improved from 0.88823 to 0.96527, saving model to /kaggle/working/mnist_out/best_rescnn_seed42_fold1.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9653 - val_loss: 0.4587\nEpoch 4/40\nINFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\nINFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\n\nEpoch 4: val_acc improved from 0.96527 to 0.98654, saving model to /kaggle/working/mnist_out/best_rescnn_seed42_fold1.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9865 - val_loss: 0.3297\nEpoch 5/40\n\nEpoch 5: val_acc did not improve from 0.98654\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.8898 - val_loss: 0.6904\nEpoch 6/40\n\nEpoch 6: val_acc did not improve from 0.98654\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9512 - val_loss: 0.5230\nEpoch 7/40\n\nEpoch 7: val_acc did not improve from 0.98654\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.8504 - val_loss: 0.7333\nEpoch 8/40\n\nEpoch 8: val_acc did not improve from 0.98654\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.7233 - val_loss: 1.1361\nEpoch 9/40\n\nEpoch 9: val_acc did not improve from 0.98654\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9362 - val_loss: 0.4024\nEpoch 10/40\n\nEpoch 10: val_acc did not improve from 0.98654\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9788 - val_loss: 0.2734\nEpoch 11/40\n\nEpoch 11: val_acc did not improve from 0.98654\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9860 - val_loss: 0.2411\nEpoch 12/40\n\nEpoch 12: val_acc did not improve from 0.98654\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9859 - val_loss: 0.2400\nEpoch 12: early stopping\nRestoring model weights from the end of the best epoch: 4.\n\n==== Model 2: EFF | Seed 42, Fold 1/5 ====\n\nEpoch 1/40\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 25 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\n\nEpoch 1: val_acc improved from -inf to 0.11111, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold1.weights.h5\n263/263 - 20s - 74ms/step - acc: nan - loss: nan - val_acc: 0.1111 - val_loss: 9.6095\nEpoch 2/40\n\nEpoch 2: val_acc improved from 0.11111 to 0.77710, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold1.weights.h5\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.7771 - val_loss: 0.8230\nEpoch 3/40\n\nEpoch 3: val_acc improved from 0.77710 to 0.92854, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold1.weights.h5\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9285 - val_loss: 0.3861\nEpoch 4/40\n\nEpoch 4: val_acc did not improve from 0.92854\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9194 - val_loss: 0.4036\nEpoch 5/40\n\nEpoch 5: val_acc improved from 0.92854 to 0.93147, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold1.weights.h5\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9315 - val_loss: 0.3739\nEpoch 6/40\n\nEpoch 6: val_acc improved from 0.93147 to 0.93584, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold1.weights.h5\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9358 - val_loss: 0.3856\nEpoch 7/40\n\nEpoch 7: val_acc improved from 0.93584 to 0.94877, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold1.weights.h5\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9488 - val_loss: 0.3393\nEpoch 8/40\n\nEpoch 8: val_acc improved from 0.94877 to 0.96370, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold1.weights.h5\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9637 - val_loss: 0.2776\nEpoch 9/40\n\nEpoch 9: val_acc did not improve from 0.96370\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9522 - val_loss: 0.3037\nEpoch 10/40\n\nEpoch 10: val_acc did not improve from 0.96370\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9418 - val_loss: 0.3108\nEpoch 11/40\n\nEpoch 11: val_acc did not improve from 0.96370\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9508 - val_loss: 0.3043\nEpoch 12/40\n\nEpoch 12: val_acc did not improve from 0.96370\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9513 - val_loss: 0.3065\nEpoch 13/40\n\nEpoch 13: val_acc improved from 0.96370 to 0.96751, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold1.weights.h5\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9675 - val_loss: 0.2766\nEpoch 14/40\n\nEpoch 14: val_acc did not improve from 0.96751\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9362 - val_loss: 0.3740\nEpoch 15/40\n\nEpoch 15: val_acc did not improve from 0.96751\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9555 - val_loss: 0.2930\nEpoch 16/40\n\nEpoch 16: val_acc did not improve from 0.96751\n263/263 - 10s - 38ms/step - acc: nan - loss: nan - val_acc: 0.9493 - val_loss: 0.3077\nEpoch 17/40\n\nEpoch 17: val_acc did not improve from 0.96751\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9422 - val_loss: 0.3407\nEpoch 18/40\n\nEpoch 18: val_acc did not improve from 0.96751\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9355 - val_loss: 0.3329\nEpoch 19/40\n\nEpoch 19: val_acc did not improve from 0.96751\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9615 - val_loss: 0.2595\nEpoch 20/40\n\nEpoch 20: val_acc did not improve from 0.96751\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9458 - val_loss: 0.3399\nEpoch 21/40\n\nEpoch 21: val_acc did not improve from 0.96751\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9438 - val_loss: 0.3317\nEpoch 21: early stopping\nRestoring model weights from the end of the best epoch: 13.\n\n==== Model 3: RESCNN | Seed 42, Fold 2/5 ====\n\nEpoch 1/40\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 34 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\n\nEpoch 1: val_acc improved from -inf to 0.59625, saving model to /kaggle/working/mnist_out/best_rescnn_seed42_fold2.weights.h5\n263/263 - 24s - 90ms/step - acc: nan - loss: nan - val_acc: 0.5962 - val_loss: 1.4735\nEpoch 2/40\n\nEpoch 2: val_acc improved from 0.59625 to 0.80097, saving model to /kaggle/working/mnist_out/best_rescnn_seed42_fold2.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.8010 - val_loss: 0.9455\nEpoch 3/40\n\nEpoch 3: val_acc improved from 0.80097 to 0.90485, saving model to /kaggle/working/mnist_out/best_rescnn_seed42_fold2.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9049 - val_loss: 0.6138\nEpoch 4/40\n\nEpoch 4: val_acc improved from 0.90485 to 0.97460, saving model to /kaggle/working/mnist_out/best_rescnn_seed42_fold2.weights.h5\n263/263 - 13s - 48ms/step - acc: nan - loss: nan - val_acc: 0.9746 - val_loss: 0.3346\nEpoch 5/40\n\nEpoch 5: val_acc did not improve from 0.97460\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9167 - val_loss: 0.6407\nEpoch 6/40\n\nEpoch 6: val_acc did not improve from 0.97460\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9243 - val_loss: 0.6041\nEpoch 7/40\n\nEpoch 7: val_acc did not improve from 0.97460\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9267 - val_loss: 0.5101\nEpoch 8/40\n\nEpoch 8: val_acc did not improve from 0.97460\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9662 - val_loss: 0.4123\nEpoch 9/40\n\nEpoch 9: val_acc did not improve from 0.97460\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9623 - val_loss: 0.3306\nEpoch 10/40\n\nEpoch 10: val_acc improved from 0.97460 to 0.98251, saving model to /kaggle/working/mnist_out/best_rescnn_seed42_fold2.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9825 - val_loss: 0.2550\nEpoch 11/40\n\nEpoch 11: val_acc did not improve from 0.98251\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9732 - val_loss: 0.2571\nEpoch 12/40\n\nEpoch 12: val_acc did not improve from 0.98251\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9817 - val_loss: 0.2311\nEpoch 13/40\n\nEpoch 13: val_acc did not improve from 0.98251\n263/263 - 13s - 49ms/step - acc: nan - loss: nan - val_acc: 0.9681 - val_loss: 0.3978\nEpoch 14/40\n\nEpoch 14: val_acc did not improve from 0.98251\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9486 - val_loss: 0.4501\nEpoch 15/40\n\nEpoch 15: val_acc did not improve from 0.98251\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9520 - val_loss: 0.4259\nEpoch 16/40\n\nEpoch 16: val_acc did not improve from 0.98251\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9636 - val_loss: 0.3593\nEpoch 17/40\n\nEpoch 17: val_acc did not improve from 0.98251\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9506 - val_loss: 0.4024\nEpoch 18/40\n\nEpoch 18: val_acc did not improve from 0.98251\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9512 - val_loss: 0.3770\nEpoch 18: early stopping\nRestoring model weights from the end of the best epoch: 10.\n\n==== Model 4: EFF | Seed 42, Fold 2/5 ====\n\nEpoch 1/40\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 25 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\n\nEpoch 1: val_acc improved from -inf to 0.11880, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold2.weights.h5\n263/263 - 19s - 72ms/step - acc: nan - loss: nan - val_acc: 0.1188 - val_loss: 9.5449\nEpoch 2/40\n\nEpoch 2: val_acc improved from 0.11880 to 0.75611, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold2.weights.h5\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.7561 - val_loss: 0.7765\nEpoch 3/40\n\nEpoch 3: val_acc improved from 0.75611 to 0.95808, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold2.weights.h5\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9581 - val_loss: 0.3295\nEpoch 4/40\n\nEpoch 4: val_acc did not improve from 0.95808\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9406 - val_loss: 0.3282\nEpoch 5/40\n\nEpoch 5: val_acc did not improve from 0.95808\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9081 - val_loss: 0.4239\nEpoch 6/40\n\nEpoch 6: val_acc did not improve from 0.95808\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9504 - val_loss: 0.2770\nEpoch 7/40\n\nEpoch 7: val_acc did not improve from 0.95808\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9227 - val_loss: 0.3407\nEpoch 8/40\n\nEpoch 8: val_acc improved from 0.95808 to 0.96228, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold2.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9623 - val_loss: 0.2661\nEpoch 9/40\n\nEpoch 9: val_acc did not improve from 0.96228\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9392 - val_loss: 0.3225\nEpoch 10/40\n\nEpoch 10: val_acc did not improve from 0.96228\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9533 - val_loss: 0.2777\nEpoch 11/40\n\nEpoch 11: val_acc did not improve from 0.96228\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9596 - val_loss: 0.2695\nEpoch 12/40\n\nEpoch 12: val_acc did not improve from 0.96228\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9555 - val_loss: 0.2791\nEpoch 13/40\n\nEpoch 13: val_acc did not improve from 0.96228\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9419 - val_loss: 0.3349\nEpoch 14/40\n\nEpoch 14: val_acc did not improve from 0.96228\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9571 - val_loss: 0.2775\nEpoch 15/40\n\nEpoch 15: val_acc did not improve from 0.96228\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9440 - val_loss: 0.3302\nEpoch 16/40\n\nEpoch 16: val_acc improved from 0.96228 to 0.96429, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold2.weights.h5\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9643 - val_loss: 0.2355\nEpoch 17/40\n\nEpoch 17: val_acc improved from 0.96429 to 0.98269, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold2.weights.h5\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9827 - val_loss: 0.2183\nEpoch 18/40\n\nEpoch 18: val_acc did not improve from 0.98269\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9610 - val_loss: 0.2530\nEpoch 19/40\n\nEpoch 19: val_acc did not improve from 0.98269\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9705 - val_loss: 0.2409\nEpoch 20/40\n\nEpoch 20: val_acc did not improve from 0.98269\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9589 - val_loss: 0.2625\nEpoch 21/40\n\nEpoch 21: val_acc did not improve from 0.98269\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9134 - val_loss: 0.3951\nEpoch 22/40\n\nEpoch 22: val_acc did not improve from 0.98269\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9769 - val_loss: 0.2233\nEpoch 23/40\n\nEpoch 23: val_acc did not improve from 0.98269\n263/263 - 10s - 39ms/step - acc: nan - loss: nan - val_acc: 0.9658 - val_loss: 0.2525\nEpoch 24/40\n\nEpoch 24: val_acc did not improve from 0.98269\n263/263 - 8s - 32ms/step - acc: nan - loss: nan - val_acc: 0.1161 - val_loss: nan\nEpoch 25/40\n\nEpoch 25: val_acc did not improve from 0.98269\n263/263 - 8s - 31ms/step - acc: nan - loss: nan - val_acc: 0.1161 - val_loss: nan\nEpoch 25: early stopping\nRestoring model weights from the end of the best epoch: 17.\n\n==== Model 5: RESCNN | Seed 42, Fold 3/5 ====\n\nEpoch 1/40\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 34 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\n\nEpoch 1: val_acc improved from -inf to 0.37982, saving model to /kaggle/working/mnist_out/best_rescnn_seed42_fold3.weights.h5\n263/263 - 24s - 91ms/step - acc: nan - loss: nan - val_acc: 0.3798 - val_loss: 1.9634\nEpoch 2/40\n\nEpoch 2: val_acc improved from 0.37982 to 0.91329, saving model to /kaggle/working/mnist_out/best_rescnn_seed42_fold3.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9133 - val_loss: 0.6775\nEpoch 3/40\n\nEpoch 3: val_acc improved from 0.91329 to 0.96037, saving model to /kaggle/working/mnist_out/best_rescnn_seed42_fold3.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9604 - val_loss: 0.4211\nEpoch 4/40\n\nEpoch 4: val_acc improved from 0.96037 to 0.98351, saving model to /kaggle/working/mnist_out/best_rescnn_seed42_fold3.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9835 - val_loss: 0.3214\nEpoch 5/40\n\nEpoch 5: val_acc did not improve from 0.98351\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9611 - val_loss: 0.4781\nEpoch 6/40\n\nEpoch 6: val_acc did not improve from 0.98351\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.7376 - val_loss: 1.0163\nEpoch 7/40\n\nEpoch 7: val_acc did not improve from 0.98351\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9181 - val_loss: 0.5487\nEpoch 8/40\n\nEpoch 8: val_acc did not improve from 0.98351\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9633 - val_loss: 0.4090\nEpoch 9/40\n\nEpoch 9: val_acc did not improve from 0.98351\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9791 - val_loss: 0.2896\nEpoch 10/40\n\nEpoch 10: val_acc did not improve from 0.98351\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9645 - val_loss: 0.3094\nEpoch 11/40\n\nEpoch 11: val_acc did not improve from 0.98351\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9811 - val_loss: 0.2231\nEpoch 12/40\n\nEpoch 12: val_acc did not improve from 0.98351\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9744 - val_loss: 0.2398\nEpoch 12: early stopping\nRestoring model weights from the end of the best epoch: 4.\n\n==== Model 6: EFF | Seed 42, Fold 3/5 ====\n\nEpoch 1/40\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 25 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\n\nEpoch 1: val_acc improved from -inf to 0.10666, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold3.weights.h5\n263/263 - 19s - 72ms/step - acc: nan - loss: nan - val_acc: 0.1067 - val_loss: 9.8134\nEpoch 2/40\n\nEpoch 2: val_acc improved from 0.10666 to 0.55059, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold3.weights.h5\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.5506 - val_loss: 1.3209\nEpoch 3/40\n\nEpoch 3: val_acc improved from 0.55059 to 0.92956, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold3.weights.h5\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9296 - val_loss: 0.3743\nEpoch 4/40\n\nEpoch 4: val_acc improved from 0.92956 to 0.94064, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold3.weights.h5\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9406 - val_loss: 0.3484\nEpoch 5/40\n\nEpoch 5: val_acc did not improve from 0.94064\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9309 - val_loss: 0.3750\nEpoch 6/40\n\nEpoch 6: val_acc did not improve from 0.94064\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9393 - val_loss: 0.3404\nEpoch 7/40\n\nEpoch 7: val_acc improved from 0.94064 to 0.94634, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold3.weights.h5\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9463 - val_loss: 0.3014\nEpoch 8/40\n\nEpoch 8: val_acc improved from 0.94634 to 0.96409, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold3.weights.h5\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9641 - val_loss: 0.2705\nEpoch 9/40\n\nEpoch 9: val_acc improved from 0.96409 to 0.96419, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold3.weights.h5\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9642 - val_loss: 0.2692\nEpoch 10/40\n\nEpoch 10: val_acc did not improve from 0.96419\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9492 - val_loss: 0.2943\nEpoch 11/40\n\nEpoch 11: val_acc did not improve from 0.96419\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9560 - val_loss: 0.2800\nEpoch 12/40\n\nEpoch 12: val_acc did not improve from 0.96419\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9576 - val_loss: 0.2811\nEpoch 13/40\n\nEpoch 13: val_acc did not improve from 0.96419\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9343 - val_loss: 0.3540\nEpoch 14/40\n\nEpoch 14: val_acc did not improve from 0.96419\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9459 - val_loss: 0.2967\nEpoch 15/40\n\nEpoch 15: val_acc did not improve from 0.96419\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9584 - val_loss: 0.2831\nEpoch 16/40\n\nEpoch 16: val_acc did not improve from 0.96419\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9458 - val_loss: 0.3039\nEpoch 17/40\n\nEpoch 17: val_acc improved from 0.96419 to 0.96697, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold3.weights.h5\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9670 - val_loss: 0.2472\nEpoch 18/40\n\nEpoch 18: val_acc did not improve from 0.96697\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9622 - val_loss: 0.2477\nEpoch 19/40\n\nEpoch 19: val_acc did not improve from 0.96697\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9666 - val_loss: 0.2638\nEpoch 20/40\n\nEpoch 20: val_acc improved from 0.96697 to 0.96844, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold3.weights.h5\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9684 - val_loss: 0.2476\nEpoch 21/40\n\nEpoch 21: val_acc improved from 0.96844 to 0.97187, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold3.weights.h5\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9719 - val_loss: 0.2280\nEpoch 22/40\n\nEpoch 22: val_acc did not improve from 0.97187\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9716 - val_loss: 0.2245\nEpoch 23/40\n\nEpoch 23: val_acc did not improve from 0.97187\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9631 - val_loss: 0.2600\nEpoch 24/40\n\nEpoch 24: val_acc did not improve from 0.97187\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9655 - val_loss: 0.2494\nEpoch 25/40\n\nEpoch 25: val_acc did not improve from 0.97187\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9717 - val_loss: 0.2379\nEpoch 26/40\n\nEpoch 26: val_acc did not improve from 0.97187\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9687 - val_loss: 0.2348\nEpoch 27/40\n\nEpoch 27: val_acc did not improve from 0.97187\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9702 - val_loss: 0.2346\nEpoch 28/40\n\nEpoch 28: val_acc did not improve from 0.97187\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9697 - val_loss: 0.2355\nEpoch 29/40\n\nEpoch 29: val_acc did not improve from 0.97187\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9617 - val_loss: 0.2549\nEpoch 29: early stopping\nRestoring model weights from the end of the best epoch: 21.\n\n==== Model 7: RESCNN | Seed 42, Fold 4/5 ====\n\nEpoch 1/40\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 34 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\n\nEpoch 1: val_acc improved from -inf to 0.71927, saving model to /kaggle/working/mnist_out/best_rescnn_seed42_fold4.weights.h5\n263/263 - 24s - 91ms/step - acc: nan - loss: nan - val_acc: 0.7193 - val_loss: 1.2576\nEpoch 2/40\n\nEpoch 2: val_acc improved from 0.71927 to 0.88516, saving model to /kaggle/working/mnist_out/best_rescnn_seed42_fold4.weights.h5\n263/263 - 12s - 48ms/step - acc: nan - loss: nan - val_acc: 0.8852 - val_loss: 0.8168\nEpoch 3/40\n\nEpoch 3: val_acc improved from 0.88516 to 0.97348, saving model to /kaggle/working/mnist_out/best_rescnn_seed42_fold4.weights.h5\n263/263 - 13s - 48ms/step - acc: nan - loss: nan - val_acc: 0.9735 - val_loss: 0.4031\nEpoch 4/40\n\nEpoch 4: val_acc improved from 0.97348 to 0.98098, saving model to /kaggle/working/mnist_out/best_rescnn_seed42_fold4.weights.h5\n263/263 - 13s - 48ms/step - acc: nan - loss: nan - val_acc: 0.9810 - val_loss: 0.3102\nEpoch 5/40\n\nEpoch 5: val_acc did not improve from 0.98098\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9588 - val_loss: 0.4819\nEpoch 6/40\n\nEpoch 6: val_acc did not improve from 0.98098\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9379 - val_loss: 0.5496\nEpoch 7/40\n\nEpoch 7: val_acc did not improve from 0.98098\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.8869 - val_loss: 0.6494\nEpoch 8/40\n\nEpoch 8: val_acc did not improve from 0.98098\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9748 - val_loss: 0.3621\nEpoch 9/40\n\nEpoch 9: val_acc did not improve from 0.98098\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9776 - val_loss: 0.3159\nEpoch 10/40\n\nEpoch 10: val_acc improved from 0.98098 to 0.98784, saving model to /kaggle/working/mnist_out/best_rescnn_seed42_fold4.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9878 - val_loss: 0.2336\nEpoch 11/40\n\nEpoch 11: val_acc did not improve from 0.98784\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9867 - val_loss: 0.2221\nEpoch 12/40\n\nEpoch 12: val_acc did not improve from 0.98784\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9856 - val_loss: 0.2170\nEpoch 13/40\n\nEpoch 13: val_acc did not improve from 0.98784\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.8240 - val_loss: 0.7984\nEpoch 14/40\n\nEpoch 14: val_acc did not improve from 0.98784\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9352 - val_loss: 0.5465\nEpoch 15/40\n\nEpoch 15: val_acc did not improve from 0.98784\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9877 - val_loss: 0.3214\nEpoch 16/40\n\nEpoch 16: val_acc did not improve from 0.98784\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9301 - val_loss: 0.4667\nEpoch 17/40\n\nEpoch 17: val_acc did not improve from 0.98784\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9837 - val_loss: 0.3000\nEpoch 18/40\n\nEpoch 18: val_acc did not improve from 0.98784\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9663 - val_loss: 0.3174\nEpoch 18: early stopping\nRestoring model weights from the end of the best epoch: 10.\n\n==== Model 8: EFF | Seed 42, Fold 4/5 ====\n\nEpoch 1/40\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 25 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\n\nEpoch 1: val_acc improved from -inf to 0.08740, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold4.weights.h5\n263/263 - 19s - 73ms/step - acc: nan - loss: nan - val_acc: 0.0874 - val_loss: 8.8441\nEpoch 2/40\n\nEpoch 2: val_acc improved from 0.08740 to 0.64964, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold4.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.6496 - val_loss: 1.0235\nEpoch 3/40\n\nEpoch 3: val_acc improved from 0.64964 to 0.94822, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold4.weights.h5\n263/263 - 10s - 37ms/step - acc: nan - loss: nan - val_acc: 0.9482 - val_loss: 0.3112\nEpoch 4/40\n\nEpoch 4: val_acc improved from 0.94822 to 0.94905, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold4.weights.h5\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9490 - val_loss: 0.3066\nEpoch 5/40\n\nEpoch 5: val_acc did not improve from 0.94905\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9432 - val_loss: 0.3385\nEpoch 6/40\n\nEpoch 6: val_acc improved from 0.94905 to 0.95116, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold4.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9512 - val_loss: 0.2893\nEpoch 7/40\n\nEpoch 7: val_acc improved from 0.95116 to 0.95435, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold4.weights.h5\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9543 - val_loss: 0.2810\nEpoch 8/40\n\nEpoch 8: val_acc improved from 0.95435 to 0.96837, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold4.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9684 - val_loss: 0.2510\nEpoch 9/40\n\nEpoch 9: val_acc did not improve from 0.96837\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9574 - val_loss: 0.2442\nEpoch 10/40\n\nEpoch 10: val_acc improved from 0.96837 to 0.97045, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold4.weights.h5\n263/263 - 10s - 37ms/step - acc: nan - loss: nan - val_acc: 0.9705 - val_loss: 0.2402\nEpoch 11/40\n\nEpoch 11: val_acc did not improve from 0.97045\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9650 - val_loss: 0.2518\nEpoch 12/40\n\nEpoch 12: val_acc did not improve from 0.97045\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9684 - val_loss: 0.2467\nEpoch 13/40\n\nEpoch 13: val_acc did not improve from 0.97045\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9597 - val_loss: 0.2765\nEpoch 14/40\n\nEpoch 14: val_acc did not improve from 0.97045\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9532 - val_loss: 0.2928\nEpoch 15/40\n\nEpoch 15: val_acc improved from 0.97045 to 0.97199, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold4.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9720 - val_loss: 0.2518\nEpoch 16/40\n\nEpoch 16: val_acc did not improve from 0.97199\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9478 - val_loss: 0.2851\nEpoch 17/40\n\nEpoch 17: val_acc improved from 0.97199 to 0.97343, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold4.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9734 - val_loss: 0.2245\nEpoch 18/40\n\nEpoch 18: val_acc improved from 0.97343 to 0.97989, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold4.weights.h5\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9799 - val_loss: 0.2217\nEpoch 19/40\n\nEpoch 19: val_acc did not improve from 0.97989\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9691 - val_loss: 0.2258\nEpoch 20/40\n\nEpoch 20: val_acc did not improve from 0.97989\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9781 - val_loss: 0.2127\nEpoch 21/40\n\nEpoch 21: val_acc did not improve from 0.97989\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9710 - val_loss: 0.2237\nEpoch 22/40\n\nEpoch 22: val_acc did not improve from 0.97989\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9749 - val_loss: 0.2249\nEpoch 23/40\n\nEpoch 23: val_acc did not improve from 0.97989\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9650 - val_loss: 0.2457\nEpoch 24/40\n\nEpoch 24: val_acc did not improve from 0.97989\n263/263 - 9s - 32ms/step - acc: nan - loss: nan - val_acc: 0.0815 - val_loss: nan\nEpoch 25/40\n\nEpoch 25: val_acc did not improve from 0.97989\n263/263 - 8s - 30ms/step - acc: nan - loss: nan - val_acc: 0.0815 - val_loss: nan\nEpoch 26/40\n\nEpoch 26: val_acc did not improve from 0.97989\n263/263 - 8s - 30ms/step - acc: nan - loss: nan - val_acc: 0.0815 - val_loss: nan\nEpoch 26: early stopping\nRestoring model weights from the end of the best epoch: 18.\n\n==== Model 9: RESCNN | Seed 42, Fold 5/5 ====\n\nEpoch 1/40\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 34 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\n\nEpoch 1: val_acc improved from -inf to 0.60844, saving model to /kaggle/working/mnist_out/best_rescnn_seed42_fold5.weights.h5\n263/263 - 25s - 93ms/step - acc: nan - loss: nan - val_acc: 0.6084 - val_loss: 1.5094\nEpoch 2/40\n\nEpoch 2: val_acc improved from 0.60844 to 0.95169, saving model to /kaggle/working/mnist_out/best_rescnn_seed42_fold5.weights.h5\n263/263 - 13s - 48ms/step - acc: nan - loss: nan - val_acc: 0.9517 - val_loss: 0.5772\nEpoch 3/40\n\nEpoch 3: val_acc did not improve from 0.95169\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9457 - val_loss: 0.4875\nEpoch 4/40\n\nEpoch 4: val_acc improved from 0.95169 to 0.96389, saving model to /kaggle/working/mnist_out/best_rescnn_seed42_fold5.weights.h5\n263/263 - 12s - 48ms/step - acc: nan - loss: nan - val_acc: 0.9639 - val_loss: 0.3591\nEpoch 5/40\n\nEpoch 5: val_acc did not improve from 0.96389\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.8489 - val_loss: 0.7783\nEpoch 6/40\n\nEpoch 6: val_acc did not improve from 0.96389\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.8807 - val_loss: 0.6935\nEpoch 7/40\n\nEpoch 7: val_acc did not improve from 0.96389\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9573 - val_loss: 0.4656\nEpoch 8/40\n\nEpoch 8: val_acc did not improve from 0.96389\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9628 - val_loss: 0.4413\nEpoch 9/40\n\nEpoch 9: val_acc did not improve from 0.96389\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9351 - val_loss: 0.4294\nEpoch 10/40\n\nEpoch 10: val_acc did not improve from 0.96389\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9632 - val_loss: 0.2904\nEpoch 11/40\n\nEpoch 11: val_acc improved from 0.96389 to 0.97325, saving model to /kaggle/working/mnist_out/best_rescnn_seed42_fold5.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9732 - val_loss: 0.2663\nEpoch 12/40\n\nEpoch 12: val_acc improved from 0.97325 to 0.97708, saving model to /kaggle/working/mnist_out/best_rescnn_seed42_fold5.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9771 - val_loss: 0.2531\nEpoch 13/40\n\nEpoch 13: val_acc did not improve from 0.97708\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9571 - val_loss: 0.4437\nEpoch 14/40\n\nEpoch 14: val_acc did not improve from 0.97708\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.7514 - val_loss: 0.9561\nEpoch 15/40\n\nEpoch 15: val_acc did not improve from 0.97708\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9276 - val_loss: 0.4881\nEpoch 16/40\n\nEpoch 16: val_acc did not improve from 0.97708\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9549 - val_loss: 0.3947\nEpoch 17/40\n\nEpoch 17: val_acc did not improve from 0.97708\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.8915 - val_loss: 0.5737\nEpoch 18/40\n\nEpoch 18: val_acc did not improve from 0.97708\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9076 - val_loss: 0.5254\nEpoch 19/40\n\nEpoch 19: val_acc improved from 0.97708 to 0.97736, saving model to /kaggle/working/mnist_out/best_rescnn_seed42_fold5.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9774 - val_loss: 0.3040\nEpoch 20/40\n\nEpoch 20: val_acc did not improve from 0.97736\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9651 - val_loss: 0.3133\nEpoch 21/40\n\nEpoch 21: val_acc did not improve from 0.97736\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9649 - val_loss: 0.2948\nEpoch 22/40\n\nEpoch 22: val_acc improved from 0.97736 to 0.97948, saving model to /kaggle/working/mnist_out/best_rescnn_seed42_fold5.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9795 - val_loss: 0.2488\nEpoch 23/40\n\nEpoch 23: val_acc improved from 0.97948 to 0.98490, saving model to /kaggle/working/mnist_out/best_rescnn_seed42_fold5.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9849 - val_loss: 0.2199\nEpoch 24/40\n\nEpoch 24: val_acc did not improve from 0.98490\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.1114 - val_loss: nan\nEpoch 25/40\n\nEpoch 25: val_acc did not improve from 0.98490\n263/263 - 10s - 39ms/step - acc: nan - loss: nan - val_acc: 0.1114 - val_loss: nan\nEpoch 26/40\n\nEpoch 26: val_acc did not improve from 0.98490\n263/263 - 10s - 39ms/step - acc: nan - loss: nan - val_acc: 0.1114 - val_loss: nan\nEpoch 27/40\n\nEpoch 27: val_acc did not improve from 0.98490\n263/263 - 10s - 39ms/step - acc: nan - loss: nan - val_acc: 0.1114 - val_loss: nan\nEpoch 28/40\n\nEpoch 28: val_acc did not improve from 0.98490\n263/263 - 10s - 39ms/step - acc: nan - loss: nan - val_acc: 0.1114 - val_loss: nan\nEpoch 29/40\n\nEpoch 29: val_acc did not improve from 0.98490\n263/263 - 10s - 39ms/step - acc: nan - loss: nan - val_acc: 0.1114 - val_loss: nan\nEpoch 30/40\n\nEpoch 30: val_acc did not improve from 0.98490\n263/263 - 10s - 39ms/step - acc: nan - loss: nan - val_acc: 0.1114 - val_loss: nan\nEpoch 31/40\n\nEpoch 31: val_acc did not improve from 0.98490\n263/263 - 10s - 39ms/step - acc: nan - loss: nan - val_acc: 0.1114 - val_loss: nan\nEpoch 31: early stopping\nRestoring model weights from the end of the best epoch: 23.\n\n==== Model 10: EFF | Seed 42, Fold 5/5 ====\n\nEpoch 1/40\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 25 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\n\nEpoch 1: val_acc improved from -inf to 0.09695, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold5.weights.h5\n263/263 - 19s - 71ms/step - acc: nan - loss: nan - val_acc: 0.0970 - val_loss: 9.7119\nEpoch 2/40\n\nEpoch 2: val_acc improved from 0.09695 to 0.46276, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold5.weights.h5\n263/263 - 11s - 40ms/step - acc: nan - loss: nan - val_acc: 0.4628 - val_loss: 1.6142\nEpoch 3/40\n\nEpoch 3: val_acc improved from 0.46276 to 0.82976, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold5.weights.h5\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.8298 - val_loss: 0.6541\nEpoch 4/40\n\nEpoch 4: val_acc improved from 0.82976 to 0.86634, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold5.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.8663 - val_loss: 0.5550\nEpoch 5/40\n\nEpoch 5: val_acc did not improve from 0.86634\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.8514 - val_loss: 0.6352\nEpoch 6/40\n\nEpoch 6: val_acc improved from 0.86634 to 0.91476, saving model to /kaggle/working/mnist_out/best_eff_seed42_fold5.weights.h5\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9148 - val_loss: 0.4146\nEpoch 7/40\n\nEpoch 7: val_acc did not improve from 0.91476\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.8162 - val_loss: 0.7190\nEpoch 8/40\n\nEpoch 8: val_acc did not improve from 0.91476\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.8806 - val_loss: 0.4856\nEpoch 9/40\n\nEpoch 9: val_acc did not improve from 0.91476\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.8894 - val_loss: 0.4997\nEpoch 10/40\n\nEpoch 10: val_acc did not improve from 0.91476\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.8593 - val_loss: 0.5574\nEpoch 11/40\n\nEpoch 11: val_acc did not improve from 0.91476\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.8911 - val_loss: 0.4954\nEpoch 12/40\n\nEpoch 12: val_acc did not improve from 0.91476\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.8873 - val_loss: 0.4767\nEpoch 13/40\n\nEpoch 13: val_acc did not improve from 0.91476\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.8856 - val_loss: 0.4914\nEpoch 14/40\n\nEpoch 14: val_acc did not improve from 0.91476\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.8263 - val_loss: 0.7248\nEpoch 14: early stopping\nRestoring model weights from the end of the best epoch: 6.\n\n*************** SEED 1337 ***************\n\n\n==== Model 11: RESCNN | Seed 1337, Fold 1/5 ====\n\nEpoch 1/40\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 34 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\n\nEpoch 1: val_acc improved from -inf to 0.50324, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold1.weights.h5\n263/263 - 25s - 96ms/step - acc: nan - loss: nan - val_acc: 0.5032 - val_loss: 1.7975\nEpoch 2/40\n\nEpoch 2: val_acc improved from 0.50324 to 0.66455, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold1.weights.h5\n263/263 - 13s - 48ms/step - acc: nan - loss: nan - val_acc: 0.6645 - val_loss: 1.2936\nEpoch 3/40\n\nEpoch 3: val_acc improved from 0.66455 to 0.95572, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold1.weights.h5\n263/263 - 13s - 48ms/step - acc: nan - loss: nan - val_acc: 0.9557 - val_loss: 0.4659\nEpoch 4/40\n\nEpoch 4: val_acc improved from 0.95572 to 0.97621, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold1.weights.h5\n263/263 - 12s - 48ms/step - acc: nan - loss: nan - val_acc: 0.9762 - val_loss: 0.3394\nEpoch 5/40\n\nEpoch 5: val_acc did not improve from 0.97621\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9277 - val_loss: 0.5391\nEpoch 6/40\n\nEpoch 6: val_acc did not improve from 0.97621\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9220 - val_loss: 0.5776\nEpoch 7/40\n\nEpoch 7: val_acc did not improve from 0.97621\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.8692 - val_loss: 0.7027\nEpoch 8/40\n\nEpoch 8: val_acc did not improve from 0.97621\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.7568 - val_loss: 1.0563\nEpoch 9/40\n\nEpoch 9: val_acc did not improve from 0.97621\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9473 - val_loss: 0.4153\nEpoch 10/40\n\nEpoch 10: val_acc did not improve from 0.97621\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9622 - val_loss: 0.3259\nEpoch 11/40\n\nEpoch 11: val_acc improved from 0.97621 to 0.97816, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold1.weights.h5\n263/263 - 13s - 48ms/step - acc: nan - loss: nan - val_acc: 0.9782 - val_loss: 0.2560\nEpoch 12/40\n\nEpoch 12: val_acc improved from 0.97816 to 0.98117, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold1.weights.h5\n263/263 - 13s - 48ms/step - acc: nan - loss: nan - val_acc: 0.9812 - val_loss: 0.2416\nEpoch 13/40\n\nEpoch 13: val_acc did not improve from 0.98117\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9487 - val_loss: 0.4407\nEpoch 14/40\n\nEpoch 14: val_acc did not improve from 0.98117\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9094 - val_loss: 0.5909\nEpoch 15/40\n\nEpoch 15: val_acc did not improve from 0.98117\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.7704 - val_loss: 0.9642\nEpoch 16/40\n\nEpoch 16: val_acc did not improve from 0.98117\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9712 - val_loss: 0.3396\nEpoch 17/40\n\nEpoch 17: val_acc did not improve from 0.98117\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9643 - val_loss: 0.3488\nEpoch 18/40\n\nEpoch 18: val_acc did not improve from 0.98117\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9551 - val_loss: 0.3608\nEpoch 19/40\n\nEpoch 19: val_acc did not improve from 0.98117\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9625 - val_loss: 0.3057\nEpoch 20/40\n\nEpoch 20: val_acc did not improve from 0.98117\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9636 - val_loss: 0.2859\nEpoch 20: early stopping\nRestoring model weights from the end of the best epoch: 12.\n\n==== Model 12: EFF | Seed 1337, Fold 1/5 ====\n\nEpoch 1/40\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 25 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\n\nEpoch 1: val_acc improved from -inf to 0.11111, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold1.weights.h5\n263/263 - 19s - 71ms/step - acc: nan - loss: nan - val_acc: 0.1111 - val_loss: 7.9343\nEpoch 2/40\n\nEpoch 2: val_acc improved from 0.11111 to 0.55804, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold1.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.5580 - val_loss: 1.2791\nEpoch 3/40\n\nEpoch 3: val_acc improved from 0.55804 to 0.85289, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold1.weights.h5\n263/263 - 10s - 37ms/step - acc: nan - loss: nan - val_acc: 0.8529 - val_loss: 0.6192\nEpoch 4/40\n\nEpoch 4: val_acc improved from 0.85289 to 0.87928, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold1.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.8793 - val_loss: 0.5263\nEpoch 5/40\n\nEpoch 5: val_acc improved from 0.87928 to 0.93229, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold1.weights.h5\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9323 - val_loss: 0.3969\nEpoch 6/40\n\nEpoch 6: val_acc did not improve from 0.93229\n263/263 - 11s - 40ms/step - acc: nan - loss: nan - val_acc: 0.9117 - val_loss: 0.4270\nEpoch 7/40\n\nEpoch 7: val_acc did not improve from 0.93229\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9140 - val_loss: 0.4288\nEpoch 8/40\n\nEpoch 8: val_acc did not improve from 0.93229\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9085 - val_loss: 0.4625\nEpoch 9/40\n\nEpoch 9: val_acc did not improve from 0.93229\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9076 - val_loss: 0.4072\nEpoch 10/40\n\nEpoch 10: val_acc did not improve from 0.93229\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9206 - val_loss: 0.3903\nEpoch 11/40\n\nEpoch 11: val_acc did not improve from 0.93229\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9171 - val_loss: 0.3876\nEpoch 12/40\n\nEpoch 12: val_acc did not improve from 0.93229\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9162 - val_loss: 0.3981\nEpoch 13/40\n\nEpoch 13: val_acc improved from 0.93229 to 0.94099, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold1.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9410 - val_loss: 0.3647\nEpoch 14/40\n\nEpoch 14: val_acc did not improve from 0.94099\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.8473 - val_loss: 0.6340\nEpoch 15/40\n\nEpoch 15: val_acc did not improve from 0.94099\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.8985 - val_loss: 0.4585\nEpoch 16/40\n\nEpoch 16: val_acc did not improve from 0.94099\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.8910 - val_loss: 0.4942\nEpoch 17/40\n\nEpoch 17: val_acc did not improve from 0.94099\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.8681 - val_loss: 0.5684\nEpoch 18/40\n\nEpoch 18: val_acc did not improve from 0.94099\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.8931 - val_loss: 0.5095\nEpoch 19/40\n\nEpoch 19: val_acc did not improve from 0.94099\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9110 - val_loss: 0.4360\nEpoch 20/40\n\nEpoch 20: val_acc did not improve from 0.94099\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9345 - val_loss: 0.3529\nEpoch 21/40\n\nEpoch 21: val_acc did not improve from 0.94099\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9249 - val_loss: 0.4034\nEpoch 21: early stopping\nRestoring model weights from the end of the best epoch: 13.\n\n==== Model 13: RESCNN | Seed 1337, Fold 2/5 ====\n\nEpoch 1/40\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 34 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\n\nEpoch 1: val_acc improved from -inf to 0.67212, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold2.weights.h5\n263/263 - 25s - 94ms/step - acc: nan - loss: nan - val_acc: 0.6721 - val_loss: 1.3355\nEpoch 2/40\n\nEpoch 2: val_acc improved from 0.67212 to 0.93664, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold2.weights.h5\n263/263 - 13s - 48ms/step - acc: nan - loss: nan - val_acc: 0.9366 - val_loss: 0.5986\nEpoch 3/40\n\nEpoch 3: val_acc improved from 0.93664 to 0.94929, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold2.weights.h5\n263/263 - 13s - 48ms/step - acc: nan - loss: nan - val_acc: 0.9493 - val_loss: 0.4373\nEpoch 4/40\n\nEpoch 4: val_acc improved from 0.94929 to 0.98045, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold2.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9805 - val_loss: 0.3351\nEpoch 5/40\n\nEpoch 5: val_acc did not improve from 0.98045\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9267 - val_loss: 0.5795\nEpoch 6/40\n\nEpoch 6: val_acc did not improve from 0.98045\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.7873 - val_loss: 0.9616\nEpoch 7/40\n\nEpoch 7: val_acc did not improve from 0.98045\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.8379 - val_loss: 0.8061\nEpoch 8/40\n\nEpoch 8: val_acc did not improve from 0.98045\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9711 - val_loss: 0.3404\nEpoch 9/40\n\nEpoch 9: val_acc did not improve from 0.98045\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9738 - val_loss: 0.3183\nEpoch 10/40\n\nEpoch 10: val_acc improved from 0.98045 to 0.98679, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold2.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9868 - val_loss: 0.2485\nEpoch 11/40\n\nEpoch 11: val_acc improved from 0.98679 to 0.98736, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold2.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9874 - val_loss: 0.2158\nEpoch 12/40\n\nEpoch 12: val_acc did not improve from 0.98736\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9849 - val_loss: 0.2170\nEpoch 13/40\n\nEpoch 13: val_acc did not improve from 0.98736\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9287 - val_loss: 0.4805\nEpoch 14/40\n\nEpoch 14: val_acc did not improve from 0.98736\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9531 - val_loss: 0.4476\nEpoch 15/40\n\nEpoch 15: val_acc did not improve from 0.98736\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9155 - val_loss: 0.5130\nEpoch 16/40\n\nEpoch 16: val_acc did not improve from 0.98736\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.8303 - val_loss: 0.7393\nEpoch 17/40\n\nEpoch 17: val_acc did not improve from 0.98736\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9605 - val_loss: 0.3560\nEpoch 18/40\n\nEpoch 18: val_acc did not improve from 0.98736\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.8947 - val_loss: 0.4885\nEpoch 19/40\n\nEpoch 19: val_acc did not improve from 0.98736\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9261 - val_loss: 0.3976\nEpoch 19: early stopping\nRestoring model weights from the end of the best epoch: 11.\n\n==== Model 14: EFF | Seed 1337, Fold 2/5 ====\n\nEpoch 1/40\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 25 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\n\nEpoch 1: val_acc improved from -inf to 0.11880, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold2.weights.h5\n263/263 - 19s - 71ms/step - acc: nan - loss: nan - val_acc: 0.1188 - val_loss: 9.1283\nEpoch 2/40\n\nEpoch 2: val_acc improved from 0.11880 to 0.74783, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold2.weights.h5\n263/263 - 10s - 39ms/step - acc: nan - loss: nan - val_acc: 0.7478 - val_loss: 0.7953\nEpoch 3/40\n\nEpoch 3: val_acc improved from 0.74783 to 0.93199, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold2.weights.h5\n263/263 - 10s - 37ms/step - acc: nan - loss: nan - val_acc: 0.9320 - val_loss: 0.3832\nEpoch 4/40\n\nEpoch 4: val_acc improved from 0.93199 to 0.93414, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold2.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9341 - val_loss: 0.3670\nEpoch 5/40\n\nEpoch 5: val_acc did not improve from 0.93414\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9012 - val_loss: 0.4617\nEpoch 6/40\n\nEpoch 6: val_acc did not improve from 0.93414\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9195 - val_loss: 0.3718\nEpoch 7/40\n\nEpoch 7: val_acc did not improve from 0.93414\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9153 - val_loss: 0.3762\nEpoch 8/40\n\nEpoch 8: val_acc did not improve from 0.93414\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9208 - val_loss: 0.3596\nEpoch 9/40\n\nEpoch 9: val_acc did not improve from 0.93414\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9327 - val_loss: 0.3827\nEpoch 10/40\n\nEpoch 10: val_acc did not improve from 0.93414\n263/263 - 10s - 40ms/step - acc: nan - loss: nan - val_acc: 0.9296 - val_loss: 0.3251\nEpoch 11/40\n\nEpoch 11: val_acc improved from 0.93414 to 0.93827, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold2.weights.h5\n263/263 - 10s - 37ms/step - acc: nan - loss: nan - val_acc: 0.9383 - val_loss: 0.3091\nEpoch 12/40\n\nEpoch 12: val_acc did not improve from 0.93827\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9333 - val_loss: 0.3106\nEpoch 13/40\n\nEpoch 13: val_acc did not improve from 0.93827\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.8934 - val_loss: 0.4928\nEpoch 14/40\n\nEpoch 14: val_acc improved from 0.93827 to 0.94649, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold2.weights.h5\n263/263 - 10s - 37ms/step - acc: nan - loss: nan - val_acc: 0.9465 - val_loss: 0.3000\nEpoch 15/40\n\nEpoch 15: val_acc did not improve from 0.94649\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9387 - val_loss: 0.3380\nEpoch 16/40\n\nEpoch 16: val_acc improved from 0.94649 to 0.95490, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold2.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9549 - val_loss: 0.2953\nEpoch 17/40\n\nEpoch 17: val_acc did not improve from 0.95490\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9362 - val_loss: 0.3229\nEpoch 18/40\n\nEpoch 18: val_acc did not improve from 0.95490\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9335 - val_loss: 0.3199\nEpoch 19/40\n\nEpoch 19: val_acc did not improve from 0.95490\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9456 - val_loss: 0.2905\nEpoch 20/40\n\nEpoch 20: val_acc did not improve from 0.95490\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9321 - val_loss: 0.3128\nEpoch 21/40\n\nEpoch 21: val_acc did not improve from 0.95490\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9305 - val_loss: 0.3024\nEpoch 22/40\n\nEpoch 22: val_acc improved from 0.95490 to 0.97230, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold2.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9723 - val_loss: 0.2378\nEpoch 23/40\n\nEpoch 23: val_acc did not improve from 0.97230\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9632 - val_loss: 0.2450\nEpoch 24/40\n\nEpoch 24: val_acc did not improve from 0.97230\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9525 - val_loss: 0.2888\nEpoch 25/40\n\nEpoch 25: val_acc did not improve from 0.97230\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9562 - val_loss: 0.2790\nEpoch 26/40\n\nEpoch 26: val_acc did not improve from 0.97230\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9566 - val_loss: 0.2855\nEpoch 27/40\n\nEpoch 27: val_acc did not improve from 0.97230\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9516 - val_loss: 0.2903\nEpoch 28/40\n\nEpoch 28: val_acc did not improve from 0.97230\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9576 - val_loss: 0.2838\nEpoch 29/40\n\nEpoch 29: val_acc did not improve from 0.97230\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9491 - val_loss: 0.2750\nEpoch 30/40\n\nEpoch 30: val_acc did not improve from 0.97230\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9461 - val_loss: 0.2969\nEpoch 30: early stopping\nRestoring model weights from the end of the best epoch: 22.\n\n==== Model 15: RESCNN | Seed 1337, Fold 3/5 ====\n\nEpoch 1/40\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 34 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\n\nEpoch 1: val_acc improved from -inf to 0.21895, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold3.weights.h5\n263/263 - 24s - 90ms/step - acc: nan - loss: nan - val_acc: 0.2190 - val_loss: 2.6191\nEpoch 2/40\n\nEpoch 2: val_acc improved from 0.21895 to 0.93157, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold3.weights.h5\n263/263 - 13s - 48ms/step - acc: nan - loss: nan - val_acc: 0.9316 - val_loss: 0.6451\nEpoch 3/40\n\nEpoch 3: val_acc improved from 0.93157 to 0.96481, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold3.weights.h5\n263/263 - 13s - 48ms/step - acc: nan - loss: nan - val_acc: 0.9648 - val_loss: 0.4032\nEpoch 4/40\n\nEpoch 4: val_acc improved from 0.96481 to 0.97791, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold3.weights.h5\n263/263 - 13s - 48ms/step - acc: nan - loss: nan - val_acc: 0.9779 - val_loss: 0.3234\nEpoch 5/40\n\nEpoch 5: val_acc did not improve from 0.97791\n263/263 - 14s - 52ms/step - acc: nan - loss: nan - val_acc: 0.8565 - val_loss: 0.7576\nEpoch 6/40\n\nEpoch 6: val_acc did not improve from 0.97791\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9304 - val_loss: 0.5860\nEpoch 7/40\n\nEpoch 7: val_acc did not improve from 0.97791\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.8793 - val_loss: 0.7010\nEpoch 8/40\n\nEpoch 8: val_acc did not improve from 0.97791\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9771 - val_loss: 0.3244\nEpoch 9/40\n\nEpoch 9: val_acc did not improve from 0.97791\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9772 - val_loss: 0.3394\nEpoch 10/40\n\nEpoch 10: val_acc did not improve from 0.97791\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9637 - val_loss: 0.2915\nEpoch 11/40\n\nEpoch 11: val_acc improved from 0.97791 to 0.98430, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold3.weights.h5\n263/263 - 12s - 48ms/step - acc: nan - loss: nan - val_acc: 0.9843 - val_loss: 0.2414\nEpoch 12/40\n\nEpoch 12: val_acc improved from 0.98430 to 0.98531, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold3.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9853 - val_loss: 0.2397\nEpoch 13/40\n\nEpoch 13: val_acc did not improve from 0.98531\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9410 - val_loss: 0.4774\nEpoch 14/40\n\nEpoch 14: val_acc did not improve from 0.98531\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9526 - val_loss: 0.4487\nEpoch 15/40\n\nEpoch 15: val_acc did not improve from 0.98531\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.8995 - val_loss: 0.5523\nEpoch 16/40\n\nEpoch 16: val_acc did not improve from 0.98531\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9056 - val_loss: 0.5261\nEpoch 17/40\n\nEpoch 17: val_acc did not improve from 0.98531\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9824 - val_loss: 0.2782\nEpoch 18/40\n\nEpoch 18: val_acc did not improve from 0.98531\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9191 - val_loss: 0.4454\nEpoch 19/40\n\nEpoch 19: val_acc did not improve from 0.98531\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9707 - val_loss: 0.2904\nEpoch 20/40\n\nEpoch 20: val_acc did not improve from 0.98531\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.8845 - val_loss: 0.5459\nEpoch 20: early stopping\nRestoring model weights from the end of the best epoch: 12.\n\n==== Model 16: EFF | Seed 1337, Fold 3/5 ====\n\nEpoch 1/40\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 25 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\n\nEpoch 1: val_acc improved from -inf to 0.10666, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold3.weights.h5\n263/263 - 19s - 71ms/step - acc: nan - loss: nan - val_acc: 0.1067 - val_loss: 9.6610\nEpoch 2/40\n\nEpoch 2: val_acc improved from 0.10666 to 0.65681, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold3.weights.h5\n263/263 - 10s - 37ms/step - acc: nan - loss: nan - val_acc: 0.6568 - val_loss: 1.0138\nEpoch 3/40\n\nEpoch 3: val_acc improved from 0.65681 to 0.93022, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold3.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9302 - val_loss: 0.4222\nEpoch 4/40\n\nEpoch 4: val_acc improved from 0.93022 to 0.93088, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold3.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9309 - val_loss: 0.3549\nEpoch 5/40\n\nEpoch 5: val_acc did not improve from 0.93088\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9208 - val_loss: 0.3936\nEpoch 6/40\n\nEpoch 6: val_acc improved from 0.93088 to 0.93722, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold3.weights.h5\n263/263 - 10s - 37ms/step - acc: nan - loss: nan - val_acc: 0.9372 - val_loss: 0.3201\nEpoch 7/40\n\nEpoch 7: val_acc improved from 0.93722 to 0.94211, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold3.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9421 - val_loss: 0.3282\nEpoch 8/40\n\nEpoch 8: val_acc improved from 0.94211 to 0.95905, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold3.weights.h5\n263/263 - 10s - 37ms/step - acc: nan - loss: nan - val_acc: 0.9591 - val_loss: 0.2901\nEpoch 9/40\n\nEpoch 9: val_acc did not improve from 0.95905\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9380 - val_loss: 0.3346\nEpoch 10/40\n\nEpoch 10: val_acc did not improve from 0.95905\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9588 - val_loss: 0.2891\nEpoch 11/40\n\nEpoch 11: val_acc did not improve from 0.95905\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9484 - val_loss: 0.3085\nEpoch 12/40\n\nEpoch 12: val_acc did not improve from 0.95905\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9482 - val_loss: 0.3064\nEpoch 13/40\n\nEpoch 13: val_acc did not improve from 0.95905\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9361 - val_loss: 0.3923\nEpoch 14/40\n\nEpoch 14: val_acc did not improve from 0.95905\n263/263 - 11s - 41ms/step - acc: nan - loss: nan - val_acc: 0.9216 - val_loss: 0.3965\nEpoch 15/40\n\nEpoch 15: val_acc improved from 0.95905 to 0.96015, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold3.weights.h5\n263/263 - 10s - 37ms/step - acc: nan - loss: nan - val_acc: 0.9602 - val_loss: 0.2697\nEpoch 16/40\n\nEpoch 16: val_acc improved from 0.96015 to 0.96283, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold3.weights.h5\n263/263 - 10s - 37ms/step - acc: nan - loss: nan - val_acc: 0.9628 - val_loss: 0.2643\nEpoch 17/40\n\nEpoch 17: val_acc did not improve from 0.96283\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9589 - val_loss: 0.2801\nEpoch 18/40\n\nEpoch 18: val_acc did not improve from 0.96283\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9537 - val_loss: 0.3134\nEpoch 19/40\n\nEpoch 19: val_acc improved from 0.96283 to 0.96425, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold3.weights.h5\n263/263 - 10s - 37ms/step - acc: nan - loss: nan - val_acc: 0.9642 - val_loss: 0.2581\nEpoch 20/40\n\nEpoch 20: val_acc did not improve from 0.96425\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9506 - val_loss: 0.3074\nEpoch 21/40\n\nEpoch 21: val_acc improved from 0.96425 to 0.96867, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold3.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9687 - val_loss: 0.2347\nEpoch 22/40\n\nEpoch 22: val_acc improved from 0.96867 to 0.96868, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold3.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9687 - val_loss: 0.2436\nEpoch 23/40\n\nEpoch 23: val_acc improved from 0.96868 to 0.97319, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold3.weights.h5\n263/263 - 10s - 37ms/step - acc: nan - loss: nan - val_acc: 0.9732 - val_loss: 0.2486\nEpoch 24/40\n\nEpoch 24: val_acc did not improve from 0.97319\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9623 - val_loss: 0.2490\nEpoch 25/40\n\nEpoch 25: val_acc did not improve from 0.97319\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9629 - val_loss: 0.2797\nEpoch 26/40\n\nEpoch 26: val_acc did not improve from 0.97319\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9587 - val_loss: 0.2856\nEpoch 27/40\n\nEpoch 27: val_acc did not improve from 0.97319\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9659 - val_loss: 0.2737\nEpoch 28/40\n\nEpoch 28: val_acc did not improve from 0.97319\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9659 - val_loss: 0.2751\nEpoch 29/40\n\nEpoch 29: val_acc did not improve from 0.97319\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9455 - val_loss: 0.3412\nEpoch 30/40\n\nEpoch 30: val_acc did not improve from 0.97319\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9544 - val_loss: 0.3137\nEpoch 31/40\n\nEpoch 31: val_acc did not improve from 0.97319\n263/263 - 8s - 31ms/step - acc: nan - loss: nan - val_acc: 0.0992 - val_loss: nan\nEpoch 31: early stopping\nRestoring model weights from the end of the best epoch: 23.\n\n==== Model 17: RESCNN | Seed 1337, Fold 4/5 ====\n\nEpoch 1/40\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 34 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\n\nEpoch 1: val_acc improved from -inf to 0.45525, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold4.weights.h5\n263/263 - 24s - 90ms/step - acc: nan - loss: nan - val_acc: 0.4552 - val_loss: 2.0652\nEpoch 2/40\n\nEpoch 2: val_acc improved from 0.45525 to 0.85485, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold4.weights.h5\n263/263 - 13s - 48ms/step - acc: nan - loss: nan - val_acc: 0.8549 - val_loss: 0.7706\nEpoch 3/40\n\nEpoch 3: val_acc improved from 0.85485 to 0.98145, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold4.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9815 - val_loss: 0.3965\nEpoch 4/40\n\nEpoch 4: val_acc improved from 0.98145 to 0.98705, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold4.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9871 - val_loss: 0.3017\nEpoch 5/40\n\nEpoch 5: val_acc did not improve from 0.98705\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9240 - val_loss: 0.6412\nEpoch 6/40\n\nEpoch 6: val_acc did not improve from 0.98705\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9245 - val_loss: 0.5686\nEpoch 7/40\n\nEpoch 7: val_acc did not improve from 0.98705\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9682 - val_loss: 0.4005\nEpoch 8/40\n\nEpoch 8: val_acc did not improve from 0.98705\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9606 - val_loss: 0.4216\nEpoch 9/40\n\nEpoch 9: val_acc did not improve from 0.98705\n263/263 - 13s - 51ms/step - acc: nan - loss: nan - val_acc: 0.9855 - val_loss: 0.2821\nEpoch 10/40\n\nEpoch 10: val_acc improved from 0.98705 to 0.98729, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold4.weights.h5\n263/263 - 13s - 48ms/step - acc: nan - loss: nan - val_acc: 0.9873 - val_loss: 0.2421\nEpoch 11/40\n\nEpoch 11: val_acc did not improve from 0.98729\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9824 - val_loss: 0.2222\nEpoch 12/40\n\nEpoch 12: val_acc did not improve from 0.98729\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9870 - val_loss: 0.2143\nEpoch 13/40\n\nEpoch 13: val_acc did not improve from 0.98729\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.6010 - val_loss: 1.6471\nEpoch 14/40\n\nEpoch 14: val_acc did not improve from 0.98729\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9417 - val_loss: 0.4627\nEpoch 15/40\n\nEpoch 15: val_acc did not improve from 0.98729\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9840 - val_loss: 0.3069\nEpoch 16/40\n\nEpoch 16: val_acc did not improve from 0.98729\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.8182 - val_loss: 0.7556\nEpoch 17/40\n\nEpoch 17: val_acc did not improve from 0.98729\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9708 - val_loss: 0.3331\nEpoch 18/40\n\nEpoch 18: val_acc did not improve from 0.98729\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9685 - val_loss: 0.3202\nEpoch 18: early stopping\nRestoring model weights from the end of the best epoch: 10.\n\n==== Model 18: EFF | Seed 1337, Fold 4/5 ====\n\nEpoch 1/40\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 25 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\n\nEpoch 1: val_acc improved from -inf to 0.08740, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold4.weights.h5\n263/263 - 18s - 70ms/step - acc: nan - loss: nan - val_acc: 0.0874 - val_loss: 6.8114\nEpoch 2/40\n\nEpoch 2: val_acc improved from 0.08740 to 0.47814, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold4.weights.h5\n263/263 - 10s - 37ms/step - acc: nan - loss: nan - val_acc: 0.4781 - val_loss: 1.4748\nEpoch 3/40\n\nEpoch 3: val_acc improved from 0.47814 to 0.90386, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold4.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9039 - val_loss: 0.4454\nEpoch 4/40\n\nEpoch 4: val_acc improved from 0.90386 to 0.94075, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold4.weights.h5\n263/263 - 10s - 37ms/step - acc: nan - loss: nan - val_acc: 0.9407 - val_loss: 0.3621\nEpoch 5/40\n\nEpoch 5: val_acc improved from 0.94075 to 0.94312, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold4.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9431 - val_loss: 0.3001\nEpoch 6/40\n\nEpoch 6: val_acc did not improve from 0.94312\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.8952 - val_loss: 0.5040\nEpoch 7/40\n\nEpoch 7: val_acc did not improve from 0.94312\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9093 - val_loss: 0.4126\nEpoch 8/40\n\nEpoch 8: val_acc improved from 0.94312 to 0.95330, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold4.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9533 - val_loss: 0.2996\nEpoch 9/40\n\nEpoch 9: val_acc did not improve from 0.95330\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9488 - val_loss: 0.2894\nEpoch 10/40\n\nEpoch 10: val_acc did not improve from 0.95330\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9489 - val_loss: 0.2650\nEpoch 11/40\n\nEpoch 11: val_acc did not improve from 0.95330\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9505 - val_loss: 0.2805\nEpoch 12/40\n\nEpoch 12: val_acc did not improve from 0.95330\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9457 - val_loss: 0.2886\nEpoch 13/40\n\nEpoch 13: val_acc did not improve from 0.95330\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.8995 - val_loss: 0.4596\nEpoch 14/40\n\nEpoch 14: val_acc did not improve from 0.95330\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9256 - val_loss: 0.3873\nEpoch 15/40\n\nEpoch 15: val_acc improved from 0.95330 to 0.96295, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold4.weights.h5\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9629 - val_loss: 0.2843\nEpoch 16/40\n\nEpoch 16: val_acc did not improve from 0.96295\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9575 - val_loss: 0.2915\nEpoch 17/40\n\nEpoch 17: val_acc did not improve from 0.96295\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9432 - val_loss: 0.3188\nEpoch 18/40\n\nEpoch 18: val_acc did not improve from 0.96295\n263/263 - 11s - 41ms/step - acc: nan - loss: nan - val_acc: 0.7364 - val_loss: 0.9576\nEpoch 19/40\n\nEpoch 19: val_acc improved from 0.96295 to 0.96490, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold4.weights.h5\n263/263 - 10s - 37ms/step - acc: nan - loss: nan - val_acc: 0.9649 - val_loss: 0.2822\nEpoch 20/40\n\nEpoch 20: val_acc did not improve from 0.96490\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.8882 - val_loss: 0.4513\nEpoch 21/40\n\nEpoch 21: val_acc did not improve from 0.96490\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9548 - val_loss: 0.3059\nEpoch 22/40\n\nEpoch 22: val_acc did not improve from 0.96490\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9476 - val_loss: 0.3306\nEpoch 23/40\n\nEpoch 23: val_acc did not improve from 0.96490\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9622 - val_loss: 0.2675\nEpoch 24/40\n\nEpoch 24: val_acc did not improve from 0.96490\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9472 - val_loss: 0.3280\nEpoch 25/40\n\nEpoch 25: val_acc did not improve from 0.96490\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9436 - val_loss: 0.3347\nEpoch 26/40\n\nEpoch 26: val_acc did not improve from 0.96490\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9536 - val_loss: 0.3105\nEpoch 27/40\n\nEpoch 27: val_acc did not improve from 0.96490\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9432 - val_loss: 0.3187\nEpoch 27: early stopping\nRestoring model weights from the end of the best epoch: 19.\n\n==== Model 19: RESCNN | Seed 1337, Fold 5/5 ====\n\nEpoch 1/40\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 34 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\n\nEpoch 1: val_acc improved from -inf to 0.56641, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold5.weights.h5\n263/263 - 23s - 89ms/step - acc: nan - loss: nan - val_acc: 0.5664 - val_loss: 1.6430\nEpoch 2/40\n\nEpoch 2: val_acc improved from 0.56641 to 0.80349, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold5.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.8035 - val_loss: 0.9287\nEpoch 3/40\n\nEpoch 3: val_acc improved from 0.80349 to 0.93389, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold5.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9339 - val_loss: 0.5179\nEpoch 4/40\n\nEpoch 4: val_acc improved from 0.93389 to 0.96863, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold5.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9686 - val_loss: 0.3532\nEpoch 5/40\n\nEpoch 5: val_acc did not improve from 0.96863\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.7168 - val_loss: 1.0912\nEpoch 6/40\n\nEpoch 6: val_acc did not improve from 0.96863\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9622 - val_loss: 0.4962\nEpoch 7/40\n\nEpoch 7: val_acc did not improve from 0.96863\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9428 - val_loss: 0.4772\nEpoch 8/40\n\nEpoch 8: val_acc did not improve from 0.96863\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.8935 - val_loss: 0.6191\nEpoch 9/40\n\nEpoch 9: val_acc improved from 0.96863 to 0.96981, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold5.weights.h5\n263/263 - 13s - 48ms/step - acc: nan - loss: nan - val_acc: 0.9698 - val_loss: 0.3598\nEpoch 10/40\n\nEpoch 10: val_acc improved from 0.96981 to 0.97675, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold5.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9767 - val_loss: 0.2623\nEpoch 11/40\n\nEpoch 11: val_acc improved from 0.97675 to 0.97892, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold5.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9789 - val_loss: 0.2559\nEpoch 12/40\n\nEpoch 12: val_acc improved from 0.97892 to 0.98190, saving model to /kaggle/working/mnist_out/best_rescnn_seed1337_fold5.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9819 - val_loss: 0.2519\nEpoch 13/40\n\nEpoch 13: val_acc did not improve from 0.98190\n263/263 - 14s - 53ms/step - acc: nan - loss: nan - val_acc: 0.8451 - val_loss: 0.7098\nEpoch 14/40\n\nEpoch 14: val_acc did not improve from 0.98190\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.8667 - val_loss: 0.6639\nEpoch 15/40\n\nEpoch 15: val_acc did not improve from 0.98190\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.8901 - val_loss: 0.5543\nEpoch 16/40\n\nEpoch 16: val_acc did not improve from 0.98190\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.7867 - val_loss: 0.8432\nEpoch 17/40\n\nEpoch 17: val_acc did not improve from 0.98190\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9608 - val_loss: 0.3891\nEpoch 18/40\n\nEpoch 18: val_acc did not improve from 0.98190\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9691 - val_loss: 0.3147\nEpoch 19/40\n\nEpoch 19: val_acc did not improve from 0.98190\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9345 - val_loss: 0.4483\nEpoch 20/40\n\nEpoch 20: val_acc did not improve from 0.98190\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9571 - val_loss: 0.3533\nEpoch 20: early stopping\nRestoring model weights from the end of the best epoch: 12.\n\n==== Model 20: EFF | Seed 1337, Fold 5/5 ====\n\nEpoch 1/40\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 25 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\n\nEpoch 1: val_acc improved from -inf to 0.09695, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold5.weights.h5\n263/263 - 18s - 70ms/step - acc: nan - loss: nan - val_acc: 0.0970 - val_loss: 11.0140\nEpoch 2/40\n\nEpoch 2: val_acc improved from 0.09695 to 0.50697, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold5.weights.h5\n263/263 - 10s - 37ms/step - acc: nan - loss: nan - val_acc: 0.5070 - val_loss: 1.4504\nEpoch 3/40\n\nEpoch 3: val_acc improved from 0.50697 to 0.87317, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold5.weights.h5\n263/263 - 10s - 37ms/step - acc: nan - loss: nan - val_acc: 0.8732 - val_loss: 0.4941\nEpoch 4/40\n\nEpoch 4: val_acc improved from 0.87317 to 0.88874, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold5.weights.h5\n263/263 - 10s - 37ms/step - acc: nan - loss: nan - val_acc: 0.8887 - val_loss: 0.4602\nEpoch 5/40\n\nEpoch 5: val_acc improved from 0.88874 to 0.90564, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold5.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9056 - val_loss: 0.4203\nEpoch 6/40\n\nEpoch 6: val_acc did not improve from 0.90564\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.8885 - val_loss: 0.4632\nEpoch 7/40\n\nEpoch 7: val_acc improved from 0.90564 to 0.94280, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold5.weights.h5\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9428 - val_loss: 0.3504\nEpoch 8/40\n\nEpoch 8: val_acc did not improve from 0.94280\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9341 - val_loss: 0.3538\nEpoch 9/40\n\nEpoch 9: val_acc did not improve from 0.94280\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9218 - val_loss: 0.3970\nEpoch 10/40\n\nEpoch 10: val_acc did not improve from 0.94280\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9052 - val_loss: 0.3948\nEpoch 11/40\n\nEpoch 11: val_acc did not improve from 0.94280\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9202 - val_loss: 0.3823\nEpoch 12/40\n\nEpoch 12: val_acc did not improve from 0.94280\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9171 - val_loss: 0.3950\nEpoch 13/40\n\nEpoch 13: val_acc did not improve from 0.94280\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9271 - val_loss: 0.3552\nEpoch 14/40\n\nEpoch 14: val_acc did not improve from 0.94280\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9151 - val_loss: 0.4014\nEpoch 15/40\n\nEpoch 15: val_acc improved from 0.94280 to 0.95644, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold5.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9564 - val_loss: 0.2768\nEpoch 16/40\n\nEpoch 16: val_acc did not improve from 0.95644\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.8886 - val_loss: 0.4514\nEpoch 17/40\n\nEpoch 17: val_acc did not improve from 0.95644\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9220 - val_loss: 0.3904\nEpoch 18/40\n\nEpoch 18: val_acc improved from 0.95644 to 0.95804, saving model to /kaggle/working/mnist_out/best_eff_seed1337_fold5.weights.h5\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9580 - val_loss: 0.2723\nEpoch 19/40\n\nEpoch 19: val_acc did not improve from 0.95804\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.8887 - val_loss: 0.4586\nEpoch 20/40\n\nEpoch 20: val_acc did not improve from 0.95804\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9477 - val_loss: 0.2922\nEpoch 21/40\n\nEpoch 21: val_acc did not improve from 0.95804\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9410 - val_loss: 0.3280\nEpoch 22/40\n\nEpoch 22: val_acc did not improve from 0.95804\n263/263 - 11s - 42ms/step - acc: nan - loss: nan - val_acc: 0.9312 - val_loss: 0.3369\nEpoch 23/40\n\nEpoch 23: val_acc did not improve from 0.95804\n263/263 - 10s - 37ms/step - acc: nan - loss: nan - val_acc: 0.9387 - val_loss: 0.3105\nEpoch 24/40\n\nEpoch 24: val_acc did not improve from 0.95804\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9289 - val_loss: 0.3609\nEpoch 25/40\n\nEpoch 25: val_acc did not improve from 0.95804\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9322 - val_loss: 0.3324\nEpoch 26/40\n\nEpoch 26: val_acc did not improve from 0.95804\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9330 - val_loss: 0.3474\nEpoch 26: early stopping\nRestoring model weights from the end of the best epoch: 18.\n\n*************** SEED 2025 ***************\n\n\n==== Model 21: RESCNN | Seed 2025, Fold 1/5 ====\n\nEpoch 1/40\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 34 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\n\nEpoch 1: val_acc improved from -inf to 0.84873, saving model to /kaggle/working/mnist_out/best_rescnn_seed2025_fold1.weights.h5\n263/263 - 25s - 94ms/step - acc: nan - loss: nan - val_acc: 0.8487 - val_loss: 1.0227\nEpoch 2/40\n\nEpoch 2: val_acc improved from 0.84873 to 0.94290, saving model to /kaggle/working/mnist_out/best_rescnn_seed2025_fold1.weights.h5\n263/263 - 13s - 48ms/step - acc: nan - loss: nan - val_acc: 0.9429 - val_loss: 0.5665\nEpoch 3/40\n\nEpoch 3: val_acc improved from 0.94290 to 0.95670, saving model to /kaggle/working/mnist_out/best_rescnn_seed2025_fold1.weights.h5\n263/263 - 13s - 48ms/step - acc: nan - loss: nan - val_acc: 0.9567 - val_loss: 0.4392\nEpoch 4/40\n\nEpoch 4: val_acc improved from 0.95670 to 0.96489, saving model to /kaggle/working/mnist_out/best_rescnn_seed2025_fold1.weights.h5\n263/263 - 13s - 48ms/step - acc: nan - loss: nan - val_acc: 0.9649 - val_loss: 0.3408\nEpoch 5/40\n\nEpoch 5: val_acc did not improve from 0.96489\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.7585 - val_loss: 1.0676\nEpoch 6/40\n\nEpoch 6: val_acc did not improve from 0.96489\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9373 - val_loss: 0.5558\nEpoch 7/40\n\nEpoch 7: val_acc did not improve from 0.96489\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9476 - val_loss: 0.5095\nEpoch 8/40\n\nEpoch 8: val_acc did not improve from 0.96489\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9491 - val_loss: 0.3979\nEpoch 9/40\n\nEpoch 9: val_acc improved from 0.96489 to 0.96800, saving model to /kaggle/working/mnist_out/best_rescnn_seed2025_fold1.weights.h5\n263/263 - 13s - 48ms/step - acc: nan - loss: nan - val_acc: 0.9680 - val_loss: 0.3517\nEpoch 10/40\n\nEpoch 10: val_acc improved from 0.96800 to 0.98346, saving model to /kaggle/working/mnist_out/best_rescnn_seed2025_fold1.weights.h5\n263/263 - 13s - 48ms/step - acc: nan - loss: nan - val_acc: 0.9835 - val_loss: 0.2532\nEpoch 11/40\n\nEpoch 11: val_acc improved from 0.98346 to 0.98685, saving model to /kaggle/working/mnist_out/best_rescnn_seed2025_fold1.weights.h5\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9869 - val_loss: 0.2388\nEpoch 12/40\n\nEpoch 12: val_acc did not improve from 0.98685\n263/263 - 12s - 46ms/step - acc: nan - loss: nan - val_acc: 0.9851 - val_loss: 0.2334\nEpoch 13/40\n\nEpoch 13: val_acc did not improve from 0.98685\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9509 - val_loss: 0.5149\nEpoch 14/40\n\nEpoch 14: val_acc did not improve from 0.98685\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.8630 - val_loss: 0.7085\nEpoch 15/40\n\nEpoch 15: val_acc did not improve from 0.98685\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9498 - val_loss: 0.4118\nEpoch 16/40\n\nEpoch 16: val_acc did not improve from 0.98685\n263/263 - 12s - 47ms/step - acc: nan - loss: nan - val_acc: 0.9737 - val_loss: 0.3532\nEpoch 17/40\n\nEpoch 17: val_acc did not improve from 0.98685\n263/263 - 14s - 53ms/step - acc: nan - loss: nan - val_acc: 0.9607 - val_loss: 0.3504\nEpoch 18/40\n\nEpoch 18: val_acc did not improve from 0.98685\n263/263 - 13s - 48ms/step - acc: nan - loss: nan - val_acc: 0.9011 - val_loss: 0.4958\nEpoch 19/40\n\nEpoch 19: val_acc did not improve from 0.98685\n263/263 - 12s - 48ms/step - acc: nan - loss: nan - val_acc: 0.9531 - val_loss: 0.3564\nEpoch 19: early stopping\nRestoring model weights from the end of the best epoch: 11.\n\n==== Model 22: EFF | Seed 2025, Fold 1/5 ====\n\nEpoch 1/40\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 25 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\nINFO:tensorflow:Collective all_reduce tensors: 1 all_reduces, num_devices = 2, group_size = 2, implementation = CommunicationImplementation.NCCL, num_packs = 1\n\nEpoch 1: val_acc improved from -inf to 0.11111, saving model to /kaggle/working/mnist_out/best_eff_seed2025_fold1.weights.h5\n263/263 - 18s - 70ms/step - acc: nan - loss: nan - val_acc: 0.1111 - val_loss: 5.4202\nEpoch 2/40\n\nEpoch 2: val_acc improved from 0.11111 to 0.76215, saving model to /kaggle/working/mnist_out/best_eff_seed2025_fold1.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.7621 - val_loss: 0.8525\nEpoch 3/40\n\nEpoch 3: val_acc improved from 0.76215 to 0.89365, saving model to /kaggle/working/mnist_out/best_eff_seed2025_fold1.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.8937 - val_loss: 0.4984\nEpoch 4/40\n\nEpoch 4: val_acc improved from 0.89365 to 0.91639, saving model to /kaggle/working/mnist_out/best_eff_seed2025_fold1.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9164 - val_loss: 0.4107\nEpoch 5/40\n\nEpoch 5: val_acc improved from 0.91639 to 0.93688, saving model to /kaggle/working/mnist_out/best_eff_seed2025_fold1.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9369 - val_loss: 0.3470\nEpoch 6/40\n\nEpoch 6: val_acc did not improve from 0.93688\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9313 - val_loss: 0.3430\nEpoch 7/40\n\nEpoch 7: val_acc did not improve from 0.93688\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9326 - val_loss: 0.3434\nEpoch 8/40\n\nEpoch 8: val_acc did not improve from 0.93688\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9292 - val_loss: 0.3463\nEpoch 9/40\n\nEpoch 9: val_acc improved from 0.93688 to 0.94887, saving model to /kaggle/working/mnist_out/best_eff_seed2025_fold1.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9489 - val_loss: 0.2828\nEpoch 10/40\n\nEpoch 10: val_acc improved from 0.94887 to 0.94943, saving model to /kaggle/working/mnist_out/best_eff_seed2025_fold1.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9494 - val_loss: 0.2902\nEpoch 11/40\n\nEpoch 11: val_acc did not improve from 0.94943\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9466 - val_loss: 0.3035\nEpoch 12/40\n\nEpoch 12: val_acc improved from 0.94943 to 0.95063, saving model to /kaggle/working/mnist_out/best_eff_seed2025_fold1.weights.h5\n263/263 - 10s - 37ms/step - acc: nan - loss: nan - val_acc: 0.9506 - val_loss: 0.2948\nEpoch 13/40\n\nEpoch 13: val_acc did not improve from 0.95063\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9397 - val_loss: 0.3211\nEpoch 14/40\n\nEpoch 14: val_acc did not improve from 0.95063\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9050 - val_loss: 0.4134\nEpoch 15/40\n\nEpoch 15: val_acc improved from 0.95063 to 0.96142, saving model to /kaggle/working/mnist_out/best_eff_seed2025_fold1.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9614 - val_loss: 0.2724\nEpoch 16/40\n\nEpoch 16: val_acc did not improve from 0.96142\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9503 - val_loss: 0.3049\nEpoch 17/40\n\nEpoch 17: val_acc improved from 0.96142 to 0.97788, saving model to /kaggle/working/mnist_out/best_eff_seed2025_fold1.weights.h5\n263/263 - 10s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9779 - val_loss: 0.2501\nEpoch 18/40\n\nEpoch 18: val_acc did not improve from 0.97788\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9699 - val_loss: 0.2683\nEpoch 19/40\n\nEpoch 19: val_acc did not improve from 0.97788\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9655 - val_loss: 0.2632\nEpoch 20/40\n\nEpoch 20: val_acc did not improve from 0.97788\n263/263 - 9s - 36ms/step - acc: nan - loss: nan - val_acc: 0.9600 - val_loss: 0.2641\nEpoch 21/40\n\nEpoch 21: val_acc did not improve from 0.97788\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9711 - val_loss: 0.2665\nEpoch 22/40\n\nEpoch 22: val_acc did not improve from 0.97788\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9695 - val_loss: 0.2465\nEpoch 23/40\n\nEpoch 23: val_acc did not improve from 0.97788\n263/263 - 9s - 35ms/step - acc: nan - loss: nan - val_acc: 0.9678 - val_loss: 0.2491\nEpoch 24/40\n\nEpoch 24: val_acc did not improve from 0.97788\n263/263 - 9s - 33ms/step - acc: nan - loss: nan - val_acc: 0.0931 - val_loss: nan\nEpoch 25/40\n\nEpoch 25: val_acc did not improve from 0.97788\n263/263 - 8s - 30ms/step - acc: nan - loss: nan - val_acc: 0.0931 - val_loss: nan\nEpoch 25: early stopping\nRestoring model weights from the end of the best epoch: 17.\n","output_type":"stream"}],"execution_count":null}]}