From 96d7b0f09d545616a23de20ed740f45105f55b0f Mon Sep 17 00:00:00 2001 From: Raffaella De Vita Date: Tue, 1 Aug 2023 15:57:39 -0400 Subject: [PATCH 01/20] DC roads: added flag to limit the number of roads used in validation (helpful for debugging), fixed condition on SL 3 hits --- .../org/jlab/analysis/roads/Dictionary.java | 9 ++++++- .../analysis/roads/DictionaryValidator.java | 9 ++++--- .../java/org/jlab/analysis/roads/Road.java | 25 +++++++++++-------- 3 files changed, 28 insertions(+), 15 deletions(-) diff --git a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/roads/Dictionary.java b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/roads/Dictionary.java index ad433e4f1..e77fdb69d 100644 --- a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/roads/Dictionary.java +++ b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/roads/Dictionary.java @@ -39,11 +39,18 @@ public void printDictionary() { } public void readDictionary(String fileName, TestMode mode, int wireBinning, int stripBinning, int sectorDependence) { + this.readDictionary(fileName, mode, wireBinning, stripBinning, sectorDependence, -1); + } + + public void readDictionary(String fileName, TestMode mode, int wireBinning, int stripBinning, int sectorDependence, int maxRoads) { System.out.println("\nReading dictionary from file " + fileName); + System.out.println("\nMaximum number of roads set to: " + maxRoads); int nFull = 0; int nDupli = 0; + if(maxRoads<0) maxRoads = Integer.MAX_VALUE; + File fileDict = new File(fileName); try { @@ -52,7 +59,7 @@ public void readDictionary(String fileName, TestMode mode, int wireBinning, int ProgressPrintout progress = new ProgressPrintout(); String line = null; - while ((line = txtreader.readLine()) != null) { + while ((line = txtreader.readLine()) != null && maxRoads>nFull) { Road road = new Road(line); road.setBinning(wireBinning, stripBinning, sectorDependence); diff --git a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/roads/DictionaryValidator.java b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/roads/DictionaryValidator.java index 70463b126..dccb936c6 100644 --- a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/roads/DictionaryValidator.java +++ b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/roads/DictionaryValidator.java @@ -183,9 +183,9 @@ public EmbeddedCanvasTabbed getCanvas() { return canvas; } - public void init(String filename, TestMode mode, int wireBin, int stripBin, int sectorDependence) { + public void init(String filename, TestMode mode, int wireBin, int stripBin, int sectorDependence, int maxRoads) { this.dictionary = new Dictionary(); - this.dictionary.readDictionary(filename, mode, wireBin, stripBin, sectorDependence); + this.dictionary.readDictionary(filename, mode, wireBin, stripBin, sectorDependence, maxRoads); this.createHistos(mode, wireBin, stripBin, sectorDependence); this.plotRoads(); } @@ -321,6 +321,7 @@ public static void main(String[] args) { parser.addOption("-vzmin" , "-10", "minimum vz (cm)"); parser.addOption("-vzmax" , "10", "maximum vz (cm)"); parser.addOption("-n" ,"-1", "maximum number of events to process for validation"); + parser.addOption("-r" ,"-1", "maximum number of roads to use for validation"); parser.parse(args); String dictionaryFileName = null; @@ -362,6 +363,7 @@ public static void main(String[] args) { System.exit(1); } int maxEvents = parser.getOption("-n").intValue(); + int maxRoads = parser.getOption("-r").intValue(); double thrs = parser.getOption("-threshold").doubleValue(); double vzmin = parser.getOption("-vzmin").doubleValue(); @@ -381,9 +383,10 @@ public static void main(String[] args) { System.out.println("Smearing for wire/paddle/strip matching set to: " + smear); System.out.println("Test mode set to: " + mode); System.out.println("Maximum number of events to process set to: " + maxEvents); + System.out.println("Maximum number of roads to use set to: " + maxRoads); DictionaryValidator validator = new DictionaryValidator(); - validator.init(dictionaryFileName, mode, wireBin, stripBin, sector); + validator.init(dictionaryFileName, mode, wireBin, stripBin, sector, maxRoads); // tm.printDictionary(); validator.processFile(testFileName,wireBin,stripBin,sector,smear,mode,maxEvents,pid,charge,thrs, vzmin, vzmax); validator.plotHistos(); diff --git a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/roads/Road.java b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/roads/Road.java index 0a79032fd..9cf00ccf2 100644 --- a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/roads/Road.java +++ b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/roads/Road.java @@ -161,7 +161,7 @@ public static ArrayList getRoads(DataEvent event, int chargeSelect, int pi } } road.setSector((byte) trackSector); - if(road.getLayerHits(3)<3 || road.getSuperLayers()!=6) continue; + // if(road.getSuperLayerHits(3)<3 || road.getSuperLayers()!=6) continue; // now check other detectors // check FTOF if(recScintillator!=null) { @@ -578,11 +578,11 @@ public byte getSector() { return (byte) sec; } - public int getLayerHits(int layer) { + public int getSuperLayerHits(int superlayer) { int n=0; - if(layer>0 && layer<=6) { - for(int isl=0; isl<6; isl++) { - if(this.dcWires[layer-1+isl*6]>0) n++; + if(superlayer>0 && superlayer<=6) { + for(int il=0; il<6; il++) { + if(this.dcWires[(superlayer-1)*6+il]>0) n++; } } return n; @@ -606,7 +606,7 @@ public Particle getParticle() { public double getPhi() { double phi = Math.toDegrees(particle.phi()); - if(sector==0) + if(this.getSector()==0) return (phi+360+30)%60-30; else return phi; @@ -618,18 +618,20 @@ public ArrayList getKey() { public ArrayList getKey(TestMode mode) { ArrayList road = new ArrayList<>(); + for(int i=0; i<13; i++) { + road.add((byte) 0); + } + for(int isl=0; isl<6; isl++) { for(int il=0; il<6; il++) { int layer = isl*6+il+1; if(this.dcWires[layer-1] != 0) { - road.add(this.getWire(layer)); + road.set(isl, this.getWire(layer)); break; } } } - for(int i=6; i<13; i++) { - road.add((byte) 0); - } + if(mode.contains(TestMode.DCPCALU)) { road.set(8, this.getStrip(1)); if(mode.contains(TestMode.DCFTOFPCALU)) { @@ -684,12 +686,13 @@ public List> getKeys(TestMode mode, int width) { }}}}}}}}}}} return keys; } + public final boolean isValid() { return this.isValid(TestMode.DC); } public boolean isValid(TestMode mode) { - boolean value = this.getLayerHits(3)>=3 && this.getSuperLayers()==6; + boolean value = this.getSuperLayerHits(3)>=3 && this.getSuperLayers()==6; if(mode.contains(TestMode.DCPCALU)) { value = value && this.ecalStrips[0]>0; if(mode.contains(TestMode.DCFTOFPCALU)) { From 4a6f484146a1c9e46d7ca721e2557f920afa39bd Mon Sep 17 00:00:00 2001 From: Raffaella De Vita Date: Tue, 1 Aug 2023 16:13:07 -0400 Subject: [PATCH 02/20] DC roads: setting default options to use no rebinning --- .../main/java/org/jlab/analysis/roads/DictionaryValidator.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/roads/DictionaryValidator.java b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/roads/DictionaryValidator.java index dccb936c6..98a5c8a82 100644 --- a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/roads/DictionaryValidator.java +++ b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/roads/DictionaryValidator.java @@ -313,7 +313,7 @@ public static void main(String[] args) { parser.addOption("-pid" , "0", "select particle PID for new dictionary, 0: no selection,"); parser.addOption("-charge" , "0", "select particle charge for new dictionary, 0: no selection"); parser.addOption("-wire" , "1", "dc wire bin size in road finding"); - parser.addOption("-strip" , "2", "pcal strip bin size in road finding"); + parser.addOption("-strip" , "1", "pcal strip bin size in road finding"); parser.addOption("-sector" , "0", "sector dependent roads, 0=false, 1=true)"); parser.addOption("-smear" , "1", "smearing in wire/paddle/strip matching"); parser.addOption("-mode" , "0", "select test mode, " + TestMode.getOptionsString()); From d62ce816fd8fc35e1088772d77648cc289b25859 Mon Sep 17 00:00:00 2001 From: Christopher Dilks Date: Tue, 8 Aug 2023 18:48:03 -0400 Subject: [PATCH 03/20] fix: allow `run-groovy` to run inline commands --- bin/run-groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/run-groovy b/bin/run-groovy index f6d937d8c..08aafb960 100755 --- a/bin/run-groovy +++ b/bin/run-groovy @@ -50,4 +50,4 @@ echo "*****************************************" echo " " echo " " export JAVA_OPTS="-Dsun.java2d.pmoffscreen=false -Djava.util.logging.config.file=$CLAS12DIR/etc/logging/debug.properties -Xms1024m -Xmx2048m -XX:+UseSerialGC" -groovy -cp "$JYPATH" $* +groovy -cp "$JYPATH" "$@" From 504be707d619766e18c73bf920f369b06bf59d92 Mon Sep 17 00:00:00 2001 From: Raffaella De Vita Date: Thu, 10 Aug 2023 15:51:07 -0400 Subject: [PATCH 04/20] commented mv of recently-removed jars in the build script --- build-coatjava.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build-coatjava.sh b/build-coatjava.sh index 7356d6c28..9ba7ca377 100755 --- a/build-coatjava.sh +++ b/build-coatjava.sh @@ -92,8 +92,8 @@ cp -r etc coatjava/ which python3 >& /dev/null && python=python3 || python=python $python etc/bankdefs/util/bankSplit.py coatjava/etc/bankdefs/hipo4 || exit 1 mkdir -p coatjava/lib/clas -cp external-dependencies/JEventViewer-1.1.jar coatjava/lib/clas/ -cp external-dependencies/vecmath-1.3.1-2.jar coatjava/lib/clas/ +#cp external-dependencies/JEventViewer-1.1.jar coatjava/lib/clas/ +#cp external-dependencies/vecmath-1.3.1-2.jar coatjava/lib/clas/ mkdir -p coatjava/lib/utils cp external-dependencies/jclara-4.3-SNAPSHOT.jar coatjava/lib/utils #cp external-dependencies/jaw-1.0.jar coatjava/lib/utils From 73701c560cb343fcdd188f5c162ccdc09350826a Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 16 Aug 2023 15:07:12 -0400 Subject: [PATCH 05/20] add cli utility for printing json banks --- bin/hipo-json | 8 ++++ .../main/java/org/jlab/utils/JsonUtils.java | 46 +++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100755 bin/hipo-json diff --git a/bin/hipo-json b/bin/hipo-json new file mode 100755 index 000000000..b3dcb9b74 --- /dev/null +++ b/bin/hipo-json @@ -0,0 +1,8 @@ +#!/bin/sh + +. `dirname $0`/env.sh + +java -Xms1024m \ + -cp "$CLAS12DIR/lib/clas/*:$CLAS12DIR/lib/plugins/*" \ + org.jlab.utils.JsonUtils \ + $* diff --git a/common-tools/clas-io/src/main/java/org/jlab/utils/JsonUtils.java b/common-tools/clas-io/src/main/java/org/jlab/utils/JsonUtils.java index 5a961b168..52050e76d 100644 --- a/common-tools/clas-io/src/main/java/org/jlab/utils/JsonUtils.java +++ b/common-tools/clas-io/src/main/java/org/jlab/utils/JsonUtils.java @@ -4,12 +4,18 @@ import java.io.IOException; import java.io.BufferedWriter; import java.io.OutputStreamWriter; +import java.util.ArrayList; +import java.util.List; import org.jlab.io.base.DataBank; import org.jlab.io.base.DataEvent; +import org.jlab.jnp.hipo4.data.Bank; +import org.jlab.jnp.hipo4.data.Event; +import org.jlab.jnp.hipo4.io.HipoReader; import org.jlab.jnp.utils.json.JsonArray; import org.jlab.jnp.utils.json.JsonObject; import org.jlab.jnp.utils.json.JsonValue; import org.jlab.jnp.utils.json.PrettyPrint; +import org.jlab.utils.options.OptionParser; import org.json.JSONObject; /** @@ -49,6 +55,15 @@ public static void show(DataBank bank, String varName) { show(read(bank,varName)); } + /** + * Just print it to the screen, nicely. + * @param bank + * @param varName + */ + public static void show(Bank bank, String varName) { + show(read(bank,varName)); + } + /** * Convenience method to get a JsonObject from a bank. * @param bank bank to read @@ -58,6 +73,14 @@ public static void show(DataBank bank, String varName) { public static JsonObject read(DataBank bank, String varName) { return JsonObject.readFrom(new String(bank.getByte(varName))); } + + public static JsonObject read(Bank bank, String varName) { + byte[] x = new byte[bank.getRows()]; + for (int i=0; i Date: Thu, 17 Aug 2023 12:38:01 -0400 Subject: [PATCH 06/20] more user-friendly error feedback --- .../main/java/org/jlab/utils/JsonUtils.java | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/common-tools/clas-io/src/main/java/org/jlab/utils/JsonUtils.java b/common-tools/clas-io/src/main/java/org/jlab/utils/JsonUtils.java index 52050e76d..13c311a12 100644 --- a/common-tools/clas-io/src/main/java/org/jlab/utils/JsonUtils.java +++ b/common-tools/clas-io/src/main/java/org/jlab/utils/JsonUtils.java @@ -4,8 +4,6 @@ import java.io.IOException; import java.io.BufferedWriter; import java.io.OutputStreamWriter; -import java.util.ArrayList; -import java.util.List; import org.jlab.io.base.DataBank; import org.jlab.io.base.DataEvent; import org.jlab.jnp.hipo4.data.Bank; @@ -266,20 +264,39 @@ public static void main(String args[]) { OptionParser parser = new OptionParser(); parser.addRequired("-b","bank name"); parser.addOption("-v", "json", "variable name"); + parser.addOption("-i", "1", "ignore parsing errors"); parser.setRequiresInputList(true); parser.parse(args); final String bankName = parser.getOption("-b").stringValue(); final String varName = parser.getOption("-v").stringValue(); + int nerrors = 0; for (String filename : parser.getInputList()) { Event event = new Event(); HipoReader reader = new HipoReader(); reader.open(filename); + if (!reader.getSchemaFactory().hasSchema(bankName)) { + System.err.println("\nERROR: Bank does not exist in file's schema: "+bankName); + System.exit(1); + } + if (!reader.getSchemaFactory().getSchema(bankName).hasEntry(varName)) { + System.err.println("\nERROR: Variable does not exist in file's schema: "+bankName+"."+varName); + System.exit(1); + } + System.err.println(reader.getSchemaFactory().getSchema(bankName).getSchemaString()); Bank bank = reader.getSchemaFactory().getBank(bankName); while (reader.hasNext()) { reader.nextEvent(event); if (event.hasBank(reader.getSchemaFactory().getSchema(bankName))) { event.read(bank); - JsonUtils.show(bank,varName); + try { + JsonUtils.show(bank,varName); + } + catch (org.jlab.jnp.utils.json.ParseException e) { + if (++nerrors > 3 && parser.getOption("-i").intValue()!=0) { + System.err.println("\nERROR: Too many parsing errors.\nAre you sure your variable "+bankName+"."+varName+" is a byte array representing a JSON string?"); + System.exit(1); + } + } } } reader.close(); From 40020fd6a544c80f7f15270d179457420872414c Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 17 Aug 2023 12:41:05 -0400 Subject: [PATCH 07/20] name the parser --- .../clas-io/src/main/java/org/jlab/utils/JsonUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common-tools/clas-io/src/main/java/org/jlab/utils/JsonUtils.java b/common-tools/clas-io/src/main/java/org/jlab/utils/JsonUtils.java index 13c311a12..b2a6903ae 100644 --- a/common-tools/clas-io/src/main/java/org/jlab/utils/JsonUtils.java +++ b/common-tools/clas-io/src/main/java/org/jlab/utils/JsonUtils.java @@ -261,7 +261,7 @@ public static DataBank extend(DataEvent event, String bankName, String varName, } public static void main(String args[]) { - OptionParser parser = new OptionParser(); + OptionParser parser = new OptionParser("hipo-json"); parser.addRequired("-b","bank name"); parser.addOption("-v", "json", "variable name"); parser.addOption("-i", "1", "ignore parsing errors"); From 556d9be87ec6d1676331d341342c28e1ce6292f4 Mon Sep 17 00:00:00 2001 From: Rafayel Paremuzyan Date: Thu, 17 Aug 2023 15:52:19 -0400 Subject: [PATCH 08/20] The 1st commit of Readme_TruthMatch.md, still work in progress, just want to check if figures are displayed properly in the github web interface --- .../org/jlab/service/mc/Readme_TruthMatch.md | 135 ++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 reconstruction/mc/src/main/java/org/jlab/service/mc/Readme_TruthMatch.md diff --git a/reconstruction/mc/src/main/java/org/jlab/service/mc/Readme_TruthMatch.md b/reconstruction/mc/src/main/java/org/jlab/service/mc/Readme_TruthMatch.md new file mode 100644 index 000000000..64ee397e9 --- /dev/null +++ b/reconstruction/mc/src/main/java/org/jlab/service/mc/Readme_TruthMatch.md @@ -0,0 +1,135 @@ +#

Truth Matching

+ +# Introduction +In Monte Carlo (MC) simulations very frequently there is a need to know links between the generated +particle and the reconstructed particle. Users usually compare kinematics (momentum and the angle) of +the generated and reconstructed particles in order to determine if the reconstructed particle is the one +corresponding to the given MC particle. In particular, user requires the difference/ratio of angles/momenta +between reconstructed and MC particles to be within certain limits. Depending on the need of the study, +this might be sufficient, however there are also cases when this approach is not enough. In particular when +the number of generated and reconstructed particles are more than 1-2, one can get significant amount +of non-unique matches. Another downside of this type of matching is that user will always loose some +real corresponding particles, as because of multiple scattering and radiation, these distributions (difference +between MC and reconstructed kinematic variables) have tails extending beyond user specified cuts. +The service **'TruthMatch'** in COATJAVA makes links +between MC and reconstructed particles in a more rigorous way by checking MC and reconstructed hits of +particles from almost all detectors and determining which MC and Recon particle the hit correspond to. + +# The matching algorithm + +## What kind of information the matching provides +The service provides two types (one can call directions too) of matching: \ +In the 1^st^ type, for each MC::Particle, it points to the entry in the REC::Particle bank, which it thinks is the +**best match** for the given MC particle in the MC::Particle bank.\ +The 2nd type, does the opposite, for each reconstructed particle in the REC::Particle bank it points to the +entry in the MC::Particle bank that is the **best matched** to the given reconstructed particle.\ +The service provides also additional **status words** which encode information about what type of detectors (layers of detectors) participated +in the matching of the given particle. \ +Then finally it provides a variable **quality**, which characterizes the reliability of the matching, i.e. +higher the quality higher is the contribution of matched MC particle (or Rec Particle in the other type of matching) to the +given Rec Particle. + +## How the matching is done. + +I would like to start with a very simple example that will help to understand better the +underlying principle of the truth matching. Suppose we have generated an +event with several particles inside the CLAS12 acceptance, then this +event is passed through the GEMC, and then reconstructed with +COATJAVA. Now let say we pick up a random MC hit in the +ECal (the general concept is valid for almost all detectors), and +want to know the initial MC particle that generated the hit, and also want to know +the reconstructed particle that the given hit belongs to. \ +All MC hits are stored in the "MC::True" bank. The variable **otid** +shows the index of the original particle that generated the given hit. +So the first part was quite simple we just need to pick the otid-th +particle in? the "MC::Particle" bank. Now for the 2nd step, which is to +find the recon particle that the given hit belongs to, we will use +another variable **hitn**, which shows the index of the given hit in the +ADC/TDC bank of the corresponding detector. The path from the ADC bank +to the "REC::Particle" is done through 3 to 4 intermediate banks (the +number of intermediate banks depends on the given detector), however it +is straightforward. First step is to look into "ECAL::hits" bank and +from it pick the hit that has the variable **id** (for some other +detector banks this variable name can differ e.g. **hitID**, **ID**). In +the "ECAL::hits" bank the variable **clusterId** (which also can have +different names in different detectors) will point to the index of the +cluster in the "ECAL::clusters" bank that the given hit belongs to. Then +we should look the "REC::Calorimeter" bank, and chose the row that has +the variable **index** equal to the **clusterId**. Finally the variable +**pindex** in the "REC::Calorimeter" bank will point to the index of the +reconstructed particle in the "REC::Particle" bank. So in this example +picking a random hit we can relate the MC particle to the recon +particle. In reality however the MC particle can leave in the CLAS12 +detector hundreds of hits, and not all MC hits of the given MC particle necessarily +will point to the same recon particle, and wise versa not all ADC/TDC +hits of the given recon particle will necessarily be generated from the same MC +particle. + +From the example above, it is obvious that a single cluster (if it +applies for a given detector) can contain hits originated from more than +one MC particles. + + +![Fig:Hits](Figs/HitsInCluster.png){ +*An example cluster containing hits from two different MC particles. +Numbers in represent the hitID of the hit in the cluster. Hits in cyan +color were originated from one MC particle, and hits in red are +originated from another MC +particle.*} + +The figure above shows an example of the cluster with 8 +hits, 2 of them are from one MC particle, let's call it mcp1, and the +other 6 are from another MC particle let's call it mcp2. The truth +matching will associate the given cluster to the MCParticle that has the +most number of hits in it. In particular for the given example the +cluster will be matched to the mcp2. This example of the cluster was an +abstract example which doesn't relate to any specific CLAS12 detector, +however the algorithm is applicable to all CLAS12 detectors, the cluster +will be matched to the MC Particle that has the highest number of hits +in it. With this rule all clusters from all detectors that participate in the truth matching, are collected and the MC Particle is +identified for each of them. + +Now as we already defined the algorithm how to match MC Particle to the +Recon cluster, we can think how to match MC Particle to the Recon +Particle. As the cluster is an object consisting of hits, we can think +of a Recon Particle as an object consisting of clusters which are +related to the Recon particle through the response banks +(e.g. REC::Calorimeter, REC::Scintillator etc). As in the case of the +cluster, it is not necessarily true that all hits of the cluster will be +originated from the same MC Particle, here again, all recon clusters +matched to a given MC Particle will not necessarily be part of the given +Recon particle, and wise versa, not all clusters of the given recon +particle will necessarily be originated from the given MC Particle. + +![](Figs/ClustersInRecParticle.png)*An example illustrating a case when two clusters matched to two MC +particles end up in opposite Rec Particles. Cluster marked by red +(orange) rectangle inside the green area, is matched to the MC Particle +1(2), however Event Builder associated it the the Rec Particle +2(1).* + +An abstract example is shown in the figure above, when not all recon clusters matched +to the given MC Particle are matched to the same recon particle. The +Truth Matching service in such cases chose the recon particle that has +the highest number of matched clusters to the given MC particle. + + + +Take me to [pookie](#pookie) + + + + assad + + +### This is the Heading +asdasd + + +"...the **go to** statement should be abolished..." [[1]](#1). +[[3]]() + +## References +[1] +COATJAVA: https://github.com/JeffersonLab/coatjava + +[3] asdasdasd \ \ No newline at end of file From df48c2a2a86f6388bd03b2f431d6df4a29130623 Mon Sep 17 00:00:00 2001 From: Rafayel Paremuzyan Date: Thu, 17 Aug 2023 15:57:36 -0400 Subject: [PATCH 09/20] Two figures were not added in the previous commit, and therefore were not displayedin the web version --- .../service/mc/Figs/ClustersInRecParticle.png | Bin 0 -> 64845 bytes .../org/jlab/service/mc/Figs/HitsInCluster.png | Bin 0 -> 22029 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 reconstruction/mc/src/main/java/org/jlab/service/mc/Figs/ClustersInRecParticle.png create mode 100644 reconstruction/mc/src/main/java/org/jlab/service/mc/Figs/HitsInCluster.png diff --git a/reconstruction/mc/src/main/java/org/jlab/service/mc/Figs/ClustersInRecParticle.png b/reconstruction/mc/src/main/java/org/jlab/service/mc/Figs/ClustersInRecParticle.png new file mode 100644 index 0000000000000000000000000000000000000000..e0b956c78e121882fd94ff3548d1e23316978bcf GIT binary patch literal 64845 zcmce-_dlEa{|B5wRIRpJd$d)wC|b2@w$-YtQEHD+#NJyFs->zmYH!`c7JEe0Dq@sc z4PsM45E4Y>&N=6E&i8)Yf583zAs!d5T<`H3&*$^?y5bG>wb@Scodf^?Y&!R~i~s;e zH~;_=Isu{oW=&y=O8>#&e_QAA3Hk^>;rN1n%^PsnJiyo+77%Rj=LB%}^7eGP>hIv^ zZl5ZN8 zo9)(0{2{~6PffGi>H%sXupH2;@uLwB5N{Ds5dJbYoFW$I`G>)7(t-8C@A{}` zXV2FF#aBK2xO|3r&R4ogS^jB$Z5$0HIKslZt)hesIvVd*roaLFOZs+1?dF*Ss3uw4 z0W0?R+)}Pf-E5m#+lVqIFj=#Y|Fj`p_Hk)J;;VbDS)`iTCgibXRG!)qmdszV<65L2 zJp1a3=5#@dyTONZOCbIk$JsCX!A0B2=5_ZIKY(*T%MFc&D;d6zD6tBdzsy0k$BuV{ zTL5-|?jTTt*V2mNw9s5RVd$P+n-U=7^cn47K+|%U^hDE=oJO=QKsM^T1A4CiNSAif z{7`m?z(z{15}QIbZ+jxsdJo6-F?IxDVLCE`Bc80_XEMA&igCl zO`9fw(!2eMUc@Nh*4WvYbt-Ri6jF=@tv?n#b^60JzBQ3o9l13 zelO_b$^iazCZ|;$7)jxlarOouq6Dy{y!*X(5EYPH3zF9~*#PcPz#5AG_|VkgI}Oyr zoZdgE5q#@wj)la%l+cDqjUr1H+aPX$G9~)esOmOE_Og=uCE0zEq9xIv-tMwX`L|~PadL2*(-O+f&KI_(4`5Lu(%E;k zu~4SRu5Qw1X)NpeK=T9EiWTuOh+6gABM6+Wo#qrTh@}*fFMaE^LbzNzv+vIbh>7l; z83gyp-$8^Q+s`JELzQcQhLp$Wsktw1)O6gOI#Jy?g}(>h$G4&l9HNgN0=#BFx4{Q6PHhV=9^7v*ml9**HGg~t_oK-jOF5s-!{=eZ?H28s-XKq>-!AUy!P$Z zWx3oY4TyCk?dbN7N)iyUXjNkT8I&%}azeUNX9v1e7;ObRlYK zf!q+Kp`ldwIkli^-6O(Frr$Oz*17LK&H;)dp~ORdjheBK9>lb}Zoa2|{y>WG5t`OU z9@tC&eE&dN=C9IKAMPw5M-*@hLKSK1e`SKsq-H;w+Bsu4R6W~=_ytiq;x_!q>@#`q zy!s@~56%U`Lm5d@fW!?L;Io^*dLd~%8@T>d1WjRUh$t?3jdr(nQoK3S`*tp}u$#|r zAs3w}tQ@Ux&u;it!LW%XF0-!T10HzG&+50tPnz@fKuEQ;RCo{sV(xt?A490>Xg48oIsU_@}l1cuG97? zXKD5M$OCn-<_K~B;7nP*MpbK=y8nDC#$zG18#HQg5|Kam&7ZGg#o1Q9YMOSv2?45& zYzq?7VcKD@;xP64KK_lmhxx|l*vD!|x*S=MPZ1PGIs+@#Ps2WOErDEZLf^^a2j7sF zN(+JhiAmR$166(2z|q)6M+8Sb8xzIn{9YKCyBy>eC@~$T_4m-XJ4v$K$Z0?STszJ; z1qT~YKTkU)<4k>Yv=c{Lq={h7MJAvX!9O?9d>XgDU}}!6$R~Z;RAFsPPWzBrP|wU7 zJogd9Q5bgx>}AA7QGik{=Y3pH)OfFRlt0SRPJXEI^+o-#%tFR+xo4>}p^KZ~+6Z3T z3PqWbynb~!3v@;Kee`bmM&AY$)2cDUG(ar~)aUSIfI$b&muk;lgS;Ufv3gL?@LX5( zso1P*iXKe`1{V+_x`T+`-DGr5&(xE^B6uTVc`4QVgm>8$YA+(eZvw$yHrw-blQX((q1`ID zzC>Jq{>%nh(3~B^-_AVUyyUzsmqvrwXIP@(M#yw z&;58;n`leH1Iwlao}=FfA~AR36t?7>(NzR_q3_HX^HmigJY$Qsf`2hT~K z!pAK8?*_Nyzo8q8*$%;@mOE-QEm61jkEHC{^w8%J7mA+Of&M_Z{rvcFEWtv^F15C? za|W_3RZF7B`|;ZcU2-&cbPTg~u3z zuj6Z`17Q`4Y4N`kH)rF|0=^6jxP%9-V*OSq1zBGsBsBb46_F3+Ou;^2-A$(7uSlg4 zo0ss+$lllMR(e4iEEF; zlNBPsN|_Prqgl!vdNUMVX@f2g_8)$$ zS*5TeBYm1jHvQub003g>b0Y-)^niHh*gzi)(Pzvl7{qVhrlXYQGY17!U23Ga<{_{K0PONW$nr`5t zmDbSEB{^8s7u)iATx!Gnezd_}Y80}S!L3@J5X|j2{|&b}M`RYGN&=*d@GYz}Ays0? zIsh(@O+a19+=`S%v-5r=9oGbZsx>VpOB{5%a&Bf%9d?4|!wiPC8rX$`39MVqtad*I zm-iY!`)7r_fo&CEM!oiyGbdcpHoW+8l_O38pn;2`F^1(P0S;T(A3s3K)NM%WgR&7X z2%}TQQ7ni(3!C`SwG+Sow5=NrYI){+u{0kwn)R3bO6~rQE1W-4Z)4pR`v8jhjAVT_ zIxs2VncVPcKcei$&h@C>?B%_C&c6u;r5wKq-Q({j4^TCB2|N21H4AWCs9M9m9U*r7 zptTJEJA~^yo^u4pn}jxeh)_POPYOolt+)RJ#m=0|DeCXNx!!15JW=!h!wyI8o#Z0%!GOT$A>O<6P zl&yXG{m13G<8r3gReoVVkugy|?=NW9#T_x7$xX6TkVmhh_q_Kl##La3#YQ&jiUvj8 zO6p%HYB0(AC*O4P>F5f>{(t~qf+66-89EMkQFv8e+>OHV90eOSof3ERr-Prq`b$L{ zqi?-MG+4|jPeZA%xFh~r*v%ws&~C)JFBZLn`I=J)=;q@7BFEcKMWg3PPKT(I*0O~b zUysG8FAX62h=FF*iZjmX=&SE_-CyR~QuH{NvKWFOxA&+^{j>Xz-rAL?e@027dpvvj z-Cy@k#k?ICx*DIaAyj^qg`HA{xHs!$yyp8xEXoN$IzAIVeN~28X7%jL`o)E|QyQEn zIz=bJ=yZNL-AQOs*#qMYr>!5>&>aN}cjH5rj97dUM}J?bG@C77k)Mb(C+5#!7~|Ac zzFj7xtL=+&77?W;sTvi4K&zD7Yr^k9F+&1ONb9oh^4lPGjpL!(^0B9ofx5V{*K zvH$Fu-r$1cW1#}p(9hMVDJl4T_Lu&`*5f|EbAX{I49P}{yPh7D-lJDvrx;vR#I~xo z)0K3xQaOhkSj@*sgRW?2wP;Uh7C8{{EW3H`+t0BhfqspSc+%5&T?R-5PyTF~;%7>e zhCa#u?+kQ0{v;#3^rSzguMH&cWODmtoHw{+T*?2k_^Fo+?hy-i(Y8t7`uqDj^|XS2 zcg&JAwcH}cX4pD@qZ-vVEZ)zQ$ZM-jeiF53JC*)P>v{Lg^W`P6m5j)U&e2n)qixN3 z@S#YkeWHc1vUL1jWDIjHqMpSfb^QJ0!HHfzt=AbXEWF_i=HErq)PH(pEp2z^0hrC6 zn81Bx41>x&pVacVW4naiHn1I$8_Wa1~y0Obw)j z{&BkLRMyxTmtgs!$Py$n&kFzU_!vODZ8GJKzjAO&Z_e??r(X&(+)IqmpuyW?$f>$# z?Qe|X(uZHS`?~fHOFXf15(wD1K0<)Fg4bzWP%xyCWR^JNa;mx0+bf*N2vF}|@ z5H)2lQ;><{J3?mc|Cm{G@dx z^s71x?Q9E?%LzV0zuI+Z%6_~4)yl)^?1+rRw#CxvKgXMn!d(BLh%b*S#w8j)SrAF9 zWfQd@Kdc2X#YTcLg6(`AcalnyPh`r2OE4$IC9gemO8Nly zzXyg3eCgzW`Ba2;3w}xat(Rw>{QknZv;Kaxim{MH1K=CCwD9SaH*j>b_1B=;rIM1# zg#x?xsZQ)`d$3cap_??$8Vh6?Hi->E9V3hKQTWl!W8VZh-gKMIqYO($@u_iVwyY_j ziV#(8^)%<7tAul#a<+e;%wk88UAf7g!m`gSxQ~7?!!F@mJ_llUR6M#dGwUs*&-b^4 z$mNHBz_>jPokw4$GNkI+7oxbh<4E-%+)9cqQI{<#4_a!vfL;TIgdbw~GuuP3LQ zpHo^Yq?0Rv$_hZT02FkLrYImVIwN5k(49STt13x)nCD}^Y~nAOh7-OHZlQxNB7)(K z`+;;F*=(iO_3BrEK)L8tN5fuRUrvNo8qJdH~E+ys_gF2Gj4p^lZt5$KlDEax9BJ6+5vDP{t=6HysrY!sJtJ- zNXz_e%s~ekbr`#Sl&WO6;;1>^Y)fBWs+QKT?RxxGVQ3vhJUlc5^3V;VANxH&tN;B2 z2clmIxo+Nr@>>c%RD_t-^bS4!`v2n>-pDaO35p7$`yaH)*+EAoc{*X5<% zQ*qYX4?f-~vg9X*9V&`K>EVjv2vdPELQ(aUJLmKfU$7(1;Q>rOcA?vN-1YY6DHprh zr3b~-n&la&)a_uQtqsHTaNX@B?6IJ1>A7Tex#kTMcg7A;A)Kwc_@fH|;G`H&3)UNfIFGJRaW|-d}tm)|v(Hw&KsSsSxr1M}IYlr3c zqIzn@0X=y43xngHI#L9!ftUoJAO~Gt!Iktuz<~vQp(8|0pZh0<8O7j1CYa6RoelHn zBf@S$vxVJnwomXK9r@>2aH~qk%jb)H{CP@F7kQaG3-LM>O5uNinptk&ZXN6u`GbzF z1IgsV0a@^Ls@DA*7TSgkc=u;d#F7NWqCl_$f7Q!J+{wYR%^RJfpx1*6<+S7Eh>*IbWZ(<$L8l_I zEH-aI;hy6xJ!!j+G%cUnU%XLtPlZA?$*}+pGNNM@uLkpxG<}WOil}?bd$>*eQ__ah zb0XNNj~rlKaRvnYxoG(X-#;SZ9HrOCfl!hhQZnYNS5FC+QXGN1+>11Tj2)gl|5070 zi6ts~1w_f57&r4_Fu!?v|0uw22UTfl&{wILk86cfe&ip!%rX+`d zZkS(pVo@!(dLm!cpDqgZ-cz6}6#aOXE+C@W8`|XqMuY>7>R7hA;VHsbPQQ?chjw%1 zl??a#5Rv3e#Jw`Mx!om0t^af6OQe%0qXO|!&V`IKq2gnuDJOn1cpmSDL4Nefg1Mh- zD>V!fII7lffBenbEHv#}Sg9(_`(^s-(MEn4ZTmtMMDB#f2ILn3d}*A4L>sW51JE@k z!!(ZdoDGCp15-3Lfj6XV>?P;gV^{XGO8_{+e(b&WIK`a&Q$ji=FhQ+7kb4^9K^3@P z%CT<2@M{CedOTr`qBx)jCN;YxQ0xg_jHc>rH*Rv?_e9U$9k4y`AWs9Z2NM)79F2cb z{S&}1OX0SiQRmG1nQjrHGa3!nRSw75pobYco%Tmn@+sD~5P;&A6SN@NrxV%DE`KAr0v2wvTut>x;*%mc= z`ZO%&Og88JG07n?$-YkM#PF&9A)q)##?}}D>Qiby0mtqh7hR#mOA1ZYP2`;|Zv&Jy zRkshcZ*X`Xccp3|^j7xt2o)Z;sgasX5Y0%13W6C@15BrfKmTxemM_OMnd^7u-S~|e zkol@^97U6!Ww75=MUCrr`4`5ttvlhL1*W@Ydcj3UT~6svIFvLB#YHYhROj#1+hKMK zSP>{G3s=~plF_kjntN+#e(#P(r!yB$k`6gDPq2n(^5*o33DJBbt!-nejoK}8QF3C) zP4D_O62m|iNUHfZ-3HF+`xuDA#C|NMevDBUmb~Nh*=F=GS&YX`a z?dC*p7A7*CV6__;&{b)1gNuCtaATO36YcMD0|cfA&Sye>Npt(>Op5z>KG2D0xpSGa zkYklgh?uOM#Fo8rVH~zYbbB#IoU{5oHoO#w-s=73t}ei{FSJE8my3~e5T%uTs|7&r z%}LqjKGM7`O4pqyy{8zbK9^9^P10eSzpoq6`ZQ%ND79q4Rs8*6P7OQLh5<)z1SD_d{b=(0(k z_nmq=Eu`ZgebU^#qvw3Emu%b^C8NZL`|`x!)u$&*L0~u;0B?(2qXH zd$~2R_jT+GN^=8iG(ZzKpn-Cb1&IiSQc=r?*35LdT{B#ia?>rCQ5wg3v@M-{d^Nct zqvra;nFDb1EhwbjEtqX8(K0{kbStn=$f?$1AQI+1y4iKUvhD*PdJ+nNb6?{O8w9~r zSA-#SuA079k>MH>shMz^#5<$AbMv{#*Te0HjdwbovpSGC5m127|YxnP$Iw31q_4>y98dTIA(+CtO(5#zu}lxL*xw0 z>kd?{nZu`>DLP8uH#mHmS$S%OSv1@n;AM~aqgF1jCSn#boEonTfeHBc)PU80etV_CyXhdugs77eGtd%ikTim6At z(Z3+!{nO7oTbF14LJD5ueAMZ$>ehJ=0(k;B>dxxwRK56{^hmsGkBiQhi*E3bzMH@^ z+y4WQC|DRHcI~taPKZY?HuK|cKi+#f!|_k|-Og9Q3#hdaYBqIgH+kE|OZV^iK>zq4 zrR>L$rGaDJ^1`t@IsqqV{C@ykew_$8be$d6jo#m1tuuLd@n&|5cCg>hhx;XF|K7N$ zm6FL+Vh#-7VFouh1moh=IXo;@O-TP>Y^$GNUnb&;e3RSqB>$@RkeZpfBB%pLk741G+alwZ?t!WbX!1+P;xqQ3wrsP22Km6{m zsfI8zqQ^?n>yv0Q4(vW&1tH9}H_JShcLQ)kSpzl&DnC7#e9Qd%-x+H4g6jAunz;A3 zwP!~RqF?h{yt^RB`JZD3&tAa{t4ZPoHK^7e~A2 zyIhsyR0^qZ1lkri21fIH0df=qKb0CSD+{lyEd|+;nd)l3pf zv1m=R7;yf->i&s_Y0QjGQ%3YmiIm;+&7z{H>=p_c+?@!-kEXnN8o$U?-iUQr8 z$F3~J(jWcbnck*vYkv-=YGe3$8_uB{&<@xk9;`I<^8p41ASfzVmLkVxDb@&hjXT)P zrt>O7{RQw>0Ju!>r5rL|G8S0nQm6UpnIsn-qK{*mA5yO3foDe>egjzVBs9(4A^ z`8+O$u<}D#1$eSaIt_Gg`VSO+@#4PJ(h{)s2s8zksd&PeoQrRIcpGH+@uWDM$i>Z6 z?Z!A2sgj(-cR-@sCO01P?`<#gDiQ_kdt!6FK#{a*L{Xia$?Q5Z`of)~^7k;k*>?#y zuH^nN_W!k0XE=Fz(ThE38dbQ$SH#eKwdvu;Z*+bzh&;{Y=uDX@%sLUUe&Us2vCgE{ ze``poh}gdn{tW=!@e3CvbJvsu@L||x*r1J;FAZ1 z?E<=9gVm{N(I=U`unI-~EAvpC+h~-SUQ{GiNsEFUjLOS1uS0oQHN2rXEcH&s$+QYw zzWgGvSRz9W9#uC3l5RQcg3aKJ5fuXkuE}mG!C1Fu;Kwm(XRL!1wzj+134NIq1e^OW zI%Z4!D0nlF&b0x3s^-GRNHL!t(UNgVzdX8Yij2MfXO1bC*Rb5?6-ACor6viSjMJgw z$$9G@O%gAeIkQsC&J@IFZ8oO@YhS|JA+t?{sQ20y&bw88N~~&+Gp#{K?^oqCq% z+V{zz*!i+1I`oz=FN{zqvV(?E0v3jfz;q2LMz7&cdq=E^Gi>AmHx5B zJeQ-#PjT-d#=gWH~ zQuC!utA$r5l#Az4GrkMaXBkR0Sf8b0-_BB5m>kpG9}XvsP%HP3txVS96*|c zt0KP$hd$d2E;b|Ee5x2ao@fl@b@853dZL%Pqw_zTP2sdb!tww=z7<79PqXnWm0+hP$)dJfd94K zQfk}srcPT4XkMgQ-bW7_+KCm*P< zY_PQQT;uND<@m;blM(M_u1drI8SkRj_-76|BFLh(AUaPGSB*o#*kpY#ZY`#!ctS(X zin+FaYDW`jM1$Fel_)dYN{)@=1rFGzUM|;xLIyYONPLSzK+m+WYLN&Wto&Sf({ykA z*kpN~8>6*9o6lxL2_wJopeAAXBf3upZ2b8!<9ybQ_$1|n#V_(rn7$t1@&Kby2*A8) z4ADZAFbTQ1dQ6EPD~-wYs?;AC`#S@&b|i#6N^JS(Tp7kuYFl0WM?})FZqDP9YRkH1 zyplsK!EirG{YlaNRg7G=Yvk&w7^wdWC|#nn(PSxCJhl3f$n13RUpeo=2Y+Wd_Z!me zt26nWbuBb?@P?_EqHL&N0M;hM$r&shd15L|QVvdK409h}?n(Gu@Ps*T-YuYM+S4@XWNWn{3#|izzCC{~AUlc!Lifsk&KX@4^DG~eV zz0wuBRiIaYc4jix?>rdW-y?0*rMN;vk>0|(4yya-<$M!fu9KUr|H{LyG`1-}7Wd6q zBZ87lk|;Ds9^CcnYZj-{OOdnd=l+fvDMPP$7vR`fwx8bGcLOOKsJ7YzqQeN6^0hpF zcHPRy#axFDUJae(+T8#eZ;ANHy4;UuUaf*58}fGJ(l|eEX6BMU%1$4;lUuGy@$vKL z;YWWZf4!$h{|2<%HD>7e59x{shRh{ysOohnFMP z++$NG`wsxc9@@!D2=FU{^m4ENc#QniLh`Y{&}Xo_-t!P!uOtnp?!jD>ip!peyD?%I-q>3(6yY7mez*0i)2&-Tcbz0bmhb~n@w(lNHy~EQUd^p2;M_P?PX{=l1g>Ad zuGcGeOIhOlJon2P|c-)5i|OsKMRGagP1$v6i<~%2W1axyv!cf=HF&1yVKZeD{3f*>tN-DKn`8M% zZvF;Bxh^;G*5`*nE*UySFy*2Rk3Rb-7Z6=;G+CbyAUi7g|QwV7%+c`Yp`Txqge-3h` zO7wE)h3mqV>E54bE%_LS;MiRSh94`(2)s3~Pv*^KVt-b9G}nG4*klI;E4=+R@ahKP z?Ut)6s_*Q%YXBv9PzYXu6}D1l(XRQfbsaM=ppGHa(;T`lG-Xoh2-l?e2%(dZcJ6cGfZSdn z9#m`wu5s&Zyem3Vdv)-KqAREb3Jtn`L#y{pghu>}`#L<3EfSW5H8NJNR?1rHi$11C z$UTOWVME2P#u*G-j)liN2@MZ}6f!NU7*>B>*$)~kV~l0prt0Nn{qU6c?Dd$~4S;Nw z+!|H(SNdsPsNPn0nr-GI*O60(G<1`HRqwu?W`(<1WH&wKF>&nh&^{NgTMW>#3hj`) zkM~)-Y*r1PidB(LEH8}{ZzoPVZ)}7U)F8HMhh%d8E{9#ui_PhFcdPT-NuU@eVqJ8d zw9P){g6Q+MaVVlD^WsEJ0_BKGRvF1~*?WFp*MQugBcp54{j&nD=q_kbIPlPuFfO8A zKp7KB0>nVl)kPGg6DNON?DSEeurgoWm*^WMwNMYlvDNO}8d-Y|mc3OP$Fk({_P9Rp zir^8kV_em9rbBw8?Ec?fplKa39M^qZ0;zj#aeIz z?po36*U!0`Ot1JlH7$zf1{)eMc|`VI+hD=14o(y<(88i5|6qRs=2I^9i{GYsLWq@- z4v)e!bt{hY2vfZE2e2_b+gU?PB!owKSm=Hv#S`-GyE1zSEy50`PCP8S#TpWb?|L{` z82LnD{p;tQ;|q88SFU*%P!IC`*|!ih?n9F9e1=sxxFzDSBCWGW9P2G3wdk_MBqWP4 zQ>uY#70YO~H;1C?(x1OtaJek;L?dkLR>skm8B$d_Tl|_3{8hx9mX!B}YsQeS&uL&5 zZcy+vV_p#7;1@A*BBIX4p}+}iw+U%av6SR zFaftr4Vgwu-$!|xO_CA zr|SS4+}}nIcvI*L2x0uJ-PP5X(lSYe$%)Ev=n-RB z@nfKL;|mL-TG-_w$ww>UuyT#peA}$=MgjwzF)!AWP&Mw+ST7^dlPOeOKN)CLm< z&g%~T-CDb}yaTu*nK0NLMlyLKqLzQ>_DL4ygIg3*rPt5+_o};b<*f=F(yTFsadk7j zgKve@zC&?cuhI2%aV}UTNLKE>ldkh`fwDn$qQ(=tkMUN9%F$4VCqwq_2fnCCgr-YGkLTw0=~R~%APVk`Cioxzp@Rid(QvN!A+0R9NjWs#WV}q( z*E$cvwy!!?P8L2&;Ht|_RSacxMC>pl*#KN{vbs|8k1HJ1Ha>>Z$MH}ZiN`4F*MC7-B5tZ+ofg;!2G zbWu@$w0V88>Dp;1eFzC}EY1K+Kd^ zq-kL&Z1USJ{>|gv{e`@*bwvOkIWfNt30+nB?J$y~=?Eit7N?;HZh(wyG??*aLRwr5 zlsbR$;;~JzU<|Kb&a>L)V4FeYAiIp_L`^X@3?`=gu*S`)bz0?q&Kpo(uFLkF^yr_)}ixwe$dI1g(5<@&(=Tt9w$F zzfZdDy1KA9?<#umAa-8~ZNQxEaHXput`GWGo$9g}gF8w5E6Hos)I@i;b;1D<$iv+C~=vt?>Go< zKqD)Yj!5@)<_HyZoW(A9L%BYUSwd)j<6xz~=Y_TO7$b>$buVZsUFxxLAD_WRzb8#3 zOX7}u`E&9_rtLg!KLoa(rU-^q=x4>XTH=jrTWBbnW_es+=c|*F1f3ANcDQ)&_53Pl zyPX)eEv5vE*r>r+5`Xm0%kGauIXqjeYA4EZ{z-(6;C-uX=r_(ikku5e&L%+?& zK780R_Za=Q1#Y=}SHSmXq-sp%23C%uAU}GXqfRn+{B6q>O5oPZISUQDWJCwx7ng=E z=%X@I9cD6;(H(Vs^6$nIU6g}Z_vcw=5Al=be+76m=g`WPLT6YxsKw~sY06g7YyOB<>!(i4bPRc+CjaL4!Q*coeq1YsgKxDv^RKFJ+(1FvW4FWf+1*WR zT-sKw%7vVrIl2e(F&O=aj*lXf{)~h!m%{XBa7gjEcLFLfM0ljSH(~5G6N9U33Gd;6 z%3HQ}^^j!w2x%0L%XH2iWeJlfB(m~K1?)3f0mx2>Pg-%`{JPByC`YYP3c?S+(mc7j zt|NUXWXH1g^_Qb^3J2qn11d?ByMEUVi@C^| zDx0$kw`(HReEP2Do%-!c#`f{ZiA{c>H9l#pjQI`U)dp zk+8Fh?G33^wNv60AJ>3YJGwuJy?OECS=Z9_q)J;v{+^>+H;>Rl*R?*GtfwIV#pKkZ z^sOFDHI(CXo=M5$uiqESj18PL|KtaUuo8c}&j}_iEpCzZ+hdQYhx-exMxGOBjDfq) zrk1fODZz#G{QhMrM`d|J<4mf!|Dws=)RZ>BrcLm*vAOKxo_4vy5r?Gh#Rq*EPOXtO zdFHI2*?4A^g*}e<2;Mwibql$E;a0c^XXyC5yC1zBEOQ!ASFOScv^gf?vDfrVXkkr6 zcJ^^*!-fKGyz`Ko+nGm$+Tm2^$$~1`BRpjZuQM@s;i=+vUb_ z?6JP9$@T$+&8EbemIOpZiD|ilu!@%ew46A|G1av>%_brelQdn?CfgXm+`RrHC44jb z2oH@-$+JFk|6L}C0~ZI+FjLh+Hj-;`wKfd`FAo6t^Z<-b>K+J;R{w&UT@us&)O(>pm+5DjKqKt~T9#%p}s;E1*7p`Q-V9zKpV zQ*Of_hCSj{9I(diZ#Qp@S@mP@C9!*|iQLOd%2rOTV-xn8A?@@<3&ZKFpoj16LggfN z%c_-$w=oR`t|L!nR3e)jJjTmN^z<(GNy3ivI_IBt!>py9rZjaa_A1Jz; z{yD4)RB`BH@JjmEB1)}Yahux0cO!EzUOZ>AGC&&q_2~Um8I9mF`+93q_wEM&(Y2Xw zC;g+qRXd)^Nfg#?=={;bulqa4dShQ6Io2YbbX~fY+Kva*RrVE7hrOt9Kfgb}r;wi` zA`Dbd&n&dN4xTfc$W){54%bX$^MhkamiLe{O8pzlD=}mepDs#~s^ zmlsow$7VXe5{}GDmD`wh*B_#bD{;;iY=Ub|Esx$uC21@#eYixIwX;rV(`j7z?&(3X za_AruBWcP|m|j(pJQ+_%L}BDj%tfoJ4*~6-*X5$yVxm9lhPK>cf}NL!dcgqF7T-Pk zt-S1)J?}xB2^&AbUu<$G;RW{B3nP2u4>lXRgRS~9!3G+hwuIm57NdGOvbp}9Ctg#B12#_QnS>mN&&)K)6~@H%Em=w8%Uh$=BQSCk%=FqGJvzXf?SOIx z$f~GZuj{%Q`~LXSk`!jy;s$u|rZx+Aj6u94f&K`{t5pI z#@^J`{z9B{cQ+C9MT5}X-Z&xD(=!!kY_y+4m}q+&8*#`Gso#0U6A?nTkzUEpmKS}_ zdrdFbZ(?xx<2nlfM^TT6f+7OFVxdv($6^M{ONL@@*h=vJj;^iOOdjvIx4nZa$7_Ge z0dmGSgO}YaJa{X@&*`!LG3&$W6ijwCtLz(Oy5%9#^4f0uHVUhoK!eX8HdLHtaxir zubIeD{aNLauGiYwfZ-JK@5GxqS~=2N&Ylh^>O|U8O7DXh8c!-JtdImOZZf zIX3f7&w5~0D}@s2SH+>S)QHEB=*wNXeDR_vr`KOI>00hbiCDhuJGm#6zPGstC z4sx$Zx%TtaYs?J3oZPPzzTG*G;IPuZ^L$4rV};&_>QyO&EwT8TvnlcmW84117V0xh zXZ=DHc7D_C#I{5sr%zs)($U(hro}LxaofIn?Yr<}qq#4z^3ejd+kMT2q~osBNLb)#{5o<;~xb&xNG9 z-7VAaO*di!RA}ME+Gh-~TMAwnd~BOky|hhzNuVE!UQnvTDY$P7D4{*nysuiy=5GG^ z96DJT4bEoV*d8(X2=@ZWt*gp4i-}&7tn;*@TxVv^b95M$fJe9?=I65}4<{T-+SY!) zdmeE+FawqK(&ttegW6Ad>Q$w@3eE;JezVAY#kI2TyACzf@I4 zaoft4x9(rWH-z!ucrp359A$Y(@08ymP6io}T$g%L@-pUllm6EbeR->dbXKCar$h&$KcL)c%OcqVsk)L}gFO%?ki z<&Ys-1^DyPzDRPxK%aAA|E%fxy)|DRSv1E0G?E#$sVn_=Xa1ri_3ySd8H9 zmsmG*U4~n+EiF*x7*tpo{=^pbM~p^bL!SZBwV!aSl;rH5_$JkYFo}I2I&=lt0?!>+ z`)HWwcd!JTOts^zp^{sr%z(0XD-i%bj2Se$@S0wZk6*2(gvtB|5q*72de}>q82RLT zyIKY%OMow)7D|3z>}f^x-yM28FaGoXL&w&Hdp_g2Bh+bOdfOxCW-Bg_vBC7}>}Hb) zQjp$hFaUpJ*>3ml-udaq$?|gRKjFE6*)-$zakFxWpT7vQw94+l59e?W&rI9tkiA&v zMWBAyvF}d#w-;bTL6>sZs`~ILr%*&1!qhpxQ|B4|J%bUk&kfU3{-i;~^*;`HQ=Crq z!UFG|tn1I0cK8&2^_;!JeRjR3YQV@+Xz4)^-UyM)~-VWev3*I~#pfxUuhd4VxNig?r`K6)O_98{~@#Y>jOy2P%iql#ux!R#4wpBr_p}#?Z|gW9QwfrL2FAz77yxvl7|N28vffx=j3j2%HP< zOZ8j4KeqOgk#69Mf9>rurZVYr2x$^69-*amscJx}J-B+{*Vkxp@eHx(h?J}B9GlwQ zTAV2KTJMZz_4@B6xD^scFDU7RjQ^}TW~XOB2cFNIS8tyyMHyNeX!MuZ7T=1A8q`qK zUe5?-WE6-9q3%8WJ=uy2&R%pJAZ~Z@tIm{}NFHvSy>fy6hDFI_vxP;ayS8id)>Gau zw)M$(O1)5%d09WM@GE3x3WuOs(F})3_6yRRHLp9l?plgSKOIXaI4e2s z>*E|k)kz&ye9FU-Mia8(a*%u<(j@9*j!?ueMPr%db&m|GmyfGnjWmNlX}ZK;=H*?! zgsGgjDHw!cr9O}1{r5gnSK|-XZ zK|rLtL0UjSLAsxA&W^S|G_2qOR8P?V4t;pGC3rWwZk_AIUoeAWnEzhoC2TG1FyM+k9|4aL2T# zGN|j~)SE`R24BX@=9SZ_Q?}FJKnfnOS!{@o4TK zj%gX+l<0Kips}g=EPCy)&GR#*sY}TD3}C2um1v~g3~8AC8PX8iW;YsV^mS-Fi8+@! zI3Brb*x^C*y;6Eb#JZhuSnB{fsbE0k-GsK*kB6f6@BOROL_L~ZZD{Vpwz_r%N461% zJ*_$N!`9=F1a)>DSag4!v}E6sBMPJP5nOAw@F5*((mVm!cP1lZao$h3uUR2dPaZtZVD{~ug2mSafB844IwKme!(1A zkiJ6SajUdGoFS0L{Q>;o_la|Qj?W5CdcpN>P3zjsUJEV!MD5aT&1uBpVKGzsLE6iU z5y_;)!;9^8H$xps+=Jg^!B1JN7>|5l74&H?F_zK7PVawa56HfXb)#OO7OjmIJNe|H zYe2&^C4M|OhCWwXkLkWne%V`);kRyA4T?Wf{-^G&ys5J3QRjIMk}9lSpsDVN_oA&9B6H6$NHVCmL!zS}QFH19Lvp@Yr6z za^U%-@q-mB65@c~GM(Xx35TLD!VY^<`9K-%MYFG!tJy+*>wA>kcecStqtfPIYd~); z>GCoQe)@OPhCTYY)ZRZZ>N7?xgR_|zRcl z-CpxuG{pMU(uap@XM0St8-QX0#5j^tt_%n8qUK$u&f{&}&&`mrKU_B3jpjIN5^KoO z2x$$xKld=Di5@31)A=7qThFxLO5}fn&OOKT377gk2H_5qJIds0>f=CvDi!^?65Z>m zB)e(ugNp%zgoy0a;#?>XPok0IW-gU+Vsifz7-;=$d??UO7#t_`&hl)O{^0rK`4^nZu?Uc3nOC4=QtK?{i&-Gmk z0I+*KZGk%@i`o2DRXQ{bdh+sv>5&ujB#W4siDLH1>(=Ei1S+hr?;|=;I!Jc-{iS%q z4*z zrt0DO4)5`i(}>K*MRt}<yyH%cT7?PEW9QtD4h3E@8dh(ij9zsTD6e-rpY?@ zfH>gY+3PfKo{=*T#dNCkCwct$6VquLZAVEBzu4;5EWX1n<6u1!=Y2c$md!R%q0C@? zO{Z$7V_N0S-Mhs@+fZ>ehuU@z6=l((MylwPC!IX8nr z!&Z>0d=HNvTpDiT9>U(+I~k(N$LR$&7tY6W!-e@58JR*vlh-!uiWZFIAHSS9A3IuJ zzL5{Ek_>+M$MI5?QrdD`O=)~HM?4_L|6JL%c9d2yM5vANW?o3yncv+WKDRv)!9XG6 z!sbA-j#98goENywYc781P$@b(=OG9qtIUXQ; zwk3o`pw9kqvQ2p;=g3LCUE#$&@eOsQr>Zl1oE!q&Ma42#0fmhhtdgil9L6pD@TJe< z<(`_4L7_d-&goez>N=^J0S&kF+qYGLzA);M+d3mfAz2!1PK*;*-VpgOV!l@ut3Oyl z7}T*S4K3+dgY9C`xJ$tFjz3=eqhf!=g1p!sto1)j^SQjOVq$FOqY^%c$JIF6cy-v* zR>h%J{K4Bb`$yC<@5qOb__WfU4FW0Zmiw`%0>@TE4anGz*4p#!vCG(Ydw*#0M z;)=~}3qr6TSMfPH?Mn9B)@H75Q%lTW6)URXNmx$$qq4IYi{le0P2v-^UHk;T$Sm3& zE1xU$uWlF3*;y<+dk;~C_-Gvw65Ie#t3S4RS5K9mGNc(=wh}_=ew&9Stmm%F_Us13 zLB55Gc{ZmZt{6fnG_1yUh(0ms4#I9cB>OX96!ws9Zn8^rn>_n%L&+b`R4aLPA3g_h zZx`f0y8bxH?onavr9#uYd*>X5516(*O zJ5@tw5TB`L#n;Imka!M6jT_>8oyTRHqC1>;-RJJzki!flnXF0HzSGd)_p*)CDV%IM zybk!8F0!mmbU!g#>BUNY$BP4o7Xd30?-`KqCp7)eS{jI=w&J`5EDBhLZ@mYyZsVeP*lLPGcCPvi z=D4GcoJ$rQ(PQKsZnj%pKN?x-#qTIEgy=PUICW?@PB%C2Sa*Q_cSnJG*ns;!6SNU8 zLEoJ7@?yIg28w~rD>`{M8$MP+ZugG}e&lLi61nE6dPkhmVxbS}Jm;Q7MD|Fm+>9XB zc?4jkp6y1FuQYs|vmsNsV#{!HN6Gt;=Y&TGCaG9Jt@tUSHp8uo^< z2u^YPUj5|ugb9Eu6$J7m9l{ZaM&8{X{BiSx`jdWD*hZ3tcKIUj$CFyT5={Y%nDG-hzus@g9<&RmHYpDD{@{x?=in(}9$^GP{0% z)zsa)Vy60fA&|{{r;LH#rJ3GlACGkr37SOF1dI3L{90^U>p^6XWbF-S>*MxyHioH^ z+;A8}>UtfOeZl zGyGwh-x+z8#^njrs=~cOm}T)jik_QgXj1GwDkR@n@J6(b zXQ1HDh0FTYUc6iSEVpCvT`u~}P=$+1EzcgVW6pSa`TOVKyS@3O{qst*GmLG8*N+;% zqv4ofr0`q8DX=LztuvyiXKEzQJ5#@QHJp7_`!iQ6dox!`YSBlqmre7->X_f->ToGK zB4Xu3>X`EUAFlqIt|rNLh$K=BaI_Itue8dBAt*Hq-KOSoHlHvRys9O`!r1cx;T|x} zuN?M1e>QH}bLb{#H+vZa#S{19dF!}cf_ z8T%PC>@mq>?6NYQ4#{u4BX{zYf2ahks=OkYayp%8Oi#0Eo_udt_#WCJy!v)WyQ&w_ zA9vQ*dJ8QXwMj*pfLbI`8ZI%P%f1mG36m51y&TGNOdy9%4}~T@;tyZQT&J zBnVVezLzg~%UTzN!Y{ZgxM)SYp%#nFE9c3I$#1wW@mW9#pLqfXNvVm;3ksC0GRIcO zr5z4CzJ<$CHQ9StC}+1Ye=r&PlZ1A}(=`yCciP}(E5bq}7gI7+(Ar2hjl|XvSLRQY zD@3+G^4#xI^#Qdg>z~Ol$1EOfMg(vlu>og$r{dMFb=s_}i(X0Ws%7c@0?&iUezQbzDut;eJ+VsRr@X)^Dh68WHbl1?@#|#kGEHsc7nf2djXgZ!4Ft zJc!nCq+tGtk^W$3D#?Q9`A&%}jxtq^Jzdq9h)d-Z*}J)Tlr8z##IB20R74Hs);3Yp z*2GLmZS8W^;MSDILP5}-%Qr>{KCA9q`i_oE^0eu`$)^cm-(}hP=98nD*djyeL$G{H zwPramaRpC9pQGVqusf92<*<_F7BocGYeR{5F}u z;CxF8A4+L$z~vHKS>iP>U0dnie07p=SdZg45;n$ z@(gyAt?a)P;@~v!Zx-e*Jz%;E_{DT0Qg@q$DA=< z1c^v}V75JZP^noWM#%81K(#*X@oe=Pa}YZ1>Kns2HYZx^DcssiTQm%VQC5~It6PtEHJ`3V2oy_wIQ2o2nv{(R{mFC^^nhfMl~HaNK0!@C1Vv2muVM{qRd zQ>*rnRoUTmov+Vb&)jw=@{kU-0z9gFgDDm*C4PS9e!>fxS#=!$Mt#DXvgL%^mb0UI z>gWWg+>(B&D|^F6r4{c#SB~-(l`(l@M)hw_DaU)dCF8iR@mgTuyUqsV;qw=!ER_|e z!do25sB>$b_-RJ_%Uw@W1cu9|L=OMED-n1IbwwGO!DSz~alEXU`>0z|tx!Ch7nop3 zb$T!2k_A!zOctSBF38k_d}9od205~r)-$D(aE|m#yvyoXJM?N$EZ{%4hOW znU~d1pHZ9XwW?ak_K+uJh#YJ5JWW$|nD4$z`bJGhM#k*rozF_~uP~i6FJtoLQ^YOm z{QSI?lfNs?epedqJMxsE*>K31uN$c=LzPz^xzyXZcpgJ9KZbC24LSWNafso*o>WeD zwy5v|N?dl&_&}a1SSB&oq4zN^cnbWZNJ>s#x`g0mQyO@(un$((Y`v>pjVXU{_E|1O zCOg-mzg+9T2OquQM7Nr3wU9uC&7;m$KPB4rP-I8rwP;6|yq92rd3tJ`!54*d9kdm} z$-2j-Suw(OvwTdB^wh*%Jh59^`gdy@4LQK7AH19UW_*XUFE0QhH@!ME?VAViyb*oQ6TAqeErH5+g zCpwsX_b?MVTF;k^qcY9*-{Uy4Zh~S*_q>l{52j7at)`lL=n2Z*9fa0@lm++2Vj1T1 zVb(rL`EzhF;n}%&eUAv?R~sGEA$xm1(JWk{yd&68_bYm&WMtX~zQ|&A82q;^u_jSl z2#&FJhfPgep3-%+O(Gu)`>(Tf7#QO-HWrXaJraEO-zf)=^HxJ42pk$8KKB0VnrF93 z*xyI{U>m^dxxZ`#K@*HVaXwP5j#3a(>atKN=oR1LVVli85TV>daznWl8amHbQ$s1x2jhX=BW5F~Ko8_)KXb zAt5GO_*>JBb<-MenO7Z0XJ7BIN{!CV>+P`SRFqT^8h92?Ydp~+E!NlFVWqdc)3*j@ zp5RO9(D95AVzvuBPb(|v);Fjh0$o|S>#LT?^Ru|;fA;#+s^Zj{%<5!&bBCjvIY2RQ zTI0E?E>Uo6&9r0PeYir*J-_=%xE%af{!$oIdzQ6VM33=eBX>1)-U%G6cJWfKLUx*Q z*?)%~BIm^Gjl4YgQP!5sf9>Y-CBEG(Y8$M+Hf@P+88?n?(QcA;$}@t?8iHCe-<4Z-TeI?dD+690!y;EFchQv{QfT1 z(h6;8%hih>f#=el|4cwSI}@cD;R131?UrWbU9A58rH{Nzu^B-tQGxya0SPRT8X-;p z$x%csN%8mcwI31>Ou1Cs?IUaDW0&?3xQnNpiM;4BvT9>5j|3I|dp5N62k~A#R%sJS zx}U^HhiTo1C=n!WOcE#-X~f+E&nX^OVpMnVLt*99 zKZ)ZOH;6ieP`{-kI~w<@qA-~Pp3>rv=Y4B^B($=!eUc^8^xvV+wsgzF7hy}H5PyEF z_D?5GT`SynG*`!x9ovR@mu!VS9M+ZEzqr*5L7bFM{til8HjHV?$4KbnpJ_B$*Uf} zRv?1Ol1~G>UV1zja@52m#-P`k$dd~`Y&P)k(<|z3g4Ph+)6=e!M`^f^jPq5vY^iU* z)`f0Jh5}CCMn-6LH6r?35vG%eAbak zyu(qX$I0G!*2UGn;MS3+1oazSG#Y+ zdx`1%JG)TBYs}_@;BvCLQvGXMt=E|OX=t?9%&Fcyza~klmF3aj{KZE;8X0`+`Fn;4 zo_WU?zt@M}Tu4@z;v)9;m#FvO3p;%UO|%~h6hwbvFXu3?iV#HEh=7R%drTgX~< zOl2VyiL;8)30*BxS>fjtpZ{5GcLZ~Q&D@feVIZX~xTm8X)8o3ZB$%x%2-b)mB}UNS zkE#1DC(!(V8*z5)coco(jiMzmBO|YA6BOH3<$`A#Ez&W@^Ja$FA_@L!g{i*jBkv8- zgN6O}7hF%Zw2(a$zgig*T7lEUA_YkObl{7#``>L)8q*>SIOKm1uDha? z69927zq-a#U0nw&GPOz_K)IK=wyZ@W${*-**6ceR3Js>?(86!&IpYtel8bmVM85vt z2g|&`y4tZgh${bR?K}yAi!4-!ZpZPl{}YpJ)ubkv$AmAF8lN8>xcGsv;`{gwRuU?| zmyf+sP-BaKGNM>>EH_uW=ds^RDPTiUn^IGXyLhe)pKA&JqblICAPV1qd(KwUrMx;y zI0)tnvIT?J7m}O+5mc}j8uQaBq#)YGK(AQI{h?eXyFP)gs4pEW@D z(~^Tyx3{Yji_n=iyjN~%qAa9PZFfDc z8{^;7pV<=vUAC8A7zWJQg+@}M@2#f^;g{ClE^Vd&cyn~rKFL~G@V~<-io%8O+Cjn9 zC1wL?d+SP!#+$F;Q+~m`BSDtqJ78V9|E)Na73){Z;HXIY~^5RQ!66l|!%t%V+;w7X?NZv-5%P z8k_xg3Di?$0a?M%50c0Om>7JO$$>4xLzh`){^oZ7f zsu3+ur6xsd%=X_7x(H;-EeX9(zu6xT87uE2>OHucg`AH$4Y1?lf=e{UKKv80I(Ayx zK`Uxz3T(tLgj)1w(RacveyB{u*P@~u=+O9gw3xZssG$3F;}d;7!Fgekwo4*;8~0p{1QcR zAi}9>*4R;KKTgVVC@#VAJ;VaG1g+aJ0$i%-7xYGpV(=cnps5y`t?dY8G>Lq6JlKk5 zXJNs6-r@H;Rlw)E3EntkG@Qt-cS1<-MDEO5mp4_TGdlAWITb*tkD~5n_;Th&;cC~E z*784Rjj<-tEV;22`1y$O@w$J52OFET;C`qCk@@lDuNw)OM*Vq3SWjj#`yJ=5Uo)1| zqMDs6&>!j*etBb-9R`-QT_%|gHPbEohwcT^V?yI&w`&&AkjIk1+wIIwARWT)uJw9dJlhg`dvN&+SfG}>r; z5_}Sqa?k)*s9THZN4tVzcI%RuZk&J84*WTf4dz}T7bL}c7`wZ`pcL93_q4Vk*cvY; zGE)R;xNaUN{`Yv>^L%JwKEU=sy!L9FPXniZJ2~yThay$cK`p zC#V2u$k{?=J`@lW1K>y=^&iTtXfdJ=By^BA-f0PaBf{^LJ8TyFz@nN;uA=_!cPfpSvZ`D0$=3)F~`g=y`1 z5tGM2!nQaR6lrO|e7_`+)8)*pNU6 z)UBE*U{FZJ)bAP(-m4YK_EP<>l9k>^P*DiWACp$T2}5AbTJs`ct+5wS{xTL@>M?(i zHafG+yPG;}|K7uW+1d} z!DH0LYg_m6lyd2w7p@r;%27{`$n#KiWKItOid?G-&C z__#5A3V&@Pr-ClrXs)_kVI|u4j@9H7FE3;dBLN878~1(ep}{W=X-Ujtb5#FnW2CP* zR=LlAD(-XHidC+m)geRL2Hfa!7q_t#@cKDWlfMQbTLyryETqi)?%qxO5wN$1h*ruq z0uDOg4>OxGPX&*=SSpZ|XZ3~oe{Rtm6KaMGGKosm6xuk3d!4xo4)hF8H@i@}R;;bruP5C|(V^$5e%j6IHUC@v(@=YV94IohkNDwI3QD=T-3YSW z2<1kQiykix@fa9_OSEES{{?Z~g?hM}#qYWN>S|r+W9?7A%aW*E;a@GG11#8?7e2sw zX9YbPfTrySogZiB<=J;BjNSVi{f`O74FGGhUy1DcmYIrc5DOQ#(DcFJ@moaphK#)u zTKmFX3H_zkk-F&KSbq1#|Mz$CeNP%)NJ$TQIX4*dMqidY<;z#ZQjk={BymvE3AXlz zxZi-9TMH#;1G^p<8=E%pP_O@L2wzn0b0;yCBTI>4_3Fp#0QT_zZNc|MzO%{;?EWp9j62+Mt&=EhElyw32H z6UccL>TDoSG4fA}64gAB(TC*e(8R!c{TTKLcYoM1aeVpmd#vVM`9sC?!g-(m8h9tA zxoG9n7~FrE?5tce(RSic1UtpA!^aQvD&lI6#lZouSA_70pgW`!Om=TnWWK{t7rFVP z(7%`>!ani+0L^xTwYlRby9G~VXCKa1wXjK!JihTLn|$csJe8h0hDSs=PV!KqbcI-K zP`w&QsG3eLm857hC)LuL#XdKNPvYMv2gcBM+}3o&F1LGX8k!P&BDkr8Wp+ zFM#ad03T_Y`0wGTn@Izg0?i{SwV&%6JMXySx_gu6inX&`ks>=Er2_Kfn~x9aEvMn6 zn*T*IFZnt2TGOtmA?7S2dv2U|@prf$CzLtyyV=uGCdx3G4O(dUe~ZsK{F?>R;}q=c zEvlUpj!%m$=`DUBi&R`^{&!J1VY3g_ndE0v{z_^^U2LK2yUmC_dkf{SLmTy@7l>rLBirbh-vdEi>@T^VUb?@VPRo`Q7CTA>v#O^|%S{ z!lI}y-e_phBNel=FXx~a(4ApTGFcjoyfy^mx670QFYBzPT0>)vaE{@Ii+whYpCboz z(!xP0RbJ#K%L28uZtU7Ukwm`2>9{AsWoF$$bxzQ;xdZd+%Hj>`xn(4`Cz$Xs(_yF7>+52>A&9wlfyro=nbd`xgC6y_fD=3y7= zz`mK38OL!R$8wp0D_xoP5yh*pU-nsWlkQj^%k4P1g_{-i!wOoEjl1WnO7wZi?72m~rM1n{ zW&+JhMI2s*^}>qvyVr820|J_MKK@QB^+6FTUTh3~V^EJ<6qNP#AR}99fCT4ffYLSh z_M1;U^p;tZU%|%k|1+$+Ka=*Bpd0%eqAlkHR+O5b`|^_1`Gb#@o4-^=iAVQMs1>k( z%WGU6opYR<{c0mhr79Q{Olv|-EsC2T^+8dfL$%7Fdt2H4(SV>>AGP1bW0jT@vTrrb ztx9;_DUp#@bz3`rU#p9H@iZT)fUdzgz4r>`K?)@35N82(q-8kfYZ_*eC5zGLm>lST zLAvF1F7JZa@tEn=h}B-7)@kLq7%8#^*NPci%_HnCIOP*~zU#aJ=vVz|d#ZwStkST)YvWw)l**|L_`l$vRXL zd9~grs`JW^-Ou4du|0d!P2>K-0G7XjZ<2XUa1JaZAVFm@|hsV>C z?UNkx6at8Wo4V;(`KE%~(O`X#$3fj?@4Dk)L0XrW0nC_WL?qMV!^*mJG7c5r_m5Q$C{)YLS^cV<@^Hv{lG^+* zCP(T&$me69t$*!qGC?bEQJ?fub-<9yMZkrBJY0V=QC0PIpS)ap_YTXk&Qy7L$xw=R z1=KPs&FNLei}9DB(KOC@)B8J}ynnPeU4i^m(@14-%IXelfUd?GUpO<*At~7{U-5C9 zeTYb)C;l%i$ua&pJJY`Mjpp{(`o<6~P7j=l>Cqts)xJrEP;Ak*kOzY8=3SG+B1t#WYD{@Sc(F(y2fR=;W+z|W8D z&q_0l>AtD{0KJmtOc@yaRi6g-F3Y<##UW~>8N=X?61ucaTumF_ z(rJcG`)BypbCZ-urLT#l7Oh>E<~mnEh-~LYspm>Qn1o8mNcGEdu5k6KL6>RjV4s+4 zBHr@S>W8ZIN43ENi5jE4FUF?-iwG=x&78=SXDRyDdDP=Hc>OL^ztH2^8WiBN$FXNN zy9yApG5s8?h~4Fw3)hdql_6>a^@`&mP=YIWG=pC}q1!*%JjfFa{silNWIUErj(lJi zb}Sa*AqrVB6O*~S8+vGjs|*68fmf52zd-63^8QaykVBWyXa4q`&7B8H&sDW}fAkVZ zDm^y&lGmU3QaEhAn)v z2(%kB9SQA=rE_pcjx?|s3(Hj{KMJeL_~h|HrgJmrqvKUlTu$a+_`Lbl*Rv@o&pTt) z<7nr5`uW|%+yj!2!fxg8F7VaxKQ1gP?bWbs$zo>zeg?XdpJ3-3nVHa5y8YEY`_0_U z6t|xb3%-f&e5xs2G-Tu$cFiBFJ%;!@5eIN@s(7ur3!a zsWvfT-%SqwhxH3{c<-u|n-M$7BXX`mE+ae*h{yP*za3#jTW6U4VVC_{9Ox~;p%ht6KeX9DUirWp zLRa^2b$Bpd#1qw^$x~q61XX`~x5m&-lVo1>=CdEmlV3A`PT!l-C-tokw`{vDbbYcs z`G8nc{eah;=V0FH;IxeN>X%nRAx7Q23@P!_o5vq^E3yxe3of@*?4FC05XveQ_{ zJbXbdcd#pYMa|`$u3LWm4j#wYAmnsNdpHwl) z;X6QS9u&UH`ns|EH5CN>ko64z{(yAdN6%Gyz2Qah$l+`|TK2lD) z4N}r?x-ooPH<7SxPT|B{?G`bzOStDMpi&+BI{Tpsm0HWkFybNao#q5oHB47qoH9#( z-E(lw{%SD;?6U&Z*X(!qWIBc3T{v}`;3FaXI9|C@1z!Vs>oUHbi^NW=jyi38;7yX% zbl|b~eL7Nt{~)~mE4+Dy0*&xUIhn}ZSIc4IzbZ4`^_PC2j zD)#&ChuG|NrPLui_qKAktKS$NULqbDUbgmhcKZ6-?z>8M0l`?(y}COS&lu#hlSdwc zaI=taLSyt0$19>MD;aD^*k$?!h{Fo_ols9RDgDc1gk{$Il@n+Jea( zE>!?5I%ojcb5i3ar37U(NM-HM*MOCA+Zo*RAq;Du06w?sj}E{3_~DtD?hX%dJ7*wq z?~crjfPrHAP;xouZ-j`)ibFveUN!}|P-A@4XEnt z@(Z6OpQ~v)T(m>*W_;eAkVRz_9;u@#zS}LRy=*A=#89JACY!#{^qne z9wrCx(a0^?*-7Mn1IzzuCghvvsQR&bub-|#QeK+rMZoT_ilofTw2c00x(2SuC;Iva z@D*UmH??og={nxQE$ZhyNTIy-jFPcaPgxBn)i0rBzN5wN_Jr9LL(x$65@dn!B_fQ+CE!Q4nA zB{BY1!Vfg{zmE5qZ>Om+>x(&NC0Es$ojgALYVm}zH>3<>Ik$mqKZCBcdF>4BHgJWvyErx(!kV})sCY+vB26(qFm(vTzjybg zd~sH{Smn3B64Nx*XSdR~xQ$-F?~XywMyG*MxMlx2$K=Dqx92gDZW-Y zA!}ab8ui88KT7xF1b6EaGEp2U#DxFhFGWhI;_^^`vJ6$!MR-DNybxn3Gs=0^d+XtZ zQ)_l}UV>(Q%EQ`lQCrWAwJ-GbZs_$4eVhuh3poUqCeJ!ogqJJq!@9D>Yj)0Ecs?7O zcpOVGOlb-@v@P$e{$Ry8Yz}_r^KOf>f4xlZdWX^;iLz%!Tj9<8xux@WQ!{L;A=4pqYO zU%;O&OB1e1ai=U!Q2uh=-@&nm)u!Xwk8?m{cHiqU233g9iI-YDNZ4I~7=H4)PtY1v z=>zNe@VuLseg)m#zwCC{g9Ms@%dp)Ujz%}Kc{d^%F~1p~rX0a5j>6zEjB^`~FN)LK zUW6Sm!ZqoaRXN59eL;H*AZP{cHc;*UXxD2F^K0l=0P}sI!UhV4_m4C+i1Wqs>O0%6!%6z)a_B zU3O5zM5KJW$+;*>&*@)T?|nZN@52kL%b+eFk-SM1SFV(AL@)2ui+*ijx$~w@@ptLRqdD>BMYh(s?$q?XWj^c+IWdyK&Pk*m+u&`*)1e3^&j@?!fQw80QBB?x1c@eQco03%}GM{p_-X&bN-Ntbg zrH~S|wJ`O4BPHUuxz|Lq<{3Dz$9Si9U{RDQnl$;&bmoGiKKI6gC>Cxs~mDZw2OV^j(22ICugzn>IO0l;v zNJfx&mchI;ntM*zZL6nX;2JEl`G;nzcj`*LH%=F+XM8xlKF*REAs1`5FY})G^;nF5 zvJ7_C-Pc=R06m8xSKM9XjxphyUkz?~!MJV3;%EFYf)5E&4~d(j5>`8wC<+pPGTll? zAs+8&4&Tg-)qaJXom~=a@u##4>Y>4+v$NVp*bzoc`-oo+LBJ?z$9!F8tl;JgbNR8~ z%e)En@{g2Cy&#8|8{JZhf}Y*Y zx$w4wO`ZE35=`20LK~)RmSf8lNI@m$-grpBOGZLlPct9YS{R!77}Lh^5$w!kxIu6PA=rSsfP*u- z*o>T`j|I8vGG^`4ZK36RiDKjgVF6#*<;Py$G`k8%v-Iv|zMguzjrMlH(6iKyFUWSl zCt$8gYT+jzOn?NB_JztsP*j(?i?43gMs*IwE5f6>t?~z&l{}D&*{aq_MD_K~BV{YM zkD-RIt5tMnnA@VN@oYa<{Nn=1i~WF_NuRxp4dVmq=5w}@MW#RFnDuO}_kwhK&(;Jj z4Ubg$%l;GEw-wD2Q%23WL#;b|5-ZU5v+NF@W|MbHnz3vWrJOOc54QunK-;}@o35><+X=SHqyw?iTN zaS_sPu8>=rkMw=%yNunYWxRsh#iuR@vlhi;>-SIh?ju|ULz5=;ht6fNy#k==+vhf( z7I13L4+Sv0=PiCbN7)Yva?d^5&mRb>l5iF#bFBhc^D{yu0B$eJ@uP*kF zPiS|YN-pPWvKo0JI0dN6NzrrT4!R=b{fxmjn>mZy4X}xj>%Jp#(zI}fBP%H5$o1u6KA=_(e?WdJ2biY_q#_~G^;tcs%f9y{kzLA(eT`8eZF*y(3d&NBsWAh}D z*b#iNXJJ@PC{q38()=xisM^M-np!txBU7f1d!V+(qq{Y5(Iz zjJnYcK<{#(5wa!M*&o&pazo+)nmpWo2kX>GykpyprfSG(1C(C=o&n?47Ykz9yjJv17$7w&;M$L|Ueun!b z`%%_>>v4c7#`I!7Wi8Wv<@l$4o#Jv*^zSl#65HQJ;)!Qdfc7fzzuFA~gB!a$^T=I- zu=3GavxMNUZi`|C-vVRW5C$MT@Vv>!y5q?3a|=163iL-B>-pJ}&u*8AZfP}n*kFG! zGV$Qu;HV1=&to4Y7dgOuWh8cok@(a&-CV{;+o*8Ev&;Fp=8k0N?q+8kA7-a#;J7cu zt1sGg`qBNptz#F9M7(A>!2|QRbJ)}=Uww3u3k{*H{UIv6Z)Pt&n8PGi9w^YU`gdRD zqtquugK4F<7z%W55t2MPZ7jc){kIv{Kx~z@XIaHE z;_zrS6ti0mY-{b?r^}fP#N`6s~wl&psCS`RhV~=8Ri(crSov%7P zOwX-%X2L$D57DNI(ReA0%4#0+poVF>q&W15-1ujeyX9}(of$@j<4oJIh~DQb3dJzD z7Q^$pcCXOZ2GKy#%x@Kf*tQ-R07k8Rp}l+SnQSim4}>T~hgprJ?xog9+)D~QPHSC* z+8K9Y7bM{klC0HWNokd5h>-bt%JR>siKs566^VTOe?2tWm(1K zINUVi_{_i1HzbLkGk|$y z^}UHST~*q%gvqmzny~bjH7Z}X_4MQeNw#-?=eKaqc$3WwUM)1)zp=RIr8^}xQ15*& zwdK1Fc2$3<0@2evLXp|C5^)_G&M=Oq2yMe8T7x2D+NCqL?dyzFSG*mx<&-)TZO zDh``3|2_M-C&;5wLnF9Q7o@U(5=Yit0!#A=+k4av=L1=mTrYKJo|(z(+Lfnl(bG_d z1do|uFc$`I)xG59@}{cuG=SH8zn1vUJX0kqXn+}ZwQLcie&45k2_eh)Os6-!(c;#8 z)$S|`ht=hs)@^C#`Dzp%o6E(irx8;378Y<8L@#%urB}v{aqY7j1+h5`aWeN8>FhUi z=n7=+PVp8&K??=XkL;=-#9i#8MeQnqdk3Wv;_CiUd^|~>EzlJqLmNiZ-3DHWgh)(BGDy4Y@^S@XYB+VA774%9Ou%y)@FZnc_;P+| zDxWRKjxV)@2w2iX%UcbE=xNzKNVUXs3ebgZq1o!wiUiV}oKfk`-o1M&tjX>?dau0D z+r*s$V0&nL0oJ0<);Q4psELF5?9uP6-m3_Eq`B+{H~Z>PK;YSk>*obIBmizM_|K6tljNn*msMaw@=%hu!K@})|+n0tz1o(VDyB6#JLb;RGm$fMT^I4PecB=fyH zCCB+Z>m~7y2$5&e@bw3Zt7b>Uw{|8vWp~;^-8-UM?WG_Otd6{&i&qhUb?#{SJQUJE z&;5hQ@x@B{{olieBF3*)a2J1U>gEXMO5JM25&EUJk&6q%?XCo9bnq13r_x>!!lC=M z?z}ad0??yMaHty-3@FwQmD4aMCjJ=49|n!Od!1t9`SiitT5F_}@8ho|&ud=B*qUl8 znY&vFwNgl`5@oaLDg-^<*CvUOY1j~bL4jFOKKiEdjzZPT7`(t0mI4WaC?QhwRXM&l zM{|4nqZeZabO-N#PfP8KI)%QJO!8B|p(mr-vsT5Wx1Oj=0!CPLSGySRQx1jKo`5js2c~V^+L9dq zmxNGN9Pqm}7U|^m?o3Jn&rGHV;^{4mZ>Tmn(blAVlIXg$AvS(NyDICVZf?Qv1*d%6 zVGzQtJ&wtZ%TPMfF3aswp#$)X81+24#WtxOseM)vj)=28%=rJK=_;e5?4mW@-O>%x zp@4KLAQFloAtfo@4Bf4?0@5NV-800{9TE~l58W|z3~^t+d+#5Auv}}-d(Pg^-uv0* zEZfAr_5D?yzVz_C#&@O9xp!}=b~P7xF`V$@x(@tZM@bqy`F|M^uPn%`-T!05rdM#j zn#ZgoL0i_i9{PUUit3>~;?_HGZ~TkAtj(@Ot} zR1984z7?Jv=&IZwA=svms3tV>)>yN@G*xPLW>yWORuAu4xzJ}82>nP^lrtxV#X5nT zF)c)73$ts2wDtFHlt%wBm9Fzya8=y?hx@$lFX0XbADXS zO3!%_(tL=ibAPeo!2JG`?}zliepR1v=L$YcLr>Tl^<7y79gHb9ON#KwM?9@w`Ny#;ckhhg(5wHL=W<(oXh|^TlZvv~O{3h00)b`@yeXa1=)1NY#O(LC-ajDpTS7`o z#NY=YF9Fn@Kh^1Eb%?i1WdE%C=C1vHj6iOJ$?>8fsGX> zABnK%?nQ(u7B3B+(7O}Vffa4Xc{Rs`yekU03s?6X>=G{G6D~xKistjqV z=j^oA+ACIKVp~}8N%WLcwhM|oD&pN)J6sYN5&)v}n!xv&KK?Xv?1bvZko zA6`xaKH!K+3QNN^MxxqM5+Y7^l!%e06 zbQxgMQ|Yh3fCd8Xmamg_MSRD2gUJV}9P>}V9)yCQkDWO*?CTTpmlEv~j)3^ov-E671?hnr*a^28 zL?&Y4!#i}{+S8RITy1aq_kRhUW2w~tOJFg0x3^q&mgwfkK?*sBcNTN?3GD2apI3&6 zLs2zl>b>79L8B9ZK2F!i)~Qr#g%9rA3yU614tL}p4g(3cGnAXBM0%sPk)MBWpf9B< zU4QX!HzL>j2v2yAx4Q>4@^$&EMitkRPnYvP7VUCyyEwt+;n4+QhM1S~GF_zr5Sm)A(UsF6sQrA^AJ zjgH&Q+^PHt?~|cC0r;Jit8ljt_VG5c0)>LR=!l`5eC)WshX{9H-3RMeEN3U2I__>kGH$gTdv?6De2jJB^@o$)q#o-$#% z#!L!e-jBYDYuTe+7k%cQR-i+^Ofp4y@$c})3vw!=#naE;-sx>XYKmpsxQ)?kA7_mY ztDp#LL|U{?JJ-wbN?+5FpFJSvsoFc?>o4VJ#2z4)au0hDe}w zV76wgr`dfggxV;KWPK!)x(PHYRSAg$=2W-=WfhOTBhO4M=kiy^Nf1tfD05=#HV805 zYnV7yRI(b&Ot~CGQ7alxQ51DvF|BF?B9{F#bbI2?NDo_C$QAdE&kM`B?U|{;8)|T^ z?O=`n71A<&Hd8h_0{+wC3PbZ!z;+%-$~5>utGy(%)7^P$-=#H~O)&}~FDbd45EKqj z&e)8>{6>n@M`l#O`8F>ORs*6LRD2S&c4yf6i@ngG@ z80GG0aE8r>>3hx4f4K2B02o8`(<_Y(@eAwMgD-yY@%cX)ZXx;Sm~Y{|g@1hrm+OkR zGMBwK+YnjtxqYxXYAsl69hHK&1&N{$n~l-ok|ZO;72)!G`r)~)7H*=)(Hmp0X`ob-tcm86BFW!P-@=>FL3 znJv5gPXZi&ldankg5am{>Zi-%xjwC<ADC>WKqzXldW~0Bd*Mo@fIz7;2^)TxlG`z`06D9kDl@ zB4()0ZXrf$43&;=7d@mLZt~7?2~y>~fGuz>>HGyi1N+{$wR+-LwI>Jm-Zke+Q;Q@_ znPoGMVXa|DkU+DueKfg5&jY2!n80X4B`5|$=?|R=GC(37`@j`cO8g@#j~`gPLfAhP z1`Neby!>vI2c>`g`hSm;F=pyOnpEGe(W#sp(R`paLp2%`SjzmG&n2#CEn=B7Q`*Ec z>Kx;YS_=!v3NHgY&a{oudmfF=YWl>mM^)1&1#JfjU)^a zhiQ2SuG>COI$OZ?qOI*}bMbvVpi)^|-B(s0!rClfw?FPJ9_mBY0^c2+r_Dg{yl3ER z{JGV}FDx9V-PEyO| zz?cGqCwP7@l?B8HxCwHCYl)TmCct;1B4!;&iabH|eM{PUOGKGR)iFyUBK-n-k3XFJ znGuc*2y)z>Cz^3VcVMb#kh=T5yqu7Cj)^#zKSV1Hl+iDAHapoPly{_%=3=?h*p>y{ zuMrJxHxAI<(D5!X@W3+T>Ep-JH>jmcU^{Bb?~RsMn*JhY?V2v|HX*X4Ztpe9yJ4Ic z_)*)jq*{UvEClW6d2VpMx2|A82lVtxBQdgG*lnR02smKuhS>3q8FLepsG=1J31gKz zj-At6QY&gkobSP}P?6damA+3*GJ#16eAp4dp3+hSR)VdiP+-E>$QJX0l`ixc(Rp}8 zC_h`Tjbz#D$`%hB4gk9zW|JGC^V`gYBr=MHwtikho_dUE0rx!` z%d!UFZMkL0(bY#ONOTm-0y^7QAs3n-LAG0j*G74(=v4RL4>R{)@Byz?n$&4Rnl#m` z(GH5jgdQYxj13H^&9mvPNHJ+qQ8+}*5i3o}XpafaMnSYuAHUa*DnZG9&l2;f*5!UE@rs31z$PDm09e%MU~3qFtU^>c-|QUV&yh7ZzSYDHzK;Z##v^i?9uOwMVuX; zlje}7ZHAs|Dr#`m^k^0;g#VnUUagoLXReaCMC^Ne%}O|L}%EMi7n zFTct=Toc>ppTrDs){1O%?$XCUy+nGm2&1mxN{K)D9NED(cAGL#0{5K(r9`w@eV9FD z0WNuf=J8cBQonSmrVtw02cf;n5o-CH_dS@EepWmaSD-dY&kyJ;6wfc^kkik zBV}yfegzos-6eG-AJm2k%^&Mz;-U!$G9koEDEHng3#9!ck&(XK0-4YxIFFlqX`YKz zsxhIFti{UFwgI45O{S5pVI)ks4=)xmlvVa=j)GTo#!h)GgStkPUSD?fW}2@NYFGWm z>WT#(BK9o+RLQv2q}x}Rb<$`umGg-DZ4!2iQ#dRI^O{imlEk5v7;m@36mRz0magzo zRKLA3>^T$+G}nbXx8eo_OhcL4pNTLpt);-85lTmg0gM zy&|Fw_<(HFaKsCV%c6)jnMw`4yOF*KWel>d{g2jlPp}dc_X-k?F?^m^t-L~-`F3d} zerra+o&rylrfgmr-Tzvx_drAYG$H@MwV6>(_jshQT3jRZDD(%mS(oRsAbQaF4~K~{ zII-z9-WUG$pdVK6-=XCqKU%|>)eC-O-=AqYF1_V+eC()p1O8Ss-SbJ08(Cjz<;5^N z>oOIXcIVlJ=)?z>aw6vJ^~R;1Sq7~yVD7J?BCh!+fvvL*djd1{L-(qbREm031YqM% zJO;!~hmjLyX5 z77#Z7ZFT~TxaWi7q6*(Op`Jn>hQEEY2q#78R!-Q&Z_(!XNGu?8DcX!>K+DDkcw&0* z)6}HA+S6K7XP-xxdB$MWLAt!#@C}w|GGm*#hcYYIJwLM>3o7Na-XLE$vLWz*(Q#z= zhm_m9HF!(a!lejfoJyE1OB2!w=s%umgQG3|WW~Yw9(WwzHz#9BEq`duJ?C^l^RtWO z5RB@)C}_|IKfb_}&ch%0Q~&$NHstk6N5OOxk2Y4%2l)+DdnMflr2|Hh{K`q*Lo1ke_m>pkwH4FHMgIHxe=ZxeZ;rI;?4n2a=kN#Zj71nvOJ?( z(q7i_W+orA460zU$krf&VXkF$$Kd(pCBJeeXM>CYL7I;vAB5almI>uG+j(5@Y4a=v zCxg&f!}O}>?|z=&Fi3wYrw34nPa>YE3q(hd9UO1N83la~>`>l8Nj0%z@*0Xgxn`E@ zsy+9YEsX|dRrWk;Q%&lsdFhhly|70M$_k^OPFs)&fe^2ID%K^wW z{&#AcwWUQZM8@8|_;twmhTl(`F)VsaO?32ji3VZpK2LrWljwzy_+CeCOinG7JUo2M ze}{}1C@bS(vK}J>;ZQs7In-|uLl?T;&?OlE)j>d4N$}QM6AAGw>23{ikDqB+3Osn3 zbMLfyM{MtOPtfol#>L876ZvS14fw=A=O51ID(;P%ZA-j4Q}CeRJ#R$m!*86@Mlw$Z z(%^yTrhCgmr;ax@0bCNH7$&NAKF#02^<9(aqC(`L-2}Uup{dSjWL@9iht+?YX@;RK z5eJf#l=3h0b5{kNmrhTXz`yR4!1;5*#&4ARfb;oaV#S9@!LgS_BcWfPb+wz@-sGH< z2{aGR$v8ltob2hXVghpUar#jSK9(p?f(66^nIv-}wYikBsKDRGsl&fA1ve$k(WPe* zg1?RzwAcgJ7`Ne?Y-z>6d~~eH5zM$uz`Q&nw*1wRntj6->VBBAp~rtY8Y$ zbBrc{EvwOf^mV8@zjoQ;KYQpeQGb=`Q2NOqb>ce|mAj2H{OnQizSRt{fcK`Z*q8_du(KKRF$20eu7 z{msM!!6qW1Ec%%4|6_cIvxAj_p` zof&mFof}9rFxY$Wp17j5a_r``!aKfiB&-IX+1b5`L&=h)*Kl9DbPsb|3MU3} zn~?Tp7W;_&PRN%ED`76`V>(Unw93kUml(Tc zJ~~W#R@)yFfD17=VPhtX_NS@GJ@LtJV}7OOSF^fBcKIjTylBVY-w@&;(C!!V`Lbf( ziZ@XwA^R%qn!;2RM=FGe8Aq)$s(RZ0RT!PZZxnZz_B0EXDl|OEoWLIj(<KoVIxKWxiyqBEp4E5+jQDs0b-*@9pLH7 zh-ZIo7cnVbs*B09i`Y6-33MONx+LCc$seF6n%b~b3O29~QIV1+;YXwOg-oRMk*r7d zHVU87&MFJ;=97VTEXhY*xZ0M9mNsdzo?1t4bGJKITJET{tk)C==0U=v!hZV54Z=m~}YD=nK+>On0P0DjDX4M3iL$qmCP zry; z$xD_vdsGoFm6-lJYffX%$Hal6cb@;sF=(MAM*VWu1rm#%_@PClQsXhM;LadPI`8?~ zr7HR?klK)`_8=hX{u<57XDv6+b&U{txj%)Yb*}S`?j>TnweLY>p)ct2&Ej;ooF1Oz zJ2#sEMsIn+=#&`bo8wW6aPkgJh!kv5k}_!xT_RMR{YGi*Tambz?{oLzPyguZ-L zU=KyN;g)vBKerx%ms-&tM@CB8_zXa7%L7+(p*gg#@LCpn3!8E|=TEDh zm+sOeGbr`M8eqE_b6o}lAKn@V;NDPwzLoIgF>dj@s={n#W19xE__}sYq4>dSQGI#E z5pqU>X(~uYv*@3f$fG8^fjTb*_vRGUMo*XKy!ARNVP zz2o_d2Hh(s=s+kuHWSwE^K)-5$i%tj+pK5z+C}bVJVS~<@k9h%oYbpHVcln9;&!f%+QJ4#) zHbLHr^8FH4=1~YCEKIygq|!cy16ZrgeS4j2Mfl$H)`gk%mM zoxQf`n;3ik0=A;Kz^)v1Kw}@#VFAwMtE4J9tXhWb^OOp;ehF6`197V9x?&R_+&#_2 zlX^NT2e}=kBRuiidk$T6Bh)Z%ev(zWY^bcf>FINaNk*#Xn&Kt0bjBuu)S-D{rTgS~ zEaGTOVmb(Nq3{QZL2*=932Ud41|U+Gmo|b;Wo6cSugz~al~7kbqB*I*N3N(3y{88l znE`a6cp2y@vFo*Gc=*PTQDdMivVPQU6jxN}s5=CC)5GpzCE-aC5f5YIgwvV1rQ*k@4vKNHxA%ZyCbuC)2AR z`A7T`$KDs9sZ04OW9=#{E0YNh1d?;c$TK|?()#ARch2c9hhDnqo1CC8Q5O%X;*^h} z*bl(;H%fOa0ldqzdlFyMdK3Hqb@fb%92!UgJ18^dCZ-P;Q%L~>w)Oj)XLvRvzl=ob zB{90T@+1lT80?2!oM=YAnl7yQN^2Y9i7%L~91@Dl>wb%9#>6BcFrm^-am#R#2G8^I z5{K$)*D;7Ker_J{HK|2)TohDrSVtpXRTQyXak--Z@@%egZ@f}*;G1@UAiy4C4wb5E zdZimv_I;4v);RVhqu3zmIH4wwi!Sqd#FcY5KwD=A(lS*A93pcdM00Ksdx$GM+9@8}3a95w?pt;gnkSMu!)@aaK6zF|IpKJETE zi)gnrzedEkB{QX9*La|;SSIkaB;OX2?HpgP&{sQl&wj>$afzl|U12XZwaS7Y6s4tv zTuX$bOkFDdjVkwciIivnNuTbglanS5g#yoRAOpm4iMBVg9dY>0_V^dd z%j-)P0ipe?dtOmy5)boAypCh395EDiKuUiRQ$Xr?5invdoXSOJ*6EQ{lj48DCh977 zR+ydAtJ3z|Dw$21mTky*I7@kmvoLN>+ZPt6hMd|kA=$ii8BJ^YC`gl@WxtG3jcg=& z0%o-RD;ItrMsk?>n|hAjl+mGy0qj2r?%Z$)-v4Q3S`7pwKUSNBqzR&ke|Ige^_iQs zD=t`lWR z?l!2`_rgR~#QH9P3z!}4b&qyppTFz$CjjO3g;iaR4B4goPd~1sI+GU5gctMz>=c9o zvuiQY{T_gDvWqTYeDOAHpFh!|k+qnJ6P&puXs=G$ZHmgfCkKBO_&w}f0<012za_(! z@E!?W48wLzpWB(3PBwQKj(4F+PHQNfcjaqeY@@3fLDy7xOS*8$>++ZDz$T z*v;X$!3b6+`P(W?u_cV=Aabmw+Mkglrt*JIZ;4l$NSLCkT>)aO!(#eh87Kh=q*`H$ zRsfXx0HJZxw{KrM##|-t7`8$G(BP_a>|4cDZvJ{3V~D48@qjhG7eSPesRF8FGR~bP zga3dao=(nhe8I3EpU~AE9-)!OLlVqeQ8i5fGsXsHGAamW-B5!LQtPd_d25v{HQd|j zg3SsEKk+VDON}cojv;C5Zilg;#(&y7zRqi}#stzhM&^82?*FjwYR42#2rD(th>p%m zyH||vAB>L5+rzZIZOyLIJX7?T@%?Tb4RfA{f&H<>;FukFh&27SXMm%S!JiS{p+NW3 z>#B-@OH>)BM`ljXQ6sgmaK7%-XPfo-3*;JA5;Dh8Z%4oqr?S4~+1t1g=5= z{Sk3|UPk5ZV2|Be&`6r=;#F5)A8idqln^W433l|-IjVp3V#)jbI1+q9xnOKEmB=fB zzM5xgeEdwP-eqP^{3BjpNGKYp#x2qh3 z$Htih>i`>?-MJ{Jin;9!#cx|uS*U4h7Ic~MJWrlA@Ggvr|T?%B~a;BORdotBCwwVwrQIHxqKSo8X z4Qe=-b5$|lqs)b-O3YJFFPSpefy}~G)p_l74U0C>{ipLaV2jB4fG2;qj2ru6^2&_x z_CdBuy_9fu!`AV2UX7b?!~9qxk+-`$|AKKCGzY`VCm_Qlvfm*dHWGIC5?~WHV4W3$ z3P*b`7r*sXNtxsx?o!^Co@H-GtcZ@?r|Kf7WpOzC@>kI%`>03_xE_yHsHSYTEVI`) zfBeOfBaUF^ax29cMfXy^i!1+@7RRCL2tbiCuB7OCGYQ{Gfdr-~QJb=N-v0Exy=5?` zTmSh+>i#2$7yIER47;6ol#I&EdKJE)T{;Kj;;#Z@J^W#svkIWEs++3;}O45h^ zg3>G5;F6SkMr=00+fk1QIM^HV7=2`fMIYaSjMs20BO};F+>;M%2iuD{aRc}?tdfI8 zd?_z|KpuOXoDP2wd-t*WJj-dJBC_1P?qh3&`dmm#`-z<1*1Q6oxj_gUg!c7CJ9rcz z)=Do9K(wrPTR@dLUcOTvcCTUC>#OY#d7BEhR}I+-aexUZ074=vPBARUgsz>S$onv= zlU}7$_-G2|%VzU=8vw}r7cuV1kgWg;8&bq6*xO4^0;lBh!p5G^Z7w#0W&hq72i66b z8G0X?NL}oQ?Aqab=%{GM6B-+-D2_7=<}`lmi(eSM^J6p`-y%|R2Q?mBGX@-?G6Kwx zde2(zcbgCqZrk8kqjERMseuGCn$kQAa@85p9e(~m=xM06Ty)gYYgA6cb`?Sy0OSE` zppWl;%~2o(TF_*c$_*K}#>uTs>AAjgGwZ_UTVDj>ucs<`jsKuI1R&<56-3|E^pCPx zC84ueXACaa@=2UNa$UOFY%`@~uH|HK7WfF0<_=~{`}WTwJNb>3Iq=(&55;`@Kl7n6 zX47c0zf69)@I|p@`_T|kifV4u$mN!)6z4lB@c!hUGgn%~itn7wl}D26rMk*Gp>d8F zyhNz7)yXM%AzqiTV&hy>HP*@l%8dyqx5)gA5cHmn1}XdI+5CW+CCvin8Nu*i)DL1M zAS&Al?4Lz3@EK~e2JFwqcUAppzjal~1sNX^8F@#$s!UbB`|I0#kAy`Tzx_Yu#+SOy z_>}6FuHd%#=@43?`lGHjzK#d3Q`IID;MUEaK>KUlpkRv;Q-W*Hs$;B~(|Nsv`4jFl zsM|fVNi8~F-h<-77XQNw!D@R`kDl)WK&n**i0y`_#c>|492+h;5Q59UMvv!6Vww^Z z7L~N?Ccx=F=tFIKkEbI^P*TCpk}wZB97u7wsnb0!Qd~SfE_{-QrB`oc_@iP*L-*i& zs{WLdknKuEiI6%QAvBQ}z zbugbt=mX?>I3DlINP+-cOVNbl!g$$BIIkx}N5Q4U%!mS<8zPxkL1brlR`gy#&4h6w zNN&N)$Qt(c9h!liU<)S&WrvMy?X!%9PYyGAti!sWKXpbH7Ah{LaOGEzmw>ufJnEe! z9PU8Wz=E+(MIfCMzu0WPrHO2QLQrHR^2hEn8Po#I1~9#OXAMircHAQ|cpDGn3HT40 ztY9@PJ2!X#zU0Rbv&OF)1-`@^YAqIbIJwsb$WiVVMgHc0$&1w&a_f)puG4W?VSI5Z zOp_J3jsA~g<#hI8nCafd8YV1^DkGC&99CvS1gb6nC;ofE7wL5UrQXZ-R=}gJDUZsL z4$t>`4f`Q|9xOKsF@2yH%x%mF-!l$52fn88zpv@}bTPtC5v8|GuTAs@MMJ;c4~qu1 zH$*}njV7$RdM9B+0&vCkGAM9n3gONyE>?vt(es5Cp2Mx z)QwRGw)P^dc?M)kO8$Bf|J5IkeQAZsPBsQhBl6J7suCk`blkbXFLv?%)ETIwjJf#< zO6VwRV>@mh6F!KmDtENc^MLTI`^!LUyv3AyG2ZfIQi_GSvl2Ss5x16=*1ppMl%cWv z(*=Z=ayLiPs>8|qa$k%fssEp}4bR(!CQsk0`7yI^P@S;FVBeXzex79zb14emDN7~R zU}eOjDd+4h4mlSiXS#&c)}pj#@@+f!ym-#fre9y_Xic_M`xsj6 z8tE7qG~qQ=2n4h=`5x~92Od%Zgx~Wwk*2*vct^*MBh7a^7sFV%vjX5#EVj%WQcwap z9xn!s=VVD!4sLlyCWIK`q=R!kdm6;ao>y8DRp$|>MAq)~X=Yy0H#OEJv62lXH_UBb z6OgNmz1%gfqrflYF}L3WfY?ri>rsufVfdM1z&u^a7CauZYP`i2b0E-MGHKr54Xw3t ztn~W;Tg8GkRI~^)G1RkhP@-v-qvgy|gHAU+c%vuZ>R32KUn;MkP<%D4chVuxdSMab zWKmFWPQw6f2sM9tvln{zcVMVCc9B8qpNdi#Kzp3S{{Gdi;$=;fOGx+?#D+e=UeIFn zqUs>x4A?#ydT{KU?OJ$Kak2ts~p_iSS zB8s#*ZfHSG=-C&c)qvRHMC28q8yY$w9duG!gq zzmrkZ-M4GXi7tCvu}7jYOhdLabD5$>Y;v@~^vBAt;5{{@TDUE0@mt^3{yBUl*91u! z=yj#g%fl^9;%YMy422fy3SVf_Wy|0k-LeEm~Glic|YH+3irVa})|=ZpMc&`dAfn5Uk!NsHmaF3qZvFynpn=ZN41Gj<5A%QEQn`<99yRn!`u-Y9sB3 zzAWt7i85M6ix|Uwkz#O2h=;1nMVT?UZblE@6Wez{lPm1tWUU_k-gJ54W9jYdh_+(p z2CyDKi?U@v+^Ylc^J1L~bK~7hFXyBE3w&~NbtxgjvT{Z9eBC`@-BQKeV$<`MObfe) zQZWJ`!^kmDU089pzaaNfUJJgP4Bq&d6CFLQ07$3hcbI*c%ZW9CTXY{khNf;nVQ47e zYZBSpt7CWY^LvGFE$M;HDl&;OfBz`u=$=G%orf5mJ3AhnDa{AJwB(QOabUJli83yl zJNXsqUgQhbA_Nuzm!10G2I9Ly9Mnw3p3P{F7l$|rNnA$70X|pVJB1@3MN^=Xg#Zw> z8p&&a_o(&(_Wk)ZB8qp8EWLgCrMwLCze+-kjLKhwgaszaI@dzFq9#_HcSW8v3rtb5 zQlh{n^@UhiYvusFloFlt%C8o_%Qs~I)P}B;rW5oaP+!J}3~2N$Wta!g#>ejNp5@gQ zr`dHev)0(=>nB=dHwzw&-~sBXNBJo1KF6ScQ${+C6_}JdO3RZMEBE&vI139|txFTN zSF%Y1zcBy0*N3a>qK^`U;^R4}jt#$F-nHZAFun|P^g+0&gOO9VFVp?=tLzV6nQ`w6bwNM`JF{a6DP7Tdgh_X8FM z6V)=0K+m^LOrw))UsE|+dzF3ie?+DM5_q81LEhh&7&+;xkZ{%dFjZYNNF84*hw`q^ z)-GX|;hvGR263>vn*+*Q$MOia^K&W`7)(j`8(1i=%%;M=;{X_7YBM^A{h?Uf+ph4? zEuyK|{Ie*p=iV;gzQ&!bI%ac7Fjf&@T*)f-gy;pO_TOV1rxwO*ihT9DPiKyTg|MwswC2T=+-pe0KsWg8WC)!2G+8-mj;qXWc-iHwN87C?!Wta$;FJ)<$6jb zaH$!XFhQJrB3-vIq%SRI?l}HHDW9WKkv4)PPpL>V23-F+Qdxt;RoR#4>?fvNi?ul@ zYTCsq(IEAO*xl#n{DB$+zhqQwU+H#F)@znyT_9P+#TUtbf~QM@#ht+gWe&&oWJ!h8 zakEDW8Q+@9%Y`H)S|r8k!9)5EKGVtB*-ji2V`gnqVvaR%4lAo2X7T5#A|zGF=r<=I zX^ff!^eIab1qt7n0C_8u0n3xShX9%QsI2{E=}QuWz;TdRIk5Zhi^IC=7NgVBiHNBz z;=xU+YtMa2c8D%N+S+y}GQ=AQ2^&tlncK`GJ_rDc_{gld2}4cr-@3d14uX4@b13tK zXV7+k`P#8FLACsg2f%~_x2L}7xz54Kedv#5WBUHS2RA)|Aqv!|7E^p`%B!X3UpxV^ z;_hxJ{F-5Ve|THuPf6&*1zhB@mWiJq*ikSn@Wb?TeLdn^+w0C{7s+mo0M%4U>q8#Z zI}?L_`GM1c5zR~7T%W7E3G82mfeC-!eV}UJJAO-2*HI8-8JaY<94qb2jy5WbZ+g2L zE4}EmvDv9a+;M+5^ziZ6GHWHV{>R{nbrN;I={?uC=UsdC$5hU3E%XV8D5&%{_#OMN z#Wsx5yRdj?E!Hk-V! zyE-?Pe@q^<$BOPI8~^t+&22QrbX6M6Z9pl3v;f z`eYzV-zOPn?AlW!i=T*p=oIZ38Ecext>Ut4L~@uB;4Y3kZZ2`j`K4YSnc~uu-d2+O z|FrmKo2ZcMBT6-sy zJtwaw`7M<|rqzve<39UQFL#F{CM$O>WS^D04eMkt?

&mI5IFSwaM0D(+h5Z0^vA1ev86@XQkwE( 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 literal 0 HcmV?d00001 diff --git a/reconstruction/mc/src/main/java/org/jlab/service/mc/Readme_TruthMatch.md b/reconstruction/mc/src/main/java/org/jlab/service/mc/Readme_TruthMatch.md index ade79d63d..b553d2677 100644 --- a/reconstruction/mc/src/main/java/org/jlab/service/mc/Readme_TruthMatch.md +++ b/reconstruction/mc/src/main/java/org/jlab/service/mc/Readme_TruthMatch.md @@ -1,5 +1,22 @@ #

Truth Matching

+ + +# Read this 1^st^ +In order the Truth Matching to work, it is important to invoke specific options when one runs GEMC: +* -SAVE_ALL_MOTHERS=1 +* -SKIPREJECTEDHITS=1 +* -INTEGRATEDRAW="*" +* -NGENP=50 // This is not necessarily needed, if you are sure in LUND file the number of generated particles is always smaller than 10, you can skip this option + +If you are not interested how the matching works, but just want to us it as a black-box, then please run GEMC with above mentioned options, +Below is an example command that will allow the TrutMatching service to work properly. + + gemc det.gcard -SAVE_ALL_MOTHERS=1 -SKIPREJECTEDHITS=1 -NGENP=50 -INTEGRATEDRAW="*" -N=10000 -USE_GUI=0 -INPUT_GEN_FILE="lund, inp_Lund.dat" -RUNNO=11 -OUTPUT="hipo, GEMC_Out.hipo" + + + + # Introduction In Monte Carlo (MC) simulations very frequently there is a need to know links between the generated particle and the reconstructed particle. Users usually compare kinematics (momentum and the angle) of @@ -111,7 +128,8 @@ to the given MC Particle are matched to the same recon particle. The Truth Matching service in such cases chose the recon particle that has the highest number of matched clusters to the given MC particle. -# Bank structures +# Bank structures + The TruthMatch service produces two banks **MC::GenMatch** and **MC::RecMatch**. ## **MC::GenMatch** @@ -170,25 +188,15 @@ Below is the snippet from the json file describing the **MC::RecMatch** structur ### Status word description +In [Bank Structures](#BANK_STRUCTURES) it is mentioned that in addition to the index of the matched particle, +bank provides also status words, which encode list of detector layers the given MC (or Rec) particle deposited hits into. +![](Figs/Layer_Bits.png)*Representation of status words. Fields in Orange are not implemented yet.* +The figure above describes the mapping between word/bitnumber and detector/layer. Detector acronyms should be +well known for anyone familiar with CLAS12 detector, except "FTH" which represents Forward tagger Hodoscope, and because +of space constrains is named "FTH". +In the figure below shown the decoding of an example status word. +![](Figs/ExampleStatWord.png)*An example of a status word, showing that the given particle deposited hits in all DC layers except 15, 19, 20 and 29. +Then it deposited hits in first four layers of BST, and in BMT it hit layers 1, 2 and 6* -Take me to [pookie](#pookie) - - - - assad - - -### This is the Heading -asdasd - - -"...the **go to** statement should be abolished..." [[1]](#1). -[[3]]() - -## References -[1] -COATJAVA: https://github.com/JeffersonLab/coatjava - -[3] asdasdasd \ \ No newline at end of file From 481e1a8c6439ca9ef58fe0460243c554631777df Mon Sep 17 00:00:00 2001 From: Rafayel Paremuzyan Date: Tue, 22 Aug 2023 13:57:28 -0400 Subject: [PATCH 12/20] 1) Some typo fixes. \n 2) It turned out the github web interface doesn't have all features that for example I can use in the md editor(keenwrite). So this commit some issues which are possible to fix (work around), are fixed. --- .../org/jlab/service/mc/Readme_TruthMatch.md | 44 ++++++++++--------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/reconstruction/mc/src/main/java/org/jlab/service/mc/Readme_TruthMatch.md b/reconstruction/mc/src/main/java/org/jlab/service/mc/Readme_TruthMatch.md index b553d2677..cf5ee5836 100644 --- a/reconstruction/mc/src/main/java/org/jlab/service/mc/Readme_TruthMatch.md +++ b/reconstruction/mc/src/main/java/org/jlab/service/mc/Readme_TruthMatch.md @@ -2,14 +2,14 @@ -# Read this 1^st^ +# Read this first In order the Truth Matching to work, it is important to invoke specific options when one runs GEMC: * -SAVE_ALL_MOTHERS=1 * -SKIPREJECTEDHITS=1 * -INTEGRATEDRAW="*" * -NGENP=50 // This is not necessarily needed, if you are sure in LUND file the number of generated particles is always smaller than 10, you can skip this option -If you are not interested how the matching works, but just want to us it as a black-box, then please run GEMC with above mentioned options, +If you are not interested how the matching works, but just want to use it as a black-box, then please run GEMC with above mentioned options, Below is an example command that will allow the TrutMatching service to work properly. gemc det.gcard -SAVE_ALL_MOTHERS=1 -SKIPREJECTEDHITS=1 -NGENP=50 -INTEGRATEDRAW="*" -N=10000 -USE_GUI=0 -INPUT_GEN_FILE="lund, inp_Lund.dat" -RUNNO=11 -OUTPUT="hipo, GEMC_Out.hipo" @@ -36,9 +36,9 @@ particles from almost all detectors and determining which MC and Recon particle ## What kind of information the matching provides The service provides two types (one can call directions too) of matching: \ -In the 1^st^ type, for each MC::Particle, it points to the entry in the REC::Particle bank, which it thinks is the +In the first type, for each MC::Particle, it points to the entry in the REC::Particle bank, which it thinks is the **best match** for the given MC particle in the MC::Particle bank.\ -The 2nd type, does the opposite, for each reconstructed particle in the REC::Particle bank it points to the +The 2nd type does the opposite, for each reconstructed particle in the REC::Particle bank it points to the entry in the MC::Particle bank that is the **best matched** to the given reconstructed particle.\ The service provides also additional **status words** which encode information about what type of detectors (layers of detectors) participated in the matching of the given particle. \ @@ -58,8 +58,8 @@ want to know the initial MC particle that generated the hit, and also want to kn the reconstructed particle that the given hit belongs to. \ All MC hits are stored in the "MC::True" bank. The variable **otid** shows the index of the original particle that generated the given hit. -So the first part was quite simple we just need to pick the otid-th -particle in? the "MC::Particle" bank. Now for the 2nd step, which is to +So the first part was quite simple we just need to pick the **otid**-th +particle in the "MC::Particle" bank. Now for the 2nd step, which is to find the recon particle that the given hit belongs to, we will use another variable **hitn**, which shows the index of the given hit in the ADC/TDC bank of the corresponding detector. The path from the ADC bank @@ -88,7 +88,7 @@ one MC particles. ![Fig:Hits](Figs/HitsInCluster.png) *An example cluster containing hits from two different MC particles. -Numbers in represent the hitID of the hit in the cluster. Hits in cyan +Numbers represent the hitID of the hit in the cluster. Hits in cyan color were originated from one MC particle, and hits in red are originated from another MC particle.* @@ -113,18 +113,18 @@ related to the Recon particle through the response banks (e.g. REC::Calorimeter, REC::Scintillator etc). As in the case of the cluster, it is not necessarily true that all hits of the cluster will be originated from the same MC Particle, here again, all recon clusters -matched to a given MC Particle will not necessarily be part of the given -Recon particle, and wise versa, not all clusters of the given recon -particle will necessarily be originated from the given MC Particle. +matched to a given MC Particle will not necessarily be part of the same +recon particle, and wise versa, not all clusters of the given recon +particle will necessarily be originated from the same MC Particle. ![](Figs/ClustersInRecParticle.png)*An example illustrating a case when two clusters matched to two MC particles end up in opposite Rec Particles. Cluster marked by red (orange) rectangle inside the green area, is matched to the MC Particle -1(2), however Event Builder associated it the the Rec Particle +1(2), however Event Builder associated it with the Rec Particle 2(1).* An abstract example is shown in the figure above, when not all recon clusters matched -to the given MC Particle are matched to the same recon particle. The +to the given MC Particle belong to the same recon particle. The Truth Matching service in such cases chose the recon particle that has the highest number of matched clusters to the given MC particle. @@ -150,13 +150,13 @@ Below is the snippet from the json file describing the **MC::GenMatch** structur {"name":"player2", "type":"L", "info":"layers from the 2nd set of detectors hit by Recon particle"}, {"name":"quality", "type":"F", "info":"matching quality parameter"} -* The **mcindex** is the index of the MC Particle in the **MC::Particle** bank that we want to match to the Rec particle. \ -* The **pindex** is the index of the matched REC particle in the **REC::Particle** bank. \ +* The **mcindex** is the index of the MC Particle in the **MC::Particle** bank that we want to match to the Rec particle. +* The **pindex** is the index of the matched REC particle in the **REC::Particle** bank. * **mclayer1** and **mclayer2** are 64 bit LONGs, where each bit of those words indicates whether the the given MC particle deposited hit in a specific detector/layer of CLAS12. See section [Status word description](#StatWordDescription) -for details on detector<=>bit correspondence.\ +for details on detector<=>bit correspondence. * **player1** and **player2** are again 64 bit LONG words, however their bits represent detector/layers of the matched Rec Particle, - but only those layers which are matched to the given MC particle. In the **MC::GenMatch** bank, set bits of **player1(2)** is always + but only those layers which are matched to the given MC particle. In the **MC::GenMatch** bank, set bits of **player1(2)** are always subset of set bits of **mclayer1(2)**. ## **MC::RecMatch** @@ -178,14 +178,15 @@ Below is the snippet from the json file describing the **MC::RecMatch** structur {"name":"mclayer2", "type":"L", "info":"layers from the 2nd set of detectors hit by MC particle"}, {"name":"quality", "type":"F", "info":"matching quality parameter"} -* The **pindex** is the index of the particle in the **REC::Particle** bank that we want to match to MC particle \ -* The **mcindex** is the index of the MC Particle in the **MC::Particle** that is matched to the pindext-th particle in the REC::Particle bank. \ +* The **pindex** is the index of the particle in the **REC::Particle** bank that we want to match to MC particle +* The **mcindex** is the index of the MC Particle in the **MC::Particle** bank, that is matched to the pindext-th particle in the REC::Particle bank. * **player1** and **player2** as in the case of **MC::GenMatch** bank, are two 64 bit LONG words where each bit indicates presence of the hit of the given REC particle in specific detector bits. -* **mclayer1** and **mclayer2** shows which detector/layers the matched MC particle has deposited hits, and here +* **mclayer1** and **mclayer2** show which detector/layers the matched MC particle has deposited hits, and here again those detector/layers are not all detectors/layers the matched MC particle has deposited hits, but only those which - are matched to the given Rec particle, in other words set bits of **mclayer1(2)** is always subset of set bits of **player1(2)** - + are matched to the given Rec particle, in other words, set bits of **mclayer1(2)** is always subset of set bits of **player1(2)** +* The **quality** takes values from 0 to 1, and is defined based on status words. It is just ab auxiliary variable that allows users to match +particles without the need to decode status words. See section [Description of quality](QualityDescription) for more details ### Status word description In [Bank Structures](#BANK_STRUCTURES) it is mentioned that in addition to the index of the matched particle, @@ -200,3 +201,4 @@ In the figure below shown the decoding of an example status word. ![](Figs/ExampleStatWord.png)*An example of a status word, showing that the given particle deposited hits in all DC layers except 15, 19, 20 and 29. Then it deposited hits in first four layers of BST, and in BMT it hit layers 1, 2 and 6* +### Description of quality \ No newline at end of file From 3fcf241df998d1ff74a5c42ecb9b6ee79ab4272f Mon Sep 17 00:00:00 2001 From: Rafayel Paremuzyan Date: Tue, 22 Aug 2023 17:05:03 -0400 Subject: [PATCH 13/20] 1) The section on 'quality' is added. 2) A snipped of a code in included that users can adjust at for their needs. 3) some other typos are fixed --- .../org/jlab/service/mc/Readme_TruthMatch.md | 59 ++++++++++++++++++- 1 file changed, 56 insertions(+), 3 deletions(-) diff --git a/reconstruction/mc/src/main/java/org/jlab/service/mc/Readme_TruthMatch.md b/reconstruction/mc/src/main/java/org/jlab/service/mc/Readme_TruthMatch.md index cf5ee5836..1ceba02b3 100644 --- a/reconstruction/mc/src/main/java/org/jlab/service/mc/Readme_TruthMatch.md +++ b/reconstruction/mc/src/main/java/org/jlab/service/mc/Readme_TruthMatch.md @@ -3,7 +3,7 @@ # Read this first -In order the Truth Matching to work, it is important to invoke specific options when one runs GEMC: +In order the Truth Matching to work, it is important to invoke certain options when one runs GEMC: * -SAVE_ALL_MOTHERS=1 * -SKIPREJECTEDHITS=1 * -INTEGRATEDRAW="*" @@ -16,6 +16,38 @@ Below is an example command that will allow the TrutMatching service to work pro +# Read this second +Here is a simple snippet of the code that shows for the given recon particle how to find the index of the matched MC particle in the MC::Particle bank. + + int nPart = bRecPart.getRows(); // bRecPart is defined in the code as: hipo::bank bRecPart(factory.getSchema("REC::Particle")); + for (int iPart = 0; iPart < nPart; iPart++) { + + float quality = bRecMatch.getFloat("quality", iPart); // bRecMatch is defined in the code as: hipo::bank bRecMatch(factory.getSchema("MC::RecMatch")); + int mcind = bRecMatch.getInt("mcindex", iPart); + + int charge = bRecPart.getInt("charge", iPart); + int pid = bRecPart.getInt("pid", iPart); + + /* + * Check for a charged track + */ + if (recp.charge != 0 && recp.pid != 0 ) { + // mcind is the index of MC particle in the MC::Particle bank so you can use it to retrieve any variable from the MC::Particle bank + float px_MC_Matched = bMCPart.getFloat("px", mcind); // bMCPart is defined in the code as hipo::bank bMCPart(factory.getSchema("MC::Particle")); + ... + ... + + // If you want very good quality matching you can do + + if( quality > 0.98 ){ + // Do whateever you want + } + } + +The example above should be good for the user to adapt it for their needs without going into details how the matching works, however if you are interested in more details +about the matching algorithm and bank structures, you can read the rest of this document. +## + # Introduction In Monte Carlo (MC) simulations very frequently there is a need to know links between the generated @@ -188,7 +220,7 @@ Below is the snippet from the json file describing the **MC::RecMatch** structur * The **quality** takes values from 0 to 1, and is defined based on status words. It is just ab auxiliary variable that allows users to match particles without the need to decode status words. See section [Description of quality](QualityDescription) for more details -### Status word description +# Status word description In [Bank Structures](#BANK_STRUCTURES) it is mentioned that in addition to the index of the matched particle, bank provides also status words, which encode list of detector layers the given MC (or Rec) particle deposited hits into. ![](Figs/Layer_Bits.png)*Representation of status words. Fields in Orange are not implemented yet.* @@ -201,4 +233,25 @@ In the figure below shown the decoding of an example status word. ![](Figs/ExampleStatWord.png)*An example of a status word, showing that the given particle deposited hits in all DC layers except 15, 19, 20 and 29. Then it deposited hits in first four layers of BST, and in BMT it hit layers 1, 2 and 6* -### Description of quality \ No newline at end of file +# Description of quality +As it was already mentioned in the "Bank structures" section, both Matching banks **MC::GenMatch** and **MC::RecMatch** have a variable named **quality**. +It is an auxiliary variable which in many cases might be useful for users to cut on this variable rather than doing complex checks on the status words. +Below are described what values the **quality** takes for charged tracks, neutron/antineutron, and photons. \ +### Charged particles +The quality for charged particles is 0, 0.95 or 0.98. +* **0.95** In this case the + * if the charged recon track is in the FD: then it should have at least 5 superlayers, where in each of 5 superlayers at least 4 hits + * if the charged recon track is in CVT: then recon particle should have at least one **Z** cluster and two SVT crosses, **OR** at least two **Z** clusters and one **C** cluster and one SVT cross. +* **0.98** This cases are subset of **0.95** in a sense that the same requirements are also imposed to the matched MC particles as well, or matched REC::Particle (in case of **MC::GenMatch**) + +### Neutron or antineutron +The quality takes values 0.91 or 0.92 +* **0.91** In this case the neutral particle deposits a hit in any layer of EC (includes PCal, EC_in and EC_Out), CND or CTOF +* **0.92** Those are subset of **0.91** cases, when the matched particle deposits hit in any of EC, CND or CTOF layers. +### Photons +The quality for photons are 0.93 or 0.94 +* **0.93** In this case the photon should have deposited hit in PCal **OR** any of CND layers or in CTOF +* **0.94** Thise are subset of 0.93, when the matched particle has deposited hit in PCal **OR** any of CND layers or in CTOF +## +Later based on the feedback of users, some additional values can be implemented for the quality, and/or it's definition can be changed. + \ No newline at end of file From 797dd8ef073598be3d9caceb54d554a70309a56c Mon Sep 17 00:00:00 2001 From: Rafayel Paremuzyan Date: Tue, 22 Aug 2023 17:09:54 -0400 Subject: [PATCH 14/20] Another typo in the code snippet, so it was important to be fixed before sending around the document --- .../mc/src/main/java/org/jlab/service/mc/Readme_TruthMatch.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reconstruction/mc/src/main/java/org/jlab/service/mc/Readme_TruthMatch.md b/reconstruction/mc/src/main/java/org/jlab/service/mc/Readme_TruthMatch.md index 1ceba02b3..4678fa01e 100644 --- a/reconstruction/mc/src/main/java/org/jlab/service/mc/Readme_TruthMatch.md +++ b/reconstruction/mc/src/main/java/org/jlab/service/mc/Readme_TruthMatch.md @@ -31,7 +31,7 @@ Here is a simple snippet of the code that shows for the given recon particle how /* * Check for a charged track */ - if (recp.charge != 0 && recp.pid != 0 ) { + if (charge != 0 && pid != 0 ) { // mcind is the index of MC particle in the MC::Particle bank so you can use it to retrieve any variable from the MC::Particle bank float px_MC_Matched = bMCPart.getFloat("px", mcind); // bMCPart is defined in the code as hipo::bank bMCPart(factory.getSchema("MC::Particle")); ... From d5025a93532adec94301f373d107e6b15750e5e8 Mon Sep 17 00:00:00 2001 From: veronique Date: Fri, 30 Jun 2023 13:38:30 -0400 Subject: [PATCH 15/20] Fix to fill detector and layer for Cosmics trajectory bank --- .../main/java/org/jlab/rec/cvt/trajectory/TrajectoryFinder.java | 1 + 1 file changed, 1 insertion(+) diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/trajectory/TrajectoryFinder.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/trajectory/TrajectoryFinder.java index fe0e4e8a2..e466611b4 100644 --- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/trajectory/TrajectoryFinder.java +++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/trajectory/TrajectoryFinder.java @@ -229,6 +229,7 @@ public Trajectory findTrajectory(int id, Ray ray, ArrayList candCrossList stateVecs.sort(Comparator.comparing(StateVec::y)); for (int l = 0; l < stateVecs.size(); l++) { + stateVecs.get(l).setSurfaceDetector(DetectorType.CVT.getDetectorId()); stateVecs.get(l).setPlaneIdx(l); } traj.setTrajectory(stateVecs); From 2764a1b69f606b67e56df54f3bdb9d900a639aa9 Mon Sep 17 00:00:00 2001 From: veronique Date: Fri, 30 Jun 2023 14:18:12 -0400 Subject: [PATCH 16/20] Fix to fill detector and layer for Cosmics trajectory bank --- .../src/main/java/org/jlab/rec/cvt/track/StraightTrack.java | 4 +++- .../java/org/jlab/rec/cvt/trajectory/TrajectoryFinder.java | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/StraightTrack.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/StraightTrack.java index 4ef3246cb..98ec32a60 100644 --- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/StraightTrack.java +++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/StraightTrack.java @@ -191,6 +191,7 @@ public void findTrajectory() { stVec.setTrkThetaAtSurface(ThetaTrackIntersPlane); stVec.setTrkToModuleAngle(trkToMPlnAngl); stVec.setCalcCentroidStrip(CalcCentroidStrip); + stVec.setSurfaceDetector(DetectorType.BST.getDetectorId()); if(stateVecs.size()>0 && stateVecs.get(stateVecs.size()-1).x()==stVec.x() && stateVecs.get(stateVecs.size()-1).y()==stVec.y() @@ -230,7 +231,8 @@ public void findTrajectory() { stVec.setTrkThetaAtSurface(ThetaTrackIntersSurf); stVec.setTrkToModuleAngle(trkToMPlnAngl); stVec.setCalcCentroidStrip(CalcCentroidStrip); - if(stateVecs.size()>0 + stVec.setSurfaceDetector(DetectorType.BMT.getDetectorId()); + if(stateVecs.size()>0 && stateVecs.get(stateVecs.size()-1).x()==stVec.x() && stateVecs.get(stateVecs.size()-1).y()==stVec.y() && stateVecs.get(stateVecs.size()-1).z()==stVec.z()) { diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/trajectory/TrajectoryFinder.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/trajectory/TrajectoryFinder.java index e466611b4..0e4fa6d69 100644 --- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/trajectory/TrajectoryFinder.java +++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/trajectory/TrajectoryFinder.java @@ -120,6 +120,7 @@ public Trajectory findTrajectory(int id, Ray ray, ArrayList candCrossList continue; } + stVec.setSurfaceDetector(DetectorType.BST.getDetectorId()); Cluster clsOnTrk = null; if (l % 2 == 0) { clsOnTrk = c.getCluster1(); @@ -195,6 +196,7 @@ public Trajectory findTrajectory(int id, Ray ray, ArrayList candCrossList continue; } + stVec.setSurfaceDetector(DetectorType.BMT.getDetectorId()); if (c.getType()==BMTType.C) { //C-detector measuring Z //if(traj.isFinal) { // reset the cross only for final trajectory @@ -226,9 +228,8 @@ public Trajectory findTrajectory(int id, Ray ray, ArrayList candCrossList } //Collections.sort(stateVecs); - stateVecs.sort(Comparator.comparing(StateVec::y)); - for (int l = 0; l < stateVecs.size(); l++) { + for (int l = 0; l < stateVecs.size(); l++) { stateVecs.get(l).setSurfaceDetector(DetectorType.CVT.getDetectorId()); stateVecs.get(l).setPlaneIdx(l); } From 407028c11b395cba62a661f58825e6cb6c31b43b Mon Sep 17 00:00:00 2001 From: jwgibbs Date: Sun, 20 Aug 2023 22:22:39 -0400 Subject: [PATCH 17/20] Adding the run-jshell script to the bin/ --- bin/run-jshell | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100755 bin/run-jshell diff --git a/bin/run-jshell b/bin/run-jshell new file mode 100755 index 000000000..f0c3f19a9 --- /dev/null +++ b/bin/run-jshell @@ -0,0 +1,50 @@ +#!/bin/sh + +. `dirname $0`/env.sh + +export CLAS12DIR=`dirname $0`/.. + +#-------------------------------------------------------------- +# Adding supporting COAT jar files +for i in `ls -a $CLAS12DIR/lib/clas/*.jar` +do +#echo "$i" +if [ -z "${JYPATH}" ] ; then +JYPATH="$i" +else +JYPATH=${JYPATH}:"$i" +fi +done +#-------------------------------------------------------------- +# Adding supporting plugins directory +for i in `ls -a $CLAS12DIR/lib/services/*.jar` +do +if [ -z "${JYPATH}" ] ; then +JYPATH="$i" +else +JYPATH=${JYPATH}:"$i" +fi +done +#-------------------------------------------------------------- +# Adding supporting plugins directory +#-------------------------------------------------------------- +# Done loading plugins +#-------------------------------------------------------------- +# Adding supporting plugins directory +for i in `ls -a $CLAS12DIR/lib/utils/*.jar` +do +if [ -z "${JYPATH}" ] ; then +JYPATH="$i" +else +JYPATH=${JYPATH}:"$i" +fi +done +#------------------------------------------------------------- +echo " " +echo " " +echo "*****************************************" +echo "* Running COAT-JAVA JShell Scripts *" +echo "*****************************************" +echo " " +echo " " +jshell --class-path "$JYPATH" $* From ebe7008adb5851634e1e9066aeeca11e644f10fd Mon Sep 17 00:00:00 2001 From: jwgibbs Date: Mon, 21 Aug 2023 15:11:51 -0400 Subject: [PATCH 18/20] Replaced the with for command line inputs --- bin/run-jshell | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/run-jshell b/bin/run-jshell index f0c3f19a9..562383da8 100755 --- a/bin/run-jshell +++ b/bin/run-jshell @@ -47,4 +47,4 @@ echo "* Running COAT-JAVA JShell Scripts *" echo "*****************************************" echo " " echo " " -jshell --class-path "$JYPATH" $* +jshell --class-path "$JYPATH" "$@" From f30e7b2ece42d5b05c5eeddbf8e801d09fa52032 Mon Sep 17 00:00:00 2001 From: gavalian Date: Wed, 26 Jul 2023 13:23:27 -0400 Subject: [PATCH 19/20] added a monitoring service for pion reconstruction --- .../org/jlab/display/ec/ECRECMonitor.java | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 reconstruction/ec/src/main/java/org/jlab/display/ec/ECRECMonitor.java diff --git a/reconstruction/ec/src/main/java/org/jlab/display/ec/ECRECMonitor.java b/reconstruction/ec/src/main/java/org/jlab/display/ec/ECRECMonitor.java new file mode 100644 index 000000000..c2962574a --- /dev/null +++ b/reconstruction/ec/src/main/java/org/jlab/display/ec/ECRECMonitor.java @@ -0,0 +1,71 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package org.jlab.display.ec; + +import org.jlab.clas.physics.LorentzVector; +import org.jlab.clas.reco.ReconstructionEngine; +import org.jlab.groot.data.H1F; +import org.jlab.groot.ui.TGCanvas; +import org.jlab.io.base.DataBank; +import org.jlab.io.base.DataEvent; + +/** + * + * @author gavalian + */ +public class ECRECMonitor extends ReconstructionEngine { + TGCanvas canvas = null; + H1F pion = null; + + public ECRECMonitor(){ + super("ECMon","gavalian","1.0"); + } + + @Override + public boolean processDataEvent(DataEvent event) { + if(event.hasBank("REC::Particle")==true){ + DataBank bank = event.getBank("REC::Particle"); + int index1 = this.index(bank, 22, 0); + int index2 = this.index(bank, 22, 1); + LorentzVector vL_g1 = this.getVector(bank, index1, 0.0); + LorentzVector vL_g2 = this.getVector(bank, index2, 0.0); + if(vL_g1.p()>1.0&&vL_g2.p()>1.0){ + vL_g1.add(vL_g2); + pion.fill(vL_g1.mass()); + } + } + return true; + } + + private LorentzVector getVector(DataBank b, int index, double mass){ + LorentzVector v = new LorentzVector(); + v.setPxPyPzM(b.getFloat("px", index), + b.getFloat("py", index), + b.getFloat("pz", index), + mass); + return v; + } + + private int index(DataBank b, int pid, int skip){ + int nrows = b.rows(); + int skipped = 0; + for(int r = 0; r < nrows; r++){ + int id = b.getInt("pid", r); + if(id==pid){ + if(skipped==skip) return r; + skipped++; + } + } + return -1; + } + @Override + public boolean init() { + canvas = new TGCanvas("c","EC Engine Monitoring",500,500); + canvas.getCanvas().initTimer(5000); + pion = new H1F("pion",120,0.005,0.6); + return true; + } + +} From 83713295453800f4628f5f30866bc70243a5020e Mon Sep 17 00:00:00 2001 From: gavalian Date: Wed, 26 Jul 2023 13:30:41 -0400 Subject: [PATCH 20/20] fixed a bug --- .../main/java/org/jlab/display/ec/ECRECMonitor.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/reconstruction/ec/src/main/java/org/jlab/display/ec/ECRECMonitor.java b/reconstruction/ec/src/main/java/org/jlab/display/ec/ECRECMonitor.java index c2962574a..7d8d8fe68 100644 --- a/reconstruction/ec/src/main/java/org/jlab/display/ec/ECRECMonitor.java +++ b/reconstruction/ec/src/main/java/org/jlab/display/ec/ECRECMonitor.java @@ -29,11 +29,13 @@ public boolean processDataEvent(DataEvent event) { DataBank bank = event.getBank("REC::Particle"); int index1 = this.index(bank, 22, 0); int index2 = this.index(bank, 22, 1); - LorentzVector vL_g1 = this.getVector(bank, index1, 0.0); - LorentzVector vL_g2 = this.getVector(bank, index2, 0.0); - if(vL_g1.p()>1.0&&vL_g2.p()>1.0){ - vL_g1.add(vL_g2); - pion.fill(vL_g1.mass()); + if(index1>0&&index2>0){ + LorentzVector vL_g1 = this.getVector(bank, index1, 0.0); + LorentzVector vL_g2 = this.getVector(bank, index2, 0.0); + if(vL_g1.p()>1.0&&vL_g2.p()>1.0){ + vL_g1.add(vL_g2); + pion.fill(vL_g1.mass()); + } } } return true;

J^F9;UGG<=KSP~M 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 literal 0 HcmV?d00001 From 009c1f8a113bb9a54ad6db52cd9750dbb2362dc9 Mon Sep 17 00:00:00 2001 From: Rafayel Paremuzyan Date: Thu, 17 Aug 2023 19:02:57 -0400 Subject: [PATCH 10/20] Work in progress, Description of the matching and bank structures are added. Still the status words and quality should be described --- .../org/jlab/service/mc/Readme_TruthMatch.md | 65 ++++++++++++++++++- 1 file changed, 62 insertions(+), 3 deletions(-) diff --git a/reconstruction/mc/src/main/java/org/jlab/service/mc/Readme_TruthMatch.md b/reconstruction/mc/src/main/java/org/jlab/service/mc/Readme_TruthMatch.md index 64ee397e9..ade79d63d 100644 --- a/reconstruction/mc/src/main/java/org/jlab/service/mc/Readme_TruthMatch.md +++ b/reconstruction/mc/src/main/java/org/jlab/service/mc/Readme_TruthMatch.md @@ -69,13 +69,12 @@ From the example above, it is obvious that a single cluster (if it applies for a given detector) can contain hits originated from more than one MC particles. - -![Fig:Hits](Figs/HitsInCluster.png){ +![Fig:Hits](Figs/HitsInCluster.png) *An example cluster containing hits from two different MC particles. Numbers in represent the hitID of the hit in the cluster. Hits in cyan color were originated from one MC particle, and hits in red are originated from another MC -particle.*} +particle.* The figure above shows an example of the cluster with 8 hits, 2 of them are from one MC particle, let's call it mcp1, and the @@ -112,6 +111,66 @@ to the given MC Particle are matched to the same recon particle. The Truth Matching service in such cases chose the recon particle that has the highest number of matched clusters to the given MC particle. +# Bank structures +The TruthMatch service produces two banks **MC::GenMatch** and **MC::RecMatch**. + +## **MC::GenMatch** +Lets start from the **MC::GenMatch** bank. +The number of entries (columns) in the **MC::GenMatch** is equal to the number of entries in the **MC::Particle** bank. +Below is the snippet from the json file describing the **MC::GenMatch** structure. + + "name": "MC::GenMatch", + "group": 40, + "item" : 6, + "info": "MC::Particle -> REC::Particle matching", + "entries": [ + {"name":"mcindex", "type":"S", "info":"MC::Particle index"}, + {"name":"pindex", "type":"S", "info":"REC::Particle index"}, + {"name":"mclayer1", "type":"L", "info":"layers from the 1st set of detectors hit by MC particle"}, + {"name":"mclayer2", "type":"L", "info":"layers from the 2nd set of detectors hit by MC particle"}, + {"name":"player1", "type":"L", "info":"layers from the 1st set of detectors hit by Recon particle"}, + {"name":"player2", "type":"L", "info":"layers from the 2nd set of detectors hit by Recon particle"}, + {"name":"quality", "type":"F", "info":"matching quality parameter"} + +* The **mcindex** is the index of the MC Particle in the **MC::Particle** bank that we want to match to the Rec particle. \ +* The **pindex** is the index of the matched REC particle in the **REC::Particle** bank. \ +* **mclayer1** and **mclayer2** are 64 bit LONGs, where each bit of those words indicates whether the the given MC particle +deposited hit in a specific detector/layer of CLAS12. See section [Status word description](#StatWordDescription) +for details on detector<=>bit correspondence.\ +* **player1** and **player2** are again 64 bit LONG words, however their bits represent detector/layers of the matched Rec Particle, + but only those layers which are matched to the given MC particle. In the **MC::GenMatch** bank, set bits of **player1(2)** is always + subset of set bits of **mclayer1(2)**. + +## **MC::RecMatch** +The structure of **MC::RecMatch** bank is very similar to **MC::GenMatch** and meanings of variables are +analogous to those from the **MC::GenMatch** bank.. +The number of entries (columns) in the **MC::RecMatch** is equal to the number of entries in the **REC::Particle** bank. +Below is the snippet from the json file describing the **MC::RecMatch** structure. + + "name": "MC::RecMatch", + "group": 40, + "item" : 7, + "info": "Rec::Particle -> MC::Particle matching", + "entries": [ + {"name":"pindex", "type":"S", "info":"REC::Particle index"}, + {"name":"mcindex", "type":"S", "info":"MC::Particle index"}, + {"name":"player1", "type":"L", "info":"layers from the 1st set of detectors hit by Recon particle"}, + {"name":"player2", "type":"L", "info":"layers from the 1st set of detectors hit by Recon particle"}, + {"name":"mclayer1", "type":"L", "info":"layers from the 1st set of detectors hit by MC particle"}, + {"name":"mclayer2", "type":"L", "info":"layers from the 2nd set of detectors hit by MC particle"}, + {"name":"quality", "type":"F", "info":"matching quality parameter"} + +* The **pindex** is the index of the particle in the **REC::Particle** bank that we want to match to MC particle \ +* The **mcindex** is the index of the MC Particle in the **MC::Particle** that is matched to the pindext-th particle in the REC::Particle bank. \ +* **player1** and **player2** as in the case of **MC::GenMatch** bank, are two 64 bit LONG words where each bit indicates + presence of the hit of the given REC particle in specific detector bits. +* **mclayer1** and **mclayer2** shows which detector/layers the matched MC particle has deposited hits, and here + again those detector/layers are not all detectors/layers the matched MC particle has deposited hits, but only those which + are matched to the given Rec particle, in other words set bits of **mclayer1(2)** is always subset of set bits of **player1(2)** + + +### Status word description + Take me to [pookie](#pookie) From cb5e34a9f1a3efd9622756ea6557cf3dc41afbc8 Mon Sep 17 00:00:00 2001 From: Rafayel Paremuzyan Date: Fri, 18 Aug 2023 17:11:38 -0400 Subject: [PATCH 11/20] The readme is still work in progress, however more text and figures are added. --- .../jlab/service/mc/Figs/ExampleStatWord.png | Bin 0 -> 71515 bytes .../org/jlab/service/mc/Figs/Layer_Bits.png | Bin 0 -> 83778 bytes .../org/jlab/service/mc/Readme_TruthMatch.md | 48 ++++++++++-------- 3 files changed, 28 insertions(+), 20 deletions(-) create mode 100644 reconstruction/mc/src/main/java/org/jlab/service/mc/Figs/ExampleStatWord.png create mode 100644 reconstruction/mc/src/main/java/org/jlab/service/mc/Figs/Layer_Bits.png diff --git a/reconstruction/mc/src/main/java/org/jlab/service/mc/Figs/ExampleStatWord.png b/reconstruction/mc/src/main/java/org/jlab/service/mc/Figs/ExampleStatWord.png new file mode 100644 index 0000000000000000000000000000000000000000..3ae46d3b3bf1f393a35fd770e37847a7081cd3bb GIT binary patch literal 71515 zcmaI71yo$kwk_PaySoHSa1ZVwxVviz?k)`k37X&u?ry=|0*$-71oz{P^Jk<_OJ6`VokJ| z>{~CK-DwpjCQOZZ(X;>8U3(9W=w?9z5O6<9gI>s#+3YHWhvtX~VNuCTAs5M=z#qiy z%5y({yOfriItSGhEdQUo>TPRYEMoeLR?o>3GT9=dnrZV~b- zNKp{+E}`K!GN)NrRa?OjxTY0WvTpmWhDl2%hkm>x~q+QzFjLQ2NVQCJ*<>*ZEwNAyS=p-KL$^(C%#gNIYGcet#|E3oUSPt|N+dz{*P+hU zqldZ(n9j+Qqq9fc*1hmgX7_q`&!XP6pLlOBiwk8_>RL{>l9L-KW=3PXlHLwGA_5{5 z)a(v4L&^+z!E${08U^$c>LKf9!ve9ku4QfS>(mOGx3cN6l4ATmP*$9wTxiFP4c7isy=!la`-+4cHn>f z;kvX6r<4hGV&LkzU8;xzy*?``>ZJu`ve9`y#qkI|4Z&xM$HGH<6sA9i)lmVj_R!X> z@>y%(jMoN&Y#7%^{ouls7{>RfSE;_c&2Dr=fyn9-n>?r55`nS6x9}ugr|OP1b8ICTBSPe zPEcC$%^s(?xH4PSVO9{{p?MTx3il~H{n%^Ejq@8EDPJK?GyFlLw&JWIW27-d5LI^P zyaNsCa@?7l&JS6hPmrXf&cP7k%R|dWdo)dlICj$<-ThX}nyAn#SYQ6PH|+sCaGAbT zMBQ5@iLhmcW$X{6QPDH&Eeqa{_hI*oOa{!kMjluSBs9Jh86E1t`R>R9>pE;E&iyX# z$bDdhLS-Ah)w-rWbndPlR6oa>%YJuZC-?eKfKD*uutELxlT%J|LT-XZ* z-hP;-zP=MoPHmr2#fE}I=Ub^Xj%VF^hG^W$VCH$W2TEJc@9q9ZTysVU(vN^r>-*g3 zJq>NQ0w;f~F1c3mIPh%uivm=8V2>J0b`*I2YVt;RErR4#gZK8bOLkXpDe`w$u26^u zBhuakpWU&5k4jgDM4zMmTHmJ)c2KQ7i}4dhANYFrWxvL@b%7#)-JSD!)q4=3+pjhX0X7td#*-7d~wY8%IR-`3SPv7gBOGM<+^>?j3is@R8 zmkHjExGb!cLLngK0^F)y3g+Je zB~z*H{ofXAq}?|Q{~nRsIu!`gqVo%Q-J=!rx0~jnNq9MtqRAIE8&!p@&1sp@lq-kw z))uqhe0|W6kI2B@5c*B)y{$BRbSx~D3X^-77a-z=vU|R^_+}9J$Wzq-b8SDKdT<-ydkNI*XCJU|mUNy4OaX0JiQ{3)NB3sC;cO}G`j)Uv z$Mq|O&qX>KEA``S#w#7Ih;Q0>j@eFHCM38WUngC*N<0u5#ZP4*-P~>9Ad8F7ES=6^ zjaOJqLK=ct0fu@ZD?A<_(cV-hkj3` z=`;G>(4n!OZrG%o+pS~Pp9NV0&f4!2y8&%eO`S%Q2 zPP0VM_TQs&o2^2kyiesEOR{=C*YrKKV0<0U$aR|Cn7*rp<2I6?A<0;BNlDlfRK%Nx zJj8N@{)o+hj{iW|FqK_~?xrhqd#=UT)!4nz#X?baOK+B#y=wtS{$cn=N*(tMVr`~; zCKG@)Lb4t6g_V2MK$Y#>N9dq7PC2gxU6a<8!B8UXM1tl>0Eh%@RR%n*^|aRe>raB) zZe^=9JN>eK@l4*$qcAgh3%S6l6Bsv$`@QXBc zz-ck^1DCCSH910s!$u|2=6T*e%B)xqJXRZfU@nKXZIV7an~AsEdnF+QO>S3~I|%)& zthfoRxtc{WWOUsuM!zqTUAXHZBIA$Mb*T!g1n@K+c0tC%V~fm0C=^rPhN-%Z`a+pU zgL|kC+DS7PWojZwv^Iyv2C4>zvDvCYH$Q)+2^Jdn?|LWLWcmB!m*q)p#bD#JBxB*k zXDjdkAw2Cjj1)>K0WA%E(;Nnm(j;WSCuv`f0d;Lh6=|-zZNQ zej6jYyEMhv)`5-4AcA{1W{397(uYF&UOW&Qitk2Z@}fvILGV^4F4hJP3td;QaUNIn z>2Z4^Ut7YJNf$$xYQOZZGF13o`W6ldG@ApbIZYl7MZ3bWtSK|m^EB=87Uvfn99XZ* z`t7Q1!N&O_q`kAQik?Upvd2MorZ<8`WW#`kl^;n7B1!tFa_UEB7*>jB-9!I={_#U! z0J`5jD&g6;Pn-nU&y@wVZX zEi!D4`9PHp#~( zQ5c0~OSe-RQ(rM5Xy`z#_Rh@1%UdVs-%En09zw4CSMH`_iiBFht>DI%=`@s_sf%qfu+3WzT@wL?Hyn(974Oqx;n#PXw%xP+Mfyz(;iaE4`0S} zqV*QXb{!y*o|lq=h8RpwQo+9U9}PbRegvoKz4Jf_$QnqhHN^U~#7%)z^?Kj<29zIrBL@=%2luaoJ z{ThDWLH5)uJ*9}DF49RF0SZP$&a>k79tHs60J!dM*y=T3LohW3e~rIH3OY|Ayy_+$ z8}fc^QjCpV{LuRBc2`Nv^uq0S+9T8Ee;%a3qF-Gjcem_P#k-1*I(RoWcWL~0W^@_z zS%XIYViEif?oE!u#v+uagtO#gS@>f)X z;%zU7)zrk(+zvi75jr<7p#dPa13952NVLd8Rt0!*23A|QWQnNb2|$@bVKQfeSs^?m z0UP+RS$gzX7yepH9!Isro)FIR_EHro(QV{~x%x}~<3A{C0Mi!*dc5^3Sauth0oid- zEp*QBs+v31BH=aj`ore~c9V}tsQYHi6gKt!w;MKSpJ>p(%FW>}Hx;hByMny^to&`G zpLJvNo$!`}K(5xWvNT+zhEP6Ew1uE{kqiQ$1X+5}?FEc~8M5*-n`{adjTmnfsk zvS-Wbdo#+UG0o$_dH^~<2X=nueBm%1qn;jq@k!6AduOA53H79bJpWv#?Pm}9*N2KD#g0B{ft#C*94VYw-} zZAI9q@%!x|!Po>1=JmM(AEv*#x9{Ta$?3j~$v)zhN)|a6y)gNt#M8j!L~Dz@>0KH!|NL7}b_xI8hus_JW*H<`=2=Xs zGE%guIHn#E9^8zsn+=@YB*JC?C(_f*jL;h9ovgTYxriauaKGr&w&$)FYg8qV7HBgg zv*x)z^WEai4&OMctL^bHPv&A;mEQ7nWh$d{$=y=pig>uL`U*q@y+FE^J9;2V2 zf}uzs>eeL?Kl(70)n?zCD7Qm1_;;!ya{ckwi59s7i9=JVz}Usoq1swlOae;YBE}rK zu%o99pF3Tmx>6M2NO(8vl*)(L4vVPIBtEx`%y0rXjC;>w*Y!$h(=%K9cXHgdtVB1g zQ6Du7dz!sou~pRtX8YXuuSm+j$eL*`lrs?fKEwmTvvf)DhF7Q$9cKgg2G8^-Wi*wj z|26bme_gR5%g+uE-tpD?2$z^9W@f&&Gw=(T1*g&@2 zWkxI5Y;1xr_?_QHtgF1`z-F?cG<+u-4wsop6gO~oWX2-1t!VuWY3psn?u}kn&cGZP z2*Hg`(p|F#&J{%r9UnPnD}9oGwt!ew5pSKN;I~2}7l>&-s7JqnR`e-ZYIrFMGNhmt zIz4n;?||vsDwaG?6I$arPC&z(rj39(o#Cn9eSQ^RRjYrnq*I+{+-SA)oLdXmPb5@{ zbFl^mr^|fSGe;~>OxwMbAF_Ro4p*V;LZz>ft9+xK5JM``vHkrudGAm~9OXlqY$)k2*dN9;r?xm<7Qd|! zQsVr<^=-MnX5#E;lj5XS9L#fC6_&}(G25zTpZqY--=ylsa}XQ`5vtXjDe}IOG1AzJ zc&C_%yK4XMxn(yf$8XQ?BzC%V8QqJ!{8qzZ>vi;rc@9 zgY$#K;ql>oP)kgP;40uFg^1arN`dR@?Mt&F8dRZ&O*Vsd?@cN!RLWg6e5%Kw=TW)4 zMayng6qL~PuRPn2S<$Ir3G##b$_1uei<(cBpA9QxzL7fIikkh#CM%CQBy%{oRR}tJ zYZx{QU7(=aQ~5>tDklg?IWji&JIaBPW^fpHA}cIh1q+T{jI`WvY9-cyoi2(Kh?`%! zQB|CNga)$~9y*<+M3I%^h$K7b+EavwMk3BSB(m3LrtCRo&6N`D{EQ8;`-sG4_r+yb z&z1>Qj0q%9YOzY@S~M_!c}Mou`c8o*3Q@t*_u;4cWvgOTB3_kUBL1-+t-j%gcxR=E z6~N+otMmZyDK?|z6yqEq0d!EJcJK1WB;{|pHtu1e2!+%?Wp)I8L-|pN?6rkXbVE_x z5Geoy(@bxxrRRZlXL}VMuHJ%>dD9YA388E6NGgj1;?23f-HhN?+m~OTS{JPUBJT!q z!yYS5MxX5XR-y#A#XL`nL`R3Xg2J&X?9MIjDncKw?+v?cUcb59?ezU$RA!0Nv&`q)Er%_P1%TTa(8T@7)fwd=59!l5 zJCgdY_0jTDnSH@YOrU}DdD>@7ktfm4B5*9sCJwDtzTslA{Af*)Ui#vUhO*yt$(3}r z7FLSyxQ$;the}Pb&UCJEjn#m2?erA_N$gdC$51HCxB}U4<#htBwzaAXFRABQp&uL7 z5!>Ldw)j})cjz3NOeexAzMYp>+Q2pY&D{EyvQ3&^S{It$MSjkelz&hSHe0Imbf1Bq z7-Pa*w+IZ@tKFL&XeV(Y7=fjahi-z}ja2K-R*k|nHKvCoDaMR5clRn4 zV4JYfVz=s?)WV#@Z+0Fo>f3%$T{irHE{IZk&WSP|U2sw9tRY~#w1on7Je4V2Lf1UT zbpCSc<5BvS4;gpz)^9DLd?QOHarbBeM-e+?cEsDajmHAp$URCzfZO)@Z|Z$Qp#NPh z*K&sUE=3wjdunj`fS$7&oU`FvgQQE3oy^w_yl26MJ3WF5q}@iAxmdX6pGnDuQ>~-t zyqe+^bH~4=N6{u9eW|GjegDx7k}7h&EdaWe>-nt3xy=?|H1FpeMd*PUXm65gJ5ysN z715E6h*O1(mG`hQiE9-dedI|@+xwgS2j%zI4!fx~^46_uc_(9~5%@d+?&Jt4bJ2t9 zjVNh&^(wHu1&93bu%7Vr!5n;d=Q7{Zs3p*r`MYU5fx_{1!K&hkDUyxNdL(XhdW8kY z>^{Kw11zkrNs3+*Hx`@6clb3W+=-lO@a8BuB&1nMmzUrVky_KiX@8M<7;Uz)19zBY zg(iV2DGf8Vv!_yAjXq23#-OefhJhe!Y0wMP`D@Ijg5UQ-kq9NJ7~&2^Z+sDPM3yX+ z8z)dXC5s83q>Y*q>)NTDLW*bK)Z@m9JMtD5kdiEsQ2U9ngd_bqbb}Q8Vq};4-i@VtvtQa02UuW`>2?F{{QrRP$F86#j9ZRyMrD}fJ z_Ld@Bb>~_2$J!}}aMN#rH)P~!5TPgIno*6TP+$p zN_WRB$FSVpdy6{-kdmI*x)HV<$|PrAnVB@SVAy(Gy=#)lG~G+={XCkfTNmqRqJ8QR zdrjx*yU}BS>FzGozS8EzeaQ|I4ULLsRm|C1AYyPbCM=xqH;e?A-!an-a7#%0fBQgV^Xw*zXi^OhwqhhI)4ezpdb!F zC*zZeg{%$;cKuXfy`bn;@m7Vl!fS0iqRzo+sipEN>$l-;F+RY9lAS*$=Yd;2Lel zeaYzHVi73b%6dK%3dJ~GR-Py-Z(vNGM(&ADv)o!L|FE1zm%Q&0219* z%Fvl)urP(@Xvv_C`L;zX^7YnF$;OUc?|!nL$ohCJLA3iVK8M4VjQvpG(~|*;T~{W1#f+cpc_nOlg7+EaJR& z0QLcSCYbFtGQc044J58rZMRi&v>p|zJnscK2`eIa(Rv=~s8eQ0!I?IkN3*^kMOz1h+~6Y`XX zGroQbI5*o)SR#3K$hN<;7P_ya0pDq86JOzugQc=Fc)B#+UzV?;f;v6d`~YJRntS|aFgo z=apXAm7edKZ*+COh3US2tqDt1a*Hcv+{3{P9~B2Mx{EP$8=b%FIFc$8Rhntoyo=y7 z1E_b3-*l6wO97EPG?k!ouwSn3Q+@pbCJ11T*8$MY>IX$)Q%C=~YEJZt=Kv4p+PyPJ zhY!bzOr$*PK^ciZ{hZKxhUr{+dLoZL;#PKUnvLvc-j(QM;@1m)PPp%ByKrgFJfgGv zfAox=x4k38$hRIA2c?j(OFZ_x%5XpFaqyUsfW34cst$%byUaGi1Uo9XP6eKB#&6%!5>CZda2-2m5z__SYh0^ zGUADcgGwLiYo*r6qi>7c$x8?8w>kBiGq2HZs`j#>3dE_-4aek7i-_>9;Wgx%530=-_Qq*O$q1N1@A)=|R7o z|MdcdE-Fb%dd23#RGAdxkBB5t%5;V>BDX)u#5PUEDV0s?g;*^{pD)ekpSKKN{HXq3 z)5tme1|5(;QD+W5u=InRD{NM35s~37Strfz7Joum6{F)=L?JhDN5Vz+FN*;dzBeJn zx)m>Tjbou0@`UD#i-_T;q`tkrX!jmtt5r2tChOxJx{n^BT@iKOq;CsEDR@8a1Nw@V z$lf2|y(LiVWodi(BR|^VEz$A!w}n=9q5uQ6$;ulO0ljz?hnm>b@th^*w0q<*H{gQI zkCA|hm)~Ald7lYyz)$l8Z`2-jUhNaB`eNdIn(bsbWs#?8nKt)L#({&>Lze}6z&0+= zQ1E&U%I#&glG%8U->!rel~bcwP`SAEypBj%%%Q0EWX(XbkjLvGIP+hKQWh)cLVDd2 zleiiN1u|N`MNvRe7jp|!{b;CJOBzX@;exi|WFbKCxU|lwUc+moS;a!yQ_0jdtMwr} zEDB32Iji1`Xxj089!3$@8ERAP8+Y2OAESg^EXo5%)%i--X47>RplR!0cC2IB4RST= ztSu>Z@g}YMa$V41VoF}ul5mz@V!FH5ZypVV-CJXWwUAS8>F+|%a&=VNPe%;Mx{Dt^ zdZK~=IlzRpB)qYDi7Z>99^$^4L`mM9^jldstI_Kcvre(`UA=#JE#vKH+M$F<}hInkI=T&PB&WK zYwo(OkFC~1?c#<0I}hgB&AY4XbRX;F^5XpyL3)Fh{Po~xY{UDaDS#%LDFxVtB7HH@ z&!*777oY*Ulike!w*gfwX@7u}TY=~p;z@nWH3`fQ1MJ+)e6T@=-!gq_S z(i|79qfF@6eJE0f9g6;|WjS*&Fv3%24~BJQbtOpi9V#ecsOp{&y&9c9qnDzGAB~)6 z9htxT;3Nk&crE|rGC3a0FV_A+CD+#bk_n`ds|34LzoS{Q)V3-MrBR{s+GdHvzCV7U z6od!SqX^h~J75zF6jM3Wmi2ge%ziLNQ3nQKpI1W@QnwlCcDk<3#1C|q8T%o0E}6J6 zIBJVT>CGB#*H%&veve#(RD)@BO)E1%tv}mv!L4Z=e8eY*5jByM9go$lapE$vGyUTca6Xkd*7nAC3Kp7A!%#p|x45}1u5jR%;e=L13X2O~M>)k=qQ zc2}F#8c&>B25sgi5`Y(V2$9MBY&AD|8~g~#ltV<4Y33-?rM;jyT_eTeV~;QuHky%b z5_q4Na4b@?{`_j|65=-!V0bzy#??}_K1bW+bF`2`2uSmNUp{U!U@5Wa7@yms0pycP zOEXv;ZiZz^O-*dAJ<+(R-~UV-ZHdQLtECPetOQR(E}a5zyUVikD9pGH>pN-mGbC8o zmveM}2jFBsZ7ZK8YI>ZKtog_`|9ZN~=-?gHZj%w>0mKo;oeu$D0-k>a#rQ?zjdzSq z7+ZBDyyEc@;4X@4cu*dMH0}!m@AG3bB4y3k;jn7=FYkSX*qV;W005|Qy^CdjDSoKe zwSYq4wHfKFP^#23L>7Kn)HZE1^Qqn6Xj}3^Yr84lyHuHJwj3=o z)tUxS%0%|DEK^tjt4GII`3{r4ro?G^(Lk8sjOh*K$RQVZfi1)wQu|aj?-RPj+x?^P z&@|ol5u2zaayZG2EA59g+`z#JLYF$|p0XqFOMIdn8DcTr4nJkQ;gFAQIj5(Q$~11j=(?$TZbATYOJ-_4 zZMiyNU}0IH@$xpPq0H1c1(lC}duWPW54nOgXH3NBv$SfB=(*C7!v1 zW~u5bHWpIUHzuM2V7b7K^3v@@A~c?S`n|}^fljVupq#_df9>deLj^ZxSk!PhgZ(Eb z($w5H%3vrlqk`x)Nb$HD*(GD_EpeZ_to!k9Jw3#{IUAav3zC0@*cmlIjLVXz$Qa>O z3Eh;K1Jb)8jBVku_Yx3o2UxYefxedug0a~w?TI719zY;pyh%Fa*H6z7kqA~oD0~+3 z6II%3Wt^jbxyxqQxj;QguOEvU7Ov!!Gl+k4U{<(|8y5P7^IR8O2R<}r%52NsEgRr; z!|JV681^%nRGF!<_qg?sCrLq}7?>078mq#)o97+)f3Xtcz(Sy{+@l?MzdO}4f4Qk% zl6gvkV_GB(53cAX&c7wS5uZWB%R>g6LGh}tt-G?3z2be#;{zX9vTt>i)DpI<58%*L z=0gPxC}@Dx<&j6|4gGM(uLQT!*NU*@#QsaHIYXr0mR`MDZAjm~!#}1s_ButVLbPjl z?nUy^0VjUYL+oQ}H{frA26u;m>*Q)fk<0pVE3WQctJn!2j#-I>{bj}&hdOUuq5`E0 zd4d+So0`7O=FN@t7adh%4@Gys0%P3E0o0VDOq(iel07vW#Wf6;jfMdzP}&X zX>hG(6vV&X^Xs>L^Lto+2yrrCc^yUja3*t*#8;MyXs7SA7kd1|#OK}}&m@`kd>61F z5VDMie}_X8bgpH#O1m%ppk$7gMk*r>>n2%2>i9;c)Zk8t>-el zRPOBUB(KI;8_|v(Px|-sD5-GEi?*hyVar9k8pW@1-#9OZEBG-@mmAwLUippx`en|= ze~#zxQ%lg!PPH%@THAl*$5nVh2}q?2M-CECNGWP=m;gqF09t;kVcI*1*vhkur}EdV zXK46A_`tf$DgUxwhvd)Rr&`H97SqEi`NU(iyoeOf=stAD1E~8u7iVXk=UWgL^A*6m zl)}N{Ch`^ikUqy5?#g}MCd+_zpiE%Pv$7{pEcYsOe0);1+;o^R0+&Nmk?gHCDmB0k z#_z6{i}KOI&o>&pL*pe=OyjnHV4dPFG7>mPuGt*zq;QF@yg78tvd}`pDLB9(W$mKs zEJ5S2uA3%$GYj#L=gXF{#^o*E6!a4lQ>LD&GpU>zZ2JYxsx~SGFp?;tyL}|WZ2K4T zm|(A|CROMe9HK^dmu%;X~G{@;KFMJKpf1P*+S^KOdS)ol& z(#&MPC`!i5Q|QaC5o|-y+QwQU%8+ioqL7$wy>t;2}o(|yk$dI zY5Z?>gIT2ug)|w}mHq5n0Rz;0E9VAZ9dLu}bf-`?1y+;#w5fQzZkC>vF~-;JdGu&#kU9>;0N2xJp#oO6B>b7Pj;D%V7b`({x_h z@`ee#?|kY1LIAeat)m|rF`X%5Up-;cNo9|P7&(>nDpg^|y&PZ?+B~`e#Mr0kK8|lq z(E!3Du}AnBnqN85H2)A{voXe>%YM?A3FtM+BbgZOu|V)X?;T0J?Yt9uRBpns=5O4w zm8f|iDXuZm|9T^38g!-+QUPE^!chHZ3Uh|roojye2G(edw8O%WWOk9$eE^MCH3h-R zR;6igYQtwdj1p_ajdrjv=N`UsnGx$RtX8y?k(9iw_<@P z#$Sk)ryZxVH8`QTOAxDmsP`24Nn1#q(IQ%>Sn)qw*w2+T856d6t#oi0-ZC&~N_J-S zaG1JvDqx^ACJk=9v&_M>u^{C$d0sqpMF#vDhYfh2QeE|5MRYod*swV(|Atbnj0JcE zXuz%l@aa6)az^J*tA?E=h) zwQd9^4uz0IM@lwC$I~|^0I;Z_g#$9^53K##He3RDc7tSaNn)J8LzAyT7lB&z@q=$8;!T0qZjCVaKMcUvz}#7Ul0zl& zn)o%*!o3Y5X9_j@%AQth3i<~@xc!I8*NANta|663D(i>QU~j?kcaA>1$IwJ z^cB-<4)<36*cAX}`HXxe+*srZ)BFAepKSXXrd_LQqgMtn?qay-@rlBN@3=#aJJu|I z_G1GMfv#KU^lE?|YK>4~ZE*O~0S%wvIy7DXhv#u}8CtlpiiX#I3B#|`+s7{VblyeHatVVy_F5V(zAetFP?%Zz6KAx zctgheZyTqVrmD9A48vlma2K!uXj8Y_2x!E!3M+?v080W4zo?8d2s7)}Zy0D3d~hGh zvffWXhFMP#nNd(ux32Gn7(r2Xz80xEB0z)pEeK;O-IyPD+6jzS^It#hCBD2@{$%Dw z=GvUFG+y!z>|D`z;uK#h%){*#1gPA`ldeMIJ<}(VGvn+VJc$hG!%v36s|FnIOp576 zU2W3X8NzD8eLtJW>g(Z?MyEQJz)HgMO2*TEb2Ifq0X*!~>E zvO9&~oRGlYfD*h@z{k@ACs1$^O+mG}TTC3j|F*T}pmh`#u+~*MHQ~cZmzu#dBCk8W z3xp7D2{RaAYd^H$bC)6$A%9^tP{SsTcQE|`+t95m#nv!c?`ImcR`s)V+9u%K7_5R6QG$Gj-soJ#Wz*=a9k{E^3 zuWLNLu}$rybKM!gY+t#&r{DDsUCQVxCY)x* zvam~MuYQyUO=pf-uC4^FZT3mvgP2PAj>_9a1H;2Pq(5(VipbR!BcBc?!H=HInC=oY z!(U;mw4)j)D;<|C=BMaR)Ops!V~pzkYC0oSzUc*gYkMnFl3maTo*gW`;O7;ow57sc zh~MgSW&$^HmbOZkAu|-96r9Z$_YN2=s)s?&zw=@{-c{iX%v!NGHiW;y3w(?@s8-Es z)D_})3koM8*L|#G*xGRNzC6ikuV@p-R;jIOJ`O=Hu}kHa3U2wp#8y>^$jAsJ<;6?S zMGTZ|6-)YhdUbIeb)nZd=X*hLI|_4IZZ1%xQXmwR&MxvIWlc2fIhKj_XTC_(FbH^& zxo++wN?A&!SRs#fZ)He`x8ht8wQ+YLwSBtsjhJGoI{DkjO8i218+IT->dwI8I;xIM zyr#-Z>8=+^AsMd5(a!MFavXdBrY?{NE-?r>^F zARUaCxhB9b<=aR@H7IHu53^xy>q9XzW`S|W0UOR8Cs(8UFf>4E0B%*{8M%O^42vq1 zqhEcaUiD zxdIrHoFA6(hsTY(qJAag_=;TAb8;Js49;IniI>9hH{gx)MaCq)yW(gUIhet&GSL}4 zUV8j+u=$Bw&s;)l(62eXszFZA=eGbfjxZkk##HT#(tKfQxUj+0wV<3FcO&^C>!J82 zc{=Aaf3J)sk}Z9xH-m{UNLlo*RTX56I) zLll|mNXk+5Dgt$zg%o5b;}KYUT`on3zQ(!vG|q1Z1=x#!8AK6t{kpV|Xn zI#z^L_N7txb!z0nso~h(536{8`8gTXaO+)vHs5bi^|?KfWXH<5KdV%bp*92n>4>n? z))?Kp(5PaMS&{+)yz*F8o)FIY&7*8?qVP8yA%1b#Q@a9?kgL-;LY=TgB@B{+6;4kq zu{G?G4b7_WCikhxLhGjKKRc}fcaRO>Ft%vCPYHJplORVvSypqHD|?eAM%?mLa8%>m z7S%(K`*>SNH&7i8u*qwCSh%Q6ie@)+l6n8uImuXS6wwu^AAK$H3QP2-&^VfY^Go?P zw%wRK5Kh_DeAE5;7 znE6vJ6Dqua4#CP_x*YUd$MT%Qyrt`XXZAUO#22nXZH=1pn%n-9SML2+Co7Fcc&5j^2B9xp>v^X=uob7zv@I;BS!g4rCi`OwHMr$~-IJ*t~(Rte^ zZJjW^a{Qi|dc;v!uZ<;v!z|GJ^8qP*f}?aQb=?;wv*?x$*0YDLHc!%h1dx?M5uGkx z$+uv=L~hHqrHJmN7|R=}p=wXujYt%#8>-hoHlA6BJj7~(G&ovEb2RS&{mP%n5U|)= zWDXMpm37Xu!H~}OSI8j1hq$-)bc{l`hTj_j9S?~}d2E9J-cTjl@DT>9<2jrwdQDDp z=O0j}@&oW;1RN+xmYZ#%bvdY(EGGX1_{lvFC*e_qHR&>Hla4jKqnnmEW5W-nkJ^S0 zoUZQvtfk*GXz3D9gRaJeFfkv9L5^JOp&RT_o#)`x+eUT9=^-QZ%;tK?4|)X5S903> zeuRu|81&kP7eN|TOX+cza%(Qs!hI|Jq#%}N!%ncaq7&Qm zJcn5l`NziR$f{13nSA)^=C>9Ir2QFRTh)f9FX1>GPYGiq{Ds?78lF;>B3L{Lz35aO z{Ykb~bZk>08*4S4g11bP8CiQiw^`zKEsH)5z{~R-;->-3yAV)Y#kT@WJqU~P!Me(E zXNg1>8>>wYR!Suy%^vozLHM7K?N*On4v)XMsXrfsZi0e>j*qwJY4-4c_UZk{diYla z`|ATVAM!s%Lw}v7*97i=3M2p80`-si_OAo@!p;6Ne{Hk;(~1A7#Y6-_{;Trw&*gL8 zmi=E_s6qdA6a#`2>Yp0XoaK=Js>S^KlIw*3Q?HqT;_2xL0xd5uza7~J=BN6#!hg>5pVOR%lU0sN{9X6LQ0t+r$Q#C>bl`GM(BsAR z+&B1FeaoMtR0{qjo&IxkAdsCRFZi$C-7~;tkun>pF`K^|#F^_Rf5pHlXH^UbtQP1#qe(U_n(g+Bt3;-x;hE0kY$9 zoyZvjkWM8Bs&6kBRROh?y~uos^y8s_$B_1|qgG7Wg8?Q5<&sUg3VWtp+y!1$ZO=`j z_Xn+-zi)Ss>>qDRI78|unXiPtUSFvMPt$x=?xsR?mP?#+O4vB?MAk~UM(=FE195+ zmkt*i?7(Uyt$pv>POTZU zw?Fxl&F|r=hRGqd7!Kp52dbkK1a{iy&s7PGSZIFs2;9Gg{5yjfcufdq|GMFXPMg=r zhnYUcv17E$zQ<^5dze;Ie{zV4g*%}r);S_L=HrnJwe5aF&yWsa;rV06T+l$EYl#66 zVYFa-A5c{R0!t_qY&~_?VGlRV-C)1p}$Toxm)fh4r zTT?ax#tZSmj^m5#?uWgO)hvi>DVXwY7Z~n$`l6z?glSAiRry_7mP1GrQoxQd^XCVG zt=&eHsu5yTj6SW&9njuQTvD0XBa{W_-ugrwIamDJh{Wpk9%9nF%>$!GlLcQk+@s3m zrkXi6o%bYsU2MoeS2 zEBIs)bZr6n|J1JlU`mnqg{Y2f2=D{}hnPj*IO${fK)&suk!|?we4FP=0=TRhrs~(2MC)18KMnz<+JD+0!#@Mw+;U*c zFJ-3=3aYwtgyKt}jfs*Y^AXasXDfvdaX?t8V&C92;8SGZ*m={heAXe|!k%x6F>hlR zr#}`@$pXl_KkB6>njIBtAQV#f#+|((Z%KT4yId&V-LISEVQ7j7gaTrMsoRRvKm{XU zVgQO8KwwMy!gZOv%nkOJdA9lRq|kjiDva}qyUa6c{(f5`*4*G~fYJk0VfLG6cUwSC zx3G<*YkD3qcly^0Fv|NG)2VJ7nn9UT^u5!wX#A7WV1Z-FTs#&4pDx?jD1gb!s1g}) zp!EKSEPoqdD=;0t+MYl3;p;LJW~TyRh#=r+i0z`)Gqp%(A4ilyxcdLtYGUy+Q!xKn zY5-eRj|ZNQDUbupupE9&5b^dJ4gS#YSM%U!CSE;v!vVNA-`$u-XNRTrF)J>Q%vpoe z)~G3D=W*pt?EmiVoTHwEtq=*YTB3o>?}2`t+9(v(r#VNq}Jnv z1^u0%EJD_uMLBC-eVuF>DF7Yxht?h3VT?Fsyi#=k_W$yfP^km4c(}Czu8!1TBG)q> zcE}Tt4E08B?Hd`1JzQzFOyFRDVO@7FqS4XsCUAM>sO4-$=SWo{Xxi*ZyAy30BOnBL zKuIxCtkOrTU+P$iNBSIge*c8a;@hu7*b%uM8`r3d4kk81&=OT0MDc0?cMXNc~76w$?4Dh@i2g`?tVY# zUUaMtf2~V0Z(XLm+zbL4?{C3`o;7Be@uk^5ka>24;Smvn%3~0Ei1I=v6Jt#iJAZ}=Re+vmkESMgZN$ltVnO7G>eU*9A52oHuc_%V@7-9m#ZfD*aV zsWp0jBZaWZ6b%cIuwzB$h8s}h`KRS;F2W!GHAiw97T4TFAocJ@J*8KtgxZrUOh8ik z`!2#nGZ89upP6+uMd-QM#;4~vKCs~&kh3PPY<>Na`K2&Gf6Pj0g{rIhcdB1hyvz1wtr&_l15BaS43ghS-|y) zfMCRr!>wBncV04RBr32v*8XI^904Yr80M0hAKa&1tRp5>i9A)X)PAHSj*;z5c%MpN|1LoWpsZz1LoA?S0OqDB9Ds?mFw&%%s(< zrSnZPg*hLmPGiwqIdBdNqLtIT?u~t08TmLRMi=1Fbkk?p+@_H&i!k3c>#T4`AlP-* zV5z(k<^3qS<%lt4EqU%K+Btq!A?k^rP$@557?;!U=kCe1Wg7k6BZ<6CNLXI~u9M_E zg?}Qh0*hE@VdQN8JLj=EEJ%fSGrK2IF={%r=t{1NO%dr{S~KBzd_(D{SeI?2WP7vg zAg>X8>p_O9j7e5q^XeUYfQofzO(-N*L`R z#ba}v>|;OtO;c!55UR;fQV|TS11?yVsi!GtEmzFNl42F@=xSB1hj?mzHTugW%J=K zrC7VNAJhPX_M-16H1%TF5nn;UFqtAf&1!ALy-?5Hb>CkeBLKq_*kbuSdy z^l5J6%cr?s=$U8>I_;38tYIg}lH+*C&h@W$uhok`+HB0B+=p3@nQGZ&inP}6O^OV9 za1j^A;>J!dGA)4u$CTPqAfe^Ql!5>%#s=8 zw?rirMokh|kCzS<@?o~C$hNtgrN1t8b5rH*ZvZ7 zLomw40WPF@Q0?`IG9>P^TAY!)Fy;CCpo-L#PCzl`slMJc{R0fFw+a?dg-2aRcJ?pE zr^G#6&N=STveLd1>F8ajb14}9*>E-DZ2bs#Mj!QpBS`{Y%f6Umprqg-0<*SJ!rmFFsfk=MnSIds6>)|X-#?Z@;Cx@oT z%=9K38%6cbdn{2|?FXxY43m^q8IZbH%*{)hTWk8a8`9R?{0W;oT4G<-ZS5FK${CsZ zMVtBhlgqA-k0-6Ybj>ao+^;_Oj2QBIE}`kT&u8N^appg&E%wgTf;#k*ayhfPpyu6Y zgtoVD$9^hvjOaOXpB8qx#-{mB+kR53{%6lLgD|fm4^do|Q;|49*U82xvq1ZfiF>Ogt&)V|ck%elS4CgSRew>mE5g8NW(`FND{jmYS`SnKo6LLwqAi7Gccqp=%ACVpKk)n;whTar~8JM#)T ziS_3+%)6H%Bt{7b6Isuw^nQ4-tD}i%)GydoI+||NwNdXkooSAEkB!)fm1m6c)_I!E zi>2Fm_?D*g35W;k3e<;?k+D-qSbIy7+e&wMMa?`C9X{c=Vt=V@Z?-o1V@pv;>D8I` zC)&JBk%;ss1JQ*HLb*$jQni5;$nDE-hlNwA49a#m3(?gLFYZTtkWVsA<}pi-Bj6Tx z5c>MkI|yn%k^6?2?Y)-A`9qe=%b0YMZ{$Wu$WU2MT9Ums)u^)KV~{|-)J*^8QF~i7 zi{N8V6dVAZ>bmewO?8H7;6;Dwyk|L>0WZP^LEjOW8Hc5(UqpBBdWbjeJsV;N$zleT z$Ohl+dmv-Km@zYt+ z{@Ycu1=h*Q5VRv*>T>rBN;vrrvDA6V%gH#0k6_oz=u&F0-elqghgG zkqVN1$hx(?%Woa2uml_LoqC~HgU2h{1&F?PKN0-*U}-??$}0$YQrk6l4cIrOP~wRl z1qA0Xlo<=7tYNw=xf)~q15X$)ISvs75eY3Z({wYEy{5gY8aB16oDUwTn6Jaj{)o5g z**aG|d%BC;4(eE_4{rz5$EJoV512*?qaL+_Y1#rwKV;}{5#^K@2@amW@h)yxMVBAn zU8RTgal&f7E1>k+P$=9{9rx*Mv~p&IrWko*H{OhL~HzfPM(my?pM$3CTMN!zJ{pQmh&?i zuYs4E8+ruZ>DFDkTHWN2o1O2n!j7kOdt*_nVfl3VCM=g+E%=u8ebwWE#iUut+LiH5 z)=}<>WzTx?n)X5M*Op27r7z2$>VZNe>37+`B5ATE(^Wk#a%mM3SxhH(<;F)8geb1$ zL6focQ`2ls*xsSB*xO;J=oH^rfT2ka5FFbHR zs0Mf|aOe@7rJug|4KHYe%8}|GzUGhboHtU8`r$q(y_rF@$LgY4W{O+msRch4EGQpL z3tK}?bl#7*xfS1h(h|G$=5&+&D5wCb_G58t3r*o$Q0ZiUwLUbA(+_ZilJxS37ZX)) zom|qF+07K}lFb8^5^@mMZk^m2P&1{Q!;i(rk_NuQ25aKFNcpS3JoB~K(};+j(L&zT zQLmjqV+RkP4N2v4eh9CWLLq$#x}2%DX_DaAp>%f_+vGuYxr|S~iHdZ07>g`k*^i$k zzSLPK#Q~YRsctrPfZ|KhV5q(aNE9g$VR@v!%Y2Go)U*=Z%?|aDm|xTNFvbmy`+@aV^Yo5^of|$jMU!zu z_PfVCVsmQ%Z2FOu7LFDN&il$Qo>&{}#V_Iwj_{PO;hT>iP^Q9ua}o#@%p&Z~yP?n(6#Dw9e>8dM&-v+^F1XV_s;Sy&A1m;rI|yXOnOQ`|Nt`qwtjBj+ z;?b9=q5!Xd|Yc8V`v^LVj4<~xY}>s7vL`7k2S5vatp_S6E| zL5{if_B8*-9t*jI1RcF9_|Eg|1qG3=;e2U`amB@n8i8r5VMS4UTCMJ8*kG*rRCx;X z{BWw9S0S}>Lx!AF8w1qz96Ky7&vE9YtH8(Gh8Rnl!aw^-9ZY_W{Pu0u@Z7i6s}!Q7 z65IF1>53Ulji#L>rz*Oy%E+i}3!9R5SAK^Tn>{h`>Fe2#E0)=BaM#sB{)n97H|odJ ze2Ms7FgC1%;nX&bB>z5Ous6i$p6lwQ_&gR5s9fz?EW?6j2A*Oz>t4GpB{xy zXz`*V0Selz?fsZ$`M6xf{2mpI6?{e(PoezY|LwP8Nw7}aDRcMPwmBrzrevDBHD+Fy zvyb7nf*4Ppl+!E|^Ag31y^N>S^fwF~+&7Q7ZS!He3)Ii{Y?j9kv(A`vxW&`lGTb-u zUn2M-XY0N~!}^Z4xG+T-CNaCP4*?=Nll z$YiBuo%imGxojA2UYENQ=k^5@W=WALyN)I6nsIZ_ z=s>0JQ6<$W&As~q9B}lXzlkF@z9-@*+>qp2>RpKsB6;|mpdS);uabnVV zryJ|X=8-c?j5S^e-&dV!vFJQd{*GoLtK*SSWZwoSmQ93Y>b5W^r5>c5&%TQCIr&xi zX*jFsw@O21!J4Gdt7L_D4}(FZl%I^6Lmfdi;(@j;2a9N$N-_B%&Nu`w_HSAn>swE+ zy6CH4upRgze(7ocP_1-UKPKGw@OvU$+r0ldo2Th!{k#=Xm5m26zS59~{wv)Hs{NB@hb9yUQ^B2^bSJX<`?Yw5Yw6E^>#CFy%Bg8rn0m-ni-8E6234Fj5 z11%np3a0CFzN(C#i1Q!{=(iv#JN+pQEd>>kx4d5nlzEkPBzWBA-7m8w$`ZQ^@$P!+ z&2&?gKKyO!jCzzIMm#<-!6C8U!T!vhE%KMwva+5JWg#{ zFyEY{nRZb*wSu71$d|n<=7=ff*K@A@ON6j)855g&!q*br3>nL#i%sE^{yao*ou;%l z8fV=!dOhv2u}V)VSY>^qKlc9dirAX?C)(eBKAN+0T9Fs=(Q1UbKL^uTFu4G}+wl1) z3E(@-9kEJa3-olp;fX&;c2+H74=)lyrhB2O0E3ykI=29!8#_yIh0(%5+M0iZ)l_=n z%Z}E4dadj5ZSalgKkw9M(=9IdB~K1A;tQi^`|?KlGKIH+sv6E8?$Fb3;H(7{%f8D(iPhvcBalm7oMvznSN#+xOum0%Somz|NXVS#R0V zZG_TK(tJl@=K+`l7cnpuNOALFzl(w-OW3?va#WYYZsf`X(K4f6CHRbc^Zj+gaUMb= zKSq$%6lZ$irCAVD>qg1aD9b#;6#fs zBs>-)-akqd|7)K!nGclm(<(Z`GhvrdR{}6i8Khmg+B|-9parUA_#?*KcC;G{ z1Eqj#1xVoe7wxfEuJ8toS@CR9!#OwX*F*^lYFCIuJ zX5?b6G*b7K&Y}ET%Bd0#&O#BZ28ECL!$PP14C{&e;M9}O`qu1MD6XKFo6>4eUZrpT zJf>_5$e}MOafyomzy>b7AnWK%vYY{sh6m4o{FgPKKSVm7Ytxm}1W;oe>8UoPML%SN z&`(|R;>Rf+SWcgZS1@DxTzb{7$P7H%6mqcLNazByBZ)4xY)lU6nB1qUE$-bYAYxH& zOD1O4C}^4HuFa3hX+*5-{YqtzsB^ExK&R3+QB+z$F46>@1L=CxQ^DzI9>9-S3MeYJhCQM2vN#GkYNpkZ#k02* zR@vzJn)NV8@tvF1C|uEOsTJJpsyxLm+5M_e&b~FVU1C!lZCL)e z-XBqj`9of~%A27AVZF8;ovOvbvwxetsh=Ia!dpG1MM||W*-35K+C~9PiZt(q2JO=V z?|khx!?C9{sOYko^c|}}@e=`23o? zQCtcRiF#2nn}wQd2d(~O-Q?_)Vpo~u0W2BrE20E8))~?Q2Ow-7k}G$7nAlaJJ7UJ?%AGR>6AT{?9AGuz8u@G4mP9#PqNZsj<4^gR06ut0@UNkT+09s|*2RD@ZsB#|_JJ_fq3?Muosf%@Cf(k- zqJ@tF{}>8!-vpSmk(PIWj#kApYV3Sml*a zqvUKqYXG_beWb2MUEm6SEUD9d8ck=kn3Yp>a(XIMLMueeyhyzL=uvAjgKdR9(%yQz zO-_+(`)!w9=yQm6O_}%Nods{wM54yof#QZ+lsD`f3;_`K8a&nqq=n;`{fj?=7)#h) zSsu#M$nb6-eJeG4{2E9(R_;}_>F{?s5rjaJ8bN4AW5xc|N?D2+o+b_ABio97xf&xp z&unkuExhqcVzYViA3eI!tRrH9i>Jw5papdru`_Fu9;xEFI} z=Q()P{GQGt`b>Zl`~a+FpYKxc2Lyd{p9+&C6tAVU(cO`orPr#-kSb?s2`m;rlf5BrD9HjC8BhN5wi#{ zn>o$cIRFomNyfg2U!yQZ^{U2yXBeY}MB8C?*IVvHuM*u3P@?+YkFK-Nku{ z$2+!;Y^4Cks=T%T=`g&{ChC3sY<8;T3_N*d&bmcN@@DjGp$2d*1{wiy(Fy9jog}(* z$LNCax$?1q<=Ya=yvT2G%12CX{+&YAYmE4LdC${=O+1x40t-X&5rOFVtoaasp3jHHkuKh)+8bglgUitfVc0Bfy-tSH2l6P^yX2#-Z zSN5)y?QC3>&162k;d783&pltI!q^UvCGU@)y|OhycV)~e%#he}%)=>2(kHLV0&VHuVT}3u<|Cjq?M=1t0?APhQ;Pj2t6 z^O2kpl{>TDoT}iNs2Gjbg>o}gxuemTl6QLNFY_bK*+S zh1zfpu+*@z&`vFkqI%FCE)%-ow7N0ilvYVDR*_QF)`=aIL0DN@cQ) zZ1X33+xn9V_8#rI!|i>08U%4lx$=yJ!1&W6d3a*pE``67`^*hO_Ip}2xgs`~ggVC+ zeEy|6IuRebgXR7MqgXx8SuUuR#j9CMZ8>P`#TGuN=Hj?zSnk7Al1zSAv}htNaK3r?u>7J~@}U{Yj2!3(?67%^oIK1{!OlQygWc9s#4}7aky*is|J7LQ9dG_fco^$O>GdJTdPXdSaXhBL z?`Os3d>iBu1$w1#5Rbqr8~j~mm4TuU5(!dKZ)LwfydD6|Qo1%hf)!Y)4nDA|+BGpW z1(T1*bqa5vC!*8i0Xp8H-9mKxm|%DzV$#_edg!}hNhmE1e84!UlclFVZN4leN1Dm< z20kZcNP$ZIIm}HdRpq5M0FsQq`OmucC3WtmR25sld_@k<8e7aDQ;c8--Tm2$a}Egr z1cYy_*g!FB`Kr4u(D zE$+Y}qpvLcmyntV0YZ8(W@QOv-0#6)H2mL!2Y8FQP?7{hY!)|rYs!}|UJ^G+2{>64y zkNu+IJiMK`$+6*DRnZ`TmExlT`81GSbQ4Nb(sDX*YbGe`uQx8*>jd*O` zqPp_v**4re<+XO)U#Pm0&g3o@<^S-Gy>mirPB>Y%WRISCmqy(IA>DRn-id{Tc6BQ1WW)pDjJe1lgv%0YY*+@DrkJ`Ad} zcZ_5}m;8`f?o~?D!7HGcq7-d?H$tG?u<&)>L6o<&7x1Uh$}Tr-Uwg)9vb?hkOA4r|jYdc{h+!7fhW_Y0mi6Pn$6QzjmsU6YOu z5V)_KE~-k4sg3pypA~D2lPWvKd|pY}oR>y(fU@?((?rM(r`BK@xG0}xK;$AL{!**o zqv8K(;s~3dO#&XtQDZTVW1%Xe)~0l==`h6TyMjVsEU5^kS5DeV`A}9v3xxfG(kDJY ziqK?23cigPTwCGB7CpB6S38Pbh3tN+ya(siYMO|St3X=apS?`^uUghron8PR~J{6H!X#)#Nkq=D}S z9My}8WemLX|L@#cZ*;LSeFC{q=gpP9ufF>zJ12#$x*=K_pW1jaUg3#C=$zuOgpIOS**E>>`N9cXaq@k z<&{IvJ4GpdQqsx^@@2s`mnr-oK)v-mgaoXeby0B^@>M|xhInVjI=%iwjnh(__#U&_ zkyD^hU*D=n<;U+zl)hmdg~!HoYob`SXsiQ(a+jT7tUVH6eS@F9aV}#EE`M#r_Gh9M z6VEM*3!CBmoHSceUxpNbc^dx*RD8Ua7L#cXM7TlexBF+O`E;~GCvfVcdbIGh$ua%w zn)2zz(w={LT5o*e%t-`;`}}v^A|}Rvx)(Mjio7Vr zME3w%y}0{u=vz}7%KWtP1<1@td}wuy;{o<3iP*WK|$&Dk2Y4GK{6?>QR&){~_{ToeZp-O`veTx!$6>TFv0 zM|JxfcSd`#!LY=1*g zN$2>L#fU~6+v46xf`Ebl_=^A(RGrlv_ni6~UTb4eiJA9hT%pO%lj_WL>!M8y16E!2 zM#dIAh`-@-|GmPK^SW_syZ`CE-T#$&%(WK1_;SsOi@Y0)ZV*;#05Ibk1~Y`4fX)M^ z!i*y{=)KJPuMR`di#R*x@u8c#{_vk}L#bV7+d{(E!8S1JdNk0mo>TZr$8;RtJ(Ild zI$G!;(3Q|9IB@gb_7SVIVFG-3rS&iMmKVkt^0xb-*ka?7A+HElY}jHLks{sRFL|B< zM$jAkKZfFIKnoWsSaYxxb;{|I>|tv3B{D@d9v z2&}qb*XiDb1q-dP7ovTODGRJ8UP6eoE-VES&FfAj{gTrrU>2i@eGK2w_GkK?@Yet~x6T&t#r4(ZAg6ah2X}A( z2|J|GKI`cR=tHs-Q2#aO?}>dASu`R9-qe6N4?3@$(aw{O?H{$G81G!ZxHvWm6PaLKze+e&?DYtq1_fkBuW2apxjEObP*V@fVW z6>qKf)}Vef0(w=-eV?q)uckY_rU%|J1+r`Kco@}V^sz9|$I}WcdptoMkmdl#oal-Kh@R+jF4iw`wocF885R3Dc@`;|wwK@M*X_ zLo|}SY+vL0oPiCJ-sw`Cs)39w4v%pxkDhWBCJCh&$D(Wf!+GmoGRuRgd~E)g{MF{` zFwoi>p^a%0Mv=C9OPrW&um?tk{mnPQVoQ>EiqubMs1o;7ChZArDfili2wyhBREpRx zV1znH70B&(WejzIv&?^%;(Gt)hb*u2>MLUtlgV-m(yDnsQAzY+9JK9DtjhO4KbeXK zXS7?9f2#huRkvE84Pm!q)W@4ElE$c5yQv6aOuCf)Mk}XPG(1kDt5baN(6FaUz#!SM zV{i~2tDqD@%;rO5-Nu9AQRD}Q%BfouzJ6**x7{r(%h{qh>8B57cv@Q~SZFh|PBB}? z3JvEE)Pov`L&L`kA>`~DnbJXchnr&&tg6{1CS6fWMBm!8va=ss4A4TiGyKl-NWb4^ zg)A*ECyBVSk+CS5F13eEY-hQ*Iql9hh@objU!@Agl1iN1?{Yk&!o2;I+2ld)HkM0t zH)CLG^v#vCma(ussC?~)VP8^Hgt#o`au)u_LzP0<>u50c%wRF#p>bkFHTiqCh1j*O zWe&4r7-P$G^bOAKFCX)7J8s=6ilTOp>KV6>?d9mo?vg-ZufC!6!x`j+qy{|C@^9{b(A& zDDY?zKJb+uS-0@7K`bEV_hEPCsDbr@`_($08T6HvuRoT`*^|Y(pf4|={DUAg8by4T zzaFOT-b*?;ZRsN``YS@2PjBBfb?A>TKIef9vg@(0X|iCevIb?J1aqD5};Kalo%6i3>DiW}yyE9e(IWrk4~YXpUKkGD~7${*RX9{iEf2Nkeg& z8&|%r-4d0HmPXf>*u_TT@34|p$!B4O5W6&(Lk79^mMWAugYf0*R>6E-+TkIRC5&h& zC#4|EHOCEa-@>SSn}j}n{p($8UU0@#_Wh=)e6_r#eezo|XqMS+H_;!mkxNMy>8u+u z;ov>^=FLWP-+*61;O3>h-wBXmC`1wx%H%XRU1AiZJm9_1jBRXed?0S{?-g+9&~I;U zjuu!UX}cbY9B2m4F#d#*9867!cic?_e8~R)&!}hof`U2wF5XVQqU#utgCBG20RF+! zsr?~$$;-Z;clqMQeO$HZCt8;ck)cVw{$Zou*H=p?TKS? zUTPjGglK;z@&?(>*1pMlLEhThx;_PC zpZC9NfP1bEW(*E}dzPmOrN_p`Rx8qppKI{uGwCE69vMNp`c7Bcnt->3)N|}0A1&5T zX>OKkZEM>Y`i9G0zlXEG&je94ET7~d!j0&7x;Bu;s|e3I)hN<=4uCLEE$T1XcxKN3+ z^@nGN8_)Wa`3Y{`{0`uF#{UX^fgF@HJN9Zml8*31uJYPU@SqUX6cn<3UpPJYTJR?; zZFSR~+uPgsI%({O3N*Q`#`3{?Tw>tMWql|xC&Nz!zAL@D8)QUzxG~bzfF6{*GCf@X z^~7rQLrlyq%&H7$5su_2ccq&#egS_wBZ{hqzdt7oA);Dxjr#iaezd>Ea#!@Az?atg zL3p8dTMXl~Tu74ywDByztI-uP?un*>l$nNk`}_IfnYx0UW>!j-PvFweee)ya{CqZF zot@reAy6!CqClg_DWh+GK7)Xaxf<1&+7V-vEARJuWJdGmiAUtB@U*DhC46uUg z@w@A+x*=0!1hk~3z#yL!ZNghgcDoF zAN4cP&;V?L%8=p*fYjuGbM{A%9znWnrz`uHg_;X>VEL9+(+!>3+1bee3NkFqCxJY< zAg7|T-0G;tT<8s3fHk_=%WMFVOgXN{zkRFF0?* z{OFOX_vOxPo%hEye(NtaCS4@u&m$;=2kuc&m~-jZR=hG$R#W>7$jG2xbd?szs{hqF zgpZSxb6VK^XQEL^Xy}@VoRn06uvzctR09ntVisndAZ#}yG-6!3B4p7OMb|$up@pK= zzDip;I$DWS_G*9q8FdPxjL>BV;&)HE!!|nZCfWNobsL3@yQ67xe~I;9_%^h`8N)#TKl|08wdGvB zFhCsSgxlGnrGVYcdMPI>YuF|F90``&Tm7-Q>*gpc9uZ~p#VN9Uw#jW<$LnabV<1h` zIc@D{65ovHTAI&64~r*6o(pg$OK_-S^^j<>gB!Y4c4iCBfu6;<4UWsQcJ=$R?nl<< zk{5fppr$X^?Kbwg`J1ySr)S#FH*QU;dZ}N3`GsS#a@wwK(ZRz8s!^2Og#hYIIbM-g}Fe-fR7v*z)!DksMO{`hC0s zJ+I|L{kku8JGFi2dX=mfr^%wC&wVpAi}h-T)&`)NnUB0sJN*@wBL`#rhC4Gg0DBlA z*3t~(UY{#%r^^8F>vc6C2Sn>nS5r=-Fhh_7%6&-Cv`8L_3PbE>*XwAtHIa8)8@nyb zph=&D`Wz7+aw$0Bxxk8VY02|78sjOgPmb-mzEyczED4XgNV)#}T=)0yFp3Mb(QlnN zVM6DoK^F<2+gex61a$aAflYo6Bf(4+&{ts^1~a`fI8=ts0oVr9Wz4djAE}n(g{+6Z zVuOTcfHqx_b!(-hB>^k6_t zx2=UQx^|5G{9_IM#-$GEBRF!#d2oODB{v8G`{-qG!0lh-f-FrJ2ZSKAu+$2*VgcWJ zUFT*Cb+i~vH=C(;G~4uA{h8F3uU;Tl2}e z>3dh@i+DC(rxkev&)?(#$=8n>eU8R7kz+Sc*MI$>=hX)_Q7uoU!+K_>##y_{jt*0^ z4FPOpN-YR~@5nR>UlBg@pAP=uotgDVQKz6@B!Vgk{%J3~9MnPjwKQH6JjE1&ex!HI z7&vHy0e2hE+xbRuIK*EZENlDx{JhB(NHr=6ACJa6161?QDgCmbCSxjaOG}HvGWfX? zx4qTCuJ+>RY?zu=AfAQK9+Y14NEvG@i@<#%si{py0-v7t)Sj`0iB(!z`0mKQX4f$T^*Lcj&r1~YaYeT;OpaI=jl zS2Gpj#EcEPk88|7^DO$}+FtBo4A8Of}sVSF>STtzx@@z;LFVbD( zM-@ODH~G1&2^R{1>(>c_(A(U~D&KnsgAleUi)o_nUy=}~gZ`JxrA>g8m^(R@b)@bP@R_zm z)zGUO70j0t&yaC%}jq?oZM_n1{jq(68{zAs9)>7i^V*$D(ODB1<+Bx|Y zt^_M=j4`b!O+S3`YwAf(rci$bmvcjOx_^TY%;(a)v90j+psOuRCp!rt5D!I=-Hu(- zG{4h5Srp{c&kwIgky1bDHh~oBz0OtF1f~F7oPYPmPYxUbF5;c$eX!DFw(14A z&1$Lr`p`Gwfw-~JJk^G!?qt&e2T;iPgoGwcw!k_&p(QG;;R6U&6$YOQ1sHE74`7lb@B8;L3e=)&cQZOJ>hBNcP-xIX%1InvPZ~f9?)%BEL$u zT(#b1#mxK&v-5Elva97Tz_vjd4zT7N$50WIdBFC|ZO3j7m0KtiEziRgk9X$>!^l{$ zChFX|0n4uHIsw$gblR$_+RP4`rVXOHq4H>Rtj}5(km>$p&&tfcsdQ1~#A<(vH*CLu zC|i*RYOCGE&D3E9!+0dgPb@!eUlt-Hb&E9Y8c$bg*ZQUm#H{-k3Ng}Q3T9n-{wLOL zYl?K!ZbK~fmEXS2?P>%m6uaAa&ILbl3jbl&_od?PuLskmfW~Ek8ZX=#n+Epm&aGPu zum(_n^t?8*=%=F?B-1lukZKz9Yi@P32n!9MD4cDAApr0Jl&_T94yKE5O;>TlkxzhF znBGp(O|tl>c((>9=+EMRdR7fDka}Ha6(uA+a_5^wbZz?n_TWw@{qA)Ds4qHm=7lUL z`O*}16`!)VrbgRhoc`vEtK>K*V?zkAzP9UrK7f_tRa<@tJ}x5u6u0=R=ee$CO<_$% zW6N2G-;8Vd^*TCwpQ)CG>8(`7f2L4i2D6tX1&Z74aJ;1rwT)-5qhJLXMbp#MLx0|Q zvP4M1rI)ySs+=k$4OV;-Ut`jgj{Uc6u%6@K>g>5UsV z_O#*z9~wc1fnZvWzcFZoK05-1{pAOOe*nMj{rmSZiHYlTmCkDedeN-? z2+QfpqONlZVd03KN3?%u0g}Ew3mtCs_15cUnUK+=7uO)#w@mQ2}P2y!)e5LQ! z&x_ukiQ5!9{M=JMW(rbRpy!gMsTowq;83z)5vL)({WHaExs3Vung}3Q>%FgVPFH&3 z45lA{QkvWr^*wu%qnt5-x}YLh-}+<-Sa~l>%q-G!^^%|z5JC!WgP)+lO_Z4tf>aUw z_3Kw=W~RrZgabZJ@PLLXvGPJ_RokK=DA}j!l88{^n{1CCe+t4Ut8 zU@O4CdJM0+5pZ~T_@JMTifY5|D49PD@0J#c_jG$l$38$|GAgPb7~G%_1WHdhIlGY0 z2~Sv9n1KSUEb|{|Rflm;`7j^1_B78uen*{DxN5n%V&m22Ic>qmk>TM)K+cMEtIUC& z({Ts4x{(DaMDAf)rf-FfgXM_a82y~UpJmoP8M9(QIX_6^jGiKqg0n@IQr2AU>Kn1e zV2gy*Ttck$x6+@=`~xD)C7S@;h@FWXD_(IdiZGniqakAe6UcgaN6xU)%L2+NEnG07 z7X0TeVf^(lHJAz1&ni@>0bw)lTQc*QJY$LIwvSr~_czy#MF62(PAGQFb;t-GI|T5s3-p1T1p+wqxI^+R+tY6|l0>2<)2eQ#-B zn))`-@LPS}g->Z9M-`lv*mNb2xr;_!cUvmcT+(E8c;=XH;4ipuw$xC_ph2v>^ zcTEwCiYEg$z+XI#dI;(!dbhOjpT1q>mO((4QZ-{zQgAp)fyEDm_TXkhq%PIuDJ|(^F_8XYul!v<;Udle= zP3r_hz_#QQtM)J9UAdEn;Ku{nm>UXxQGGQI&vdg85D8t4A?a zw$q(}6Ny(omz5m`<>LN1#fU%pNb}o3y#CXTy~VcR|Ud2VAZOHru}NLMRHj*x@i=C%fU{;rj8*hV}0e;ZH0S^prh3ga#$f zIariZ7l3#)>5gGEAXsW|mzncHDq<0}eKl7c>A>~$w>vTnLouIq-jTRS+i;L*)0Pb9C*owQLde&@4~cy7&k z_Vl`EOx!2{6F`|9)B@eE1?SVJ9jd$+LzMqF40Dk7y5XDxGYs|Cfp<&v2AH8tLhGLv z)`LdX#l9!bV1Nf zQBs1Hcy_W=x2pw23ZSN!45K@i6?WZJD{X%>)q8ec4=Sy}EQufBmU_`W zcK*Q8i{J=M^J+`;2a5d1fdCNJ_PR|~Mnn-BQO zcW8DO@@X*BN+Ys(DPK-_Hw7~0dp|$kx|*!ptggv@ z2v|V+HTd*2q@K^P)UdEDrl&fep*|^^q$U2`TQA+9YZMR=<49-My*fc;JnHVwpG)iR zf96r`qxM1C*Yh7Pyzi2q4D|}HF)_ubQ8B)c>3yA-Q5zl+!RvG40E;4XcX$5?2u3*+ z*bk}O*6?B@K!rq>GbH`#qZuSuw+M-dWDE`OTg<16d&eZ@oyvBP6==TE(aA@OsrQ^B z*Mz5mvKyPg))C-$R38O?XK?#b3>UM!~?Y%!AuNwf^8+ovm|sJla(Maqtf}y|V8ntF5(QN?m$E z`t&IOkLx(t-@ktsItOy&HUk5+)W^z-ZE0yq==|x^r?+n1GE|{|f9vUuyt&?NsNL?| zji-&5*Y8I>`b`sP(?<4SRQ*`+uA+(J4aW9iySdm%Kky7`fwTP|loDK*oH9Q`;!`Q} z4pP%R)=%f3jMKO$t~IWGZ4`5{>Uw6$y0nKBIjo_?=t&XdMXEH?lr%I20?&67c}+@; z+VEf`-yh0F-GBV}4lp8a5E81Ud^%|(m0YoD@;SZpQ1+vgv~-{k#K3?aXobL`q1Qw- z0)@S9mH8_DeB$EzML!OH_ay*7qPUE1xv{Yke73q(=eA9KhT4T52M2%(Zw#Cnz@4Pv z#rniLS0?~n5}#P!dGWbXqKmTa-F3n}puin_fhxS`dv?gX_$v{$f0u${2}rT7_XK1y z@$ns}X)+I_RaEX+K;-2=T&w{(_znC{oxeKh<4zQ?O`bZd1GElUNzx7uJiuIbIN38= zrgsq*5*01j7Ij*=fwcgB%2d|$e*Ho9!L(1G-c?jQ!DZyo#0{7?HxVgiGy95aZ{w$C0 zpD%SL`91~Hn-?iK_2cRv#X}7uyOhA$WOJM3Psz#2^Az*WmpTa3ew<_CQ9$Jm7GQ<} z0E!lYbY5y_;J3O9*i8r^e}RK*4~2!P^78TyFurCBKzYZl3EtCxz&2jo0-3a2sNe_f)UR9Ac-ZeE|3S}x5;xsZ!&co_&1A1RdcPt5h4{8 z6@A3ayacxB_p2*ia$jI0PgL16q)Yg+&Aaa{NME~lZ2=IBXTV0>-_e_dS-Dlw()Z$W~Q>XXA!7aaj-HxUg zSBW5_ql*O4q3xnL2Nor7n?}UtpUv^22z*lduR!Efd+a~Bh7&l6@GLj)7fRdZHmH{Z zrC@Ps=^bc;yh`N3mb|(se-q6jCPvH4%L_XBMLrN69crB_yGYPyX_=pA02-$aIM-uS z?H@ke_(;v)n~S^+wtr>J`7mz_`O;#L+3Q8`XZM@dSZ~+HZ%CRjL`pHgzh!*e^Hl1m z46hr*XJ4cGXS(#27tAtgQy|StMeL8hD4O^lK_;J!U;1tG%~2I7JfxTSu)16&nRzm= zM!?13%b%@6YCF(2=D{fI_egqXo(Oj?-mvwYXx^7GVCZ|pO@K7{I1z$Jo}Qj~@nkoH zwQ5~hfsW6C{RA~8CN=e=ew~}+v4yE=ZscQ)@lq4HfxEDQfdR0pxEKukaamSg&aV_< zYi%6?WG2m_5F2Qew()?Wfq@S_xcDT1DBxO|0jAWh{jiE{|LCX#Y|l`YJp?3aFDjzL zSg+pW4Z_jS&(BKrvo-Q?Llt(rs~5Cb_x?Yot^=Ox_U#{(Q6frKsE9~p?-9a7$;`+; z2@%=rSXpJumQh*Rdv7u_6CHcSLH5XA?{#|q@B4qB&-2vt`8dw`o!@=k*L_{rcl=7x=AA`heVU;v!8F`uXCD;AIL5;m@iNb26e6!5YH`N-(Bg^?@LWhEppj@(OVC{c2K5Mj}n4U z9ZY`Wj*S$EJ)7ibZB&3c_$tP7n2R#sxkHGJs1Lh||L$rZ$|vF4?=Rwng%MV?;nS%x zaZFuBBQCGepF>n8I5FH}_P-P+o&&Gt3bTu)@^`<{Hft|=12O-IVtV@>YQrEzT-f+U zuac;Y!;I0Ck^f^)E);+NACl*YxHD>o4^9d;tHOmwAFeV6)Y4E4j=T%dTlU-E)MU-* zi8TDi#@eg*e7IV{Fs9c9B1l6s+Bws0HbmexoH$8I?OvAWFwl%*7h&+e;aURJ`o=Jd zjFa%JA6=0wY@zjuSr+q;P4Q;OMi|W%+1VrL*3pfSNv2XA|gW2 zZk|}D+%l^oSNYCYsPqEhZv560K>z$n0o~1yLpS=c0GLS_|IF5qUC0f}3TuZ*Z#X*@ zsjaR3LoWdXGj_dd_1SfxkQAA8T^r2LJF}?evp|0Z390(cac)D4vqW&VX^<1$Ul(B&-idUeKRQ6L z>=AMyxgF@Q3=q4hJ@s~6;hT!;(oYucK9%8DoH5 z#t0-Mo^%_HAGI!ax>dI4;b3isakmYOG@ieBA;m=AG%-O3Z}m1fSjOJIw23inb!Fu; z13U>hM{^d41?|xGs;H{sGB7YeK8Ab@ZYAf~ra0Q~}_ucNc` zOmKsYiOhO=r(DCh1&whuMJU%^IA8zoJfZ6fp+_x)GUpc$Feuk0J;$)r3 zXLuSNnz15{3)$8P!87G?bdN)~(u|YTCBO&18U_P5P*cz zxzc79AMp{U!q_(vKix<2T3HTv&};DX^J8o1`$o;@u%9bvzj%3VvMwkw@p@%tQw5$mN+NkIX>M2D@C{!I6i@p1s-)gh ze7n=z1edkZC@r^l*(Z$0;he3Az{rBK_RV_cY(dv;DBwD>Bu2h6?dmtRnIBufoDvCO|I+A{X34~vm z`)M!cceAvHu;Jw9vSGp>9EJr_qW+H_nE8j<1vu`{2eb^TnLo6RCdP1H_39%iUyZmm zvz0SuPSfunX0a({zy4Kvm*?Zr4WjvbF>mHYZo`-N77oWI5V(e~fr)q858J&|35q|; zR`ptN7Cuy4s781V^jSsS#fRoZv+uozYH29>ELyLzg-&oI^YT<5Wn)`LF%RR<_>wE6 zVz*4x*sLdzlk`2zAbMUMV&U)W-jZx)QYXj-7M>CM zC=+61i*d~F%c{mme1zt=Mgi>ot~5S1&z*R=wb80R@@1@#QhwuCYtF9Vk z#llUoD~nq(=cevuDm|AXEP6WV{V2N*I2=A)%xAH%B}Q2P4L((l_LP&02(z_c)`N%b zs>~1HsS`Jrl6A~j6_d>QCO!*)V?{_VML0tqZS<&O~lFDoQj-#UZON z?ofC|>TTI461cd(aZp6gQWA-Sh@kHY7S7*j=x_HjXAJ*PJ?JMkb&WGUUB1&(eN7O% zY$*g`Uc2sJwJK#Uw0YgM-imM@$2Yo{wGgLHf53}&>z-=5dwHYK@{{G&t-S{M9`Vi* zoy~*B+P-tx$l=rT_Gzcmu_v4T!8g&@cPU}oAKvon|BD10=nieJq=rK8Oodq4FUN>W zFreU#iG=K9!!Ap`?M6?imM-3E#>n8a$W8C1;~pR6Ae2I(k9PS9-x@E4lu7qR2g>-A zWRgAt^~WWNpol6?RLyvIAI+Y9k@Q`=pV?GGK>KgWfO=#0XQ@?;XD;;8gUV#Pr;n31 zd@rkNC=+12M(kbD@|N0E)a`OZAQsm~n!g~s&=QW^Mu$t>tK&2{h+fPjuh2Dk>GJNc z^BZgJ=3Eoi4XSwX$FLeBpN((ILjSqCL$=9!(mcNR8^ip?8&`2_NVyY5 z71gxwZs)bMyql0hZILnDBD-%>eNK9cGF9HBXK{u>Av~F=`{1eWKk=~mDi2fU|6Qe< zUoRv&JJJyoha{q=t(GkZiyo4X5I$GSDBw`z$33`?t+2y2N7F5c@6`luv^#1Cj0|p~ z5+^ui+|Lx0f-h6VBtmAV!Qa@}G#e2TPhiGD@&-PQmqf59-fNr;!L1a;6WQf1UE*j9 zc~-n&-p|cS(%R)wf5-`2LCh0w55@n#Jy%A~9viIo4=y5uz7~^pgubBizCJTag?OF1 z!L`-O`6yHl(o6My=H-od&eFkdq~1EojS;I-C>}-r3z6a3FJ4PPp})YP{es21rG@g5=w+8jX?My@iQON%iRF~7$h9DmK^P~##RgA17M+(}b<{&?vSH*?lEZXbu?_U*k#L-kNgv=? zy?BO^A-tJ(7$nj2J-ddm{mkf#3f{iCH-eyoaOStlNIco+smA)^v1w1sl5v_=q}i`$&Ho!twm;-7eZl$;*NxhYOBT|x0~ zhiX`kKV%0Z;~$U}Lp{+syNTV$^n20E>6OW!J(3xoDnu9Cf-|=Mhc}h*zJ#?mK2#@?wq{_bXky@$V&kkNWwwy0T{TdtGGi9 zYrEY^a!2nx?E7TQOH3KRDheGctsiQOy``_=pMK9MDivv_t^U)4f{nwDK3gjMF#cSm z;0$+5(LlkP-9uR0$66yq|2eY=RRnj~sk_!0&LMmS4?d;J5h^W=BM>sKy!SM_Z`lwb zwjUc^>X5z3GB??Fb~~@hPK692QMO3kaeGH0cD=`u9`aetrXbz^Dyg>I=&D=eS}ARTi!M)@`bO$R-9(?oQJnQTy}83%kxa?kw7IU1B1t{rja1x0@7=Y`dN0|wb2K% zKZkbCzj!o{Yzk97o?_qW{ZWf5N$Olm6eTD%Yi=of?w>hw*wv?f=Rrm2pdVB&(cU@+ z|2bf?fc#F&$a+SGn3kPEj^9DCpG~;Mdde0?l45IA%DxwbufOCu9(NK1T#j|YA$ddd z`tqPxY9an93I)&U*!X6`URS|DBK7QGeOYKwN-_3O*pBUT!`G_u50&9=1g5sC;o)u< zN79SWAMZZbpN?`UvH5C|kCP#K9?b!;LZct7^OrofbDp7h77q#EUuJ zCF)MA-fAgZCjRGJ@tO7bi$urY-RHrimFgCw*(eH9gPCX>RSzEAgTIG~#@E9^=UTS| zQ=iWI-xK&XEtz(^6YTQRvq%P7RJ}wqGt$=}ZH+sN<^I-I7=A0QdZt);#mV6GHa5#R z@6qFij0WBK`J)}9cM-cvbS+r}{#pfia@0?ABMqmFPAVD}9#I%N=9=e-C5v|5cgZ+6 zl)o%K<&VK7W{|(D_|i@&VrJ^9|1vAF=6kA_)ws_z`vnEDS2?%^2MqQa591KO?HP2e-W!_euN8@qma#^mZOJ8AmqTQeo828RUZ}mvDuhdS%DNkqP zd-i#E7e81VTKAvt{uAig;r^ix(^j)-CBbx4*9gY?yqzxfIPIMk7)ki_mX)?@`D`D4 z8lft+yNG@kirw02FBR**75?U29azrDz*#OgI}^K!{;VQRe>%b6amqPVQZYm=X|vo|67>|>RpSQ6Kv zONFf4o-F1qEN$;eQL!Y%0A0EzdFgtCP6{PpyNqE=~P7 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