From e84358cae73c77afafaf6f898c6216cf9f8d30f5 Mon Sep 17 00:00:00 2001 From: Mark Benson <58135975+riverwanderer@users.noreply.github.com> Date: Sat, 13 Jan 2024 14:48:01 +0000 Subject: [PATCH] PDS refresh improved controls with GHK feature (#12898) * Experimental VassalRefreshGHK. * Experimental VassalRefreshGHK; corrected level; was firing only with decks option. * Added doc to Refresh Counters section. * Refresh hotkeys - pre as well as post. Opt-in checkbox. * re-try build * re-try build * re-try build * re-try build * Pre & Post GHK, always try. No control checkbox. * Pre & Post GHK, always try. Doc updated * Resubmit. * Pre and post refresh GHK with control via Refresher panels. Single refresh is opt-in, PDS referesh is opt-out. Deck refresh options are formatted to distinguish them from main options. * Correction to make use hotkeys check work. * Updates to documentation for refresher. * Updates to documentation for refresher. * Make delete no map pieces default (consistent with Refresh Counters). Rationalise option settings. Attempt to close (dispose) options window at the end of processing. * Close (dispose) options window at the end of PDS refresh. Indent & format (deck) sub-options. Make delete no map pieces default (consistent with Refresh Counters). Rationalise option settings & use constants always. Doc spelling & grammar tweaks. * Remove test code that limits number of PDS refreshes. Merge in code cleanup. * Predefined setup can do a sample run (filtered to reduce the number of PDS to be processed). For module development. * Indent deck options in ref manual. * Indent deck options in ref manual. * Make dirty if a PDS refresh happens (ensure a save prompt). Add regex Pattern null proteciton. * Add PDS refresh alert sound option, end of process warnings summary and technical stats. Tidy up the control panels. * Add PDS refresh alert sound option, end of process warnings summary and technical stats. Tidy up the control panels. * Retain deprecate refresh method. * Pass not owned and not visible counts back to PDS Refresh. Display error status in window bar. * Pass not owned and not visible counts back to PDS Refresh. Display error status in window bar. * Amend progress string. * Amend progress string. * PMD * PMD & Type warning corrections * PMD & Type warning corrections * Tidy up logical flow of refresh control panels. Warnings pass. * Tidy up logical flow of refresh control panels. Warnings pass. * Tidy up logical flow of refresh control panels. Warnings pass. Disable (perhaps temporarily) a couple of features. * Remove now redundant separator. Another attempt to set window size. * with cancel option. * debugging cancel prompt. Try make PDS refresh modal. * restrict regex adjustment to trailing element only. Revert to original window (super) modal setting. * Display files in confirmation window. * PMDs * Scrollbar exception. * Scrollbar exception. * Files list. * Restructure messagings around the new confirm prompt. * Give none-found its own window. * Message text adjustments. * Message text adjustments. Modify the PDS dialog dispose - suspect in preventing game load. * Message text adjustments. Remove the PDS dialog dispose - suspect in preventing game load. * Make all options fields disabled during a refresh run. * PMDs * Heading text tweak. * Skip duplicate should proceed suppressing gamestate setup! * Refresh started message should be first. * Now a refresh can be targeted at decks only. The ability to exclude refresh of both pieces and decks will be of more use once Hotkeys feature is added. Piece refresh is still the default. * Now a refresh can be targeted at decks only. The ability to exclude refresh of both pieces and decks will be of more use once Hotkeys feature is added. Piece refresh is still the default. Removed a redundant array (decks) from GameRefresher which was populated during the Pieces refresh. * Refresh log tweaks for consistency. * Split out hotkey options. Implements option for hotkey only runs. Also refresherOptions must now be re-initiatilised between runs (may be a bug in previous versions too). * Doc updates. * Squash unwanted caret. Tweak a screenshot. * Enhanced orphan counter support. Warning / fail end turn summaries by file. * Enhanced orphan counter support. Warning / fail end turn summaries by file. * Document Piece Id replacement feature. * MacOS ignore .DS_Store * Update to date with master. Fix missing VassalPostRefreshGHK. * Update to date with master. Fix missing VassalPostRefreshGHK. * GHK needs some setup that the standard refresh does * Reverse out the pre-refresh GHK as it can't work reliably without re-working core refresh, if at all. Support reporting via GHK, through an option to suppress routine PDS refresh reporting. * Correct update to Refresh PDS screenshot. * Address code review feedback and merge in master updates. Trusting fix to GpidChecker.noGpIdMatch is appropriate and that the related declarations in GameRefresher are also ok (lines 118-124). * Correct a name. * Correct a name. * Maintain cursor in wait state. * Try very hard to maintain cursor in wait state. * More tweaks to Cursors. * Publish the warnings metric (for RefreshPredefinedSetupsDialog) via a public method. * Publish the warnings metric (for RefreshPredefinedSetupsDialog) via a public method. --- .gitignore | 3 + .../main/java/VASSAL/build/GpIdChecker.java | 23 +- .../VASSAL/build/module/GameRefresher.java | 339 ++++++++----- .../VASSAL/build/module/PredefinedSetup.java | 28 +- .../RefreshPredefinedSetupsDialog.java | 475 +++++++++++++++--- .../resources/VASSAL/i18n/Editor.properties | 23 + .../resources/VASSAL/i18n/VASSAL.properties | 23 +- .../ReferenceManual/GameRefresher.adoc | 55 +- .../ReferenceManual/SavedGameUpdater.adoc | 14 +- .../ReferenceManual/images/GameRefresher.png | Bin 25341 -> 105581 bytes .../images/SavedGameUpdater.png | Bin 23622 -> 99317 bytes 11 files changed, 737 insertions(+), 246 deletions(-) diff --git a/.gitignore b/.gitignore index fd978620d0..86ae2fd2bd 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,6 @@ out/ target/ releases/ snapshots/ + +# MacOS +.DS_Store diff --git a/vassal-app/src/main/java/VASSAL/build/GpIdChecker.java b/vassal-app/src/main/java/VASSAL/build/GpIdChecker.java index e0c4fffddf..408ad32d68 100644 --- a/vassal-app/src/main/java/VASSAL/build/GpIdChecker.java +++ b/vassal-app/src/main/java/VASSAL/build/GpIdChecker.java @@ -51,6 +51,7 @@ public class GpIdChecker { protected GpIdSupport gpIdSupport; protected int maxId; + protected int noGpIdMatch = 0; // shared to GameRefresher protected boolean extensionsLoaded = false; final Map goodSlots = new HashMap<>(); final List errorSlots = new ArrayList<>(); @@ -75,6 +76,10 @@ public GpIdChecker(Set options) { } } + public int getNoGpIdMatch() { + return noGpIdMatch; + } + public boolean useLabelerName() { return refresherOptions.contains(GameRefresher.USE_LABELER_NAME); //$NON-NLS-1$ } @@ -87,6 +92,9 @@ public boolean useRotateName() { public boolean useName() { return refresherOptions.contains(GameRefresher.USE_NAME); //$NON-NLS-1$ } + public boolean fixGPID() { + return refresherOptions.contains(GameRefresher.FIX_GPID); //$NON-NLS-1$ + } /** * Add a PieceSlot to our cross-reference and any PlaceMarker @@ -160,7 +168,7 @@ protected void testGpId(String id, SlotElement element) { * If this has been called from a ModuleExtension, the GpId is prefixed with * the Extension Id. Remove the Extension Id and just process the numeric part. * - * NOTE: If GpIdChecker is being used by the GameRefesher, then there may be + * NOTE: If GpIdChecker is being used by the GameRefresher, then there may be * extensions loaded, so retain the extension prefix to ensure a correct * unique slot id check. */ @@ -249,7 +257,8 @@ public GamePiece createUpdatedPiece(GamePiece oldPiece) { } } - // Failed to find a slot by gpid, try by matching piece name if option selected + // Failed to find a slot by gpid, try by matching piece name if option selected; always report in summaries + noGpIdMatch++; if (useName()) { final String oldPieceName = Decorator.getInnermost(oldPiece).getName(); for (final SlotElement element : goodSlots.values()) { @@ -258,11 +267,19 @@ public GamePiece createUpdatedPiece(GamePiece oldPiece) { if (oldPieceName.equals(gpName)) { newPiece = element.createPiece(oldPiece, this); copyState(oldPiece, newPiece); + if (fixGPID()) { + newPiece.setProperty(Properties.PIECE_ID, slotPiece.getProperty(Properties.PIECE_ID)); + } + chat("!" + Resources.getString("GpIdChecker.refreshByName", oldPieceName, gpid, slotPiece.getProperty(Properties.PIECE_ID)) + + (fixGPID() ? " " + Resources.getString("GpIdChecker.fixGPID") + "" : "")); return newPiece; } } + chat(GameRefresher.ERROR_MESSAGE_PREFIX + Resources.getString("GpIdChecker.refreshByNameFail", oldPieceName, gpid == null ? "" : gpid)); + } + else { + chat(GameRefresher.ERROR_MESSAGE_PREFIX + Resources.getString("GpIdChecker.SlotNotFound", Decorator.getInnermost(oldPiece).getName(), gpid == null ? "" : gpid)); } - return oldPiece; } diff --git a/vassal-app/src/main/java/VASSAL/build/module/GameRefresher.java b/vassal-app/src/main/java/VASSAL/build/module/GameRefresher.java index 30f4ac4f97..a8cfe393c2 100644 --- a/vassal-app/src/main/java/VASSAL/build/module/GameRefresher.java +++ b/vassal-app/src/main/java/VASSAL/build/module/GameRefresher.java @@ -47,6 +47,7 @@ import VASSAL.i18n.Resources; import VASSAL.tools.BrowserSupport; import VASSAL.tools.ErrorDialog; +import VASSAL.tools.NamedKeyStroke; import VASSAL.tools.swing.FlowLabel; import VASSAL.tools.swing.SwingUtils; import net.miginfocom.swing.MigLayout; @@ -60,10 +61,9 @@ import javax.swing.JCheckBox; import javax.swing.JDialog; import javax.swing.JPanel; +import javax.swing.JSeparator; import javax.swing.JTextArea; import javax.swing.WindowConstants; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; import java.awt.Point; import java.awt.event.ActionEvent; import java.awt.event.WindowAdapter; @@ -93,24 +93,37 @@ public final class GameRefresher implements CommandEncoder, GameComponent { public static final String COMMAND_PREFIX = "DECKREPOS" + DELIMITER; //$NON-NLS-1$ public static final String USE_NAME = "UseName"; + public static final String FIX_GPID = "fixGPID"; public static final String USE_LABELER_NAME = "UseLabelerName"; public static final String USE_LAYER_NAME = "UseLayerName"; public static final String USE_ROTATE_NAME = "UseRotateName"; public static final String TEST_MODE = "TestMode"; public static final String DELETE_NO_MAP = "DeleteNoMap"; public static final String REFRESH_DECKS = "RefreshDecks"; + public static final String REFRESH_PIECES = "RefreshPieces"; public static final String DELETE_OLD_DECKS = "DeleteOldDecks"; public static final String ADD_NEW_DECKS = "AddNewDecks"; + public static final String USE_HOTKEY = "UseHotkey"; + public static final String SUPPRESS_INFO_REPORTS = "SuppressInfoReports"; private Action refreshAction; private final GpIdSupport gpIdSupport; private GpIdChecker gpIdChecker; - private RefreshDialog dialog; - private int updatedCount; - private int notFoundCount; - private int noStackCount; - private int noMapCount; + private int updatedCount; + private int totalCount; + private int totalDecks; + + private int notFoundCount; // shared to PDS refresher + private int noGpIdMatch; // shared to PDS refresher + private int noStackCount; // shared to PDS refresher - not used!!! + private int noMapCount; // shared to PDS refresher - not used!!! + private int notOwnedCount; // shared to PDS refresher + private int notVisibleCount; // shared to PDS refresher + private int deckWarnings; // shared to PDS refresher + + public static final String ERROR_MESSAGE_PREFIX = "~"; + public static final String SEPARATOR = "----------"; private final GameModule theModule; private final Set options = new HashSet<>(); @@ -127,6 +140,11 @@ public GameRefresher(GpIdSupport gpIdSupport) { theModule = GameModule.getGameModule(); } + public int warnings() { + // Make count of all data warnings available to PreDefinedSetup too + return notFoundCount + noStackCount + noMapCount + notOwnedCount + notVisibleCount + noGpIdMatch + deckWarnings; + } + @Override public String encode(final Command c) { return null; @@ -164,21 +182,19 @@ public Action getRefreshAction() { } public boolean isTestMode() { - return options.contains("TestMode"); //$NON-NLS-1$ + return options.contains(TEST_MODE); //$NON-NLS-1$ } public boolean isDeleteNoMap() { - return options.contains("DeleteNoMap"); //$NON-NLS-1$ + return options.contains(DELETE_NO_MAP); //$NON-NLS-1$ } public void start() { - dialog = new RefreshDialog(this); + final RefreshDialog dialog = new RefreshDialog(this); dialog.setVisible(true); - dialog = null; } public void log(String message) { - // ex for dialog msg dialog.addMessage(Resources.getString("GameRefresher.counters_refreshed_test", updatedCount)); // Log to chatter GameModule.getGameModule().warn(message); logger.info(message); @@ -193,14 +209,11 @@ public void log(String message) { * - Mat with contained Cargo * - Single non-Mat unstacked piece * - * @return + * @return refreshables List of refreshable items */ public List getRefreshables() { final List refreshables = new ArrayList<>(); final List loadedMats = new ArrayList<>(); - int totalCount = 0; - int notOwnedCount = 0; - int notVisibleCount = 0; // Process map by map for (final Map map : Map.getMapList()) { @@ -213,6 +226,7 @@ public List getRefreshables() { final Deck deck = (Deck) piece; totalCount += deck.getPieceCount(); refreshables.add(new DeckRefresher(deck)); + totalDecks++; } // A standard Stack @@ -232,14 +246,14 @@ else if (piece instanceof Stack) { } } } - if (((Stack) piece).getMap() != null) { + if (piece.getMap() != null) { refreshables.add(new StackRefresher((Stack) piece)); } } // An Unstacked piece else { - final GamePiece p = (GamePiece) piece; + final GamePiece p = piece; // Only visible, unobscured pieces are refreshable if (!Boolean.TRUE.equals(piece.getProperty(Properties.INVISIBLE_TO_ME)) @@ -269,21 +283,13 @@ else if (piece instanceof Stack) { } } - // If there are any loaded Mats, then find the Stacks of their cargo in the general Refeshables list, + // If there are any loaded Mats, then find the Stacks of their cargo in the general Refreshables list, // remove them and add them to the MatRefresher. for (final MatRefresher mr : loadedMats) { mr.grabMyCargo(refreshables); } - } - log(Resources.getString("GameRefresher.get_all_pieces")); - log(Resources.getString("GameRefresher.counters_total", totalCount)); - log(Resources.getString("GameRefresher.counters_kept", totalCount - notOwnedCount - notVisibleCount)); - log(Resources.getString("GameRefresher.counters_not_owned", notOwnedCount)); - log(Resources.getString("GameRefresher.counters_not_visible", notVisibleCount)); - log("-"); //$NON-NLS-1$ - return refreshables; } @@ -302,7 +308,8 @@ private boolean isGameActive() { * @throws IllegalBuildException - if we get a gpIdChecker error */ public void execute(Set options, Command command) throws IllegalBuildException { - final List decks = new ArrayList<>(); + + // removed as not use - final List decks = new ArrayList<>(); if (command == null) { command = new NullCommand(); @@ -310,10 +317,14 @@ public void execute(Set options, Command command) throws IllegalBuildExc if (!options.isEmpty()) { this.options.addAll(options); } + + totalCount = 0; + totalDecks = 0; notFoundCount = 0; updatedCount = 0; noMapCount = 0; noStackCount = 0; + /* * 1. Use the GpIdChecker to build a cross-reference of all available * PieceSlots and PlaceMarker's in the module. @@ -331,7 +342,7 @@ public void execute(Set options, Command command) throws IllegalBuildExc if (gpIdChecker.hasErrors()) { // Any gpid errors should have been resolved by the GpId check when the editor is run. - // If a module created before gpIDChecker was setup is run on a vassal version with gmIDChecker + // If a module created before gpIDChecker was set up is run on a vassal version with gmIDChecker // is run in the player, errors might still be present. // Inform user that he must upgrade the module to the latest vassal version before running Refresh gpIdChecker = null; @@ -340,43 +351,54 @@ public void execute(Set options, Command command) throws IllegalBuildExc } } - /* - * 2. Build a list in visual order of all stacks, decks, mats and other pieces that need refreshing - */ + /* + * 2. Build a list in visual order of all stacks, decks, mats and other pieces that need refreshing + */ final List refreshables = getRefreshables(); - /* - * And refresh them. Keep a list of the Decks in case we need to update their attributes - */ + /* + * And refresh them. Even if Refresh Pieces is off, still scan to make a list of the Decks in case we need to update their attributes + */ + if (!options.contains(SUPPRESS_INFO_REPORTS)) log(Resources.getString("GameRefresher.run_refresh_counters_v4")); + + if (!options.contains(SUPPRESS_INFO_REPORTS)) log(Resources.getString("GameRefresher.counters_kept", totalCount - notOwnedCount - notVisibleCount)); + + if (notOwnedCount > 0) + log(ERROR_MESSAGE_PREFIX + Resources.getString("GameRefresher.counters_not_owned", notOwnedCount)); + if (notVisibleCount > 0) + log(ERROR_MESSAGE_PREFIX + Resources.getString("GameRefresher.counters_not_visible", notVisibleCount)); + indexAllAttachments(); - for (final Refresher refresher : refreshables) { + + for (final Refresher refresher : refreshables) refresher.refresh(command); - if (refresher instanceof DeckRefresher) { - decks.add(((DeckRefresher) refresher).getDeck()); - } - } - refreshAllAttachments(command); - log(Resources.getString("GameRefresher.run_refresh_counters_v3", theModule.getGameVersion())); - log(Resources.getString("GameRefresher.counters_refreshed", updatedCount)); - log(Resources.getString("GameRefresher.counters_not_found", notFoundCount)); - log(Resources.getString("GameRefresher.counters_no_map", noMapCount)); - log("----------"); //$NON-NLS-1$ - log(Resources.getString("GameRefresher.counters_no_stack", noStackCount)); - log("----------"); //$NON-NLS-1$ + /* removed as decks array is not used - to implement this code needs to be restored within for loop and pieces / decks refresh conditions interleaved + if (refresher instanceof DeckRefresher && options.contains(REFRESH_DECKS)) { + decks.add(((DeckRefresher) refresher).getDeck()); + }*/ + + refreshAllAttachments(command); + if (!options.contains(SUPPRESS_INFO_REPORTS)) log(Resources.getString("GameRefresher.counters_refreshed", updatedCount)); + if (notFoundCount > 0) + log(ERROR_MESSAGE_PREFIX + Resources.getString("GameRefresher.counters_not_found", notFoundCount)); + if (noMapCount > 0) + log(ERROR_MESSAGE_PREFIX + Resources.getString("GameRefresher.counters_no_map", noMapCount)); + if (noStackCount > 0) + log(ERROR_MESSAGE_PREFIX + Resources.getString("GameRefresher.counters_no_stack", noStackCount)); /* - * 4/ Refresh properties of decks in the game + * 3. Refresh properties of decks in the game */ - if (options.contains("RefreshDecks")) { //NON-NLS + if (options.contains(REFRESH_DECKS)) { //NON-NLS if (isGameActive()) { - // If somebody feels like packaging all these things into Commands, help yourself... - log(Resources.getString("GameRefresher.deck_refresh_during_multiplayer")); + // FIXME: If somebody feels like packaging all these things into Commands, help yourself... + log(ERROR_MESSAGE_PREFIX + Resources.getString("GameRefresher.deck_refresh_during_multiplayer")); } else { - //Drawpiles have the module definition of the Deck in the dummy child object + //Draw piles have the module definition of the Deck in the dummy child object // and a link to the actual Deck in the game. final List decksToDelete = new ArrayList<>(); final List drawPiles = getModuleDrawPiles(); @@ -387,9 +409,11 @@ public void execute(Set options, Command command) throws IllegalBuildExc int deletable = 0; int addable = 0; - log("----------"); - log(Resources.getString("GameRefresher.refreshing_decks")); - log("----------"); + if (!options.contains(SUPPRESS_INFO_REPORTS)) { + log(Resources.getString("GameRefresher.refreshing_decks")); + log(Resources.getString("GameRefresher.decks", totalDecks)); + } + for (final Map map : Map.getMapList()) { for (final GamePiece pieceOrStack : map.getPieces()) { if (pieceOrStack instanceof Deck) { @@ -417,7 +441,9 @@ public void execute(Set options, Command command) throws IllegalBuildExc foundDrawPiles.add(drawPile); final String drawPileName = drawPile.getAttributeValueString(SetupStack.NAME); - log(Resources.getString("GameRefresher.refreshing_deck", deckName, drawPileName)); + + if (!options.contains(SUPPRESS_INFO_REPORTS)) + log(Resources.getString("GameRefresher.refreshing_deck", deckName, drawPileName)); // This refreshes the existing deck with all the up-to-date drawPile fields from the module deck.removeListeners(); @@ -449,10 +475,11 @@ public void execute(Set options, Command command) throws IllegalBuildExc } } - if (options.contains("DeleteOldDecks")) { //NON-NLS + if (options.contains(DELETE_OLD_DECKS)) { //NON-NLS //log("List of Decks to remove"); for (final Deck deck : decksToDelete) { - log(Resources.getString("GameRefresher.deleting_old_deck", deck.getDeckName())); + if (!options.contains(SUPPRESS_INFO_REPORTS)) + log(Resources.getString("GameRefresher.deleting_old_deck", deck.getDeckName())); final Stack newStack = new Stack(); newStack.setMap(deck.getMap()); @@ -479,7 +506,7 @@ public void execute(Set options, Command command) throws IllegalBuildExc } } else if (!decksToDelete.isEmpty()) { - log(Resources.getString("GameRefresher.deletable_with_option")); + log(ERROR_MESSAGE_PREFIX + Resources.getString("GameRefresher.deletable_with_option")); for (final Deck deck : decksToDelete) { log(deck.getDeckName()); } @@ -508,9 +535,10 @@ else if (!decksToDelete.isEmpty()) { } if (!decksToAdd.isEmpty()) { - if (options.contains("AddNewDecks")) { //NON-NLS + if (options.contains(ADD_NEW_DECKS)) { //NON-NLS for (final DrawPile drawPile : decksToAdd) { - log(Resources.getString("GameRefresher.adding_new_deck", drawPile.getAttributeValueString(SetupStack.NAME))); + if (!options.contains(SUPPRESS_INFO_REPORTS)) + log(Resources.getString("GameRefresher.adding_new_deck", drawPile.getAttributeValueString(SetupStack.NAME))); final Deck newDeck = drawPile.makeDeck(); final Map newMap = drawPile.getMap(); @@ -525,24 +553,67 @@ else if (!decksToDelete.isEmpty()) { } } else { - log(Resources.getString("GameRefresher.addable_with_option")); + log(ERROR_MESSAGE_PREFIX + Resources.getString("GameRefresher.addable_with_option")); for (final DrawPile drawPile : decksToAdd) { log(drawPile.getAttributeValueString(SetupStack.NAME)); } } } - log("----------"); //$NON-NLS-1$ - log(Resources.getString("GameRefresher.refreshable_decks", refreshable)); - log(Resources.getString(options.contains("DeleteOldDecks") ? "GameRefresher.deletable_decks" : "GameRefresher.deletable_decks_2", deletable)); //NON-NLS - log(Resources.getString(options.contains("AddNewDecks") ? "GameRefresher.addable_decks" : "GameRefresher.addable_decks_2", addable)); //NON-NLS + // Deck reporting - anomalies & deck removes/adds are always reported + if (!options.contains(SUPPRESS_INFO_REPORTS)) + log(Resources.getString("GameRefresher.refreshable_decks", refreshable)); + + if (options.contains(DELETE_OLD_DECKS)) { + // Expecting at least 1 deletable deck and let's know how many + if (deletable == 0) { + deckWarnings++; + log(ERROR_MESSAGE_PREFIX + Resources.getString("GameRefresher.deletable_decks", 0)); + } + else log(Resources.getString("GameRefresher.deletable_decks", deletable)); + } + else { + // Expecting no deletable decks, no need to report if none found + if (deletable > 0) { + deckWarnings++; + log(ERROR_MESSAGE_PREFIX + Resources.getString("GameRefresher.deletable_decks", deletable)); + } + } + + if (options.contains(ADD_NEW_DECKS)) { + // Expecting at least 1 addable deck and let's know how many + if (addable == 0) { + deckWarnings++; + log(ERROR_MESSAGE_PREFIX + Resources.getString("GameRefresher.addable_decks", 0)); + } + else log(Resources.getString("GameRefresher.addable_decks", addable)); + } + else { + // Expecting no addable decks, no need to report if none found + if (addable > 0) { + deckWarnings++; + log(ERROR_MESSAGE_PREFIX + Resources.getString("GameRefresher.addable_decks", addable)); + } + } } } + + /* + * 5. Exit after second (final) GHK, if selected + */ + if (options.contains(USE_HOTKEY)) { //NON-NLS + // Custom finish + if (!options.contains(SUPPRESS_INFO_REPORTS)) log(Resources.getString("GameRefresher.fire_GHK", "VassalPostRefreshGHK")); + GameModule.getGameModule().fireKeyStroke(NamedKeyStroke.of("VassalPostRefreshGHK")); + } + + noGpIdMatch = gpIdChecker.getNoGpIdMatch(); // So that GpId failures accumulator can be passed back to PreDefined Setup refresher + } /** - * Before refreshing, we need to go through every piece and commemorate all the Attachment trait relationships, since they contain direct references to other GamePieces, and all of the references are + * Before refreshing, we need to go through every piece and commemorate all the Attachment trait relationships, since they contain direct references to other GamePieces, and all the references are * about to be jumbled/invalidated when new updated versions of pieces are created. * * attachmentIndex maps the old attachments (using a reference hash of the outermost piece's Unique ID plus the notionally unique Attachment Name) to the list of attachments (which are the actual old gamepieces) @@ -619,8 +690,8 @@ public void refreshAllAttachments(Command command) { * For each *new* outermost piece that has Attachments, we look up the *old* outermost piece, and use its Unique ID plus each Attachment trait's name as a lookup hash * to find the old list of contents. Then since the old list of contents is references to old versions of pieces, we use the "updatedPieces" index * to look up the new pieces and create a new set of contents for the trait. - * @param piece - * @param command + * @param piece Piece to be checked and processed + * @param command Command under construction */ public void refreshAttachment(GamePiece piece, Command command) { while (piece instanceof Decorator) { @@ -669,7 +740,9 @@ static class RefreshDialog extends JDialog { private static final long serialVersionUID = 1L; private final GameRefresher refresher; private JTextArea results; + private JCheckBox refreshPieces; private JCheckBox nameCheck; + private JCheckBox fixGPID; private JCheckBox testModeOn; private JCheckBox labelerNameCheck; private JCheckBox layerNameCheck; @@ -678,6 +751,7 @@ static class RefreshDialog extends JDialog { private JCheckBox refreshDecks; private JCheckBox deleteOldDecks; private JCheckBox addNewDecks; + private JCheckBox fireHotkey; private final Set options = new HashSet<>(); JButton runButton; @@ -699,15 +773,18 @@ public void windowClosing(WindowEvent we) { }); setLayout(new MigLayout("wrap 1", "[fill]")); //NON-NLS - final JPanel panel = new JPanel(new MigLayout("hidemode 3,wrap 1" + "," + ConfigurerLayout.STANDARD_GAPY, "[fill]")); // NON-NLS panel.setBorder(BorderFactory.createEtchedBorder()); final FlowLabel header = new FlowLabel(Resources.getString("GameRefresher.header")); + header.setFocusable(false); panel.add(header); - final JPanel buttonPanel = new JPanel(new MigLayout("ins 0", "push[]rel[]rel[]push")); // NON-NLS + // FIXME: The separator disappears if the window is resized. + final JSeparator sep = new JSeparator(JSeparator.HORIZONTAL); + panel.add(sep); + final JPanel buttonPanel = new JPanel(new MigLayout("ins 0", "push[]rel[]rel[]push")); // NON-NLS runButton = new JButton(Resources.getString("General.run")); runButton.addActionListener(e -> run()); @@ -725,38 +802,49 @@ public void windowClosing(WindowEvent we) { buttonPanel.add(exitButton, "tag cancel,sg 1"); // NON-NLS buttonPanel.add(helpButton, "tag help,sg 1"); // NON-NLS + refreshPieces = new JCheckBox(Resources.getString("GameRefresher.refresh_pieces"), true); + refreshPieces.setEnabled(false); // this is the standard default - locked as part of ensuring that at least one main option is on + panel.add(refreshPieces); + nameCheck = new JCheckBox(Resources.getString("GameRefresher.use_basic_name")); - panel.add(nameCheck); + panel.add(nameCheck, "gapx 10"); + + nameCheck.addChangeListener(e -> fixGPID.setVisible(nameCheck.isSelected())); + + fixGPID = new JCheckBox(Resources.getString("GameRefresher.fix_gpid")); + panel.add(fixGPID, "gapx 20"); + labelerNameCheck = new JCheckBox(Resources.getString("GameRefresher.use_labeler_descr"), true); - panel.add(labelerNameCheck); + panel.add(labelerNameCheck, "gapx 10"); layerNameCheck = new JCheckBox(Resources.getString("GameRefresher.use_layer_descr"), true); - panel.add(layerNameCheck); + panel.add(layerNameCheck, "gapx 10"); rotateNameCheck = new JCheckBox(Resources.getString("GameRefresher.use_rotate_descr"), true); - panel.add(rotateNameCheck); - testModeOn = new JCheckBox(Resources.getString("GameRefresher.test_mode")); - panel.add(testModeOn); - deletePieceNoMap = new JCheckBox(Resources.getString("GameRefresher.delete_piece_no_map")); - deletePieceNoMap.setSelected(true); - panel.add(deletePieceNoMap); - - refreshDecks = new JCheckBox(Resources.getString("GameRefresher.refresh_decks")); - refreshDecks.setSelected(false); - refreshDecks.addChangeListener(new ChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - deleteOldDecks.setVisible(refreshDecks.isSelected()); - addNewDecks.setVisible(refreshDecks.isSelected()); - } + panel.add(rotateNameCheck, "gapx 10"); + + deletePieceNoMap = new JCheckBox(Resources.getString("GameRefresher.delete_piece_no_map", "gapx 10"), true); + // Disabling user selection - due to issue https://github.com/vassalengine/vassal/issues/12902 + // panel.add(deletePieceNoMap); + + refreshDecks = new JCheckBox(Resources.getString("GameRefresher.refresh_decks"), false); + refreshDecks.addChangeListener(e -> { + deleteOldDecks.setVisible(refreshDecks.isSelected()); + addNewDecks.setVisible(refreshDecks.isSelected()); }); panel.add(refreshDecks); - deleteOldDecks = new JCheckBox(Resources.getString("GameRefresher.delete_old_decks")); - deleteOldDecks.setSelected(false); - panel.add(deleteOldDecks); + deleteOldDecks = new JCheckBox(Resources.getString("GameRefresher.delete_old_decks"), false); + panel.add(deleteOldDecks, "gapx 10"); - addNewDecks = new JCheckBox(Resources.getString("GameRefresher.add_new_decks")); - addNewDecks.setSelected(false); - panel.add(addNewDecks); + addNewDecks = new JCheckBox(Resources.getString("GameRefresher.add_new_decks"), false); + panel.add(addNewDecks, "gapx 10"); + + // Hotkeys setting is OFF by default to minimise risk of accidental use + fireHotkey = new JCheckBox(Resources.getString("GameRefresher.fire_global_hotkey"), false); + panel.add(fireHotkey); + + testModeOn = new JCheckBox(Resources.getString("GameRefresher.test_mode"), false); + // Disabling user selection - due to issue https://github.com/vassalengine/vassal/issues/12695 + // panel.add(testModeOn); if (refresher.isGameActive()) { refreshDecks.setSelected(false); @@ -774,29 +862,37 @@ public void stateChanged(ChangeEvent e) { SwingUtils.repack(this); + fixGPID.setVisible(nameCheck.isSelected()); + deleteOldDecks.setVisible(refreshDecks.isSelected()); addNewDecks.setVisible(refreshDecks.isSelected()); } protected void setOptions() { options.clear(); - if (nameCheck.isSelected()) { - options.add(USE_NAME); //$NON-NLS-1$ - } - if (labelerNameCheck.isSelected()) { - options.add(USE_LABELER_NAME); //$NON-NLS-1$ - } - if (layerNameCheck.isSelected()) { - options.add(USE_LAYER_NAME); //$NON-NLS-1$ - } - if (rotateNameCheck.isSelected()) { - options.add(GameRefresher.USE_ROTATE_NAME); //$NON-NLS-1$ - } - if (testModeOn.isSelected()) { - options.add(TEST_MODE); //$NON-NLS-1$ - } - if (deletePieceNoMap.isSelected()) { - options.add(DELETE_NO_MAP); //$NON-NLS-1$ + if (refreshPieces.isSelected()) { + options.add(REFRESH_PIECES); //$NON-NLS-1$ + if (nameCheck.isSelected()) { + options.add(USE_NAME); //$NON-NLS-1$ + if (fixGPID.isSelected()) { + options.add(FIX_GPID); //$NON-NLS-1$ + } + } + if (labelerNameCheck.isSelected()) { + options.add(USE_LABELER_NAME); //$NON-NLS-1$ + } + if (layerNameCheck.isSelected()) { + options.add(USE_LAYER_NAME); //$NON-NLS-1$ + } + if (rotateNameCheck.isSelected()) { + options.add(USE_ROTATE_NAME); //$NON-NLS-1$ + } + if (testModeOn.isSelected()) { + options.add(TEST_MODE); //$NON-NLS-1$ + } + if (deletePieceNoMap.isSelected()) { + options.add(DELETE_NO_MAP); //$NON-NLS-1$ + } } if (refreshDecks.isSelected()) { options.add(REFRESH_DECKS); //NON-NLS @@ -807,6 +903,9 @@ protected void setOptions() { options.add(ADD_NEW_DECKS); //NON-NLS } } + if (fireHotkey.isSelected()) { + options.add(USE_HOTKEY); //$NON-NLS-1$ + } } protected void exit() { @@ -840,7 +939,7 @@ protected void run() { // Send the update to other clients (only done in Player mode) g.sendAndLog(command); - if (options.contains("RefreshDecks") && !refresher.isGameActive()) { + if (options.contains(REFRESH_DECKS) && !refresher.isGameActive()) { final BasicLogger log = GameModule.getGameModule().getBasicLogger(); if (log != null) { log.blockUndo(1); @@ -926,7 +1025,7 @@ public List getRefreshedPieces() { * 2. Refresh the Mat * 3. Refresh each Cargo and place back on the Mat * - * @param command + * @param command Command under construction */ @Override public void refresh(Command command) { @@ -1023,7 +1122,7 @@ public void refresh(Command command) { GamePiece newPiece = gpIdChecker.createUpdatedPiece(piece); if (newPiece == null) { notFoundCount++; - log(Resources.getString("GameRefresher.refresh_error_nomatch_pieceslot", piece.getName(), piece.getId())); + log(ERROR_MESSAGE_PREFIX + Resources.getString("GameRefresher.refresh_error_nomatch_pieceslot", piece.getName(), piece.getId())); // Could not create a new piece for some reason, use the old piece newPiece = piece; } @@ -1090,7 +1189,7 @@ public void refresh(Command command) { // Create a new, updated piece if (gpIdChecker.createUpdatedPiece(piece) == null) { notFoundCount++; - log(Resources.getString("GameRefresher.refresh_error_nomatch_pieceslot", piece.getName(), piece.getId())); + log(ERROR_MESSAGE_PREFIX + Resources.getString("GameRefresher.refresh_error_nomatch_pieceslot", piece.getName(), piece.getId())); } else { updatedCount++; @@ -1118,7 +1217,7 @@ public void refresh(Command command) { newPiece = gpIdChecker.createUpdatedPiece(piece); if (newPiece == null) { notFoundCount++; - log(Resources.getString("GameRefresher.refresh_error_nomatch_pieceslot", piece.getName(), piece.getId())); + log(ERROR_MESSAGE_PREFIX + Resources.getString("GameRefresher.refresh_error_nomatch_pieceslot", piece.getName(), piece.getId())); // Could not create a new piece for some reason, use the old piece newPiece = piece; } @@ -1197,7 +1296,7 @@ public void refresh(Command command) { // Create a new, updated piece if (gpIdChecker.createUpdatedPiece(piece) == null) { notFoundCount++; - log(Resources.getString("GameRefresher.refresh_error_nomatch_pieceslot", piece.getName(), piece.getId())); + log(ERROR_MESSAGE_PREFIX + Resources.getString("GameRefresher.refresh_error_nomatch_pieceslot", piece.getName(), piece.getId())); } else { updatedCount++; @@ -1218,7 +1317,7 @@ public void refresh(Command command) { refreshedPiece = gpIdChecker.createUpdatedPiece(piece); if (refreshedPiece == null) { notFoundCount++; - log(Resources.getString("GameRefresher.refresh_error_nomatch_pieceslot", piece.getName(), piece.getId())); + log(ERROR_MESSAGE_PREFIX + Resources.getString("GameRefresher.refresh_error_nomatch_pieceslot", piece.getName(), piece.getId())); // Could not create a new piece for some reason, use the old piece refreshedPiece = piece; } diff --git a/vassal-app/src/main/java/VASSAL/build/module/PredefinedSetup.java b/vassal-app/src/main/java/VASSAL/build/module/PredefinedSetup.java index 9129529d48..ddaae04bbf 100644 --- a/vassal-app/src/main/java/VASSAL/build/module/PredefinedSetup.java +++ b/vassal-app/src/main/java/VASSAL/build/module/PredefinedSetup.java @@ -38,6 +38,7 @@ import javax.swing.AbstractAction; import javax.swing.Action; +import java.awt.Cursor; import java.awt.event.ActionEvent; import java.io.File; import java.io.IOException; @@ -90,16 +91,6 @@ public void actionPerformed(ActionEvent e) { showUseFile = () -> !isMenu; } - /* protected void setRefresherOptions() { - if (nameCheck.isSelected()) { - refresherOptions.add("useName"); - } - if (labelerNameCheck.isSelected()) { - refresherOptions.add("useLabelerName"); - } - }*/ - - @Override public String[] getAttributeDescriptions() { return new String[]{ @@ -289,8 +280,14 @@ public static String getConfigureTypeName() { return Resources.getString("Editor.PredefinedSetup.component_type"); //$NON-NLS-1$ } + @Deprecated(since = "2023-11-10", forRemoval = true) public void refresh(Set options) throws IOException, IllegalBuildException { + refreshWithStatus(options); + } + + public int refreshWithStatus(Set options) throws IOException, IllegalBuildException { if (!options.isEmpty()) { + this.refresherOptions.clear(); this.refresherOptions.addAll(options); } final GameModule mod = GameModule.getGameModule(); @@ -298,12 +295,13 @@ public void refresh(Set options) throws IOException, IllegalBuildExcepti final GameRefresher gameRefresher = new GameRefresher(mod); // since we're going to block the GUI, let's give some feedback - gameRefresher.log("----------"); //$NON-NLS-1$ - gameRefresher.log("Updating Predefined Setup: " + this.getAttributeValueString(this.NAME) + " ( " + fileName + ")"); //$NON-NLS-1$S + gameRefresher.log(GameRefresher.SEPARATOR); //$NON-NLS-1$ + gameRefresher.log("Updating Predefined Setup: " + this.getAttributeValueString(NAME) + " (" + fileName + ")"); //$NON-NLS-1$S // get a stream to the saved game in the module file gs.setupRefresh(); gs.loadGameInForeground(fileName, getSavedGameContents()); + mod.getPlayerWindow().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); // call the gameRefresher gameRefresher.execute(refresherOptions, null); @@ -319,8 +317,12 @@ public void refresh(Set options) throws IOException, IllegalBuildExcepti aw.removeFile(fileName); aw.addFile(tmpZip.getFile().getPath(), fileName); gs.closeGame(); - } + mod.getPlayerWindow().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); + + // return number of refresh anomaly warnings reported + return gameRefresher.warnings(); + } @Override public HelpFile getHelpFile() { diff --git a/vassal-app/src/main/java/VASSAL/configure/RefreshPredefinedSetupsDialog.java b/vassal-app/src/main/java/VASSAL/configure/RefreshPredefinedSetupsDialog.java index c7928f0dda..80206b683e 100644 --- a/vassal-app/src/main/java/VASSAL/configure/RefreshPredefinedSetupsDialog.java +++ b/vassal-app/src/main/java/VASSAL/configure/RefreshPredefinedSetupsDialog.java @@ -20,10 +20,12 @@ import VASSAL.build.GameModule; import VASSAL.build.module.Documentation; import VASSAL.build.module.GameRefresher; +import VASSAL.build.module.GameState; import VASSAL.build.module.ModuleExtension; import VASSAL.build.module.PredefinedSetup; import VASSAL.build.module.documentation.HelpFile; import VASSAL.i18n.Resources; +import VASSAL.preferences.Prefs; import VASSAL.tools.DataArchive; import VASSAL.tools.ErrorDialog; import VASSAL.tools.swing.FlowLabel; @@ -36,24 +38,43 @@ import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JDialog; +import javax.swing.JLabel; +import javax.swing.JOptionPane; import javax.swing.JPanel; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; +import javax.swing.JScrollPane; +import javax.swing.JSeparator; +import javax.swing.JTextArea; +import javax.swing.JTextField; +import javax.swing.ScrollPaneConstants; +import java.awt.Component; +import java.awt.Container; +import java.awt.Cursor; import java.awt.Frame; import java.awt.HeadlessException; import java.io.File; import java.io.IOException; import java.net.MalformedURLException; +import java.time.Duration; +import java.time.Instant; +import java.time.LocalTime; import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.regex.Pattern; +import java.util.regex.PatternSyntaxException; + +import static java.time.format.DateTimeFormatter.ofPattern; +import static java.util.regex.Pattern.CASE_INSENSITIVE; public class RefreshPredefinedSetupsDialog extends JDialog { private static final Logger logger = LoggerFactory.getLogger(RefreshPredefinedSetupsDialog.class); private static final long serialVersionUID = 1L; - private JButton refreshButton; + private JCheckBox refreshPieces; private JCheckBox nameCheck; + private JCheckBox fixGPID; private JCheckBox labelerNameCheck; private JCheckBox layerNameCheck; private JCheckBox rotateNameCheck; @@ -62,35 +83,54 @@ public class RefreshPredefinedSetupsDialog extends JDialog { private JCheckBox refreshDecks; private JCheckBox deleteOldDecks; private JCheckBox addNewDecks; + private JTextField pdsFilterBox; + private String pdsFilter; + private JCheckBox reportOff; + private JCheckBox alertOn; + private boolean optionsUserMode; + private static final int FILE_NAME_REPORT_LENGTH = 24; + private JCheckBox fireHotkey; + private final Set options = new HashSet<>(); public RefreshPredefinedSetupsDialog(Frame owner) throws HeadlessException { super(owner, false); setTitle(Resources.getString("Editor.RefreshPredefinedSetupsDialog.title")); + setModal(true); initComponents(); } private void initComponents() { - setLayout(new MigLayout("", "[fill]")); // NON-NLS + optionsUserMode = true; // protects against change conflicts whilst vassal controls panel settings that are subject to stateChanged event handling - final JPanel panel = new JPanel(new MigLayout("hidemode 3,wrap 1" + "," + ConfigurerLayout.STANDARD_GAPY, "[fill]")); // NON-NLS + setLayout(new MigLayout("wrap 1", "[fill]")); // NON-NLS + + final JPanel panel = new JPanel(new MigLayout("hidemode 3,wrap 1," + ConfigurerLayout.STANDARD_GAPY, "[fill]")); // NON-NLS panel.setBorder(BorderFactory.createEtchedBorder()); final FlowLabel header = new FlowLabel(Resources.getString("GameRefresher.predefined_header")); + header.setFocusable(false); panel.add(header); + // FIXME: The separator disappears if the window is resized. + final JSeparator sep = new JSeparator(JSeparator.HORIZONTAL); + panel.add(sep); + final JPanel buttonsBox = new JPanel(new MigLayout("ins 0", "push[]rel[]rel[]push")); // NON-NLS - refreshButton = new JButton(Resources.getString("General.run")); + + + final JButton refreshButton = new JButton(Resources.getString("General.run")); refreshButton.addActionListener(e -> refreshPredefinedSetups()); - refreshButton.setEnabled(true); + //refreshButton.setEnabled(true); // this may be belt & braces - re-enabled anyway on a cancelled refresh (otherwise whole window is closed) + final JButton closeButton = new JButton(Resources.getString("General.cancel")); final JButton helpButton = new JButton(Resources.getString("General.help")); HelpFile hf = null; try { hf = new HelpFile(null, new File( - new File(Documentation.getDocumentationBaseDir(), "ReferenceManual"), - "SavedGameUpdater.html")); + new File(Documentation.getDocumentationBaseDir(), "ReferenceManual"), + "SavedGameUpdater.html")); } catch (MalformedURLException ex) { ErrorDialog.bug(ex); @@ -98,45 +138,80 @@ private void initComponents() { helpButton.addActionListener(new ShowHelpAction(hf.getContents(), null)); - final JButton closeButton = new JButton(Resources.getString("General.cancel")); closeButton.addActionListener(e -> dispose()); buttonsBox.add(refreshButton, "tag ok,sg 1"); // NON-NLS buttonsBox.add(closeButton, "tag cancel,sg 1"); // NON-NLS buttonsBox.add(helpButton, "tag help,sg 1"); // NON-NLS + refreshPieces = new JCheckBox(Resources.getString("GameRefresher.refresh_pieces"), true); + refreshPieces.setEnabled(false); // this is the standard default - locked as part of ensuring that at least one main option is on + panel.add(refreshPieces); + nameCheck = new JCheckBox(Resources.getString("GameRefresher.use_basic_name")); - panel.add(nameCheck); + + panel.add(nameCheck, "gapx 10"); + nameCheck.addChangeListener(e -> { + if (optionsUserMode) fixGPID.setVisible(nameCheck.isSelected()); + }); + + fixGPID = new JCheckBox(Resources.getString("GameRefresher.fix_gpid")); + panel.add(fixGPID, "gapx 20"); + labelerNameCheck = new JCheckBox(Resources.getString("GameRefresher.use_labeler_descr"), true); - panel.add(labelerNameCheck); + panel.add(labelerNameCheck, "gapx 10"); layerNameCheck = new JCheckBox(Resources.getString("GameRefresher.use_layer_descr"), true); - panel.add(layerNameCheck); + panel.add(layerNameCheck, "gapx 10"); rotateNameCheck = new JCheckBox(Resources.getString("GameRefresher.use_rotate_descr"), true); - panel.add(rotateNameCheck); - testModeOn = new JCheckBox(Resources.getString("GameRefresher.test_mode")); - panel.add(testModeOn); - deletePieceNoMap = new JCheckBox(Resources.getString("GameRefresher.delete_piece_no_map")); - deletePieceNoMap.setSelected(false); - panel.add(deletePieceNoMap); - - refreshDecks = new JCheckBox(Resources.getString("GameRefresher.refresh_decks")); - refreshDecks.setSelected(false); - refreshDecks.addChangeListener(new ChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { + panel.add(rotateNameCheck, "gapx 10"); + + deletePieceNoMap = new JCheckBox(Resources.getString("GameRefresher.delete_piece_no_map"), true); + // Disabling user selection - due to issue https://github.com/vassalengine/vassal/issues/12902 + // panel.add(deletePieceNoMap. "gapx 10"); + + refreshDecks = new JCheckBox(Resources.getString("GameRefresher.refresh_decks"), false); + refreshDecks.addChangeListener(e -> { + if (optionsUserMode) { deleteOldDecks.setVisible(refreshDecks.isSelected()); addNewDecks.setVisible(refreshDecks.isSelected()); } }); panel.add(refreshDecks); - deleteOldDecks = new JCheckBox(Resources.getString("GameRefresher.delete_old_decks")); - deleteOldDecks.setSelected(false); - panel.add(deleteOldDecks); + deleteOldDecks = new JCheckBox(Resources.getString("GameRefresher.delete_old_decks"), false); + panel.add(deleteOldDecks, "gapx 10"); - addNewDecks = new JCheckBox(Resources.getString("GameRefresher.add_new_decks")); - addNewDecks.setSelected(false); - panel.add(addNewDecks); + addNewDecks = new JCheckBox(Resources.getString("GameRefresher.add_new_decks"), false); + panel.add(addNewDecks, "gapx 10"); + + // Post refresh hotkey setting + fireHotkey = new JCheckBox(Resources.getString("GameRefresher.fire_global_hotkey"), false); + fireHotkey.addChangeListener(e -> { + if (optionsUserMode) { + reportOff.setVisible(fireHotkey.isSelected()); + } + }); + panel.add(fireHotkey); + + reportOff = new JCheckBox(Resources.getString("Editor.RefreshPredefinedSetups.reportOff"), false); + panel.add(reportOff, "gapx 10"); + + // Separate functions that govern the overall refresh + panel.add(sep); + + testModeOn = new JCheckBox(Resources.getString("GameRefresher.test_mode"), false); + // Disabling user selection - due to issue https://github.com/vassalengine/vassal/issues/12695 + // panel.add(testModeOn); + + // PDS can be set to refresh specific items only, based on a regex + final JPanel filterPanel = new JPanel(new MigLayout(ConfigurerLayout.STANDARD_INSETS_GAPY, "[]rel[grow,fill,push]")); // NON-NLS + filterPanel.add(new JLabel(Resources.getString("Editor.RefreshPredefinedSetups.filter_prompt")), ""); + pdsFilterBox = new HintTextField(32, Resources.getString("Editor.RefreshPredefinedSetups.filter_hint")); + filterPanel.add(pdsFilterBox, "wrap"); + panel.add(filterPanel, ""); + + alertOn = new JCheckBox(Resources.getString("Editor.RefreshPredefinedSetups.alertOn"), false); + panel.add(alertOn); panel.add(buttonsBox, "grow"); // NON-NLS add(panel, "grow"); // NON-NLS @@ -147,23 +222,37 @@ public void stateChanged(ChangeEvent e) { // Default actions on Enter/ESC SwingUtils.setDefaultButtons(getRootPane(), refreshButton, closeButton); + fixGPID.setVisible(nameCheck.isSelected()); + deleteOldDecks.setVisible(refreshDecks.isSelected()); addNewDecks.setVisible(refreshDecks.isSelected()); + + reportOff.setVisible(fireHotkey.isSelected()); + + panel.setEnabled(false); } protected void setOptions() { + pdsFilter = pdsFilterBox.getText(); + options.clear(); - if (nameCheck.isSelected()) { - options.add(GameRefresher.USE_NAME); //$NON-NLS-1$ - } - if (labelerNameCheck.isSelected()) { - options.add(GameRefresher.USE_LABELER_NAME); //$NON-NLS-1$ - } - if (layerNameCheck.isSelected()) { - options.add(GameRefresher.USE_LAYER_NAME); //$NON-NLS-1$ - } - if (rotateNameCheck.isSelected()) { - options.add(GameRefresher.USE_ROTATE_NAME); //$NON-NLS-1$ + if (refreshPieces.isSelected()) { + options.add(GameRefresher.REFRESH_PIECES); //$NON-NLS-1$ + if (nameCheck.isSelected()) { + options.add(GameRefresher.USE_NAME); //$NON-NLS-1$ + if (fixGPID.isSelected()) { + options.add(GameRefresher.FIX_GPID); //$NON-NLS-1$ + } + } + if (labelerNameCheck.isSelected()) { + options.add(GameRefresher.USE_LABELER_NAME); //$NON-NLS-1$ + } + if (layerNameCheck.isSelected()) { + options.add(GameRefresher.USE_LAYER_NAME); //$NON-NLS-1$ + } + if (rotateNameCheck.isSelected()) { + options.add(GameRefresher.USE_ROTATE_NAME); //$NON-NLS-1$ + } } if (testModeOn.isSelected()) { options.add(GameRefresher.TEST_MODE); //$NON-NLS-1$ @@ -180,6 +269,12 @@ protected void setOptions() { options.add(GameRefresher.ADD_NEW_DECKS); //NON-NLS } } + if (fireHotkey.isSelected()) { + options.add(GameRefresher.USE_HOTKEY); //$NON-NLS-1$ + if (reportOff.isSelected()) { + options.add(GameRefresher.SUPPRESS_INFO_REPORTS); //$NON-NLS-1$ + } + } } public void log(String message) { @@ -188,75 +283,299 @@ public void log(String message) { } public boolean isTestMode() { - return options.contains("TestMode"); //$NON-NLS-1$ + return options.contains(GameRefresher.TEST_MODE); //$NON-NLS-1$ } - - private boolean hasAlreadyRun = false; + public boolean isFilterMode() { + return pdsFilter != null && !pdsFilter.isBlank(); //$NON-NLS-1$ + } private void refreshPredefinedSetups() { - if (hasAlreadyRun) { - return; - } - - hasAlreadyRun = true; - refreshButton.setEnabled(false); setOptions(); - if (isTestMode()) { - log(Resources.getString("GameRefresher.refresh_counters_test_mode")); + + // Disable options menu whilst the refresh is assessed (this greys the menu panel out) + optionsUserMode = false; + for (final Component component : getComponents(this)) component.setEnabled(false); + + // pre-pack regex pattern in case filter string is not found by direct string comparison + Pattern filterPattern = null; + Pattern filterPattern2 = null; + + if (isFilterMode()) { + + try { + // matching, assuming Regex with no escape of the end string modifier, otherwise match all to end + filterPattern = Pattern.compile(pdsFilter, CASE_INSENSITIVE); + filterPattern2 = Pattern.compile(pdsFilter + ".*", CASE_INSENSITIVE); + } + catch (PatternSyntaxException e) { + // something went wrong, treat regex as embedded literal + filterPattern = Pattern.compile(".*\\Q" + pdsFilter + "\\T.*", CASE_INSENSITIVE); + filterPattern2 = filterPattern; // nullify the follow-up check + log(Resources.getString("Editor.RefreshPredefinedSetups.filter_fallback")); //NON-NLS + } + pdsFilter = pdsFilter.toLowerCase(); // original search string will be used for case-insensitive string search } - // Are we running a refresh on a main module or on an extension - Boolean isRefreshOfExtension = true; + // Targeting PDS menu structure... final GameModule mod = GameModule.getGameModule(); + final GameState gs = mod.getGameState(); final DataArchive dataArchive = mod.getDataArchive(); + + // Are we running a refresh on a main module or on an extension ? final List moduleExtensionList = mod.getComponentsOf(ModuleExtension.class); - if (moduleExtensionList.isEmpty()) { - isRefreshOfExtension = false; - } + final boolean isRefreshOfExtension = !moduleExtensionList.isEmpty(); + final List modulePdsAndMenus = mod.getAllDescendantComponentsOf(PredefinedSetup.class); final List modulePds = new ArrayList<>(); + + // Error collation & reporting + final List warningPds = new ArrayList<>(); + final List warningCount = new ArrayList<>(); + final List failPds = new ArrayList<>(); + for (final PredefinedSetup pds : modulePdsAndMenus) { if (!pds.isMenu() && pds.isUseFile()) { //Exclude scenario folders (isMenu == true) // and exclude any "New game" entries (no predefined setup) (isUseFile == false) // !! Some New Game entries have UseFile = true and filename empty. Check file name too - if (pds.getFileName() != null && ! pds.getFileName().isBlank()) { - Boolean isExtensionPDS = true; + // PDS filtering option is implemented here... + final String pdsName = pds.getAttributeValueString(PredefinedSetup.NAME); + final String pdsFile = pds.getFileName(); + + if (pdsFile != null && !pdsFile.isBlank() + && (pdsFilter == null + || (pdsName != null && (pdsName.toLowerCase().contains(pdsFilter) + || (filterPattern != null && (filterPattern.matcher(pdsName).matches() || filterPattern2.matcher(pdsName).matches()))) + || (pdsFile.toLowerCase().contains(pdsFilter) + || (filterPattern != null && (filterPattern.matcher(pdsFile).matches() || filterPattern2.matcher(pdsFile).matches())))))) { + + boolean isExtensionPDS = true; + try { - isExtensionPDS = !dataArchive.contains(pds.getFileName()); + isExtensionPDS = !dataArchive.contains(pdsFile); } catch (final IOException e) { ErrorDialog.bug(e); } - if (isExtensionPDS == isRefreshOfExtension) { - modulePds.add(pds); + if (isExtensionPDS == isRefreshOfExtension) modulePds.add(pds); + } + } + } + + final int pdsCount = promptConfirmCount(modulePds); + + // check non-zero & allow an abort here whilst displaying refresh type & listing out found files + if (pdsCount > 0) { + + final Cursor oldCursor = this.getCursor(); + final Cursor waitCursor = Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR); + this.setCursor(waitCursor); + + log("|" + Resources.getString("Editor.RefreshPredefinedSetupsDialog.start_refresh", mod.getGameVersion(), + isRefreshOfExtension ? " " + Resources.getString("Editor.RefreshPredefinedSetupsDialog.extension") : "")); + + // log special mode warnings to chat + if (isTestMode()) log(GameRefresher.ERROR_MESSAGE_PREFIX + Resources.getString("GameRefresher.refresh_counters_test_mode")); + if (isFilterMode()) log(GameRefresher.ERROR_MESSAGE_PREFIX + + Resources.getString("Editor.RefreshPredefinedSetups.setups_filter", ConfigureTree.noHTML(pdsFilter))); + + int i = 0; + int refreshCount = 0; + int duplicates = 0; + String lastErrorFile = null; + + final Instant startTime = Instant.now(); + final Long memoryInUseAtStart = (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / (1024*1024); + long himem = 0; + + // Process the refreshes + String hifile = null; + for (final PredefinedSetup pds : modulePds) { + + // Refresher window title updated to provide progress report + final int pct = i * 100 / pdsCount; + this.setTitle(Resources.getString("Editor.RefreshPredefinedSetupsDialog.progress", ++i, pdsCount, pct) + + (warningPds.isEmpty() ? "" : " " + + Resources.getString("Editor.RefreshPredefinedSetupsDialog.errors", lastErrorFile, warningPds.size() - 1))); + this.setCursor(waitCursor); + + final String pdsFile = pds.getFileName(); + + if (i > 1 && pdsFileProcessed(modulePds.subList(0, i - 1), pdsFile)) { + // Skip duplicate file (already refreshed) + duplicates++; + if (!options.contains(GameRefresher.SUPPRESS_INFO_REPORTS)) { + log(GameRefresher.SEPARATOR); + log(Resources.getString(Resources.getString("Editor.RefreshPredefinedSetupsDialog.skip", pds.getAttributeValueString(PredefinedSetup.NAME), pdsFile))); } } + else { + gs.setup(false); //BR// Ensure we clear any existing game data/listeners/objects out. + mod.setRefreshingSemaphore(true); //BR// Raise the semaphore that suppresses GameState.setup() + + try { + // FIXME: At this point the Refresh Options window is not responsive to Cancel, which means that runs can only be interrupted by killing the Vassal editor process + final int warnings = pds.refreshWithStatus(options); + if (warnings > 0) { + lastErrorFile = fixedLength(pdsFile, FILE_NAME_REPORT_LENGTH); + warningPds.add(pds); + warningCount.add(warnings); + } + refreshCount++; + } + catch (final IOException e) { + ErrorDialog.bug(e); + failPds.add(pds); + } + finally { + mod.setRefreshingSemaphore(false); //BR// Make sure we definitely lower the semaphore + } + } + final long mem = (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / (1024 * 1024); + if (mem > himem) { + himem = mem; + hifile = pdsFile; + } + } + + // Clean up and close the window + if (!isTestMode()) { + if (alertOn.isSelected()) { // sound alert + final SoundConfigurer c = (SoundConfigurer) Prefs.getGlobalPrefs().getOption("wakeUpSound"); + c.play(); + } + mod.setDirty(true); // ensure prompt to save when a refresh happened } + + gs.setup(false); //BR// Clear out whatever data (pieces, listeners, etc.) left over from final game loaded. + + final Duration duration = Duration.between(startTime, Instant.now()); + + log("|" + Resources.getString("Editor.RefreshPredefinedSetups.end", refreshCount)); + + if (duplicates > 0) + log(Resources.getString("Editor.RefreshPredefinedSetups.duplicates", duplicates)); + + if (!warningPds.isEmpty()) { + log(GameRefresher.ERROR_MESSAGE_PREFIX + Resources.getString("Editor.RefreshPredefinedSetups.endWarnHeading", warningPds.size())); + for (i = 0; i < warningPds.size(); i++) + log("|  " + Resources.getString("Editor.RefreshPredefinedSetups.endWarnPds", + warningPds.get(i).getAttributeValueString(PredefinedSetup.NAME), + "" + warningPds.get(i).getFileName() + "", warningCount.get(i))); + } + + if (!failPds.isEmpty()) { + log(GameRefresher.ERROR_MESSAGE_PREFIX + Resources.getString("Editor.RefreshPredefinedSetups.endFailHeading", failPds.size())); + for (i = 0; i < warningPds.size(); i++) + log("|  " + Resources.getString("Editor.RefreshPredefinedSetups.endFailPds", + failPds.get(i).getAttributeValueString(PredefinedSetup.NAME), + "" + failPds.get(i).getFileName()) + ""); + } + + log(Resources.getString("Editor.RefreshPredefinedSetups.stats", + ofPattern("HH:mm:ss").format(LocalTime.ofSecondOfDay(duration.getSeconds())), + memoryInUseAtStart, himem, hifile)); + + this.setCursor(oldCursor); + mod.getPlayerWindow().setCursor(oldCursor); } - log(modulePds.size() + " " + Resources.getString("GameRefresher.predefined_setups_found")); - for (final PredefinedSetup pds : modulePds) { - log(pds.getAttributeValueString(pds.NAME) + " (" + pds.getFileName() + ")"); + + // Exit - close window or reset for adjustments + if (pdsCount > 0 && warningPds.isEmpty() && failPds.isEmpty()) { + this.dispose(); // get rid of refresh options window on a clean run } + else { + // reset the options panel + setTitle(Resources.getString("Editor.RefreshPredefinedSetupsDialog.title")); + for (final Component component : getComponents(this)) component.setEnabled(true); + optionsUserMode = true; + } + } + private boolean pdsFileProcessed(List modulePds, String file) { for (final PredefinedSetup pds : modulePds) { - GameModule.getGameModule().getGameState().setup(false); //BR// Ensure we clear any existing game data/listeners/objects out. - GameModule.getGameModule().setRefreshingSemaphore(true); //BR// Raise the semaphore that suppresses GameState.setup() + if (pds.getFileName().equals(file)) return true; + } + return false; + } - try { - pds.refresh(options); - } - catch (final IOException e) { - ErrorDialog.bug(e); - } - finally { - GameModule.getGameModule().setRefreshingSemaphore(false); //BR// Make sure we definitely lower the semaphore + private String fixedLength(String text, int length) { + return text.length() > length ? text.substring(0, length - 3) + "..." : text; + } + + /** + * Checks the count of Pre-Defined Setups to be processed and displays appropriate message or dialog box + * + * @return number of Pre-Defined Setups to be processed. Zero if none / cancelled + */ + private int promptConfirmCount(List pdsList) { + + if (pdsList == null || pdsList.isEmpty()) { + + JOptionPane.showMessageDialog( + this, + Resources.getString("Editor.RefreshPredefinedSetups.none_found"), + Resources.getString("Editor.RefreshPredefinedSetupsDialog.title"), //$NON-NLS-1$ + JOptionPane.ERROR_MESSAGE); + + return 0; + } + + final JPanel panel = new JPanel(); + + // create the list + final JTextArea display = new JTextArea(16, 60); + display.setEditable(false); // set textArea non-editable + final JScrollPane scroll = new JScrollPane(display, + ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, + ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); + panel.add(scroll); + + int i = 0; + + for (final PredefinedSetup pds : pdsList) + + // tab separation to make it easier to re-use the data (e.g. copy to spreadsheet) + display.append((i++ > 0 ? System.lineSeparator() : "") + pds.getAttributeValueString(PredefinedSetup.NAME) + + Character.toString(9) + pds.getFileName()); + + // return number of PDS items or zero if refresh is cancelled + return JOptionPane.showConfirmDialog( + this, + panel, + Resources.getString("Editor.RefreshPredefinedSetups.confirm_title", + Resources.getString(isTestMode() ? "Editor.RefreshPredefinedSetups.confirm.test" : "Editor.RefreshPredefinedSetups.confirm.run"), + i, isFilterMode() ? " " + Resources.getString("Editor.RefreshPredefinedSetups.confirm.filter") : ""), //$NON-NLS-1$ + JOptionPane.OK_CANCEL_OPTION, + JOptionPane.QUESTION_MESSAGE) == JOptionPane.OK_OPTION ? i : 0; + } + + /** + * Recursively collate all non-Container components inside a Container + * Ref: ... + * + * @param container Container e.g. a JPanel + * + * @return Non-Container contents + */ + private Component[] getComponents(Component container) { + ArrayList list; + + try { + list = new ArrayList<>(Arrays.asList( + ((Container) container).getComponents())); + for (int index = 0; index < list.size(); index++) { + Collections.addAll(list, getComponents(list.get(index))); } } - GameModule.getGameModule().getGameState().setup(false); //BR// Clear out whatever data (pieces, listeners, etc) left over from final game loaded. + catch (ClassCastException e) { + list = new ArrayList<>(); + } - refreshButton.setEnabled(true); + return list.toArray(new Component[0]); } + + } diff --git a/vassal-app/src/main/resources/VASSAL/i18n/Editor.properties b/vassal-app/src/main/resources/VASSAL/i18n/Editor.properties index acb31a6dd6..15b3b055f6 100644 --- a/vassal-app/src/main/resources/VASSAL/i18n/Editor.properties +++ b/vassal-app/src/main/resources/VASSAL/i18n/Editor.properties @@ -2044,6 +2044,29 @@ Editor.ReturnToDeck.deck_name=Deck Name # Refresh Predefined Setups Dialog Editor.ModuleEditor.refresh_predefined=Refresh Predefined Setups Editor.RefreshPredefinedSetupsDialog.title=Refresh Predefined Setups +Editor.RefreshPredefinedSetups.filter_hint=Literal or Regular Expression (blank for all) +Editor.RefreshPredefinedSetups.filter_prompt=Limit to titles & files matching: +Editor.RefreshPredefinedSetupsDialog.start_refresh=Refreshing Predefined Setups with Module version %1$s +Editor.RefreshPredefinedSetupsDialog.extension=(extension predefined setups) +Editor.RefreshPredefinedSetups.setups_filter=Predefined setups filtered on "%1$s" +Editor.RefreshPredefinedSetups.filter_fallback=Bad regular expression, falling back on literal search +Editor.RefreshPredefinedSetupsDialog.progress=Refresh Predefined Setups: %3$s%% (%1$s of %2$s) +Editor.RefreshPredefinedSetupsDialog.errors=Warnings: %1$s (+%2$s more) +Editor.RefreshPredefinedSetupsDialog.skip=Skipping Predefined Setup: %1$s (%2$s) - file already refreshed +Editor.RefreshPredefinedSetups.reportOff=Suppress refresh information reports +Editor.RefreshPredefinedSetups.alertOn=Play wake-up alert when done +Editor.RefreshPredefinedSetups.none_found=No Predefined Setups found +Editor.RefreshPredefinedSetups.confirm_title=%1$s Refresh %2$s Predefined Setups%3$s +Editor.RefreshPredefinedSetups.confirm.run=Confirm +Editor.RefreshPredefinedSetups.confirm.test=Test +Editor.RefreshPredefinedSetups.confirm.filter=(filtered) +Editor.RefreshPredefinedSetups.end=*** Predefined Setups refresh complete: %1$s game files refreshed *** +Editor.RefreshPredefinedSetups.duplicates=Skipped %1$s duplicate game files +Editor.RefreshPredefinedSetups.endWarnHeading=%1$s files refreshed with warnings: +Editor.RefreshPredefinedSetups.endWarnPds=%3$s warnings from %2$s (setup: %1$s) +Editor.RefreshPredefinedSetups.endFailHeading==%1$s files not refreshed due to access failure: +Editor.RefreshPredefinedSetups.endFailPds=%2$s (setup: %1$s) +Editor.RefreshPredefinedSetups.stats=Elapsed time: %1$s / Memory usage start: %2$s Mb, high: %3$s Mb (file: %4$s) # Saved Game Updater # 1 - a Game Piece diff --git a/vassal-app/src/main/resources/VASSAL/i18n/VASSAL.properties b/vassal-app/src/main/resources/VASSAL/i18n/VASSAL.properties index fd21c258f8..6f170f2a31 100644 --- a/vassal-app/src/main/resources/VASSAL/i18n/VASSAL.properties +++ b/vassal-app/src/main/resources/VASSAL/i18n/VASSAL.properties @@ -683,15 +683,17 @@ GameModule.save_module=Save Module? GameRefresher.refresh_counters=Refresh Counters GameRefresher.game_started_in_editor=Refresh of predefined setups not possible when a game is open. Close the open game in the Player window and retry. GameRefresher.game_is_replaying=Refresh Counters is not allowed while a log is being replayed. Counters can be refreshed once the log has been fully replayed. +GameRefresher.refresh_pieces=Refresh piece definitions with latest settings from module -GameRefresher.get_all_pieces=Collecting Counters -GameRefresher.counters_total=%1$s Counters found in game GameRefresher.counters_kept=- %1$s Counters collected -GameRefresher.counters_not_owned=- %1$s Counters not collected - Not owned -GameRefresher.counters_not_visible=- %1$s Counters not collected - Not visible +GameRefresher.decks=- %1$s Decks identified +GameRefresher.counters_not_owned=- %1$s Counters not collected - not owned +GameRefresher.counters_not_visible=- %1$s Counters not collected - not visible GameRefresher.run_refresh_counters_v2=%1$s Refreshing Counters with Module version %2$s +GameRefresher.fire_GHK=ACTIVATING GLOBAL HOTKEY %1$s GameRefresher.run_refresh_counters_v3=Refreshing Counters with Module version %1$s +GameRefresher.run_refresh_counters_v4=REFRESHING COUNTERS GameRefresher.counters_refreshed=- %1$s Counters refreshed GameRefresher.counters_not_found=- %1$s Counters could not be refreshed - Not found GameRefresher.counters_no_map=- %1$s Counters could not be refreshed - Not on a map @@ -701,10 +703,12 @@ GameRefresher.refresh_counters_test_mode=Refresh Counters - Test Mode - Game wil GameRefresher.delete_piece_no_map=Delete pieces without a map GameRefresher.test_mode=Test Mode - Game will not be updated GameRefresher.use_basic_name=Use counter names to identify unknown counters +GameRefresher.fire_global_hotkey=After refresh trigger Global Hotkey VassalPostRefreshGHK +GameRefresher.fix_gpid=Refreshed counter will adopt matching counter's Piece Id GameRefresher.use_labeler_descr=Use Label descriptions to match modified Text Label traits GameRefresher.use_layer_descr=Use Layer names to match modified Layer traits GameRefresher.use_rotate_descr=Use Rotator names to match modified Can Rotate traits -GameRefresher.predefined_setups_found=Predefined setups found +GameRefresher.predefined_setups_found=predefined setups found GameRefresher.gpid_error_message=Unable to run Refresh, module was saved with older vassal version. Edit and save module with latest vassal version first. GameRefresher.refresh_error_nomap1=Cannot refresh piece %1$s (%2$s): No Map GameRefresher.refresh_error_nomap2=Deleting %1$s (%2$s) from game @@ -712,8 +716,8 @@ GameRefresher.refresh_error_nostack=Warning: Piece %1$s (%2$s) is not linked to GameRefresher.refresh_error_nostackindex=Warning: Piece %1$s (%2$s) is missing position in stack. Will default to 1 GameRefresher.refresh_error_nomatch_pieceslot=Cannot refresh piece %1$s (%2$s): Can't find matching Piece Slot -GameRefresher.header=Game Refresher: If you are using a more recent version of the module than this game was created with, this tool will update the pieces and decks in the game to use the latest up-to-date module prototypes & settings. See HELP for additional information. -GameRefresher.predefined_header=Refresh Predefined Setups: This tool updates the piece definitions and decks in all Pre-defined Setups to match the most up-to-date prototype definitions and deck settings. See HELP for additional information. +GameRefresher.header=Game Refresher: Use this tool to update the current game if compatible with the module or extension. See HELP before using this tool for the first time. +GameRefresher.predefined_header=Refresh Predefined Setups: Use this tool to update Predefined Setups in a module or extension. See HELP for additional information. GameRefresher.deck_refresh_during_multiplayer=*** Decks cannot be refreshed while a logfile is being created or an online connection exists. *** GameRefresher.refreshing_decks=REFRESHING DECKS GameRefresher.refreshing_deck=Refreshing Deck: %1$s with properties from module deck %2$s @@ -817,6 +821,11 @@ GpIdChecker.piece_gpid_updated=%1$s GPID updated from %2$s to %3$s GpIdChecker.piece_slot=Piece Slot %1$s # Names a Trait within the piece - either a "Place Marker" or a "Replace With Other" Trait. GpIdChecker.place_replace_trait=Place/Replace Trait %1$s +# A piece being matched by name having failed to match on slot +GpIdChecker.refreshByName=Piece "%1$s" (GPID %2$s) matched on name and refreshed from GPID %3$s +GpIdChecker.fixGPID=(GPID updated!) +GpIdChecker.refreshByNameFail=Unable to match piece "%1$s" (GPID %2$s) by name +GpIdChecker.SlotNotFound=Slot not found for Piece "%1$s" (GPID %2$s); consider refresh option Use counter names... # Help Window Help.error_log=Show Error Log diff --git a/vassal-doc/src/main/readme-referencemanual/ReferenceManual/GameRefresher.adoc b/vassal-doc/src/main/readme-referencemanual/ReferenceManual/GameRefresher.adoc index 3e3c115f22..1c4be81a13 100644 --- a/vassal-doc/src/main/readme-referencemanual/ReferenceManual/GameRefresher.adoc +++ b/vassal-doc/src/main/readme-referencemanual/ReferenceManual/GameRefresher.adoc @@ -6,62 +6,68 @@ ''''' === Refresh Counters -When you update the <> and <> in a module, those changes will affect any *future* games started using that module, but the changes will not--by default at least--affect pieces in any ongoing games that you load with the new version of the module. VASSAL saved games include the complete definition of each piece in order to maintain saved game compatibility with older versions of a module: so that replays and saves sent to you by someone with an earlier version of the module will continue to work in the same way they always did with the old version. +When you update the <> in a module, or <> that are applied to them, those changes will affect any *future* games started using that module, but the changes will not--by default at least--affect pieces in any ongoing games that you load with the new version of the module. The same is true of decks and stacks. VASSAL saved games include the complete definition of these components in order to maintain saved game compatibility with older versions of a module: so that replays and saves sent to you by someone with an earlier version of the module will continue to work in the same way they always did with the old version. -But particularly since the <> for module scenarios are stored internally as saved games, it is often important to module designers to be able to update an existing game to use the latest prototypes. That way a module designer can often avoid re-doing complex setups simply because prototypes have been updated and improved. +Since the <> for module scenarios are stored internally as saved games, it is often important to module designers to be able to update an existing game to use the latest prototypes. That way a module designer can often avoid re-doing complex setups simply because prototypes have been updated and improved. -To use the refresher on the currently loaded game, go to the _Tools_ menu in your main VASSAL window and select _Refresh Counters_. You will be shown a dialog with several choices affecting the manner in which the operation is to be carried out. +To use the refresher on the currently loaded game, go to the _Tools_ menu in your main VASSAL window and select _Refresh Counters_. You will be shown a dialog with several choices affecting the manner in which the operation is to be carried out. The screenshot below shows all main options selected in order to reveal the sub-options. Normally, the Refresher's standard mode is to refresh pieces only, without trying to identify unknown counters. Click the _Run_ button when you are ready to perform the refresh. The chat log will show output and statistics from the operation. Once the operation is finished, pieces in the game (as well as new pieces created from <>) will make use of the most recent prototypes. Whenever a piece is created in a VASSAL game, the Id of the definition used to create it is saved in the Piece. This Id identifies a piece in a <>, or a Piece Definition in a <> or <> trait. -The Game Refresher works by matching the Id in each piece in the current game to the Id's of all piece definitions in the current module to find the new definition. If a match is found, then the piece is replaced with one created from the new defintion. Then each trait in the new Piece is checked to see if there is an EXACTLY matching trait in the old definition. If an EXACT match is found, then the 'state' of the old trait is copied over (e.g. what is the current layer showing, or current rotation facing). +The Game Refresher works by matching the Id in each piece in the current game to the Id's of all piece definitions in the current module to find the new definition. If a match is found, then the piece is replaced with one created from the new definition. Then each trait in the new Piece is checked to see if there is an EXACTLY matching trait in the old definition. If an EXACT match is found, then the 'state' of the old trait is copied over (e.g. what is the current layer showing, or current rotation facing). -Problems occur when the definition used to create the piece no longer exists in the module, or if traits are modified slightly so that they no longer EXACTLY match the old piece. There are various options in the Game Refresher dialog that can be used to help match and update these pieces and traits. +Problems occur when the definition used to create the piece no longer exists in the module, or if traits are modified slightly so that they no longer EXACTLY match the old piece. There are various options in the Game Refresher dialog that can be used to help match and update these pieces and traits. In addition, there is an option to trigger a <<#RefreshHotkey,special hotkey>> to perform custom maintenance routines which you have designed. [.text-center] image:images/GameRefresher.png[] [width="100%",cols="50%a",] |=== -| *Use counter names to identify unkown counters:*:: -Use this option when the piece defintion used to create a Game Piece no longer exists in the module. + +|*Refresh piece definitions with latest settings from module:*:: + +This feature is mandatory and will refresh <> in the game with the following sub-options: + +*- Use counter names to identify unknown counters:*:: +Use this option when the piece definition used to create a Game Piece no longer exists in the module. + + This option tells the Refresher to find a Piece Definition with the same Basic Name as the old definition to use for the Refresh. The first such definition found will be used. +- *Refreshed counter will adopt matching counter's Piece Id:*:: + +This sub-option is available when "Use counter names..." is selected. The counter will be repaired using the matching counter's Piece Id ("GPID"). ⚠️ Exercise prudence when considering this option, to be sure that the matching counter is correct. + *Use Label descriptions to match modified Text Label traits:*:: If you change any of the options in a <> trait, then the new definition will not exactly match the old counter and the current setting of the *Text Label* will revert to the default recorded in the new definition. + + This option tells the Refresher to find a *Text Label* trait in the new definition that has the same *Description* as in the old definition. This allows the current value of the *Text Label* to be carried across to the piece, even if the *Text Label* trait has been modified as long as the Description field has not been changed. -*Use Layer names to match modified Layer traits:*:: +*- Use Layer names to match modified Layer traits:*:: If you change any of the options in a <> trait, then the new definition will not exactly match the old counter and the current Activation and Layer level will revert to the default recorded in the new definition. + + This option tells the Refresher to find a *Layer* trait in the new definition that has the same *Name* as in the old definition. This allows the current activation status and Layer level to be carried across to the piece, even if the *Layer* trait has been modified as long as the *Name* field has not been changed. -*Use Rotator names to match modified Can Rotate traits:*:: +*- Use Rotator names to match modified Can Rotate traits:*:: If you change any of the options in a <> trait, then the new definition will not exactly match the old counter and the current rotation angle will revert to the default recorded in the new definition. + + This option tells the Refresher to find a *Can Rotate* trait in the new definition that has the same *Rotator Name* as in the old definition. This allows the current rotation angle to be carried across to the piece, even if the *Can Rotate* trait has been modified as long as the *Rotator Name* field has not been changed. -*Refresh Counters - Test Mode - Game will not be updated:*:: -Runs a full refresh and generates a report on how many counters are refreshed and how many could not be refreshed using the current options, but does NOT make any changes to the module. - -*Delete pieces without a map:*:: -Remove any pieces found in the game that do not exist on a Map. These pieces would be inaccessible to players and are a result of Vassal bugs. This option cleans these pieces up and helps reduce the size of a saved game file. *Refresh decks' properties with latest settings from module:*:: -Allow <> in the game to be refreshed. See the <<#DeckRefresher,Deck Refresher>> section below for full details. +Allow <> in the game to be refreshed, with the following two sub-options. See the <<#DeckRefresher,Deck Refresher>> section below for full details. -*Delete decks which no longer exist in the module (any contents will be left on map in a stack):*:: +*- Delete decks which no longer exist in the module (any contents will be left on map in a stack):*:: Remove Decks from the game that no longer exist in the module. See the <<#DeckRefresher,Deck Refresher>> section below for full details. -*Add decks to game which have been added to the module since this game was created (empty deck will be added):*:: +*- Add decks to game which have been added to the module since this game was created (empty deck will be added):*:: -Add Decks to teh game that have been added to the module. See the <<#DeckRefresher,Deck Refresher>> section below for full details. +Add Decks to the game that have been added to the module. See the <<#DeckRefresher,Deck Refresher>> section below for full details. + +*After refresh trigger Global Hotkey _VassalPostRefreshGHK_:*:: +Use this option to invoke a special Global Hotkey, _VassalPostRefreshGHK_, which will execute as a final refresh step. See the <<#RefreshHotkey, Post-Refresh Hotkey>> section below for more details. |=== @@ -70,7 +76,7 @@ You can then save the game, or simply continue playing it from that point. [#DeckRefresher] ==== Deck Refresher -As of VASSAL 3.6 you can also refresh the <> in a module. Like Game Pieces, Decks are not normally updated from the module definitions _during_ a game, and so if you have an updated version of the module and load a saved game the deck will still behave according to the original settings. This maintains backward-compatibility with saves and logs made with earlier versions of a module, but it can become awkward when managing modules that use <> as starting positions. The Deck Refresher lets you update, add, and delete decks in a game, for this reason. +As of VASSAL 3.6 you can also refresh the <> in a module. Like Game Pieces, Decks are not normally updated from the module definitions _during_ a game, and so if you have an updated version of the module and load a saved game the deck will still behave according to the original settings. This maintains backward-compatibility with saves and logs made with earlier versions of a module, but it can become awkward when managing modules that use <> as starting positions. The Deck Refresher lets you update, add, and delete decks in a game, for this reason. If you select the _Refresh decks_ option when running the Game Refresher, existing decks will be refreshed from the latest settings and positions in the module definition. This will update almost all the properties of the deck, including key commands, menu text, and the various check-box options that configure a deck. A deck can even be moved from one position to another this way. However, decks are matched by name, so changing the _name_ of a deck will make the deck refresher think that a deck of the old name has been deleted and a new deck has been created. @@ -81,3 +87,14 @@ If you select the _Delete decks_ option, then any deck found in the current game If you select the _Add decks_ option, then any _new_ deck found in the module definition that does not exist in the game being refreshed will be _added_. Note this will not add any _contents_ (e.g., cards) to the deck, it will only add the deck. If you need to add contents you will need to arrange to add them separately, e.g., from a piece palette, or dragged in from some other location. +[#RefreshHotkey] +==== Post-Refresh Hotkey +When the hotkey option is checked, the Refresher will trigger the special hotkey _VassalPostRefreshGHK_ after refreshing. The module developer can use this feature to perform additional maintenance on predefined setup files or to facilitate upgrading of an externally loaded game. Potential uses include converting counters or populating a new deck. + +This options can be used to extend the automated functionality of the game refresher, especially when running via the _Refresh Pre-Defined Setups_ tool outlined in <>. + +Design and test your maintenance actions carefully. You can use _Refresh Counters_ to do one-off tests. Also, remember that Startup GKCs are not executed during _Refresh Predefined Setups_. + +After using _Refresh Predefined Setups_, save your module as a different file name so you can do re-runs on the original if need be. + +Once you are done, consider disabling or removing the maintenance components so that further refreshes don’t trigger them accidentally. \ No newline at end of file diff --git a/vassal-doc/src/main/readme-referencemanual/ReferenceManual/SavedGameUpdater.adoc b/vassal-doc/src/main/readme-referencemanual/ReferenceManual/SavedGameUpdater.adoc index d976ad6750..96f3f48e00 100644 --- a/vassal-doc/src/main/readme-referencemanual/ReferenceManual/SavedGameUpdater.adoc +++ b/vassal-doc/src/main/readme-referencemanual/ReferenceManual/SavedGameUpdater.adoc @@ -6,17 +6,19 @@ ''''' === Refresh Counters -When you update the <> and <> in a module, those changes will affect any *future* games started using that module, but the changes will not--by default at least--affect pieces in any ongoing games that you load with the new version of the module. VASSAL saved games include the complete definition of each piece in order to maintain saved game compatibility with older versions of a module: so that replays and saves sent to you by someone with an earlier version of the module will continue to work in the same way they always did with the old version. +When you update the <>, <> and <> in a module, those changes will affect any *future* games started using that module but the changes will not, by default at least, affect pieces in any ongoing games that you load with the new version of the module. VASSAL saved games include the complete definition of each piece in order to maintain saved game compatibility with older versions of a module: so that replays and saves sent to you by someone with an earlier version of the module will continue to work in the same way they always did with the old version. -But particularly since the <> for module scenarios are stored internally as saved games, it is often important to module designers to be able to update an existing game to use the latest prototypes. That way a module designer can often avoid re-doing complex setups simply because prototypes have been updated and improved. +Since <> for module scenarios are stored internally as saved games, it is often important to module designers to be able to update an existing game to use the latest piece, prototype and deck definitions. That way a module designer can often avoid re-doing complex setups simply because pieces or decks have been updated and improved. -Running the _Refresh Predefined Setups_ tool is equivalent to running the <> on each of the predefined setups in a module. Please see that page for detail information on the Refresher options. +To use the refresher on the <> in a module go to the Editor's _Tools_ menu and select _Refresh Predefined Setups_. You will be shown a dialog with several choices affecting the manner in which the operation is to be carried out. -To use the refresher on all the <> in a module go to the _Editor's_ _Tools_ menu and select _Refresh Pre-Defined Setups_. You will be shown a dialog with several choices affecting the manner in which the operation is to be carried out. +The _Refresh Predefined Setups_ tool applies the <> tool to the predefined setups in a module, with the important caveat that Startup GKCs are turned off. +The _Refresh Predefined Setups_ tool offers all the options that are described for <>. In addition, further options offer a sound alert at the end of the refresh run and the ability to filter the predefined setup files to be included. Use this field to limit the refresh whilst testing a module during development; leave blank to refresh all predefined setups. + +When the post-refresh Global Hotkey is selected (see screenshot), the tool offers a further option to suppress (most) refresh reporting. This will make the post-refresh Global Hotkey more useful as a trigger for custom reporting on predefined setups. Warnings and critical refresh events (Deck adds/deletes etc) are still reported when this option is selected. [.text-center] image:images/SavedGameUpdater.png[] -Click the _Run_ button when you are ready to perform the refresh. _All_ Predefined Setups in the module will be updated, _which may take some time, especially for complex modules with many pre-defined setups._ The chat log will show output and statistics from the operation. Once the operation is finished, pieces in all pre-defined setups will have been updated to use the latest prototypes. -Note that you should then save your module to complete the update. +Click the _Run_ button when you are ready to perform the refresh. A confirmation box will be displayed, including a list of all the scenario names found and their associated files to be refreshed. Cancel to go back to the previous step or confirm to start updating the predefined setups selected. Update may take some time, especially for complex modules with many predefined setups. During the refresh, a progress status is displayed in the title bar of the options window. Once the refresh run is finished, pieces in all predefined setups will have been updated to use the latest traits. The chat log will show output and statistics from the operation. You will need to save the module to complete the update. diff --git a/vassal-doc/src/main/readme-referencemanual/ReferenceManual/images/GameRefresher.png b/vassal-doc/src/main/readme-referencemanual/ReferenceManual/images/GameRefresher.png index 859bcd115dc22d5f974525b0b824000e22151c8f..96cd1f1e3d1469c95792c3d0acc11568254b042d 100644 GIT binary patch literal 105581 zcmb@scUV*1(msrWf+C=zARR$Pq_@zCiimUp=}ka7p@x#s1VvPu(jinSL21&Z20=QZ zgkD2U2pvKT1o*}0JnuO^=Y7BbzU121UVH5|v)at;Su^*C=bFkimzghqkv;nmpGf&!7st?!@N z7mr?FR3~d*T2dX;*0v<8{IIvVKS%re#;OL3Qc=*^DI!J2;!`&{*~iDyks00Hj|fsL z9_dd~D9Lo*wM8;6s@#|g5jFcr``!Z{BGzV9JX_%&2uz@7T%aU-M@AOhyre2dmf1fb zC6COyh*=;eE!!>MwAihK-Q7OP8?5PH!$U-7=<62o@8ozC~?46MMP z^`?lpOBl}+#dyDR?&f<^W;Z&tM>-dNX?*9Dwmg?{+bIsgYldcJpE_t6l1>=dJ)=y89 zl}0@5NiR%><)lUmZP6w5d@#VM?fAzx+!@#I@_*$0Ni-eCQ7{DyYy1@JmmSw99LsWD z;^#w(=5vf&I~3IT8!gAkSpJxgqHiJU0B8Y)dQ_5~Y$Wa_c9!b(d{h+T{N^odA37`3 zw1^_Y<<~xw%gf81orcfF$&?w$AAU=YNG`eXaEXg7(a%@Z;nep^_F>cc>(4KMGb2wg z-Xf=dNzVG3dW%eflkDy5XICj>ezG=^KmJ6X^YWbGdHoQs=jQ>zMVZ%MyqSIpl%j|V zv30wgN}kvx;YL1nkuI2Z_f6tUDt|KWs}ys$A3S+eahts3M%g=7PKLz`7am$ZzY=#P z_c7C_TQQH+GKZgEdU09rvBYyWFon#ev^T{Mr~3o)8JXYCJhpgAk=Fz^qyxNxx9}&? zgf+WwIZKhJ(=j%MZe9FwzBrVwSz}B3klCLlp+#uUl7jQq+u&PV04nNjMXt{`?y!C4 z>i%Sv!}?W;`ICMQdCiB8&juZKS7;Smghc?i=+uSpvA4AJwDY$Vw!g62w@wje6qXce zNV?tQ!+*0Nyt1vL4euKw*V_Y|=G?BNO84Gmj8JQ{nP*rS zS@51`b_e}%G39W%72WQ%P_&(X_)Ly5BTT5-wVmTvM(e@s@pcB)tB`X)gRee&cKiLM z0;;9Ax2sObm(c50R?E~Y9M1PLSq%s1%084;^DFl*-?wIqh>F*& z=slliCd24uu92&?m(&F_mfKq%qOAR19PbjbVKqHnn^xNbJ%T=hUT;{3V)x8(V!Hvm zVtd`Yeam#r{a5O*Jh^Cd(T>JkSR&ck7Em4n36_49?{v%gzF48inkcJ?sN_dUW1AuS z-La%sJ))YDf?_U`?4lyVmn4m>bX<3u;_SObZ>G42tqY&n+qxv!SG5(6uhrBfNVnHF z)z1(=Ul?wlv}#l;Y86mRz1uC??Ezn+;T!83SGCu(@tS6?@-AgC+N{_}f0u>j&YQ^_O|WFKt?Q~9-`@kr;&=xowKkJZr+dc*Ctaea75!+AuO92|7wx;U z6|(x$>d{uSevJx_>Si-xMN1jUUP|?rp7zX>4wEf$ckwyJ%&%~HIk+)_CEPWt&>Da)b6D>NHX#Qw&_CC9$zNlCg3q z^|Yq@75E+>IeF_qc!tZI0iB+iBFvX1IA{GO$jaf1oC6ev%5mzH>HM;oaKm5qao0@T zT=F@w>fW`CCAk9ok+gA4Ib(05sIr~re(Ip79@YcPuGX4&FOU7%Nmu0Jh)391J`kV8f00c7nLM1#QO;Gq zZxdY?MQ`BCDR(L6PN7b}oDDo~nmLuC;^jde`}-l2)#K!$qQVXGDgv_*z^ z%RilPt|AY*O1jP}I4yschOSVzQp++L2^d$~XL5d@#kMB3*0-*!T}do7Mb*VMRM;|A z@PmwwJr-D`3*KnTNVAyCT4D@3SGuRdLg-UsRvrD|^nD2_f&jI0C90X|4hkFPaA zg1$l>9yy>Bwgfb6ddlX@4ot8v4LTby%o`#rG^#YrujvnzO}{$MTesi~jjt~7FJSgr z-Y~3QSkOG}O*d1hWB#`HP3;?kc;^UbuJK$$x5x-YaGBa5PWSEKS;HMB?|Dv}r#0O5 zL#)$p#%@NB2W9nE7H_=X2#(xyYbXrdnk{@INlV~xbolO&@9;`If%RgTO_&9%io6Hb zetBTuy3m@YT_bu^>XEGW6orI44H9D$LeKJSL!B-1Du~@FX1>N4sZBoO^j;xOW<(7)+r=0;5mUiVG#8%gsX|A8}|9gju50gjcRHDA#7(P4%{kT>mJ znmxqlMy7ze)3p7%fX%d-YC2^aAmJ0*O|0%IQf=02iedoGJDDAC&HeliqTBs#mDVbL>~6hacj)^hvc>Q zbFNNOzP8SXWod%QAKrd5?@zY2oWFaiK{gM0^PS>ZuDBHKrMswOW_`XUptEW9naxH} z@k4FB+b3s@r_`x27nZMeYv4(4Yl4lTimiqQ*#lCUitNI<>ty7l(mB$f>>M-Mg}=&V zWUA*_{$18NcmMA;=gG*z9LOmCZevWk|Nea$S6rq*Gbpg%=7=#`g~C) z`Tvy9>5<-%JIIhP;`-guzkmN4r;V?}e|mE9{CirY2@3swBP1dyEcAbofgNoBKgfQ+`4`z=^ZHkJ za=)3$Ja_Q5aW;J703t0lX=n-}QWBzafA#afUj1jJ|031%wDC}M1(7Jh3jf)xzlr~R z`QL)6Z*aPf5^hW1nsX{lB6kImJ|B7 z)GAzl%&DGAM)r_Q<;kNLzUS7aFQwWjc>%X%<@q>eL%2FPGw*Y9J}8#rbaX@Sab(ZO zJh{v4W6fYa^n{yG#}aw(qu;5>2fyd0WQ@rqLbcFb`%ciy4{rj>Lfge(ul|SsR4F}4iZZu6rsi%(&q1yo(lgnNI9AD@| zsb2y+>tcR>K3guE`)CDajmp|T7*2|vuU50$-^c7u(=9vt{V_+x8P${v>lkwU z(o`zw_=KamGW3sWPibEp<7XR34v6rBV$!K+AG& z%-;b8NLc*2{VxTtQc;TdCu*-yu?=?8b~8e4yEr_=KDOKbl9$1&r#&XVdG$qZJ}^NE zf=Eg&D}IjZ1~Up7ck1RHZzt|1?#Jd4`#N0K|XTf!W!4qd*NEaA*8l#|lsp7g!Z1XH&}&q>{lK#Or60 zqvqEQ2AZg*i%v%)a{A&BaSZ~f+y{>8I(@=NYNz9xiF=8-z&#QzRChbk zOEr=3Ju64K)`C@Z{l}tfVm!oO?2_10#)pkdGaA~R>MKc6KFts zv7W!%*z&9=F6dSojIU39QbzX_SvlP@CNWsmOR8i67^EjxdF2sdPIY0WPI;g--ZNo< zbFrKlXjPpcIqFSkJ^B}srSq5}dtlFf@6fYBy|a89klCBv3W#0m=yJ_vu>tw_)fPrT zXoX$U&h;tWp`vRf-=C`ItV%I)s+zo6W<9j?$m30yD$BbiKAU%{eev0V!kI_@CtVY} z-i^~+mR)ME;R~*-C4_%yt!L=N!~4Y8X9opN&mo91K`5iZ3hN67xp_;1YH~2H#;yO| z@OX4dxWbj9a2{r0KEH35)ZsaHTv>hIKZenB?|g2b$j6pZt-SC?5pmE)%x1HdVWZ$U zjeYt0Cz|XM4lUSBuUMc=iU*n3_Fk-V^z$wn6g^R*_)ifOHlcbOYjDI3rfeuk5417c zwX|>9Qn%A}uuE(#^IrzD#ARKOy%jbv91YjV2$$=x-MyI9RqHF0VyyBHO~SASZ>cpK z;0!DcATYor;d^e8fE&ScZ zzbz`m1UWpeRTJI_>I0~j%j9;ibX$xJ3Yo2Jw(Fv>DTqR++FjGhvKm|lZFHHxXL&&J zI`5={8MGKQKDDbArfk$$Gu|jYUM@ZUr4PX42jDT;=onk3w0yx~`N`D4NCozc=j^M> z>EM&b@9><;b=DW}4D9i{`LSnkzKq4S*vn+cH|UhoHI)q@Dtv7ICGu*Eyp#5$G{A(Wi$IwA#TC$NkVHlqgH~2m!4cv;@btLsXa(rZ8xCSc=>_WI)F6}!PtoxZT%i>bx#L|pl1T$= zZfqg>_4bin&g_KDAt% zp?)3!un)k#jCk`)Y`_Kg%DN_9DbR|Bg#mUeT;NppGT`etyIT}B zRn{379#gNVX|nwi9UFBY&FO;tTsmBkcSzU6&N3-_ELhO4pX+6<(j2J7ZF|djd2L(s zhy#y3K#|1TIH>s&dP%HEGsC0}Xw5;KrK~2R5*y>XGz}Apg?qTq!7s$;+}^QWOSE}| z>UyhFtei{)<~zp}a93u&0q}nX3x|E?C2+He5WHn}2;+LRtAWSs)q>K61q#GDI*wZB z@oQRUWvvNe{Kge-iAv!NAPE2xkl&J{fafx|Z{YL&*i~AQs>>dl>9pTYfknt1= ztPtH@=-ahCY=_vU0hyQ{E*f6o)lSJ+QPIsQyv!D`F0-VB%M~iKO;3-`3m{`l|l;$CzkCORh|% z`vf)fCGyFXF1ueD4=%$zQ~8z$?r^J*m6sB4(AXCosUE{w?CuJUYaez8cF7Rw0aZnz zQH8EV3k!ZbCRjfG)8^C&SdQco=T=vI`1hM`Cs(Bie_tS6I3~t+MgN?Q2OYtFjGR4Lb6TYXob2vn{MB=WY-@Cptn7 zOqEz-Zm{`jV^*V*QKPrQ%_yk(v+{`Rikm6Rh$vP#=Fzbw}K&7U?6P=~zMB z_0lpHm(UwA$b)-mU`Sqse5VNXTTw|`##hXz=pS($2@IlUL~Vex>B=VtE7o0)*fX^m z700s|(Fi}*PbnW71!n|}4F~l`lvcM7s!KB(tBSo97B9BzuCggnGG$q0?5V=7ruDR7 zfaDBE>tz_yx2!mQ#5~Y@1+=QK$S5!&mR}fdCv)lzkwxc<+0O%lgwPx?ms6dESGCAV zL}R)-<5^A>4aBw!JtE=QXwd+I$^sn&7T*o%{q~mj68_~2p$$(Xe>pio^f~oPW2frY>Ne#qyw^(Gi#0U)5CtlM21Z4f%N!Pdbtt#S-rPM5 ziE7|yVa#}cFKXmRP%s-nD4G%9n8MSe(jkh^SCeTPj}fsg4e2UgNjRw@)am%=!`V( zrZ(Ki8cFsbi9=A$xqi3g}QS> zXV;hVPB~rx;>DKo{AQ{JKAqG6+~r6P;*$_~L~b`7%;WTX3oR@I#iu1TXF@k=3j=v; zZJL`UzGjDwiF$o2SivwneQ(VT0|o__13)1K z`bCZ?mI`LVZsj;HOp|vs)@-zg!=#^I6@6k{ZtE4x?$X;gENJ}w&N&&ws-gnSZ?`o0 z_V+u;gNlBDiA#-56eGXeU~cushi<#6r9oM`@|IfLN}=8;*|-nsHkWJm*j6tXFWW9n zR5r*Nt3)$o=DMzFjB1R0-)?P|7}+AJewjQjTOCVr&p z9$qi{eJGxdihM0`yXdYp@f)aW+V+6H(Q96jo{O*Tq!`7+5_j>7$L)FVTE1w8tT<|8 zwC|9e@$myzq5F~V!HA^yW%q@4CRL+B4eR>{nnGP56y5opVebGBNBV-$(Nbj(VOPTV z8DO9^xMDj)yns9k*qG)w_kLAwkF675ja5vpe-6E;7~}Q0)_Z*d^R1xRK0)Zf zs&M9Uak?xT0>3A}`MG=2Kpv19+G*6_&`N_m5IXku#0UT#^ovafoW+7BF~O4pPPF5D zw>z_zs7jD5ORsVz^hhVYh^W_u+dg$5Vmu2FtMD=U7yQRiB|UNvdN z(T1@9&e=B&e*X!(O|l6itOuph64Wu-K0P8qBhFrMS(_Pxpk}Q8Dp@-!<)IxD1HWNX z>TD&X=I2510ir~DIrB}5G7v*Ye68}Oq+9b2QPE6oyF1zeO)bb6|`_jj5S>NS>PghFM&@mhWD*wc)R z-LleZCZyWxbCm8FTzxvEqTd`XT6$VQI(KZ`qAJ{MFnzf_ujD{8jhXp6V9lGgo(t5s z8Zdd^VwuAK6D>$>>{f|?l%YMfgR#A1B6{F73kEN3X9=P3-eZP_NVso6A^W90o2jTPQZ5uCeLj2D5OE^F?r~B0s zz!RJUvcQ6XMY5dD(;&S@&0ts|q~x@(b@59}kKGRcgT+{wR^ZAHjEWZ2qx`;ET(My( zm$WOsoWA24IBVs`J_hF6rTNmEY;a;;98Y@C^mi(E@yghFv&jP=a{2;Wlq*)3n_(FA zG?Z@S)8}`c!Eg9TL&I)!!<$F6;|G?fTan-lsQ80UG zcjDy1A~n&Sh)$WDQaIOpaVY4w1!SWPUd+ou>=6q<)#J9zqsY4d`fH?_|)~Njs`~e58Iwq6E@LJL&4v z^zmlF6gQsw9MW*YUf&!XSbo~z>QeQi{S;T=MzY7S6#7`%%?W3qV50Eg>_#D2eRHR!-zzhpHn=L)sk(r+0);{1eR z59`5BqEGel6>wlSWZKDMkoB}fSwe^q%P1Kg)JzXsubylq%u>#viL1&$RI1NR4e}8s zxkjafJLqJ>hL4tu!WqZez*-Gf zKE-UqBXNzaZtKM1=)*4{VS!PSCuoxr$sxZ9LC%E%%LrqLz?>Rv!#-$(Br5=mqj^S{ zPyNCsjJ|O@(zZR#+i`!!Z*z*hmi=_AB?W!5QH_M1?Q0-|DcPn{A(&*O9T1PhOnLT! zW(d92l9RcE6T3+-ygw%9Fow&zD=dCG#_p{LYzFvvW6a*ey~JeaSTWQ>KQamZl)(Ne zJH$y!w_sf%mRxcBNb8+tlWHoUmU=wnX z$Z@(ACM1JR^-NhEoKB4rw$ECA;50Zv$p6A2-^F9qJ1=Z$7)m;*PL>|^PwZwcNu|B^ z9pQox(oycR&oTpRdO{pNn|byM!IW@0+`#qtbQ`a$Bw_3?tlPub&h*wv;`?NZjMhH~ zZ<|=v%-?BOS&9?X(jNH5CPxT47NeJ*>iNxr}IK*-ylB+`nsdA1e`ctD^|>ZcR;|T^imCGcn=HU_++rOZ2TDm4KD;(Gx#M7x2A?D{b-gWD-4K3LXeW@&LC#*lNg_ z$#2V|9Rhc=IRHYZ3qXfd84m9;MN~EorDVw=-e74E!xDS4R-E-$5V(o#li*{{-_7IkBSgtQMj9?DTgWQ0(P%_7`l3`PAlmQuKcb& zC}(*6Op2FEpVqlHpgPbC`c$B+Uk4JXk~|oCN$GCX2TRj1-9&TIVd+3WRQb2=QS?Nt z(wb2morUCDcPTXY$CW#qLmj*-G= zJl_~ogUmf!Hv<#B*!SNni(}zLGw&KT{1?VEcZJH6y%Hf8T1|Kr`-LAzD+Mrac0vc{ zy-k=zbO3Py=2ToG)3;au{mvx+tyR=?qIn0Oy0>@HT}`3%<9e)Qw4t{zK3`d0Cha}@ zCw8SHuT#{>h7ZCo@ZE4xK)6Tk^S%e{i7Q*gwK-+h&-irt!SrsFXYGL+z{pZleksns z?ktC1tEaE3Y(S;7?ioq#l;z9D<)t^zz-x7|h3GS5d}PU)mQ1LElyz%OnjyO<&7Q?? zWu|=ka%R4@;G%R{I&fNyjx!q!&^G8Ir>-|KbzN{2f5U2fn3IfC&;UI$8>7xL8E-vZeMxE=iJ-E}h2+ z!toATK~Q{BJL|A%8av)y1~*b)$D?^Y&C1+sDIOUqIh};f!m7((&zVX^-=1EPJTriA zat-)&<|YE@d}p%=3{WXglbp&WoA!D++0-)v;mkfN@YEC5cQ(qn)A>C= z=H5t5j^}2>zKf>Zwk(d~Fp=LzaX6fl4ZpvYy@Wm$2`UBNyCOO`;rkS%-x(=Ik zugVCB%ihQm4tc-RHmXed>QF20bl*qQg?)FH((YtCw}jvH?DrYO=Ly9RK5Lxx>F&F{ zHCCF1MzFN@V(oIUg8_t5;1K>RwR!w2E>~^xn4OD6xF% zjfSA|u4?DB3PJV0FL`1{8KnZ%E+b}v+U5IAim(f~{i&mQmY+w>)t+gO7lmH&uMyVe z(^NDj-sbHA?VxyVH}x= zAl^iV0f|2`CTO`V$fn;+TAEld{|xB^^j(r?(AZtygF&9_*R`pDgE~o9$m(QDU%>t# zPI|CJ($&9Z)pI;I(LAP6eJ=@63Un}p^)SNBCRY7ABIbP<_nISnW z5t?I<07H-R5GQq*4rM{7Q%niT9&d2S!^a`mG`we7I&e=(co*Tnz>;Dohc`k7Y?NDg zj@E5VnEDSWAy)^*YB^34gF1^2#;)59mzRUvaRRk=CZVJCn0Q>yK?)|)l~{m5D;y1A zU_AcW()(jR;*6%gkIdUO6>z`WvMEQzYiD*6Bqc3QRuap_f|>&8dNjd}uvhU#|1y|& z;PL4AkqXqoNARp}@vYBMQoa-Jb@gf0&D9PdHfi9MLC*9tew3NJO6v~WhC*wo-+lm1x%hF5y<5nu)hUiOiEI)BWEsp~a>Ne9; zpIhj-Z48J3W$STO(>r?A;u%ud6J)0oaAvJ+xzPwD%Hj^HL=P|ps4aG z9f(cS@j?DhiE?w#zTMHpRqFZW>T19v;b-$$WUdVXR1PlTq0Z72WflvP6@hC|;#VErFwucyA)n z4(Qa2m?hdq*KH0=9W;^STlaDBjG49cky0~MHf{5;fkiw)t{~_o6g28mx1PYdyR-eZ zNB=KPuD*S~VYAs;hkV4j8mUh$c)FK+)__G#TWpn$Hn?=tH*SSi;%WkW>8kH5to!$K z+k$1;Dnt_)w!A|FcY9|>ap_G=HTtS z9Fx}3(|IyQH4Q3yGSjA?8$VTI;$rcB#!Il>^pU%C0Z+<>17N-ZM>|hO{ftjuzt(6| zX%)aVd}P&$Du`u*H8tn7N7GhNUghzAbYwn8+Gqf)U=%rzQisn-*D)6+hQ!wWJgmHpAy5)C}RAM&G zZ}daS^H+K_h`kEa!S6(Fl$1KI=VWkqy7OEy?A#B>e5xLq^O~X>LbUmi)rPMaShVgS z)uV;C#t)=|1!dF%sj1rmGYzU$2maV2O|ypD;bA}4*Vd}86kZ-w(lIFc_DVZG_9!l8 z-Dj-?FTIg3s10)?EiEYwxJ)F_L*~#A;OWJdHbNml@(6tZ^)DHh$>zH2>Sx$lI>>PF8w`^DG8c`>JKWmO=HDE*K~4t=HRBnaZdxV$ep$T4iR--|Dx0YZgYKIyB!-fgNKXLy6KxZ zTIs&GGvG#BO>)AjYU;=DC&jTf&d}V@e@ya}{)3~KBnt+YWFREkHs^y>;97DFoI+2g zy7zX>qIenwp&gN|eeVXDs8@+n|~ zO~mYRPmQ_D?wMFA=w5xciFnGZ58aqo*u1J-GYeTDb1jQ%wjtIYs`*_s(McK$8wVN95HB(eQBf2?qvmnJ} za1}&SgFlcoTYeuNu1foYt|))qC3`c{#wphYkl)c}uU$4unlT9KMoQYD3*3x76>f&B zm3k|@pkoP>I~8TyAti2|NbW3!9dqrg{w}TMD>G%zs!(E%*UW@OLCP>+BHR_RA9(5B zjiDcZZ0c{r0jAI|GE8bTOt+Yp6ly5FqiF~~v|gAPn4on=d{je7p-y}!ck|&I9Lp6h zO;e9D4d4Grgb~q7%G6K;nZX^gB5Fnq82b6J-dFk{XC>v^pR;*>ZR{4sp#iZl$2#3- zxH{c|1}KoKM|f7?{YjCz{;;cp_{_3jW%b$R*yrNk)y$3F#t5P4Mf%(11N*8l2O=Mx z{;@VB5BUNGYJqCTXFc}uso=nmLFUtmw-yOqEk==L9o1|GOCaVG7B)$V=k%t|mAn6h8ju(=oo`J3Ntw`S|Fqhpq7|lzHd)(#tI@wB`5i;WprPa+Py>OEc|R!ERrk?4v6g zMaa?KzM-lfV4|keWTrh8G&#!uwdid|Qnu4UM@e53)7XQ4~t(DCf0n} zM`)*w2+Qq~Ldwy;wL7!)T3c-@PDWB@#&9#=xlm*=$q{!hZDrWzqZ|A%yz@_kqedae zP-8#v<#&MJvG~XQM_X)~kBfe>>G%)4+#BV4-Ld*o>W9`B?%SJb+5w^Ot8DTX=xTVk z^EFp*+#P&15$S^cklo6I4Oc#2d$#F7|2^La5 z_yD-FaBkt$;Lu#xznmekOVtkiywPk#N5a(GI!*uSlly~rHQr3vtowHYwE=-BW*fzJ zneLnKvfXk2i)GX39DWMAT9kbxPv2+|tgRC3efgHSJCKsEOZ801ms{`~lR`}?>C5%W zI9ueiK0EsTgYGzL`$vq*))Tw4x5Zw#h0b*w4m+@2F7A5q9}rs8`i*mqv>A492ZzgA z=bYjdl6GR)11%1nw9PTcx!tu-Rl^jeW8AKPeD~IWvfmq$EHro<7z$WXak^jd-_rh) zV*YhW%Vx@aBF%_sF8Dsou>@p@juPpX)1^Byq73;CZ>v4Jt+F8ZBF{w^m=d@rNw;%;+_M4z#ER580e5S#U@HY^KrZ=9k>)s4xg@s=%_ z3j3?d*%hD{elFBC9&3I2CvCR=0R158-j+rkIGFI0TdVj=7LRXtnMS;(HRzl6^vwek z@Z%~ANOje<{1%xa%YG_7^{E|>JdrfHuZps`>|0{b+M4FRgDQvh=~>=XwBA0?o+0`~ z!OF(W|B;YQw>VRHKPmB&40?XRVB)M@wg|3c2MAd-*4ON!)I1};E?&BDV!y1w&~cMb zUwqUe=;Yz?Bs8yE`NV2{t|L@kmSa~ZFMLF>eIc8sddfqs++(RLRnTVcazSRO`qzRq z+L@RcC0%pW_?%?s9Pc#k$%>#?h0QzU!Jy@%`t3Fr_?Xd7l%sBk12#p%DFxdR`@%DPi3oknTpt1ecS zR3Ow7*Vn!zisL%Mt=X(4Wg|b_hgaul8E6^J#OIC5l#vXmX_)`eU6;{mE#;2y>!eK9 zhN?JI&@MgAhH5-!M3b&X?Aw)T(8;?0@&<|Tu}j2>PTu0B z+8-PZNNZZ@S@&(bXo2l@)PPd>(PM+5M~S7kWO9e+=s}P84sMsV74OJS<2330vpjWM zzoxO!R?zTetPp$Z{S`l`bb)KdusMa0CT}iRs?%%6YkZOp0TT^$B45!$mHbA zNd58jrc2{~Wr+>8h4WX-+(+f?G#MP42@uLpE6^?7;}N_u#E6yz{l%6>6p>l)_;) zO_myj>3pA#ImE%K<6`s=^#!_g!O1w~CQ5Qfg%NT_E5L+nz^V!IH}Vi;ak^x&!z$p; z#R9GTYQ|_h9`#+oR}rxIr9QlveBvcQ5)O5=wt3>elde+l0) zwDcLeS(O?8s3!V(-gsVPEUI>=z~baVv?s)RJWLn9LHf)BNErwDEQ|Cju*Ya+g`LkB z9w0#_uW~h3sPu~bH9k0L^vhSNwP!}G%|bqJMV}o;6F9j>=G4{CwwjFn&Nk0Z5aSFs z;ERFUS{?6O63Wo3(8P$Hsu^##T-LhBK_>duz-bmbN)j!;l7^L(JVXu7P+M zMCk1I7%+Sm1l7i?N2dpfjDxjh0}s1Y_osM^vpoxf_2!CCDQdXbC=c`l(&uu4r6}lI zSU>s)?m^0wHeg63&6!t(en!V78+9?S)BEQIMsdH*1|M(3--sdcNtZg1H`sLhf#frq zdvDYynj{Qqzy?~&3dKqMAzivr*jM#T3jvy`x!AO}%9DR5S^vlMxSUYQV8Hd<#_Wcy_8A*?1OFv{&0@-$6 zfikaEWSB2?Z5>y&;E1Xz4fMn`fNCl^9Sf6F6^8!1<1O+B9kB4|c*>8DFx%-P; zsIge!8NpN%QdQv<2l$*wSE$HgYIOz0VjayEQg#d06+{9xs55c+F88zlIKc*;+Ewv> zzog!}esvucMM|688zo=p7DC9u=dydL)-oA2rf4T9u}#5d=j8{KZH@5Moav~yU6gPKcr->7}o?G!sGF}X!up|h5W;IaHEo;J|3wQ`*%bjXqfh{)`g z*(F(tdTA22HboLaKoWNE0X&Ey^lYHLtc;naC+4#Kaf2U#Yg7vRRK8>EVB)J*g^>L@ zAG?L}j1%W{>#ixwmnCKRUfGgy5~L@Eg#U1{BCfQ1_Db_iW(WF!y@s?QNU^ZEfv@K76u5lu36`UZaVft|KQwGFw$e@xr=ryrV7(?! z=+x?^)ZYCBUoCPCaBBQ9N(;JC*M$Fx?@(3{gF67@*!L*lHto%G9C!UOQu`T(x#oa}_{fD0OAmAV%!C#!y*r)Za{DH_sa zy%WDX7sfHe3hsXdxqb4BM`57;jC|8|q{wV^tr{H&nG4!4PoE~`8WhHvvJ&ZkUL%qq z(eZ4XBqVt$VObfN0uud93ec9++q=E&KO-g2rDeP6ARUT3cPf^hj*ro2r}f)Y`1FGw z>d4q@;ymwJp-~N?e;E+`x+)w6FkHtxD-!|?+h-3_k8RZBdm)M#P7>9DtIipKlteHn z7lex+)Q&dn%)4*YU;!LQ{b8s!Jl-^;kt&UWEd1)R1wLg|yl$;btwo>bDgbFgoM#;0 zhIhZiC47UDj0W64EVzm}~vf63MiljgBow zoRe}>Porv@Rw6C!+UNEj5^%6V?rG|4lYZQ8=~efbC}~Vm4;<)xzPJL{FQk?zh}@f} zS&QHUNf8!f@jpW3S+<*dZYtF6ehvMET-?JVf;Q0QAaLFH8mY9a%aY#I6V158a^P|K zlx9+Xbee*T$=sy~tNIm$RI)*a$jJi7nUt(zn+)3;ed>JBVGBpErxI+>g5qe*c_8du z1gL|O!{1GzvtI#_?5c^46yRYH95Vg>^F93{dF;sn8kpFCmEY`K4OS4o7okmCRR!b5 z!08Ve>t`=OPS+ccHzEmE>2W^_Mx{Js);7Z2UvY~vjun`D_P=vxg|)j`OQytXuYN4G z?-^T*aN^;|XiFE9)B7fQen*qQLY^mr&wWVQW4W+lj)gZxAs$h0O38dyXX!}e#E4}O z)UD+lC#N^OtL36nMVTl^E-j!_y?j(Gnv_g%B9zFR-h+@4BfBMU7FlO;!65<(hAnUfH=KtgBy`!3n+CFUs z0hOkr6bS@GK%|2P2oO|+s6Y@=0qGqi^bqMqNQO{7KC4BQ)(vFZb>D;3X0S_#B>X{uEE@4`f@!g?fe%I|U1^9D_z=5Ej} z))P!}AnO`^orgHt^}>qf;aH`Wq*G6mt%0|_)dLi;N5P_Q{!!GeVY|xxc^(#lmi^P?2@2g$T_-|Gdu_xQsuuVjIOq} zF9if2(+k6THD?K>)okT8_A4=_EA-XGcy}k|Jh5I{Tlp6hYc@|Oblq|Co_=H@>@r6R zjOIT4SDUSnEtTXuS?)J7)C$oe93b-n%I%aLq^vuhQs(@%%oNi-;1}VMB)Yope z$CX8=9avP)^m@!14SMMUJV>Hg4*qWe{V z&H@anzUF;%U>3l(S!T}MgaA4%g*j2p-))2~PL-nqAS3i~c@Pi^9x;0FBH05zv!fde zP;qO&E+m*^i&&#rr-Fv%(6KH0uqZoqs@lyyG~Mvy*EuXYGz6ZhBVX%xOw9STr1xmp zhV{+c?HUY;wbHn~kF_v|sf$VQA%3B=&IX{s__m*i6J!rv^jun*Ojn-M%I|yv zPKsBf70WO1iI?WJI{~&i7lSlp2dJZUdpm+t-%`DVa0n#_LtAUw;dV*Bo23r##9LaX z^1?nq|LQ25+oHfeaJ=QmQR5KUbh@#P{aJcYA>$C5*|PYOH40r)FYD3R_mIt`?zH(W zh`yu*tqV_SQ@1NLv8tF878|#8FKBY^5cZa4awhKKHM+7>QaWaP%dRZ|j#~Y}9oWEb z&dvFs73HHQ%SS-_*ZvpVyP+Pgwb^Eh6;Gat<qkn%-LiF-zwDODD*NPR4QBnCPl$!{6@(T}lXTtUWx*U{4*f^h zM%{}M-Q|{dglI#ZNU_`I-b25$vK<0Febs~}D9E^#xbCdBEUYiJlIRuQVxfN?^8IZu zh>}B+OfAS`m%$?}{&U>5)s%=KdAsk~j&|4-rSB~h>0HrfYYgym7}X6*CCpX)wySC0 zwkIh~yILgumbi9z_u|zYS3Rdq=^MMe`Od-t`HZ`0-MH!&pG|sgx&&zwr|8D|*3P>T zsInt_MZHE9`nh(Uy#&*R_hwPNA2vhCd~_B)bqGh39(8=CFYWH(-_4{OCod`5e&#Fx zR~Q7=4M_(k_ej!bz+VucWduC3apCoy9+SNVhC1=}f}PH`1qCSFf2WweASxJ5F3g$% zK$G`Af_5}gO2%1;cYpvF2KGfsb^v%cNt|9jExv5P1_Xy-zor_vjB_CM7a!j#9R#Vw zQJOwHf_uq0MT=9599iDHiyII`H~kyhdWbQ`L{rl{ptV%sXB&gWLcaRuRy;lWa!k+~ zR@S3!#wZ3G8Mms&Qeir7@vk1KggSpj>ggp<6K>0co-Y<^QHVbTxQ4K_>9Am%c`z!H zocam}cUKu!*4PZgYM_)zXTod2#7Tp6|2M=vI&J60K3eBbL zPTFI&^kwNR$;!9fcP8<@Z<|r zFTamSK1CVjXe+jicl>^Eg;O;V_`=Xb>GH=RKsMK7;%jxK|C6yhhDv8|biYUbZx?_* zogp+wM%$IqaI{`LIQXkRP5|hdqkVFSiq1PxUj(>IgkANcE+zUT+~_X=gcT9id<(Eg zS2JEI;jLkMc+3(2{dIkFY0K$Oyqqi@>ThQM=!zh7PLB3WFT-CD#C$I1fL=fiM_%MR z{z!jlalAa(g0w6%4g=B(=cKpz{03!jWFwD#;qPUt7wf|nhj4lSuw9rP{=||0G3eU) z_u%%&$xZSWs(N)~O-p5OD1gjMO3s`1MP_@&edL+a^w+ry>6KxR;$QJ0B*HJ{n8l;= zK3G2DN&)%vKcm0F{5^?fAX1Sr!!}~vJb740WMk=Bm4gNQ^Ic1`jr&uNkgtqX{fdtU zm1ejLdb{z7wfdnVn~ynsq;W9hoP{Wo6MmPrjr|0}x$~HowCH;@ie2#)9y!PHCDKrwGL09dQ*S9H3DORea2jN~a#a6?*dkb)o8)uBG@n zR_SEkkK%KyPavx+$@JiwLuVFnnmyq3f$PE?2g4@S!|65E{LIHsE?6S0ENPR0pvBh890#slH%{9$&eQ z*rg%-D?=r%^eBblP<0V^lajOw6c@X$Uc-Yp)zroe0+!Q&YLUP3|L}O~!SLd5-YLnq zni!cocZj7f>0_hS#~^=dDOh|@(;vII_6H>`T0)NSFW<+PMC!H7W5r+LrQWrtdWouI-Ve;rxYnqSb4Ea+d#n)~`Jc4k)@?eh)Edo}%6k|D#XI6kgAU39FJe zW?ww_Lxb!`G2Ae%-L?gOX^8*+%DPYQEs~61LD}yuRWj&aa?_~DWX!(J=wRGTRhZ%N z3fJBI)_B7(E;jsnTv5ww&p0~HKrhX5SjmAB-{&-)6T3$7yKA<~-O1h=WMP(rYajE1 ztr+Z$&_BPT_C)52e@+@r8$3Wq*C*OHYk`?>FZVZC5H{d2qE2-85v{%k|^1YR9Rd7p;Cm9R920{FeKW!$s% zB9(OOdRYXq2gNfwBS>`6VtskHSAbIoxzf$(F#(4HHBE766>EvQc8jWuCKkY6>tE>G zAPP$nu^=Td{`OSKq@0hfS=b8vck^y=wS6 z9qI*Kv{&n+?Y)*(M%EK`7x9p-zl>c*2fv+vGf@b04?`1$%`Sc%zN{dO8^fb%cX0`U zuPja&>JD0NQH?vl28WfHOgk%V|7-#9wFP4c!7k2j!x_30Td5vXas?q@Tn=T34fa&M zlbo{FKNnv-)=15Z;@tEWxGA-{SfLFDPkWdQ%id;ff;1@awaHestNTyGd;^>fIReN& zu)ujI+du?N+kyc}m9%$XEp{2O#|QsTu%~mGX8#!Ooq}6 z1BNSZEC^v;4-0GUzJFY!s==;(ys3+3WTc~KQ=7K(ntYGZ1tt~u$%TT7qD1R!>%FWP z3tuLx&*_`O&FEHt1;Z}zW?dCG8z^bjc0lBd{n14gj7{`LFy2b3GrmjgLLf_PFy#YB z3l0~F_plyuRqh1G52YRW+sxu3h;VQIvl8zb>`i-a4m8^#6N4jJ95ogCnVI0K52<1C zLBP@c2n9j5`*h__oa|EYx4@b}8N(+qRLcrm-1v155Z+?(_ojef5ZR)qbVDjX{IiLb z+rE!A=xoMimd`?3kK#-`GvTy2?5lTDXg3|m?oq<|AMVv%MIc~85$3_KWFIWOF=zr3 z)GXyYPNviY&wUDcX}<3*NL}~=u%s%2pfyS2;gME_#vy1)RF+zrm&sz z-@=X8g+h8#r(4^oSG`HoJbFSInT30iGsdeMjt!(H0Knl*Y~N>lr5d3-bDq#d=B|T< zp^$z-kYA9deVh28?kLrfIW2b#KpUWLk81jAWm_s61r8QIY!ulL9v#ow+}L;Y419Xg zXg*?M*itSOwImS(XKUheTSttcO#?5uR!CScMxWOi0E*vAimQy;yD$SVp%CMN5Jt6= zoCfUrt3fg^=lN7!L)Zi@PE04)8{2N;nAL|Kqqh$(&XO6{5B>#87`GB=kOijBrzyxd zMtHJ}KF!!D2z5%fA{bEja~Zcf=A_!Z7^7MLzH1gwrFBq8i4Gj{jYP&+jNaMQXP7Ku z7rL!A@m2bLot~wfclc=%%aK@!4Epzk=|DGW^cS(Ye40gRgt4#ai79ZBHV428~5zLjP2@eY-9=(Y}OCk`@MW=QmyLBe`%WAE<|$rrI{hvg}fUTT}` z0e{2nrp{PT-gx&S9Sprnb|WZVf3Yy`d{IXf_0q$i4U&^i8#K&`Ig*7p{`mxBt+NY^ z5ntNvVD2`O<>GyNHJneC_!1QbaaeeO8_xRx9S0B=njc}6YjZTE>9xwZ$CFv5)`oQ| z7jJl3Au4h2{eVDJe+HbJY6(wGRXmSRbZ(+A9rV%#BeJ>S4WR;|AwWTACfs{^%YbK- ze-1N1H;@};$xmpf4~B+l)@W-w=e!tb3@jsB84%8CyT5*0uUkz{jk16V9m!{AftA`N zXDel@KK0PJ5?XREX_u75kt{7H>4E$Kor8KF?BobNfou=nm`!6|+TahX{0`L!8skG> z`UV^A40uDY3d4guL)}l_4TYirXYIEMnib03c*eesfZg{;4=R;!*ue`rDr{`OY}-EU zo3Tag_*t$UdO^pNX`Y=Hh{3rttjTj%IbZJ;*5&TN#mBtbKtc@veug zJaPGsSFfmyut=;d36&;sbKGf6Z+-zb3ZD3Rcae5773Pei zJSQDD$tOKZxC!n&2nQ^7Ie}@o2V|clqb>ms@9EbeuS@>$pRfL z2FZrLA7oDK;veBg@OMmYE4xa#SbWsq@cS*if$9K&@q@6`!?Qmr0Yg|FREpxDa|QK& z45Z@ejY%V|$lvCGFhN6no-#i3DJ^#i;$zo=MdKr7te;Dt_{xrd%S4?$$iLb6p(O zh2uz|K)-pRZ1`sZA4>_*gir)e;OCVtgt;271-SXsiej&m%p6$SoX)U$(^-Qe_RgM! z>bWYb@t`*N_ECTlj+%+`_v9wbQ)^$#M>Qf*dHtz;B(b$f@Z!gAuBB#d$LETM z2&7z%Q5OP}s?jhPDuE7S~v?8{*BI$IT{+lSC(WdNZi znN)fwoW@;B8|1?(!s+prThkAe=sFB^@PXLrD_6PUROktlhml16${PPVmGpx9;cw?x z^d30Mi6ZKO+MmIU+La2CtjW{zm;(Ma!S%HTS|(#in(O%J=%=*+5oezdC|6t{@{pHy zrk`bVt1*d^dGGEp(>iiEpKs7o6YJo|YFp)w>8CTd_4%L{#|2zg0fk5N+v6};|1*g^ zdfy3~FVDZ(6(+`hj%=z|?b3^FDt~4}lg$Jx$>w6Q4*%iBOeadN+T6*%MIMk16?wH& zHnjArbgAQ2OWiN)pER!ei)>8bPCNWfeG2J81ID>q8GI+Hd2^H+m7NGR$Qm7rpQ{wn zE-&pUPCh`P!U}pyr&Z{u#Lf#Oh!SZL<2~aTxh`%3|H-6q%m-_n{kj@6uL~jsR};@oSJBijVqT_ z=-HPPCg07toA0Gv5}hPOw@Gd_rS-G@sYO!sC)b^og3{$wYR(!(6t(5#yM%uB)>-BB zr9ea$_fn!HJ9iLiWRQ8=q=egcxUWNEw9geH?b*3h9Z#>T|QPA|qE@_k%>MdB5$p9@W(YezU! zo0Dw%AK$zrYPu-G#0u!O#LJX~(yb49*{qd2X5XY-=r(V~qxWsryz8`;HNRC=cT<#_ zy`-&yQ5hCf#W!rf^Z;fQn$ahIfSfdKi2%X<;;ac}snDAqG3lGCG>&xBqxH}<; z4u+zIH>ezOvoxy8YLS!mS)^0DFO8EFmaeQ3E8YH2OP}Sv`8y*!;CJV#hInHRBALNB0)cX z6i;O)W&pnI`HNm`dbxv+MddYV+@xR!kcK?vM(wv&>}Nl$UB*vF3t!)vqt!s*ZG1+2 zxp7U`?h@K+x%w zx0A!GU!dM&c|t=dv}4gor$Fz?Y4{6Mv5X0Z=Te5NT?z@sO+d>)FfJHLzGC(Y6Ry*D ze$rZN-80DV1JE|wrQq)@nPnh%<(OsAa+PQlQ}q3nD5YT=K*yR`&qYZba2UoH1EGYd zeb1=8er~HtM(0!ksps9SBm_3dfO2t$+y2m>+;2WeEBAJ_K%%%rnq+xp@aUqmNW#3m zfEWTUC>8dmiiefvTBM&_o`&rMuIs{z)Z0iGL02|k(M50UsRUrNLWq0wBg|IJUzQ}E zIEsVjG5sw}e?r}9k&7=^rAp!h?Na>_;t&8I_gCE7q^PuYD=WBvxG6cpG*#WrwoBdZ zZbZk~QHr3pkNthnFKz}9VKBhD{^=OR7yw1Se&0$ydw%50hNO^zoO>zl6p^wn?X*XM z@sX%RwMs|MU)CaL^g@$U3EZ+ed`a1H!FMrj7U9+Lp44j@3=jmR(T!&rUteK#AGSJ5 z^jRy^l`b8M?NS>WueIe1Ab*R8nR0NC$$3>a>KMa!zlikR^SdC3!S4;3cJqkAN|b9l zn>$mLQ?Bs;i%$L*Ew}f4F?l@6cxCxyVn$$k`d8_95g=Y9GGQw<9YmW?VfhXXKq(z{ zX4`b!}X``DZPLVN)Gf?`@{Y)P#I({L+!%%z{HtR?;)Sa{`{)8Q{V2)DnE%A)V=L3n`X zo{n;g^i1Gd)O%O<77HnHd+gkEX&vZ7d?aAnQBF}$HXmsZp6JlYcier)8I7le#j91> z{KEVCwh4_l@$7G;J6|}{Yt{6rY7;uwoy5y@v>SI1*7#_Wzg;;Q|4_Bf7iHf*P>->m zUKfqF<*P{{OV9~SyMP;`L@ria)?i<2M%(4Q$C4d;f{$!Q<3FE`as}0VBQk_>g-!UQ zrn@@Olp3M^-EuEo?(fRges8r2UlJW@b40d>mp-~^2kP?MFZ5Y0HdHYL)45`Mbb2d_ z{&zHb?wI*Hq>Zm`@3tO*NK^RJ8!t%Q3U4#APl53AOYiC<`+mvr&Z&1B7i8H-4maWF zr%uwCx6Kycvk=>hY@EUU*{n zNu#I0_SSx$>bA-yZQC{sw4u87_4f{)fL*z1_}GmU6ae&ycZsnUL31C62ohL;)dc~PGivM))UmypM!fwW&ZIxgcxzyE$xJt(!|hJkzt4Me3Gr>ja^~@h#O$WUDG+z5Hrta zFCQ;eG!clF$l0+?IsLcEE%^!1Tv&KI@$zwom9xYzbW#x{!vj12=a&wR1oZt`ygzvJ zW7JTqWBxj&?n%mqkOf6s6hsOF-~`9-IcbQ%=h|MTc{i;ZZ^IxLw{NwDre<5}l;+l~ zCG!e}A-@7LreF^bQIupC^~uJ9@bN`cR*Bp-x;a@tolO-WK(F;B=M^yxBs_+1Y|JXI zU3p`FbE26i1GV^8up0Mz^-hx~Y>~Kv1>k5;B=3$Y7YxvV(a7)zm{3b0!$joZx089O z;_y1>uFlh~mSHsVXbt#mv3osQ>yLQY#msSC6pQ20Uk-w#+W$bK|MSE9zSw~B@1=Ji z0g}zXqNy_+GJo8b#GcDKjrpFVA4|{xSVK^A%^`Hnr*q}v?E6Epu<}SQil6pv*KL2b zPXs0=4DDKl*(-`aMS$`94Mgn-fV1o}{!cPg&wJ<<4OQDXo(bhGP!@6V!CzIpSC9f# zoPq{O;$N*xG}h<_*apVzH)``Yc*9z#aBA6*78!AoOu;5Gy~kXvI!qASClDR4N{hjh4&2-`J# zi6KqYeUwZ)YOvW4ML~A@T~pRgmE*DGIz|)ht;#3_lh!q}I?5zt{EavcqCf^#fmf4< z&OHS82k{VG`*$e^Td!$cbZLyzVi_xk*T)Rc`EsF<^CiB7`fN<$f9wzc10y`TbEfr{ zSwz}_ZbR@H%k2BwIkDfDYdVs( zgq`17+;~BcH_%l~lE)a2go!OdJIhj-Qga*x$(1-0$T0`DrWcW(Z9N z%tgHX1Q#gAQ4km2ocu$KOPqhn?6!W~cvQHQ%PnX|E^%`bD?<#a7&A}*_;!7+kfe+t zb5t0*ylUl^)xnc9H=*fJCM#YC-xm%4`sdZ>O}nF2?foX zN_uX>-4XYUXy*cJr|nSUw5Ob5^#Z^hak~?<&>mHI@B|nlTESxrR>B(THotQ) zHLbrzZ#uLd>8jBt8nZuSdE~Y=ab~GsRw4oXw}o70BT<4T33+{vltQ%z)yEjSqkkc^{w+# zzKA3GnzlCl0O#$Fc-Pfhq}(U9pEISKz+*yMC0%=+xr{K80&L701vv*ZU1S3Xr24ub zuEx5H0kb)+izIDiezkTl7haj0KQx7Vb29&zsGOC#vB6z@F2~2bBLvj*6J_2-Uz0MU z;O**sCj02WohO#Fv!nn#v7>Z|nf(1b=*rL=a(H)Xcc_m>J;IWSp(_lG(X4=^ zc}r>PbwV)x$-wrTn~c1#v;o;!>p% zHxWteyhl&CHUBw|{)2s8vg^qd)K#di!Lq#>L(voA28sBgwdZ)DuP?zn;*e<#cL#9u z7xdPRytm)@7ELuPa$R}Q@|q!Qv4a2oAo}Tuj`PnYfgq0tjB#ag5}1e$%bTLdJ|TsAdu0kI?PdK z#&ljkkAOobYT5|L)~Azf8D3rLySc|{k}QdcSiF`?)t~^y5H)<4nYmw|+@TK`3p*zZP9<@nua^ipDp5BZv9p(>fX>8EU= zXTG78(WLQSxuSzM1*LT1*yt4#lAkSQwot%rfcfxE4Vx8L#vtynvSDL}rLoXd&hn@P z{jNTE{baen)0Jl^RHu{^@niC!z04s}#JDmiKUWZu9Oas})&JbTY>Bq^*Jz#?;zyVB zq-(N;IvA21v97Xq^o_<3_Uyp-MRFZ{n{Q07fV zR6QHF!}|$@GwNv~p+LtYObHLS>Z~M`IYz!i+s)AHM>|hSZJuW$`yvxm)`6d_?pHy> zm_};d?V84gsFY6AUMVJe$2$zW5t7R-}olnM%$3wb_(^sB#{II*x-_y11QDLY}-%K zB0A6VCnFnf=n&5EPOEY)CS~gqVJ;^W>?3rr!Y2 z`4LSF5`v2ZTTKr1Dw`@ZcrXx!;l&z|aKi5G&F7|EVDbr=^02VKbx3FBd945z@To2t zOI*)WbFPLId2v+nSlKe)-|gA2u=q0ae;!5R?bj2(QC;*^_2h+H&O|+My@_EdW)FpS zd_p{mzJzZdk<VTRbCTr!9=f=+MPgngcRjGn13ah{VKM8mS$;b!T$NJ#|Ior# z%#2jjqn7pJif0*%71Z4`e1CnqHm}F&!vTJ##n);c{tvR5{;2(Uo z+7!Hc?*|VRKl6uJHDaTz!#*xUBHLm#hv?=oPxA#l`Phi zuZSR?RUT0tAE3MUWciQ2&GK(G5HavA7|U#3Eo{A!#)?Nur}Zp(L*2sqnrSAIP>PbX zdD(ox2&>8amP7g2*?jBq?CCM0nb>F3XcCE;e4cZmZ8s2-=UjOZ3C5(t14T|nFqYec zOy}Cw#{YCkW9MsXb)CIBM5j~)aY!mB?n(TL!Y6Jin;_WLS!ya z{t@1tz40P(U&LPw!c2Yaie-x>2;vo|*sMzzGirt&!B z;csyN(g+WIfBP9?Y(i%Bn5P^KDKD20w1GBA^wAuaFCS{ikj zbc<67g2)VK(N8^Trc>US)J+y#yM2Za5^*T3qUzM6ptJWM>cdl>7R@$}_A^KsI1i*L z#1sh_JMKi{f5{*+dDoIbZ_6z^ z=xky|^rD8Kgu{$rcN7b-51;8VWHrdMv@JqCl#B(1ZNaM`bRxZAO{#Cp7| zn5J@~HH;{Z@_-~;^+_LhZ+a__(_eft$QD4FsUC!4YKLa-(V17T#5x`LL!}H-Lh8eE zPZ~cv9YQ_oJ!uwiC|wNH-da@s&R@_EaXslUm&N&z#_sxw!GDitbRO9DXvOE_>c`$487z)We4XH@JVooTKB15RWZ;8CkdR*SN z3}xE$iw5n-h1)mbcPCrWcR-NK-O#??p3~LD*{MydZ(Yo_stZIJ={KihcOtHnV7Zj! z=-SX)(+4?wM(bElS~P8T0JN#U-b1vb=T8YZSn%cymt7o9n#Lig9maCP>0SXT=824v zbusbukf4r|F`YPN<#{_>aLh0Wlwi|%iw@L8AeygU&75d6_P?EFGDU~6pg2OML=1Zx zhzcy}B15Wdo5=B=-XWMI|MBAYQ_5IMf$Aiu@g~+$fa^{}g%Ybu|11Ry;(hV)jEkwH zgs{*lF%BLfT(yN=kNszfB1$5UFz{4JQ{PsC5`*ISlEG_9G?yd`^1A)i*{qC*_$TB3 zRrKRc38LrJP7|~ElGgcsdWGKiV!1z2wq7`02 z{4vLfE>5{%s7WPZ{U2(xrGN~x*I%JOy-UKuwOso(gmY*~qq%C;TXPb4^%& z?$uFdYDg#eFd)><@S#8}nbw?P!n%ipgvyA3{T-7wkBbwjs17^55#ykSiK$VO{qcAf z!$%vP)VWvxDHrOwddT&4+VuR7{_&IFiO(L?aKE|(yelfC^!j!47{;|p4Dm7O6{oMO2ge8D z2ckQ{Z-8sUbUdp2wVPWYj%WOV?_SYISovlWFMWpImk~8JsdvfmJ2%a*87;|M z|1$RF%KqZ0WXvNsxyTn>($*>A=-oQN`R?hxX8g=4?AsPi%}_EWI101;XO@Vzjc}6H z$Bf140B4CLZFU$({=S5Mh?)-#?&q~Py@AEt%qNnUCyTs0BqE+8|Db1=9dF>2b7BcnBY!0Dwa7e9`RFi z+xq)djp@C|LI5{XW|vMzSgaN2_4Hb&_m9FGTgzTF1dUfDZ&HI{bq5M{A74K7G?2P> ziMo`b%}tWH$o8AKOsuuYmuXdT*>7hgNfH$mE$LR*Mot(z%tTYXczEa5@UKInX7umq z{5Rrw@#$J0WQF;%(~bC;_kEhntV6Lnn^|V-p16n$T}jO`0_P@97`dI;rqP`FEP|&& z40`P*tv3oN7P?cf>Fl?Ad!ncbOxvy=LHrU2B5l{+x?X?1e|tx)?KSRD4Ks%RLt9{; zP>@)Wfu3?{k!68NKu6pn=?^JGYmdzT?`9#HCndJIrQEf5`3YV z;{6=^>oS^y(6pji)+0bE@_9u_GA^6-&pqE<>b5I+${>11{(?}xIqUHkw;`lF^zQ;k z_=ioRy12=5T|Q(=t6$tGPp#Cp_~cHWs-X!imnk$LWid4lzVw{$P}qAU;$HgA@G^mvjd zDKgVA^IT?+}(G4I~2H*UC^_;I-l>IjrOh={&k%pQRSZ6T@2jn|*?HwV zhSg4|I-+PIm*%(ZFik<`=|X`x2=kmo^@Y!4Wv;e#*7tP2KV(Tkul4bE4OId-R*%j_ zUd9o6LCb-;q4b?#RWg`3V%d1vs)jId|L5b|?;v-`8EyYw^QyJzyOn+X^!^iCy)=&Z z^(v_uloXfSW4$EEivif52R}d2?wEy!%viq4mbz$^A^5?T-XW-1DzJZ8W?rDPFMp(W zs7Wkm%eimN-$qC+^C)MjD5^|AWe5YGbPh;hazDJdXld$MD;~{bhjQ1{5J|*JC){rD z;FH}f7dW+Ll_;&yD@(riE=hst6-f35KO=Z1u)bify;n(eFmyby`8PlPb$ba-x7Dv3 zzaz+Yjwfn(kLPJU%4^B)gvnFPIbGz^8U6iib z-NME871zde&q{Q&X~AYY$yH0(71dCA%&6Ozf1ioJhA;{Uy>LG zin;dKX`S926Jgpamo?Qy?8Uj8yZcs&glXJZwr%4{K;}E6z;d0vwy0qTSBqm!BF1}E zmR&!91*>$*ZrQX0JnuRUCD=EICgfTHq}a?^;!8c>MBaL``lmQj`G7(l_VI1=LFgqe zw9-LznL>%#>z(WwEF4MJ2jaR^Y!c3+iwVX%DlkOd0VTki&-X+bvg!q z_}T{YBtHxI%Q-Jce+TbS=1{g4TwGi9pgx6mgJz196VX{I4-R8bQ$Bf@cm3Vo2JTR} zph;dwF7TJjGCzqzt=i$95eYoSL&tcXQe)+BZ2-xS+wO#+#JnS+^v;ffggipJOlS3v z(4GU@0#0VygL=OA7VwFtDK^n-&)tU9>>Fxs7Na6$PP}C@ox_@X9o;YUWoD-@q1L*( zEvx!(++e56k!`nWf!<+T~ES186F%Hg4jx%(iQk z81_r$fHJdj>|GD4HW;IE{MCLmKn`@PUtHUJ%G~~u zT^(}<32!TZF8heV;H4+V{2U^ULSDs9jGb>4xAK99@Jjv^2 zO+%zM$6re@zjd5FN}Bw9)^&VF<~ZNyPPnQ5c57fzMHiRROZq)~tajyk&8t-DNuD7; zomQ&c-Jc@d{UpqYcalegu$1uKKf2lBmor&8-X>y(cPp`(=cZB^j;Q#O=j1r4^8T3G zt>48Z5>4r>j0Y3y3)WUy6mz&-DjE9+!4mNj4KvvFI#kFG2pGZ4VAz}&rZmd(BLNj* z_jWdjCB|{Akk_fGgfrajb=Fv}rdoc=u~Fu1k%Pj8fH7o{9ocr(wzXsUV0gjuvj4YE zee!9CN$c1iCG9(Gcvdgt@>v?crqSg>d~+m0AC5WH9{XIktItg^WmT8|b!t^X;<6S8 z`Dscu5!hR6-TJe4Lyr#^R!7lFrfZnxs`zgp529DUMR{`81a!P}EXGf}t*|rm&3|%zr-LGJ>1?c2z-eqbU1PQCb#{wCwh|O-yfvBadPT?f zR||67QAN^AYcGIwFi>?z-im%bKZ&z4JVLVM|6w||IcS`{(BeR1$n zg&Lu^K)T)^31WkO_mwxBvPVK zldXJk|MakPoL9Y9{BBNrGX=jBp1~dcG`3xlDW-GS9M$`r=Wr_(im;qq4)h6i=5cGF z&E0da!`dA{5I-AvHxJ(?@Tp<$)tZfT@zPq>$&|c2rKQ#$_o6u|aTOuQxqgXX(sY`~ zzsvK9lA3XR3xE5~7`rG-Vc#Lm(iqo0RrRiOP{6peNtx;LSM}a!AUKT=^q85y;$-N# z<-m}##I&?ffWNbU0S%*d7YXkELrd5GvbSy1@+N?lk{* za-ytd$0w*vbqZ-hXUCX8P##W{xj=t{2)7b+bvV+57}mb z-}T=SgHAs(w?CDvsjLpTaJ)q#RdtRuv^;fdS|Krz;P7hn&0E`Je^Fc0N$d8`mft%6 z;=I46sO7p|TJ%Ne+-X8umewDbB#-5p>j#KJN$6GR{ueXPjN8$l#GYM>Y3zRid;-{< zz54*+q3N%YatByrE9^{c9h2Ah-zOlk?Wj>{=u^TX1Aa>msyf@L^(Ns+R)iGMm@P7W z39Pk@i%g#t2uX0|aSMZHPi1VXY4%P~0DgAqSjLsc?|G7*mR{jrDU=f2-_=xtX7>Vu za6VAPSNxZmT-b#$bS!GM)*33+$Ze^mDLu`7ILRA|E>+Ux5;TUZM(tgeKRMPe0yN*d zeOE3_Y5Bt45Bi|sLdN;YF}{z^_yY38!XZ>T0-E3&_l1eFL>ni0Ct)5{)@NXNH#WI+ zUQ`GApGwt6wD^UPR`%z!HcU?{Q_6Ok_K)Ra0llpo=1ivfHlD@`ESPm|Ao0k^@WkQlz_E zCt(x2w}f)!AI?kD&N_cw^dD`Nz_#}!GgD{&+yk7WH#+2 z&HasgT~1Bn<3zP11PN8DrjY=`(kWGAtyXzxuk{NYI#|MOBHqwnCYn`-lF@4|?H^{Q1c=m_y2^wPL(K`uMNeXdVN{lpV%& z{y(D5`k~484g1>w5kZC^AUOpQkW`c|1*D`z84W&kjP4jil2-q`dT{ua&}AB+IUv=H)4%On4K9!ADG0dgYx@RtBnsW3r*1$g>(kBhmyqk(g@g z$cu?~D}ARRrwhLbN~-bU)X7xERSgB(URSyPAPO6 zb;w@RZqkcwexllR&y)z5c4Np-FK~Kf+P6VsC_fZu8LfZsIXC6KY`z6N=D)3PYY3Oz5hGC#$(OMy*{3pa)Y*@vDYW(&{R%?EBD59 zUOBI;Dv@e0+sl)Sb=Wdpu6q%r4)kXh2;I7a)wM;*v=99a}6FP86pcEi9X| zE1D#xL_|G(69W0N{GIb$$WRFq?W*ubP8k%136{uA}iieSPg~yzHIqx~GA!o^UoDtiLbnF$_?{VxaJS3g_ z@>_}z>SP^IoeX5mZQH~{H)MLa=X*dNnZ!{ z>M~qz{zLAYppH5&^~4?XsY#ETwoP-XN|-3hc8Fl{heJeYn7cav{tJb*=m^=$T(?86 zyHju!Zi}o^(SdCOfh0f)U+3Tz=(FKx&(+hg%1oC&eECv-)trnPmJVA$)mr+@vvyPL z=9oi%Z2!jNp88}}wwYSL?yyvu#K)HjF;M(7cGLBgF4GFEb|(Wq!51;~Do{}&G#>%; zwo-rC7CS!ld-0y!405_b<67YFk>HE}YJB2*Oij7ZM8fM+MwZV@*>L{5{_OW!qdwc` z!cD&H6hL`0mt*34F9~eY{-5P1mE9h`n5&pWk_(|rb0hEH&#WTkzdKGQoA|(w?s0*j zn?e^+Zn~(aWVW8d5hQClJD$9I9l4-4ti|r*LM_aVo2B~+Wq2c`msi_X@6m!jERSH1hY^Eh_%HMumLJUZ27|it~LrD>oK=9dg=E{xEYaeLFV-oIXNW zNz$q~cS#(m5DoqdLeW3j3n1c$49?5@RrLU|B6~eR%K`v@n~ROn!i(2`Uf^+G$rd)2 ziRwVy&hNhvE$F^OzR&q$Rqoi=jATzD_w9Adp!89{-%}ib?(EbLah4=^mSj&7#N#+8 zwD?_CG=seCm|VyU+ioE%zP`}S8CRAwH6;}+UKApx9_eKvvSeN% zn-6;>ZHS>NKkaqH=!Pl2*|5lG!*&cD=83W^Hh;X8`u%W_B$LA}i=(bv^+m}I3SEe2 zqA#)Ni_R#M{!i#DAp*>MN`|`B$ebw%rC;x4GMk4%UTz}43WEKHLpF`8(*)T&7l{#V zuXgxm1EE>_@40`UbqTJ<9QdtpLbQE<82pa~V9+%pZ5j4gqRPvwcX31;*kbDFBmeMgc*9#5LsdN$y! zw~*Ts4zbZfwTJ-!F>i-E0T`y+dx+r^rol|ULV+9Ve0NBavxsykFJg3^?g?>F(aOov zen^q?0vw+eba{4+%~_LPlc0YButu0j+|O$|bcariRUsf32+N#K2OsRACOzo!`j-A1 zz%6|u`*GfIN9CG}Co${!O?-)5RVl$1cpo(^lrzI?PE881MKH)`1uW+b0T_%HNWy^$ zf0=8uzh%Kd#Ms|xTEAYVVcx{AX4obo1yVA7h$I%8*1-z!KXjA^^K3?u1MjLyAh=(x z&mA-aygl~Y?~QzLicR(0Of2RCfCHG-F<|(9$X4g&CQ#$aS;t?hWj@G|Wh>oZDCn%O ziIEtU;b|h<}6?icH4~G*2dG!cb}mCB96YA;yYx$$Z5vM z#pItZBXDIkgI|x{YdBU6>Fp7bN}E%12esT2XLzCowglBgoZW5pm|?l+FH(buBEMPi z6L|-?8ByjO_gdxfui;7;Ph~*R58x`hoH{dzJy#Zsm{ZwNpLYm+weSC589J0ygxu|r zp-Vy@m3O@xv5skSa~j!+LARw|-^#7uX^k}MV&ZyjR*Abj-td}vXzK;l4o7FvJe!*e&cVT<6v#j?HqD>MOn5uirc^< zR2{9-->^0N+qX^^%9K7SR%fhq=qxXWkBB?Q&XK!-v=L@SEWq%*2oIWa5-LSV&o`W0 zMR~#>F=B!oePu$qmJc342N2F`J78(k$+vEgNs2T)W5k#aeyOvXu*=NT7e6YRs@T+f^6uV(C?f&&`Ktx`+qtyWSUFJX%>b_?T z^i+}9h~db)B*;9!)6rR4kOhbo=!7pfW9MI|+8&F$sg$UsJe@sDOfrO&UjT*MDHaY9 z07OLU($&S9Tw6LX;8pUQp!+$Dh$Ka}X(N!a%pV`0{kN2=KTnB(KR2@Azkg#s#F%n| z<55T;P^U2}QIbI%bpW{c+5Ym5ySz!;l$r<29a2=!L++y2InEiJELwh_h*?5?Mw_Qw zrAdv$%{wsXQt&^WzdGm$(yzngzqGMS_CtFdf^@tjlW!uoygNGL&U$uRg@Oo^L9-ID zKKdyJRnfGVwNB9MKxKsWlT{=!I5G91<%RSA4w2OAcHwWIU{6UM)0V_uw|$J3z^CZ5 z3wJp(KIR*rHldMuo0RwV;A|ET`Lt<@oi3kknS^b|ww`?6mD$qs6#G+K?vDu*^W2)e zEo{J1CdcEP5hnTb9*J~2rTKc61!e^(tVsyxj4i%ZN(^RiB%Z3i1pM(h1<5mkcp!Ts z;Ks%NE9xATT;Szz5<1f%P}gn>_YE5fP$hy~!Y34L>H*9GkU#-HOD%Ln3E})Z!4GdK zR{th(25`Gv5C_Mtf(G)C%yp$NKSftSaF|&)c`AR1ypZHg1SpWhfg{#(gr)uBJJ|Zj zXNhr`Tgz!i>)hf zLGSsFbC7=_x!-x?;;*bk=&6rt1)!>6&m%s0p2+Gfxn;I6@<#^@zz11!*DMjWxs4wN?0-&2)D!}3YZJOSt7jYp_^+x|v8mvjQp?{TbebLxPmF#} zv&9CpF5k;87<2=xzg;J--Qt|7j<^K;f>Uwh9jSd!-%2%e@LhCn{o8`Ppxm|$Wq72$1@XMvJ-nlBUBwQE&2HxpBgGZZXe2LRa~$ zNo3osr2%3tdC1FH2jd>i5$WvH!O}Pc$JIRb<3W?_1HjPar%{Nw;sRR+8wUf#WKEtL zP+XqXW_zxxjN^@M8F?KkAZOpt#BxMZ9r;SBcKB+-nV@F^@xe{oKxz7QNNh|$kSqGk z3Pik)M7SQB68w)JzT^5@coPA1G4LCHmw^6uVKczNj5k!Le624=u@AZdO`BZ9Q>;V? zS3k1_-fdiTo(3UonGhBm2q9SWixY(ho)a}olOV7pa4_}GI;4^>vgg4{WL~7xXrHo? z`53b?aZ}8{V$bv(Jvm`pHaUm6vxt7WjCm?yI3l^ARxJpX3It%WU3_qL8bzz=A6*KR z2A$e%BP16bjiwe3Hd#62cmdqO60 z`u>Nx+{zztNW?0aBSt>95V1}>@FTIHnpk4U#I8A^tRcH~#){MZ#~%y#Bc^zIfg%G@&of`xVTmynnde(Xn>;e&7fz)3RXxw@1v0Wom9f&^srWyR( zQyCe`R|uXFd7Wo+S%;E;WB~uz00)_QZj&t~1FOYN5n2V;;{XgusbEUtN9veE!!%-v zOc7ve8s)yfb%O^dIrEA%R!ZlwxguMRD-jn+lzy*uPYv?9+%iW(B?7mofFPv5()PaQ zYd*w>mPurr%{ZAp;5C54yq^}>o)TcLP@s3;zziUwQ~P+1zIaP&Zdc54O8Xgo6Oh@o z)JWIiW>I%h-A8~qg4$#sRST%RCYtFBt~IbWmw0zwpgo*HtG&ZqoYALn&pb}hG1ma{i8(KfQU!l z`6^H5@l7H5nGT>tstEB;iO&hbTglcuVh#dFr-w0uEzvANflOono(^z*;#3eB<`$H8 zmO=U~b$xzc5erGR?Rq3Ozo z^I!g{#YXPms~wa><2x-?3mL=H8*&1dK~t3)MpJUx6frS8~g5n}T) zRCT*Uu(#)RMdtZ%cxMlvg4P2X4&>kpxvX)D>fz~wp8VW29G*2NQ?z39;Dx#wq_+2W zkFu7pByZe>@tF5cewfz=%k)S{>}e@oiUZx{Mm}zYOLB`_)-jfx*|S_DxwMGVP_pr% zGK*0Xgsr=wQIRd!drLjIIvPmm&V_ak(rdZpb2hzy;p>qT=DW(A-e{kV%H=MtyV-y( z5-}P{qiW1mKkwF@$6MrR*zOY{^6qbx+t!h?jf!IUJOv@%v?5NEQHbZEMC`Si`U`*U$34G9^{e zx?bnzTkJwRk@AD$m<+#O2kY~o#gU1ke$wObX=AvA!gHkYjrH$*7ac-R zQYtTqU1YJt_h)EDAsC3=2rVk-kT%_&f7m_r^kST=r(V=mE4CCo9O9flCFRGbC3`XA zP})4iUE6z3(0NdY`eKB&p!B-sd;6Z!uuwa4`F=1Fo===sPc2}z0c<;aKd=3`iv;1?%;I(|6QN4 zWbX(dVZvKYc=+Bwo(fp06pb5(-uB<3$TrMBgFVf|PAJD^TMy%AZn(4rPKO=i>IGHk zAHtHfOM_+*>8O8{+2zA^oq|;lU4IyMpZ^TrTOi5`a99(HAJY)(EMAN0#rr9WN zhb{Jd3k&F1NGfT%9j#7}g?arRTouZ5 zur|RH^*YL{UlogWcQo26=D!5Z7eN~L>PHx}0U0UlMt%80NMw>&53lqlSP`=v{4x5--?jR^e zP+8OVEszmgVFJ=GdyiKm9^f^9n=<|l^ zc@@o-%$wFfzPVa>`+&5~q=tp_dsVr6maCB$Y7gcEaoj~32}q~^{^C>03?F|c)IEX0 zPgM5 zQ;#DDfKO($ryn8s&wC}WJy{+;97}@-{aLoj{Gyvt?ew^|LUp9)X@D{C>qR?nZNnFh z^)b}YWMJ>`I^%hrRcz~XGz8Iq7M!<=co{M`>&+Dl=MA2au0w%WWtp$e;rZ{d~zahL3F0M;`NX)%hXSK5% z3ow5o_v4jwUzYe93H7%(-aTAtua&Lk)B_G)6E$I!>C)-a_N&#%BD32>By^h&kirnJ zwoW|MMXg3i_EFBf!=?NeV~oex7{@2P`P^Lt)(K&4&DF^cEbQphgqWTBbvkxD8mA*6 z+iTQv5Gj}&F^Klpc4@rBe0RV#?@&S}LQ@sJ_^f`tNDzZEe7-kjlrV!O7hw6O92Mm8 z#%A{$V@bUbZwp?v#p|@&ffH=by&(nXRoHvY=dSA8Zq!Kv$r(TR?)Wmus`Dj_@@iwJ z(<#w+qt=%4Yqz`w|73mtF*(}z9+KayxW6x`^Hy7O5(~S>L3?fxo@J)<+RD#~Di$W( zhjHlRI)^oy2HS4Wuc_s&tWr`UBDyDDWP+K`!;tThxSarp^Fnq3!bYZqHjDF>)@&4! z+}=nJ-DYmtMl3Dz2HMTUoc%XZv!dK~32hSeQL3CT=p)g4zG$+yIq=OY!(#qz{lk2n zp+~Ve>3$DNi((c;oLFdB@EM z_q*1+$ku@MuJU%s<+o*ay?hl`>`T{v-0X_t&cWs|$ln03(jKL;wPAfVC~oPwAxCph zl9WcOJkoK5*Wbo|?>7hRcs!Q`w|YOW70^=9)}9ooy7TGbbBzl36}D7!2Oh!%1fc}k zp^wZqtBukJa;;-^ETgH;;Y%8#SsrBXWo)N9==C3o`fPyjE=^v*Kq`vAffS`R%RSi&I9+MK`C>!xBf&Et75nEd4%_Y&&1+Jz4$G@_u6_e{Z#{bt-AxXI10c z*($Pi%6q)3CN{JV`N-V%%9I>7)$x%PS48Q{UYoH?X6sihEHpsjk7M?J%(bk#`qyB( zYbE4waFRnVQ!E?q^G$+iD=Zycy>b3|5BsR7px>KNDTh4!kQPFN(5g0$k&~cp@UYav zxkL*t^qQv9@v{6^p5hY7LMzR#;$B_Bro`m0;1bPFk7`**pR2Md_cj2Z z&~o?cIP>d32h~YwiUIwKz!p(bpW&HG0-2D{Gcrp+F*K(=`Z0o}U5dzRjfy5|D(&0S zq)uG+;7G8#hBB%SmhGaB&LuM)l)JjP@k)F^WKcYR74~)SrSC<``2xm+t4Md`77f6y z+xHirsg781QBerpFfjJ777i=j(|ij8AWQ)LB_;?-IMKfL%a_E8wrKZ`rsmZLp@6qL zoWeF*lH4&>EG+=ag_Ch4+;eBB5YphWtH_Pf?58!c3ISY0rPhMOU6Dd~ssP|LVk#d( zSib?sj&JDVHTL))4fF^;Q9Hi2TOZD}4cHqd<{a|7@O#N0ZgZRz$h{H$?; zZqWM6E)iiF1q}frfE0^Ibxpj z_!f-w_?uQ>x>nFYvQKi1x9#6>Yz27xe59miH21&w>*s?u0e?FZR>j&H2FY{ABb-xR z04*NNk`Huq=xUVwiC5krNtz#`w0ikUD0u+@KVhA*a1N)1D z=tuBQ0|~%xlN0sn;3uKZp#R;DT@3nE9|fsgQj4(vJSG+(%yyX$mFY}s<*&)TbyEW8 zrDG}EX~$h(7Ki60MX}CMAY}iV$Z`f%W#yxaKk<|m$Ji!d|B6B{+S#v8yP)JkhdUuMzbpPRY}TFw1aN{9$`a(o&at`^c{zq!y{D=&d9C)etW`%CwI(sTn2FOtq z0es03-$}i2K*RZCkQz{Z_DoJk4>3X#aRw5v=^!RZ?MiY_F|^>=wKL!;@Op!9B2U~r@vXHR{D@l z$1!7oJOJC%>{%-Sw*-{VQJ=Dl%k+2T)HATZoJu4bD`awj8;j**oJIuqQz3BVve{#>;dshYI?RK zc;$I+klDI;Rb+6OdlAjT6DkGkblhF{{5`1(K#Hb4ph{DVR-!NYqr=HC=v8y;Pd?<2 z0{~u8B>1}W07w-8$_&_d{2p;YV?_!8Oo@Bz)aA!YekCTrg)`>JI}bvHRqjWyVJUg? z>1ggXel=#7VfPthgh+xo0U108M9ieFCwcRFgdh?FRLOaiz#j;5+Ba?T^6I%}ARuph zH1f#=$ceZ~Gk$Ffa51tD{)B(7{CMN$PoM6bwFv3X#1fIn4uw3F;x+K4`t ztNo>wEC)kZ{iX)%sOcDD@gF8=ud8$XPI87Xag_`;=fpi42J3hq0l^4OBj4k7X_d+l z*W*f$Ip4K6emE2rNDGT!^4lya(%at(?oqhb;G^bIl*ZF=UGnaxxN)G3lqcY;=xPZ0 zL-%J-j{lCV#zSOR%c|m~7s4I=o4zwx)-6XdX0cae6{?$q%ZA5){J%%(Pr0r8N0irg zmW^u$C17aQjTIm~egsny@eaL01zMsLke$+g~;Z?(dua4{8E)i z0CN*A8cUP4ztbroWQ{tU7*piUhlog;Wau^*Q|D6rRpuGcqi*^t%?$7i3lgpc+OBZ< zil$&ia@3!^DtP&XZt9+ewe^=x@&eFH2yr;crvkE8q(2xH0z(W$&OZ%ZD3MieTSXu) z0cNS}IX0YbNz#Dz{OYZWHYZIj(GlgNH5rVu0{k`RZ3y9DpN3Wnq?oFuk81Dq$*X$8 z88{wvSSUn{gL9YE|D53ZNN)W`x3AP)bjc7q706gbY-)zt1QA=_B3d84{08awCesF6 z^Pbdp;>GXrX5qQR&Mev9ZpG!grcy~~F6rX4-Ea^K1R7$Do(r`@qK3*;6NJpzQjSV@*f%v~I6TT&fZKrxA7vh%PJ55KW{5d$&hzWu4I zHxTE8-mUI~S-EV;e+_QmnDleN0bb&zv${?kvNe=tp=8JO4tq&MPZuT$|3DJaemib* zLS`J)W4~NqGKMu20*WnqA;(QAa=VvkWd>6zF3qs9Ycz&ym2`_Y=v}-rnAbY*-TX4z zp^+{M%>m_bkx@lFiMU>FRA2G#vBQ3|8V=2P=XS|~eVPR-bO@}&e-EI79WQmN21fJ= zo-2CdSsROQGmkt&p0@mWK<=Zx`?Sdmj(sO4|9ugU5ntecRrmLV-kH&TSaj*`cpb;+V;YIG1WWlAj4Ewvch|gD=r)&hxBYg)PHovjRc@?EU?QnFEUFeDJOp*22 zue7BKL=4NS@h~`WFQuHD zGQ5O?5`@zn&h7dtZ%$FgRDT$Cy1Hi+{mf``l{e`e_fQVI7?{$8JCb+rUBghSn7m>A zzDb+XR3*OS9+fYPQuOsnC5wMs!rKG!rhYfJj|84 zvT6Yxu_M-cT&th}riLzUr&PrV#e3PtP-cPx>U1h(aZywO8`SrQxv9+{)5?$$;?z&= zwA6ikZ@9sED^Z#AgC=qD06{NvKS47vC;Kuyb%YGE(3O(qLAnw{k;8d|`-hEju+VZ0 zJJ>g%RwGiNyU55RB5V64qt}$ zk7yGkKEvS4x$A=al$W8!M)zTYK^=N&ciX$v0ZY>uZyE=6ZCm#W{h|Ls9<|Gm6relAVzz!^nBsJg3t3a2z z?{q$l-vb-uBks}hG9UcHG)vj&{)cztu|VJ^itSE1wcDO5S>KoD%!?dWFu z=a@OC#IBlw(yc8D`3OzF7Jgvht99cr#}C%LnRR600S~jQZ~qz(Gfiy%omO?*8D_|Q z;^S9&u>4Hx5Wv*V1c-eR+22a7;Kxg;pX6*sjTxy8)J*p>t=+MH`k7$nYgPmg^v@1B zP2f8A<=LC5N80#cn6q|AmY6PKChJ}Q4Nq}-WTE?0{|MW7zh+6SqibuqY3TjRJjYy% z$x{CJVdO-GATmuoY3XQ{OSbIW^pZyurvT|pAX=K4nrG0~^cSsI)66v*ntPw`fACVV z?p;!GpFhm3eVKj_oeGtkFWQ?w**N(f$mg9Kz}Hl$GbbBg>v0%}{%vFICP(y03noui zl(Q_=#Pcs_NkoT95A#TtX+SDNPo5uHsl?@0?=v-0j}T?i39oyEP&C#q%u>Tp^rzXh z_W1|fuET#z9*Sg%gCDHzv8wfq zYvYnclRu>lp;l7}rNZLr%eFH)2M_LF{JPgSoJzGoveVz+|0hl#U%Ni6AGdj2DXJ<^ z-m}*#;NYptZem<03$sN_E|A-fT6YW1ppf&nzHe4BM9BUg<5GwiyX6N)^oR8WsvxMH zN)RS+<_k4KhclPENA&2KoQM-=oV+u4;l6 zu^QP6PTzZGa+;&sYTX;uyS~w7g=((ukYE3iW-3cKA69Zc=~>S9LnWbIzmj2yWG(ei z4n|+hs6F;)&CS~D>R{?oofROonO=2%SgRq$K*%0ubiCIE>MU!&G zmkOb?Y{7E`q}tlyWW&s8)&v{BvAZp#={=dOvizzLvh6wpTr2whT~M6 z&GD9%-wSK?sLKrZ!IE}=eKjtOBi`!%Hr$xJPzuZ-!Gn^ zz;0+Ii~h)RT3j;*n7N~1wK%y+bB2ClbGENk$|hAS$(zqNS0Rzb@X`GSv!NtRBa)k;yhrOS_ z+?lVC3K<@fnf<-I#f(Q+{ja0?6ChAoqwpuBk!bgZs(p|>-I+%wXV5PuB}_FJ0@7$- z^S73s!+k{z;cKtpnX{e{LL6+C4({~k1ks`AE$3D`nqmm$kdE=7?nahM*vCeUfv9$> zc!wUL$#rjsxkp>nvyF~hY4uKgdRuxEj#GG(RzP%_=B1)m)Rb8d5T7Ss+>emnF|L7d zh4D|*n3=FvKR#jQ1KhQLz)=`2jqy2s6x-|uS?Kgqc}1L~^C*`J>~k*Kspk-#KYoIV z;S4bXAFvcTm9WHo$z!l~)mjm!%=AmMVP!^hwdY0b`}slGd_FkB;M`Dr;eHWpMBNDR zP7~LwlppB8S&a=FfazR&513$Q?#|7ApY~{6NcxXdLw{CHgyGoi#oZ{UM1rQ0Y)TE( zOxA=0;@mtugMZ(`IWL}0-Yc@|q32BfSq#T8K8HMw6JH9qho;ZY(2Zw(?RDf<=Js$@ zxHh9qO;~q=7>k}n!BtHgR0=}`w`V9T(aXPEWM0;dE5pXLPSDI25M0W(DZqm{J(^t7 ztFEo8Aw<@*;uJJ`1|Oamx{Rr-`iIe@f&gbqC!zi*la~_UaVmaynMl|$8}GOfW>{gS zBzQW{jk2`BKka!X?8~_BBlfPfjOSW7_gi2g_7U8QeqHG={NLw&oddc{Q`pv$h8>nLj7DX?&;1h!(H2UKRY|`WF15d%my`S zoE`6PYl_(!va#6M@NsGmhFQ>lSZWs}W{5XFYpCv$UVY@r>A})EQ=3UgLaix*N#1N8 zWp8s7`lagDoRKlGA@LmW^T7_QkTU;2)_aB?q7CFK`)!Q?9%@>1?Q52*<@w2s26R@{ z6paHLY|a#w;+Tih8C0av@nm;FpSAc|@MC7LHCOt)w6-S7ONm!AHXl;XGDzav9v?F) zAO*m&hMEh#&Y|sgk)%ln@Zz_iTL9ila`{Eq%d<7;Fo1M;NcEpIQ$ITy+wZTg-R*ov z?znxb5k_ChxnD_a+RzN^px1v%4&KgwW9eT7lq7Z(9zOmeXfccpeB&%BZ z`~lIi?OazvSBFBS`~+)%RZFn`Q@!49F_ee3gZn#yzo3>z2^l!Y7UE{Rl2~KB^W1uy z?iYjtIThfjv-b`Q`HaqD(Ulo~H0>+Da!ECrHb$7zFP&r?q$26~{hP$PJSmnK>KG6c zI&(3n|1rq)EDAqnFb@meTet?m5fgVSjF3GxyIWF{?(=%a^4}DISSzAhFv#n+ZVs0S zU-+BYCX*p=#zwjzPrb2StvFWxFY>j zf=yFAf<$-q=$(k^aLZ~PvP6gb789hMX5YoJcq}-B3M2k%{oYoun;E5W$X4o^uM;UBIKMs609cx9Fh@-D*+NNjFiOlh;rd;Opb z179R6eHqKg(%D|?6}R?lAiryzd5u)X1&1Z3{94$v(G+G3$_uv>_ZdN1uANMt8il%X z{I_yMG7+i^{dg?|)i+LZAuB+xO8Mlx{2lE8VwS1iejnU+`gVI>SaZIkN%ldsjR!IF z`e^IUNEmD1{o1$OP#oYff>tz#PSTtK@DH)^IWD0u17>RSD|n;rv>qPDRy1c$kgac} zxiZ>WD2(U;ZnZ&M4^!&q(68K;9+PMMW6c`O2L@wB9&l%Ryoy-`9(7U*9d%uP+5YJS zNY2-trZWFE)IsHfylK9-0C4}w-Y%byLKL_jM4DXzFgLBrl;mKJ19OO`vtVwchHBo~ zI&QP~lXt?4t0mz0wf8&=N5pJ)W3s}$3+xkeX;MIVUICyi?BmoAdfWR#s@XvK_CJ3P z+R4_{I)^U!((NaUkzrh5y11Z=Wj^!czylhP$|!UcEa|TeaO-(okNri$Ua8@X*N|Ym}~CFO?AZ;RrY2qY6JC^eyHLnfqVgKF|%4x~$wKDg45n+#scff}LM)3DU|; zg+D*WNl$;rz|JQt1k(E;PiAG-79ASBGrlz%UCrxxLN5C>W?5RB>x`fi4e$Y>S_T!M zc*dO^vS=RvJ*B)NQK26 zkQSMw_lf-?i8+Av?mNBo`_hQlnhbZys1+w!3vYM;#1r#HNI(a-Gnc}HK|8^^s!Un7 zSe9BI)5N&+H1^crMei^mmJCF{6Y>?A@hPI&3!b4?=Ij*IsTGy8A>7}wN zJ|I*(O`!YNiO)|5B;Xk`v=Cs>000IyGhP9FJ1E0LXiUfIz#`8p#tfw&b$?4p_NKGQ`T)&4pTCFxrjI8rKAzU!2;(X7 zYAR@JH0HVjoAo^kNlnehfCMWYO)`J7&iFqkU}fNd^*~wNoNGTIHu$uiUYocr?cuZ2%!Ihmep zsrShdej}rANrBocII`OHu;XI5#QwHaDA8417#-8o$s&g{FZ!F;e*7H~v!0@YbUk7K zwc{4rMP)xNFUBEJOdX|tAvt09j(%SJrQ@2;lysS8Z#Y&&tt{Pq;&1zyae%~}acEsL zRhnfpMB?6}XUEN&EyETrnue!e*bDB@o51d)jsb;K;G>Cj2CzJJUQRtZ#7j@^KUl@K z1!e7E(Uo#Z`3$E$u}nRWJWk17fBu9r<-~Ud-hj2Mx2Y(!L80)2UtqJ3>a#aZ56%Q; zGpSok{C^Ul-fJmV!1@_Oj-rX{mGTB0=JONxHLrEkJY8gM@goap7NyTz`XN5-N;G)wh&`9*+nivs*;zpMnMfD#$1$ z3*a4xXG25)7=AOcV`VtF22iZ$eQcWTR?N!p!jb4Te?C|AVyd}Qi8GJVBSI}QIg#^6 z2~|+SGKPa=anNT%pKR}nR6)XaXnrnJ37L%b;S?k1c&%< zS9!v!p$FbATPA#QUl(v!`w0le2x<9QR(iJj+uu(Cl^j`l1HEFYVzd*|=_IQx=Mk%* zhHb6MsgA@5NLycAn&)cGmW9Br?`BsqA<#qo&QqD`RMn5lon}E;%9y?QNy0XAzDmK; zfZ<*Jo{*Hk{0s_)dq(>0T6_<^gcW$%Uh|GJ;&(NOP%Ste!ex|XWe^KrlQOvZ^nX-@ z^f)pvK$bz~#oN6!jjub3FdLaJ;Xb$tQQY}!a+c@nC2qmX&aw3lHKod}mfo<{H<`FL zr_T|#cDbT;xl)B0&)1&HlTTMT2+LMjy)KbDtC3C_M~R$5`tM>&n>xUA6M;H3+HsMc zauO`X+pTy)$?i{2qo#SugU;P}qdjqRL_iLYj@sQHrO!rW2a`h1iFQWA2-ex$3X+wa zVG=OM7X(KU|0s#JtF>>;=3JP?^7Xd;4??e9Jl5I3I~A8jr4CYUw~L)IKa!a<1}0AoAOz400oI)INPU>hOjzo@Kyfw1-C>oD?Qn%V~-vfZ}q zl)?w-YPav)r4QU7eV?NMRy4>~fe`GI);ZFN6r-F}jROFCFe8`_aaUUi9}3pqdnRv0 zh|~yX7QH=gB?bjh$|2aMa!Ka!*W*cY9D_||{4AbvpRDGDBSkHNRkT^1VbWga3W&&- z=_o;LXSO32uk0-!rAl8=;VM_-rvi&qZW11?dyKlv|@wFY9-

Um$CXZMM|Q93^itrJgttoEyH)A@vRrqN=rrNPKs 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 literal 25341 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πD{$yLF}>h?xB|7HIP&S*$^2#uf&%Ulk0% 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