From 45e668c05abb5396d54ece43d6b7d62aab46edb9 Mon Sep 17 00:00:00 2001 From: Simon Sarasova Date: Fri, 9 Aug 2024 14:23:37 +0000 Subject: [PATCH] Added numeric traits to genetic analyses. --- Changelog.md | 1 + Contributors.md | 2 +- gui/viewAnalysisGui_Couple.go | 677 +++++++++++++++++- gui/viewAnalysisGui_Person.go | 232 +++++- gui/viewProfileGui.go | 361 +++++++++- .../createCoupleGeneticAnalysis.go | 204 +++++- .../createPersonGeneticAnalysis.go | 142 +++- .../geneticAnalysis/geneticAnalysis.go | 6 +- .../geneticPrediction/geneticPrediction.go | 255 +++++-- .../readGeneticAnalysis.go | 87 +++ .../SampleCoupleAnalysis.messagepack | Bin 14002 -> 15184 bytes .../SamplePerson1Analysis.messagepack | Bin 14646 -> 28842 bytes .../SamplePerson2Analysis.messagepack | Bin 12540 -> 14134 bytes internal/helpers/helpers.go | 46 ++ .../geneticPredictionModels.go | 43 +- .../geneticPredictionModels_test.go | 17 +- .../EyeColorModelAccuracy.gob | Bin 57054 -> 53755 bytes .../HeightModelAccuracy.gob | Bin 0 -> 45555 bytes .../LactoseToleranceModelAccuracy.gob | Bin 574 -> 573 bytes .../predictionModels/EyeColorModel.gob | Bin 196395 -> 196422 bytes .../predictionModels/HeightModel.gob | Bin 0 -> 53209 bytes .../LactoseToleranceModel.gob | Bin 487 -> 485 bytes .../createGeneticModels.go | 156 ++-- 23 files changed, 2035 insertions(+), 194 deletions(-) create mode 100644 resources/geneticPredictionModels/predictionModelAccuracies/HeightModelAccuracy.gob create mode 100644 resources/geneticPredictionModels/predictionModels/HeightModel.gob diff --git a/Changelog.md b/Changelog.md index dd2cc85..c44906f 100644 --- a/Changelog.md +++ b/Changelog.md @@ -6,6 +6,7 @@ Small and insignificant changes may not be included in this log. ## Unversioned Changes +* Added numeric traits to genetic analyses. - *Simon Sarasova* * Improved Documentation.md and Future-Plans.md. - *Simon Sarasova* * Improved Future-Plans.md. - *Simon Sarasova* * Added Merkle Tree Payment Proofs to Future-Plans.md. - *Simon Sarasova* diff --git a/Contributors.md b/Contributors.md index 8a1ce86..1a365bb 100644 --- a/Contributors.md +++ b/Contributors.md @@ -9,4 +9,4 @@ Many other people have written code for modules which are imported by Seekia. Th Name | Date Of First Commit | Number Of Commits --- | --- | --- -Simon Sarasova | June 13, 2023 | 274 \ No newline at end of file +Simon Sarasova | June 13, 2023 | 275 \ No newline at end of file diff --git a/gui/viewAnalysisGui_Couple.go b/gui/viewAnalysisGui_Couple.go index 07a59db..daa2142 100644 --- a/gui/viewAnalysisGui_Couple.go +++ b/gui/viewAnalysisGui_Couple.go @@ -93,8 +93,7 @@ func setViewCoupleGeneticAnalysisPage(window fyne.Window, person1Identifier stri setViewCoupleGeneticAnalysisDiscreteTraitsPage(window, person1Name, person2Name, person1AnalysisObject, person2AnalysisObject, coupleAnalysisObject, currentPage) }) numericTraitsButton := widget.NewButton("Numeric Traits", func(){ - //TODO - showUnderConstructionDialog(window) + setViewCoupleGeneticAnalysisNumericTraitsPage(window, person1Name, person2Name, person1AnalysisObject, person2AnalysisObject, coupleAnalysisObject, currentPage) }) categoryButtonsGrid := getContainerCentered(container.NewGridWithColumns(1, generalButton, monogenicDiseasesButton, polygenicDiseasesButton, discreteTraitsButton, numericTraitsButton)) @@ -1789,28 +1788,11 @@ func setViewPolygenicDiseaseSampleOffspringRiskScoresChart(window fyne.Window, d getOffspringSampleRiskScoresChartImage := func()(image.Image, error){ - // Map Structure: Risk Score -> Number of offspring with that risk score - offspringRiskScoreCountsMap := make(map[int]int) - - for _, offspringRiskScore := range sampleOffspringRiskScoresList{ - offspringRiskScoreCountsMap[offspringRiskScore] += 1 - } - - //TODO: Move StatisticsDatum to its own package, because we are using it for non-user purposes, and will continue to do so offspringStatisticsDatumsList := make([]statisticsDatum.StatisticsDatum, 0) for riskScore:=0; riskScore <= 10; riskScore += 1{ - getOffspringCount := func()int{ - - offspringCount, exists := offspringRiskScoreCountsMap[riskScore] - if (exists == false){ - return 0 - } - return offspringCount - } - - offspringCount := getOffspringCount() + offspringCount := helpers.CountMatchingElementsInSlice(sampleOffspringRiskScoresList, riskScore) riskScoreString := helpers.ConvertIntToString(riskScore) offspringCountString := helpers.ConvertIntToString(offspringCount) @@ -1917,9 +1899,8 @@ func setViewCoupleGeneticAnalysisDiscreteTraitsPage(window fyne.Window, person1N traitRulesList := traitObject.RulesList if (len(traitLociList) == 0 && len(traitRulesList) == 0){ - // This trait does not have any rules + // This trait does not have any loci or rules // We cannot analyze it yet - // We will add neural network prediction so we can predict these traits continue } @@ -2133,6 +2114,18 @@ func setViewCoupleGeneticAnalysisDiscreteTraitDetailsPage(window fyne.Window, pe }) traitNameRow := container.NewHBox(layout.NewSpacer(), traitNameLabel, traitNameText, traitNameInfoButton, layout.NewSpacer()) + traitObject, err := traits.GetTraitObject(traitName) + if (err != nil){ + setErrorEncounteredPage(window, err, previousPage) + return + } + + traitIsDiscreteOrNumeric := traitObject.DiscreteOrNumeric + if (traitIsDiscreteOrNumeric != "Discrete"){ + setErrorEncounteredPage(window, errors.New("setViewCoupleGeneticAnalysisDiscreteTraitDetailsPage called with non-discrete trait: " + traitName), previousPage) + return + } + neuralNetworkExists, _ := geneticPredictionModels.GetGeneticPredictionModelBytes(traitName) emptyLabel1 := widget.NewLabel("") @@ -2183,14 +2176,6 @@ func setViewCoupleGeneticAnalysisDiscreteTraitDetailsPage(window fyne.Window, pe pairNameColumn.Add(genomePairNameLabel) viewDetailsButtonsColumn.Add(viewAnalysisDetailsButton) - traitObject, err := traits.GetTraitObject(traitName) - if (err != nil) { return err } - - traitIsDiscreteOrNumeric := traitObject.DiscreteOrNumeric - if (traitIsDiscreteOrNumeric != "Discrete"){ - return errors.New("setViewCoupleGeneticAnalysisDiscreteTraitDetailsPage called with non-discrete trait: " + traitName) - } - neuralNetworkExists, neuralNetworkAnalysisExists, offspringOutcomeProbabilitiesMap_NeuralNetwork, neuralNetworkPredictionConfidence, _, _, anyRulesExist, rulesAnalysisExists, offspringOutcomeProbabilitiesMap_Rules, _, quantityOfRulesTested, _, _, err := readGeneticAnalysis.GetOffspringDiscreteTraitInfoFromGeneticAnalysis(coupleAnalysisObject, traitName, genomePairIdentifier) if (err != nil) { return err } if (neuralNetworkExists == false && anyRulesExist == false){ @@ -2951,5 +2936,637 @@ func setViewCoupleGeneticAnalysisDiscreteTraitRuleDetailsPage(window fyne.Window } +func setViewCoupleGeneticAnalysisNumericTraitsPage(window fyne.Window, person1Name string, person2Name string, person1AnalysisObject geneticAnalysis.PersonAnalysis, person2AnalysisObject geneticAnalysis.PersonAnalysis, coupleAnalysisObject geneticAnalysis.CoupleAnalysis, previousPage func()){ + + currentPage := func(){setViewCoupleGeneticAnalysisNumericTraitsPage(window, person1Name, person2Name, person1AnalysisObject, person2AnalysisObject, coupleAnalysisObject, previousPage)} + + title := getPageTitleCentered("Viewing Genetic Analysis - Numeric Traits") + + backButton := getBackButtonCentered(previousPage) + + description := getLabelCentered("Below is an analysis of the average numeric trait outcomes for the couple's offspring.") + + getTraitsGrid := func()(*fyne.Container, error){ + + pair1Person1GenomeIdentifier, pair1Person2GenomeIdentifier, secondGenomePairExists, _, _, _, _, _, _, _, _, err := readGeneticAnalysis.GetMetadataFromCoupleGeneticAnalysis(coupleAnalysisObject) + if (err != nil){ return nil, err } + + mainGenomePairIdentifier := helpers.JoinTwo16ByteArrays(pair1Person1GenomeIdentifier, pair1Person2GenomeIdentifier) + + emptyLabel1 := widget.NewLabel("") + traitNameLabel := getItalicLabelCentered("Trait Name") + + emptyLabel2 := widget.NewLabel("") + predictedOutcomeLabel := getItalicLabelCentered("Predicted Outcome") + + quantityOfLabel := getItalicLabelCentered("Quantity Of") + lociKnownLabel := getItalicLabelCentered("Loci Known") + + emptyLabel3 := widget.NewLabel("") + confidenceRangeLabel := getItalicLabelCentered("Confidence Range") + + emptyLabel4 := widget.NewLabel("") + conflictExistsLabel := getItalicLabelCentered("Conflict Exists?") + + emptyLabel5 := widget.NewLabel("") + emptyLabel6 := widget.NewLabel("") + + traitNameColumn := container.NewVBox(emptyLabel1, traitNameLabel, widget.NewSeparator()) + predictedOutcomeColumn := container.NewVBox(emptyLabel2, predictedOutcomeLabel, widget.NewSeparator()) + confidenceRangeColumn := container.NewVBox(emptyLabel3, confidenceRangeLabel, widget.NewSeparator()) + quantityOfLociKnownColumn := container.NewVBox(quantityOfLabel, lociKnownLabel, widget.NewSeparator()) + conflictExistsColumn := container.NewVBox(emptyLabel4, conflictExistsLabel, widget.NewSeparator()) + viewDetailsButtonsColumn := container.NewVBox(emptyLabel5, emptyLabel6, widget.NewSeparator()) + + traitObjectsList, err := traits.GetTraitObjectsList() + if (err != nil) { return nil, err } + + for _, traitObject := range traitObjectsList{ + + traitIsDiscreteOrNumeric := traitObject.DiscreteOrNumeric + if (traitIsDiscreteOrNumeric != "Numeric"){ + continue + } + + traitLociList := traitObject.LociList + + if (len(traitLociList) == 0){ + // This trait does not have any loci + // We cannot analyze it yet + continue + } + + traitName := traitObject.TraitName + + neuralNetworkExists, _ := geneticPredictionModels.GetGeneticPredictionModelBytes(traitName) + if (neuralNetworkExists == false){ + // We cannot analyze this trait + continue + } + + traitNameLabel := getBoldLabelCentered(traitName) + + analysisExists, offspringAverageOutcome, predictionConfidenceRangesMap, quantityOfLociKnown, _, _, conflictExists, err := readGeneticAnalysis.GetOffspringNumericTraitInfoFromGeneticAnalysis(coupleAnalysisObject, traitName, mainGenomePairIdentifier) + if (err != nil) { return nil, err } + + getPredictedOutcomeLabel := func()fyne.Widget{ + if (analysisExists == false){ + result := widget.NewLabel("Unknown") + return result + } + + predictedOutcomeString := helpers.ConvertFloat64ToStringRounded(offspringAverageOutcome, 2) + + predictedOutcomeFormatted := predictedOutcomeString + " centimeters" + + outcomeLabel := getBoldLabel(predictedOutcomeFormatted) + + return outcomeLabel + } + + predictedOutcomeLabel := getPredictedOutcomeLabel() + + predictedOutcomeLabelCentered := getWidgetCentered(predictedOutcomeLabel) + + getConfidenceRangeLabel := func()(fyne.Widget, error){ + if (analysisExists == false){ + + result := widget.NewLabel("Unknown") + return result, nil + } + + // This is a list of the percentage accuracies in the map + // For example: 80% == The distance from the prediction you must travel for 80% of the predictions to be + // accurate within that range + confidenceRangePercentagesList := helpers.GetListOfMapKeys(predictionConfidenceRangesMap) + + // We sort the list so the percentage is always the same upon refreshing the page + slices.Sort(confidenceRangePercentagesList) + + closestToEightyPercentage, err := helpers.GetClosestIntInList(confidenceRangePercentagesList, 80) + if (err != nil) { return nil, err } + + closestToEightyPercentageConfidenceDistance, exists := predictionConfidenceRangesMap[closestToEightyPercentage] + if (exists == false){ + return nil, errors.New("GetListOfMapKeys returning list of elements which contains element which is not in the map.") + } + + closestConfidenceDistanceString := helpers.ConvertFloat64ToStringRounded(closestToEightyPercentageConfidenceDistance, 2) + + closestToEightyPercentageString := helpers.ConvertIntToString(closestToEightyPercentage) + + confidenceRangeLabelValueFormatted := "+/- " + closestConfidenceDistanceString + " (" + closestToEightyPercentageString + "% Confidence)" + + confidenceRangeLabel := getBoldLabel(confidenceRangeLabelValueFormatted) + + return confidenceRangeLabel, nil + } + + confidenceRangeLabel, err := getConfidenceRangeLabel() + if (err != nil) { return nil, err } + + confidenceRangeLabelCentered := getWidgetCentered(confidenceRangeLabel) + + totalQuantityOfLoci := len(traitLociList) + + quantityOfLociKnownString := helpers.ConvertIntToString(quantityOfLociKnown) + totalQuantityOfLociString := helpers.ConvertIntToString(totalQuantityOfLoci) + + quantityOfLociKnownFormatted := quantityOfLociKnownString + "/" + totalQuantityOfLociString + + quantityOfLociKnownLabel := getBoldLabelCentered(quantityOfLociKnownFormatted) + + conflictExistsString := helpers.ConvertBoolToYesOrNoString(conflictExists) + conflictExistsLabel := getBoldLabelCentered(conflictExistsString) + + viewDetailsButton := getWidgetCentered(widget.NewButtonWithIcon("", theme.VisibilityIcon(), func(){ + setViewCoupleGeneticAnalysisNumericTraitDetailsPage(window, person1Name, person2Name, person1AnalysisObject, person2AnalysisObject, coupleAnalysisObject, traitName, currentPage) + })) + + traitNameColumn.Add(traitNameLabel) + predictedOutcomeColumn.Add(predictedOutcomeLabelCentered) + confidenceRangeColumn.Add(confidenceRangeLabelCentered) + quantityOfLociKnownColumn.Add(quantityOfLociKnownLabel) + conflictExistsColumn.Add(conflictExistsLabel) + viewDetailsButtonsColumn.Add(viewDetailsButton) + + traitNameColumn.Add(widget.NewSeparator()) + predictedOutcomeColumn.Add(widget.NewSeparator()) + confidenceRangeColumn.Add(widget.NewSeparator()) + quantityOfLociKnownColumn.Add(widget.NewSeparator()) + conflictExistsColumn.Add(widget.NewSeparator()) + viewDetailsButtonsColumn.Add(widget.NewSeparator()) + } + + predictedOutcomeHelpButton := widget.NewButtonWithIcon("", theme.QuestionIcon(), func(){ + //TODO + showUnderConstructionDialog(window) + }) + predictedOutcomeColumn.Add(predictedOutcomeHelpButton) + + confidenceRangeHelpButton := widget.NewButtonWithIcon("", theme.QuestionIcon(), func(){ + //TODO + showUnderConstructionDialog(window) + }) + + confidenceRangeColumn.Add(confidenceRangeHelpButton) + + quantityOfLociKnownHelpButton := widget.NewButtonWithIcon("", theme.QuestionIcon(), func(){ + //TODO + showUnderConstructionDialog(window) + }) + quantityOfLociKnownColumn.Add(quantityOfLociKnownHelpButton) + + traitsGrid := container.NewHBox(layout.NewSpacer(), traitNameColumn, predictedOutcomeColumn, confidenceRangeColumn, quantityOfLociKnownColumn) + + if (secondGenomePairExists == true){ + + conflictExistsHelpButton := widget.NewButtonWithIcon("", theme.QuestionIcon(), func(){ + setCoupleGeneticAnalysisConflictExistsExplainerPage(window, currentPage) + }) + conflictExistsColumn.Add(conflictExistsHelpButton) + + traitsGrid.Add(conflictExistsColumn) + } + + traitsGrid.Add(viewDetailsButtonsColumn) + traitsGrid.Add(layout.NewSpacer()) + + return traitsGrid, nil + } + + traitsGrid, err := getTraitsGrid() + if (err != nil){ + setErrorEncounteredPage(window, err, previousPage) + return + } + + page := container.NewVBox(title, backButton, widget.NewSeparator(), description, widget.NewSeparator(), traitsGrid) + + setPageContent(page, window) +} +func setViewCoupleGeneticAnalysisNumericTraitDetailsPage(window fyne.Window, person1Name string, person2Name string, person1AnalysisObject geneticAnalysis.PersonAnalysis, person2AnalysisObject geneticAnalysis.PersonAnalysis, coupleAnalysisObject geneticAnalysis.CoupleAnalysis, traitName string, previousPage func()){ + + currentPage := func(){setViewCoupleGeneticAnalysisNumericTraitDetailsPage(window, person1Name, person2Name, person1AnalysisObject, person2AnalysisObject, coupleAnalysisObject, traitName, previousPage)} + + title := getPageTitleCentered("Viewing Couple Analysis - " + traitName) + + backButton := getBackButtonCentered(previousPage) + + pair1Person1GenomeIdentifier, pair1Person2GenomeIdentifier, secondGenomePairExists, pair2Person1GenomeIdentifier, pair2Person2GenomeIdentifier, _, _, _, _, _, _, err := readGeneticAnalysis.GetMetadataFromCoupleGeneticAnalysis(coupleAnalysisObject) + if (err != nil){ + setErrorEncounteredPage(window, err, previousPage) + return + } + + getDescriptionSection := func()*fyne.Container{ + + if (secondGenomePairExists == false){ + description := getLabelCentered("Below is the trait analysis for the couple's offspring.") + + return description + } + + description1 := getLabelCentered("Below is the trait analysis for the couple's offspring.") + description2 := getLabelCentered("Each genome pair combines different genomes from each person.") + + descriptionsSection := container.NewVBox(description1, description2) + + return descriptionsSection + } + + descriptionSection := getDescriptionSection() + + traitNameLabel := widget.NewLabel("Trait:") + traitNameText := getBoldLabel(traitName) + traitNameInfoButton := widget.NewButtonWithIcon("", theme.InfoIcon(), func(){ + setViewTraitDetailsPage(window, traitName, currentPage) + }) + traitNameRow := container.NewHBox(layout.NewSpacer(), traitNameLabel, traitNameText, traitNameInfoButton, layout.NewSpacer()) + + neuralNetworkExists, _ := geneticPredictionModels.GetGeneticPredictionModelBytes(traitName) + if (neuralNetworkExists == false){ + // We cannot analyze this trait + setErrorEncounteredPage(window, errors.New("setViewCoupleGeneticAnalysisNumericTraitDetailsPage called non-analyzable trait: " + traitName), previousPage) + return + } + + traitObject, err := traits.GetTraitObject(traitName) + if (err != nil){ + setErrorEncounteredPage(window, err, previousPage) + return + } + + traitIsDiscreteOrNumeric := traitObject.DiscreteOrNumeric + if (traitIsDiscreteOrNumeric != "Numeric"){ + setErrorEncounteredPage(window, errors.New("setViewCoupleGeneticAnalysisNumericTraitDetailsPage called with non-numeric trait: " + traitName), previousPage) + return + } + + traitLociList := traitObject.LociList + + emptyLabel1 := widget.NewLabel("") + emptyLabel2 := widget.NewLabel("") + + emptyLabel3 := widget.NewLabel("") + genomePairLabel := getItalicLabelCentered("Genome Pair") + + emptyLabel4 := widget.NewLabel("") + predictedOutcomeLabel := getItalicLabelCentered("Predicted Outcome") + + emptyLabel5 := widget.NewLabel("") + confidenceRangeLabel := getItalicLabelCentered("Confidence Range") + + quantityOfLabel := getItalicLabelCentered("Quantity Of") + lociKnownLabel := getItalicLabelCentered("Loci Known") + + emptyLabel6 := widget.NewLabel("") + emptyLabel7 := widget.NewLabel("") + + emptyLabel8 := widget.NewLabel("") + emptyLabel9 := widget.NewLabel("") + + viewGenomePairButtonsColumn := container.NewVBox(emptyLabel1, emptyLabel2, widget.NewSeparator()) + pairNameColumn := container.NewVBox(emptyLabel3, genomePairLabel, widget.NewSeparator()) + predictedOutcomeColumn := container.NewVBox(emptyLabel4, predictedOutcomeLabel, widget.NewSeparator()) + predictionConfidenceRangeColumn := container.NewVBox(emptyLabel5, confidenceRangeLabel, widget.NewSeparator()) + quantityOfLociKnownColumn := container.NewVBox(quantityOfLabel, lociKnownLabel, widget.NewSeparator()) + viewSampleOffspringButtonsColumn := container.NewVBox(emptyLabel6, emptyLabel7, widget.NewSeparator()) + viewDetailsButtonsColumn := container.NewVBox(emptyLabel8, emptyLabel9, widget.NewSeparator()) + + addGenomePairRow := func(genomePairName string, person1GenomeIdentifier [16]byte, person2GenomeIdentifier [16]byte)error{ + + genomePairIdentifier := helpers.JoinTwo16ByteArrays(person1GenomeIdentifier, person2GenomeIdentifier) + + genomePairNameLabel := getBoldLabelCentered(genomePairName) + + viewGenomePairButton := widget.NewButtonWithIcon("", theme.InfoIcon(), func(){ + //TODO + showUnderConstructionDialog(window) + }) + + analysisExists, offspringAverageOutcome, predictionConfidenceRangesMap, quantityOfLociKnown, _, sampleOffspringOutcomesList, _, err := readGeneticAnalysis.GetOffspringNumericTraitInfoFromGeneticAnalysis(coupleAnalysisObject, traitName, genomePairIdentifier) + if (err != nil) { return err } + + getPredictedOutcomeLabel := func()fyne.Widget{ + if (analysisExists == false){ + unknownLabel := widget.NewLabel("Unknown") + return unknownLabel + } + + offspringAverageOutcomeString := helpers.ConvertFloat64ToStringRounded(offspringAverageOutcome, 2) + + offspringAverageOutcomeFormatted := offspringAverageOutcomeString + " centimeters" + + predictedOutcomeLabel := getBoldLabel(offspringAverageOutcomeFormatted) + + return predictedOutcomeLabel + } + + predictedOutcomeLabel := getPredictedOutcomeLabel() + + predictedOutcomeLabelCentered := getWidgetCentered(predictedOutcomeLabel) + + getConfidenceRangeLabel := func()(fyne.Widget, error){ + if (analysisExists == false){ + + result := widget.NewLabel("Unknown") + return result, nil + } + + // This is a list of the percentage accuracies in the map + // For example: 80% == The distance from the prediction you must travel for 80% of the predictions to be + // accurate within that range + confidenceRangePercentagesList := helpers.GetListOfMapKeys(predictionConfidenceRangesMap) + + // We sort the list so the percentage is always the same upon refreshing the page + slices.Sort(confidenceRangePercentagesList) + + closestToEightyPercentage, err := helpers.GetClosestIntInList(confidenceRangePercentagesList, 80) + if (err != nil) { return nil, err } + + closestToEightyPercentageConfidenceDistance, exists := predictionConfidenceRangesMap[closestToEightyPercentage] + if (exists == false){ + return nil, errors.New("GetListOfMapKeys returning list of elements which contains element which is not in the map.") + } + + closestConfidenceDistanceString := helpers.ConvertFloat64ToStringRounded(closestToEightyPercentageConfidenceDistance, 2) + + closestToEightyPercentageString := helpers.ConvertIntToString(closestToEightyPercentage) + + confidenceRangeLabelValueFormatted := "+/- " + closestConfidenceDistanceString + " (" + closestToEightyPercentageString + "% Confidence)" + + confidenceRangeLabel := getBoldLabel(confidenceRangeLabelValueFormatted) + + return confidenceRangeLabel, nil + } + + confidenceRangeLabel, err := getConfidenceRangeLabel() + if (err != nil) { return err } + + confidenceRangeLabelCentered := getWidgetCentered(confidenceRangeLabel) + + totalQuantityOfLoci := len(traitLociList) + + quantityOfLociKnownString := helpers.ConvertIntToString(quantityOfLociKnown) + totalQuantityOfLociString := helpers.ConvertIntToString(totalQuantityOfLoci) + + quantityOfLociKnownFormatted := quantityOfLociKnownString + "/" + totalQuantityOfLociString + + quantityOfLociKnownLabel := getBoldLabelCentered(quantityOfLociKnownFormatted) + + viewSampleOffspringsButton := widget.NewButtonWithIcon("", theme.InfoIcon(), func(){ + setViewNumericTraitSampleOffspringRiskScoresChart(window, traitName, sampleOffspringOutcomesList, quantityOfLociKnown, currentPage) + }) + + viewAnalysisDetailsButton := widget.NewButtonWithIcon("", theme.VisibilityIcon(), func(){ + //TODO + showUnderConstructionDialog(window) + }) + + viewGenomePairButtonsColumn.Add(viewGenomePairButton) + pairNameColumn.Add(genomePairNameLabel) + predictedOutcomeColumn.Add(predictedOutcomeLabelCentered) + predictionConfidenceRangeColumn.Add(confidenceRangeLabelCentered) + quantityOfLociKnownColumn.Add(quantityOfLociKnownLabel) + viewSampleOffspringButtonsColumn.Add(viewSampleOffspringsButton) + viewDetailsButtonsColumn.Add(viewAnalysisDetailsButton) + + viewGenomePairButtonsColumn.Add(widget.NewSeparator()) + pairNameColumn.Add(widget.NewSeparator()) + predictedOutcomeColumn.Add(widget.NewSeparator()) + predictionConfidenceRangeColumn.Add(widget.NewSeparator()) + quantityOfLociKnownColumn.Add(widget.NewSeparator()) + viewSampleOffspringButtonsColumn.Add(widget.NewSeparator()) + viewDetailsButtonsColumn.Add(widget.NewSeparator()) + + return nil + } + + err = addGenomePairRow("Pair 1", pair1Person1GenomeIdentifier, pair1Person2GenomeIdentifier) + if (err != nil) { + setErrorEncounteredPage(window, err, previousPage) + return + } + + if (secondGenomePairExists == true){ + err := addGenomePairRow("Pair 2", pair2Person1GenomeIdentifier, pair2Person2GenomeIdentifier) + if (err != nil) { + setErrorEncounteredPage(window, err, previousPage) + return + } + } + + predictedOutcomeHelpButton := widget.NewButtonWithIcon("", theme.QuestionIcon(), func(){ + //TODO + showUnderConstructionDialog(window) + }) + predictedOutcomeColumn.Add(predictedOutcomeHelpButton) + + confidenceRangeHelpButton := widget.NewButtonWithIcon("", theme.QuestionIcon(), func(){ + //TODO + showUnderConstructionDialog(window) + }) + + predictionConfidenceRangeColumn.Add(confidenceRangeHelpButton) + + quantityOfLociKnownHelpButton := widget.NewButtonWithIcon("", theme.QuestionIcon(), func(){ + //TODO + showUnderConstructionDialog(window) + }) + quantityOfLociKnownColumn.Add(quantityOfLociKnownHelpButton) + + genomesContainer := container.NewHBox(layout.NewSpacer(), viewGenomePairButtonsColumn, pairNameColumn, predictedOutcomeColumn, predictionConfidenceRangeColumn, quantityOfLociKnownColumn, viewSampleOffspringButtonsColumn, viewDetailsButtonsColumn, layout.NewSpacer()) + + page := container.NewVBox(title, backButton, widget.NewSeparator(), descriptionSection, widget.NewSeparator(), traitNameRow, widget.NewSeparator(), genomesContainer) + + setPageContent(page, window) +} + + +// This is a page that shows the user 100 sample offspring trait outcomes on a bar chart +// This helps users to visualize the standard deviation of their offspring's trait outcomes with this user +func setViewNumericTraitSampleOffspringRiskScoresChart(window fyne.Window, traitName string, sampleOffspringOutcomesList []float64, quantityOfLociKnown int, previousPage func()){ + + currentPage := func(){setViewNumericTraitSampleOffspringRiskScoresChart(window, traitName, sampleOffspringOutcomesList, quantityOfLociKnown, previousPage)} + + title := getPageTitleCentered("Viewing Sample Offspring Outcomes Chart") + + backButton := getBackButtonCentered(previousPage) + + description := widget.NewLabel("Below is a chart of 100 sample offspring trait outcomes for this disease.") + descriptionHelpButton := widget.NewButtonWithIcon("", theme.QuestionIcon(), func(){ + //TODO + showUnderConstructionDialog(window) + }) + descriptionRow := container.NewHBox(layout.NewSpacer(), description, descriptionHelpButton, layout.NewSpacer()) + + traitNameTitle := widget.NewLabel("Trait Name:") + traitNameLabel := getBoldLabel(traitName) + traitNameRow := container.NewHBox(layout.NewSpacer(), traitNameTitle, traitNameLabel, layout.NewSpacer()) + + if (len(sampleOffspringOutcomesList) == 0){ + description2 := getBoldLabelCentered("There is no offspring information available for this trait.") + description3 := getBoldLabelCentered("This is because there were no trait loci for which both prospective parents had information.") + + page := container.NewVBox(title, backButton, widget.NewSeparator(), descriptionRow, widget.NewSeparator(), traitNameRow, widget.NewSeparator(), description2, description3) + + setPageContent(page, window) + return + } + + traitObject, err := traits.GetTraitObject(traitName) + if (err != nil){ + setErrorEncounteredPage(window, err, previousPage) + return + } + + traitLociList := traitObject.LociList + + totalNumberOfLoci := len(traitLociList) + totalNumberOfLociString := helpers.ConvertIntToString(totalNumberOfLoci) + + numberOfLociKnownTitle := widget.NewLabel("Quantity Of Loci Known:") + numberOfLociKnownString := helpers.ConvertIntToString(quantityOfLociKnown) + numberOfLociKnownLabel := getBoldLabel(numberOfLociKnownString + "/" + totalNumberOfLociString) + + lociKnownHelpButton := widget.NewButtonWithIcon("", theme.QuestionIcon(), func(){ + //TODO + showUnderConstructionDialog(window) + }) + + quantityOfLociKnownRow := container.NewHBox(layout.NewSpacer(), numberOfLociKnownTitle, numberOfLociKnownLabel, lociKnownHelpButton, layout.NewSpacer()) + + getOffspringSampleOutcomesChartImage := func()(image.Image, error){ + + if (len(sampleOffspringOutcomesList) != 100){ + return nil, errors.New("setViewNumericTraitSampleOffspringRiskScoresChart called with offspringOutcomesList that is not 100 items in length.") + } + + // We sort the list in ascending order + slices.Sort(sampleOffspringOutcomesList) + + getOffspringStatisticsDatumsList := func()([]statisticsDatum.StatisticsDatum){ + + offspringStatisticsDatumsList := make([]statisticsDatum.StatisticsDatum, 0) + + smallestItem := sampleOffspringOutcomesList[0] + largestItem := sampleOffspringOutcomesList[99] + + if (smallestItem == largestItem){ + + // We can't split the values into groups + // Every offspring has the same value + + onlyValueString := helpers.ConvertFloat64ToStringRounded(smallestItem, 2) + + onlyValueFormatted := onlyValueString + " centimeters" + + newStatisticsDatum := statisticsDatum.StatisticsDatum{ + Label: onlyValueString, + LabelFormatted: onlyValueFormatted, + Value: float64(100), + ValueFormatted: "100", + } + + offspringStatisticsDatumsList = append(offspringStatisticsDatumsList, newStatisticsDatum) + + return offspringStatisticsDatumsList + } + + // We split all outcomes into ten groups + + sizeOfEachGroup := (largestItem-smallestItem)/10 + + index := float64(0) + + for { + + getGroupUpperBound := func()float64{ + + if (len(offspringStatisticsDatumsList) == 9){ + // We are adding the last datum + return largestItem + } + + groupUpperBound := index + sizeOfEachGroup + + return groupUpperBound + } + + groupUpperBound := getGroupUpperBound() + + offspringInGroupCount := 0 + + for _, outcomeValue := range sampleOffspringOutcomesList{ + + if (outcomeValue >= index && outcomeValue < groupUpperBound){ + offspringInGroupCount += 1 + } + } + + groupLowerBoundString := helpers.ConvertFloat64ToStringRounded(index, 1) + groupUpperBoundString := helpers.ConvertFloat64ToStringRounded(groupUpperBound, 1) + + groupDescription := groupLowerBoundString + "-" + groupUpperBoundString + " centimeters" + + offspringCountString := helpers.ConvertIntToString(offspringInGroupCount) + + newStatisticsDatum := statisticsDatum.StatisticsDatum{ + Label: groupDescription, + LabelFormatted: groupDescription, + Value: float64(offspringInGroupCount), + ValueFormatted: offspringCountString, + } + + offspringStatisticsDatumsList = append(offspringStatisticsDatumsList, newStatisticsDatum) + + if (len(offspringStatisticsDatumsList) == 10){ + break + } + + index += sizeOfEachGroup + } + + return offspringStatisticsDatumsList + } + + offspringStatisticsDatumsList := getOffspringStatisticsDatumsList() + + chartTitle := traitName + ": 100 Prospective Offspring Values" + + formatYAxisValuesFunction := func(inputTraitValue float64)(string, error){ + + result := helpers.ConvertFloat64ToStringRounded(inputTraitValue, 2) + + return result, nil + } + + offspringsChart, err := createCharts.CreateBarChart(chartTitle, offspringStatisticsDatumsList, formatYAxisValuesFunction, true, " Offspring") + if (err != nil) { return nil, err } + + return offspringsChart, nil + } + + offspringOutcomesChartImage, err := getOffspringSampleOutcomesChartImage() + if (err != nil){ + setErrorEncounteredPage(window, err, previousPage) + return + } + + viewChartFullscreenButton := getWidgetCentered(widget.NewButtonWithIcon("View Fullscreen", theme.ZoomInIcon(), func(){ + setViewFullpageImagePage(window, offspringOutcomesChartImage, currentPage) + })) + + pageHeader := container.NewVBox(title, backButton, widget.NewSeparator(), descriptionRow, widget.NewSeparator(), traitNameRow, widget.NewSeparator(), quantityOfLociKnownRow, widget.NewSeparator()) + + chartFyneImage := canvas.NewImageFromImage(offspringOutcomesChartImage) + chartFyneImage.FillMode = canvas.ImageFillContain + + page := container.NewBorder(pageHeader, viewChartFullscreenButton, nil, nil, chartFyneImage) + + setPageContent(page, window) +} + diff --git a/gui/viewAnalysisGui_Person.go b/gui/viewAnalysisGui_Person.go index d3f3fc5..cf1af7c 100644 --- a/gui/viewAnalysisGui_Person.go +++ b/gui/viewAnalysisGui_Person.go @@ -26,8 +26,10 @@ import "seekia/internal/genetics/myPeople" import "seekia/internal/genetics/readGeneticAnalysis" import "seekia/internal/helpers" +import "slices" import "errors" + func setViewPersonGeneticAnalysisPage(window fyne.Window, personIdentifier string, analysisObject geneticAnalysis.PersonAnalysis, numberOfGenomesAnalyzed int, previousPage func()){ appMemory.SetMemoryEntry("CurrentViewedPage", "ViewGeneticAnalysisPage") @@ -75,8 +77,7 @@ func setViewPersonGeneticAnalysisPage(window fyne.Window, personIdentifier strin setViewPersonGeneticAnalysisDiscreteTraitsPage(window, personIdentifier, analysisObject, currentPage) }) numericTraitsButton := widget.NewButton("Numeric Traits", func(){ - //TODO - showUnderConstructionDialog(window) + setViewPersonGeneticAnalysisNumericTraitsPage(window, personIdentifier, analysisObject, currentPage) }) categoryButtonsGrid := getContainerCentered(container.NewGridWithColumns(1, generalButton, monogenicDiseasesButton, polygenicDiseasesButton, discreteTraitsButton, numericTraitsButton)) @@ -2672,3 +2673,230 @@ func setViewPersonGeneticAnalysisDiscreteTraitRuleDetailsPage(window fyne.Window } +func setViewPersonGeneticAnalysisNumericTraitsPage(window fyne.Window, personIdentifier string, analysisObject geneticAnalysis.PersonAnalysis, previousPage func()){ + + currentPage := func(){setViewPersonGeneticAnalysisNumericTraitsPage(window, personIdentifier, analysisObject, previousPage)} + + title := getPageTitleCentered("Viewing Genetic Analysis - Numeric Traits") + + backButton := getBackButtonCentered(previousPage) + + description := getLabelCentered("Below is an analysis of the numeric traits for this person's genome.") + + getTraitsContainer := func()(*fyne.Container, error){ + + allRawGenomeIdentifiersList, multipleGenomesExist, onlyExcludeConflictsGenomeIdentifier, _, _, err := readGeneticAnalysis.GetMetadataFromPersonGeneticAnalysis(analysisObject) + if (err != nil){ return nil, err } + + // Outputs: + // -[16]byte: Main genome identifier (Is either the combined Only exclude conflicts genome or the only genome) + // -error + getMainGenomeIdentifier := func()([16]byte, error){ + + if (multipleGenomesExist == true){ + return onlyExcludeConflictsGenomeIdentifier, nil + } + // Only 1 genome exists + + genomeIdentifier := allRawGenomeIdentifiersList[0] + + return genomeIdentifier, nil + } + + mainGenomeIdentifier, err := getMainGenomeIdentifier() + if (err != nil){ return nil, err } + + emptyLabel1 := widget.NewLabel("") + traitNameLabel := getItalicLabelCentered("Trait Name") + + emptyLabel2 := widget.NewLabel("") + predictedOutcomeLabel := getItalicLabelCentered("Predicted Outcome") + + quantityOfLabel := getItalicLabelCentered("Quantity Of") + lociKnownLabel := getItalicLabelCentered("Loci Known") + + emptyLabel3 := widget.NewLabel("") + confidenceRangeLabel := getItalicLabelCentered("Confidence Range") + + emptyLabel4 := widget.NewLabel("") + conflictExistsLabel := getItalicLabelCentered("Conflict Exists?") + + emptyLabel5 := widget.NewLabel("") + emptyLabel6 := widget.NewLabel("") + + traitNameColumn := container.NewVBox(emptyLabel1, traitNameLabel, widget.NewSeparator()) + predictedOutcomeColumn := container.NewVBox(emptyLabel2, predictedOutcomeLabel, widget.NewSeparator()) + confidenceRangeColumn := container.NewVBox(emptyLabel3, confidenceRangeLabel, widget.NewSeparator()) + quantityOfLociKnownColumn := container.NewVBox(quantityOfLabel, lociKnownLabel, widget.NewSeparator()) + conflictExistsColumn := container.NewVBox(emptyLabel4, conflictExistsLabel, widget.NewSeparator()) + viewButtonsColumn := container.NewVBox(emptyLabel5, emptyLabel6, widget.NewSeparator()) + + traitObjectsList, err := traits.GetTraitObjectsList() + if (err != nil) { return nil, err } + + for _, traitObject := range traitObjectsList{ + + traitIsDiscreteOrNumeric := traitObject.DiscreteOrNumeric + if (traitIsDiscreteOrNumeric != "Numeric"){ + continue + } + + traitName := traitObject.TraitName + traitLociList := traitObject.LociList + + if (len(traitLociList) == 0){ + // This trait does not have any loci to analyze + // We cannot analyze it yet + continue + } + + traitNameText := getBoldLabelCentered(traitName) + + neuralNetworkExists, _ := geneticPredictionModels.GetGeneticPredictionModelBytes(traitName) + if (neuralNetworkExists == false){ + // This trait has no neural network + // We cannot analyze it + continue + } + + analysisExists, predictedOutcome, confidenceRangesMap, quantityOfLociKnown, _, conflictExists, err := readGeneticAnalysis.GetPersonNumericTraitInfoFromGeneticAnalysis(analysisObject, traitName, mainGenomeIdentifier) + if (err != nil) { return nil, err } + + getPredictionLabel := func()fyne.Widget{ + + if (analysisExists == false){ + result := getItalicLabel("Unknown") + return result + } + + predictedOutcomeString := helpers.ConvertFloat64ToStringRounded(predictedOutcome, 2) + + //TODO: Fix units + result := getBoldLabel(predictedOutcomeString + " centimeters") + + return result + } + + predictionLabel := getPredictionLabel() + + predictionLabelCentered := getWidgetCentered(predictionLabel) + + getConfidenceRangeLabel := func()(fyne.Widget, error){ + + if (analysisExists == false){ + unknownLabel := widget.NewLabel("Unknown") + return unknownLabel, nil + } + + // This is a list of the percentage accuracies in the map + // For example: 80% == The distance from the prediction you must travel for 80% of the predictions to be + // accurate within that range + confidenceRangePercentagesList := helpers.GetListOfMapKeys(confidenceRangesMap) + + // We sort the list so the percentage is always the same upon refreshing the page + slices.Sort(confidenceRangePercentagesList) + + closestToEightyPercentage, err := helpers.GetClosestIntInList(confidenceRangePercentagesList, 80) + if (err != nil) { return nil, err } + + closestToEightyPercentageConfidenceDistance, exists := confidenceRangesMap[closestToEightyPercentage] + if (exists == false){ + return nil, errors.New("GetListOfMapKeys returning list of elements which contains element which is not in the map.") + } + + closestConfidenceDistanceString := helpers.ConvertFloat64ToStringRounded(closestToEightyPercentageConfidenceDistance, 2) + + closestToEightyPercentageString := helpers.ConvertIntToString(closestToEightyPercentage) + + confidenceRangeLabelValueFormatted := "+/- " + closestConfidenceDistanceString + " (" + closestToEightyPercentageString + "% Confidence)" + + confidenceRangeLabel := getBoldLabel(confidenceRangeLabelValueFormatted) + + return confidenceRangeLabel, nil + } + + confidenceRangeLabel, err := getConfidenceRangeLabel() + if (err != nil) { return nil, err } + + confidenceRangeLabelCentered := getWidgetCentered(confidenceRangeLabel) + + totalQuantityOfLoci := len(traitLociList) + + quantityOfLociKnownString := helpers.ConvertIntToString(quantityOfLociKnown) + totalQuantityOfLociString := helpers.ConvertIntToString(totalQuantityOfLoci) + + quantityOfLociKnownFormatted := quantityOfLociKnownString + "/" + totalQuantityOfLociString + + quantityOfLociKnownLabel := getBoldLabelCentered(quantityOfLociKnownFormatted) + + conflictExistsString := helpers.ConvertBoolToYesOrNoString(conflictExists) + conflictExistsLabel := getBoldLabelCentered(conflictExistsString) + + viewDetailsButton := getWidgetCentered(widget.NewButtonWithIcon("", theme.VisibilityIcon(), func(){ + showUnderConstructionDialog(window) + //TODO + })) + + traitNameColumn.Add(traitNameText) + predictedOutcomeColumn.Add(predictionLabelCentered) + confidenceRangeColumn.Add(confidenceRangeLabelCentered) + quantityOfLociKnownColumn.Add(quantityOfLociKnownLabel) + conflictExistsColumn.Add(conflictExistsLabel) + viewButtonsColumn.Add(viewDetailsButton) + + traitNameColumn.Add(widget.NewSeparator()) + predictedOutcomeColumn.Add(widget.NewSeparator()) + confidenceRangeColumn.Add(widget.NewSeparator()) + quantityOfLociKnownColumn.Add(widget.NewSeparator()) + conflictExistsColumn.Add(widget.NewSeparator()) + viewButtonsColumn.Add(widget.NewSeparator()) + } + + predictedOutcomeHelpButton := widget.NewButtonWithIcon("", theme.QuestionIcon(), func(){ + //TODO + showUnderConstructionDialog(window) + }) + predictedOutcomeColumn.Add(predictedOutcomeHelpButton) + + confidenceRangeHelpButton := widget.NewButtonWithIcon("", theme.QuestionIcon(), func(){ + //TODO + showUnderConstructionDialog(window) + }) + confidenceRangeColumn.Add(confidenceRangeHelpButton) + + quantityOfLociKnownHelpButton := widget.NewButtonWithIcon("", theme.QuestionIcon(), func(){ + //TODO + showUnderConstructionDialog(window) + }) + quantityOfLociKnownColumn.Add(quantityOfLociKnownHelpButton) + + traitsContainer := container.NewHBox(layout.NewSpacer(), traitNameColumn, predictedOutcomeColumn, confidenceRangeColumn, quantityOfLociKnownColumn) + + if (multipleGenomesExist == true){ + + conflictExistsHelpButton := widget.NewButtonWithIcon("", theme.QuestionIcon(), func(){ + setPersonGeneticAnalysisConflictExistsExplainerPage(window, currentPage) + }) + + conflictExistsColumn.Add(conflictExistsHelpButton) + traitsContainer.Add(conflictExistsColumn) + } + + traitsContainer.Add(viewButtonsColumn) + traitsContainer.Add(layout.NewSpacer()) + + return traitsContainer, nil + } + + traitsContainer, err := getTraitsContainer() + if (err != nil){ + setErrorEncounteredPage(window, err, previousPage) + return + } + + page := container.NewVBox(title, backButton, widget.NewSeparator(), description, widget.NewSeparator(), traitsContainer) + + setPageContent(page, window) +} + + diff --git a/gui/viewProfileGui.go b/gui/viewProfileGui.go index 9175f07..849591c 100644 --- a/gui/viewProfileGui.go +++ b/gui/viewProfileGui.go @@ -3555,8 +3555,7 @@ func setViewMateProfilePage_GeneticTraits(window fyne.Window, getAnyUserProfileA }) numericTraitsButton := widget.NewButton("Numeric Traits", func(){ - //TODO - showUnderConstructionDialog(window) + setViewMateProfilePage_NumericGeneticTraits(window, "Offspring", getAnyUserProfileAttributeFunction, currentPage) }) buttonsGrid := getContainerCentered(container.NewGridWithColumns(1, discreteTraitsButton, numericTraitsButton)) @@ -4400,6 +4399,364 @@ func setViewMateProfilePage_DiscreteTraitRules(window fyne.Window, traitName str setPageContent(page, window) } + +func setViewMateProfilePage_NumericGeneticTraits(window fyne.Window, userOrOffspring string, getAnyUserProfileAttributeFunction func(string)(bool, int, string, error), previousPage func()){ + + if (userOrOffspring != "User" && userOrOffspring != "Offspring"){ + setErrorEncounteredPage(window, errors.New("setViewMateProfilePage_NumericGeneticTraits called with invalid userOrOffspring: " + userOrOffspring), previousPage) + return + } + + if (userOrOffspring == "Offspring"){ + setLoadingScreen(window, "View Profile - Physical", "Computing Genetic Analysis...") + } + + //currentPage := func(){setViewMateProfilePage_NumericGeneticTraits(window, userOrOffspring, getAnyUserProfileAttributeFunction, previousPage)} + + title := getPageTitleCentered(translate("View Profile - Physical")) + + backButton := getBackButtonCentered(previousPage) + + subtitle := getPageSubtitleCentered(translate("Numeric Genetic Traits")) + + description1 := getLabelCentered("Below is the numeric genetic trait analysis for this user.") + description2 := getLabelCentered("You can choose to view the analysis of the user or an offspring between you and the user.") + description3 := getLabelCentered("You must link your genome person in the Build Profile menu to see offspring information.") + + handleSelectButton := func(newUserOrOffspring string){ + if (userOrOffspring == newUserOrOffspring){ + return + } + setViewMateProfilePage_NumericGeneticTraits(window, newUserOrOffspring, getAnyUserProfileAttributeFunction, previousPage) + } + + userOrOffspringSelector := widget.NewSelect([]string{"User", "Offspring"}, handleSelectButton) + userOrOffspringSelector.Selected = userOrOffspring + + userOrOffspringSelectorCentered := getWidgetCentered(userOrOffspringSelector) + + getTraitsInfoGrid := func()(*fyne.Container, error){ + + myPersonChosen, myGenomesExist, myAnalysisIsReady, myAnalysisObject, myGenomeIdentifier, _, err := myChosenAnalysis.GetMyChosenMateGeneticAnalysis() + if (err != nil) { return nil, err } + + //Outputs: + // -map[int64]locusValue.LocusValue + // -error + getMyGenomeLocusValuesMap := func()(map[int64]locusValue.LocusValue, error){ + + if (myPersonChosen == false || myGenomesExist == false || myAnalysisIsReady == false){ + emptyMap := make(map[int64]locusValue.LocusValue) + return emptyMap, nil + } + + _, _, _, _, myGenomesMap, err := readGeneticAnalysis.GetMetadataFromPersonGeneticAnalysis(myAnalysisObject) + if (err != nil) { return nil, err } + + myGenomeLocusValuesMap, exists := myGenomesMap[myGenomeIdentifier] + if (exists == false){ + return nil, errors.New("GetMyChosenMateGeneticAnalysis returning analysis which is missing genome with myGenomeIdentifier.") + } + + return myGenomeLocusValuesMap, nil + } + + myGenomeLocusValuesMap, err := getMyGenomeLocusValuesMap() + if (err != nil) { return nil, err } + + + emptyLabel1 := widget.NewLabel("") + traitNameLabel := getItalicLabelCentered("Trait Name") + + emptyLabel2 := widget.NewLabel("") + userPredictedOutcomeTitle := getItalicLabelCentered("User Predicted Outcome") + + emptyLabel3 := widget.NewLabel("") + offspringPredictedOutcomeTitle := getItalicLabelCentered("Offspring Predicted Outcome") + + predictionTitle := getItalicLabelCentered("Prediction") + confidenceRangeTitle := getItalicLabelCentered("Confidence Range") + + quantityOfLabel1 := getItalicLabelCentered("Quantity Of") + lociKnownLabel := getItalicLabelCentered("Loci Known") + + emptyLabel4 := widget.NewLabel("") + emptyLabel5 := widget.NewLabel("") + + traitNameColumn := container.NewVBox(emptyLabel1, traitNameLabel, widget.NewSeparator()) + userPredictedOutcomeColumn := container.NewVBox(emptyLabel2, userPredictedOutcomeTitle, widget.NewSeparator()) + + offspringPredictedOutcomeColumn := container.NewVBox(emptyLabel3, offspringPredictedOutcomeTitle, widget.NewSeparator()) + + predictionConfidenceRangeColumn := container.NewVBox(predictionTitle, confidenceRangeTitle, widget.NewSeparator()) + quantityOfLociKnownColumn := container.NewVBox(quantityOfLabel1, lociKnownLabel, widget.NewSeparator()) + viewTraitDetailsButtonsColumn := container.NewVBox(emptyLabel4, emptyLabel5, widget.NewSeparator()) + + traitObjectsList, err := traits.GetTraitObjectsList() + if (err != nil) { return nil, err } + + for _, traitObject := range traitObjectsList{ + + traitName := traitObject.TraitName + traitIsDiscreteOrNumeric := traitObject.DiscreteOrNumeric + if (traitIsDiscreteOrNumeric != "Numeric"){ + continue + } + + traitLociList := traitObject.LociList + + numberOfTraitLoci := len(traitLociList) + + if (numberOfTraitLoci == 0){ + // We are not able to analyze these traits + continue + } + + traitNeuralNetworkExists, _ := geneticPredictionModels.GetGeneticPredictionModelBytes(traitName) + if (traitNeuralNetworkExists == false){ + // We are not able to analyze these traits yet + continue + } + + traitNameText := getBoldLabelCentered(translate(traitName)) + + // We construct the user's trait locus values map + // Map Structure: Locus rsID -> locusValue.LocusValue + userTraitLocusValuesMap := make(map[int64]locusValue.LocusValue) + + for _, rsID := range traitLociList{ + + rsIDString := helpers.ConvertInt64ToString(rsID) + + userLocusValueAttributeName := "LocusValue_rs" + rsIDString + + userLocusValueIsKnown, _, userLocusValue, err := getAnyUserProfileAttributeFunction(userLocusValueAttributeName) + if (err != nil) { return nil, err } + if (userLocusValueIsKnown == false){ + continue + } + + userLocusBase1, userLocusBase2, semicolonFound := strings.Cut(userLocusValue, ";") + if (semicolonFound == false){ + return nil, errors.New("Database corrupt: Contains profile with invalid " + userLocusValueAttributeName + " value: " + userLocusValue) + } + + userLocusIsPhasedAttributeName := "LocusIsPhased_rs" + rsIDString + + userLocusIsPhasedExists, _, userLocusIsPhasedString, err := getAnyUserProfileAttributeFunction(userLocusIsPhasedAttributeName) + if (err != nil) { return nil, err } + if (userLocusIsPhasedExists == false){ + return nil, errors.New("Database corrupt: Contains profile with locusValue but not locusIsPhased status for locus: " + rsIDString) + } + + userLocusIsPhased, err := helpers.ConvertYesOrNoStringToBool(userLocusIsPhasedString) + if (err != nil) { return nil, err } + + userLocusValueObject := locusValue.LocusValue{ + Base1Value: userLocusBase1, + Base2Value: userLocusBase2, + LocusIsPhased: userLocusIsPhased, + } + + userTraitLocusValuesMap[rsID] = userLocusValueObject + } + + //Outputs: + // -bool: Analysis results exist + // -float64: Predicted outcome + // -map[int]float64: Prediction confidence ranges map + // -int: Quantity of known loci + // -error + getAnalysisResults := func()(bool, float64, map[int]float64, int, error){ + + if (userOrOffspring == "User"){ + + traitNeuralNetworkExists, anyLocusValuesAreKnown, predictedOutcome, predictionAccuracyRangesMap, quantityOfLociKnown, _, err := createPersonGeneticAnalysis.GetGenomeNumericTraitAnalysis(traitObject, userTraitLocusValuesMap, true) + if (err != nil) { return false, 0, nil, 0, err } + if (traitNeuralNetworkExists == false){ + return false, 0, nil, 0, errors.New("GetGenomeNumericTraitAnalysis claims neural network doesn't exist for trait, but we already checked.") + } + + return anyLocusValuesAreKnown, predictedOutcome, predictionAccuracyRangesMap, quantityOfLociKnown, nil + } else { + + // userOrOffspring == "Offspring" + + neuralNetworkExists, anyLociKnown, predictedOutcome, predictionAccuracyRangesMap, _, quantityOfLociKnown, _, err := createCoupleGeneticAnalysis.GetOffspringNumericTraitInfo(traitObject, userTraitLocusValuesMap, myGenomeLocusValuesMap) + if (err != nil) { return false, 0, nil, 0, err } + if (neuralNetworkExists == false){ + return false, 0, nil, 0, errors.New("GetOffspringTraitInfo_NeuralNetwork claiming that neural network doesn't exist when we already checked.") + } + + return anyLociKnown, predictedOutcome, predictionAccuracyRangesMap, quantityOfLociKnown, nil + } + } + + analysisExists, predictedOutcome, predictionConfidenceRangesMap, quantityOfLociKnown, err := getAnalysisResults() + if (err != nil) { return nil, err } + + getPredictedOutcomeLabel := func()fyne.Widget{ + + if (analysisExists == false){ + unknownLabel := widget.NewLabel("Unknown") + return unknownLabel + } + + predictedOutcomeString := helpers.ConvertFloat64ToStringRounded(predictedOutcome, 2) + + //TODO: Retrieve units from traits package + predictedOutcomeFormatted := predictedOutcomeString + " centimeters" + + predictedOutcomeLabel := getBoldLabel(predictedOutcomeFormatted) + + return predictedOutcomeLabel + } + + predictedOutcomeLabel := getPredictedOutcomeLabel() + + predictedOutcomeLabelCentered := getWidgetCentered(predictedOutcomeLabel) + + getConfidenceRangeLabel := func()(fyne.Widget, error){ + if (analysisExists == false){ + + result := widget.NewLabel("Unknown") + return result, nil + } + + // This is a list of the percentage accuracies in the map + // For example: 80% == The distance from the prediction you must travel for 80% of the predictions to be + // accurate within that range + confidenceRangePercentagesList := helpers.GetListOfMapKeys(predictionConfidenceRangesMap) + + // We sort the list so the percentage is always the same upon refreshing the page + slices.Sort(confidenceRangePercentagesList) + + closestToEightyPercentage, err := helpers.GetClosestIntInList(confidenceRangePercentagesList, 80) + if (err != nil) { return nil, err } + + closestToEightyPercentageConfidenceDistance, exists := predictionConfidenceRangesMap[closestToEightyPercentage] + if (exists == false){ + return nil, errors.New("GetListOfMapKeys returning list of elements which contains element which is not in the map.") + } + + closestConfidenceDistanceString := helpers.ConvertFloat64ToStringRounded(closestToEightyPercentageConfidenceDistance, 2) + + closestToEightyPercentageString := helpers.ConvertIntToString(closestToEightyPercentage) + + confidenceRangeLabelValueFormatted := "+/- " + closestConfidenceDistanceString + " (" + closestToEightyPercentageString + "% Confidence)" + + confidenceRangeLabel := getBoldLabel(confidenceRangeLabelValueFormatted) + + return confidenceRangeLabel, nil + } + + confidenceRangeLabel, err := getConfidenceRangeLabel() + if (err != nil) { return nil, err } + + confidenceRangeLabelCentered := getWidgetCentered(confidenceRangeLabel) + + totalNumberOfLociString := helpers.ConvertIntToString(numberOfTraitLoci) + + quantityOfLociKnownString := helpers.ConvertIntToString(quantityOfLociKnown) + + quantityOfLociKnownFormatted := quantityOfLociKnownString + "/" + totalNumberOfLociString + + quantityOfLociKnownLabel := getBoldLabelCentered(quantityOfLociKnownFormatted) + + viewTraitDetailsButton := widget.NewButtonWithIcon("", theme.VisibilityIcon(), func(){ + //TODO + showUnderConstructionDialog(window) + }) + + traitNameColumn.Add(traitNameText) + + if (userOrOffspring == "User"){ + userPredictedOutcomeColumn.Add(predictedOutcomeLabelCentered) + } else { + offspringPredictedOutcomeColumn.Add(predictedOutcomeLabelCentered) + } + + predictionConfidenceRangeColumn.Add(confidenceRangeLabelCentered) + quantityOfLociKnownColumn.Add(quantityOfLociKnownLabel) + viewTraitDetailsButtonsColumn.Add(viewTraitDetailsButton) + + traitNameColumn.Add(widget.NewSeparator()) + userPredictedOutcomeColumn.Add(widget.NewSeparator()) + offspringPredictedOutcomeColumn.Add(widget.NewSeparator()) + predictionConfidenceRangeColumn.Add(widget.NewSeparator()) + quantityOfLociKnownColumn.Add(widget.NewSeparator()) + viewTraitDetailsButtonsColumn.Add(widget.NewSeparator()) + } + + if (userOrOffspring == "User"){ + + predictedOutcomeHelpButton := widget.NewButtonWithIcon("", theme.QuestionIcon(), func(){ + + //TODO + showUnderConstructionDialog(window) + }) + + userPredictedOutcomeColumn.Add(predictedOutcomeHelpButton) + + } else { + // userOrOffspring == "Offspring" + + predictedOutcomeHelpButton := widget.NewButtonWithIcon("", theme.QuestionIcon(), func(){ + + //TODO + showUnderConstructionDialog(window) + }) + + offspringPredictedOutcomeColumn.Add(predictedOutcomeHelpButton) + } + + predictionConfidenceRangeHelpButton := widget.NewButtonWithIcon("", theme.QuestionIcon(), func(){ + + //TODO + showUnderConstructionDialog(window) + }) + + predictionConfidenceRangeColumn.Add(predictionConfidenceRangeHelpButton) + + quantityOfLociKnownHelpButton := widget.NewButtonWithIcon("", theme.QuestionIcon(), func(){ + //TODO + showUnderConstructionDialog(window) + }) + + quantityOfLociKnownColumn.Add(quantityOfLociKnownHelpButton) + + traitsInfoGrid := container.NewHBox(layout.NewSpacer(), traitNameColumn) + + if (userOrOffspring == "User"){ + + traitsInfoGrid.Add(userPredictedOutcomeColumn) + + } else { + + // userOrOffspring == "Offspring" + + traitsInfoGrid.Add(offspringPredictedOutcomeColumn) + } + + traitsInfoGrid.Add(predictionConfidenceRangeColumn) + traitsInfoGrid.Add(quantityOfLociKnownColumn) + traitsInfoGrid.Add(viewTraitDetailsButtonsColumn) + traitsInfoGrid.Add(layout.NewSpacer()) + + return traitsInfoGrid, nil + } + + traitsInfoGrid, err := getTraitsInfoGrid() + if (err != nil){ + setErrorEncounteredPage(window, err, previousPage) + return + } + + page := container.NewVBox(title, backButton, widget.NewSeparator(), subtitle, widget.NewSeparator(), description1, description2, description3, widget.NewSeparator(), userOrOffspringSelectorCentered, widget.NewSeparator(), traitsInfoGrid) + + setPageContent(page, window) +} + func setViewMateProfilePage_Diet(window fyne.Window, getAnyUserProfileAttributeFunction func(string)(bool, int, string, error), previousPage func()){ title := getPageTitleCentered(translate("View Profile - Lifestyle")) diff --git a/internal/genetics/createCoupleGeneticAnalysis/createCoupleGeneticAnalysis.go b/internal/genetics/createCoupleGeneticAnalysis/createCoupleGeneticAnalysis.go index 77aa75d..7dfbd75 100644 --- a/internal/genetics/createCoupleGeneticAnalysis/createCoupleGeneticAnalysis.go +++ b/internal/genetics/createCoupleGeneticAnalysis/createCoupleGeneticAnalysis.go @@ -41,7 +41,7 @@ func CreateCoupleGeneticAnalysis(person1GenomesList []prepareRawGenomes.RawGenom person1PrepareRawGenomesUpdatePercentageCompleteFunction := func(newPercentage int)error{ newPercentageCompletion, err := helpers.ScaleIntProportionally(true, newPercentage, 0, 100, 0, 25) - if (err != nil){ return err } + if (err != nil) { return err } err = updatePercentageCompleteFunction(newPercentageCompletion) if (err != nil) { return err } @@ -742,6 +742,104 @@ func CreateCoupleGeneticAnalysis(person1GenomesList []prepareRawGenomes.RawGenom } offspringDiscreteTraitsMap[traitName] = newOffspringTraitInfoObject + + } else { + + // traitIsDiscreteOrNumeric == "Numeric" + + // This map stores the trait info for each genome pair + // Map Structure: Genome Pair Identifier -> OffspringGenomePairNumericTraitInfo + offspringTraitInfoMap := make(map[[32]byte]geneticAnalysis.OffspringGenomePairNumericTraitInfo) + + // This will add the offspring trait information for the provided genome pair to the offspringTraitInfoMap + addGenomePairTraitInfoToOffspringMap := func(person1GenomeIdentifier [16]byte, person2GenomeIdentifier [16]byte)error{ + + person1LocusValuesMap, exists := person1GenomesMap[person1GenomeIdentifier] + if (exists == false){ + return errors.New("addGenomePairTraitInfoToOffspringMap called with unknown person1GenomeIdentifier.") + } + + person2LocusValuesMap, exists := person2GenomesMap[person2GenomeIdentifier] + if (exists == false){ + return errors.New("addGenomePairTraitInfoToOffspringMap called with unknown person2GenomeIdentifier.") + } + + neuralNetworkExists, neuralNetworkAnalysisExists, averageOutcome, predictionConfidenceRangesMap, sampleOffspringOutcomesList, quantityOfLociTested, quantityOfParentalPhasedLoci, err := GetOffspringNumericTraitInfo(traitObject, person1LocusValuesMap, person2LocusValuesMap) + if (err != nil) { return err } + if (neuralNetworkExists == false){ + // Predictions are not possible for this trait + return nil + } + if (neuralNetworkAnalysisExists == false){ + // No locations for this trait exists in which both user's genomes contain information + return nil + } + + newOffspringGenomePairTraitInfo := geneticAnalysis.OffspringGenomePairNumericTraitInfo{ + OffspringAverageOutcome: averageOutcome, + PredictionConfidenceRangesMap: predictionConfidenceRangesMap, + QuantityOfParentalPhasedLoci: quantityOfParentalPhasedLoci, + QuantityOfLociKnown: quantityOfLociTested, + SampleOffspringOutcomesList: sampleOffspringOutcomesList, + } + + genomePairIdentifier := helpers.JoinTwo16ByteArrays(person1GenomeIdentifier, person2GenomeIdentifier) + + offspringTraitInfoMap[genomePairIdentifier] = newOffspringGenomePairTraitInfo + + return nil + } + + err = addGenomePairTraitInfoToOffspringMap(pair1Person1GenomeIdentifier, pair1Person2GenomeIdentifier) + if (err != nil) { return false, "", err } + + if (genomePair2Exists == true){ + + err := addGenomePairTraitInfoToOffspringMap(pair2Person1GenomeIdentifier, pair2Person2GenomeIdentifier) + if (err != nil) { return false, "", err } + } + + newOffspringTraitInfoObject := geneticAnalysis.OffspringNumericTraitInfo{ + TraitInfoMap: offspringTraitInfoMap, + } + + if (len(offspringTraitInfoMap) >= 2){ + + // We check for conflicts + // Conflicts are only possible if two genome pairs exist with information about the trait + + checkIfConflictExists := func()(bool, error){ + + // We check for conflicts between each genome pair's outcome scores and trait rules maps + + genomePairTraitInfoObject := geneticAnalysis.OffspringGenomePairNumericTraitInfo{} + + firstItemReached := false + + for _, currentGenomePairTraitInfoObject := range offspringTraitInfoMap{ + + if (firstItemReached == false){ + genomePairTraitInfoObject = currentGenomePairTraitInfoObject + firstItemReached = true + continue + } + + areEqual := reflect.DeepEqual(genomePairTraitInfoObject, currentGenomePairTraitInfoObject) + if (areEqual == false){ + return true, nil + } + } + + return false, nil + } + + conflictExists, err := checkIfConflictExists() + if (err != nil) { return false, "", err } + + newOffspringTraitInfoObject.ConflictExists = conflictExists + } + + offspringNumericTraitsMap[traitName] = newOffspringTraitInfoObject } } @@ -1323,6 +1421,110 @@ func GetOffspringDiscreteTraitInfo_Rules(traitObject traits.Trait, person1LocusV } + +//Outputs: +// -bool: A neural network exists for this trait +// -bool: Analysis exists (at least 1 locus exists for this analysis from both people's genomes +// -float64: Average outcome for offspring +// -map[int]float64: Prediction accuracy ranges map +// -Map Structure: Probability prediction is accurate (X) -> Distance from predictoin that must be travelled in both directions to +// create a range in which the true value will fall into, X% of the time +// -[]float64: A list of 100 offspring outcomes +// -int: Quantity of loci known +// -int: Quantity of parental phased loci +// -error +func GetOffspringNumericTraitInfo(traitObject traits.Trait, person1LocusValuesMap map[int64]locusValue.LocusValue, person2LocusValuesMap map[int64]locusValue.LocusValue)(bool, bool, float64, map[int]float64, []float64, int, int, error){ + + traitName := traitObject.TraitName + + traitIsDiscreteOrNumeric := traitObject.DiscreteOrNumeric + if (traitIsDiscreteOrNumeric != "Numeric"){ + return false, false, 0, nil, nil, 0, 0, errors.New("GetOffspringNumericTraitInfo called with non-numeric trait.") + } + + modelExists, _ := geneticPredictionModels.GetGeneticPredictionModelBytes(traitName) + if (modelExists == false){ + // Prediction is not possible for this trait + return false, false, 0, nil, nil, 0, 0, nil + } + + traitLociList := traitObject.LociList + + // First we count up the quantity of parental phased loci + // We only count the quantity of phased loci for loci which are known for both parents + + quantityOfParentalPhasedLoci := 0 + + for _, rsID := range traitLociList{ + + person1LocusValue, exists := person1LocusValuesMap[rsID] + if (exists == false){ + continue + } + + person2LocusValue, exists := person2LocusValuesMap[rsID] + if (exists == false){ + continue + } + + person1LocusIsPhased := person1LocusValue.LocusIsPhased + if (person1LocusIsPhased == true){ + quantityOfParentalPhasedLoci += 1 + } + + person2LocusIsPhased := person2LocusValue.LocusIsPhased + if (person2LocusIsPhased == true){ + quantityOfParentalPhasedLoci += 1 + } + } + + // Next, we create 100 prospective offspring genomes. + + anyLocusValueExists, prospectiveOffspringGenomesList, err := getProspectiveOffspringGenomesList(traitLociList, person1LocusValuesMap, person2LocusValuesMap) + if (err != nil) { return false, false, 0, nil, nil, 0, 0, err } + if (anyLocusValueExists == false){ + return true, false, 0, nil, nil, 0, 0, nil + } + + // A list of predicted outcomes for each offspring + predictedOutcomesList := make([]float64, 0) + + accuracyRangesMap := make(map[int]float64) + quantityOfLociTested := 0 + + for index, offspringGenomeMap := range prospectiveOffspringGenomesList{ + + neuralNetworkExists, predictionIsKnown, predictedOutcome, predictionAccuracyRangesMap, currentQuantityOfLociTested, _, err := createPersonGeneticAnalysis.GetGenomeNumericTraitAnalysis(traitObject, offspringGenomeMap, false) + if (err != nil){ return false, false, 0, nil, nil, 0, 0, err } + if (neuralNetworkExists == false){ + return false, false, 0, nil, nil, 0, 0, errors.New("GetGenomeNumericTraitAnalysis claiming that neural network doesn't exist when we already checked.") + } + if (predictionIsKnown == false){ + return false, false, 0, nil, nil, 0, 0, errors.New("GetGenomeNumericTraitAnalysis claiming that prediction is impossible when we already know at least 1 locus value exists for trait.") + } + + predictedOutcomesList = append(predictedOutcomesList, predictedOutcome) + + if (index == 0){ + // These values should be the same for each predicted offspring + accuracyRangesMap = predictionAccuracyRangesMap + quantityOfLociTested = currentQuantityOfLociTested + } + } + + // We calculate the average predicted outcome + + outcomesSum := float64(0) + + for _, predictedOutcome := range predictedOutcomesList{ + outcomesSum += predictedOutcome + } + + averageOutcome := outcomesSum/100 + + return true, true, averageOutcome, accuracyRangesMap, predictedOutcomesList, quantityOfLociTested, quantityOfParentalPhasedLoci, nil +} + // This function will return a list of 100 prospective offspring genomes // Each genome represents an equal-probability offspring genome from both people's genomes // This function takes into account the effects of genetic linkage diff --git a/internal/genetics/createPersonGeneticAnalysis/createPersonGeneticAnalysis.go b/internal/genetics/createPersonGeneticAnalysis/createPersonGeneticAnalysis.go index e56f753..43cf8fd 100644 --- a/internal/genetics/createPersonGeneticAnalysis/createPersonGeneticAnalysis.go +++ b/internal/genetics/createPersonGeneticAnalysis/createPersonGeneticAnalysis.go @@ -150,6 +150,14 @@ func CreatePersonGeneticAnalysis(genomesList []prepareRawGenomes.RawGenomeWithMe if (err != nil) { return false, "", err } analysisDiscreteTraitsMap[traitName] = personTraitAnalysisObject + } else { + + //traitIsDiscreteOrNumeric == "Numeric" + + personTraitAnalysisObject, err := GetPersonNumericTraitAnalysis(genomesWithMetadataList, traitObject) + if (err != nil) { return false, "", err } + + analysisNumericTraitsMap[traitName] = personTraitAnalysisObject } } @@ -993,6 +1001,79 @@ func GetPersonDiscreteTraitAnalysis(inputGenomesWithMetadataList []prepareRawGen } +//Outputs: +// -geneticAnalysis.PersonNumericTraitInfo: Trait analysis object +// -error +func GetPersonNumericTraitAnalysis(inputGenomesWithMetadataList []prepareRawGenomes.GenomeWithMetadata, traitObject traits.Trait)(geneticAnalysis.PersonNumericTraitInfo, error){ + + // Map Structure: Genome Identifier -> PersonGenomeNumericTraitInfo + newPersonTraitInfoMap := make(map[[16]byte]geneticAnalysis.PersonGenomeNumericTraitInfo) + + for _, genomeWithMetadataObject := range inputGenomesWithMetadataList{ + + genomeIdentifier := genomeWithMetadataObject.GenomeIdentifier + genomeMap := genomeWithMetadataObject.GenomeMap + + neuralNetworkExists, neuralNetworkOutcomeIsKnown, predictedOutcome, predictionConfidenceRangesMap, quantityOfLociKnown, quantityOfPhasedLoci, err := GetGenomeNumericTraitAnalysis(traitObject, genomeMap, true) + if (err != nil) { return geneticAnalysis.PersonNumericTraitInfo{}, err } + if (neuralNetworkExists == false || neuralNetworkOutcomeIsKnown == false){ + continue + } + + newPersonGenomeTraitInfo := geneticAnalysis.PersonGenomeNumericTraitInfo{ + PredictedOutcome: predictedOutcome, + ConfidenceRangesMap: predictionConfidenceRangesMap, + QuantityOfLociKnown: quantityOfLociKnown, + QuantityOfPhasedLoci: quantityOfPhasedLoci, + } + + newPersonTraitInfoMap[genomeIdentifier] = newPersonGenomeTraitInfo + } + + newPersonTraitInfoObject := geneticAnalysis.PersonNumericTraitInfo{ + TraitInfoMap: newPersonTraitInfoMap, + } + + if (len(newPersonTraitInfoMap) <= 1){ + // We do not need to check for conflicts, there is only <=1 genome with trait information + // Nothing left to do. Analysis is complete. + return newPersonTraitInfoObject, nil + } + + // We check for conflicts + + getConflictExistsBool := func()(bool, error){ + + // We check to see if the analysis results are the same for all genomes + + firstItemReached := false + personGenomeTraitInfoObject := geneticAnalysis.PersonGenomeNumericTraitInfo{} + + for _, genomeTraitInfoObject := range newPersonTraitInfoMap{ + + if (firstItemReached == false){ + personGenomeTraitInfoObject = genomeTraitInfoObject + continue + } + + areEqual := reflect.DeepEqual(personGenomeTraitInfoObject, genomeTraitInfoObject) + if (areEqual == false){ + return true, nil + } + } + + return false, nil + } + + conflictExists, err := getConflictExistsBool() + if (err != nil) { return geneticAnalysis.PersonNumericTraitInfo{}, err } + + newPersonTraitInfoObject.ConflictExists = conflictExists + + return newPersonTraitInfoObject, nil +} + + //Outputs: // -int: Base pair disease locus risk weight // -bool: Base pair disease locus odds ratio known @@ -1021,7 +1102,7 @@ func GetGenomePolygenicDiseaseLocusRiskInfo(locusRiskWeightsMap map[string]int, return riskWeight, true, oddsRatio, nil } -// We use this to generate trait predictions using a neural network +// We use this to generate discrete trait predictions using a neural network // The alternative prediction method is to use Rules (see GetGenomeTraitAnalysis_Rules) //Outputs: // -bool: Trait Neural network analysis available (if false, we can't predict this trait using a neural network) @@ -1263,6 +1344,65 @@ func GetGenomePassesDiscreteTraitRuleStatus(ruleLociList []traits.RuleLocus, gen } +// We use this to generate numeric trait predictions using a neural network +//Outputs: +// -bool: Trait Neural network analysis available (if false, we can't predict this trait using a neural network) +// -bool: Neural network outcome is known (at least 1 locus value is known which is needed for the neural network +// -float64: The predicted value (Example: Height in centimeters) +// -map[int]float64: Accuracy ranges map +// -Map Structure: Probability prediction is accurate (X) -> Distance from predictoin that must be travelled in both directions to +// create a range in which the true value will fall into, X% of the time +// -int: Quantity of loci known +// -int: Quantity of phased loci +// -error +func GetGenomeNumericTraitAnalysis(traitObject traits.Trait, genomeMap map[int64]locusValue.LocusValue, checkForAliases bool)(bool, bool, float64, map[int]float64, int, int, error){ + + getGenomeLocusValuesMap := func()(map[int64]locusValue.LocusValue, error){ + + if (checkForAliases == false){ + // We don't need to check for rsID aliases. + return genomeMap, nil + } + + traitLociList := traitObject.LociList + + // This map contains the locus values for the genome + // If a locus's entry doesn't exist, its value is unknown + // Map Structure: Locus rsID -> Locus Value + genomeLocusValuesMap := make(map[int64]locusValue.LocusValue) + + for _, locusRSID := range traitLociList{ + + locusBasePairKnown, _, _, _, locusValueObject, err := GetLocusValueFromGenomeMap(checkForAliases, genomeMap, locusRSID) + if (err != nil) { return nil, err } + if (locusBasePairKnown == false){ + continue + } + + genomeLocusValuesMap[locusRSID] = locusValueObject + } + + return genomeLocusValuesMap, nil + } + + genomeLocusValuesMap, err := getGenomeLocusValuesMap() + if (err != nil) { return false, false, 0, nil, 0, 0, err } + + traitName := traitObject.TraitName + + neuralNetworkModelExists, traitPredictionIsPossible, predictedOutcome, predictionAccuracyRangesMap, quantityOfLociKnown, quantityOfPhasedLoci, err := geneticPrediction.GetNeuralNetworkNumericTraitPredictionFromGenomeMap(traitName, genomeLocusValuesMap) + if (err != nil) { return false, false, 0, nil, 0, 0, err } + if (neuralNetworkModelExists == false){ + return false, false, 0, nil, 0, 0, nil + } + if (traitPredictionIsPossible == false){ + return true, false, 0, nil, 0, 0, nil + } + + return true, true, predictedOutcome, predictionAccuracyRangesMap, quantityOfLociKnown, quantityOfPhasedLoci, nil +} + + // This function will retrieve the base pair of the locus from the input genome map // We use this function because each rsID has aliases, so we must sometimes check those aliases to find locus values // diff --git a/internal/genetics/geneticAnalysis/geneticAnalysis.go b/internal/genetics/geneticAnalysis/geneticAnalysis.go index 26f4969..9677c8e 100644 --- a/internal/genetics/geneticAnalysis/geneticAnalysis.go +++ b/internal/genetics/geneticAnalysis/geneticAnalysis.go @@ -469,15 +469,15 @@ type OffspringGenomePairNumericTraitInfo struct{ // predicted value's range to be accurate, X% of the time? // For example: 50% accuracy requires a +/-5 point range, 80% accuracy requires a +-15 point range // Map Structure: Accuracy probability (0-100) -> Amount to add to value in both +/- directions so prediction is that accurate - AverageConfidenceRangesMap map[int]float64 + PredictionConfidenceRangesMap map[int]float64 + + QuantityOfLociKnown int // This describes the quantity of loci from both parents that are phased // For example, if there are 10 loci for this trait, and one parent has 10 phased loci and the other has 5, // this variable will have a value of 15 QuantityOfParentalPhasedLoci int - QuantityOfLociKnown int - // A list of 100 offspring outcomes for 100 prospective offspring from the genome pair // Example: A list of heights for 100 prospective offspring SampleOffspringOutcomesList []float64 diff --git a/internal/genetics/geneticPrediction/geneticPrediction.go b/internal/genetics/geneticPrediction/geneticPrediction.go index 94a4941..720b2d1 100644 --- a/internal/genetics/geneticPrediction/geneticPrediction.go +++ b/internal/genetics/geneticPrediction/geneticPrediction.go @@ -4,7 +4,7 @@ package geneticPrediction -// I am a neophyte in the ways of neural networks. +// I am a novice in the ways of neural networks. // Machine learning experts should chime in and offer improvements. // We have to make sure that model inference remains very fast // Sorting matches by offspring total polygenic disease score will require inference on dozens of models for each match @@ -27,7 +27,6 @@ import "encoding/gob" import "slices" import "errors" -//import "log" type NeuralNetwork struct{ @@ -283,13 +282,9 @@ func DecodeBytesToDiscreteTraitPredictionAccuracyInfoMap(inputBytes []byte)(Disc return newDiscreteTraitPredictionAccuracyInfoMap, nil } -type NumericTraitPredictionAccuracyInfoMap map[NumericTraitOutcomeInfo]NumericTraitPredictionAccuracyRangesMap +type NumericTraitPredictionAccuracyInfoMap map[NumericTraitPredictionInfo]NumericTraitPredictionAccuracyRangesMap -type NumericTraitOutcomeInfo struct{ - - // This is the outcome which was predicted - // Example: 150 centimeters - OutcomeValue float64 +type NumericTraitPredictionInfo struct{ // This is a value between 0-100 which describes the percentage of the loci which were tested for the input for the prediction PercentageOfLociTested int @@ -377,54 +372,8 @@ func GetNeuralNetworkDiscreteTraitPredictionFromGenomeMap(traitName string, geno traitRSIDsListCopy := slices.Clone(traitRSIDsList) slices.Sort(traitRSIDsListCopy) - // In the inputLayer, each locus value is represented by 3 neurons: - // 1. LocusExists/LocusIsPhased - // -0 = Locus value is unknown - // -0.5 = Locus Is known, phase is unknown - // -1 = Locus Is Known, phase is known - // 2. Allele1 Locus Value (Value between 0-1) - // -0 = Value is unknown - // 3. Allele2 Locus Value (Value between 0-1) - // -0 = Value is unknown - // - neuralNetworkInput := make([]float32, 0) - - quantityOfLociKnown := 0 - quantityOfPhasedLoci := 0 - - for _, rsID := range traitRSIDsListCopy{ - - userLocusValue, exists := genomeMap[rsID] - if (exists == false){ - neuralNetworkInput = append(neuralNetworkInput, 0, 0, 0) - continue - } - - quantityOfLociKnown += 1 - - locusAllele1 := userLocusValue.Base1Value - locusAllele2 := userLocusValue.Base2Value - locusIsPhased := userLocusValue.LocusIsPhased - - getNeuron1 := func()float32{ - if (locusIsPhased == false){ - return 0.5 - } - - quantityOfPhasedLoci += 1 - return 1 - } - - neuron1 := getNeuron1() - - neuron2, err := convertAlleleToNeuron(locusAllele1) - if (err != nil) { return false, false, "", 0, 0, 0, err } - - neuron3, err := convertAlleleToNeuron(locusAllele2) - if (err != nil) { return false, false, "", 0, 0, 0, err } - - neuralNetworkInput = append(neuralNetworkInput, neuron1, neuron2, neuron3) - } + neuralNetworkInput, quantityOfLociKnown, quantityOfPhasedLoci, err := createInputNeuralNetworkLayerFromGenomeMap(traitRSIDsListCopy, genomeMap) + if (err != nil) { return false, false, "", 0, 0, 0, err } if (quantityOfLociKnown == 0){ // We can't predict anything about this trait for this genome @@ -522,6 +471,179 @@ func GetNeuralNetworkDiscreteTraitPredictionFromGenomeMap(traitName string, geno return true, true, predictedOutcomeName, predictionAccuracy, quantityOfLociKnown, quantityOfPhasedLoci, nil } +//Outputs: +// -bool: Neural network model exists for this trait (trait prediction is possible for this trait) +// -bool: Trait prediction is possible for this user (User has at least 1 known trait locus value) +// -float64: Predicted trait outcome (Example: Height in centimeters) +// -map[int]float64: Accuracy ranges map +// -Map Structure: Probability prediction is accurate (X) -> Distance from prediction that must be travelled in both directions to +// create a range in which the true value will fall into, X% of the time +// -int: Quantity of loci known +// -int: Quantity of phased loci +// -error +func GetNeuralNetworkNumericTraitPredictionFromGenomeMap(traitName string, genomeMap map[int64]locusValue.LocusValue)(bool, bool, float64, map[int]float64, int, int, error){ + + traitObject, err := traits.GetTraitObject(traitName) + if (err != nil) { return false, false, 0, nil, 0, 0, err } + + traitIsDiscreteOrNumeric := traitObject.DiscreteOrNumeric + if (traitIsDiscreteOrNumeric != "Numeric"){ + return false, false, 0, nil, 0, 0, errors.New("GetNeuralNetworkNumericTraitPredictionFromGenomeMap called with non-discrete trait: " + traitName) + } + + // This is a map of rsIDs which influence this trait + traitRSIDsList := traitObject.LociList + + if (len(traitRSIDsList) == 0){ + // Prediction is not possible for this trait + return false, false, 0, nil, 0, 0, nil + } + + predictionModelExists, predictionModelBytes := geneticPredictionModels.GetGeneticPredictionModelBytes(traitName) + if (predictionModelExists == false){ + // Prediction is not possible for this trait + return false, false, 0, nil, 0, 0, nil + } + + traitRSIDsListCopy := slices.Clone(traitRSIDsList) + slices.Sort(traitRSIDsListCopy) + + neuralNetworkInput, quantityOfLociKnown, quantityOfPhasedLoci, err := createInputNeuralNetworkLayerFromGenomeMap(traitRSIDsListCopy, genomeMap) + if (err != nil) { return false, false, 0, nil, 0, 0, err } + + if (quantityOfLociKnown == 0){ + // We can't predict anything about this trait for this genome + return true, false, 0, nil, 0, 0, nil + } + + neuralNetworkObject, err := DecodeBytesToNeuralNetworkObject(predictionModelBytes) + if (err != nil) { return false, false, 0, nil, 0, 0, err } + + outputLayer, err := GetNeuralNetworkRawPrediction(&neuralNetworkObject, true, neuralNetworkInput) + if (err != nil) { return false, false, 0, nil, 0, 0, err } + + predictedOutcomeValue, err := GetNumericOutcomeValueFromOutputLayer(traitName, outputLayer) + if (err != nil) { return false, false, 0, nil, 0, 0, err } + + modelTraitAccuracyInfoFile, err := geneticPredictionModels.GetPredictionModelNumericTraitAccuracyInfoBytes(traitName) + if (err != nil) { return false, false, 0, nil, 0, 0, err } + + modelTraitAccuracyInfoMap, err := DecodeBytesToNumericTraitPredictionAccuracyInfoMap(modelTraitAccuracyInfoFile) + if (err != nil) { return false, false, 0, nil, 0, 0, err } + + // We create a prediction confidence ranges map for our prediction + + getPredictionConfidenceRangesMap := func()map[int]float64{ + + totalNumberOfTraitLoci := len(traitRSIDsList) + + proportionOfLociTested := float64(quantityOfLociKnown)/float64(totalNumberOfTraitLoci) + percentageOfLociTested := int(proportionOfLociTested * 100) + + proportionOfPhasedLoci := float64(quantityOfPhasedLoci)/float64(totalNumberOfTraitLoci) + percentageOfPhasedLoci := int(proportionOfPhasedLoci * 100) + + // This is a value between 0 and 100 that represents the most similar confidence ranges map for this prediction + var closestPredictionConfidenceRangesMap map[int]float64 + + // This is a value that represents the distance our closest prediction confidence ranges map has from the current prediction + // Consider each prediction accuracy value on an (X,Y) coordinate plane + // X = Number of loci tested + // Y = Number of phased loci + closestPredictionConfidenceRangesMapDistance := float64(0) + + for traitOutcomeInfo, traitPredictionConfidenceRangesMap := range modelTraitAccuracyInfoMap{ + + currentPercentageOfLociTested := traitOutcomeInfo.PercentageOfLociTested + currentPercentageOfPhasedLoci := traitOutcomeInfo.PercentageOfPhasedLoci + + // Distance Formula for 2 coordinates (x1, y1) and (x2, y2): + // distance = √((x2 - x1)^2 + (y2 - y1)^2) + + differenceInX := float64(currentPercentageOfLociTested - percentageOfLociTested) + differenceInY := float64(currentPercentageOfPhasedLoci - percentageOfPhasedLoci) + + distance := math.Sqrt(math.Pow(differenceInX, 2) + math.Pow(differenceInY, 2)) + + if (distance == 0){ + // We found the exact prediction confidence ranges map + return traitPredictionConfidenceRangesMap + } + + if (closestPredictionConfidenceRangesMap == nil || distance < closestPredictionConfidenceRangesMapDistance){ + closestPredictionConfidenceRangesMapDistance = distance + closestPredictionConfidenceRangesMap = traitPredictionConfidenceRangesMap + } + } + + return closestPredictionConfidenceRangesMap + } + + predictionConfidenceRangesMap := getPredictionConfidenceRangesMap() + + return true, true, predictedOutcomeValue, predictionConfidenceRangesMap, quantityOfLociKnown, quantityOfPhasedLoci, nil +} + + +//Outputs: +// -[]float32: Input layer for neural network +// -int: Quantity of known loci +// -int: Quantity of phased loci +// -error +func createInputNeuralNetworkLayerFromGenomeMap(rsidsList []int64, genomeMap map[int64]locusValue.LocusValue)([]float32, int, int, error){ + + // In the inputLayer, each locus value is represented by 3 neurons: + // 1. LocusExists/LocusIsPhased + // -0 = Locus value is unknown + // -0.5 = Locus Is known, phase is unknown + // -1 = Locus Is Known, phase is known + // 2. Allele1 Locus Value (Value between 0-1) + // -0 = Value is unknown + // 3. Allele2 Locus Value (Value between 0-1) + // -0 = Value is unknown + // + neuralNetworkInput := make([]float32, 0) + + quantityOfLociKnown := 0 + quantityOfPhasedLoci := 0 + + for _, rsID := range rsidsList{ + + userLocusValue, exists := genomeMap[rsID] + if (exists == false){ + neuralNetworkInput = append(neuralNetworkInput, 0, 0, 0) + continue + } + + quantityOfLociKnown += 1 + + locusAllele1 := userLocusValue.Base1Value + locusAllele2 := userLocusValue.Base2Value + locusIsPhased := userLocusValue.LocusIsPhased + + getNeuron1 := func()float32{ + if (locusIsPhased == false){ + return 0.5 + } + + quantityOfPhasedLoci += 1 + return 1 + } + + neuron1 := getNeuron1() + + neuron2, err := convertAlleleToNeuron(locusAllele1) + if (err != nil) { return nil, 0, 0, err } + + neuron3, err := convertAlleleToNeuron(locusAllele2) + if (err != nil) { return nil, 0, 0, err } + + neuralNetworkInput = append(neuralNetworkInput, neuron1, neuron2, neuron3) + } + + return neuralNetworkInput, quantityOfLociKnown, quantityOfLociKnown, nil +} + //Outputs: // -int: Number of loci values that are known // -int: Number of loci values that are known and phased @@ -732,7 +854,7 @@ func getNeuralNetworkLayerSizes(traitName string)(int, int, int, int, error){ case "Height":{ // There are 3000 input neurons // There is 1 output neuron, representing a height value - return 3000, 2, 2, 1, nil + return 3000, 3, 2, 1, nil } } @@ -1289,21 +1411,16 @@ func TrainNeuralNetwork(traitName string, traitIsNumeric bool, neuralNetworkObje err = gorgonia.Let(trainingDataExpectedOutputNode, outputTensor) if (err != nil) { return false, err } -// for i:=0; i < 10; i++{ + err = virtualMachine.RunAll() + if (err != nil) { return false, err } - err = virtualMachine.RunAll() - if (err != nil) { return false, err } + // NodesToValueGrads is a utility function that converts a Nodes to a slice of ValueGrad for the solver + valueGrads := gorgonia.NodesToValueGrads(neuralNetworkLearnables) - // NodesToValueGrads is a utility function that converts a Nodes to a slice of ValueGrad for the solver - valueGrads := gorgonia.NodesToValueGrads(neuralNetworkLearnables) + err = solver.Step(valueGrads) + if (err != nil) { return false, err } - err = solver.Step(valueGrads) - if (err != nil) { return false, err } - - virtualMachine.Reset() -// } - -// log.Println(cost.Value()) + virtualMachine.Reset() } return true, nil diff --git a/internal/genetics/readGeneticAnalysis/readGeneticAnalysis.go b/internal/genetics/readGeneticAnalysis/readGeneticAnalysis.go index a2ddffa..1039c3a 100644 --- a/internal/genetics/readGeneticAnalysis/readGeneticAnalysis.go +++ b/internal/genetics/readGeneticAnalysis/readGeneticAnalysis.go @@ -892,6 +892,78 @@ func GetOffspringDiscreteTraitRuleInfoFromGeneticAnalysis(coupleAnalysisObject g } + +//Outputs: +// -bool: Any analysis exists +// -float64: Predicted outcome (Example: Height in centimeters) +// -map[int]float64: Prediction confidence ranges map +// -Map Structure: Percentage probability of accurate prediction -> distance of range in both directions from prediction +// -int: Quantity of loci known +// -int: Quantity of phased loci +// -bool: Conflict exists (between any of these results for each genome) +// -error +func GetPersonNumericTraitInfoFromGeneticAnalysis(personAnalysisObject geneticAnalysis.PersonAnalysis, traitName string, genomeIdentifier [16]byte)(bool, float64, map[int]float64, int, int, bool, error){ + + personTraitsMap := personAnalysisObject.NumericTraitsMap + + personTraitInfoObject, exists := personTraitsMap[traitName] + if (exists == false){ + return false, 0, nil, 0, 0, false, nil + } + + personTraitInfoMap := personTraitInfoObject.TraitInfoMap + conflictExists := personTraitInfoObject.ConflictExists + + personGenomeTraitInfoObject, exists := personTraitInfoMap[genomeIdentifier] + if (exists == false){ + return false, 0, nil, 0, 0, false, nil + } + + predictedOutcome := personGenomeTraitInfoObject.PredictedOutcome + confidenceRangesMap := personGenomeTraitInfoObject.ConfidenceRangesMap + quantityOfLociKnown := personGenomeTraitInfoObject.QuantityOfLociKnown + quantityOfPhasedLoci := personGenomeTraitInfoObject.QuantityOfPhasedLoci + + return true, predictedOutcome, confidenceRangesMap, quantityOfLociKnown, quantityOfPhasedLoci, conflictExists, nil +} + + + +//Outputs: +// -bool: Analysis exists +// -float64: Average offspring outcome +// -map[int]float64: Prediction confidence ranges map +// -int: Quantity of loci known +// -int: Quantity of Parental phased loci +// -[]float64: 100 Sample offspring outcomes +// -bool: Conflict exists (Between this genome pair and other genome pairs) +// -error +func GetOffspringNumericTraitInfoFromGeneticAnalysis(coupleAnalysisObject geneticAnalysis.CoupleAnalysis, traitName string, genomePairIdentifier [32]byte)(bool, float64, map[int]float64, int, int, []float64, bool, error){ + + offspringTraitsMap := coupleAnalysisObject.NumericTraitsMap + + traitInfoObject, exists := offspringTraitsMap[traitName] + if (exists == false){ + return false, 0, nil, 0, 0, nil, false, nil + } + + traitInfoMap := traitInfoObject.TraitInfoMap + conflictExists := traitInfoObject.ConflictExists + + genomePairTraitInfoObject, exists := traitInfoMap[genomePairIdentifier] + if (exists == false){ + return false, 0, nil, 0, 0, nil, false, nil + } + + offspringAverageOutcome := genomePairTraitInfoObject.OffspringAverageOutcome + predictionConfidenceRangesMap := genomePairTraitInfoObject.PredictionConfidenceRangesMap + quantityOfLociKnown := genomePairTraitInfoObject.QuantityOfLociKnown + quantityOfParentalPhasedLoci := genomePairTraitInfoObject.QuantityOfParentalPhasedLoci + sampleOffspringOutcomesList := genomePairTraitInfoObject.SampleOffspringOutcomesList + + return true, offspringAverageOutcome, predictionConfidenceRangesMap, quantityOfLociKnown, quantityOfParentalPhasedLoci, sampleOffspringOutcomesList, conflictExists, nil +} + // We use this function to verify a person genetic analysis is well formed //TODO: Perform sanity checks on data func VerifyPersonGeneticAnalysis(personAnalysisObject geneticAnalysis.PersonAnalysis)error{ @@ -995,6 +1067,13 @@ func VerifyPersonGeneticAnalysis(personAnalysisObject geneticAnalysis.PersonAnal if (err != nil) { return err } } } + } else { + + for _, genomeIdentifier := range allGenomeIdentifiersList{ + + _, _, _, _, _, _, err := GetPersonNumericTraitInfoFromGeneticAnalysis(personAnalysisObject, traitName, genomeIdentifier) + if (err != nil) { return err } + } } } @@ -1111,6 +1190,14 @@ func VerifyCoupleGeneticAnalysis(coupleAnalysisObject geneticAnalysis.CoupleAnal if (err != nil) { return err } } } + } else { + + for _, genomePairIdentifier := range allGenomePairIdentifiersList{ + + _, _, _, _, _, _, _, err := GetOffspringNumericTraitInfoFromGeneticAnalysis(coupleAnalysisObject, traitName, genomePairIdentifier) + if (err != nil) { return err } + } + } } diff --git a/internal/genetics/sampleAnalyses/SampleCoupleAnalysis.messagepack b/internal/genetics/sampleAnalyses/SampleCoupleAnalysis.messagepack index 558c216a14c9e99a5ad6d8f5371614ef8918da62..f85b8108393fb5d4aff124e7f7cc1674931dbddc 100644 GIT binary patch delta 1491 zcmdm#d!cMYBs259O^+sjV7)n6R{YN7wZeBMTXNl*{E_?4Z*&gM>$ z9gLGtvfY_%D{yCWru41J;)3@kzh%8Mxsl_}4&8T7YxLo82^ZA^uMn{;}8I|Z9Va~pI%jO8P$+Js9k-tw^ zfwD{8_FHTgHg087Y+CA6lwY0~x5O!@G?i_mV_9lZVtT4`eqLH;N@`wms^(-t6OqYR zOwVji*ZIh-5U|QKuOvSQs3@;Q1XHy)SapxVoXL8IVr)m4y<1v=xGPzo245V7#LDcJDBKxI{{?zopzAUk^!+~PCFPJ3f2L#wBRgD zAnVpa9-x@}X?7@cvVe&wqwwTj1KE1D-NA{u1v#m3cR?Lg?2}nsatCA!)M2z?)Pwv? z8>5Lbxqe`+KTtoQzCXZFKahbB4Ey>4jC)Yj*V8t66HJ5FB;>AjpaLNWST?v;0P|+? FApm1bGKK&E delta 384 zcmZXN-7AA(7{+@&-h9m0ST;=NW6VcuhDDKPB_H_%gtB-^=3OyX4n%SwJqKJT9Euf+ z*lXoPPIgE>O0w>jkTYcmk^|*&?CAdWyRNJIW-dH++|St8wjCexBW`mE?tFqbn~=~E z4)X|YIfQQ`;aw&c4?k-kazsM0k+gf$nS`ZO!c_)gC5up?CxlW6dYQDAbP-Mz#n6x( z$EOH*Az>(uuxcReXT~&-d6=QGc1<(Ym?b32ICK>pJ*6BA<$R->hTPLvYx-hKt%gZLvPVECUDKYQXPProCz)?ZiDNU|jL| z)v<|DMIBN4u-+&kE0LA%R@CucrpT$S2*-K1nYat7+6tnuy68D&4OvLVVsofpkf z=6neXzV=0gpS+E={;jkeyFbacyxZZMRotO2@4VuZLLJlopj!6-X+89I15O>6*mCKm F#b26_r%?a^ diff --git a/internal/genetics/sampleAnalyses/SamplePerson1Analysis.messagepack b/internal/genetics/sampleAnalyses/SamplePerson1Analysis.messagepack index dfe7e28892aeef3ee95287d137d87a3b129e41a2..8d0f514451a9e5cae4a961c578c29f5c434c3360 100644 GIT binary patch delta 4123 zcmXX|cU%~I6#VU6j6~YdvIdOtqN8Wi3yfq!Gel~u2_gz^E5W%#6l#R zL@WVg4zZvyYOL|CMl{CcMWTQ;?|sa}JkvDjo8PQ|zT-z#C-q8wm z(BCT+489U*BW$q9!w#heiMdvGg`!{!JHE!7WLVikRhD0arFsjLbh1H&U}vu8H=xzW z0-qQqHs{1dI@=i}v7^dOu4fAin&5TO!cO0BA^*MimXiGnL1N?k3?*H4^)i%ZQSiz6 zm7D^r)MS%a|3n7q7w?chpdgbHOpml{7i~v~K1Wx%px)CA1wnSm50*A|kyz0_KQceD zDxGraLnLs7*+fmuE2*To7Amofh~Z!`SlEKr2c&x*C27re5TY!iAU+&Ox}rdd9Xd3a zV`hyAS4lQL22yB3EGmOzqdJIXujl>fU}0Stm8{%2Mf!tJMv;7*Rdc3H5Kcj>cLX%) z1K~=z1f6^&W)1&^GO}=q?bvai+hJ*|J4opjh}=v1alU4z8PWlT!B#f9<}PJRO6bLV z!cv3VRIkIA(kY#CWh@z(0@qQ~MlhSG)itdnW%|5*a5cih)( z#18(ErWRN4zn=^?MAxa|btQVWs?OZg3i?p1s5#(a^5>|OsOY4ZMD4Pe+tGB4>d>3g-e((}Burz$7y zBp(c92H9X|m+oDm!w~JqBu#r_sDMj@E4ee+q9mx-ORV@EE9w0*Ln-LEN0-UoaBU_& zWB2RF=99yBIN4sVpUC*a%||cWwvdb!FCd%OM2R(S*i3=yM$e|Ryv-?`9k4JveCj8G zHQFW${#$v8W>}`hS4SB~4&A0cB3+B8Bx=SFs^dzne+u*uh}h^AAZkOM&&e+Pj9S^~ znsb!EweoF}y(hj;(r3%>WcSsHR3GTb$1jUFeC`&niB(w($iMRJdah?-^S$Xg@tj1m+M(*#51p%?m(3?ql~0pMo@e(d zo)C$}&lEz*>C|Ttbf|c8XKa`23t8<(eWzJuQMX3jNBbW?CHDuS4JzF1?85a{dftb9 zFx|FsTL@C1jO+X>lTHYQ*XH8)e7(FC*R$4_-jtg{~FvL@W6x>O!l?Tc1$hAi={TGw$ z)!su*a%@5ZDJ}-z<`UdGCqpMc+@Pzfe`Cq#F@kjna1{FH&!-2K}a@R)xJ&EdT z@seO3UT~OJ{WNUT4I@4*cP{Z=Ka?&Kd=2P*&U-I~YD3}&{#C3JIoLm&Dw>TuzPHD4 z@;+9hZla8kXmU6rNKhOgu_Ika@Ml)u&es<v%$|Md|DZgS`Jn#)Iqk~1?dQgSewX8}uLbOFgG-4G#dp*d>!Y-#ixP92P)9%TLp`*UsAn^&SyW85qdUMt@8uN;B;k zR{e?k`TlZD7KNGXZxi)tN$P?**YbqOh^5W7wj9^U8y-=Ql`E>(@ARd z4|)6HT8N!h@A{3LqC37LSv69 zuMYAH{4FrAWC4X(KeR|Kig_1tSGd~Q20KEqWe4KMQ>?1I;Y4KNW9~f}2Kw5;Ptt*F<$0bCUdNxUWuspq3Mad*qAZ^H zb606KkuEWdFEk4*L&}@8`K;lK*7$fcaSbb5KvHq1Z#>fk_NAZ=ZW24$W~D^EE$@>} zdHXmc8B+(jSZ&~i~{V5Zek0* z?*sKFJ3NhdfLEM@wH|*)&mYD*AUwtaS*V|e_@2oDGrBt9tC)N^gSrKA4%m;n9jHr7 zaDW+YtcVAo{sI2^pe_>a-oO|)Q2#E<>uBS`v$gTb;7ag^8{L+(q?WEA^ssMCa=_t4 z2fIGGfImWZPX}D+?tmeQ4w&5|ADZ!esW}-8=0b2JIoOKY8nTN;yL>#WL|X&eK1W%B za%^`8YqB;v+q&xR|uceQX!3WEG( zqhN=Q6xYt=6z0Bk_mJGY=`%{fnG#*G!j)N^J2h`gY3|e!b4#Zb%*j>c+()&OmS{8$ z0}Jw}P6zBcRu`(jP z;{17BCIU@oMb^LOW4PPRvJ~0;pkW`PSY(~) zGX~KJMeZ5Vn1QGt@~?f~gy>Zab9cZ1M45`5G@~p5QGe`=|K2o2T@=~3z<3(-VHw#!d0APTKeWSvdNt4l}cbK5Er*|4T*tCt{p6Uj^&!pQ_$v zUk<_~9F_dvd14bPlY_rTG+vP<&5w%_^+xBl{jjZYH6@5$7W7b%929_ZKOfN9IJ@cd K^GZrfPX8b6ie)eW delta 1282 zcmX9-ZBUd|6y|;J3k!n6DuR3nf(#-MyL->OyrL4y@=+2ZqDh$R!mMI`C{<$bk<)nKbm4?9k?E8e&oRZz9rh5BNI9}V z5q7#sPx%MaB}?J6FGg{K#2cBUr$=EhYAN0^;xS!Jm{~*Oqpp`itVk*%Jj^Eyt&-@} zOmXl9)e!0=iP1xkLwa%Q2^0RU5;&_n@zc~qek_caB5`NDkIN2U9mALb?DbhOL$6q6ZF z#e0c)C-~bO4t<;c>^?O~Pn^UkPqW5NIA(D>4%bnocyKj|7H6wcddMTOuFORFd}-*( zNxRk52BNqXSGSr@Al>ZROt_OMF&klGM36{1`mLH#??xtFT>5!P3S#33HG=f9Q_z;V zAnOP{X(aZ(9jA|RCz3(nozRP#8^IwPqlhvXihPlTBlyr)!_m@J3wh} z#K%a~YMdP59#-7J4blip{VG4yqY<_*YYRhNn9OqVOLZ*5`bwAHm8p=MbiyT*L}}Y1 zMW5JlJ{0GFqfp71<5zyJ%7m?ogv+Q^r6(rOsJl`Rp|^&R5Jfnb#1(b-6a#V-hO66x zZMy=&R)1M*d!VsB&|clRuLGIero{Bef8%DoiAN0&3;Wjt& zym3P@&n9SCsb>$vJQadW4I+f5eyY)gDW-1EE9(^P~=pM`mT3;7(s(ilV! z+X26&7u>}lL*~2|UTd^a&}50B*&app0jH!ebk^raO7jhE3w~+NMX)6nS%G5X(cS!U z>HAu`3IL#BA)t&B#zx_90?xI zJO@uv-YQYJ@Y=tIh#IFZsNcZn83~$xUk~WRak7^lt)?m^n73HiJ2M$HIv*M>KHQB{ zVRb8TCX%=mnwNPvPOrdRmluo|bnN_nxriILY%(SiRGe}tIFqU}U$)oiHW061!A>u9 zaZx-(PhDOK4w_Z$N#XFPax^iH`)1A>79T9fo$OsU`V?b|Vm|NRF}pfl5iPZ4$Mm5f zN8qs0`||#~Z`f`t$1bwVOLrT?I-RCslbK_XHrhuU?%Ml-;lF9+Oo;!{82DR~lYQL% zW~{+U568MB4o3=S)6wfOztg7AF_ml?Juc1~v)5BC8S}LKA%U|!-9H)EV@c;&Bk3Za zwJ#^@M;Je8WX5GyVAd6nb2Qj5MFm|Rl{s$AQKb@mDp~LqRSFM3jCK7rowNPjv&IQb z^~Dy439Eum>U6+biK`wTUZm6Ox2YJTbEqXnHxpH4&>|=4TvF{S=4kw%NeZMS74KOT z)TF5_Jhb>!AjZ;FHaU`@pA>8K&Krkt*P^hjBZ)E229b-VW5rTTY$Q$*O{Ikk#AsnA zVWXikW7k@$vI=&(gfZ)H6qA{}=a&9Qwz&dI<~`ib*5J?WL{m-`#tF}QH9XGIP(!$N zg@&fAAj-&hI7egsbI)T zlZ6_K+&PYqR_?@;XEf9nXlT#Zkh@aD5wb_=w##qhum-qUfO+4`eA}@N7e% zqpdxJypp_uq41{Nf!2O~9?O9Lb&paDZnqlr9dRk#Q( zSqeee@L&u|3|~xu2YxJALDCi%kT)BsMxs)R#2QlZhqe)YKwphUXKzyO!=3NU%$fP- zn{(Cv=jHdOwF3xwo^%BeC?YLWCz{*-ecpe$mow;LNEs0y+2p)Jytgj!ev=q^fFP#Dd5hZ$8 zbUC!|#7P`m8e)G7_G{G$2P8y7;aOc8#@i8cXqCBJXAL|0rY<mUFJ1Tp z8O_8Q-c3>vN(Slv5lkdg823c=_S=u?zMf!V;yXJyy$#=_6;=lcR|Hc%{_T(UXAL-r6W=1LUPa~Y!LuNkMykXPZ=w8Zv0B|h2vQYBfqdbYAaZScetKAtb( zjuU#43d`#WF)!g)uf$tb3hoAeeJ9-rg(N0pIiPVCXBJuLS!m;nW*grxwD7~CcK4X* zpL`mbjKaGa3lEzt{LOYjvxVm~mYC&PDly`lY4!)2ETMgP+VS1s^A^r4aHV}sHjXeJ zS+K1fSbSa+<>?dH*`i>zSXi91(7n_`DQn>-TRm@Miv33!*Jf>eowJVe@y)yin{6|@ zuW{;&IU84(Sa`&EFyD>=j!os8%H8y*j{ou(waqBW2u53DXe$KEGp#>rq-O729}`2e zkN@Y^e12n0T$}PS{&(8V|2HP?u}3~AG9KS{g>mkqZmf7BTW&Ph>h6wRJBl_QnOS@w QV_F@|!Z5m?3~2}d2b-c@zyJUM diff --git a/internal/helpers/helpers.go b/internal/helpers/helpers.go index 29bde7c..749065f 100644 --- a/internal/helpers/helpers.go +++ b/internal/helpers/helpers.go @@ -2092,3 +2092,49 @@ func Split32ByteArrayInHalf(inputArray [32]byte)([16]byte, [16]byte){ return piece1, piece2 } + + +// This function takes a list of ints and a target value, and returns the int in the list that is the closest to that value +// If there is a tie, the function returns the earliest item in the list of the tied elements +func GetClosestIntInList(inputList []int, targetValue int)(int, error){ + + if (len(inputList) == 0){ + return 0, errors.New("GetClosestIntInList called with empty inputList.") + } + + closestValue := 0 + closestValueDistance := float64(0) + + for index, element := range inputList{ + + if (element == targetValue){ + return element, nil + } + + distance := math.Abs(float64(element - targetValue)) + + if (index == 0 || distance < closestValueDistance){ + closestValue = element + closestValueDistance = distance + } + } + + return closestValue, nil +} + + +func CountMatchingElementsInSlice[E comparable](inputSlice []E, inputElement E)int{ + + counter := 0 + + for _, element := range inputSlice{ + + if (element == inputElement){ + counter += 1 + } + } + + return counter +} + + diff --git a/resources/geneticPredictionModels/geneticPredictionModels.go b/resources/geneticPredictionModels/geneticPredictionModels.go index 7b01f4c..3562906 100644 --- a/resources/geneticPredictionModels/geneticPredictionModels.go +++ b/resources/geneticPredictionModels/geneticPredictionModels.go @@ -11,6 +11,17 @@ import _ "embed" import "errors" + +//go:embed predictionModels/EyeColorModel.gob +var predictionModel_EyeColor []byte + +//go:embed predictionModels/LactoseToleranceModel.gob +var predictionModel_LactoseTolerance []byte + +//go:embed predictionModels/HeightModel.gob +var predictionModel_Height []byte + + //Outputs: // -bool: Model exists // -[]byte @@ -24,16 +35,20 @@ func GetGeneticPredictionModelBytes(traitName string)(bool, []byte){ case "Lactose Tolerance":{ return true, predictionModel_LactoseTolerance } + case "Height":{ + return true, predictionModel_Height + } } return false, nil } -//go:embed predictionModels/EyeColorModel.gob -var predictionModel_EyeColor []byte +//go:embed predictionModelAccuracies/EyeColorModelAccuracy.gob +var predictionAccuracy_EyeColor []byte + +//go:embed predictionModelAccuracies/LactoseToleranceModelAccuracy.gob +var predictionAccuracy_LactoseTolerance []byte -//go:embed predictionModels/LactoseToleranceModel.gob -var predictionModel_LactoseTolerance []byte // The files returned by this function are .gob encoded geneticPrediction.DiscreteTraitPredictionAccuracyInfoMap objects func GetPredictionModelDiscreteTraitAccuracyInfoBytes(traitName string)([]byte, error){ @@ -47,12 +62,22 @@ func GetPredictionModelDiscreteTraitAccuracyInfoBytes(traitName string)([]byte, } } - return nil, errors.New("GetPredictionModelTraitAccuracyInfoFile called with unknown traitName: " + traitName) + return nil, errors.New("GetPredictionModelDiscreteTraitAccuracyInfoBytes called with unknown traitName: " + traitName) } -//go:embed predictionModelAccuracies/EyeColorModelAccuracy.gob -var predictionAccuracy_EyeColor []byte +//go:embed predictionModelAccuracies/HeightModelAccuracy.gob +var predictionAccuracy_Height []byte + +// The files returned by this function are .gob encoded geneticPrediction.NumericTraitPredictionAccuracyInfoMap objects +func GetPredictionModelNumericTraitAccuracyInfoBytes(traitName string)([]byte, error){ + + switch traitName{ + case "Height":{ + return predictionAccuracy_Height, nil + } + } + + return nil, errors.New("GetPredictionModelNumericTraitAccuracyInfoBytes called with unknown traitName: " + traitName) +} -//go:embed predictionModelAccuracies/LactoseToleranceModelAccuracy.gob -var predictionAccuracy_LactoseTolerance []byte diff --git a/resources/geneticPredictionModels/geneticPredictionModels_test.go b/resources/geneticPredictionModels/geneticPredictionModels_test.go index 8468235..da206d7 100644 --- a/resources/geneticPredictionModels/geneticPredictionModels_test.go +++ b/resources/geneticPredictionModels/geneticPredictionModels_test.go @@ -9,7 +9,7 @@ import "seekia/internal/genetics/geneticPrediction" func TestGeneticPredictionModels(t *testing.T){ - traitNamesList := []string{"Eye Color", "Lactose Tolerance"} + traitNamesList := []string{"Eye Color", "Lactose Tolerance", "Height"} for _, traitName := range traitNamesList{ @@ -42,6 +42,21 @@ func TestGeneticPredictionModelAccuracies(t *testing.T){ t.Fatalf("DecodeBytesToDiscreteTraitPredictionAccuracyInfoMap failed: " + err.Error()) } } + + numericTraitNamesList := []string{"Height"} + + for _, traitName := range numericTraitNamesList{ + + accuracyInfoBytes, err := geneticPredictionModels.GetPredictionModelNumericTraitAccuracyInfoBytes(traitName) + if (err != nil){ + t.Fatalf("GetPredictionModelNumericTraitAccuracyInfoBytes failed: " + err.Error()) + } + + _, err = geneticPrediction.DecodeBytesToNumericTraitPredictionAccuracyInfoMap(accuracyInfoBytes) + if (err != nil){ + t.Fatalf("DecodeBytesToNumericTraitPredictionAccuracyInfoMap failed: " + err.Error()) + } + } } diff --git a/resources/geneticPredictionModels/predictionModelAccuracies/EyeColorModelAccuracy.gob b/resources/geneticPredictionModels/predictionModelAccuracies/EyeColorModelAccuracy.gob index dd8cb7bf785502a5868e6d0572843835a2239ad3..4464c4033e604341e50c1fc342471084c716ed31 100644 GIT binary patch literal 53755 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 Iw({Wr2Zlsl`v3p{ literal 57054 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 Kh3W0BUH=ar_4e)n diff --git a/resources/geneticPredictionModels/predictionModelAccuracies/HeightModelAccuracy.gob b/resources/geneticPredictionModels/predictionModelAccuracies/HeightModelAccuracy.gob new file mode 100644 index 0000000000000000000000000000000000000000..b2e886afcd48d06f837ea019291c885c21043dfe GIT binary patch literal 45555 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

;nz;jWjt*bpd)XAOEc1kCGc3z^ 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

-u!{pRvgr%1M6PLsPdbmZFPHQM zWBb+#t(EPA0gSPg>Q8ZRu#!w~+6gw5TgL%hi%4pVs04&_@+rntDW_lej)j#`K{1J6 z<623xMIPM$A!jD;?WS)LuF#%M=mD(}etahQMWNr!$ff8*J2DOr zO(XMvS)=D*G&kTLA!I~zxe{JOzL9y{uo~WTT`y=LZSOt(Aee4D1agGhbh0C!QAkw> z&OilJQBw^7)_Rk&dR<-ZjR$uj7&O=@^^-5TAcP$Jo@4Dmm9bwWV}*&NKfHuzQcODEIgm{}qY563sy!KnYp2{UoDhBa7wmg9Hv=&9K#`U>i|dF(=Js zW^uNVebEy=vGL`!c%3g)Qy#@QwO~V3hTq^klji@411X_#>x%qAt*T8&xdK`D%`)!M ztcgWgHJGiq?E=14OYRqk!h*s;@o0WXCF!3@gIIsKVJ^Z-vcKZPA%VQj=eVb&wagg1 ziA+;bPhT*o;>4DoU;}F%+B6X?o$JdESzKu!ca9qVaMT1Ro%Ie@dOWQ(DZ`3UIF$Ss z7_*vsy7or42%`ArQN){2*;}~cKagItGPN7n+4lkgC!5$zdN z)G`()RtB;e^3a5}YsZ^2FhtU*Lh?#5=!A_2r5H9h7Y1t^4y1}SgD;GRnNjOEofVv{ zcoCOY3Evz=)tj9d&q#LQI-^Czjp4`+&=Kmz!8L@uiV9@U6MOonE6w-Hl4|dYhkE=}?AxgSg`yLGgk*m24NJ&e+ zea@mwcn}!1A}W(-G$^h|K0}mVH*Pbiw}`|?{`Lo#Wx4I;nk?ZWLv2P9w@udnc@mU@ z0?3E`L7nO3Slk4qUqHE!;DREi!B4{RZI!HoB+$`*&zoaGpy7TPgw@Pi(ZIEuE3Jwa5?_l&?jfO#x&1%soob;noOP!;)I*pBvdVYO&aUjLqHws!Ft zYv$qSK1Z+{85C`K9+X`|>Aw~rMxpn+cn$nsv-*%ZWP;ZnWRBu#&dXFRcQ=IcEIb}q zY&Ly_9h#L=F%B+<`~-qaC|h`#%{E8lBcI;j@*1NS*2C#H!?6tobm*bK1Y%Vzdx&E~ zP9e_|G3&p9hO+wiuFgbx|ugP(jWwA7jCV^uIlf!*`epKIJK)012uI;`pG_ z)P~0b%3r6MK#(MSinfXM^z!9EaBVqNUg!gtvWn~j`;CImX^uX~T^@=7)$ECfm%roQ zk}MxJbQTgwzutuWQ&W=+fI#n^eH+7WTqp-4q;X@W1p0(1j1*;8P5Mx+zeAmJ=x*mx6X#B0c^{NXjK7{pxo`ko! z8@>YUV^~x!2@6M`9B=z*!#lwzyu;wF!oND8ON%M`7nDGXga>*ETNh}!b86Q%Z}0lH zD#P|d`wDx88ZUmVz3@Zm>y16F!NX&nwXOl6kesg9sSJDje}6q^YybcN literal 0 HcmV?d00001 diff --git a/resources/geneticPredictionModels/predictionModelAccuracies/LactoseToleranceModelAccuracy.gob b/resources/geneticPredictionModels/predictionModelAccuracies/LactoseToleranceModelAccuracy.gob index 6672f7500c81b5c397d43b6a2dc84fea82ef8025..1ec8a15351c3663b1f701751d419070e1fc1e379 100644 GIT binary patch delta 343 zcmdnTvX_P5;(t2}Bcqy2W^r;+YDwxub_Jmh2FCv_jQ`sh7=r#cGcz*%Z<%P}$JPpB zwN32lu9x}W!NA4H<(XHKpOadYm{-D>!oc{CX$u1*M+i*hAEOSV6VRLwjQ<#CF#bQm zSb{A3{{&Ej#2vuuY$UQTAa+W40G&IB@&6{q{~H+Ok-Q1j TF7%D@pZFHW|N9vK&tL!mBiMa7 delta 344 zcmdnXvX6z`;D0j zz{SWBlAn`Wl$ck-_>XY{V+sS~Kgj~de^LsJ|JO18U&X-4<(XH4P@%)<1T=I5sxU|s z^D3bJCPpqsDF!4X|DOPxD0qbNpU4l!|2r7}&w*>L2U`kN!JfnTkHvz~kMVyGvi^UJ zU<>~-CNTbE5?}->2D%x=e4y152N?g!T7V^2z)eT-5jRj3R{$_1z{W#;qzSbjD92KP TY$(V(f)b4XgdM;xUcvwXj?H$Z diff --git a/resources/geneticPredictionModels/predictionModels/EyeColorModel.gob b/resources/geneticPredictionModels/predictionModels/EyeColorModel.gob index 414c2d17d077eafb0ddba9ea476e3b8f3e8094f9..42434f55859f2542d79c3412a3f42f8976fb4c6d 100644 GIT binary patch literal 196422 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�+(irRtRYCOvoE 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%0A>n#sk#-gfL_ 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

    PlIm&H(4k`sZVl)XS3^ILxuvvSE2Q2l&4 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 g;l5bgE?T+-U`Z=E>4 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 TPMt*l@Zj-ADT@^f;a;1r6hOW|43r>_gR8v zzIkIpZcXP|YaFWs8>4k88tJFJS5RIyKPKxJ9~oTlyGBs5sHp_KaR%v_9(7AW{WhJ5 zf|X+<05BJ=VPJcu9K)#9l~Ga+m2EZVi0g^eeRqKcwRtbR%#+^BxesygkJS0~_c|GR z`VcPlYzatFKl1=M^`lM_tzLYh^V1xg@v)u6Cw|xCepqSs8k3Bw#tj_ZESd3=o~Z}V zBJ<}5GHF^7@Mn&F$F%3kZot}VbzC~^=d3Juz1qh2*UYkO!k8CGo%*9KJ%_ng4~C*= zeacm_}>TT9j?vQeJF^VlFHTjCs}RPO$AX}qxd)n%RN7ky+*;#bD6bXeVF#6 zj*>d}bC9*#oJ-__Q6mHRwNK z1&oQ+L5kfgDT$J{`^bHB<{PZ2F_1{>$5u1k4Bi6Zjq9_p+$d5vl6SGx-Z0G6eGY>A zyAd=MKZ@o?kpuYB$|a{p850|s=nygEe?%+OuT3K5 z-WPZdXue~i*S}^0!bZmuVJs_f#{yH6qZh5?Q8TD~HCwEy+}@85;c0`GdUGJri!E6N z$)HGHVe3uXis)Q&h=mr~Clv)+x5Y8~#li;=T_H@6b)_7t8na)~c^IQZ$sW!BKT+e< zF-o-X1_Ve;lD`14+BF{zhm##cX*+*Z5Zhu$IGwJHUoC#uN?gn}JaQq|-Fqd!X2$_R zWAjhEtkxV~0^i*J`^R+mPR3 z8V+>N4O{j4)C}50!&qd6 zz1e^QfobP1|1pnyZOU*uUTf+TLS^ie{k+!k93c*7&q`CPs-`W;dRK}VsQ7mT(kfh% z351Yi#9DtQ6PMfey66pq&aI=Rfjx0puAwO&j|P2=$O_OvbXU67J{{(d-| zOJP2u!}Juy<}(9nRBOyyidX$Z(5;f`CG_{?%tT!e^@L3?`Fb6&f(}OQIDnS+XQK}! zt>$ildnqK&*F3oWo5nj_4L=eaRqdKYqF+D={yBCTT-XP92$()kNpZOL#t<^2>JKSL)kdCPp*)?LwqO{cG0V4?ggPw8bs9rQ&!Op7PaSQ1{ufEfSq~n8 z#t@d-$PxZq_?M{zOA)vEm=|id{NH+*4IRFp`=zqv#%eTVHnq2AqfB5Ug3Uo5NpM_p z6mS@ECGe9`Dhep56IVkhKU(l0lBP8C=bBh>8dv)!uGc=zo67yhN)qnBA{L`%rYcN2 zmD)tdYelx*fMPd};zT3ACHFf_oMjv?ebC|hl34~g$wi5=R;!u^mCQLIY4|IDNJJ#-p^k$%Dn= zu58&wZFx_FQoF}SOIP%=CJxuyJ&{mnm#;BH0kfRl^4PNaGTjG#b_3b7n|149^ zqIQcMC9bbuI>^aqsB=Ws8j?v-GO^-BYR}dXEcxv@!XNxF)Nr-g3@#OCZxPcgJnz)+q}PCrwLFqO&$*y3l&J|v+*HoN}bzAby zgK^;#sgS>|4ob8UUUYrde>DPWnoybLM>i%XQ}AyvA<;th0~9xVOjoA5b=~XasJFf; zTp!4PikLyoHX&(VTYPFSl*xPZ-VoZVOPRN^9rB9EsQV=XHFj(=QQJSB_-dJpPlM!H zItcaHK|I;jHhZ6gb@>B3G8^TE0=4saBh>8%3Yf35hoi=kXLw03@?^#MoV*djTW zHp3rbfx1>*&~v}f5$=b+k!-$jbqgk39kv_A3dzAa_M#HKX%%=<=sQKW32y^0b9$ZxXu>)Z zajQp-{ggD?N7T&ZY-cFRx@aR(y7(}{J${=J(4*5JK(CYnFVo|k=yxq^A{=l2Ah4=W zDdBalEVwc24x?MK>usULxYL+Hn!^EeyXEHvkmTAVhP=FFaev^*9+)jN+c|mtmqj;P z+%s4j{p*OoYcHWUw5LY^LM^;7QL|$|(IZg|c^S3pAx$I!t6nzp3$7f?CYtMKR80+d=0BNnMw1MkEFD59S$pBs-87bx* zoDCeb>5Voz*wS#CWHk5p11#E|`xvg(P6p%Z!*sl@t6k$^aJk}PhpUYDR`fdDa6Oe} zIjHN0R%iqAR7kJ^gBY8E&okM5u4cR84!uj&;dyq_nlzC?0*f5 ztWK|Xb3Hj0E3~>pu}gom+#fk%yLaKRw$a#VReu_cdk&sojV@*Wp~Q@75soN#nSxUn z_KOGZ4a6|}QXUX!=dFY+qw4)&N}OGBx#s>7dLuD_nY>4tO>VDeJP6B$X(P1?%jhAk z3;FT5KF!^a@|w4qlFu(|Z;dyf0+BlM*>dhXE?mH0iP@;9osUNuv&_z=sIlw*C^2C{ z5G^0e8S3hA=Dnz$Yc_FaEimp>S5EL?JK8aorq?eMVD-xbz07=x=&njH#twU0rtXv{ zx0DF?nMJMPKPCm5JMwu$>zkL5spqw3L;1VXb{O~nG6K7&XE%9`xCzGWBJw{ITC>JD zSMA?OY|ZakaF!ZX_s6#n7sI)5*+)omW)8$QDB7 zrF-~LD;t72`aLTabFM|T;#zmlQ0EWbenh#p{~g28r^~QaJ!}<*!l$a@J@eIv0ZtYP zWd%$|_%=~>W02&TcMP)4zzm7(EA^*X6*(p`o-*6uEo+;H!&TFtR8uRnO@Y-ty(>1Xfni>l~ zhtaZgSIJvPG?jYARrptLGFt9um-piSW=%@e*RP=M`5$y{#^YfJsC=-Tq_#5OMqTy( z7t^m#3UB9jV7aY$;O$A|tIY55l99avk7X?&3kjfJ=EGy!z~QUW>ru*5tZorNtVlRZPk0tovR1};XtfmmbG zUIbdxy7R!ZFG{y%-rP-I1^V%3V z=p`47gC;UPwpq<@gg9JZW1`$IuN-MqO>F+58p#MXjN_(PjGNig)~{j^T!3|%aRzZ{0&38p&g&BF2 zo>hJ6NpOvGegIJQK1R^B^nZYI)vf7N4$+j^CA*muHkM;ID6&Sph547e9k?Cz%9rBh z)9|Bx!J7evmgjg9IxZ_0LP?H&Sgo$+jH2BC9OLM|t483F&bm15lEOz;y-twZy*4t? z80-O1tsW(amHFj#FvT8eI|WbRu%uCfFj6DlJ^n-d`6_w*qA+U}yL zXBzD0VI!{FCOAa)NPwqZ#*h17?ciXRme0sm?ZXMo`^c%8YMGxqI`wEK><{Ek;i#Iq z8}U`;LDOhiBrA}vTX!SwxfTs5jGQuAY#HlukA94$P^|6Z!~s|TdgP8dC>Rp0znmpz z*NI+;E{D&68$GEArkZ66cyRUAh=g7E`bw@l21iq}%LAM2LZf*8?AuO1qqmzu_FKKT ztcO{?Ix8TFt%xM^NGAMdlyArcWV@F@!`hmO_9{v?-C8%6MljPpj6hf(zPM12?MWMJ zZvFBcG|^e3({If#jMvZg5oLy46UnM*9LAs;?ed6|LKMm_*ZcG+<N$~*} zK+x*mA)U;!UBVo$$T_hTr~enb_5U3N4Qk^pq^in~*)q5E6!xi^ail*PM4VJ_2k6@T z4?UT6Ws87e#8ljD{atJnE8)9Jck*Ku#;9Iv%?&>9Gax&Uyz(SFH1nJ zRb{11&zXlF)!tt!#KD1jM+9$^K0{-bbP!x4>>ESQ1@e*3%$m02s7YS5G*0IS1^SPW z(J*f24n*v>E%#AUb|`MwKktOGk>wI0Hu|{ZCNoo8vdDVeTXH_(J`iM=5H=V$p2Jxi zymk?-et+h(M5q6SQPA={PP9+?4dXgBn0w3LS5T1t*D@Ag`}Lvy^LeWsKdif_`Z~$Z z)>|O_voU#NW*i52CDKUX{*M_e_dL)Z18W7i4esHoJ6iUGKG1H27|+>%$ylx zwZl&Q$6lB9Tw}(gi1~2(bQmOL02RjS^(bh^bV+o$^ixSxZo2|l?KdtAS1*V7p+~KF z=8NV0TUQ&ISl188w;5}Lyj1HKbI)Njd~;A^Ui}{AASWIn$KHGqygWH384%-3;Oy&* zvD8jYh(%KL?Y#9QueZDbzUKQ!o>2PB5t>Fy1MsEl$)`MZ zVF4V>ix$~!pRo5kIH#kraIQ2F4rXZF4pjIwPar-*4gk|Kbe{&zWPhF))?Sj+n0=bC zm;)-nQd@aDmCBe(xJ?E7MIuB$9>}`YSZ}zrJ3@+B6Dt5v-FLuV2;1&U;JVvdf}{@{ ziICd3X)Ba1zM-)d5)=>1Tm=tPGW3vQ5z=|&siCr`O4W&ljpYbMhPkkyAUyZkP{>Qw z28h~b*>Gf5u7YOztJdK-XWm*csOsG$=vMO-9IchM(b8Uc8IYK6E%{vURwRmor+Ykk zw|mR0>*`9<_uT7_E{2|uiQr5vd{CuRXd+hcpNpmTX_;C!s?099dbF%+NZ#el7dqx^BMsnFi0p7L_ zIM8mt>j0kmvXhO(@dnRO)2%wNGDp6N;J%OP24Tcf@%#dEv0STKs;Yk{7| zr0fJi>(^H__wWU4cKPlg-#A*#i`owX(lptf0Gi3UQQgen0{7YjYD>WVLpK=dI zmE!$pQ$9rAsI4`Jqv3nz8ZI~IX5y(}7HCI_@-QqmgUSvE!=n*?(z=IXr_nfVmMX`e zXs3c&hQeS$#4+w~%fawwuXFn_rpfFjP&Nu7ma1nv7;9sENIJ_e0%X_;a`3WUUzbRK zEP9l!fZru#aq^FO*4uSXDi^);M~}Q~aIc>A6ZV*s{Ry|Kd6|3N%Onn_{ur>S?o2nc zCFZmT%x2A)%GHpErTX^+;V=g_Kz*~!R#2^{`y+so;j%PLJ^33u)u(hQYajY7fqUy^ zI$Qy1+jDmoTaA#3UAOYxXQhDW?;jYb|Cf=kX6A!+D0zmjxQx&;1Yp_g6|*RL>%L6Su&ADnBNJ!K3%pu8Fjo#1v~dlH?HTqpTr%Ln=EtwT!SOE`0W;dGJRw& zx4+xr7t{0Y5R{rRghbS~k4wQU*CWzVYtyYQe(y0FRy6qO{X>RVLr8B@d3G zh+_yTZ6{5a2S!RS5>ELQ+JW@`Rsw8eHldI8cvC$0{;!aEjA*)=wZ)(Mnwh(>a%l?w z)cq<*k}SFd7xRC4z_I>oBEU9>4wD!?D9{i^caP+~Af^RF%3RNQpcq;2qlMP)>@nyf zn?q+@KE^A;i_!_)c4{mEs&MsCm_WctO zXzdRI3oXlg0zo2#2fMGEWD?&dR|w zIop9{dn%r|7+G_nyfy2x@O##Q1iI2oknh`RCY2-h;2-VQ`W2i;RSSG-)2{7>`u4Yq zuu8o_(7RV9=w?0n4_WP7q208}IFcag=AIy~i%WK=_Cyy5j}Dl_?cNEPw7MIfvdV43&w7E;d$?Y*!eP9czgcs&Yl*wH zpQDgr)nJ^%;#JXP$ zbQ!zY=I5Gughtw88A=$3{P@3kyT~c!oCsDA_F8oZIoSWZ8wJY;<7=(O_+`kO zon9hgo+eGLs$qE5?63pn)w~O+t^V11fO2;ZK%*~gyb^hJM=f>!u;%&Argm+<#oRYp zz+2ew+nA%zD+X-sA+irj&l|wdW$xe@L5M z<|evx*lH?1wBC;*d3XqlBNh!_1FvlPz>?WfmL=+^Cnllrqg>qEt;WPb6OmECkTi>h z+I=>IDDBRpIA+%ddUF)hD!NCtR?$iR_k>_v!WiVsFj? zD5OVz02cNZ**;)bOdw)DvhiXsdG*TncZ9Z-HJ*Jh}LAGh?c{tI_^S_^U(*5z(*7vA()p5kjk}Y#h{^Y}$zilYFN^zWPxFwW})xA>>K@ zSZFe}l6bZ60WkDBGd-QIym|OE)%6Ots~_J9k+n+3MaJ5Yc}}{p0pgj-bz@O!bU=S- zR8c@_Wy^-D#14AXzdjyPYmZA`HDe?t>U~$P#@H*#+`l-+EJf9TnGj}>gD12SQz!E8 z6S7p-cwPxf*0mxV;W%kO-qWwv0pNDRK!9xT@ge0@muYk?_Q)UjT&2H&1!~cGKS~06 zKx4E`Ab-t$Tg94lQ#Qe;e*~QEO#h;vW)G0@+|dsrYuAn1=#=vd2v8leLT{Aj*jHE2 zwCUB%BbGS;RoZd1c@_q7zp|4bs&(W$ucd={JW7+d;;2QIr`%{J?|R{X0w-|!E94(G391#0Ik+F zKqtF;+REVB!=%-u#duV^a1cs8GNc)`Ro;r;Uax?LR-h-t7d3Q4B+{oYo(ty=F?hsm zSqZtS)*lh*P;dAiWdAU}ZA-uoB>bqm83|7s z6Rp3mL#)-UPoHA`{zqJE*Ghq%&y!#XFU@BBv6nw(a1BgHn5|63VPf{oL9orgdJr8#|&&1iMVoa_H|yAkcdF1{3pm2O;C~b^*|sf@o^>p21T< zi}u8s+M4D#-#+LL;7n&%uKG8|Cmd~@J;}jX@Gv^r(XwK~+AqsZb;p0Ah=0{E1a?l> z$N58BSYZ+Vn09IfC7U>x$ko3939Q8|_Qc;6WfPyh^CZ-7cS;_n&x6sxe(jWgrb#?~ zs%}T{SUC9ycG~rZ%)lQq^fsbpHb>jHbT%4=vcb{y{@*cpI9xt*Seu)H19d=_X6Xq- zf)Rbc#S%1Xxe3B^@?Sefo;aQ)`iu*kxPCs$V=;dt3HQMLyr2#&+>29zs^d+w;R^g_ ze(dK3Z~GEmzfpDqbb8K1iO8uTbLB=t!-dc|w!Cxpgep2aP3=v(}ra-$Q1=)wB1Tk(|A_m}S+$aBaa&Jf}@4!@arL+ClA`Vz@~6 zoG=4D?(C2p_$f=Gj0}m`Xc=YERez_%nfDKkLYr@W$p?EkE7zDf^?{FC=)RQu5q&Y< zOy>hP?XRO^e3f~;Li|1tY|Z1n87chrT_E89dp9z^zb0Vzl(d6P18;fppB6nL5%H;k z2kK?~#>4fPd_mFTW-OKxT{8?0tyP>ZfhD__Mp1mF*$q zc1D|8+k1gOwb`@KR6lo~aHy9txYoAPr9j!{IjL#aNTijjo|%5j`uNzL`-`ar$7=U( zF(o&ihM``b(*f|w#Bn5aCYMmkYITQDSRHF^;hdrTUC61TxX$$bUnm@R=EF($V0oFb zx3gG>FH-NgYW>gq;k>GicT(Q`9Dy+M0}Gx}gXkx>`T}!hRcCpaQF1o_99(rV0+Ndp zHRJl1y$;u{=|SjoC>-64ikBHXH5tdCLQUus8r zW0fk_Bpe$mZ~q&i?=$S>I{xxjjstAA8NTVJGQH3_C6dy=hfIXJ3a3VLHpB!%Z$=i3 z;A$F`!!TviX+Z) zHNCnlcX9}q=Lnp!?QtCU{jM@W)V8x91xv1Bl6fK%-qwp-bd^>**)5{RcbNm@P1^yb z{#<5|)o57*pu8VWM2}!upJpuzBmjE*3v&^&vIaeA<7+-FLa2np)TNIhP~=JbVD&l` z$F#{61Mz?BMzd4(1dvpfzidE4LY)MzU%HqMRu-otQhL9EF{t?N$qaVW)TOsD^XK6~ zWBmNzC>W-nPadcTU1@5LIzzS_{UapzeuV?8TFV#-&fuk!H3;uekUu*o4EC#=fXjHE zJC^&EZE>dQoo$ViV~AO*=UN;H_KlXFI+f3F(&ZfY#TBOimg#VH-IJ_a^n5MXuJOcJ zRfz&NR$LWQLfPDoCiiN+;Ya=_7e7fmm$ZH*Q8 zwt5&&Nva%HquuR?W@>qG3`ZT@2!X`6Y_!ug=ntWDwIu3h+5%Feh1)Xpz3vj2j%~0C z?%fz9yWG8Sn0729&NSMe6Fm0+4WY4m35uDeTDdvsnEPOio~`9V7M4C)3YX=V;bPAl zFII0GDyj5mIBe`fLvX4+_TnNM4b_t)q-k1fejaEl6V{29l>|B+DxmNE^*zNJXDN%k`;vi3ztvK43_Bc<^ z`8J%@mRazc=CgzL%6B9&vd!-1qvjSzgZlCr$2`3TgsI|kR`8XB zQt%^!p^i3H;XI>uK_X*L{z0Ot*uxRXt9lL^efmA0T$SfK)u0$mD;dR4l+P^JMvNo>D?U)^=9V8c%xQ*xn8QcgYxK=Xk$KqC4OI+QSRG4MH}tG zC6u?%^d(p-!`n-llTfLOWZ?@;5kdLXjiUGrm;nY3YE-GnnQsSV({2+w45rV!^5Qp#BLaB)mOW**wr3kU+$$f? z_20Ji=JQ_qAkjIJJX4#qlYJ50=-u@69icEXz2a)7o&Rn=Ekt{(?Nh>_dQM=Lra?9G z!}?JW)3p7jCzWqK!l|rV4G5RbK}*$7I&*u%rY(q=_ih8%@zKP>Di<#P7+8}@=#biS zyNi8r%nje##`WwVUpPKnMgO56@70+`hvnQVb9Z*>dfrwRG+fV+#5DQWNN)Qj3Dyff z6E-)~-j>c6Ah7n)D1R7~=^V#>o^voz7Zad2bL^6P&jLJ3^??QVpzzVoL{`6>fMr&V zhvc{wyA`;b!FA!IzJ@2FLZ{ET$;@(jJe2jP5M?toFP(>(w+v{rqJNPuszt2etoIV= ztzA~GD(?RHsctniD+-NOb(;z{TbNF5s3z0fllBMEF;rUK||j=bW!?)%gd>CAKKdC zsuV|Hw75%=ShIB=X{&9N8F{@#bDoUOL7{N3J|ErHlT1#E7s{|qiy63z@+eE?0sB}d(#$>^1Ng04 z&A^GK4o>I(Td@Rc3w=+f)z=N+PgT6ey}hK|bPml=4+DGoGz#>`ZO~rzDn>_PRZ4sP z`n(lm&6<5MT;CkDj7D7=_Tc3tb2~ggHuF4q{&gzc&ipwzSY5e2oq(;<{^7lIS*t+{wpEaHci`qTEwkdNOQOz|m? z^)T4c70}vyPcL@-&_mo8BlToP6w`LDNF^50*|Ama>_w>6mqpvKX%3xHkeg7P>U)4| z*4*N^CEZ1(=R*Oap3LVc*W(d^+-6!O*4^>N*~ZxEJPFJ}>*!W$%XdvB|Le>_t?q)! z8gdq&T|yo_Q~RQXRaidX+ZX?|Ao{>*@==D1kH8NI5oZ*=s z^~{i}dmZd3KC%(z2kc3uc5>P|54kuE!`0yO7W6fqBvQHh{YEBDBjBPw1ris%;A+5Y z2Ie=NOgLl&8?zQ9M&T{2=~%RKAG}QOShyT~N?43CA+*sdjTX;5D$L7!B^8Cbe{BT) z`p7k5kWXt)k7M`AzZr%zLnQ|$Y$vhJYa=n+JT-9}wbcgzaAVwIp}#p9zgbg;;~*oC z+fiEmSd_%IaAJ~^6?Hl1Ql9w+ZLM!h`odw>)xq#AlM~0OL(Ro2bLH`%ReU~z@+8k) z$Qm*rkdj)`jTz$xgu^E>53bP0?(|01xY+q{t0$A0_7Rz%Gn?d>>rT{kGuLSq1KtH@`&2p^Z>Q#@C!{vS;#lFPX74{=` z51~!oUxdu4u#@?^iM3Hht2?0+YAu&DL$%H^KHRT~V)D1JEIG4x4m=6lCs$We9NlTA z!_{@u-q$^bU?EyoJT{aA42`fn()Qt`zRq53{vD{(dge-vLZ8yWj#w84K7V2)m67L!$tJEFBV^X)hXP&|f8 z#$1Eg>SK~OP!jIl7xH$W5n?_3#q2_2a*~sE5NWf$!@W^VJ$p12!k9L*Q0&=b0mtO3 zKtXH2g7M3lk>a25$pR?fDtOG^IasV|C__Z``Vb|?r@l!r$Z;jf>3Tg`GL0b8=tpZj zrtK-W5st+cNKPJ{fYwH@56II{j}9v|U5$VSwtM zf&%*D8=%;D{*VsKoZHA7Wzx%+eXGNpS=`6hBpz0QQ_xtQJTTsN?}Wj|?GpIs(8VxZ zHTz$2^Q%fA(11(*%WxlJy zQVNXke&}SqX)V#pJpqNa)^7;6bti6($dE1h+Otn&h~br|9(!ntfe8Iv+GO+PI*2xA zb_Orzi47=euBse?0=tW%fF96M!MJ*9LZnr+G0?s#y`K3g9w4gEm!{F`Qyode3$mlk zT5z1a)_(JMdVGR^DS^#zcEG?+g^+0M`wKOd+jdZ?=jnD0$cwd>BQl;~X_) zrkCS~YM7fYORqhFXqZFNwsZ76%*;xuY6MRm2#iHka(kY9O{z!zfe+y^WfM@PZ1dF~P}vgzToW z#>%-TX7V9#YG3~wLaTRig1_y>Cv%_ZA5D3C2EMKubs4-aUWg>~hUa`ZKK57!#o498 zG2tMd&>9u$P0O)GVp&9+J_hE`+OMKOn@n6(@*v`62aZ{W=*h9f%ZiGbLy4n=1ZF^D zB<1@91rsfkc$sx;gBEs;hTz|x$_p9sebba^0@n*BpNmL%2CPC{J3p0IAi1<0fMjm7pa!iA|*~!gR z?vz!{_Rh44>4N*jhkL8xRW)%4Z1gX`7joa&k4W2&II({GDmuEQ7lDxGy-GsS?bccv zS@9Yq7lum*y}TkxdL=8<=m|Bpb4tP~_!)JNAl^)#1~%;X$=vJuAh2P_%wWp$ZjW8C z{^y+lBumZhnBFG@Z(5!^kf1q+AkE5#S+bv3su+qmB0Ks8q`M&PdS@yi_?1pY`;Ak$6s)Qbe8=iB{z5tKCqK`KkG-CU0y zMzr}}b}8BO8{j~rZJ{KZ2Hyo+W)?RxG($LV)YnHttvSZvXk%OPAP%IfznMs!Ob383545*jCh$n!Kda^K;>F8I1rWY4NAp;)frIQn*T$5 zF-V|d@DD^z*KY49mK@7*qRMx*K<#O+`3`1T{F0%LwMhY0r#wokd-3tGt-X$`7I6%} zngde+fS&CosigJUB@XjSTMzJ}j62G-o`R}s)igo)+P}9t`4pJJ%fT0fRpGQ+cq0*2 zTa?&AtE$^VsZDGL+>M@dr?c8DMl!qJTEeM~C?pwKGMBj7dsG-kmX?$cv1la$_;tSj`9TqhMG?#vW#M zt0G)Fog~6mrqXy)`#p_^lc>-FYQllQtZ8=vpww+tYe1XT0G|XIIUFJQ~%(HWJJG%~$d^_){=erYe@| zM-~pGI3zfRmW4(xfbjfMglhjS07gv01#>^7A(ZB(WxiY&hIpfJs|AbUKB=ZJrgo7N z7mcZD9~dW$>xVK~x`1tK{S2ho6$_!NdQ+F6TkU#9IDcr{mbxML^lN!u|DKCE>e>#V zWvr~Xg_3PD&e5al0ZZ+q9E_pf?16(B6ku|Hsw{7%v{-;gwei1TX*sK~ivMau0;tY68w0Pl z7HF{k-K-#)=S~9Y2{j3wRr=U;nB{zk_FB~lG_!IWR=Z2#@q^!=&=>SwOW^PGuP7BH*u`vLp~k#3cx)5b4Ny&Ycc?B)8}^= z1Po3o$9=m50dIyBAF?87By|3KW9KXOLOKE?Za6mD;m3fTwcEKJX)F7pk6RoJtpZ~J zhB5l+POjY=#Uirp#}rKY%xoL;4Bfn7=F%q92PUKz8CpRIrby9Xi%SkAkxJ@DNJMo(n*=IQjDxV@%j4 z;p68+`2gt@%#H6*Szlw~0K3S4xKw32u^zGhLnB$*$k`XJofTN*IQ+B3uw)+bd8bl6 zoxC+Kn+aRTFUswn*@%J)zSI}xJF)%M*sJkI`^z=DTjC4-60+dUNK z&V&9&R9+lx#O~aUOZxV}{l>(HK!(#lg1CQ@Pbi0^>3Mw#$)mrJ7i6PXX>at*HerW@ z4~e6>st$GehTF9f!-U4&vB!$ef-m&mkJh1LvvWM_)g4(xX8yjM!uez`B)#HCZ--=# zWQXc=mAtjCjDf9vr3j7e;XYtY@B0c@=%dP~z#yy`kf&J=G>`)}N9_+LyWDS*vA*A#_|W0;XTh*Urh8 z$w0~UtQC-I779kk5}rX$7OK`?gQmk1;^F&z2;@fov4K2LWcv#nqv;o{?-?0k=e0;8 z<4$RD(faF?VR+-fVn%5Bck<@*hSu7o^K=*6oAO|=vqt(t_NF(!RYT6v1M2nO5kKpi z^n?0z*%GPODC$F_9V1sdIn-({)*7$>8bRGES1dKwjmtyEHhBzrb(7s z-&TMWZB|)E&DV~OrJ(Nd1Wvi_ff6dXmZ@u$522phDvbBz#+#{}^%#uXjmwbO z#vJ)NYA&3P^@jF0*=!y^5CqMe4}lI&?z@Z2RpUBz#@avfNkdN=BSCv!kaGL^3?38u z_2L1r@4aFvIzIO#fL5lf)LQojf{2gf2)Yrt3Oy`V(ZHaQ40P@55$LY|m_yp@+v-vijSY)r87(^_iX@y(nt8dqTa}TmiaJ=>ZNLEIOvEo0E<6zd=3 zvB3)Rrn!1KTuQnvr3Ww;ZJ&b>NcKumTa>O^6@Rjr2|WEh5fh=B$Ym8zzP@~lyR4enn5R|4$JGUN}qu=HCHZz z(){BJ2s6s>BxFYS%Xr*gd!Bo3*d)}{Uf&l{PcI4BC(B>F8OIb??MMy$Wp?dAuk}j) ztW`N21kpaFCptM`wHClu-EUK3b^DWhGk;zBF}=zUfqH3{9I$~UwlwsJ|?2U;Mp&%edED#5(EJ&V@T%1$S+9GMjvMBO#0d z`^MzY@HLxf1PfLcS)-wa%AbGOo}GQDy^%nG^`6Iol-VQ>6Rc~V5{Il!g5Z`S3`=wRuePhzbZgW4~!$~H& zgsjI{?9Ut0nMSK9s5d-}6%$Q}oAI^v2HG^JCE6|6DOdmB^h0*wR*7v?r2uSi zFaZeL9@F4uI^OgV%FJPSsrnq++CgvNu2*#74YSVw=q{}I-DIZO-P-Tqh(=#DGfoU( zZmdjlD$M45A~&pSkyv0v$y=W)TQwYJ*P`8Nno~}r*X;5$VDR)gAhSy4LSysLX0k;; zzm-ti@t08C_9?Ut_7jWu;5@L=FjMWrW^;WnyT!DhB`DE7ix3+%d60CscRTT%izx?3 zyMVlEs2}U-v3mG{5&gzNm|JCb>_$*z64uybW%f%gHzm)CUdAT1awv-F)zg6j>*`CA zR)4S=Kj~h+wAHHp;$7_7K#I-5P8NX=DXpkm6UUhGKtJ3*C&yHDi0F$0jN}*d@cXWd zvnUz%5TsgBH6yqWXIVUdp__rBggGj=@O~6Fg0ld#5eV({RorOT=}M)l*LN@13|mFr zMY#ovSGN)--R*zC%8HA|bo2H;3Cj0>0GHnQ)*L6(B{B05-Y9W7G_NM%Bx_!S9#DSh zw!+EMzT+k;)Z5GpR)a-eG(`6KOQrBBHMcPlBk)?()FA|ehz1)BS zrS=d^ExIGfwPK!Pm_8tD68Ax^h@d{O&0ZAfCG$&G!F0>uFg^;!lv~e0DA$G&0TugY zfrFz%XOpYinG>tvTz!x9YqPJCeR}?*dD--MlQ-rjdCwbKSAU-j7ZHq>oCTsAF zS=1Fr`G`A&PX&#MgZ<_?Yq@rOzJfjR-z56=y5c-@Q2JmecrV(5`^g_*tk<~5$aV0X z5V-&RN4R^A75KOwqLOi?89kcWyh_<@E5haZSrGT1h zTx$u9PCQ^-9eNcXYF%fCGm-LCI<#AIT%~GQkpPu5Br)^u1!$(*C&Fx$i2!caR#{S} zPso7pes)EU-gT(xyg~L2XxF^O)!Aj!s6F!w7_wsTk|?G+)|RIGYHUVn`zFCPhlDZ> zI6}4;8^r=hemis8EN|12^bdNnJCWC?WSWM$JO4pl>z{A~HciiX^BOjcy-`NvOn{?KkuBhhrvzrm(* z9Q32)^u1K#UYA#(kWOw07@CFl>OBWI^D*-_T+EEQcs{=SB~J^FZFo^D@tf!j9S*@alAOB`bwbgdaQHs`Mm|)_0t{;AuqI99Qu077HYrMKu0^>Q*4f2F3caM zed;bSE0z0YmvEx)(Q^&==e@#FW7jY7-0ua%$lUJmbFhH=51?XQh**t~6QPT_fBYCE z>OV^laqxer^2yBFnu_xF(MEs5?QtFAZe9)o2xia?l(N^NY0^4@59M?jqp~?Y}5wN4=wwJ=F~tE7!hlh|P9_r?notU6S2B4E?M}^5(4F z{4G8%$Zld+?FNyM?8yzenLLR~bNHlaK0sd(_-y@46l;D7RB4wZNLai4$F(S&YYDSn zqt{48+jc?$ef&{eW>4k3E|=G632wh+q-kHa5qfR6^i#%;e_gT%UEFxanc?9o{IDdnUDe%BDaWa~pHZ z4gg|WmF!6zqj8rYS%KF?Q1l4EJ)(?2qn&(^hbxpf2CvxQU@>rW zFT^gIuz=beFKBBHTD6uvql55_K3GN<`Xf0r->7>5%vt~D;HhDj8V8ijo3dd~i_b4! z+4X(|c4s)ia>N2V3BLZ~5=~X7rN~z6f{B>bp5EDY?PoA<9@G{;XtfFx8Ee>~Fs`Z1 zgJ^U(9o{pB4ReE6$ns=n{p9PDs`ZdQdvFvcsYbQ%wRW#!AosOpMT!}iHemOR33c#? zBHrYhsx-<(yWE?Rq5m->0^QRMB1cR|W#VCOjKdl|<}KN-Yb&upe{*`1gC$4~Jbx=H z3^qYG22&9KH@>p}s>UnE+90uXL|0PBh{&^(;yV?23%dMj4=(B2k?b-%trD<*89N(6 zFGop9>qJb|%5I>~vdh-QZPxP%OC7F%>q_>&`6YoU%ds)8JJ$fKHk(axuA$rA9j-nf z!GurVWHdXUG!K6qSJC%KJg0|`TP`|(s>yhnlc{erL=S}mAHhZ{_SS)Ol6h#Ec# zF1wLM~}>@k`YVguu1!?yV!NICje88-?Egf ze>6VQV=hjm(ZUuA!rUt{$GkKy1glprAz)hFd|*?x{~N4WQ66I{uht7~tTGeF!1CEl zC~apjK~<0Tz}OsmORhyz3Awf9{0`{9y+$eXxX(ajWqlWq3fJ2EP`>V-Se0|KJfvbD zGO{uXeo3NsWh+2yTrP=otckthuLu1hy4Cjw9Oi+maMO1C0yuWKkZpFsEtIH19-f@J zQ67V|s38bZZ8+1w)$kR0WY)KEh?>)eVzYPkNO+xj$I!}{JBotV3&5*ZYAR~jr@w$j zec*I@HS1if+0-`a1EREb_381g53*%PD<4-2qW(7vj@CaX38o$7;$HinHa&Bw zs4%GDjgDIHnLu}=orsF5!v*7+7LZ5Uv1}69Wa%{YCm&`)K6O6`w)0n62<2EgjoMx? z%XG4$q$4KiQ>P=_@QPeP?Vz%~LziZoWQEb#3AYIAl!&@N<`zC5HcpgZj z4&BAIv*o?isxT}WWwI1(%l#c0G1wC)Aw=6*M3mg#i+r-(TWn(0{7P_VJlMdjQRVME zUWSep`TWBxf?9PAr@6V_3$`m{sADdf=7TaOD+(EK$O*kx>ja#tstxdR@|Er=$)3Hp z1!1N?sWjZ=$a!_6Q8K3fEWHnsP4~FB+J8@>Y4s;7(JOSHST<+QH0VFdK+$+Qg;tu^ zKr}U%js#bB`^6ICX3gh8zx$|QEJ*$v*<4$nTCGw8aetnP5nQwE$2WS~20Yc|SqxJ8 zE}H9PGu0oU*RFXHciRh_i$6Md3URppT7|Prt#mMrg5EI3(9U1xk+^vXbXv<}T$O*w zDyPfS30tjt3jt~Tuq7~@lsOS51LdV&?_cx(B%O6!7TMRpZN=`6v3qS-*LcRY_}R5~ zjNOG`3!}7zNQ!|2f&~T$h=I@8-D}s_y>>t9`#rq>%;!FL&OLq3y>si4?q%GrEKO|0 zu6nnIo`~7{=pI^q{ujoSW&VcF-qp~=%nyZ$`W#+bQmE3;B62%Sok67(bX(U5CW zp11meE50x@Q@)S1M>mGRGYae*UW^C#vtmZaT+zQkI|&MJ}wd|bDhRx zwDmV4kb6w^#o(D*8YVT*SahKMk!`$SyDE5m9r0k8%jOlw!bkY0(o~LGDjzbCPkEac zZ#TyI;OCb16ULS9JxeIF>cbuR*ig=^Sp<=W4qgf^O+vuy9#6XPY&q3YE0&bWM%^gg^a! zy-k2?AMr%_M#A@#{hDd@}})lP)=}@Rz1tXrrIni z1$oZPo;daMmDb!;`Idb5F1O&yHyEAi8}{-okioDTfwKqm^a!TE{JDv^GU|HJ&IriL z7=2t2Px0!CNXohi2yZlbwHrFGdT)YGu2N`TS-Ka!nbpRDM!UKe4Em|*8Ss9+6V9Tz zZVN~3#H+ZkQ6y_(X`!6t(DZs9;Qa6>TpLr{d-FDwyWbqEe2ELq=RW9_1vPxB-aKhC zHAQmyaaW8T4OkCai6`gy54Blmi=Vb{uVo$lZ13xuh zge3sDZ`^EDlGM95^_P!_*>RG#qJ!oG2od9El>^i?V0niQ^3XbJzFZ^Ss0#;)LJrl$ zk&Gwn2{^-b(heJcN;=b9s9YqPta752^g19jb{~hV`KXxmALA_i%j}SG0Hz*|5f?8V z0eWqh7jm1KIr&~Ky^TiZALkLuDx+XHJ>};jKtg1MXng()qZvhhqcS7CTB^=mB@vnb4HT?Ca-BD9g zt!2rd0EZ1%!D7gKiDjQ4RC}La1>C`WqM2KZ;Kp<-Df-QP5)3!HE7C93IkA{~l{Uum z?p@aUO?uXUqxl;MW*lT5iAgg#gQr!^jl$I7avPQ5TbjJ6r%%9~%GtuA!XZC_w`QLw zu^9VPNGaNhyPn{Tc|Vbw;D&H*Wy%z?cH#MRA6p8;7@zlF@SFrS-jSE zW_>qw_#jb|U>n5##}mRwf%}MRZrqGcEN7i0ue$FI2UoBUKB_opZSQSRj?d-aKT)SL zOIEGT*i;m0{xb*>^rl7UfPGRi{6~9VU?!WWcG2Fl|G=Zw(5Pgpueg)D^ovi})qdjA zO0aY+MQ^M$+UF18&m!v~+VtsKKvp~nr6%!>Kg@iswgJ3D8*Kv3I9UTRM{jhY-Wzzd$@{RRG|X=AmI@%v$lOxvSBN=3mX1n$R2(Z=;ca$}YfqJT$fx)cVLW;OAHPJ0D>7#{B!IRg=_Ay=@C`cjrAlsz3rL$yVP zAnMCcVYptbsF1F3luUYSxdyuj2T5r6Izc+r7uCS)%**$-+Z?T*V>r|OwgHkICvko& zr&kytMSO+;USx)ls3)s$`o5t^s=CVGk*aymFSY+rYGu$?AJqhrtkNCBdFI_B`uv!+ zqauH<-8RN~*;j&Jdx6Hx%sk{=J@hU4SNq#8!L?#mB+q@$3#l2@5eHRD%f%zgqavPA zdGH+lD?ekAc+ewQu#%pF-WnQ~Mzwzp*i>DZ<7AJ?GT7IO)j&bY_Cl1c%!=%Q{ZtRN zed!{R;JlDF*7%d?%5;(mE6x6ugkDkR1gsp>BdGSi#-M)KIB!lRTtpUiMjHO3o~=rA ztK@v~1n(fx&j!BJSY4JQUB<akivuhk}n>XcK zVB{G-bzV2!NbRXS*i9WdgLlf);@fQeO>tA4TerA4yXLAp;KRL1%}g=8iKuK zFt{PRCSqemq=MlA}u6 z3=fl-Eu|{88OrzhQyto$l zBgn1QU&TjRi&?9VsV^o__LhAwrkgAecy7iU9^4V0E6*k%-V}tqy4a3?neXm$ zu%TE7FUVZw@Sj7MEBCDJewfuPET?y^FR}$t9o7dqbu);LL3Mo$N%etr5@xSn1hjf) zNIV=?i1DWU{zf2#oNM8YM#pIwSHC?9;fw*xHt=>$d(l*~$3n{GSax+>pM)Q3)1$>Y zvtJS@%E%Rnt5hq#oHbzAAaFG*M&h+j(!_9?A@AB`eMpbtZigR6aXU|I!XE0?H=hUx z<7z0R&HA?>t?eJW6hV~yLR1+qKHc64uQ45GfYD=%OBeZ^ajs*q3yz`fJRoSM&P{`= z6S;$9#9yW9dah(~Jl#Y{n=`X6k^8Vj2iK~?GobXx-K_}u=JPfX^pGift=tn-YZU*7 z2r=^P5nCrZp-`jknpn91_zgX~RwU}JtEDlU`N50WkxB*}_90KFA*;%AxDCL7e#rpEEKZRP(BbK8%0sPk{TG`{@^T&mQ#=wr(7$PJRB5WRIbj6YczgV=d;d zE));5I~4h|9-~NOQPUqM3xVaCEW8=-)Og_D_CZ#4%Nc3;OY@_qR3<`cm&;21#F4m@ zS^i6Z>i1ZwOn*ElhZ)`MD?!#SYbs`9msH-iG~GEYjk12z z2cbUvNxk7ACvPnm@mb?)5efDgbrvJw?-`<@alJR9iBXfNZhwYu(C6|Tij`tW=O?xx zhhF*)eaF7EaBzQWJOD2CQ~<*0Jrj+qFGU#r;&mvf_mWYG(PT~pkWWA2>uf8Ngq56i zkbPJujBBbb*4iC?uVD_e)-R-1yO#b3cH^qxKx*4T)GIyXpvtPHu%5XqnR@qYc#YLM z1~*Wibbz3>A-lJoO_~$Xuy!)Ui}HXu5L7-s9}MQ)q4TK^9u)#>U-L0D^uv?b*msY9 z){OBd6sdqte zSd*PMLh9x&w4%1T2J^?ySF34gA4POQ4$G_oYW4#x0NaR~D zU{?>uH?BtTfm^2XBAD-1Whv-uNzyjc{NY>uQj?BB5ATd7RE592Bj5K&>H18$Xh3Z~ zUQ$WE|9G0}?PNQH(My=ta2BzYj0PCSjHw2FV|oYlr@#A&1+2b3ajyU0KBoUTh|5^_ za0tg?*>s~6Y_S$14T{2o_A{F=QhcfGNh7@hXq4ja5K-gg&(YPMRR}LV{~Y>4-FF+& zWZnG^gVypxNsw*aPhh@>K-PS?1tlqN1Hfi3iN)~xg8a+D^H1+^aE_UdmX%X?{D8Sq zfnc?~n4WWZHWiH>dy8rG-=AQ|T2ct#Q2P3b7tNACiPtY@t;pOiB%Zda8z$2~HzKj? z`C6g{tJD89geZFogIWz*;yISfpW+t-n@y(tVkKHF{{B&Qmos(0QA$v$Cuvx(J zr~1|)zT3teggq@`5L!1*_1*&qgVvGM%<`96(V4t#H#bnoJ|(qRXSA)(I*OlZHQ9Q= zXG6Ya@Z#3TAMt!W7>qxdgMO6rGG%1+?lc8DV=AM5{nR;FR9^Q&!`91Zbf4{Z#rN z2Gz5j!DQB%5Tr0S$fZPjS`}%O5|{?~l|-~=?ytyjAji1?Uf#Gsr=tYdk3@jfL1A#Z zbr&wE1RkRkH-iJPw$`c|0-NpE(5)4+e$va#;o( zn04CH$jIglRc)YS0Qa+WjiS0$>PkQgz7d(i1{yYY+?7T@X27ypcJ`3P(O2r@a^W-P z?X25suKj_m?z4lb=$wi)>V=cy$GIn?T5V2yPd)+KfkpZJr(~k^yy=M1D;F=-qcbF` zT5LmyR^{4IRVy52{l83cvZlJi1H0+}HHol0)N*__nAI23#;{!=42)u~7)7a;9m8vT zS|P7>p->=1&sBpjU0dr1%+{);SFNIaKWk6+V{L2iV5ym+p%Z0R=U6-Y%vQpx@wF(- zs}qa4Lw4?A0!HoHa*55+btmRFrv;*M>r=B$oPgdgPHb%>u*_^1vA>oiUz&QMuGqlp z=De7iC;l1mF*zHJjLPkksIRt9tP&cI+~&nHYpK6hngQ*`4dgPndvQP*$AMGg4@Lr! za0QOkPqV~&ljU+ZGjl%}&6%&@OWS+S%jU@Zx37&&@I%Gx+x5g5jdEU)(DGba4uXnJ z5!je9I~m4KzugRCrJXA^8%JX}7V8KeBY8ccs(Q&4f7-Nxq|o%3Ou&cMz#it{HUZF% z&KgeTlzR(}xXPf^eI^o#Y7@CPP4WId0TwE(-N)ORJ*ZJV+Oqz;cQgwK1*QvQAM@^{ z_HvFxrp8AOnq+C7Q)`JM#r9Y_j9_t1ol8?)NQ1$5MLZfO&Nd(H*aUr1nAY(W) zb#?@sv?BunJbQT=2+kBoFyqZcjT-kIWDhf_z+h^o9m2=V5iPKavOS0akbbzQXslr? zY-8m2Ob7B=>=uZ-ea8NJ_c~F$t?))dVEJ7zo4@zNv34_taL~7L_>`>@?YRzTMv-ms z6eWifjORrbLBxth+sdn;X#NQ48TQk1wxOjpeICik{FQZV#7An(o2xdWu}=TRz*9B{ zQF7Rk2+=*W2s6D<6;iO7y@t3^{ZMg!b%B_Bh5UbtUgs@#)$NZ#uTPX^OtbW&-H7Qe zmlP?v9wVCKwFb7eZ2hGxd*A{dJv!bCoaYvaiAF75!Lv?^FtX=7ZLK2b133k%?Pek} z1{J8MPlthV`qls>OZ4put`7TAu971kR?y1-j|^n>e;x|P6=#Jr=cY^HHMk>wWcUt@ zgtHBmgv%+LXk{&axr(z~~qtDiB8 zn$x?nn%RH+Ts{=vVJY23{!K|6FGp?k|0P5Nm|g^vsw+}LdAnlI4(bOVfP3YnxVYIg z>&{2-rTe*EG?+NF8l~VjN||T={0ZI+f#^L$SSmeE+E4XEA6Ad|>9CaGzKNQ9K50BJ zxQO(t|A)4FsFqE_Qs%Q@MB~&Qd>A!nhJ*gis=pyMMS6B+S9Ne25t}vu z6H`}gda)mxHm}s$$J-%BhK;>lGAvTNO_gvs`H>pyrR>$yPiNZ*{_j`hneQI9)e;vF z0@`~y_@|Uu1t(gz+9_bZm5gs#{_VW!KOUnfZR+MNHpjsy#G~5o2-Y#nO!0$KH>t7C z&WWPsLZ-mjg1v(%wsbjqWt?vhe@eTo)6MViV+Q?U#&|G{T>^If!YwSWR%kpIzQ1h? z;rStqK(*%lP6OwLsSAJ!XB^`=8I3qv$3mdj8nmL3)iD;bx|ghyX`S;dwetz&FYXgw zh9P*tJA{+6csdp4+m%>Q>pq?MuzJp(PtCeD5nvDOgf)~U?Rcvs+R?gIY93N)hg8w= z7#9+_8daE4NW%tnEdBRmWZfxr14LWz9ZNa*fbdxLG`dneHw97tW%q!MmuJcUDQ_^H z((Rz6fQMiC!E}oE+gPqe$i!of#C+oHt6nB@E6k0B@Q`-^BC1MNnrn|D zB_W+SKm=RA8;S>}xlN$lw5(`6Y=E~Q7_yjh<{rkeotzQZD7Yn(jkg79Z<_hVD@Mxt zh;s1|U6#_6`(2o}yA*5Zu&5j&({?>1c8x17wjo#O5Xm_a4nEP6kHk{_WpFeVCDREI zeWBbrYo7Uz>uGry(K}XL;idZDVZ>t5L&O+)B?1PnY?Y9UorWCBc>!G3bT3#6{cj;4 zeL94Lchr@gu;I*+6JijrR5v%+MYUT#cS!u}6ihiHK8jDmUo5$1zJxck=sG;p%sLaH zgoTfWiJ0@)PhEIxDfPKaA+J(%A`+?1)5wa}cMp6`@vn?^)KPU7z)MVn*~oaX5VqGI z-h@Z@=DxoDT2Ri+nW%H%HnY-LEYXA&$A9T zLKS+AkCe4p-GEWui^HL!!~xBfv`&}fqfpD=pM?1!0G zE>SyD8|&!3->m_>Yc=$(v}r|H>-LnjAbZd*4Zy+Yv7?eXR;OGj4&sVpit`6OfN|r| zP#7@>#-nm;?IN-Gt%`%!+?Y3!zC^E>FDSPWmQSwMvZ|%QfYsy+q>Zab zCsJN;npv5>hwwh@^8gH{{%vvKX;eI}sl0HS4MXSUAL5i_m-yzb{wvbPP^Xe7Rgy+VqsPSHgkZF3+?9^sTDcZ49q=8=jbT6WxclCqGG{x9 z$E7`qhtDn5W%zL627GEha@DvJc~yMp=569h^DW0|Pkj(<>D}}5Qk!~KG}P@rU!#ZH z17}R*%>pfk|W9bx5uKx4OzQC*X2bCdRZHEUY&zFF zEkRs!;zm!xc4o zYz#ewYU_;Bt@X=%X!|^zy$iMK1pxkSOau(Sx*%h!6`~~TFFCMf6>AQ-`a~vsv~2z6 z!C$8@D=GJB8Uf<_xx#q6uKZX~E-kPNE^7@G?Nu&DYS8c2SVzqbxtq#*EXhUdG9i_6 zP@*?@ycc7>YO4uCW5CqKAZQ(!PPs)TxL2OC#Oa8YZEHr2!$G_(SBPpgCD@bpxr#*D z_>O(F6^v7INCF#Ko~LT{;i-JsosJAgcHm*w>F@w3y(#L67O!^_OYPe0O4~Q%6XEi& zAt*;RYcRJl@idy#CVgB*MZ$f|pkA^hESeplY@OUkXYR9_kHaGJCjsW%2)@4Z581@4 zYBxh@Qtbu(i2Ljih&5Y@RrDWEHo{hg`B=qxkORVIcR${$2Wpf3%+sY=Z!VB42~^fF zG@^e#I2kOfU*W&{zHd8`B07d(w@Rf*{#nuk7_02B04`X4lLp2HM_}LTkg%Vot`h}8 zfdKJ>8pSe@VwEhso9285#vzx`g)zIKL|dP{@M}iCgc>qD7HYnXU+xQ8Ut>wq^4jkWHj^V5+8Rh2-EtL+UzbY;4%>eQKz@t z`5&x%t3kge55q& zKx!|*CAG7|(4Tq9S!}U=KK^YKS?(hUWM#p0$-zKK$<-e8YR_F^w5`k#oC##|%@6BR z1e0$?g4_U^vj&A}8I^HKYt0{SJV$1xz?rAStD+a%2a%c;cSB_K1<4FGCx*k?irg@$ zf66++r0$0WeMGZpYWf_U3&C0IJSi`eJNdLZ&A_ZomYuemU%Oyx2GoZ&HDkkEJ3$u@ zgXXOKs9!V2uBPpnHS+fC3ojs>+wdhbvmO*xlLW>eEoNPVQ6WhTbtV^TP+D~%>8o>_ zN+-6x6JljPB;wWJ?jexfas?Y{?V~}g%v?>qxw#5{pa(w2Kdd%KFp~0eA?~F3HxPq4 zeOXG|Mg_@ceHMGrwALwfp*_#QRjhi&QqYe3Nq9BeR}ZB=y%PcE>MZ&`Hw4EHVEaBR zo_%mHwf?4!K$LpGOD!rGnY3uR!MfXO6FNsG<70Z*@i-ede#We|Ggvi}xe7lnjf%~q z-EEF@wPpjcHAf_ysAU_T`RB{|usL=&?5lzGs8Ko>j>qUzKZqejG#PmQfRLJ_U3Oq;8hd!SsS zP$!a0VLvpiJzb9U=BNeGRJ)adzA|ACEF11q#6vu*u7c6BW#L?LEs;r0L;0@Mo=*VM zESVc8Ri{@#7wW^_E6~m`cJ2N!ZscJ;wy-%SGT*FTL-qOWp0uwbyeG?$QM(z61ZMyCJdK@X6UVL{bdM{mqXlKc zUiuQXai=~o45J}B*%ZHj1Yca7=r6aAZ+Ye#gTK{%A zM62!~dezl;P`kG8Z7TJ9;>e9w&!O&!{i#kM<X%TH>H5Fc&M4RyCH9E`IFuh}!1m*~x#ku=G;R9jg2X8wwM{>%_be7e5{xcD6YnQVA zlGU>>Jn4<qn4Yt2zTORT6jMA4-$c ze77Fzvz$MYAD{!byJ{p1uQ=`o+^RIBx2g;hZO0{(Dy>~k3lMO^ezK1_dL+^R#{%Ke zX#|EguV%+hl@_mgsqC-DJX@}}V&_K%R@oi99*XPb`3x%Un~Y1e)$(`7<{|mFBlUK7 zKNyX_V1WFrOrNP*PBf|J?um@5tr0ogd>jY{twPokp>Ntw5NFK5T|C~1@;vV**%|+5 zO*Iy4CQ@%tN3PPcJHYziK0wUt2iz&Y@r8!otL6@#r>_&0N^dzusD5e6SbpI*(Ou?A zl&^m&PFjv`9S;352`EsjKayFQPE@u0&JTu25Yi_K-AYSL=9S#hm^I; z?g*yM$TJ$!zvcT+dpY0WgTs@est;d6`)SAEMO~Im?3j7VEu!3e#wwe`&3`M(DE5U( zrs|TT)$j5ToW^&V#IT%)kb8}#dN2rm8Vb{2g2mU4@0CV1<)Ue2a43U)w>VtOI($tB zu;4&QsP0cOnAM>t0jnLlgi2JubJ$AT_`{u}5)a8oR_U(jOTFJ@CmdZZ8c)s1dx4Z! zJlkwzru-{3tmW}OAgCle4V7HWx5GiK4U_2^BgWad7_krXDQ!K_uNF`Mzt;Q8E?;AE zC~8t#9fY%a13;|wJtQia>;nRI-Z#cF#>P$1D0y1oI!(q2^}K^4cycuiJWY*X3MI1) z(f``hh3l$6qh#xbTNDr-mcg~wd^S8P&dsBM>sA?0Tt7;XoahCJ>3jrhSg&VGv?R$T zy~c^xl=YP_AZH9NOER@;YUC5Obmx^^ng5c+V6|<609nk#*@~c-0)T<;ggm7l&7mx8SR1*c&`|S`s$Y za>+gd?a@QrQmOZpr}g>^UGh~ogg0joX7mzEL+d*FM(F*062LeMNG~p0dwu)RNIFyY1E-0*CWB@dl zb%8l8Y7p$3|8{~#(IFJAudh&{89IP)F-NAOR3rFH9M3&N0XH_w(t>(kZqC#;`$a+U zN`IuWGU|u%c3vnBp~NKO_D0FQk>F|e9Sr*9Wf3oUn?P19yf~{o_3`VFct9O-wF8S~gqCU7F_2x6Fyn zzknB;YYrl%-d-65q5nPc;R+r+O7C-s;_k zlx9_7H;AMAA#v3U6|ji9SCWqEG;%gCvsHpu<%66^u{Nhn<9RKUfkSYSIZ&Na9(vaH z--6w5(HamqorN2<=#pX3{_2J8t=hBVk>L*&7$tauzs<3xn&i=GS~zodvZ+rU`DHFG zYcC^sdv0C{ z{WnwJVTa_a&lfR;x;>fx-DsCVp3okP5i@1`o>ky9U8Xv1A1KZDK{V1!SM*1Ys5tba z+%FnV{h75arWc-v9yB9^$)g`B(KbHi5_f{uB?%|cp0HfwX#W|PQ7e1%wf=iE+0M+A z-KR!-4?b+FV zqE;pm=&fW^k22Ce8<-hYq|>-oEegn^i(yusRcs4y$Mwc^hgyR`nX5_DI@O4@N$Wfy zUn-v7yvYyo@5f_7rPi84l1NA-J!)Ia(OM6DPDAtbk7YDG+MAc#d*NM*XNjGVY}qTo z&T?lh@#eRlC6qsUGU-+49R^Yth2Uw*lu|U(9~DmJ**Ytq?kdTW zbtBnLro68nYX{I6&C9x3vpB z!Uh3;$^t}r{*-)Wn1RmSLdSkIh$6L{;B?A|wqxQGtZJZNi`p5O(4-DFs;dAg=? zWFSED?x?JL;#(ahbs1xBB*WQA`A;mZ_qe4@I2;pcG>_f1?{{}6*xkAg0I;^)8ezOv z?1)x;)jsep{7qJFHUaIagSm%~Yp4!NbRS?H#qngAA83E(!)LALQ2 zQwpxF$F4k;sz2aPiM_g;ayJWo7;oo*QgI91Wux1YO@&5=EWm1aic9wxHEY_FZO4|xKIvBH_aT+43%VnxQE%K_ zKvww-q<+ME;$3+gKMUN~WM_osae6h7W53}zW{VSh;LUqB5}B*dNi1BA5MR_^Aea7J zzMn1Ut)hnik(v1 zPT85Ot|;M8qcyW|1!I0eOrw4r$>-v!Nv6%wC=#OP-lpAwF0l@atKsFv?oaxKQ}fTr z`LGx0MhIDxJ|LhuWlfyTQEtaL=uay-maCA$5JNj#3XjtV*1_GCx24D!`n@d}Uk&V? zgi;=rr2Ddbwj-ooEt!D7=@A8s>r23ju_+SG=m**T$8I@R%N!25-AVN;8ASE5;p7Cp z%%Th^U*?~P9K}>zUTf0h5NJ#NUd79gvh1ucUV4;9^%nE#ySpl0qZbX-X|p=lbfk#b z4LNoF4iu;tPuRuts&AmpG1F7RB#6tuerU6u$5MTVC3(lCCPzS?{}ReohQGk#TBllK z+8N(gLgMgTU&@CTQlqzNA8F@^(POk@#7rVAj4>Z!$xJH)O10w(RzWXjPY3WpQ6kI? zdn)uo=kEu+d)LLFzvl3ye#f6gj#-4wyL{6}z^WPAVGV!zlj|Vo3-`pK`iJN7A=R84 zN8j9)Bw%jomkE+{^C%lDJg33qzLN>?^7hsWYCcu&YjY&ajq-d+OI|s<0XkZOY^Bu~ zRZjyvhawJr!Ra6{b;eVp|C%07P1-O!cOSG*glK_*j8V?Kml28Q;BD}B<0eFv^v5`s z*5A$?^!gljnitN4rc9$CYc;K(N**25Mm~k=pCP8K()p<|VlIjTgPQw*Yq{GVn3Jg0cwe*v|I&+9IgIkUrlV8i zW~o31FWv^nJ(7`1Z?*yn&DPmbuy!l-7?1_zAI8-h1?N!z=jm9sy|5kW!Z9B1@<{HO6CJ*HWODf8|1zffvN|(yFM!39L7;V&T@uDg zN$c88Lz2otBbk~%$H?cf}myj(65y`MKKw zTuVE7xFQt&%7K(3#0nq;9C|(l<6-PY=FX*XDHdKpRm;K*ew&B>XuSNc-i8P@ZUB6 zFnG(j3%FJ5V1V6GHiT%#p)v8TDa3 zFitCAS-Cc!+^RQi9QHL2I!Qv?|6U|WINR|AuCJujH`ukpyBT>gz}%r+Kc4v-ZSrDrJqbjee}58wC6OmI$I<*|3iGE$ICn_Z!2Qbz?1twXUb5AT^;p!YhvKItEl%v_EFaq!mgEw`^OL$W^&Rs%zvQHh_ z{2ad$5Vx$;vkMNug;CmTGS8eHBT%iFsQOiaHO+Mt3Rha>=dD_Xt+ft)4*F3y-``B5+gZf_Sw7Cj7UIhD5xYx% zB-BIYFBq(Dr%{AC@H>Y1r`Z@9)z9jz{|Sd$xI|mj9msV6~j=9{`@rDDTxhM*w{NV2Y=OjUx91u#&f~j@EuaB3*Vqh zrE!uMZ6{Zc1ZB;hkv2zEIHFpIxn{sI&K;skwa>IsQj%~GCAR!VTE6uct$y3P4ZvF^ zqYx>r$3)7-04om_ze%Y~%Yl(aIq$0;&9*Lcwgxz3|p5 z*>R){3j~{bY?NTQ+>IQe)t(Q$x}J5KA4+zc7|^3q2<87S)04ZlSq!+-tL*^3kr^rD zbtKZ7rPIYNlb+Gfw3x_8#V(@{7wdPJ0YHo7&73FtG8h60?P5TbtuO8LYKNuWr7cqa z93?7uFT4!GRSF@7cC?tp(Yc&$o%-dYp3rc&ddzKS~Z$7|qM zd3tFjjcQI1yKR!QaaQU9;re}YD6KZJ3(3)~EY7b!sI%D4Mx`LMs!fu$4QuB7NZ8nY zn$c`dbp_bht|XHy)yKfEk@M#~o^=W`0MZAQL@=Xf=P>lMV^w9Ih5khjb98S%5Rd&x z?=`U)Zeo2oY}hyi)eV+{Ke&RT6_^sT(S4zwP2Hic)Cj#2P6?1!YrPZd|wa%dt>bs`p4 z^y?o`l5)L0ov8XhADC7*EfQhUTEmf*Gpj?NaW@>8w;b|u{4WaYTb&O;!zd<;{?-(Q zvi_!Z5SR7Dq7rS~9Er@(s$$=Ek{+%6vP(|+I%5OnkrD1R>hU2E8Xdgotjt8&@T*pn zvo%)I`3P#xJq4vzGHoXH(OHM59|$&cfDwhGYL0P-CDtqw&Oq1`6am<-)a}mXP3XX4+NVWrbo1z zNs#s%0kk=77C~)2`^-pmTwNH}+9mnHK$GdQAWRDlVw|;wY;K}j zZqQs5p`RJMnU@!)`r94VBBWTc9lhtf^tE8xu!LCEuk=Mok9*)SX7}3$>NjBsWqFnd zlXa(#X!$}z0M&l;MpNJ10IfReKI;%qYodH}Z7HNWvTrBt-Kt;*bw?24sJOo4`~5?) z=}7XSt{ALvD@>xiUkDS{j1$OUJSM3Q{_nA&x}(318yy*jhpR|!_kZTIn9 z)oZtm4_+-!0xt8h&cBft>?MuJiDSAE*Yf1C^z!Km+#ouOr)DNx=l#S^4*CEnJrW zwUHBG!Z_xRcNisnLI9sx1A&Y`ix83O^2x(#I^+zA#k{oK%jTGH%b%iA-WSPx6~NB= zm?1iiy6G@xCNHIt;=M=o(o_B#!f1PLB?yWgKrrRXO=4H+dm;jOj}M)wIeG;_v|T$8 z!7B0?%!>0Q!b|DUurJuwl!R|<=qH%f&*h+AO*#aAZS;TGw_fcy8oBm$1+cUmQ+W3V zkKx^+W7AokUL-n6at67PypG7wPrMg{jq=b3y)N@28*}0G6a{@5me@(VKqPL?Heei{8c1QMdV)UAaF^KUfFT9&t zeFjb+Wdc`k?bMkj$Hq%It(hnuQILbXjxGIND0W$cHmpsDskUa-nZOAyIXY{)M-xw) zQ(fFbi8>?}c5H)Dv&%7J6XyW@UPekqrM z9tM|VQX!zQc*RUN8too?IwY>w*VXlUJ_x-!#>3mrw!VOm$OWHjYuT=+md+-2UGpbH9;4}mKx($s+Kh%u7=kQb zBPy)4ecLcq=2^)AJ7mS!%G^k#YmKJ@==V&V&chv6b$yyAXf~FP1I;ge8GG8e+m4r8 z6K#$)Vd4juVhJ97;+c`aofw6p)w^wUYEt&%>Pq)^yD3NeNd~;p@gU?r3}8|9(ISM@ zhUQ%X@15#VwyJH%-rC)hixGQcvMcp(o%hl7K%3c=hc7}wYQF2pr+t0vO#Pq>5I1v9 z+z8oq71C{vYrD7G8BVOBsp>By4%1g={LOxUq7J?JN*rTRzOgnGoOS%Woh#j4eK~EY zf0P9V#Wr(4aO3V0z5P$~&ObAnclTWOKwxc+3>tQoZz8RU83KiR73Z^IGLueK{ntMY zGC42U0lDE71FAwn^vU0cB9QV%{_sSNG|{C|uL{((afz79*g8+#_3;a0$cX!a4;aC3 z5m&vEb$L$TE5xJvI)S(Py%%ElJmW+GJwDS7pDK2kic;$aqOV26p{Fh=B`Ni0jRg=q zd{59fdq&@xJAkp$w<07AwLm^U$Sq%!jsacaUtd*Y9Zj-VKt?m@Hn@#jPjCa}gk!Ib zTX1U#*XIu-n6|sz0$@fw58`>JI2@TP?{bQ&TP~14z3T_`)zA%Gdv+cq=5PM<*|AWj z9o4~AGU48B8U|9U$#<{zdCY29TQ1i%sRdSS2Gf|$WErD;Ul$zUM<-8k9X%qMbQasz zxLx`jHA#vf_KB`@2hf;m#;%sUf-0a6QQa%QZ#6NIqHT{fW zaW1`>a+7gUl-pO&6qu}ukM+|KN9kSx+Lr4;Ny`B{rLED7NZRs?9Hh_AEq2UZC;*l= zkJxEv{5(7kO$={}e$DWSk#@$r-GrUAH`HiDzn~|5lOibB4**{K^LvubF;IsO^{E>U zu9VKYsI_>0G2fmXQQY9N3W1d>yHaTLG_}SA9+~$E^B~R z-ajP|g->%%uNDR}C&m}yjp zXsZ8~C0eurh;p?dQE0?(f`mHk0DhsA8<@)5xU-$9uhJ-*nn7LBkNSBUkb3TfNMt%E z|7N2Mj-p;EQ(KbSoILoX`75h;e)uRE_=1&TSc#G;THS230qJYhLs)%Ib>3QuE%Axs zhb3{X?1)ckm7nlZvA^BLmWxcRXyvIyNU1kAVGpaF6SKQ;lm zm9^uEFQ-j-wzlv%HZaWx$>(d z!{(Thb-j7-$4F;1mIXV-NABTK7B361b3sz^UBAe1OMF(TkiK=cv>>G zrd|(<;MsMf2-@;6e5u{I>w(YQzPO&+s04}7>1Qgq9+ejG-9CHR1)UqFjSqRTPvJ;( zX`Gj%2S&NKaTx5?DwwSniP?;Y`|w2NVPmmr-!kIRz0T7^8=i6_m$D`{jrwy@BnhL^ z6MS>{C}*mNUYl#fwTeMPzg|4j&OkGH3N=f7=oOSDUnFRnl}WNYHqFEnEidlUbFU`=}VL(GuY%^=YD=zbu$c_Om*@z^%>8FT(7O^LxdsM~_15#*Tq7 z$^Z7D46R23v7mSO3-!L$#KE55;=B9b86wQicjVN+oDEXtzx=jxoJvQCE7FM?vu}m- z94LR%q~sj}Tl(K$4aS<%!I?jDr9pjt&_2N5XZNG*zMNSJw{Mb|u8tA?HCaM>QfAG} zAdfAcOEIBBEY+ntY@u9Y<8Y8axJ)D~TOZg#-XJewst0U@S?&29){XMZ`7q;Hu>r8` zo1NbGbc1!g%QH!W!SxN=Qb*4c7MmU2PW|2f1dM*Z7&OckBhirZqCha%Cwj!Pt+)oC z3r}~7oz8706pS45502`>nPJp4&ic2lHKR*&Q&7M4HpjS^;&O{}AhPE1JBjBcHw>qr zZ;_60b^gVN8hx1u;d}pr#JcYqU~~K%xEy{Q*Mx`c7jaWHZz*(Rdc61LdAT#VtT7q8 zz;dI3H#Fzh1f$torXJNiC;i~%Qy)oFJ~ffWxYi8sGP*f@(Cg;g9^f2*VF#^VdAI=c z$1kucJJtzgK7Tx2>y(#HX?b(e`i(Z?m?e9T0z)~x0kazk+eB9dEAE6|tbH6O%x~i4#-oSZVJY}- z3PSyQvpO0Fp4CIIjXyYMhVU53JcR)dQ(1Aa1(EDbGF;z zdM6bQW@IFQtliWQc$)bbLDYuqk96cr*$Sn&M=)SIX3{Sj!>54Jc=sMDm9~?^0Cb(Y zit;d5$(nE8;{EDi9hF%dy1}1WI3C4W53^1Qt~i0})t>uMf;Re?^at1S%m#9O9#>l3 zdxh&+UrLGbA{HQt;kJ|Su8~RNX}$-sopJaAPt_^w+wp|oQqYf}`~RWa@+9!gEa@c2)#|NZ#EqI?_I>DS!T4}`9|X{p?2M+bA0*yJZ3BstmOwH#I{m=8 ztW9&aL1^QPel+ZMiyE!fzmQWme-^oV{2=U&cJh^PecmZy;yi>gOA}Y5GyQr@fo6PF z8T$6fh1QglY%p|uD(A`w^SXH073rweojQ(S%{?l9_Vg3FR7ZG+P~UajLfJz@LpC6c zhUJBCHiNc{Co0xzJIGRMPuT-)4CoiiTca$UuJLa+_*LS&Nd}Cge_}UpktpD+ycbvB z`DF#@D;QuRTw&m!ZE4{8%BEh&dd4S?fwPvP zlLiAt$(LoC&-7yh8S8vK=?;`fr%ZI0|iSHhvO zz#r(&{pa)aIRF-QdM8w`cPX_ETsyXkYji9#p7IEHbZ^!lHW>tsx1lL>ru+|+d1@pM zrY|TQ36Vwl$OhJ#KRSbFr+mpw7zFRyy#h4V4-PrVOBcCFNn6k;8IY3^$fvchN+V^r zd^sNrj^lrO{?Pb+A%A-WYt!BiGeb_Av^0j01&n4VVOUFWHK?f*9b;nzz@VDx0RMfI zN92HQ!{-92LwTCIif8f!)L|^C>1O8;a@J|gJO>ZKd}X?r8*=hs#MG5+yO}7cyZUnhxm`x z?D9hbX|mM^1Pf&6u=e=S8d&!ArL(Y3Za^X0$ZcDI8T%ZTRnO;$XcW}(AoI{ueA;?4 zHGukCgLX5cR|E;QHyx-p+s_&TuK`S!{;)pe#v3$k$0F)aXh&_1mR_l}Noq|JGAom^ z*tfC%h|N)cC=Bak<=zryY)-6TSc}uBd9r>PAd6@6)MLhtq}-^#kDU`LV}Uo`ef*p2 z7`HJG7_|(SQ2!dWg7(S9L2jf@p|>mZN<8If0lYxVUl(d>hdz4&te&zG`aepXhQ)T% zyg)ufPKN4(8peXaB^RUh!Dku97%e@4`<@gJ#5LJ_SE%*@6nJjbIvTD^TWaGXsajN* z83Asszz^bGDRT;gnU!x5(aKCYqO6vfBAWXv>r~Z$1$e7pIW7^{C~F3P&UOQ2p8i`v z=JcJMpt*E74u+T!3{2GQd$6AAIuguUnSu1E+ITscWaeXczN2;JO?Joc`odjZIY?tR zoa{;a@bcUFCrgimXy{qZWgsb=bs_v~{!qp7Z5YZmSENf6H1-!0O>Y|tcWR?d${Rl- zhjpbc{A#Vsg@bEhHmP^dpx-o-W8|9T`%2p^x<@l;1Hjf6&t<@lO%Y%KaQ5)P!> z_!F`<6gz+F2DyUIsa9W1O<|Sd(qUSrUx2K6+~!Kwt)&gKM-?ombj|5-u^!>7?GReL#vGXk)9T7WFjPZvTYB1}>U? zh25*NR&8zXO>WZq7QuFAgNAsV=C=hMX%8-89wqu9V(3RwnCcndgrcsJWCw?kBNaoNy9j+?;7Z?lh3mtg|0aHp<){OZoWLRO%~j z@um(ET`l_Ep3jg;{mufKn?)Oe1H$D)|?<}9_*5uI+Nh#Y76+(Gh0((dY>bKsC(DOQm&g9dPebb zV$`eWJ>l`{t&MgT)&B&sx&H5!)EvyZF2|D--z2{PW)IRlVNXBX2C7CzV>F_<$|bdW ziyHJq=I}q!lvRB#D2-RM(A46=Fc3Z?jOM@7U2U9m8;X}qC>hb z0H(%su;^v~GkDupdNQNdwvoX9^hHa``srkR&DkVgwX0z}m{zC-xN)i^L2s3FiU3*v zY7jBHEx?5OZWXSTokbHVpST2B)A=WXsd!v~d38WAALpK<*4g=AiihI0hnJ%i?f8OL zAb55P*E45#5dTRDY>dikH+G{utLS9vUw?pmyg?k!#{ks@tAJaK$B0XFGEOHUL$h&jgFM!Y*&ml!0UAtGl>c z(s!0W>-2_swd#Ezz&rLtdi87%45g<&52c)6+(vy8L@#f3I0+GLay{XGWpVMw6%El- z$=p<{E&U>)k#YiWP(S`bR9k}^iJm;S~c~CS<&jgP;>KHDfb}SRZTi0JA zMc&<_$4+NSZaWRY^Xq2(}nn zEoZll^O&pod?HL(a zDWKZW6~2rv3gndXM=^uqF;3j|v7Gv{20sNx?Ymoy)T;Q$u!Toge27`lGd(9h#hV{<)29Cm3tV$!F7N4DMiTE{fw>-8*|z zt~)i1+qs4bNX@^*8{B^h@*lE^UirQbqQ;2T=*RH7gT~C;jYSWuZs9|Q@i%Yv%UL&! ztZR?(n4J9=F#1l@nk_!3xQM6!n3U{-Tl}Z__%$ zfl*}<0-Ku-5ctZGyio}JahB8+Dz*{+Zn|JrYo6Cks6NYFM*Z~)$f{J_foRI=;r`UW zJ01_7=%sGpO!);Bt;>K|YQ{d5So3=g9<9k;YRo1zz^}Z1B?c^UgK5whJEYVS1<l=xo)fo_6`uVeCZ2jM-u}aUl7<(V9vvZJUHXE#wbC8t@!U0PCAd-+hg1H%T+B71 zFhQV%&83xkzAX$yzYU;RPyW6{)gp!UwemLyO6YlvV|8dwH)I{7cj4~i?0AzII5)x0 z9n}B0*cgTN6uVR$yot6qy+~5p9RtbKk#h1_o6T)RXBl2a(ll%w7I&Ay-CdRp?u#xigS!QX01bqMxF<*; z6G+eyfe3yE*Tol?!F?ZG5AfcV@B7o&oSy3Ps_tn!&aK@8scz&KN5i=eahxQ%Tg2*? zMw_5E?m%b#kwEp~&f%=N4`4W1q#-6!RhX~l-V`UZ#+&4HrCvl1(p#(FAf^4?!iUY7 zFHAJE!Vg`kV>0(`+jF9@{$a!|mktRbv%XnQzl zJa&YEprI^@m@S%P3M=6O92ps3<8XSBa1h(?b^vcq$ql^mI2yNk@|ke45;jQGmi1pl z^@BKE!agW{v6-olXt&)!P-+>(Z}nU$I7#{E#DLK#^8y#=y}yvdYIY^k!38;A=L0ur zIj*KI{>Kc|o9)DGuEpR`fkRSh?VFo0C{TNj3-@p?Wq4S)mv~akZPHhV%3Pmq)}k~O z$EG-Nx)}ED7S&b)bGpqkU^>guWy^OXqq)8aF;Y<9_UR5QeEXVqWRL7$gqd)+QoC)udPH``d+fU z{dOQ|0WTD*^~-_3sr(5G0rY4zo##4#V_+*&_#UjJyCnlTa(e_)x|SxiOg;Uo{|Eml zAcu^Eh$?>+N%SI98OIFRI?9D@Yu<2XWsbwZx+eKh@8l+`zP@D{+ax;@FZTX*vs~Ce z{9z;DS9dZx)-xfWYG!~?-y!=Z?P;=Kz_g2mQ2$Q`VXsE|^+aVy_Tky?gAP>g4k6$T zD2MvAW82Yz(Wf)A+HW=x+^Xd{T+bYPGs3}S<~Z@?1;rRkcIt!8td%uDpr5mlPfL_D zPv-8}KoGpHzYqk@of0DRc9AvIkX%S_o_mAN)I{0!YYe-G4E!rEF|H4~5Q?_a1|h7m zTHI5OWP>6Ha{iX*|7H`x_M^5QF8KOlcNkyMD;Z|5wx_g{qIj!4l}l-jM41OOqDQ$> zUvD?qtoc3RQ%xwB!jj@=KNt+k0RroOO#w7zi>h%yi+Ib<8u8$9B6OPXX zLGI1bz=V2u(aJU5Px>7fvg6vrxP7vs1ZHIIAh2!hF^N`tDoen&t`i5m$FdZJ_Wv&! z;%T7(W)9g!b(Czw(I4|&=5(@HR&d9cGl|5n=)m`Qzsw#gQ z*D%|Dz`W-7`yenbxxtZ9#U0`GxziFH&Og4`kze1 z>DS@{AXzt_e8s*5$QkpC?u5pJ5@=2>a-s&KNiSj4V=9TzTJ~-*U7#24Y&q-W=Ekz( zZtP}zEZAMYgo0&?{A;Lc{%yVsv+O6~&KmHE0JC4FkDKyNmm$H&vS><;9|~=)@`c5; zI(c#$kW*&Cfl>qD+n9M3Y-Vb)Ucf&q7DG)Lcg6D-*Eztem2j*Adc`;xv@d2b_u`H} zN;y>?cd)XL!^-BDa|Dawzcd!`UOv*PoUR`Q%!0XSUw!Kw&)dDZ!l|kGSf1Zb-_QL> z-O!vW-jCSYp#yCu4NanDyL`!%qX&~U)S4gU6#czi-({ZOCNA1dCJT(TvgAco{Y^(; zY7PP3%I-sH%A-Zv+~YnM!hl09QrAiTb)CvH+U2TGh#4sh%Gi69zzZbWeFbU&6(kNt&G zEX_NGmigri)zakun(h6Y7a;eXAat(H=s%wFkIZPu&O971w>uBzt@UdN-D;1M+t@BW zekI)1bknIlvIx!S_0xyg4gX4^Cq5?1t5XpYy63O}ws4N{2lv42=*~V;HIe5sg^|eq zyCs}!!Ch*i*4-HGS#3xmTx>QEh|oDsFo2-r7s169(S6K#Lg!F z&a7Q)3ghP8KVZ%Hm2EXE>Gf%2M^-}zzN&rWuw z+72p$QtU#jH^P}uP7oO9WWH7F84I|bWw6LMrW4#7t@)(n4=r!FgYqyvsB=O3vGh(0 zsWu#$xE`qCrR|V7=`FYdi_WHcP+i!t%QqsT?HHMtHV1s|Mf=xsg2-s}n259+O@Jl6 z#diiRmz!cm{lt8#jSifgWM}BGaEG(f_z63S-T*WjuH8u@X-H`w~IRn!kB#PU?YT zwWu~IT)$-zlV-v+KA=n21+9H)=TsV9FN`^@5539nZJP(tK8rj4YXzb*b8y?$G|7a| zI{znoZnRH-r9wISCjMfMelQ-ayX6e3{(4;)TeGs^b%yb;x5K%h1kH6{i#GPwc6gN4 zug+#(`o<>1?epEx(V86<ZQ8l4q*1v%ew%-%6YU6gutY54vL$#3>vs!Bw`0_H#Q8%i~ z#2XIhu`5ixe3jcOtsDPy2kWV|^8qf(fmb@yZhJsj_aG{^o>oPP`t9K`t=F6-N_RUG z#PcCpgE6|@fG_UFn+2y@ge1(=8vZ={UuD>5)E&=|vu=KR$(RpmV2r2^gnC~O5$&|w zIH6vu4a-8s7q5bJ!`pa*S@1FWQZG;ev)C!SB`}Km_yKsfEBew~r>{YN|BUQLlurs8 zXgZx%TJ6jDnRYlMOAouF5_$P&5$IVB%QJb~t_NYShSuX7AfUfQ{peF7@59hks>9RA zbCGSABSoSe2^$v%!=rsV$1=#JmK9TF9~KU-E)_Ad-DZ&o&rPeY;*a9*pa3hlop5n- z(LS2CUV&g*@^&{GHOjV}dkZ+%?L2>-4%_U-=|Jbtm*`TB%^-TxB(_w|D$;A5p45i& z`3T%VE4NnYlsmhg^38xFjvrPWhtiyraeW4%GZ9W3&NL?%_~$@G!+Q<%jhPK5QlDi9 zUm4HCVtMH{Vh!!J6QaPdeNo6VuirX?tF)xRIb#xluJ?X6?aQ^9%KGeKs_kDx$j;jF zeYm%_r`vS6EA?VCHTg+_%;`PH(njeQyTDbq2qOmb;TV)|KYNa)?Op>!jz`tf9PF9v zE{UP-geA0XD(=SQYEoK{)U#`>RuRQ$1)2r;$>h}Pci0kM|h0Sw!72ZlJf zMq@ReY}ND;hNg0iRtb9?r^f{|?&=wvvOG%L@karXu*1`kaHe=CBB!t-r@1 zr`{o%7_f%Rt~6_i9FVhW6a?O?+bIW-&Hyhkl$^U2Y=L`m7OQp7%jk{ISpB1cu}jEhIO?06)U(IQ7GK>XeIrS1U%C}LUn9IYsXkGVJp~!G;ypc) zp>qHe0fjo!W7w0tXlT9D#5_u$1jDld_suQZR^@GUei&S3M0Z zdE_Lrl{6Fg)$iEe0J@(*xmK;_J9%5RqYvP@*AtS)|GdPLUZw9uZ+J|Q-ILi8W8D)m zK-xOsRbs?`Fig4>M%(6J#29ttJe=_*8WxNxwZ#}-ef*Fl&Xi85K|l(vywm&5WLY1y zpSq$2>)ZGU>O-$$Y_oK6PuiY(HXkaE!P0hQC|WS1s!3V;4XMj28ipbD-l-&=2kEyk zw7Gy9RoUcWG@ag2a{ax1d{yP2g3;82ap=|RmX*Qe8ou?Nf!9S>zJ;-cv97H6rhh%+ z&G5{OgQJimPebifI4rA@H^Hjs>C2Mj#UqGmRh)tIXveQ4)4KQwnAI!DDwAsZ z7adGQ^;HnKc!g>;xkeD}e}+L=Uo(dfl7!A`*#;MH*jf9A9xIJ2G% zfCIJv9Db?gD2D;m@FwClqtb-$kw+uJ^QsXlG&g3E$l2nt5!OB*7w`9w^)kJ81-!`^ zvkl#_0~4mSDLA&-$VWa2PmGEHWXovk^SR-mnWi6U9#{0x7dXPEguW zf#RmWH!(Yxa2X%A*5qfZJ)caGs*81YQ&ve8pPJ!@e`uBd66UuRL~-w0g`m%Ot5(w{ zZWhw00Qpwct>>8Ba9zR@;E3xyn)X}5#@M$Fku1NrtH3p|tq43nx0qqr zZkos2buu?)UD+?pbWcADo0JEGYiB$ePggxH-SplA66fV=1ya4W#a0@f%mRr1zcFau znvff-oBPj@Bedq<$U)}#7iiVkb%lO@(lU|h;!6n*OZHJ(UwYu}Mz%*}UX>^=sU7$u zg{F<=FNd{LeIa6ZWsjXROBht`eg$w9bud6e*CUW;tIh932aDP-#!-{8D;}VV{gD8g zsL^UM7Yfsb2ijZv+ zTG|mrR`G=i95aU!yBe~xVISanMfTcFMjkEg2X-;W$}Njl;ydiB7wg04$Rt^BvUcAN zV|h0t>QM6RKYugXnC9|RcDjM;)gB9h(BlgHH&iLow1M(41qE8^pbE8 zei$DE_?GkqlcZOeNSo@i8D`EMlw7=f9}*kavY<-qW1}!y9o(?l;oN?ABxrgc+DWx{ z)@cwq@f4I+9OpiP_|L14&d6~y8y9^j=?d<%Cx)s_zgDH z_w5R1@{ZtZ?cPBjPz`n^O6;S(fY!F=fk%6D`hC$sak!m5@i}f}c3Kooqc09$hx6Vg zd{29`2iA>A@@EFt!nch%g79r741JT^=`@!Q9`N6c(^)^vzXMUVsx5;~+jA{8v_pD` zFl(D61M_~Z#P$AQ*fXzH38gIa5DBcnNno%x4_roD-x&<_v_&_z@phO$IE@Oj@~QdA z7A7r28?f1Xu8Mb5^rEdg>5G@P_>*e=`Uz3Q*#=VqOzas73pom*J^S>VxgZ-d&1AFr zfJ9!lIW3-c^FTC*Zr;JLncQLl47A_CghlqOfgCZZ38VJo{@^fb4HBj=aGt{XTCQBs z-{xA(t!^&MVC2qQ(3x!}FNN-Nd8vXL$V8{OshRx+a@uuTz^iJx8yB*EO~om#h1-Jw zpUM>=Y*x&H)%!1T1#M6<$wzT?w9fJW5u?_ha;m^+bTgLrx+|XoQ);1q)ARHw&<;uE zrP^J_9VG6J;ZUF65MMVhx5T98jTbnUva3rbc`^y2>L(v9Txpw3U~63~!JZY9I}kk4 zGhxzjmGCs{93m;04VOe9^)xo$aWTVgriQo)oBbKHeAvmd6P|S!A2zkb%27G{`Di@S zyp>-B{VxBZtBrDFSg?WFrH z^l>OB|Ng=*dKa4yLt3cj8UCZZ7Z>qmjzlA|3>fesLw3@8D^|s zwVBlQTY)gzN7;mCpO@e^wr4{F`Z#yd<&@mWZhb6EP?#(4%3Je;B=+Iou)Mvf2RThe zbQQVB`QTkDC5C5fO9pYno4eVN+E0KwQ> zi}8$wn|NQ$YiyM7WNpG`U*0a3P2zgvwrJW~x&w~Q9`9jO-?SwW$S1)_Wej=i0n94- zpFllV5!g}wgJ979o&{~%W6t9b+C6`2tU;x5zb98wrmA=frKznB>}EE;2`TIAs1*Km zCk5K}f=wII+0y1I@YFnw-lKd9r1jxDVMZ(1aTV2TCe4RXo?Cd&_>sI+Q%gh5x_Lbb zklAC&M{nw&Y%8QN)U2j|;zHVCSD0qUFFD5NB+CqDF%p!~vPvMetm>{F`i~x>%;lH2QPZ~s&&GH+N)_{tb%hp8vT_dRO)v<5%FxT$vC$WhP7~ZA_xD%C zHLXOfXVxtq2Dxk3R{?o?T@s9?w3oLlsuCf_jcAGAC#9v;-uVpbL*J5av|sXJX??93 z#wh~+#lm@hQVNt0d66|H_+S;iQcHYX%g_Rv)|8Rh((+1?nChH!3pI{nc!~CX1d!IP z|AkZE!U??ft*_9}vmAwKhg-pgmbJk+G%z!Tyro~3+iSH-{qZWj>47pFo8@N6dZj^z13 zbvICYZb3F|SIXJ^I=L8ZEzw?d_Isfgm$RkSO)t42a~CM3R_Yvr-6X zPOlk5+5eaLW9Mcf{=|yQ9L^l^aGOt2gXz#G(ymg^nl?$vN$mGy_J+J1)-hFx1OH!+HN z1Eb%XDXrFZ#yidDp=6F-a)#d8;}#A}!zZ9@bFM6>n0MEqt7@~vk6sKz&1$B*sJz?n zJv@)^>dF;btXDbf-XJ$w3w99{W{dO-1f8E5BK#b@55jllT;YA$)Wc;#qLJ0^ofCB^g=kT**~ z?o&1qX8(Bv34NmB4fxlc0W5}hN5xtrzU7^-O5g@ors^Xp`}HKvsGpr6VP%uK7;Ee! z(aPa7OJJz)l-*!CSkK?#ytxjv+MpN9Dc4G#Gwp5UA8p=CQTpiOywwku-{Wx3-7jqh z-lE#LKL}j5N8dTn$Q~{cJMc9LNsm%c(o&n@2YPTM^J(Uqi8Fco$`=(|ujD>ewPawB z3xCGy$9H(nF@Zc@e}|}MuJ(H<7rXPjp3Re4jsc^HxpTxfCD5ld!b^&c;FKVqu)fvDV-Q+qV zmAO1J8BNc?m%aOv#Gl7123xc&Ma|tfw@G(@MnujX8r*kT$D|#BObN#yS7;pxR6vL|-?jqZbe!Md4i? z>&Kp;OtMMadfpfc=F^j6!lS=I0XzuXZ6nSWEnPHsW&NS-QLIKr;t+ z7uAHk_mIRgG}rySg)I zREaHV)cnI|q*Ld%6?XhCpsDuvZ+SWUgwW6?@~pkq)3_aFdNd#>hC3LLU#FPdx9&8ONh2#WoMnNZ)c0)u@uU z8GnWRZK@x#_g_r+nqO{nQ+E3O%%jH618~?2x&hxa;y5|Jz?M3@ zRI-9!L3e7_q@o713x7BEL!Y!la1HMq>f)?=X%UQWm?HvRe6S9XlUI3Z?Z-LT$p1El zGGjiFX&LHvK*mdHt3VmIl9)34r=)@AQz`MCDa|mkJ~pGMYS=3g_;8c$4$hjlg19+F zX0wf&YbAWj%_SLX8+#$KnY*<~+k_BT;LU%0nVBm@$e6zMgJ5db47}6|`A5p}uf+LR zP9-$dtVon?y$JB8>Ch+w!JIjIKj^<6XY62PdW_EP9SsQzJvtQhc9Z8Tf!QjTsM%g+ zN#VxmgCnK>7!0Z*kH*4Ov@?~r9XqqGlz4a}EJUYoSiEp;F5uTJG-6M#3~@Vt2J?Mx zg9#|BabalNuJYGe#)|~8_pJ2obSE?X1(%a9kD(@mUmrGy`vR!f-9DQe8j1~&y74dc3iD)jdjD%uYhE%vB1o9CnL$i3?MsHK$M)9*?w-ViezlbX{Zd6ZfV&3&E3 zz6T#fz|ixjIFzctc@N;tU(0jJk`h= zNop|Xq>n*&6cy?IsE?=G)q@hy(aA$YKv^hf5D2Q4#yqM{{0c-EP zU%g>Q-_Zx1>OI~ehg~B)6tQ=W4WaDUhoG{vFei;E{l|IgFpE-T_`*XEy?;)SFk^K$-I(kz#b&g;k7?ve0E@@Wu1B zx)}*;earV$cz;(W4FpY!k|Xp|%~Fvm{yV;*@_0nJI6rTq+NhR6f~HId0F7*kyfoX( zKi!(G52V2GKW7OS`}u0nYc8Bn;LgH-@NRR|^B_n$-hshve`FaLW>iL>>gw7Mp1H`1 za%CN?t~QRtbOWm4LAL8Iv1O^IVU)hP;9gypMLeT^O8~Y1-b|(DcyEYU?~B5MHMq3o z);Yg$c)R>h@tArCKyPk7Mrqv4jt{E1_p!9iET60923K@x4G+cr^kG@iw>~YWI38C` z0W%?Y6P`DoAPZ<;Ty_Jgy}|-^j;`=y4$dojX(&5X)&7E;smW6n-t4$bXj9FbOCD9@ zi!dsAc!&?_3t4bBRsV$e%B$p1+N>)tGh2{ zq0Wt9W9WGr8K1Twh(27t*32;hk)SLoTdDQ$W&9ys#Rr2K?XHB;Dyxf#|KSG;v}1dY zrd%4j%jJg|`dO4Sv!&Q)Xh|Q4$K}`owpqO~a8gk;p*89Oi26_o#CG^;(UW6B93ai| z6TOQ}uqf-rGAMoD1Pv|I6zr}7WSDKedm(&pS%#Wa6_mnm5meL$t{&G-E!< zyxE1-&PzLC?@;<5z78rwLNJPdMbBoTp(!93aSxQn?`CkIUHOT~_H?H|=+D%GZMFZa zSTJ-7iZcH&MVuUyf+)8|kL4bG{_(^)uqV-E)p{QXjj5s0Jom^J2*$n>=RtdOW>3l% zKVrdtv1T&Qu3NC2dGo%+^T@1>dfEnaT(MnW27rxD^U6BriJ9zYvB+qgsxKCDUqoMi zt%e5@J#HXQ-7eOfmz(y(xwh(=aDG)5=2Wo+G-&1Cx0>A%kCI@hU!_&xD!++!gu?sa z+f4XPK$*8ZMboF_=D9f45}ZdbUL6&gTaMt^T9BRWU>c<;-)`pP&2YiB&$zCUF$2M@ zhG%9aa>Q!b;(#KI53NL6Fu&)=!7O7qv1a`}jT+nMD>cU2e_>b8`bfF3b+yV0+RuMZ z7p3orVEi|sCaz*_zd8>o;N95n$+)$_@MEzv>z?a1Qc!i z|GN^vxhGlv^m4~Z^w}S=y*0Hf8n#_l6CrwTkLiFEY&n9rUu67e?kYS7Wt2-~=A(5L zw4)w|5dB_Rv6E*V;YswpK1kHTJlmL@hl1GO@(IVNf1k z6eMbtKcf2_8YTWS5BgB_xqmUbcsFy{0O-g&92~0-(78;_*%tpBKG`55wB=%5%0*59hAe8 zNR8G}>10*$YGR2mU4Ykb%>kwHUjc+Q*3OX5smhs!l(RT*;PfdkzCF1PQOa!s!tt!E zfU9P=`%-_#1NX6t$$#DHF2(7i>^efkURFaqr{AU^{++DxD)4UgmN1Q+NCLN`3;6JI zVr3ma%u(cqa1u~3vVyKhM-!UfJLlcH4)HU^PYH}`whG3xA%(<4$gq8 zHozOrTSsQ`WtV4?IK#g=@oVj$KivVmAe)oTfXcDpD$}3tL3<^i@|w}ai~6g1Qh2UA zj+j!3KZfz#u*y1UM|W-ymrvI*J`cYEpjG`j7BTl;p`u*{#ItJ5ftQRa*x#sqaIeEz z`L)Q{zAC2FszgTtd?pn}?eUI4$|1~1@>M%|FZDZri1Knjg%_jYz4erXC;LGyQ`t10 z&ph*l>!*bXrm0B8A->l`VQcp-)4>6$b}*+lb=eI^`@aQIA6T8xGQaxbJ8A;w4>y%o4TG5 z!J0JMelHZnohPGUv))A5F?uy&h|+Et1H|4T_?21x4J_#cn*yyqhpz{sb(FY58NZFR z)T8h*vs^AH8ShuZp53Wj9A&!_FlJ9l-n`lLZA?;RM{j&EUhR*fLnTTz{`tI<$4##=dB?S;~`6p>~~UA)=$OuwYy)Jp=y z{G$*$&^x$Eg6*51xU>Qi=K=HmJ!=S_-l;SS{6m!OcrK*(Uu4T)iX#>1-+QRG8|Ok) z+hGx{df0(P_9m1hGwDvBt}qZVlYll~1WSAj+O!NF_jMfriMDUWL|Iqt0J3E_%?Kn&O+Y67(0RI*5}z=+mXrg_*nb|uuk^o5VJmCS zpAy^EFNp^~OBZ$FKVrRabLm&C1-AtL<9QNfz;*n`yfl`%n~_K3!F7EpeqyYXdzn<- z6tT%Q=``$~Q6c%AL>wl6A_t_N>(%x)9D$~D~Xra81NH}~U{G0P1Nm#t< zDwH;CX%Dsxay60`b`l+#tG?g@cKyyFFl^kx8utC;VN&`*(JXQhRjYY<1E4bSCiYPq zihixvnqVdrd;lB_n0O=6THVC^ueR1 z19NcpP~fv>uFB03+n2Erdj@l=@K_>S3mq%C64wc*i^B*Bd*CFV&1yB!mX-A!jOpvL z2U1g~)=mc-e`M;!Y`zg^))s6=bIP;dDi{7Z_Q5PLMBc;bcJT>bE>6`2Gg=v&ipoxY z3!&+(G`yaz(~`ayZ63+nDe>+g%OEakZ)%NbR=x|;s%HxkUwe(p^eLY1F3u5^#hHra z7XRq~11`1p=Y^Y&vihn2JWL~_&QVXsY6W1_566tw?o_J!8({qdJ4D#{@dt2zN1QQFj{JE6VSH zfpIQ`qV|s)j;9~_MJSppiY2j+M*e_azq%5O8ZXm#B-bo83Et~2^Mu6ciSudHcXbqK zinqYm_}WA=t3yLk_hNk=^IhLDvT-y?+&b!q4~;6U@5l3`32-#ASv2iOePhn1+Xo=D z_^o)OmRf;aqOHD*n$6>J!(m|5Kq6PGAZIqsCwKXH|EDRI*FRo~0A&5aEl6G?R+@IJ zLe9{4Rls+wm`pUXbEPbyQPgRs^`BQwffwJ3U{PD;q7!}JLd;<_aw9vKi;uEqak6DH zAnjsVF!K)qmGONsXjO#}jLr2}qS3!yL2l=}Kp<%Ewf@}jv3oTYV}6LtwL78(t!o8Q zdP09xs@L_6M&ECGf_AJ-)aeBqkQkKF8|kzT&rIrke5w;hNqIR_+B);hc! zmOAJwDE(xltWp9A8&$fSxZm;p7|-aQ7Zs}FEEPCQJj4X*!f5HISp&-=5aP!3v$V$FLA@i24isW0uvZNg$|$sHWp+VMcz4!E?8`f@44)3Y(OvV+SD z`X=WvmQjy60;fkSgj9!@6O`(vOjFr)Pl{Wn=Si#46cleBlFI@0Qx8`_c6qyblnt_? zRWmRe*R{Oj(Lw80aHhA~jjYx;lOQlteT0L3vYM`!l*x5#Z#+${n@fPSLSOsCLAOd+ z*W7<8n3_jit>9d|TU_76f}Z{Up@@8IFfX~l2-@nmd^+eu2jM{0h0LH)DNPh;Zprt! zb=xBQ*^NfQf?aSAMz%5sj6*qhFG0#IR7Iq^kw9ct%PE%DgBG$<PIqw153iLnw12IUi)GU*spobgO!r!R#MiMRW!{d-+J~|{p6*3QOp}j|83_F zf>Nm@4?VC8O^sL$4y=c3sL^`u#O<}SvSwnfo{OYLA32_5Mb4SQ^GjK_HuByQk3Us+ zFwZT!VrXmEbRhL^WtUSn=B9CH$v#*`&2mGLs^Hyl_Pbm~o0?=%baOE&pmwN z*h4fJzRbxdaXqtt<-IhjPkvD$Mq7B#zkY4>tz`tlMHck8~~ck-IhQ zAJc;b+Yxc8%&T~--#Os}b=O4_}4EMpAjvl9S}n5I(ooxVW-7pf=TPrDG~~``w}&_?>j!CUNzZA!dQk%jIN#LaKBE| zHSk+w_A+Sstn-4vhy9`8ThwSNAOnUVaPZ?%^ z`0~o>1v~$L$|njX8fDVx8*3$?RsH^1ni|Pf$>2td7KDpds4Kx`ZJ)aZJ)e*})Kuu? z1cX2EiJt8H(q7Pxj*Vcg*A0JA9iGF0m1~?N+LZiY;r}3|hpl%CX?m=QfW)cU;uIogYhTMB;Px-Wonx0qjb!$(i9nkFM%7>A8~i1xYjXi#NJ{~GJQPUKoU2L~`pzQHjxzjXcPl)F%}$zFde zv^^20y{_hg=!Y*OhQ0R?$xA=+5Yl$lhNOFIt_LWMyZ_)0dZ`;QY>ep+q_wqCs*AIj zY;e^Z)mRDb32wa|%qY3ipPsLoNJWn{5#!`dDA@_GeDPmRM7LT@2JY2tcNlnHWh?yp zTVlxOJL7oXxh#hIqbnv+v-nCd&*l38V;tIuX3Yw+4aMwxAp|xqY=TL1Mv+)rl{a{d{jZQvkh$3!e>>U7RZ#Be}VI?o`T8(~_{pf^J0N z&mcx*2N#c`wrz8S&}+-At*)-)*<1$4H(vHDGGSe^9nCGzdW+ybd6hS0d>SB+-QizI z>M_Y8Th>uBP|3DMOtLQwYZ^c2U@+C?Uo@iKlgmnMABF}_JuApmn;D0o;TRJMf?X+- zd0sRbPc+Z2p~slCe~AnG+Bfo*cVntVNzHj_u(9s|F*V3TL=LIOx4yAle7FAueA-&b zkzT%cGb5X|N9Hx`BeD%c9oaCCmhI;+2PTE1Vtj8j5b2&gAOWd=ij$(u2N5Dbh>jNR zVwp(0o&4#Gxq?@`-&OAO(&vW4s1f`go2iD24QNN&Q{Kd>Kd1R~v!&YyTvccFu zIBB>g9;`R~058SoGMl<5ZU@QpwYY%2Te(v+;bt(%H)N&M2WA#M&uIgsaj!G|Ksa;1 z{D=G#pSa_+Dhb*e4eS&kN>5M%NV)85+R9-n_sn0bh9K>(tVsJII!b0|DWcQ%r z;@vd<_G=jsX6Fx~4t4=%PKK{D&C#M-l65+>hQpeIYL~w_UQ~8KtU_nt&d%Hm&1qkJ zVL-VLN~KJ_BeCA&QZLB8uZl8^16aXoE|>NhqptW;j-HDDYnNn}N>e|VLSy3$37V*g zAP|TDW|n!WTx??f!GaO@as`W!^N(}|JcCRmn>TZ>1Uz0LnCa4tbZd^7wi9}5BXKx2 z|BxT$lhGo=kL9Stx}61;n-d1Dq1EM`3<``YUzCfu6|L+yW1*t^bp&3^X9|4N@siy# z8{$eq_i&c5k=Rc!eTY=;QdP7+xLkybvuFBM5T!>BWhrJzw1fXPYlWzK|L<5y2B$F6^;%f-KiF`B|)F|DG9TE1Nn)s8O=56rOu4S=GM*B6=-#+PY`&%$AHJo z-vF%|g+B0XoASYFJ^z4@=w%-HL9zQnoXlK&*B743T|yeebkK3=z71la*fmTfICBTN z?PICSkSyn6q_h`&MIZWw1sL4g>w%{28FDA0`m2~EpxlqA0~3*FJ#Q1=p?f2S?c4li zYWm*e*rZ*+gmSA26I(?R;o(5G2sGEG4V>tI?psFN+t-lSx*3U%?fXl;;OhK!WYk*A z{E7A~8Xc=k`=Div|AnKf5SfiK>(0mUr}_*8@ar=W8#m=%G4sU$QRIPPc#D3&C&tJv zYS+4!BXm^3F=$-NzMN-$)jYJRd%Y1mX89V-^R)$dr&Uij5E@_hP;d0fEm>=0oj~69 zo(|t?eO9SYX$z!wa}zQBuNTOS^GAvCZzJ|{^H_G0yWQeDF{2NS#f$Y9g@vf|0DRf? zDq%45ySMoAmf|2W-MBo*xnZ!0?EY;>&}i!6L}>OK0Eh~_wT3D zZNDKN8ulO=^yez1fNb2T03ahiktze0gz$Jd>lVtHt5H(-*Ky!F_ymnxE~iDJlQTq* z&f$2KD$CAXHWa&vSG66<>g0%6$eAT|VZf~;9Z=kuSROCT3IQ(1I4B#7TZO^tv>lQG z&$Yvb=8NfYr~k;fiVNBEql+7D{P{iWkO9P_?8{Kjc|_D5{ZeTDNxlKCes@Lac^%M# zQLYm#YURcVOmeaav`yAR?MD0PFpMq>nHy|6oeVZ}z&cdXaS#c_{<#j<)xPya|E4#y zBAj{7>c-nlL!hB@Il_4!BF?PVu;tI$C4ME1k`D^G#e+X6kmYVP>YuL zFmo#xHXQ&}$_&h?W&aZm8JSvu${f-fliGPIc~et3=WGOMpC+T(Kg$R6QRs&Io3n1u z2knW|DA#iIYfp3+yz+?zbMe2x)D_~}gOi-zL zOcgs%Pg(84S+M>R8zm9|Q7cPt;}7^Ugwb-vBMI9>YZmf66s}pi?8HjSiA;3Rhu6*H z?;zGAt@cL+k@NWUJzy%ilb-$XTM?p(4R3bA`OD#Ce|RJu7GEG?t(`*iW|1p|n!41N zgkki~OHMZ$ggi9!yffOym?v&F?;Fs$(@GZ@kwp;Y7Az7=o5ydMSnAQ&@LpD>X{}f&aO8N zO2(2Kp)StV`^5Jqglqu&g;R@x_Np|IvcXPw0M|TU@50e5ImK(7lutapaCdT#R;nH0 zXLNmuY3C22CsD0phz#xFCGo+Qhh0HdDjsc`Ap=Yo=ls2JYE9WK;hXcuQrb_F++|NG znZR?~Y}Bh+feitF{T{q}&3O)L(gOFRAdj`ZK^c%hv}g^^!K=O88xHK^W%t6t{1i-U z*Uw3W{K^Z6kyNY?XeOqgIw@9HxLJN1&(WLyua|=}OYYGi_|^q>jBXtQsqdK^uNahp zXtSrSz;xP&c{8C}IA0s92jfKYU1fv2i-`Qo3AI5q{*z8@YXi`(VxUl&qNVvawo*8+y z90M80?)t#@rlU)kM3eQrZNt~VQJMAoc$Yi~RjXUe#Hd+!iZotay2KLp{*AP0bBj@i z_Vn>)(8g55p609~kkd+TOF=a=U*PLzrM}3mR~Skw)plztZ~50(Fu2R+h&^|f^74;( zD(o^FqXB<77_RkE3-N4gS&#h?pPY^Kaa68?(Nd+4v3^`99@WHq9=r_eO7z%y&Fx^^ z<&MV8|CYmn5i}==^1n?aDl>lq9GL$*p2DewO_)+`+JjKqqW=MIj9-)DaK^R-i}76! zd}_NZr@AnM5avrwyU)QqZ)_%NE5IoLXB9^>AWP(54z0!V4|tnjktd7<3n#KJ3?m0D zn#tHt^R5mm`@?i7SRQBbGy7#EEsfB{s8;J*6X!Ax>_DAHlc$JepE~@vDRdbhe(*vPYQIk?vHx$Xx`_Tsys@yB_rr!7uJ z!}^dsxQLc{0eq+fsbJGTRKZ}PkHh+2&r z8Ng`{_)e+yxr}a_)DtoLT=A#ObDy+eU-%5TN-TMRnmK`VNiUrAl&VFrkAubKne-9% z^hG4IsBT-RwkyJnZ7jmo&4)4^Q}@EfEZJ6(sq8%RZKjpUBpQCzh^E%UvXQV+bUN;3 z25uoj&26$UaDD@xZExkD%$;s0XTkb^>%nM$s+dOmeLbLL&l!{eUeA|^Z4P@!y`7YQ zKI-WH0Ku$?2I4_0OCp%j)@2>4@oXFde+?35gW=@pFyKA&h65k?T3q`(2jrdAA`)=k z5v5~S*|^>s&meTU~LnRMCO9rDARUs^Q2woB~VkRa?!Bqb~J7L)d3%{ zDmV87@WDo0Ol#|8Or~new?yJUP&97oyQ$8w2DjACdd9-rjtIClCYB_j=`(`xPPO1Q zzHdKtOLRD|c%Ue)#|xCEcK_P$U>T#RCp7N<8%WIrcUiPV2p8Xl-{r>F1 zW5%0k-5SKbSIn2Zp}VsetR~8h_9ugRyJrOxU!Mo!;`Z@=;vdy7N_Ao=HG0$xG5hoh z(6hX9U>LnbAAwxqJVgD+-!Q2+(D6chLtQb%qmx^f5 zisH3;Oi}#Os#j=btERU7o14rvXU9QK+vi;W6JKXOPRO4Vxp{3a*KwwEXf^N$Mz8av-2RJ za%Mx%W{fL()_S!ikJ|lXgyG0fFs!wzK)va=Hwsq&-7u23)<`U6x=lwAb9pE*X7+5$ z!B)Td3Z9ET;jNYPF50yN+CWj8w9yMDy?e4Nt9xlG%*_>#Q7-Drv~1u0J89D?a2f48 zmEA-cv_6i1Mtq9{8D3eug@KZi!|(Oq!AsXp17P?jJEr-bj3h_clT*Ec{8)foVCFBe ziRT=#;wm?1g+jXe)ew*sM@l;>>qe@#vQ3R%@9)`wpD2K1*c-?2);f@Y-`W*!roh;w zNRp+M?{_lK$?^|M`mk3aAU?D=9F#wj#H2mPiYey21%rNL0GQ1oBXI=nd!~a9HncyE zpjGAOf#4Z3Npa%!G+RFYUB8+(`GWCw{mBM2tQRd?(%i-eK_d5T(oMaS*va}cM+Y$83R~;Kj_#IydHy7OX054m?Hkt$ z?jg9E@zVYrx{C4LFa)A8{qipfcv{L3DM58|R%t|BM9ib~u8njQe58 z=rEm-H6LXoT(mvq`EG3cRD8%={$ty8tic70EME*T_LH+A#`xs`njxo%RjaUKIG~lu z5%>^jM4Nbl`j z?r`4fO?2op>m#M{(3j{i0)0i#M`h!@6(XD2RO(ya+N-MhP*aLEM*g5Ko>X8=YPJ%B zjmO73e)hnW*6gLARc-Q#Oy|fLbQhe9qyNguvzodBCber3-azi|FOm)TflHVTiqRwV z9gq68am|s>Zuoc=Xb&)3%rj8Jr7xS$-%P!|u^;28 zK^s7;a?ebL(bf9}`Hf5=Jl}bXqhBmeyqj+-k&w)>si`guAuoo)MTH$RX>Yth<3@ZR z?5SK{VLr{yN{w#*M+UXhipuljxb?`sZ)CE=d1?AG0R6TJy?fiRr)l4Zsyf6>1${sf zl%)G5Be4Ezl{6i;I*j_v55f_oz^?}Y=^}O+mF*1WnanP7uaP6LC=08$yfbM4g~Mlys;dzuShsqSuay;6W*oiMW=rV{ySWTS|^B83I|oY_RRXG+X-A=$1VksBTUo&xj@>|qtT83vMHZyDkCC@pXW6A(i? zDEl_-pjTv8w-Td(EBKgUYqtuGd7M5!kuo*QU>B!j312^1JBovs_gYGA=xns57q7=> zS3enwsh+NBR76J4WSZ@@c;MzZG+`f_M#z{QV?8OC%ZiS*H6w0dmRg9>?Wzli-%ZO< zlM%NM9U6@)kSNS)@<&;^-5BpzwTj@j#`IFu+s_9{qlEr=lX-ptAC4_AAB1SpqUg}7 zc_)nO5w4PHCgqfo&a?dV(q{ZkLC~NkF>bXktU!5c4Bdco{Y4Deg=%jC^6)!X2OGk2 zVg=*Scgz@BkD-sfjkr;<9p?i5-cMXOb`gr#&&i=)V|+{8-hMjTA1zk8Nxe3^Enk~I zGJ;lpAB|%AoJYgz&hGwH>qPz2dVrS#vfK=)Wdec$pw`-z8l|Ct~ z7m)5uJ->`1w9OCvz!N5aCS_N?zr*2Fa-358^9GNv{uZ5(jfv+2z`ldG z>PN>2pT8Di4c(GsV&>!jrExCgh&b5nzr3i(^hY%1{|WKx48j z%c>fM(3ZOXYZb_^=7(p!uD#2_Hl?0{NcAY|C|GLSXf@Aut|Pf!|Esjk#r`Sh6AlbB zL(`paD3z%T3@nj|vd%E>a;lrcMfG(!u{!5SfXDfMpw)T~9mc7G;eB14>n1@=1>A;n zy?+#JY06I|T)Z^df#lnX3ajDSjSlCD2`Ir#*}`(qb(v+*V#i3}7oRLz`ES053l}iE zO`v?#Nc^(W4u8PUp4|=P`QbaMd0m|(Z2ox?arNWzk<=9XLtJvg-(c@H0dmUq9pF}h z^W>u1=RzI)>(COajly5OXcOIu<9v5Ic>^(e+89{u>v7nHOC=W@plyC`8%kIwOO;w& zBH-rJ%*2r~zV~997JHB9SQlqYs*KLs9{65Y2^ICA6y~+8?0dO5hp!Bl^pE01sy(ML zoNKekxHzY_mL$~VR&R(lO~36csu*##@Ln+7*19ZlvZt*DAf0|K6qVRV@&_{f@zwEH%A`eU8?L_M6ipzhpbsG z7NN8}Z_%0&-Zd3u+t0bvcJ9G(l#3sdA3Yj~A9isEfptVSZkr$Wl71|=mVsy@I(wRf zo4l$cxC%P83?f5Aw^5^hdhqr}X=?2D70Gc{>OV2GjsM~Y@r^$Pn`>WpV1^XM0kumO zjHtdJQ+OMciR5J5w-b3g^d1^9-jtn9+bXi<)Xe&xafsHjEsmjYj3hqomV@z6yVZL_ z%^o#Nj5p%p4#X-L>J7~0H)u!iSdnkIjvHc8+AJBu7+)hHs}J9elTIy#eeKCPSHjcu z>m;+#yyPD=DuC~q zBhIx1Wt-6;w)>7kX;$?7J)FZThhemH#$(nKB^CsR>zOXswSE499FB}6?MGt#@AZf0*r3XUBP(7syci#Emi+y zgsC|#jF;U4P;%Su$3gP8#1W8aO^G$L@Nu{^tN!Clqfe_~!z8xT-%RXv}k+L_IzpU665*OA?KSiOsca8J9pQ_^Ch0@^@SXAFW!T zX7gi?Sm0;L^*g53Qs67Q?FRmT0rS96I$|Pwz4k$4)y3_!Jbx89?Pvk<`$Z@Cj`hqJ zLc__jfki#b#o&B_x5)L?h~Rpl8o27HBSXPi^8~?UmpOvb?5JJn+}tn_+0H#7F!U-V zm+&bf3pJ{8y){5wA4#>}TD+AntD+tiPEazCWAbF15t%?Tow0ed>zj4L$Gs zK>+uP#6&83Kpea0<=CJ$tStf>-&>#)b?-$2NV1e6$EhVvHlvRs*Co@aGxt)LWK)DM)^vXD(`ycC0W`5PIH+%*Y!^{g`= z17(_~(B^8VepI&@jGc|uRms)r@i?MSf9oP@{Cyu1&#xnf)<%Yr_SWei;?b}IC^9!2{-uOQ5a2F$+JM9hC;9BL1iwCfq z6MAO%c6=v!4~zh$-9i*oqSkaCH+}L$gPtWCJvG^i;uvb6Y(G*X{ZpXbz#|Bj7IpB2Y9B8$vYn;;NLYO+7YNv&=Mw*R`-XJ* z3m2zCWJ_N>(2D*M3W8h1QHu6|B%O79)kxRJad&ud3GVKCgUjOX1efAgD3*F@sVh(* z&_aPyN})or8{BPy#UbdTi)%0Neox&GGd11eEDp5%0H` zcQW&Njc5eD>WK@j|5X75eA1kVrMzMSPP++8jA5}PlisE7B0HV;T$%|j=1v3(?f61c zYu`?AHGXbDbv^4N?A1c9g`>2~IH0U9q>Xdz-$4diLuB!+7OL)qyx}@&EROn0JO^ej ztnYAKobl+Q*n96UfU4by#U$0rJXF4>CsDQ3PXx=D>p*RNQ5zML&i0$b22%wMluZ$0 zZ~1n_Nq_hpxM-s;`BACW_vPsQ?>{>@FR(snv0SI2p7~d1-`y&6G<2LknM!A$I^&Mj zU)W>yS`Nt8Lv1ty>c%H~;r0B~21;5^=HAM&bUX}}v%HJpO*skBvdNq0x_aV5#ns>L zc%DC!rqi_--(cA40}o>wel^}tCb_f;K3uI2-BPJtf2zULr!70$9CxOB@>Pf`YtglM z=3@Q^<+s}$6T@5Kk1roOQnB13oNLu@EQ(xv>xNQM1%=h!>HP5;;6`Ji_l?5mR@$2klz&^|~C%uKcb*~SOS8jHShO)s&URGnjgmG-C&4=G#hrnGaUIC8QfxHQr z^6zI7T)A=~nWyuD$tG>dN%7{WZZwR_I9WbrCFLVc?

    dfwI)6For|#6%y&7}?uc)m1nZaH1jyJpYc>lTHqV1;tN(Q9ify7l z_{#ucR+JN_nzMc-aet!=?T-@VNlmlHzy-W#v?HEM@1ts^bK0;&ss+f%Ew>P&!-*CLtn#zJc z$HF8U8@)@xY4EKtD>AKeEq7COV>{9JQ=JrKZ@Pll^oK7AMcDt~XsjJbRLxo)!Jyi6 z0VUS5c3ky&lLT9D+K_I_{DJu1yk48X`MGC@pun)aq)c8JH_{puqqQ@(U&L$rk>TLM zxF5mvyL&C(cemX~L!-fD_$kR@$kFm-e)1`6XD_79$(qR1JY}TL*I7_neI_kI{=i;K zP_ckaqN_TD%WnUhI?b#8>9S{6ov-o=tw*ebB=Pg?|a~RxhC++u@<)4 z;KSlZGkhG>_N;V3+Qot7uja@Cg00O3L5$I?DG=1czrfw9_1lO0lx2k6tUFWM_%re0 zlr&L%S%DhDL+kZ@uEzc5M8+I+WCJDjr-O3+q5NO6y3f&RwEe)N>Xe9oRsRckL-QRj zF=^BUFEc@oN$S*HTeu!H1R=c(0KXb3>$$xUO7CEGm6%j?kx=ie3@;-lU8u(_ zPTwJ+8L>@Za_O9~pHzTczyB(bhxuf%Ti@(VyQNl?168y|FVRUG;f4j~9@!vi#ITjd zkyQqkl&BDaNCP)u?yY$V=lpP-#wd)(w|l#3)Et!}S7)DRW>V(7EC5mhHFDDmkdvGZ-8IO@K$f&( z=0(}sU>4ye)^Vym&ei^RTQXE{D~(Z^M!`16ip*o2Uaujo^aE9BV6F4=H6!byhlo2Q z-&HVuo8ScfXAVp=3hrNlN`r;nF`~WXI15aNz zBf>Td)L0$gNeupdzZCL%b63H(itH4!o|Qo{J-sn()VhJ(tEXNQbz}3wIG)De!fd7C z`3R0PwU+U4-W-CZynW4!j=rxVh%-K)jfL=PzHpvy*~X}fuk>zOk7PV+ABkm9A$iZq z)rMw9e}4&JXbYvPdGjs)x7H+MiQ>7Nd@)MM;iZcEHzK0^Sub(PBdh<+t6{iEspCnk zm4434;m~YVpbZr!p}0Q(DG@hg*G=XcSQ>7|DKX31ou0(#-a>3vYPZB`R%KZ`sx*5S zW#{50{;g?6<=m&rvaZ6q)?UIf+#7Ohf*;wS zT^}OtMaQU>R4T^F*8II#dk|$uOe8@1zpwd2w0d4Dybkmy{OmB02;7PVE$XHGsa&fo zG^LueOw6bQY=XVMvhZ`{^NsK=(Hs0)FJ*AkD*qYZt38~EiGKbvis?_iLb?96k9+mp zfN&d!F`q#L)vXprDc(UM#OHy;=ZCArDryuOn^UI{8RJulbjs7^xK;DRYRSAyBO;JB zs{mj(i_b+(b9UB9th&&USec7v5ku`+Pf%daZ^2V-^VS2%&H6EgrygU7zjZ!4fnbOJ zSmcJ6Nw8<=_I3eqn8-QreBkCdL(a`@E>vptZzmo;Xip{O#bbJ_71D_*=6=Fy9C(VS zHSO_!h8&+?B>{RR_8@c8W+r`r>H|X()9+PIvtw9t{xaPJSp~XA9L*DVgA*xNIy#Z-#>wk<^@>*uRKkS zr`D=?3^69grlD)yw#&IzXqrOZY=;PmF)gn@C7(Se+Z`JQ5CvtOf7b6#Y0ZuMpIl)xKN>~!DIPdf-BU%}lI1k?rt2IGGIG8^5j{S0 zzNdLfaY(HUqNy~$G7u}u?FrOR@}g$rmXi_XCF8$(GnwRyIxVJo^U*K%@W?VbZBB7;reC+$~sVkk)K;OeIeMkS6iH!53mr-L>XWXs3Pk@ItaV@E+*&jh;<-ZriSpYdvMK8T# z3pxk73`Wm?+VIer{S}~@?yJaRth~oejx{1u4jwPz9a!uq5Q^ zf8S)*rg2ec(o{_hKxUk z0tF=nh&u+w&4hXMxeahEJP_+Gmn@0)46Wk16cnAGF^&7Bm0+xN=!u`TxiVD7-)6$B zUECr9Z5+?ws69s7m?hf@jybw3O6O|?O!NmQ0fid(Jcx(wYiy(D)Z-{%&9#rW@fWYbuO~a>#eZNxOyM6l@j*=v(+*4BZ}ue{V55bCeE88C&+5EuTWQi zus0n2ezlM!`5{}EjrG4p-arB1vlbom+sCxu$?m z>wHQiB68YzyYBVdi-JK#*V>t?%XH|dT`DEc-@&JTH6w+6BfBs_yQ%^2PsNCka;rNn zfRb01e5m>6@OLR@D=tw&lVYhjBrB#^Rff@~nRVKSP_t%1lEk<_g=iV?W%rR0Q$$Q} zQcePG{8IrP(%Yx3Xt-rDT#HvC(pTPKMdrD0)D1MvqkPwVv``Fe)C#>eRv!DE>59 zo;JGagYZdh1k_`OiJjNG!A(yp6w1@tnQK^UO#my}yFMgQ8{g?NzuKbml!mv@$WUtDRYZeSpkNxV#=VPh^p+d1p)zLL9xfQ&Ot> z4({je31Qs!3HF(Pu{4*tm#2$(cr^`CX4aWZa89~_`^~z236s)!0m^J2hPSonYv-fD z!M^yxdKT4*k_p{O0i)tc;H+N_roLJujue>rNBnP$01&3JbtQJ3c?Jlq#=m1IY2h8u zHP{{ugQ2=7lzn8FSzlU`r|O80dtuhQ)hxbiz=AG^_Yg{z-|JI&R^b{=f&Tp`&2BEb z0uDWy4bF@#om0@r;|fSI{;BK%`T80--&__O49%58pwn#OM{oPOZy+*foTR{7F*J>F z(4namtXfGTsp*}(Fn3zD&0K@e@xQRzAhKMakw@fjDP~gqXRCy|{X#NcFTI#PZbIl7 zB>OK>OR(5)cP~on)CFE<`}$~SPL@^L`bjrjYW&!PMoKWu z{UJQ+v}Q{vPwLL3b*0(j9k*MPU~}IUHcCB{W=*Rwi-t>E7a+iCuoJgyN_&5<2M-V+ z^`9-Xux!=V-IQc2JrMTYWr>+`dn}POzL(H!KxT^(YJs zl=!AI;aRf}?Msm}I8FK5ov>|X)l zhmPRPSQQ+>HNR|uHS0M5h|#zvmMV46Fp`x13|p+o?nKmFT>)m==8{Cze7F*)D$^T! z*c@9jhm&{nT~WS>*be}hU%kEU94oAkg4|cbJazcl`H-i}KOQYgzN=`+8EuZun#B3o zW(EOk1Vz}{yx~Oi#BSp>3`@;i-7zi36i3C9pQU=|c@rV2;|i{<&h!0X zUc^oksNqk8(08DMAC!rG2#6emWNhKNU9{j*qjx* z4VGFia#sy$HXp`gGMn6GRfO4eRx&xZXYlGCw3m3Rt$&k5=7dS$&zdM_CK~@{uFdR! zCIG&p?9N!4UWf4MbC)=Af2x)n_w9a7L6Y(|lDdgavr$*$<&FcBZO6*Q!xrXohv2U zneI7?{mREr{?KpTkznUd)L+`+537)+_nbpgXuYzbv-(ZWCQN=OnUs-d1_HNr45I2* z*>t3K8b#NrJSi2&wdof(6kl^r-0*KM0BY74?M?apEl}#g`Gn>E)EMrkPeO5H{*5Gf zo^OZI=KBKO*mm}KKgA6mZiYcKH!5it+j?{Fy^o|di%epOzVk#>RXqy&QIM}AvaOW^ zk*7ZY8(wPVL*Z~Qu`ZeG@G={1eDhVN-3+&InjWijD~vV$Wg^1rRKf?w?SimM&Gwf> zxKaLX(C^#MEc}2*{0sgyA(r2DGH{~eQyXZhFEjU;l{_*VF1uz!t$!OPm^U&%wNN|< zzEQ)vI&(d{lhKJ^ z&3f{241F9vcbv((nC%3s20|SSG2LhUK9n zQ+_t3|5T4WM6l9L1{sW5myo7K|8FecL~s|>&3_?5?Rtp@z*sp#&=M{u`zzNNq0Ugp zJw<$}j%aJ#ytCWxc=?@{%QQ@`;jeD-lT zt9TBCQh$egBoC8W496Z5`SOVM^V$M@>312e)zH7Ea4k9z-L*02i3xi(~y9cjJ-G0#KX)zZ`RC7x6NhnjZFKwZIibcteL(-n>*>k3% zOWQCwTKoDqbA8NmR7deQ&UQ8ykBxw2>3MI8)8>LU<1%ky9BomVzpv+y>S)v{l401n zenHT!+8}}_(y%$|=idt1p9FBOt;!dPDf=1<2GeuyM$f0R*1}qOlE9mN`CyCVK{IjA zC)vHC4rqwBYM}3O$ZchCoz?4+wBO^yiM!_SoCdQ$eNoZ(WH983`drj>gz~g=u^CVfT!iZStITuj)Q;kC*NOt4BZJb=DZa!muA_p)Jqu2f z>FOPy1RGuRC=aeH-=K*8dWAr8URhwJS?x(UrNOokq`0=wDd{%LkNe$o$vFL5gLvDo zA;J6}aERYVXjcBH_49(2o}LmSHkA=Su5box`t*J%X+9f-^=7y#&B0s_)#l~3y1?&Y z93{#cS3zYhnRU=+1f_C+zTzqtSzIHA*1`X=h+ydvI4VDE2G1T|kK^QgIS|ac@ta8K z#ZKWFZO_Toh+du*LhDs5SM%7tNGjFdBDnE?fxh~IdGC%emvt!xnvVIgR4=)mH`TcJ zboed5bfNS{N4#dZo!CtMs`-cDoySM8U-1Y`VQXFq@>u9x_^RC!Kd02PcqsAvPZsjS1 zOh)dagj{(cFWpK>CwEvDpNPM-Yt;|4!sD7`Wd8_SCbh$NQe3Oki}WcS4IE7O|ERBb z&YZfd@WTyp9$C{|F7j%xPJBb-q)7AXj zYgFn8#3w>hU@~xn_-W98$>?0aus>BUWG=c~{x$;g4>iTQ8{7AyOY_k&sNUvzFutpA z$B$NN&THk2Wwv>sSdaufes~&`cMM`;RC|cRiuMiLcX=ShioQJrQGNDeo>}AuzSfj3 zYpE2~N$$U9$0vsWk@47cJM%R7ziVKJxv~TaXT192#C7&S80$?IguysvEU>UDtj5_| zoqO1(9rN4|O@QoM(@zbi+tUtSY7K|h1$dP=tjyu(A_c{WPBL1p9+UHY%|j;MHHI=+ z=J598p)r~9I>*OYG*j!B!mHN*0x34N1@t(2#0IE!pBYG1uRToQ`lrVd8|UZ+(PK_} zDIr=l4ia;|WU@KsUoyx%_*+8pFqC`!_#HfL);hF{sv$CyY5n&B=a?xSK#CS#M^K)H zcUDLDo@iiB%nG4ZbTqG8`q-i5ky76st(C3wXk*Qf7xA3Yx-DYOid}Y6es0M$o1;QL z3XF&o7-`hzECIGQ4GZH-Lzy2eYqw@Jf*$09i#oVD0aV+s@uvR9;9wT8=(yh~dY&Hk z)#jX1lYcA_3ZY+RE4721Qf(%sbFM|M?kj({#K1-K{=KYDYYTs0ici(T`f zW{0R? zrM;CP29NcJQobSJSS^2h^d_>NSXaCA$6}((3i#G6;A?lxaS|=2rbpRG`5D1z>hwik z&iczVr_xwXK~yVugRMTlDh>F2xwWR+uBJq)xLzWaMm&S)7(8UFqX{(omB>i>=645&5EWt`G zi6hJfKc{ei!hpTfWj>(QPFKS3=FTUKq_?WAbCO<%ctqE$jY`%+*PhT#NJX60YkZ`g z0iD8lLTOwGdFIBuYh+XyoG72v}rypaNT5=oXV$ZAd`k_~lkq+a1lRdEN)RllM%?9BBV}mC$`G6&vr{C8> zw0@*7F4yYj){$}bGx1P+$yr-(X5xJ_!(|U|O$CXS?o$)Z&7MQYbDivyf-bFohGWa< zDvPKeT?Z@F8AcE??l(fJw%+8O(F_zrM^?va=8ZTHJA)Kf9M{iZG06(p&FjvGW0K-i z57Sp$-G-4CMwy%}Ff6Yzy0CH#L00PI(UH)xC{a)s3}?CC<@8v@BsF)3c#vbM@GCqW zk{DU#Y4j+w0clIOEJBG-3!yY~y$zwfhMdH#9UV{msJ~WG-CVG58(V5N0RyY=T><#7 zKw#?Fy@1=fyH-Qzl5HjWx5t$E&ChTf!!eV=ta5Q3 zl&tUy>s$Er>x8f=yh94VAl>7NPLw)sOIn#4_x==GjE3nyV96faiNMi zk|1WNwr&0}$=!%tT|deNMeH(D#tS=fHo9GjLzN?)5)t`o8b~t>w04En)6NFhVMPg) zIbky5lx{T;rzU<{L&?Q2LDaomlyRU=?Xgg~UZy`R+Xv1<-lRyvs4rY87LAe}dX`7r zHpn->q0P|dwE|5A@8U*Py?|6>SAQ{M-?xoa9lv1><+lf>Amd+-@NgLNH_B`|5F2&3 z5Aseuq81S}yhC}>#qo?3x*4{%>>Exy;C-LYOtVqVgbvV+JP<*$oP ze>dC?Nqxyd^?EE)jp;5xMj2Xe8E4F%U5$*!$9chTD`8XyodL&IfoTU|I7Jdn-@kp4 z4AQtE?MpozrkmT>arL^onQQE6vAxF9{alaNNPvN3P^6tD*^O4gH%cZ-4BI&S++0@)As+Q<+idFr>;74^JeNM2MCAzx4@CryaD0W?`BPb z{+!2Adxlb}K8^OtqL3>q2aqIYvST?_z2s1Ct=BW6re80!n5qwCMo4Ye0hlSy4^O6)C6F$$I^n#Sm>gh3lQG?{XxEYF8uzn_-BYkEZc6+4`6!vOdupx-3{!$_!cjzRt%0@ zP%r|9B{xx^SS5+5GP9O9gk#-thCZ;)I<8?Eq;>2_K-!!*IKn27HoA8oYMVzEaqAx} z(fn{*kmgcq5B6ky--SKJyI_@dR9?50+@BbsXgXmFzJ1;gaH(GyvS0$t46<=t(~f;q zo$%NlmD9G1LvkNSeNNR4fxbxFZKzdv7BtG67ZK3MTtzvpqO2RW4hH}b=dP*is^wj2iVc+tDh`MY`Me*Som}2Fti?7rZ7saV}kK%nR>~KHo?y4a+ zKR6X?cN7*&jDUtDms)ciQuSd;kelTT=r%rAUkLlHRB6u(JtLgMs9DO&ws|c4Jox!kGtmhsSD?fZ5 zypmGIj|uMu9Zs)+ff6hus%8~g+pU+9MJ{H)X1pEDdDs@dUpwL>#VrAUS^7x^o}cfg z!0eKVt`~B?qgDLJc&^uCK(XRH4jiguWYeEv&lbzIpfhcVF}WnkZ&mZA#O&Q0K$s6Y zQ`fwg`JKHYk@VmpPr@k39tP6%d^04#HP7Qcv;Wvh+}jgxoRJJq(Xn%6b%ZG#t`M_8o;Ywl~uXMcUfX! zEuBoOqWL)`!#`&U`dz(~Ojqb`E?8pb=Rj6YQ}82~)b}!;u6aArpIIGbF^)b*dSX@E zi(KpUIl=9)=}V!Eh?8jK3BU;Jb(%kvD_RC4@mczAIQJhp7p->hB37C;9sP}K_a#d4 z@36>d(8-f~zft?)d4A|2yJN;H{zu%MCN_Kz-$ng#%gA+gUwy$!(fTus*weO>hw>%S2oK<%cl-KOH7o- z?#-!Gwj2@GcD?q7*|X?q7{9MVyI8$=8V`pq0v!4uIhLpDBAuGgE_<_M&{cBet`2Xb z@i&p|R*uY0?Ibh*r#FU&aFARQeAWq-!L}zJzx_cZkpZBI9c(m;h z`j_%f!^Yv=KOLbt+8)V$h6GN%-&wdF{tU#m{tG1(ZbLRBHF6(-u__*3!u47nAY^*Z z#AD{$uprE+n#NNlE3bi$HZO3Samgc$sIpaut#*_s}SAB>Ji=2P|JUnpIxCXm?ok2s+i=wN^3uk_Ai6*Z*t4F^b;D&~4s+ zUn)Mzi<7NqB^k!}&z%BujEuq?53=q@SlvCrJZ!OJhwWGEHKJNGY%sgEg{fY67j(*i zTtQIy|2G?b2FzJx$FFi|uvIK;D3q0V*x@y4!~sew$b(0shx%(G=~ZqYq&3vOG(}r==%R&qXyl+M#LYZ$ z3dQam#s7*klbwz|Q^1R9cQI`a^_qBc`Cd%19?Mq<)ng+R)J5$5L8lL{H!tCXTZxvUYv}j`(QqP9tBqI`>yDDIUCMUhL>v#$y^z4 zFau(C^R)4E6i^$L83Tj(jc8y-Y!QEdtP+U4>@t#IY`MGM#=#C9Hc+y@8rJBZW7CEH zBkt4-y^Nq%p{wG8cIAD!Hh9g8c%Iq2QM_mlqx!GIz`YKT ztSJXUuNB`S*6vvU(;bdSCrKsW!+=-MI3rNG6tETgUOaxnC9s8*@?DRGTAu z{XzJ4?vezrjU^-DHN`WIO3NEiRX-(IGxUadNYC?WG9}g`!e{1p-3N`&Kpd)^s4u?k zWv3a?dyfDY)-O+V;;d6*`Kt9E2s=C^ernUv-Wc`aTQZ_ruL29orAx3eQhRRYY3@;g zNy+nOD=hOm6JulT--lo}=_&(Mcx`;ZrTi`PD zRyq&O`=jx#vVDA<4IDI!rsVQgd}~yEK+~cp?%azWEovWR+u&hm2zRHVhCcK~D$K%O zoS@QIX;suKkyO<>xZxY6pfmp{!ffK~voafI*-p|(Frp?+?Ba&Fz)ZYhr=;ftvG077 zrHs^O38ZHGb2!_&n0Sn)Eay_Fi_QlrR*uwEM7&)Ewe`4-D|JlStF5(~nT|3QYNLR@ zU(T%8J0{?ArQ_=jb|!mdLzq?aJiWE@x`hvRJgG`V^@QVCW(+R_j?CPx46dh6(#{x< zdxAtI;R+2`#BmAwOOD!MZce87%*St*LejS1L6~_xM4+t8{Db~%|NWV{I<#c zEsuVbpR2wf6<+L`hvNS}AZX^Jn_!S7vy0(lT&9sq?04d!G~bS8YVCTnsPwKh-cxqX z2gp|YJuWadM+qb*o(zHJan(Q;E#^sqS0iU!V>B=s(~WNt0o~+v0788=G5}RO%4EM5 zZ~>L{!>uGW)@?=^GpI^Dyke!NHV@Tbg)+CbU}}BOPAjvhr-+{COC;vKLcWrkF`s7z zk{RPUd}kQ8^sX6hhwOrLuJo{B-EICh$PV~Pnu`v42@9kwaNn}aGlzE zQy!$^4fAexV4;3Iv4Q)eCEcJI@Bw;LWdPFQQ)wN=2U_BA{ium3eS2pt&>ef|yNzdw zqH5^aC{$SK1oX6>8DxX?q&O=GwoVaME8fD_O4-KzTU>n##k9=}#O>x2ck1W)CE>WW zeIw8wx+4pDbYuHs$Rj>RBBZ=5B{%-Z<~m0wQ&Mw# zB_Rl>+YMwX_AL~Ugc{=&yBBC}v#m)?CEq_Gq^KwSvJ2p?Qp^u1;KD3bJ`{Ugh zWgQ;04F=gt@1gwX19~5&T1lL)-WU!CuAt{JR8D-j{jXwK6?ZDQmzHqO!10Y&8Iw8;K?TXX&W?L{{UAsWgu(x9p zCI75rjLy-ETkGjN@@!^*;%f9RF$B7{HL0(Uu7k_xq)QY_x}c)5S-xSQB@Bd6?`+3! z=EvpYx7-Pom~q3n*UP>MMf8yqb0}{Yi;-4P4X|^uRU~$exw)O<;u&b9jye)*bKKaB zugyD`NEX#8mdL9a1BsTgzZ|$Qa~_~+ZuOiFM6FPUY_|fci0OOf;|kWSW@L!|Sf=u= zih_9MkULN{>*gWyIh%{yN3B^6`9F32Aj!Ll*1M1dOn2^r(PkCdw5d1o2*)EG^FprW za}Xsxa3vl0CyiKZ_kKgD#jgy2dBD&VH2U=g5xTk5fbYOC7+AmKc8Gd)F{W=+Fyzfv zkYLu@fnF3Zkw3y}7G~24*e2d96K^8U9NNkiL4~)>gJT|6Cpa$6#V#{!=WdEy&)mkL zZ`*0S8!utj@QXE?%I_+!VSRAfZFXjrd_jovVF}MYUmEN|yNPvK?ge|A}r z-SO6moL1_Eg<{r(movG4`5#ra*Y2W1+uvIdxVKoqDjE(*#Y4*`)e z;qoe;_WH5k#>dsJZ>Qwied2Enm4k@&^T$YRy+R@lsa~}Le|;{DS!korc`_5RXEV1Z zZ2P<%Yw}MoMahA`<2XN4#!>X^L#S`2XAOh=mCV6tckFmcu^M$iQpa3`%jiFygtc_H z1JImpJB0GPHAL6W+c8|LKLS0>Vds-6&p$hXl7ttyjL|x7?>G0Rc+1Sgs5&tdep$x= zGwoBnKToH55Hw5AHXW1eW`6T<^@u$%`y{&sl%B2|QLWzU5T3@CPNn>5(_{cvhekmE zRg%H9W_cwn51#Kr$!WQ8rSfSfd8fv&^X2--CI)um)rWtdN0N{?Li#A{bUlVImW~F! z%EaCzyY}rSU{$*9o@{4Oyf&S+R`U*mMtlH#YA!jaSN*sJt<6=VXl=BB3UJZ$-iW7C z?U%va`^$PiCC-q97+xh7HpO<}4kPG1Eub;Fl1{Cm3)Ud&!}!(kIre!C^xbv>4Qu^% zXf*wh2b4*XZQ!PF*@N8`7j8w@236p1R*42%MkSfuR^D}uL+-b3)UuYJp|LZs$}U3v z(T<%+S^j+!Pv=dhg;(Z`6<_u$k%|?!%7oY*RSPI7D7^KJ`PbPT*4f+&pE-$ z@~Y75xx+w=`D8+j%~AhfDGn)X;>8IvBxC*c9h-Lri!V!oX90uUHY$D-tc%{RLlReK35L?Ck{_t!3&-S+Fdeqt%9s zx_u6BMrZ>cpwUH@Am6fRF06<-^P#?*0`9DbF{0PVs`OM94gglI%RJDdWjW>stIT}^ zTD|NzL*3OL^cb#{=%Lgip@OQ!>LiuX+asJ>cPfT6rnFK=JH-Xjmb1(|nxh)qQGL{I zGTfRyNWAYYZ_{S)RXo+!KNlt2ucY(5xrjd%*V1_@T6qE^G;dEI)JjixhB$Y-5bpCa z5$TAy8jko5YiT;IAUiI$es~i*!!O(y zqk$hDRVP*hniUp%*=eNvp^rZL2L4k+vI17?n1`6VXDpyn+nmN+V-Rmej#9FUM{_QL z;@0J+(x|j+xSIP%hpD8Mdy8@Uj2pq|J7p#y(TB~zJ64sF1kCumT@p0wnZI^K-&)Rs zujbpR`MN{^6jQU|9K-!T2}Y2=GhFIDB~-?$97|9mZD|Tm^RLGPW=t^M)zkl>uQ4VU z4AqO>QAr=Lc%m>X2}^xKU!JO^iv`0h+9}S?qL(D9T2F35Z{%Md0gbBfqCD`{Zc1jq z0U+A;>sYLVj};O4*3F3@)TA_;B5R>6g4S|g_k;dk zMQW+1|Kbmo>l(=Q5qqS~dX^1vEAKvda6Q)!02=mZ<86+&OW>}KDnnaf{Z2#=>(KOd zJY2R=v<&$V1FfH%L(nX-KHLq(52^a(sgmSp2Y@c~ev~(qC9)yPns_t_4n^hPm3e$U z*`dTO@0kt90@B_E66}4LpYc4Dh&vj|>4KSJeE}8N?Ys7OUzV8s_xBi8#Z|{kEds6u`ef@a=T3^i#UnTN2 z+Nn7_Fy72##_@6U;?SucO;V`;?tu>vzw846`k@Z)kZfv&C$+ZMaD;xW9Pm_k$surR z*W7}qrw`h3f20%bhAXAyus0zHwPr$$Wf2nxfP}WO6?Ak^%uUl_) z)NnVv*?itc;x?!pP}Td!O9T6KFYRu%%%${YXP|{OB85~A`WsgpF7Kc)3pfcT&Mw9- z^>;n4=7=*}Fd#1b7(32?yNajHel|he`equ}O|o~!Dtwz-M!RUjrhs& zsBIoBP!(>KRs60Lt;Zj*QxkxVt0HGoNr@k zVQ>U?bTVmawSRKYK^^7MLA&E;bzUQ4{z9CxrK~t}+*SH-&-DV8x@+;7c3~zu>NEb3 z@8-=x1Z<1^%`u``h~U^HNB8T^G8a7Fx_1_ojB`dX9{VaH722mGY2gL@rGMbOG)KeW9*FbE zU?2FfhQU;y6^^B9$aP7RX9aM8xo?9%@>>;=>$f&8T*EgH!Z9miaiDo~XDA%|?h|bG z{1gC(I_+uA%+jp{IImXGzG&4|k-DbSQaE=ioMv|@ZTi9H{%7D{P@y|ihy4&FJm6j2 zQRG9aRBwtn>-`nM*XA)GbK01m=-geFJsRd$KxVcogk7rQvVr;~WCmXyJBLQYsJu3a zN)s-D661KbK*|fmQDTnE-1vU4sraGI(r{?*H1NQu{dFQ?>gkl5K@w;4)$wuE`V+DT zow6t66~*}uvC*=+(B&v&FA(#&tGA<$@1s31JG`H6z+BsG4kgz{ZbQLe>r!BLnwc2K z>cVlm*aORTkW}AIAxT zX5Zn;k)*vrj@jc=1VJq(%DHzCE-CL1P@Gy$TDd*)H&(BjKc4y*Un5EX^aL*EMpgpy zKGOp*Dupup0*?Yy(De32T6C>UsSvn@`v`JeeoD(*^8*0XGhU*H9{<-|PL@a_e-ytO zT#ZVdk`bGy0+#6=2l>IWjm!^d!FfQ9o>VOu238T813h_K47J9kghP}43=UF@*5Aeb z_?4)y40tPzW81&Ml>Vyr^A3D|ph+@M8{a~>ajj?wtmA<(`*UP z*2-57tu0Z3FhA%|xmxyYFVs#+rM`7!0_|6BnVdI!*T&JhA$z`z%P+%m*%oJ-g^K(` zb;LX*Wa`3+gi`aEC^(5z(O<15I~SM;5S_Pg1kPI3DNKN-L}R*oYWHT?ww&+H{d}*1 zXuJ9_N!{$~7H$*wi~0?#V4*Ult}ld@{1~W6ir7qXTeerQMU}AW^^T&Okq|{2XdIT8 zZ7bpKA?mbz1&Xc91kW*vE!dp)FvOrZ|Fv~Ew7DD1wd%(x(L)yFVl%1&U5(nH41BAc zak6nt$LS%E6qR+!)>CINuMTpo;?UhcYZ1p{MvC`No=vflEdoNPj4*huUI8yP>!k<` z&DclNVopp!$1Km$%Qz&vQjEuSHUaM=KRIcCZOoQ1@>4CJIX@{VR43p-nY6vB2?%Ieo z+xmlOb=zost!9xEI;=#QYtYjE45dF-(a-q0w!h8sdloUVrkSLdQF5AeEGNUL!^x-A z(TAqu4x@Jxwpz>UYv|W(DfZpCO=Q*hJy9sI)yoZWL#Ik!3=U@|Gm+FM zCU|mf8siU}*~2iym?B#~)cPlB57PR>U03F~;zRumA+t7LB2MZJ`M+-58Q!9)G9Kj0iG{Pc-AusWne!6vM=_-@{ht_(BD#XC5x8H~BfeOL!ZGRQ>j1ylX zxi6TsiMf0Ow;AW;=v6(n5*FzB?ue0vs(5kVn7+#KtsPwS9gERL5ATS&`q&;oS)IMh z&fnz5)YmHi?*R5b{&4`W4JUETEBPYPvuZ0fSlf26ZtG+Pc$>bl$)rg+lTr^ErPDfJqY1uSfhcNkAELK*A{A$?A5GdTuSTxn z+IAyJW!91Zh}uL$JiPweVMJCOwU+DEQuHo{M<{=9=RK0(_)QAu`k~rFyi(hTd8fa( z(ax!NUE(qDj1ofq78UV?wXGw~xwdEkj?*eH7p(Wrgy;2WBBw>2pKRlt6;CLQxy#U3 zSHFWMZFc94l-wxhi=&RW4uD(eD!f>^60c?5HxWwpQ(=)!C@s(Z;SGK?E`DkrW&MT&is4WQ9n& z-krqI;Z|`I0#1FUqVl5?3TnM&aksv5F2al>Bk;50@gHzkE%_g2lnB5hdV4t$MbC@7 zGmJm~A;Nr}p29}<{6xX%e^tVt;0pKXU!j*W866J{ zKZ3i)mLmamKNT2gQxzzUe5H?3;uw&Ijl)ky!?XD&JfJ+RxRqKZX5k05aPK&DINmsj z`+bG^!>}py9E344wqfn*as~zmM&d~I-hEOYe|`fo~uRr7o`8U-ap#ZJS| zl^3RGu@d9_#UfB6)`ynf{O$+!oNRDNgsMg3T3VO=|TI0N+%DU~(u+NmP zKx5WtgHjg_sapBsjQl^IeFQb~f6$TCU@#4{aeu1`lio6iq_o(+*3NgbqF}4Ub^*%D z#bv3`H<$%m<3khtWb{3Kg7Vo#BcTZ@kAlj7qXe8&no(l(tc$X0E-l=~es4KKLT|nX zyyykKdBb`1Z#-l+eoZZHjU1b3KCEyMN~gE@RcpI>4Ntobf`d`E_B6_!kMBd`1E1aS ztk@6@)wL~%jCMap-00GL5l=h&#lrc`g6)+5?KU3{bq`>z{N>xk>Z*aL zsihA^DWgSQ$&=M zzG;aK&^(&Igt~1;9mfp;vY}k>F#$B2sm}qTne^%u5|_M?7V)tkiZ~BVq2T>IprF+F zmB4`W{3K*-eUe1+mv`du4V5rWY0}Y`?>CJ}Ms(NANxPw^#rMhAXF{^y&19Hlkzr@_ zp!P1P_dlnOetj%@S?6AFMgB<*o2*>R37+xOwwn8i0|<}uX<#tz?E=V+)I1nw6dVx7 zT*xmPIW7B}Gzz}ABm49_eF2ERav~Nf=W5|{v(fZjSbCr^SEHS*+2zb95%ahwNweXQT-rgJwR8%y3E8LrL*MXvywuA1+dGDiVK!gihz4briDIL(IPtX7C`!!I z{}Y_JOy0}2S_}N32A(BVtV@k3QR1%eg#BoF;W5j^cVqREA)%d76AiQ}8wBnb-XhS7 zsgC2d_GK4Cm^2CGD831?u$(nf7@zzQWTQcQ%!_u?OAi>N4W?MtU-+QSomFC9mS^4ymOT6r>&mjd-}eR_raJKLkjgMZM> zEOr-n>l;AQp&e!7}Zag${ z{1Kg+jHeaQf+YLQIxXf>>EwBgGV6q`faZC7yr@>%%TuHF2QO#})&o1r$w2fr?_3Ll z+sXryK2>|7u{kk~5+k$(|3Q{iTY^rT!i8`yOZ6QIf8z=B*;itrg!Buv@mBvF6I8DR z5MzF>J`vfShq1a~c;+7~uihAM7L~6BsQ>fk-dd@XC#o$zS?n&&zlD_&3Vrbf{AQJA zu#g4uD~Yk$dpba}j#Z|_+}MJKR&CAtT3V#yWQ*~-T@iv{VGZO8*CKW#%E>#QBMrbaTQmFdt&nE7hkA#7C-~@VDhjU_%+KO>H$D%jX*9=($ zVbz%@YM;s>p4>fPx6R>{B?S?kb0tx1#LzBeOGCakU=lF0&Ptc9R-L>KjYiveZOA0LdM@)KL@p!V1|@$l`EEb>;|gpY2`r>;74C2tD%YEWRbJ`UoQ z-7*oWsKTwsjrKa!HREhI%7@evP39^QzgU+28>)!PnkHhlO3fo9p#b4U{zLp8d1 z^EQ<48<}C$y&;b5b(vPcaFU%S#&wy&v;NsMkNXMtC|4WwjfP|87h*?;-E?qjpd0<3 z+eO-V+a7{#J(ErH=IkrpTo=CAsadZGg7k*B=%u@D#8N9lrm>8|jR~i=<{$dc;qx%g#OmoyjZOtTNR0%7us|x6>kM!E#GdyWz2MfuQftueAG4BXJBKF z0edKqO$g>%KALbC&MTHd^W)5ZX!?~xU#szWbhp-x0=CL*4=|#(IE7OB!qNEIyl)p6 zF0Csz+}I$g*u5+fF+)eKgubTN0y`^cm?CpDe<|*t8=A`Xaxj6i3SXhU)_iA!b?rOa5-_cblXjuuht%#Gn0vNge!B}NpogF;QGFgJQrwBS3licL#1({saCb+x8 zeuoDGG5HHjL27IYHktp0yP(s|gpm+li6PakQ^!1E=3W|PDc*;sz$SDUS){onqrFz? zkr!g;`k}pX?*B+S>$obKuYud$?PIMS*zIH7wYyu4wXqYyUO`GaML}Ir6hQ*lRnEYAHbL+4A8$ivJ_rPb(dddsua^1XAD0Rf4IKi!^#mr|wue04zpN`%ETE zUe2*GC)Ig0GoX_(rC$1^sH%3*QX9KD4oFVRMBmSZeW}?r?~;r`wYb{wV&0ew=Vs0; zAw2tWZh>9lNAPgnlnYyw{P~b2YsQJz+k0kGJu4A&6qkL3dfpYhIL7sYD=mLYBv(T{ zM$yKf0o0Dm*oiT=Q9S>RkAqFCa3vU08kCWSL+{atTifM}(^~pd!gpylXju+dQI?Uh zfWNCP+-k2o3-Zt1cT-MWMBY|Q*I{PwyPTUdN4%B(plTW_XS+5{&Dx%6047Xy7Ud2Y zOMS)L7}mH~jnt*~tt_;EzZ5ZvW{c{^K0-XP}VID!)C*?aUkn= zmyW-66zbC5mK+4I*Ku))o1a(k?D7tGS3m#phT(3Y|?53Gjqhm^IT*cVQU$8beMb>iIBxU5GU%Fo8sU@ ze#F}y6Mo|G%{djq(aG~7Xvu@Pp5IWRX7%;w1mF`t(8Z1bo$@$^)M;&F=GZZOB3`7I zc1@z%eL(=a`6yfW^q)0BqI~&7)MzE-N+%_)FEMX;DBHl8tskTIlU0LhT8c$9_T2Q5 zlzIPFGI;MyhK72~2hv(%f%!J(^IeEi>v3&TggH{qJX&`%zGn4G)-jYC#b~9yT|@{n zz9;b+P2@gQW8bz^AUobfQscC57?;w;lR1>UO`{>zzYsoTmY?Vh0Z~+EnbI=j8k%JHaXiQa1Sw^Xhn6#Z}szlswT;<};N# zb1AhPWAPiM^FnNG6p%wgM#qT^i|>qtN3G&%QCYFCXwppmwVS5XUW#s`USSh`YD>b^ zjA;imYCYMhVZOW@0gRQ5#Hy35^k~O|)2Q*RjONTP1=qt`{sf7DTXLJPx^h+`&+qa{ z!ph6GVpb0yMFAhSFo>E8Yr(JCMl;rHJ74@HQ;#k18jz9>mqS;=ns$2lN>D~RrNI52 zNHk}pUP3B;L(&M)#}xa#|#~ z4nBq@+DQXSO6|coS#Z)uI6ChgYGVsy#@U*DmvAbpP$G6U_w-u9{@gh_l&`Ft z2jCkSz0Q1(Da?&IMcMn;PUg9ZTLf+Dzu;A7sna%~Pyaz}>hCL|JbTw7saQp-QE%mC z2b`m?4Ds}4s~GvUYt5q?8j1Ych~LOF{>c~~1MN^S>MxVvETy0#tD+YUVkirtX(n=E z0;_b>SsdMvMYPg=q~IRq0f@EW9Md?_nbJ7g&JqTvK-Q$e_pE++oHo5YexNRnq(&K5 z)5pd{+iZ+)o^1sdb#zM_ZQKFlMn0JdFnc#4(;N1!c!{ocVAQjBvUCHbF06u~r50}$ z`QH&I>hw^m)kXxSzsAFwaq8#W{rI=Fr^29QET1V!|r&Shu$S(tgnr|Z5glr zvFW(B{(T+17;m2@^Zf6ZWz0(+Kn$hf>NLuycc7_f8ME8wFur2^&YM&1j=C8eDl#|0 zYV+Fr+c?G01NAD2-|$OwLOh79Ldmo?U&(P0b;UZEHAYq^$0*6U#8!nKr2ZhD>dz(GbdlYi9Z!tSRrOaGM5NaMvtPj zg1))f=$jN#W&7f|iLv5mBHR>+CY-pXO5*&@Eu2j~QeVVGE!-w7|8)N3~2m&=C2aF(|QWK-{nXpdQNCw(4h2H&$z^RM34 z<^jy2&Zt5w9=DycL^j+huwo1df;cJqOW$!l%*Ijue@Gfehvqo8Iag1DQon3aTADl? zkj%AV&kB3Ji|Pqy$iLR;v7vTHX!UJWIOfoUT8p_&gX=jmKG~Y@s7Ujo1?1E{7k7Yh z-YBNjH;u>E$`KzCDK^jx9$WR9#Ghr-qo{AO3#ZazuELo4dK55b^+MuFS%yGW>6;}T zWb+5$=}P&$IDtBN(-@u zao0s!)|?&z7dP@xuwx(DaISZ2Atos3Hx-zHE#oL_9*IYc(%!UEFU{Cu=Q~OQp;EsDEEB7P3!WrrWuteI_twYBLsw+Q_KidRGIF zFpFLeV?T!zZM2EbJAivr3?mw^o4}r_&9uY7{r95J3K>_k4AdAf86hXq5h_;@z5C0d zpjAGnOrc^>OL(_d%?P1%`k$2jCLxEGdTKX~&c>4EUkyx!BWH&ww9l8hFwn9V8A_Wi z3t4)miCFk+9X!X%Uhn`6D1Fh7lF|o<(25@Pvy;``NoBg{)p{U^=u9A(Enmh1pS6`R z|LG(aRGT#(z`reXZMQjEG0NgHfe|Qd&)IpvP2T6p*1l3ivel(@f50ZOsmKxdMeP42 z3_mgYW-Pn?XtoCs=M{LH>3Y8<<@tP4n@3#k!#3)_%bT+wT@p#vqJc_RqK5M z9KAdqYjZTV9TJrCbq2G=2=a%rsP874o-HTrwmn3RTFaLeM4SH@DUwKslg=D_916MN|46*-5G0nvFTEJ9&6(aaV9lWqc*NAR{?{D1@rr zMJeX1-h_ZPz29PAn^Qg?5ARye zSdi)7LD4XF>=1_6JY}?I&1ucEQe^Q&klphXLH-0d^KaA1V9@gB5t!nEqaj->AQA3+ zL;+(y$jYH)GT8#VxG{F}fInJKy9TYvRc;$Uh4{K}|p0cg}e9${w&Zw8E*Z@p6m zSqw(jOZ^X~%#t~`*>G6tug%`i_JDY1Ihe8r$&F;%so~;Gm7EDeQ~gPht4<@pU>Fkv zfUi1H2d2k~6)^I>+(ueWeoOw>rMUhK|1{4Bd&1C~-uR($z1I-1zxf}6nQb=V^7_e%*jsz$>uYCI{{W0; zdS5^!WqUJ%P%XY&TAi-|3&w>{WGwUhQ+nqLE|AiC?ZT0a-?Br>nzq!xAYq354rc-STG;|(0y(&q`2YBrm}zKsG?ao zI}#{MWIA2xSe`akp=Tgx8y3E!yLZ!&-XlC*n7Ofy^2-MtzRq^P={Q^3yi+CL8g@(5ykVW!*0|E{za{767vAO84Lp6yc`cZ zN{VYbHHY&evEHx0Fjez9nlL`a!-BbMH6}6t9uYk~X)pCrnF)OTa=b5d69pouXnhr> zWZstmcH95ZnEGjQIJ6_TNw4kGhg|L@@6G1GA+eMruOfnV@UkF$J0cKNLARv--c#ze z*}n-0)9ei)<+2~_X;nTll(RPyxpT<}=hQ;7Kxyvm!?X4D8xCNdbn>8PbNfipa_^W>55PggiBrjXa z;PavU*}FOJrq-A>m*;P#mh(L7F;1uKPNp<6cil@({XZB^kL&{jYN3``-Y8ZNJbKD^ z(TV%f{lFKOO-xo`u&DOXGQrT}IayxGe>523Q-=|C=EsQygS=($Ai8#Xq-mPz8z9^I1p zv-cbZE=nYNGd}H$f#c%8_ONw%(LR{0w8(=tu~pq+b=6o2kfGltC<4mbX@ABW81-d& zCJ`@JJi-=?u}L7QcLX0**2z#<{ihNX^uMty!SZqxLpOEu*KkDLw+}4FkwGGA*~w?9 z*K!@@)5!kVL(MsMJ|uFD3*}Pw1H`|veX2WH3S}molmd&=p`3F9gDZW01pQ~0{LyKLo5^?bW^+BDX zY!u9VjP{crQW_s6)RYJ9aTz_u2(WWD^wxg<9hehrT3Z=c=)-c*%Br|8jOS-nhppQ5lIouE=RwovfaIkn88epS(r_kg99K3wrro$iB0e)4ga@<$pdH=AL9(SP z10%H-@uL;0d607E5j!(%@#x%o(t9SY3v2|dm7_9_tNti*9AT!tkwD8YQ)lLgoy5M{ zq2Wq9Q=wxw7adY!{BbARW$(=5M!B zJ-#`1QU~$9ZpZp+ku>oOXU6azi`tC)hoW`;=BG2zN!x{MDBcMoL7T=no3T%35RPgpPSP zVn0-NRZrs_yt_%$UXh5Zs^jMX{-rkH+BA<{aF+Na4I)|YZ?HLZ7qn!RmOF*ie`R^x zST9?~^nTt*rp4#j1xBYk3;Aeq3bs+4#EQz+W2nu%D=V4$QU$dc9sja+|L6HB9$T&7 z2gcU|XuU2XfR_i7AC#nZgprb~JN&AX*O3d=dk+amrAO%=b~YQHMJvXn6jwX_*WrUm zHrzjo`Zg_Cuby~TM7{nI6PwS23I0AO1v)+#JSs&Eq_&1P!^xD9NfV&A!1E+r*X%-e zGveAx$TvD6>X?@Y&U8Q7nrz)1+>qxVO%H?NZTSs6#~$B|vM!zw=c{-ofmUN8#V`EJ zgI^i;a5bfKZ*Qoy`aF^EKc86w;HS56b5JK?&&_oJBxnAfMX)NWz>u98d2s=Lsy2=R&ZNEtBUFUtgh7PAV= z8=XI|re@i&Ah^hR5Bc=UB|K?WL(+}bD5ftktECq+7hFuHruR}3(1cSsvog>TK}FK~ z^)&iNIS$A{Sza@Gv=K(qD-v81 zNl2^37U3>N6~gJ4HAJ>ZYyEE$#>T;&#FI9>1)U@x(jbvm ztIMB8#|3b$m)!^{WBxCENtsvyEoqf1_W@a@3c`5iPK;R&x5T(g_s5u9trxly4pN@3 zwiB&$)<0`O)Acw&;wz9fti`>>pkbX5-1?MN@>_~*pi!1L z-Hxz3p98PmTfP>alpMgTPr9)-5`Tm@kiN5)gX?yA#87*O<9kXEWijf=c^^9~#s8rL z)C(68g>K9mM0*!ku&8}Pkw!27+Xwb0g+g1~F>)Jtg1(Ue)V~jf#_viYP)%Ey2u!^u zK5&!&3tMx$N2I`H&)NKGgvT<_nXyr_T#6idw+@B!tUH^ls42Y=EJne;(bVkgP0Xq( zLp2(C)Q#ZC+5v=DPRl+R^+=kyVU2@PfQOwm0N>Rw9t4G7;k&A9#ytC%96*}cyGnYg z-aZO6W9QbQu1BU7yBapOy$!J_3EW56C|8?Tc*E;jBGWzZ&%7p&7l=bLM zBpANRd$KX$0o*CR&q5$la(gH>JHPsZEqquw@OsBoJ6|3B1x}@1nHVTKH;Vv&wp%N} zQ!Xo-SM}xS*=pDat?DCx!H;1bLN)rsM@Vnhjf5+6V?$)qtA=6=y~;}Z9pCHttv;r8 zEC_DN@f*Fv4SdIZ++{Om83&nC*MFmDHENo$|L7#}+KOeGnv-pfg7>9~9VO=+?Y+FH@$JMA1R|4KH{vyB9qp7Duj zZEseZ8m%sM2d0y3Sm8yF_u=nzdZDY50VrFGaz}QfV12kTCLZj?w_hHk5+x=YFE<8! z6jkkPMUB2V&n9ZzR8}nhm*5KNpSfq)9J7a^UhTZBOsQS=pbca3A=;S7Z400l(m|4b zbpGws)H_Mm7}x+nrO9{3=!>)CSH}1oeJHE%@&JpC%itYuwS~-&7|>dydsd|SOp-X` zw)a6GS^UQf(Nl^GiN|Q>P74@Oxi2;%d!G7(6>_A%~*K zmBH57mI2h9Ie{F?B}YHV-rWp)>Z-i-D$2bb_=oAyKbg`wMAX(RnE0{0uPo!=A|cCx zA9KQ+vUP_!C_XJ4FBA(-h*1}h#|6xg%7Uib8u+$mcTTc#uyi^hY3?2e3)#Y%82-{OHB^^cM9tvPuj?2h&-eOum`cChtwXb=YXlYIo%kpIE7S?U4G zH?}T!hsAyGSkw3uhu0Wy2jcwthN8)kZ&^u{)Obn)^;1S+4eQU?$!y%pSTR32tUZ8D zS4Y9m`$x>*@2)rv@@u13QeCz_-GFiQ60%vxvtvzto{Tar=ZfN!9m--t>&a9qqMPAD z>MGeSs=mAmclx&6nDC;_gY7rBi$3e)rf{-QMYO#Z2ECUr^dnp z3E+3MkAc>s9nw7)WQOuaFL9YFv0iq^(TsKDSUK-wjQQmOy1_#ZLv?QUshn!cM|ZE> z3hl{9j-2+wT-L6URP=oSqxzQP7|`g{Q0KW~B~qw)=NV*_pn@yF6?`ArtzUCsLLKp2 zT>rwQ-TeE%-WXgvwUYoaN6TcFar&++W&Tz~yE!+$BE3S?BQ|@FG&pfGF{as0 zw#Qq=KNE20#$h8fta~tJTn@n1T#6mCogTxW(x|=%_Ze+~OSQiX8q&MSVP4-1b(>H-#3u@h&rW+biW7WTky37f$NAZof4 zSFO60iBO}&H!`cTzKZ;N@VBt!cYg{;KeEhZW~C%fs=56L2O{&r>9E+paU{?B4Ik?J zRzUqm;|p<|0C*J&`O~}i!075uq%3808O&{MtiG8YgBtFl_Ng2J%{%j$|JmPASng&q z|C1|@WMrH=Kn~P~$BTsC_h@cR>gY|IVF%H=+GQ~&*UGx$7TPj7=c7(6MZGpgUKh;G zhwwVJVHHVvODp5fdgJr!?T)W68D*=xNBhDHJ8pRP=z=nh`Okt-PVvffsh^zy0?j$& z>~`Y?B#K>E@f_e(>YjJYQfzm~)6Dcc2{Chx-*SDA4l# zik$kG3fRXCeYn-eEiGquz+mg;8uc#!CeU`sO$?+z>%dEL^ULs|mD-R-MfzY8ggUNK z8cjRS5EZ#p-4EgumqDxza@`GrUGCKAk9tJFeYYIc7-uq&V5?To`-HdUEmxvx9cPJ0=8c(0oA;vxByu;6jQbT}Qpuk;fDN@b z@Jpk&>^Qfk%Kl>WxOWUSBc|-4EOQ{x&S|dmXhk2=8U#va4>D`%JbuWL%fe~Zr>7&K z^f3~dbQgC9MQM5{j|-ebXz!8*Eh%Z!4^T7Yv}kG1b9B;m7Tw>OnuwyM^nkwE;zTO+ zeXoO1?-q-yj2~=!KrwRU$C&ksyr=$GL7aYX=RS6BnmCUll^2_c3vK-04b+Tj0(a_? zD&zxKTL|Etk6>u6!2f1ZyVnf+7*1k0mt;$(?ZpG4%Z<+4z}(gYqnnLyOIY+QL!_Ap zha)&A07bO9DGVm8ZgqCURi5b>O>KF4I*`|U9i%*eR_xGy5AJBi`|zw94THMHjm+rbGPW7^2Zwx9i&bdlXwO5;`%s~vM40YRzt ziM*JGodxeZ3tp{UorpRudd7A>5HXAtU>;f_A}0pTf>8RQW&GK57`V*UT}UyewE?!3 zQ5Q*~TB&QerdGHI{;VGLJO#}9Z7#t0q*Jd)^g`9zvz~~oT-_1}OxEffsF^iGls3F0 zZm9+ST91-zOb7tJ$5-AHMz5pOUp~4yj0H{J2?wdKXs^wB>T7dEwu7|wt`W|o4mktA zlVr=C;%ebp`lNbbQa5$V0;aF`F|0P)gqrzh42II3M&Jn61Cw;GEjbH`_WchdhONpt zs*OP;E9IMAn6rvZg~q4xo1l@BJehxc$?!?fv4ptL7IkBQq&|D(0pbC}_fqz$E+{9Z zV0$ZHTWo24+ z;zEz!;$T{in{cc&ezuj{nWl@0ukyC;$UiNTwYsa=%KZ3eJ#<rj9dZf;FCc}@9|=6G z;NZ7uypDodo{y}2HEwV8Sj(zE#PTWf6zvw6K@X~bPD$crhB$SlJ zK|9f1tss%{*-;RxzYa12==~NPMol@SVvOz&huVL0NGO`uOf09p{fJGBfBgws!%aTE zW~P@}Ma_kk(MS>42mLCG-_8cvrv4aGs}Q>xsY|*^U*woL1q^q3fuYg93={r z;jewcFrMi{5_&;g%bJr*BGB1a^tPfRlTB~N!H9nSpKdm8J7|W@m7H=1mR_O=MD)!I z((R79-ngdqY5h3LogcPCBc|q7p5qSVW>(P4#qe6}5r(shZkg`yCxGKQE`^a>nWR_JI*F{m!w%?)bnFKdve7 z7)8a-pKxv!s4ChxEc20Cp_Mpfgj`o-{*#FcGyhgbsfKS3`W(wEa10=}7O0Sqei8e| z)s3t`KK_oT%vyU1U1QWEUXk}7r;X;G4J&EQcZ}oEWG!Zlg3qo%eIpVvn6fE%3J^)! zT%PM^5ruYXf~%;J{v;&rrB4V5pVlPKt%5G0P;=_L7nra05M1k|Be+`Oj;O0wu>@Fe zkq2znr;{^y{yiGrjk0qhfpp8a3v45fl1+>&r95rCR<%UE+TtH#$eFIJrOfytc7Hi+ zoHW`^kXp*p{ph<;Ui?q>(~EL}jKr#hi# z?H{>?8=beM1JZG$@Ot7R(rP)zxq-k#WXWh( znQA~EKQQ!Ki{xgtH+1ShAiv(J`cPK_ZFo0qD z%)BZ5`J<446sSAI=5Vy7Gc!BYB;Yv>2HWOd4+K%&UC@AXcsg@dJul+)W>48cr2cqF zq?i}?rSp8^#U9vrmM)$%@Tp{#8TVnvy7)7k=U)By+8l>Ak6}*7i4f7(U-bcPmzyBB zE}im%(P_6+scFLw5yy!GaHwS~AzqUDhvxeER&-0ctL*792hJmjnKeGx`S<+-3~r82 z0A8PxX+NzRMqn9j#G5rB^Lq}fO26*JgtA<=u&d=~;tn@^6RP^uW%NUNo^Ipu-l*l^ z3V1@wRgz@8ntD<0`Y@uq0MaT}e0XegBvs$^M^feZ<7l`J^jwF$fA0XUC(7=3J$#GQ z=UWStT*ey?8`)>ThTduv^wa~jX#8bv)bZf z>gAk~&}!tLj*;k44-Fj{UggDE=?!W|y{pgSGyrPEpq1x^|F z2u#L_-FUG!`D+yQNiT5(!|ygc8>8%~TIp37A5yxm$A`2<-Z-s(LeM1mgGT?m7-g9C z0!SEEzoHV+&L5Jg`DZ`Kv&(oZ8V~2mNx4ugpBYo0g-KiBzM)H~v(Hy^w%+i^Lt2Tv<`Lc{3Kg zX3DqGaBw=6K+z^e^G;ULwjKt~u7UyO#6@A)%T>r7oK0L9<+ezpaimX2u$+3-^Bj$% zVo{Ai1_i{H|Y`#>h9TT+L~&{v;a8d1aB!ap}`K zFdZ382wII6d-CUaf4smNCX=yR%b97k^xNP~{koi}Pkpmc)EYOPbfs1ap9iJ28vkmW z3}L8d!xXm@r_Hz@=2mNSC`Sk zUG;dIW95e)Hb;+%G1P7?wutimfpD6XJ{Jj&^fjUITt4Hh&4B<~nh|xkuvbF%v*~LC zL?!e7+Xh3^8zZ7VVB2(?!y}70O8J^Ns#WuUXi#e=cVrp!*JDrR>Ee~t%s9)l-n;@d z%p(Q;Y`jn&?+$`j{&AFWz#3R-&h z!6EQEb@nFezppZwwcf>Bc%N>P0o<3;uUMsDU{&4Yjg;=GDAsJnjYu3$Gm+Ku&mmUr zz9bdMEr;FUX;6OZ)%)GcL2tL~c4*jdi66dwh?bRaL%^WyYe;AtLubWPUtt8VNs;w2 zhgH*q5vJkXn^%oM@hf$>9cb&@E0Lh{dpOW4Iy0=OIVl~qr(~O=5fw;jPCGUUkc}S@ z+ge%yVT_J0X{aV`C#5xA_PSXIzfl^i5^-DOz%OsmADs?k>J6EL(0dkq>N+v zH&gHAtOKcb#rw5?uBJfoe;L~#trRgythF5culCGF%>OD-qps*9aWW(eY^tt%5nNmP z8&^|X=Ep(Ik>{|ub)b)`fAZIzV%;8$+c3P&M5V`(z*MSl^H{Ki_>lt9P@T9-I_)(?@ZGAhj5en}pk3w83Ai)7 zmd=8^FBkD&qem(5sh4XavlV02x$K zT+Ejv_6$|_6DH@CKy|3|4s|xqKX=kRL>Z|)KAcfvvRjeCe{q^HF&Ufd%#jkuMuLa)AGSmqe>i<%;A~Qx7M?huMIz%GSALFg7fgF zRUajm-*yKdF}BF^rS6+CvM@F;rPYyOG-1u8gQl~1PpNlVAinVAd?0v=OZL}ytVcGp zi=4AE>pu}Zi<1&)TUmAjs2v%tJ1X*JV+NFRK3yxEGYXW$=fkoV^2!~-JIKa6%WWq^5^cI%T;NVZb{c^ns0fA!0#K z`M!j1)l200lPOZ3%qz||egeZuCCAssK(^e5?<$oJU^}aV6S+L!4&+mPt`R=kDL>F_ zt49*fmVZ&QuX5ZCb`+O#1f71P3MjP^Z^f(JCs1R?dcda9?RXlHxB5x2q@D5sK8p`M zh+d-mHXDb*jL9(d;1-#ukF2UFYhTewog|xW^qb{~duzZy#GLN&GaTZ+3&(-xc>4u> z87brZ+}PTqk?0f+k;PBp&nU5n z;4ymT^2Xb)A&BuXL9|#bK@2dx9mCRs+r#aS&l5I)s$*{qs;6fif{-r=hn z7q#oIl_0E@%T3ZT@7Hyrc{XokQA(eIv{KdzV@vkwmGJp7S?n`aR+99y%MnpoH-|{- z>L;Ob$QL!L9b{Z&7Ahkw9&yDx&E{oi+1aCC$paSSW~ISE>j5~Ou~+8!&D!S}gISFW zVO4EJzCieB{{)__i+LoV>bw{C3?2+|wfrjH&#TGy2d%L?zQk2R7*Y)y%<#mLBRA&t zK&YBeZZnHHD9`x1r*!fwHZ_1qht z`QTa0n;yhM*({OmWe?6T?j#ItJ~re z+RYdVq<|XCRX)DV3imNN>aNZ`%FA=EB^lKEZ$^lDGM%oP<;V8Icf>~x0{Yb z8kL?Rw0iZ0n6bRPmniQxAf0(}aVXE(_fcaGKTHTHO5ZBM?MwT5vLG zcDv*3MyuT7=2himA6oeJ5RkndMLPC*gdE!I%SfOVwWD$+Yq>B0l@^4xQQ%Gzn`sV< z%g#&H`EnhfPI632ptVx-*Eq_vgt+fyB zw$sw3*EXAD^X?ggJGf_0%u0RpSP}ceMkGup(mC!%wsfA@n|F86_>sxR-S` zmwvFtL~LmlyDeltd*Hy<=uEgv^d|6Ie;P}SFOl^Lwelohs?+4g8>6@^I2)&)VM*#COy_|Od zVSjEB;(Udx7j_W3NQ+t(9g?_DC;w&w%;fmJf zF(}5|F({q#P(`{TedY-$TiMp9f$PLi-c36kqe8phir`iHGylZ5R~O+NRzHTMj(62y z?!y6;X62IU3oGaz8nJw{(_GPxi&$MBVN9cPGfC~u^3czjH7~+|HMFRht@lC@)EtE@ z%CP4VOuWQ1N99P96}!sW?wEKc2Eb># zh$?LY_I8{)Ld0m>%OSJ*J~MF2hXSEM&n*~CX^WmkO`+0Y*Rl?-$8&?_X?DkLwm>@S zjwG3?3(p~t?tdO;jq%5!raKSBU6j!LJD}g}Kp6G4{w#-v%YgCFC@=)I82=6d%Y=&;Jr5Y>wRBL9E>FvH~;>s!Dcn{)Q!cl9*I0F&y=(@xOEO+%q5o+994ZI4A5j59H=dNSICj&VguRU?hO^6nX(=x(h`4 zWFsq=g=>OExo;-IU6y7#6F-g(FjqGR{%tmvW94c@KbWxUHkAOo_6RIi&xyV~FZ&a~ zzg?%mfYNIl!-5>wNa!t&i&$yph*jl{dMt5RB`zEtv%HQ;Cv z$m;D#0r9UGK{ICp(WT^@DY5W)34WnBt{Tbg>|V5L*b9h{wymBDyB(*9XEv-mAHcp& zxQnvvCiUvG*08#29PQOU)#rQUS~b-rnY$P0i`u#t01DVd|dWi(xZS(H(4q^5DP<h1`Dg^&@M=Sc_7d%`4o`JafsWpRdJ#Tiz zR2(Xfp!b`B4Cd9o=*GCTBbHWmPT)v-a_47)EWv`X5_x z>*JL}mY{TNkR222BfNyQOhc(LjW?mxxW|WsX7(?pavPW6!lRQOXu>*FE{xB(bfddi zy$k*5pO2-3?$b|7z4u~atH-o(v~(t7Hu~xEX*)IFrz4)?Qx;Z?CUKEqsUpWNt=vb) z@Z9_i3R08fp|2+7kbn0j@UI#WpF~-H2i>wEDNW1XYZJ@`|AV~R-Kq>6t%>!pzp|zy z{m{f9T*t_I8yC^~pBAN-Iv@(ZKaXS{x*I*}bMJ_ST)d+Id^MPyp--=YLl_+@5gg~o zDi6Y#kihxZ1IY8D9>S1gkkp0#Q}(U$(sTM~HI%4xLO zag$P+{uZhEt`)9pRR2f#S~M1R^;1iOLFU?pj#zJ5bUAIq9*R*XjKmGisySfB9Mg;* zOL^VQ2blRUhR`-;3NV_{s3FfQH&bug!w4KDvnl-;VYBPt(>#K3YZ-osj<#mHOHMcm# zr1NMm^Jd}pR5pJ=sxBk|tTH(hXykW~z|iB8Vr-5wKi1kDMn72ASN=sR?bj>xsO<0H zf#kdDh0FX=Wky&mgU0$M&XRhR!;Q|pt<8Fxx?5OA^Px^EsRRB z8icO-!1SfLqdh68m?{Qkm5s1e{M?o@C*HCpE1G*#yBq(d}8g z`EITBC0v){VHm5w1*`{$?Hec zwOsh+aJf%*A1Ck6s=k*IxG|cZBPO4OY`u*eKwaX72sbi;cUwj7!?pVOxr1U}osGQZ zv$o~fI%A`a!>!ryTD5@ek5TIuTnyXqe)4QuEkx(%io={#9`m z`wL8}K9wEddb>FxAowe{9UHCX%a?l5Kn$q;ESV0G?QRfFbv#a3jO^xCDZ2n zmc|6uS4r^;&mx9iE@C~D`#xcxP1ac=SN>m^#aihfmDW$qrh+3u*lkDyj(za~61#|&}i&HqC&#_i*}o&8YF2v*ax9_h2G1XgD&ev%V%Er=YkW&O@`aEi^ zVI|SBbz%uz8mp^ePUBlD8PT-brSg2?pB1pP>aZ^yM=t@=sFOkupnk6_|4uFxOF2j* zQz)0VZvy}2o?y_2&|UNKI!`)BF1kxb{{G{jsD;S~_B6L-e~xS1C)MazYJ0%Qw|9~Z z{Qtu{)X)vYxH@tQ3e;=NhX_|-<3_!#l~jAnZWzOOMYX!CI+jw?*P{xpW0t8PcoIjA zp>D-%8{7bw)ogD7<*o|pY;#z?+y?Ja;^{*kgIx1kPHD_8F3+`|6IVI^NAy{@+u_&h z><{4}FOu;o;i0$KCb3d?r@B*UFx4B{z`D_V0GiR(-HwCNd&h|#we34-=(Fx)5HqAG zdQiRVivZao;L+$JhdGqS8B-2XMjZ9^6lPYf#xTfgafuErI**H;+0%9iuQ_ia1DV7B=Y>#P zH__dimn-?ueqUYep_QG5ZS;g#oJ6Tr4I0)D+2~{CbEVXGH(N@1xd4cjP5Uv9J|$`c z^8A-EH&t0j5^YwyMf_W!IXPBaw}q&;#urZGIrKR;wz|FOL#q)>6RC-=g6=dg?(uZ^ z$eB|ud=|)zr1s)Yuj`?8-Kz!xU=492r7b$%ZX0Ue5NL-{nRW zwZ@nzYKqDQ?W(_fBzT%P^Z?JxuA=Y`-6n%4{c(W(cXP?BE3bn^^ID6k%=W&tH)dWT z@u-FRVSKZt%#0~LGtWVscN&mZl~R$^Zy1i4dYz}eC zFdgc6w8b6h;Bpc;_46cvDvJAFnC4uw09>i^U0p4|ytwHR3wVDTR2PK$g~u!T_whZn zY<THiv0u@+al9Xx%>>R-Io`Gk1MtZ+ z{KdQrlYA#k79y?2az;S!URk`dT`BSQlkb9I&FL$Lp@(f`V!UEJdTC|Y*#~EK}&!!J(&ZH?9`PWTz_{KNG+EvJQ(YmrE_O{er#a8 zKOk~+SxRD1zKq=hNY4kzZN9tBv!3!l8tL}(qd_qLj2q>+Dr9x5ZIdV)`?+NMy%ija zYn#7L_=CYL27`*9fnAJyHNs#@Z-uZ%Gn-(0l5waZ;>$jP@?IG`q1h$yes*|duJy9~&_-y?zal`S1cwg}XvT)&sbzdg&ND0ODR z5U6yYPK~8r3u0n@NIEjSuZYgn`1d=h-YHw~%*OO4ocAp`pZdaH5tIeyheEuyDVC`t z+ZC-`=V4G=a6f>W!DG<3X$*oXbIM;vWX(pxjT&4Hlb9jlQto~ah;ey3GFXS^iR8W` za525m%NWW*rX+)=B@%(TCVLjGX-fk^AINE4&Yk6zXd4?PiOGK{Y${Dh^RKz2B)!D; zHojC0?0|q~_&Y>XlBPpk`QwfZns-6QNXs%O+kaV`ryz(j^iCQr=a%uKrh6BX%xme0 zjNtbRXn#AIKb4Z%gyHwyk=4plSVFmbSHZR5j4yd?24Q2x-^Jg}e*ISRQn#9r*YC~~ zC%HeHHrlrN;#qIU6C>(tp9sXuky*_CPf^6s8Z~1+cBU(GS>?+N^d(dxft6}K(6sVqAK`7b?1hL{>Psdl4|el_Tc3ht z6+PPx3FZW5q8&Sqp~O;GaZYReoAor`{>B@K4fjB3#>_yudXa%Rs#3W!QK^gznL=4C z6k+u9PsCh)CByh@+v4*z$?<1CviUYIJ1W~N7DLA<{u`znq{p6+Es`=WBa_>Vruuhqw z!S+++(Z<|x2IE>EF-T~2UP<(UF%e9dPFXr*=+ z>>=JzvXW~=BFKk~EnNrqNK)=E-$K#?etRHPfG_T1d3Pp*mYAW_Xv+>m7#o5dy237J z-rX`zt1i9Hv-w{p>W$_S(boN(kWwDr_FxL`H+GG_whsN6HPED0Ck}ttifl$2^FBLz z99d=FUEekn!Hm@Ys7hHIMHuMLCE?U6|-g~mdXQ_U?0u>sN3Sfks^3ac@ zM?g7yLAWq(b)p9~TWKr!cgmlI=;wM~g3QSfJ&f51TgDJyJa~?rG**sX72Ez3HGuZ@ zPKc{t@Sv|SHVoijZPO4mtCon`4%d!{M3CA-_B?3%0cw8vW}jf9n0^c!RmS2@I?M=39XXUcT5_dA=uxwjGkh zv8rC$NX>nVCBNsg`9>{M?G|=$IG!DJ+%{Aa!uM6nyyGjOfz{lMD#i(@kZlhdHB!^XM>

    4joE>q8RVARZKx!*x@N=Ucp=ylG1zv67G&)M-f%iJ_UXd-^ zT94^dp)~t#0D4`UtuJ_5-q*puqbLbME4M$5nlG=J#;o~u8;H+@cu?K3=seJ5xrqyD zroro?x^5-AdEb2!N zi>e9@fEVS>3e;(Nlqbxd-DQ5srycyLX)=+f9qMO*x6m~LQQNW#L9GsNu(?rfC@--Z z!$GFq+MyTAcNj*s`n6gP!fl-ysWyy8jndTb<99Ezp_;s8E4=RyM@bW=q6~BAXW~Hdc`srlJe8bN?kg-<(>n|C zgr5>O=W2UG??ysOy^33L7P1S=NEt#%#f*+#^=gdN3AN$m#VA0w;4@U1lGpx zm<6Pnbp@1SWbmivt-lO3GiIPjrG%Wz*PBKz2R^%<#jWD2+>rQFeqkx|nIu52Eev8o zvji=T;OH<)XSrX-82C~I8`T{}Sf!33ycPVPsOF;V5>cIJtmNP3C*);ll61l96;J+E z#ykh!s35n8sDZ0l=DFDhAFy)R2?O)Txj_Cj$5LY!FAAVuay-bah(eNS?q7%p!HJ>t ze7gI}C{QkM5(%0P5vWORFkEarNA5h$7ZZn8a<4-xT3|y|W*Fb)d4DRhst2M$WA5}4 zlNRhEygu<0UH)NB+EK+DrKs+*o8NpeI35mGt&k46q+I7}d^k=lXip}JD(cKdxk}xP zDV05LAkf#h3sTFMPO&>`9S(tkJyp=Bp1X2$p6km+Hm1uE(cXg1L6iqQA*W1OCaRg9vHrQ>mMbj% zc||7RV*#jA4>(1sPO+mPC4IG6YVG^})Z5`pe9iC*L?7CPhT|C`j+zDd(1#Gw zs?EcZl*+^DrL+}?sWDxvuSCAxO!%@bDjv=AG3^AN=l&}ese36WZO4X)I37L89BQX~ z=*B9t1$~$|uZTcu9$}=_Xy&h%vtXU z{MnBy>O+e$%CLNf&b9qA|JCpq>$0R_t^5qstByVjm-=F7v0(N~Byh#<83l&Dm%}Iz zpF@G#jb<>VE&hU^DfSN%=jS{zt(Bv~3jQ6iAP!m=WbIJ%TFp}7GC2#T7p?`fO16a{ zHu5I%Y-O&BD$IA2P`LHq>sZDETX6@qZJk6Ldb%})=UgM$@0m84WMTfPu@e%#7H{Lv zUKuM$HLfA1;d&c8>V@(_)arKE&E_cfER~!8WKe4re?rbzzX`E6Ee)6`U}v=_c)@5m znSRR)_MbN-WljuX+Ib7#(B;ytp{PsE>_(I*eQ#hB{c0yd&MI__=1Qj;P&CUG0LJVw zY$w#)bz*?K;>vECs;QwI7XK_Z5Q!{xmZf9pq_on@_qNfDwuhC9;EGmo}g)`GNu3q&6Ts&_Tn|YT^(Aj+iJXP^*%Zr zzbs3ZZKKXfz*R4x=P{RDX zL@d5<=n!8f*GhmS*@x^kPj*5JYtM!i1hx73gLXc)+3w6J+enE_e8-7s(b*xmN^gjK z%}t&*6-O1WwbqY}_ser#)^I$ar4#($o!<kqj_TCx^s7DVlb@|x z@Iam=O=7)uiC{f#-)<iW$M=4E4e%-Q>RKm2YoP3Opemcp!c(+Icvdi)fQkCsJe{bPH)pni*&4BikA zjna4{;4yOd#b0Kjqp?Wq+(ckkydaOo{o*=8e!3Y>P>w9e)%uSCWR%)kwlC0sHf4~q zGz1`9jfV*Y+T3Tl;C#+-o5NjRxte~b37b*pWh89%Ij}X)eiQKe-<4uD+76Arb_nA& zpTV7=iKs>(&3Ej~$6k+J@clxWc2-dOdGi$-t)Y*x~y$^cBMRk$Fe5NK`lu`LtBh^dWio9)Oh^Ibuf2`dR z#lL|&7A|8`jtkyoh1MVpGW9|S9|*SSsG{6j=8wp~AA>UORcAkjYa>O(^Io9rUN(HK zzL`q!mCk94(e`VFB!=c5g?#1vH3-cocf`ZpvU=J106lmW$6kH8BJGehYGx-FoT_wa zW-zpze*i=O+}Xr&a^Ax*s6H4xY2Jl>7`p7VC-hUbNzlAGn?QeFS>0mP&-gemTkV}T z$9q4ji5mY1mg=`SlF2N3o%kz?GoCU>9>r^xhbf+Q%b1%q&(DI*gTpaUp35ltLuB2) zGB;zsr097fr*GT_AHAnenYpZ3d~v}KCj&{Tz5U?csx-wz&Gsl3RlS0J zX+vuB2(zPUEH7$p6l%3!iag_N%q~#3wPvI>t}AXfo<)ek_N?PM`*IJI*4o{|ce*kP z^I9ESOMh*7*41x6A#b$DrMX?4dLFo0p7G57XWdS(`Ld9m73dlF1$rKD*pA!6HQYG) zdnt6&;{dAe-s6Ccw=WwLZH`a8es}bcn{UH)Mi>GPw8c5f4Y?85H@xq}_#e{%iPouO zB&u(8UV%dUXJeeT;spj+i%+j(RQ3oIHT4|u(U;3I9_?^hz-s>2l-jI!uTS8$TU$Vp z)l5Eo;%`pk>8V*pf|7qSDPc@*`wwRqA7iX>_bQV>nM+}fx+M)ZN;EHi9LqYQlUAd| zZ1`qL;@EN-2vYSNqdoz>uZq}{RmB7RUt3`d%N z?Qg76Ub%}#&D-I2ZTOV{`Zvp8YAKm>2g0%aL2mYyCa1QdZ{FIZr*=JeER65>Bmfc%pi5jKp;;7aX%K~yNPZY7r7Ztq0D{+qlteJ(+7HGPOWR)P3U z2rOxmgfluVhNFI`2k0Rs@N-QgQ{$8Fi-(-=K_7DoQtl3LNc;YR3MXLCd8kj?_d*s^$1 zbqS%q>oa)Iajtw|l`*|@&Y|MFp(xF# z^745M`5z4zt!TM8J2y2gkgYz8!6>EX+(?cuRuZ2d%7Y9m=@7Ejl~K!W{8z_)j&=V^ zyaegX9|E)BvYbDyM=PmaaSOswW?ca+w(3-pLg;@lmi|t$;_n?Nxvr=srlW>3dWm>_ z{dmmRYs?Lxr%6MpHKi|uEG6VKIii-@E)X9)NuYoF1#VHRM|ttroi!znHGghG$i*vr zXiLu`>(pa{9}2B{G^T@Cwm1dYel zmHOA>gCED;8eu;F^CXFUB;!WTdXFAP;&Cr}?lks8n^qOYl~V>17(Gr_y=d)E6Mf~R z)IzOs5$sq0636N{eY{cD`cK?zQ^<(;qg-38iQOduUPNq$%{f)bD=>BGm>si#lf#o& zvbC#i4njL*hQizk)P7A0N&>*|P#s zC!Ywn$J6nmb!7@~N1MtPE~@KtW_XKK1G3h_d(yFB0g{waG8=C-El8xat%KmD|CMJi zI*pjZJ=tbiDyYrMM@UWQUe2t^i2-r?j+;1w%QKUHQ2|0+F^C#zUgt7L0*>}zVblzw zYE8fA3*FDK{V>TtoN{TNlg~Z$wm}Rsy2`h8N_W}IR{ymq7W$ClyXk4*goE{yy9kpW z?BRu8`zx)2@%rdR@UbNek^|ob*!bk&B4RD~l7Lcc&}$E4R~4f*GCv~n-M-DFd$z1V zv4+eP;e|3@td(jA18c?8g)Hdpha_!P1G2@;*+xZ=z>$K|pp4Bx+LcE?V@lu%+NVP) zA6mn&FjL!~+5v-EKPZpp{)}x0;{ySizOauwXFI(S%lDSRLaW0Zysc#!3e;AwCHt)> zJ#ZZV6d}x_7Q4dW+eomc?RpAJbtXl|FraO=?L7<#TJY@$^fK(E>c5F)+2!S&m0 zm=*Nt6J>Rz8T5#!?FXIlq81$r5S7@91iC=R(t`f|DLh}RN}-$E8RRH)Wz~@JIpeM` z^)I}wU%3h7jWkzR#;+Wc~CwlvGGP+3<?|S80a30chWxB5o(RPh){L!9D=SE z+~b3|S3|>W_8KJ1^sR!?Q8|)&8!_omt&W zsA^i*QPqe{!yKihH{@#7HOpw%Zy{%uJQ7u9<~jmlbojCyL!4^!6k2WL8n{e52(GlK z2i_1mlDS>kpKA-$-WL(1q&He@`>9ty;E4ixPxJKth|l*})RzaL%89JltG+V=Vfg+h zLd`&VO`(KD;SK%rolqM^ZV&ZW=`lb8Jo7!CRFBW|LSgL?XARG;8|imhiUxXxjJ*rq z^k=O4Cdt5@1Btjy8P!f)lQ=aT`bvW-eEPVBO^{pLpLY|xCz3bT(dS!X>D>;Eje$v0 zX>tUS!A8gr516gnj8f*ijQ3iFx7uLi{3nW0t|8)^(cIiQ4!dnY*9|X3}2?l^9z~gV0Rz48c#)a%b)kjq1W^n+Sp%ctWS`I_<9XLT6L#} zL-a?NrD8m|>&8&M0HJ!A(2v8>eHp5&-&UeQmZQR;Q5i_grl!B0H}nf(W~Jv0WoX}d zu(8(7K{KoW@!g!Aym1Zvr}vA^t73!E_2X0Yx%e3|WELaQ7t4m0acS&q$8 zgO|d-<|BZrKb`~|Wr#^)o6RFB6KaVwm~6B>9*ExC`lGRa>3kTscd{3inT_oL9L=Y% zMb*zt;-O4T1Zub(6pLR@AdY%S46RaTfykZ~Lv1qhAKFPz&647ehOE1H^hk(C=>3Q> zoLsn+(x9d1=BfO5Hl8as$~O1vpp4IIoA|7@Ii}oMWoJ9&W{g%owdF2w!AKM|)dy53 zy>7)roZLD^&}EH`w(+PuZy*YNy(k977Qx8}HQzLVT=Lnz#b3N*3GCakh*Zi{I^Wg&HJlb<`Uku(amv!j1Z~F6`bi zRl%xjMUbh!YVE{YiXJFu-dKm3`q(}wXB8{9iQ}fjFxL8f82qa3dl57xHRG{l$`}A_ z+&D=p8Y2>Mw0^Y~Kv0K0#8jnwaS?jxw(!iole5;d`oz)Nv4ZQ6qRaognmZF_a`w4w zysA(AYmwdINC<~Pg^6fwKGH#qo=H9-*DEgYhuQXF;Kt0go**fQ7m*)|N3(^(=B=dwJ%*L(hWJCBKL|I*LFx0AF6pvVw+luzbWz$My_31_&r<$N3s1FWpB#RHt zh_3id>Fm1#bB1s^b6m)|iP&t&N(rnglUim$b}(>M`;J}K!B4wk)T%kw8KFbTE2~Iv z@=Dp!Z3T}XXT&9`6@ZL-wvG5V+(m%1?m9YX&5j4qW{c)Js`VTI2z9?1d-&H6*&tOp zIEpkeHp|ATYKL?YIyw`~tO4;b(`Lz=4E@k;`t@w>YS6lOmHtJtGE%X2^QfCAeJX?Y zyk{|g-qKF=Zn`4g>UaVQ?N?j;XZ0i#9N(MbXrB;}r1O1!)#ywVw4P~@(@^!rG9LJ4WVOgN0jb1wew$C!= z7|s{i1K}n9ZiqZzK+pzNie>zbjCbo{7X$##&fG6pGfztb?n+z1(9Id&pP5BPg9~oZ zXqOI4eakQ3t{5}^L^6>uhg?u*oZ+70XI2SS$u^{m*164gj@`0K);{gdV}%jE3V3Mm zWqrSXFGA4XjJXsCBOnzN>zk{Kf>oU{NbPH14&y=HM9pLA-Y9kcyKeu< zqarF8w!u@9YfWe(Y>Fal5LjlO#$qDl>L zrP{{RYR5C7fL=@Pk`2GoXsTtqfMx2jV>4}zt#x_rn6o%ptPKsuhi1pBD5|_EC_Ybq z?*^CM4l+pX@d_2SxM(pZi%dST=o0QqdxzX?b_&HL?bzs@c93#w8sCbDQ`OMTtI&UA z=Kzj72s)Gtd+DhDbvFj3KKHeA4=R5XtN-minep{XETd<6b%tt>rQ8|)%BqDCU|@s}nqcRx*=@pSq_4-DO44D%WCU*sV(v!44((7?;h66~ z7${-2yda6HEUjP0=BqCRnP$~-c*ZaTDFtfn--}oa7EZ3|>ML+)v~b;qQ!BN_JY|u^ zcM12d2olzZ5oJB8G$ligOl72!;~UptbKd9xj(`0V2jA5(Sgh`reJS)7qp(sv(5acw zWD;iQj!EPky)jB_DxdVIyVvihzv@@c8kKUx-(0$j7vPinks4}LLuXFT?KqW_NjJcT z+O$88H_9%9z4<vWqhM96IHf^5TM41CS+b^PgR@^KSB&(%?U{`gNc?M}AZ<(@Gd z#4F1TfT_(Zk6X90^o?A63`uXdoeI(e%fpJb1j zC1d97MeXug@DwK2?qX3H2)NP9hWOgYc8EyvAu%83h8iH zp1R^l{nTPyZheqdY@ z=fNxf&MpYw4%iNx*|Eqr&pT1;jIsa4a`x~K*z5Cx#Hc2hFv=|Wiz}g(-G9A}?VYA^ zo2v!{aJRiU$3zGh*Cd|WqKGI+);5v!t$)>(-PjPv(`JbcPBP1bs1zSX267glv&S@L0%Og-rHzrbAId2;|K``?h-9g{j7^8CJDh}&J} z05retxHUSNbTxC&mU!o2_VK4uc&G#|zsmt+)C7P;A(*(BCj$jqA8Pt>)-xU#X)Yny zt`6@snf?i*uut`w2{&cbdMlt-Q#(;3%nLS-_0KiPB<=V+tg&kLWI`fa zu>cNZatq#v`EXnKzTYNzj5x;v=Z|aaak!=|Os&_x`A~6v56P6Eh$wpQ2K&PH?Imy8 z5e*R8!!E&|x^WV%=RLx2C56ashq?%$SQFp4bG);Ln0|7iGwrdMjp)+;^m?qm*+u7T z-O3WA4=tUMp*O;GwLwGfv8_5jAV>F_x)$>J>&5gQQ@rU9l)EBh`aoE!+4}-p<5JOB z#Qxznlo{i6f>&)NLycEo=F`TXhFrV85~QikcH>{gHlBEzlPp9j+4I9*{ajcyPITkG zu*-KiY9+_;LgMz`K&YL3cS8Mwho;QGi>_hnmAz3yv0afz%I0CCq+fCX(vlLwYLww{>HyK_>lH}OgJ04!E z(^4SMrAE+`df%iCe~DDha!s{4q7I*8{MkqbDJ{FeQ4ep22aS7fry1&55MStK9!ckw z&Be3X58?ndB2oIkcEK36^}aL&+N+b#+KTRJHWu7eB#3IKX=tWrdv=ocmoJKFg;xp9 zlh+dMR_#)eIH{CB9LDF1V_Tq6%;T+{JAmJ#Y<8@CT_D-+7}p1^8Ka+LfnHkH;u%Nf z`A%^yj3A}>eersWy7Z_|-U{YVwKeUI9y62S((&6V?q6PElJ&hQrPFxS5w|Jrk4D1l z`B?%xdLjYTde)qQJ}xVFAjm67s?WK-3$SSJoLG)8)U@AojljDP2e@MT#yAbe#NlnhxE$f~so zo}BABQ#|Dx4+gbK6$Zm)@!lA??2easM0DjPPAfl&*t}VUU+=n`OG=*s66P1pG2MLo zCytZtX9;3U=S-w+d=L-lQ%Z_8>1BwIby5C?Q=3ysF2fB1@x5LtAFWX$>@>#@9)_V^ z?ssUa9AA+@Pe7%kaBkETozz}^;bx_~(WCY+g)1#*|IK*#WKps8bz3CzuZ;9)n;YR` zYhM_p%o^X9m|KH;#WRl=i6Q3Sy~1h#YJP~5ORoYWeS;#3mtz@*BjSu`|E(TLVw6iq zZ|%rtC$!nN1s@uvYYs)fq{C-8&K$&}>c9DpKyu-nE3NuE6keCYz_;qXd>7n9R~_eV zz>j#w`)3A=#*^Y$pgk!_ni)sruUU<&|4@Il_f8VC_gXTq(AQ1b*Y}$ji=M%U} z%{eJBDO-gwY0bM4W_7xGm>!Qd@K9`(7U8;aJ0$xLj+L_?n;}iPeV!h5?mK{HtnA*A zvF)>CfYGusAyf3O7kT27E1|Y^ERxjS7t(*F?vWqp5OqfT3c z(~TuX0vOqQw#Wz!aDkV*MOs+>;$mrA9S1AM<*FN@&zl>~tkF>#d&s}faQ%q|C{rRF z+^J*hp@0%p6PwJX%MRNe&c8NucrTui>OnQQn8dhyKzE|Dfb83TH;k#{u@i<1M!{B_ zl*X7w^N5<>*%jOMp(U8;Uh|ubR-TlQ+z8l-r?lM{37+M(*@Ne+*#IT)Hh8ElOq`<> zm)Qr^3II z*T_eB((09R42Ijvp^!CivSeDGhs4hs7~@61>v*mTMw#ed-1MX}DKR%QzE%rlOoW`0 zDFO4?Dg0sG_VeSo%O5-Kk6cL7zb)Fq9!9@X5O?GfnQARLlgeCE1c!#L7jldw<}n?% zzwn;5B9cW3jyo&h9k!NGX?}Nc-gcR+H7>5MPsj4H+~zbY%V_=F31Dj$zXeM4Pu*~s zy89`GSGntqYYgARNH+^bNyg=0DFykuY^86V>70n5fQreCt+EiGS)OO4RJH#ND9q|! zNsJARmy)#WSsG`v)TC9vrHa1}pWu>Y%$PU_`n_ENs;<6V#EwOo{21!dkng=49)Mcw z+z3hPm?5IU_mr(rH~R@rnCz6ZcSC~Va{4#Nde6Mbv+8cecZx@~NJic2g*MinbNe{E z@DczpBHY(PU%OHm8q8jaXO%`l{%G%ZLgLfw1A1G3eT#v!&pD*1r5+PQwQ5=FhZ!y3 zlv+_&;iDD$1j>yThj6sPavAs!?no`PKFNY#E7M^Lf_3?!AYw|r6*h-53$%aVl>-guzn@n&KFo0L#2@QAF*UN8H%v1Ta*VC4yyZ!w50%+gFa&o~ zJ$_-9(L!EAn~po8e$w@0I4N&1xoG4(i!5_~6yeiy>!_)j1w)t==s%Z}IeZT=^hJU7 zu-BXsrMa9TlDgAiR8u>ZMWDG_d$mckt2>E;{19VeFhp0;~7pxs}y6`%%MucV{nr%H@)P@2`i)td65M z(eD(4CzT2E(Te$F5rI|K2PQzNIZN=Tdx&d3%O^hSDt8KP+3%dxhhGx=UR8{sJ7;}A z+AIylH=C;*VY`lwM1s#VN(?=l-isu~d4_3r3`C$#|Gtoa#^8pfui63-EH$ zF(M2?<93H**zhLTYzXBWeMil^pu>m@ht4cp(!J9UhOu4Y+z zoY8*X6qH@u6+~NPi17T+37lK0-3Y1H>KCE5Dm+-pak({;X%E!-jJ@*#^R0u6;i-O< zS3CNn4J3_uGHM-^1#bt!x#cYhW%wqLYs|bs5mIs%fyN4pquCs9}M^UXxb?+Ne3;rv4W<^wakx*?1i=3{M$Fbl7Xr6GRy1I0edef;eEVUs{lKO-C2utG=9??8=pqiFX{xd?+%0$z@%M<)5&2s}W zb)U@A>f<~p2HJ^N*sOV#kx0xab=3Y-sVf_8Y5(mJkND;$mP$dHQqu~(=P~6kg$`@Y zOZ3*}=K?iazpLWvPZ_y5cJn5_AFGYYith%|;MXT#$RBmsi{7oPqM15iE8ewkN29Cx zdNmOO5>3>Dw5CsKY*fqsci85rK7ygEqHYH&dd_TS5Vq?vHD0a??#%be^5*>9;HB{2`yb&Bc2%bpKuY)+jyt-vF z{iXJJ(Iymt?f2GeU~7Ah-PYtIKvBz8^8|!B_hFy)X8dXF$oD!H1_@Cn-y7bZh3e)0 z0V-;ROHz!F-o+$kQccQh!eBh6&!3KV#`~L8R;x-Pg4CWfuvck0O}sjD3m1<(xyVxW z_xvezZ~Hu(>*Om5{hDbQS5-MiZ^O#C-JCR*%vM6WE`VWO2V<0{U%;VRxiW%`7Zbs> zwd(Bwh7OSHlWt4mvEo8Ipr^R5Ca3krZ;~O;al98=tZzX4t$=m%{xZu3cpXX7Iq6hU z!Z!FE(9!EXWvDUQA5R;_t|r(Vzwfx9=xF(5LiKBlO4{!SDcJZkuOO#RrxgBw#=ELlO*~>&boNKIPb(RpGDiwSm-mtwk(0yh zthyRxhjMA(ZLm}plemiazu;THE0Yh___ok%KRRKy@#h#iSu@unP|5GdS!3q-)jWyp zkt*}CW>aLpuN4R5;;fQ%tj>pFYV5x_$tW-X>|y+BnZ%!3wLlFu%6Ag1?kT77L;uak z8JTNBAVv=U=1=Q$W)UK;Jq~72$lDkcNO_4NEOTS5b~!7@>bDlFF)e7Pc%o&aa5#K_ zAa%HxyIcjH%Jsskkqlb&fA5e&MiY5v(@sqwIC@G5p|{ScsHQKx8;cG_N|5$Sr+k~B zKQntjXS*LDI>tZud2ZSHkKl4+OCQvk6He&$Pemr%9fjvdpws4s#MPL#Jb-pl?kh`-g=^fbbWe$>EE!Ge)C`+gc{|)p@7l%awJ1r9*cl-;tpmI zN*5z6TDEeesx@(mz~FU!GM?))0R-vORx;E~s|RYV6XgWtRgPep@#C9dwRsjYQE478 z0qD~aWSHB}hSNX84|?;{feimGBYln6B`IQBZcn&b;qipse3aQ8MV?jwAZDhq^eCIp zQ%p?9el9M*GhU+QszQY@T&uv+s2c2n3KRd6y5fFdBtw0NuSdb^RluM2F$&IGJd zi%s@Isk|3(u6n)q8IA|%LpA-9t3m6L=t6rU833yRPN=D8K7s?xj;9E%_VKD8{TpM& zy=AijF>7HiZauQ+CB8~}US{>mY{L+1+%@p4$H$9ioz61Sta$>>%uXM8t+KkbeqPVl2bX#zX1u$jnoMB-J8}U^}x)byING#kMJSzFCe0 z#VfAkXRTcg3{c&UivPRip(YtlOX5)=TPal6&eX(*hVAiAh8B25AuGEMHyZn6}s;a*SNzc|c+xRE*>fk_~7W)q}ilkw% zULa#8B23<{t10i0Z57`w`IY4%?Da|$aFr3$eLKgC2W>%k$No6Qs`PRm>`%Ux)IRYc z)W$?=dC;zGT?g>eEs4;M{KM&9a}c$omVg55iwVB;6%i<}WX=g>)x=qw;n+748Tuw! zBCgfyO26s!pGbP%=_tqB+!>`stzSXUcUjPHgzycJ<9Y~1R;%5OLDsJjVr~}AfNa_r zJi*>@xK+t1i)f8_nGM%B=Cb4YhAl||ef1h08o!sAsn48+aIMdZV?y7a%(U*`!pDlo zTLV#T&Pn30563ipVaA)9e6q==nX7~ex4u^-vddBlkFq~wJJ2iMT%6o~@OZa;H&U%> zYk|kKsfaME4L-p@bpRG<1%KmDBR`YVJmxbA==ko!8;_bZ=hz&EDTTdV0B+E-sPNGK z<*Cat_oYU6>PYI1)<4rG+R@iY3@hN#7Q180WU+Z)VX<&&+h86!BMlTDI2k6!NINbv z=2efT=gNRol$ul_47QUW^1Swdt?V3^4hrIa=EvJ=wt6I;5tSM6Skarp8QJJC{#UYZ zo<<6K;c{7hu>V0=)DDiuNxKXN{^lV?U1Nt4O=uuAGrJ^^G zw>(Cv!IE@!(A?B9syAgbI14`=)zG9d5u4NB| zoqA1%n1ShY=x^AA$QWC;pW}FS4vLkz!-rOD*&BMrvk`^MaOrf&&bEVcr>J%?F-eP% zx@fq2is$`2S3~bznlfR|UAzGL65To01N(665&P~iY`&zLoZOccbCf#=#M$j$O8>rV zyI>hU73@9PO+a^-grT`P5~x{)Vmao|AVHFmsT292K2moe&i@^mV0B3aIZBoOOzi$_ zpJb=ZIc=oPv6K6HWyvaRvR>DrH7on#1FdztP?)*bqDNn|(V63`9?W+(iNHON~bofb=Q(Kxl)(>5-c-V@r*)SK;wvkD zjXCa6s?D}}!{%~@6^t#if)shaf@_7A^SwWFHq9}{oVpLN7<2uhwpLaQp!JYt%7#-W z8Snhqoso{G;tsEzM8d4m4lXAr>yXS`OF+#Wjngo4LSr#<_lyM87*`lJYEZ&vGUGJv zwJIGE+v`0S@)`4YL%u&27-=C-H$Z+l1zb7)1L9VLj9LAHw{VPl|2jg|Ys1#tc}mtv zRc-HjR5IU87E?<`;7GOJw6(m#8@Gn;Te3bxOX`Rt)jDOcT3u3zbhZ{vh{q>6>YB7K zYHi1wLr)33_Mw0)jHk6)fZ99xteGkDzG3vtdM05Vn2)hWpO#SS6OPiO3{aA}NiE=u zkaOKJL7g}V_bXX5whp*|in^!G%Y>QA@VPFuZ8}SxJUj<=bnk&U!JJ=-{4!lyPqgtD z-FZ1Sn%#{@RN>^=j4hM`r4j9qB6_nE(ezYZ8;B8~bK`U^cpiaO*9}K~Gxd#bXY2NyHr@+(l#g>{&>9oqD{cjuJ25BjV$81A*9x^Fn%c_yC(-8R-@wWIxCuR!wEEV7g*|r zo-MdWn~0C=Ju@w zLmxAEJM>R}`Lj8~EU;{T&mWHRHTf{oQS1y)&To?>mTfBmC-qJd0g}Bdtkh+$A5vKH z(4Di^gL#Wkaa3>8%Xqw(T4UtQgaPV0d2?ee8g4JSC(*gPu} z4reCe^qVV?tprb?WSm~dIc4jmwY0z7DbMD}^>T7t-55sh?1Vq8#o-41rJX>s`l3G^ zwcZ^ijojNZ#db0mDrsuxBb;>0?1@lEN!~{F?JWN6e10(_qZaK$=%2?)v{!Zm5v!>U zNLddL_U3Hjph)`TTH^v^VJ#A0x#ACvnYDGG&C&Td-m~&o-HJ+gR!Kbj7WWnfmP?=> z_!0_h^|?euS$kvYKimsF^lx<$r5N@BXqQQmWIHr*~E*U_XwNu zY#W8caw*SD!0~;gz2aFigzjPzbu+Hd7XBc{ITR)}T2O4v%2$p-eRLOQ>K`mj)Mw>~X=e!V#s-V$&n2OlT5$SMMm3z{MgQsoV(js~ zMAIr>9?V+%x(kPapU_O5*#tlt?bb@hB~OvKx4M8OMoI&Mq?U+SNqb=`7|@Qb!3pZ2 z0sA?d=K+-JrXTdHE+^1d%@XO3CPS+D!EHSE_KshRF-ZU71_PtrOhoAu?{RUQ&l3#` zAI{<-y^MS_Z}dz|fcwvkCGD@c$~Z1GAzp^wkIJFXUx4{$|2)9V_|;3uPezO3NB9QB zk>s#-OC+|ZclzTk_;Nsd~8{_v~kt7>> zR!5H_^6jk^c>pc7nLwYfw+dpQ)zwKH)P8Dk5SPVN^8p+{A>*xJdXcG zIWfuZm^nv6Tw(fhgw9!nt%{Y50%}rG3FzOMiG;Q|5>M&_*MLE-t}FG!cr$3X&5>gY zh5X7^!mszfPOIiRNsgJTn)*SJzzN-)i>8=&nEMf0R!e zauOi@OLtD1t(>{jvqBePs^-WS%+Tz72hJZyenhm&$7b~O91V@uqRlbXTQ*6YJ^2<2 zE5GXEe)YY4&uVnrk;bT~t>P5lbdGhKjcR5#I)^*7n0f9fn0qOSuPjOkLgJ$iB$?Wr zO^E#Vd|sPI7<8Smp47vZ|+2g0*UmfdF7#B+anvwYFEZ> zLCTy=NoZC5D0;HZE11{Y7sCx^=~?8Fp`SgB-1~vSa0q(}(6muMftB&kl5i;RRYsOJ zx0GOGhvE#SqdWSTJ!00;Uv2|%(~o~eio%wzcE{;t2=y(SC9;#^7tkI*hH+ZEni!-j z*I=yn|Fego<}uu3PP>K!^rNZqu>2~2T&emNLMiL%7>@NGk%%%*jUf}vxJL*vlEU4f zi64wJtQ)T}(Yi5}m?buma6g|+eyN%tc>qwOnG`$mVZlxn?7tbn41QwXC5ZHPh2u>AAj zb7k8RdfHw~fF{>Wj+L5K0GHl>i^uZ~2@a&IVw zrDF?pQH#lxn3?R59GM$w(*NwFU?OZEgRI~Cx1q1gOI&9DT_}jQ^Z`Wa>vsSL>)hR) zsGU+hp5rVs<)uyN%ozi(Tj<{P5e_Fe;c_ZYYJpNh! zW5B#VCma1nr>_EpqhE-=-o)@k!B%(0lewz^?$$@p&nk8)jMix($J(Kt1j=asCDF!* zw*A4c7Sf!+8gDgRXXZ~FhfY~#)ufU9mhf5+hDp8n=M5~44vmCE8BbC3-1HrYYLwp( z7xlwr^LhSc2Bpa7M`}5rP4x7=gns5Im506_CF!=B_1MOHa!}# zIqp>iYW<_Hgg&I8D06o+F4IC~(`YqqCI!g23#=?S?m6C zhB#^gN|>J0#Oi-O*5r8O6d0-%-Bz&(I99q>RY7s(%OcFuobJaU?Z3Qs+AIa8lbx-| zcPpDSSMEg_6~&n^GaaFPG{+m4yvI->@dQy*wxt3hWzf(qb~cyN<&GtAeGm(t>INVz zdW|47!sRe_9#TdiC)?O4KIuCk{yc3GKy^l5F>uQy1Z$6*fgbb31)cWn0tQ)E_}-8| z9lF3(_EA$nr6o1N{d%f=0%;DOiqEu8AE;VJkM*mBTyAfSalHwC zHL6|(>gJIW3G_VNC05s%!OIy6u&YjOx<^-<>_P5FE z5`G8WhOIHccbAJCC~ z+@CWD&Lv;qP&Ha6g;n=-l1Lr$j@YQlT?wT&IWZh%cZ@-T@=p_2`m_2;a97?qXk%4j z5X%GH{Z7*ndK7>wWd`VU4{whUz2Zs|M?Kq{;%0WK#kAT*nXphQXFP#j@p7WO?h;Na zPxfQDr9353%^n$BsGS&l2-&p{N;TMjFd5ldgMH9rNmohl-u3af)+2)0saLx3Tzb9} zvds#MC9fMUM7DKwcql#3?qHPG&<4oz&fno>%u_X>PqIL2}NymE&vY1$Z9qh=D$5xwI=rakZ{L6U1uu zo6=#_zcm-~(kCHQ)}%>p9hv0HA5N|i#CdI9j!LIXGimozmgi}$dY!QGTp%l6jYdC0 zP^nXd9~NY3Oc2b@^T=6a<{x6K?JR>$dVy#=?V_pyV%cO$d&x&6g!%F*NvPaq%N_rZ~4g$1=6RGsCpNfG1Z)R5o3Khuke@+=}y0T_oMW557`dohIs&08(oex zvNA1_7RSuUmoYqd6 zM$tVN$1}27oX84H`Dlb9tl>9!XoH#%0X@y10Gsvi z1R#E9fp{c5YeME83jsLBjK7Z4kt_?J^}|i1=ZNYBFMU5&sAl%F$X|763V(t#C<(%u zk0v8C?#W4;kE-=DEW;PuiN3pV$x2r!0rI{(?0?ZOq7i5`+mOM2!GZM$6pBfTr9R zDuD5^5s!Yav-vah&oBI<-0lWQl>!S<#%O=<7}kUoG8j~=>^OQp?IQkW!zfUvmBMY@ zNam#8n!ECd?+3<W=nSoXZy1=@zSQwy>_0Z_F+b&Z zM}7Ma85?lq0;5KEhNqGAiZz+X*B!R=DC7xCy{v^-^bX}IJbL}LB)0i33~U$;U+v(m z{|8hy?Kfd;eU-FOH!|zzc+Av_qiY!xiakHE-fYZjdg@E>HE?`sddU~!=8nb?nx||6tgN3l+4!^ayS!X)+}ai9UrUo& z?Qh`(>wGc7p-y~5?R!2f)aE!aR#LLTt>M`4r!-=W8(pzVoqZka^{X*tiQX_~o9(AL zYr6EW%rTyJ#*SE|d5-0(raONQL7Hc~l{PLZGO24u?GL1XHH%0cRn|q>sOlFaI&X#m zD|N{yuHQi~=~mla^Tn(sx04xvsjrNjlm=hTObx&RZB^=>mA~?K7%a+WM}uy2L7ow7 zE~01oR^i|t1v;&l|89bESr``z<#|mnNx&brnCXU6N-lzRQiFuY_mlMnXIpF*kS3FFwICig2KGg7qgi`2HmjaL%5ks1 z6FC09IuveEVK~idEz4Q70zPPIR5^$}N{6e*@$OOCA=av0eG|u}{z!PE|2tuGlz0eg zbdQ^y)V`!f6UGMnQN%nl^c3G_*2gq$pFG1D#=uz+E~*Q5wE_+TP~xP7E50>>HUbW# zs=4g?4Ag$&?G5u5$FbX-^W1}fRjhuLH{lm{LY-aSfveu*P+I8`wHrCTuL{Pdesrb( zZXHJIDUERLY8RO6x2pu%S;meZ90e6dntguwpvuL==&9AeEGKt1TMyrlY?;Gn4Rz2$ zFIp6hSar3)&i^+|#F0vm^E^q^ZUE@C-S5d{EvcAre^-Kuhx7#iSU<87r>W+9fUQ52 z74TNyc|12Xtw`=FpXcI5^@%LX)-D}Ew9$DscdY##INh3XFCLO(9YKO($v0|I;I-^5tdmH3&^b7&^RI#!_1d$o$lK6u7yV&nU}pT29>~x)k5E-FwVob* z*|licWXmq1E}cPn{YPz3r8;!U_MkRk(agOS70lUlX3`elBOw~!f@{UMBA8$l_z?k{ z%Ik=>8k!_oT?Iit{^cx9+qPU->tsUfcOsXNSJz z0IZS+8i;T36`1K&f;YgbK>w8}gn2v+-%qL1yPTslj3!=YA(`l~Tz!cwY=nl<+l+Vm_SN8PZ<4Iz_XOP*b5 zm;(K{wF1(8&B+0+dSPg^4p+IuQttghx~?7B#06J&{?;$12Xh;rn;Yv@_o=!@j;ch_ zbn+KK7HY+@b!l`WtX?gl-fD&Z@!)K5K~z;Ar|q}@RR6?rR`2o$)ASSnklf~!=7-^v zzY+Cr+zE714*7|TtTI@p6?pFlVQTGQNCM`{wITa9l29`z2};^366ZD|ktapZkLzc;C6My?6x1Y@a zD!o2M*d0SmifY}Wz`?w_6{*%>sSf7Vs+eH5Z!aGE`x9nb)8)f0>!G}^)m+=|qz#d; ziNe$6NvOPufuB=E(W18yq_n$l z($n?}O9{#~_rwqPA3&(K%=o*LYRlv4nY}==w}BzvSg?}-DgG&BtDegqV#BV9Xkpxx zeRtL2g;IztS^rU;lb*>T)tKoJPw0A6~rW`o*1J%-bMW|H_bwn zW*bGne&I(TXH%Z=(xt_@&2+CW1eA@M6Y;o`x9lmnKf8iAm0t}Ay1BI@_p^5ghzq}T z;mSEmULzwBktx8(7~w@RY`hQ2R=ejwv<{!aII_vo zIi=1YX!ZUhQ{dO~svvhsvt9HL2^VDC=)DYSjl)C8f92$GLSW`v%2_qrVWMid zN5jqRnT1NS`Y$1$;Oc`4x66yO8;m;1?L@{)!vcLI;|DDvV%m%(;$zf)Y#{aIZpLdl z0=6@>=2L%c=+#6j=9FPj8r3@{qy1W@ogA5$9OBS7lflU)lM=u~fr((lJnC_b{$8WF z7HK=e$I?@JL?Dcx#e!z7)eXR*kNt@9*4@tDsNJp`idYTPC4D2R@Jv}Y<4smd10E`N zWX2@@#&Mvad4Assouem({6=%K&RSEJ7!-H_e2lDFN65IzOq5EzP=17 zTYZ)ak}l-*MgJ)!!%=ttAQAcUG`V19=_N6Hx*KDR%$ukirlZdZ&h{!N#_ahJM*q5- zV&wfU$*6JGjvD5w5~yqby9fvC!*k$$%X=u^Qz~VT? z*LC5zO|d>42Onapuxdr@P=-!LQ*&FipsR?_VUCZjMGvL&3@p<=xCqW2%|g+sW-hRx zr%z)VCYxP`=3F94d8HoY+Lgb=%EM*XK=O)--Jgb=+_LGNAH&#kzv#_}vc>R^>T8k@ z>a^=bN-uCZfi0v~A3JigLL;;nkmi@uL6PZQQ4R%a}`cm5)G`vX?j0(hOk3;qz+nenyp(RjNw)Za6_%w`d1Fu0@6Z*o9!;iK`t$~j$j*0<%?CTUu8G?w**0{xqJYT#+H^i+}ON70UO+U zf?y>j5oGJ-M*~LPIWd-78Y#-kKb=SPuCeUEzXB8Zzv<(patvyJ3%@Lm~C38s*_o>X|{`0h0-T|GQF z&N>QJt(jApN{yI>7ODqRYmSJy;-qzl0Gu^6AK}&V^zviO!=NAprGLgVYWcjP^uZYd z(5}aP?2Z%Tg;hd7gj)CZNw5~Cx}m>S$PWe{e7wbi*24_dM=bGzrtV5G$$xDTIkV6L zB4mBt#VGB{u2_x_xWQPPI-1~^7wT-HzwT7-V{-n+`)U<=38%-|#n$w2X@e>-NS_@= z>X->-5Muty_#~@Z0@-VRoXG8rQoRsX=@rk4-cugq6*HjQT0~uv1k&BM08O(({q1)C zEVrptplJsvl*W2l_-<|;6a)RTj6aQ7@gp8thmO0^bMqfxd1`<}8Nz4iJT>L`UrFZy zUqkjiaIuSBy{*-a)v`KavB(=etM|HOM2T*7f*4(dG^t23A&Dr7AcBOv5lQqAb(Jt! zZLQUR+Oz)OlmF+v&;88j+;dMqckbM|_YM<9%kC`&BRvR5X}x_i7=H1R-eC@fr#>SB z>5N$l6NcBi;&Ih|ZafTrc^?k)?}34+ckUU?jAu@n2;rC_0XXxe0kfFsSn%hjimJ~p zz*9RBjOR7?_o6_NNNF`OHUh}0cZhCXvcwl@MyEv* z9-o7tX5Ff=9XdbD3LN#;VEm=;ct~5_J(z2233peA$9Tfiob)&uK_X_4vvW?&N=d6X z!6MGXAs}j($3jxA`yaD%OJ0h@;Lgi9ler zYFXq{>pvn}w9)c{z^dJB5ybYNi3YRe#|X&GtBS0~lIP%Sxf+@n11#}(JpzuSW+1Fj zdrj`ETjlnwzx6}~@^3gys-_nCb1WJHAF6^e#l@;EM zXEv{cVt;ik6rD_HDR1L-N_SZ;tj-M-JFnA|sa<==56n_-`|W%r>hf=PM!J=Df>U`W zybYI&Ua<0KH?bpUEneV26ZBS{xvnGOWbH4G`StG%Ou%=v z?eGY$L<(3B_7~cA5-wZ#WNV3qJ zy3z;umV(EqHnoCz$DeSF_TxuofH=A|jjY;^RHWV`Ykrijvf{Nma)I`6`DYD2*p$IVG$FBjuw8v8LRV^$dpIKy2$2F4u(zkeAlI1_n+0*2ht5 zhb%CyNlw(7!(S11>I6CXMyWmrU)G*VXj_LbEVMJp(sM11+(Kihw2z9lvl=r%tWy7E z8uBgh##2_KN|3RBteJ&Ot6xYES7~qz$Qyanq(?740fnEoLeqTK1v={JmT0bIi?+s@ zKf)0qqqmGxYOGsA*>VT9+J8-W;`-_vW@pLgTufmNQ0Tp_>xCtp7Hto;bI#OFVVf)S zZff)2!YF$j17f^bwVd)~w`~v`*#hzPVrNNkvz<2<(cfMqQ>?n=-Zj}kMOn=&P=s+J0}IqJxygIO&_!eLe7FdOGFL=qHgi7m0fM<=ZT;;~FR z*W|t8o?;1`sBN$X0?K6%;!o=tkjC}jh2UqjuZYy@ntpjqvt-L%=W)Rb>ALU8l&S%n zz`ME+3~SC;KaLZvaUMWG&Ssj-YlR8*!kw}Z^s5sYt8^QPd9<~)_keD<5uv(|>TbWUA z7~8t>6<271aamAKxt2(6NcJMi%Z0=V_8Pd?s32Xm@#TCrbS9rYVRyW#EB^kqJZ#Md zP9nl?>E(3WL<6DXb`T%>I9{)_mL(AK=Ag&R7_U9q4&9j#L9y0#+W}&}UpA}gheTnZ z2lv;4H~q^|7-hVrz1F)QxvejMjL(h5&9-2Q=WDUN_17xWKuahq#4Z%&kt2FMS!(_` zi14*Oy3xq;9U`Gq!GVjEp>aHH#*T}leNK?=FNHG5-CQvhOOGuTGcP2{boyU-=!YSq~Y;xR^{^K72)Z)`5RQGQq zye!|Mgo?H4P7bV2j1%j52a^QG?W^Lo85J;``Y;^>8M&h~p)joqy^+~v6dt$wJoW}s zxhy&;QIpV3UA+axl_84+;$g}#Be5A#W!$o3OLhDJe5(K3)1+j1DN3A`$0jXZc9833 z%OyeW#z>(P(wzygJA(mRo@aPwykR3Ic>m8RZBwa0ScH~|p)9+K@KAiD=hmLe;xE-- zh6zS=bgIo^$VO)M__j5a-Fr&={!_M5*{2C6v%Z(fTrFxKINHRfAuxLMlZK>=wvR)K zud>|QsBqf=|7##FQCr9fin?PkvvYoO#=U-b4GFCHjwWQST1lvF?5u%G#?B#&k?G8B z)G&|VNn-OOUkldr|LF^idz~-<15HLML-EEx6(~(irxPaCG zj?1nnYb?*Djtg~>^#8YnY5l$s68iQxbOFZ8^WyF<5s658U=My$z1ks?equ@nO{aLo zAiKvd3D)|j(MGK_qYu}6-ICC_dLH3xG?hDx5+RFljSg|NHD={Y@VE?0hw=><6tS*d zL@8}W6Z)wqv1EZ3BI`x0q(PWTuaqYdy1NjGuXY?sGAb42J(uO-k2qFnFA=AG9syvK zE$;`;#6&Vkb9IBcbv;00eEJ>2Kxx)ImbNqI!dBl|@HQTr& z-z-Kyrg+ZBXqxLwyrGuj83_NtzgCACLfC5;9@jrkJp}yv z#_7P5H|>K=X;&Vu&K;wRF&o#XW73bjC%BE%8E9o}D@pX#$tGX4eq& G53lJ*Tx; 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 Kz|)>5tldAMUM0Bz literal 0 HcmV?d00001 diff --git a/resources/geneticPredictionModels/predictionModels/LactoseToleranceModel.gob b/resources/geneticPredictionModels/predictionModels/LactoseToleranceModel.gob index a34a8a074fcf69a1825d538a4ec83b4418e90298..5e8b489ac03be9cadfa6584b1bc61016d5eeb85a 100644 GIT binary patch delta 276 zcmaFP{FHgZt$MEi4U7`M6^^fbvj4Zkw}hqkzYla2T(SS%Fxm3C{qKZrcR$+yVZV6F z{?8iGNA|xLEcpL$|DU@{zXFxz?7Or7_kn+si}wFk=z9g!lEAa%lKpRoes7?7!m1Sq zfTWJ!Df{0KB!Yo#hsS(Zfg;gS7lC@&EM^0(=+i%450p*`{s1)DoB84X-w&epuD568 z0UA3!%l?mv>06*G;Vs{Q(hPCu?f)p;F9TX|fA4$yKY>>l0-5L5?ghGGg~$beq z|B+*U2xO`@KHUGiVe!SUK*=kXKurpz+qMEl3`}m?|B33oZvXp1(~}!O;jce(fJ(O9 zJ`5y3763IJ$a;7QNdCNW38wK{P?a(*vJCNME>H?7bwQu$Q-wy=yUfKUi`?nP6o`oJKfQE|lF9Nc!K6nf? zwDr^hp!LFUFYjk$`>mkX0u(zC`RyH0^X0^yK+@~q2cQn~t-tL5tZ3rDzMqkYkpl?X IfRKd&0G1Y@O8@`> diff --git a/utilities/createGeneticModels/createGeneticModels.go b/utilities/createGeneticModels/createGeneticModels.go index 202fc80..09cb691 100644 --- a/utilities/createGeneticModels/createGeneticModels.go +++ b/utilities/createGeneticModels/createGeneticModels.go @@ -1168,12 +1168,24 @@ func setStartAndMonitorTrainModelPage(window fyne.Window, traitName string, prev neuralNetworkObject, err := geneticPrediction.GetNewUntrainedNeuralNetworkObject(traitName) if (err != nil) { return false, err } - numberOfTrainingDatas := len(trainingSetFilepathsList) - numberOfTrainingDatasString := helpers.ConvertIntToString(numberOfTrainingDatas) + // The number of rounds of training for the training data set + totalQuantityOfRoundsToRun := 2 + + quantityOfTrainingDatasInSet := len(trainingSetFilepathsList) + + quantityOfTrainingDatas := len(trainingSetFilepathsList) * totalQuantityOfRoundsToRun + quantityOfTrainingDatasString := helpers.ConvertIntToString(quantityOfTrainingDatas) + + // This keeps track of how many training rounds we have completed + // With each round, we shuffle the training data list and train the model again + trainingRoundsCompleted := 0 // This keeps track of how far along we are in training trainingDataIndex := 0 + // This keeps track of how many examples we have trained during all rounds + quantityOfExamplesTrained := 0 + // Outputs: // -bool: User stopped training // -bool: Another training data exists @@ -1190,9 +1202,24 @@ func setStartAndMonitorTrainModelPage(window fyne.Window, traitName string, prev return true, false, geneticPrediction.TrainingData{}, nil } - if (trainingDataIndex == numberOfTrainingDatas){ - // We are done training. - return false, false, geneticPrediction.TrainingData{}, nil + if (trainingDataIndex == quantityOfTrainingDatasInSet){ + // We are done training this set + + trainingRoundsCompleted += 1 + + if (trainingRoundsCompleted == totalQuantityOfRoundsToRun){ + // We are done training + return false, false, geneticPrediction.TrainingData{}, nil + } + + // We train another round + trainingDataIndex = 0 + + // We deterministically randomize the order of the training data for the next round + + pseudorandomNumberGenerator.Shuffle(len(trainingSetFilepathsList), func(i int, j int){ + trainingSetFilepathsList[i], trainingSetFilepathsList[j] = trainingSetFilepathsList[j], trainingSetFilepathsList[i] + }) } trainingDataFilepath := trainingSetFilepathsList[trainingDataIndex] @@ -1206,15 +1233,15 @@ func setStartAndMonitorTrainModelPage(window fyne.Window, traitName string, prev trainingDataObject, err := geneticPrediction.DecodeBytesToTrainingDataObject(fileContents) if (err != nil) { return false, false, geneticPrediction.TrainingData{}, err } - trainingDataIndex += 1 + quantityOfExamplesTrained += 1 - numberOfExamplesTrainedString := helpers.ConvertIntToString(trainingDataIndex + 1) - numberOfExamplesProgress := "Trained " + numberOfExamplesTrainedString + "/" + numberOfTrainingDatasString + " Examples" + quantityOfExamplesTrainedString := helpers.ConvertIntToString(quantityOfExamplesTrained) + numberOfExamplesProgress := "Trained " + quantityOfExamplesTrainedString + "/" + quantityOfTrainingDatasString + " Examples" progressDetailsBinding.Set(numberOfExamplesProgress) - newProgressFloat64 := float64(trainingDataIndex)/float64(numberOfTrainingDatas) + newProgressFloat64 := float64(quantityOfExamplesTrained)/float64(quantityOfTrainingDatas) err = progressPercentageBinding.Set(newProgressFloat64) if (err != nil) { return false, false, geneticPrediction.TrainingData{}, err } @@ -1239,7 +1266,7 @@ func setStartAndMonitorTrainModelPage(window fyne.Window, traitName string, prev } traitIsNumeric := getTraitIsNumericBool() - + processCompleted, err := geneticPrediction.TrainNeuralNetwork(traitName, traitIsNumeric, neuralNetworkObject, getNextTrainingDataFunction) if (err != nil) { return false, err } if (processCompleted == false){ @@ -1661,9 +1688,8 @@ func setStartAndMonitorTestModelPage(window fyne.Window, traitName string, previ // We use this map to count up the information about predictions // We use information from this map to construct the final accuracy information map - // Map Structure: NumericTraitOutcomeInfo -> List of true outcomes - traitPredictionInfoMap := make(map[geneticPrediction.NumericTraitOutcomeInfo][]float64) - + // Map Structure: NumericTraitPredictionInfo -> []float64 (List of distances for each prediction) + traitPredictionInfoMap := make(map[geneticPrediction.NumericTraitPredictionInfo][]float64) _, testingSetFilepathsList, err := getTrainingAndTestingDataFilepathLists(traitName) if (err != nil) { return false, nil, err } @@ -1712,17 +1738,17 @@ func setStartAndMonitorTestModelPage(window fyne.Window, traitName string, previ trainingDataInputLayer := trainingDataObject.InputLayer trainingDataExpectedOutputLayer := trainingDataObject.OutputLayer - predictionLayer, err := geneticPrediction.GetNeuralNetworkRawPrediction(&neuralNetworkObject, false, trainingDataInputLayer) + if (len(trainingDataExpectedOutputLayer) != 1){ + return false, nil, errors.New("Neural network training data prediction output layer length is not 1.") + } + + predictionLayer, err := geneticPrediction.GetNeuralNetworkRawPrediction(&neuralNetworkObject, true, trainingDataInputLayer) if (err != nil) { return false, nil, err } if (len(predictionLayer) != 1){ return false, nil, errors.New("Neural network numeric prediction output layer length is not 1.") } - if (len(trainingDataExpectedOutputLayer) != 1){ - return false, nil, errors.New("Neural network training data prediction output layer length is not 1.") - } - correctOutcomeValue, err := geneticPrediction.GetNumericOutcomeValueFromOutputLayer(traitName, trainingDataExpectedOutputLayer) if (err != nil) { return false, nil, err } @@ -1738,18 +1764,19 @@ func setStartAndMonitorTestModelPage(window fyne.Window, traitName string, previ proportionOfPhasedLoci := float64(numberOfKnownAndPhasedLoci)/float64(numberOfKnownLoci) percentageOfPhasedLoci := int(100*proportionOfPhasedLoci) - newNumericTraitOutcomeInfo := geneticPrediction.NumericTraitOutcomeInfo{ - OutcomeValue: predictedOutcomeValue, + newNumericTraitPredictionInfo := geneticPrediction.NumericTraitPredictionInfo{ PercentageOfLociTested: percentageOfLociTested, PercentageOfPhasedLoci: percentageOfPhasedLoci, } - existingList, exists := traitPredictionInfoMap[newNumericTraitOutcomeInfo] + distanceFromCorrectValue := math.Abs(predictedOutcomeValue - correctOutcomeValue) + + existingList, exists := traitPredictionInfoMap[newNumericTraitPredictionInfo] if (exists == false){ - traitPredictionInfoMap[newNumericTraitOutcomeInfo] = []float64{correctOutcomeValue} + traitPredictionInfoMap[newNumericTraitPredictionInfo] = []float64{distanceFromCorrectValue} } else { - existingList = append(existingList, correctOutcomeValue) - traitPredictionInfoMap[newNumericTraitOutcomeInfo] = existingList + existingList = append(existingList, distanceFromCorrectValue) + traitPredictionInfoMap[newNumericTraitPredictionInfo] = existingList } exampleIndexString := helpers.ConvertIntToString(index+1) @@ -1764,72 +1791,51 @@ func setStartAndMonitorTestModelPage(window fyne.Window, traitName string, previ // Now we construct the TraitAccuracyInfoMap - // This map stores the accuracy for each outcome - traitPredictionAccuracyInfoMap := make(map[geneticPrediction.NumericTraitOutcomeInfo]geneticPrediction.NumericTraitPredictionAccuracyRangesMap) + // This map stores the accuracy for each QuantityOfKnownLoci/QuantityOfPhasedLoci + traitPredictionAccuracyInfoMap := make(map[geneticPrediction.NumericTraitPredictionInfo]geneticPrediction.NumericTraitPredictionAccuracyRangesMap) - for traitPredictionInfo, realOutcomesList := range traitPredictionInfoMap{ + for traitPredictionInfo, predictionDistancesList := range traitPredictionInfoMap{ - if (len(realOutcomesList) == 0){ - return false, nil, errors.New("traitPredictionInfoMap contains empty realOutcomesList.") + if (len(predictionDistancesList) == 0){ + return false, nil, errors.New("traitPredictionInfoMap contains empty predictionDistancesList.") } - // This is the predicted height value for this set of real outcomes - predictionValue := traitPredictionInfo.OutcomeValue - // Map Structure: Accuracy Percentage (AP) -> Amount needed to deviate from prediction // for the value to be accurate (AP)% of the time newNumericTraitPredictionAccuracyRangesMap := make(map[int]float64) - rangeDistance := float64(0) + if (len(predictionDistancesList) < 5){ + // We don't have enough data to create an accuracyRanges map. + continue + } - for { + // We sort the prediction distances list in ascending order + slices.Sort(predictionDistancesList) - rangeMin := predictionValue - rangeDistance - rangeMax := predictionValue + rangeDistance + finalIndex := len(predictionDistancesList) - 1 - valuesInRangeList := make([]float64, 0) - valuesOutOfRangeList := make([]float64, 0) + for index, distance := range predictionDistancesList{ - for _, outcomeValue := range realOutcomesList{ + proportionOfPredictionsWithinDistance := float64(index)/float64(finalIndex) - if (outcomeValue <= rangeMax && outcomeValue >= rangeMin){ - valuesInRangeList = append(valuesInRangeList, outcomeValue) - } else { - valuesOutOfRangeList = append(valuesOutOfRangeList, outcomeValue) - } + percentageOfPredictionsWithinDistance := int(100 * proportionOfPredictionsWithinDistance) + + if (percentageOfPredictionsWithinDistance == 0){ + // 0% accuracy is not a useful metric for users + continue } - quantityOfValuesInRange := len(valuesInRangeList) - totalQuantityOfValues := len(realOutcomesList) - - proportionOfValuesInRange := float64(quantityOfValuesInRange)/float64(totalQuantityOfValues) - percentageOfValuesInRange := proportionOfValuesInRange * 100 - - if (percentageOfValuesInRange >= 1){ - percentageOfValuesInRangeInt := int(percentageOfValuesInRange) - - newNumericTraitPredictionAccuracyRangesMap[percentageOfValuesInRangeInt] = rangeDistance - } - if (quantityOfValuesInRange == totalQuantityOfValues){ - newNumericTraitPredictionAccuracyRangesMap[100] = rangeDistance - break + _, exists := newNumericTraitPredictionAccuracyRangesMap[percentageOfPredictionsWithinDistance] + if (exists == true){ + // There exists a value for this percentage already + // This happens because we convert a float64 to an int + // The existing percentage must be smaller than our current percentage + // We want to keep that smaller percentage + // For example, we would rather keep the 15.1% value than the 15.8% value. + continue } - // Now we increase rangeDistance - // We find the distance to the next closest item in the list that isn't already in our range - - nearestValueDistance := float64(0) - - for index, outcomeValue := range valuesOutOfRangeList{ - - distance := math.Abs(predictionValue - outcomeValue) - - if (index == 0 || distance < nearestValueDistance){ - nearestValueDistance = distance - } - } - - rangeDistance += nearestValueDistance + newNumericTraitPredictionAccuracyRangesMap[percentageOfPredictionsWithinDistance] = distance } traitPredictionAccuracyInfoMap[traitPredictionInfo] = newNumericTraitPredictionAccuracyRangesMap @@ -1891,8 +1897,8 @@ func setViewModelTestingDiscreteTraitResultsPage(window fyne.Window, traitName s getResultsGrid := func()(*fyne.Container, error){ - outcomeNameTitle := getItalicLabelCentered("Outcome Name") emptyLabel1 := widget.NewLabel("") + outcomeNameTitle := getItalicLabelCentered("Outcome Name") predictionAccuracyTitle1 := getItalicLabelCentered("Prediction Accuracy") knownLociLabel_0to33 := getItalicLabelCentered("0-33% Known Loci") @@ -1903,7 +1909,7 @@ func setViewModelTestingDiscreteTraitResultsPage(window fyne.Window, traitName s predictionAccuracyTitle3 := getItalicLabelCentered("Prediction Accuracy") knownLociLabel_67to100 := getItalicLabelCentered("67-100% Known Loci") - outcomeNameColumn := container.NewVBox(outcomeNameTitle, emptyLabel1, widget.NewSeparator()) + outcomeNameColumn := container.NewVBox(emptyLabel1, outcomeNameTitle, widget.NewSeparator()) predictionAccuracyColumn_0to33 := container.NewVBox(predictionAccuracyTitle1, knownLociLabel_0to33, widget.NewSeparator()) predictionAccuracyColumn_34to66 := container.NewVBox(predictionAccuracyTitle2, knownLociLabel_34to66, widget.NewSeparator()) predictionAccuracyColumn_67to100 := container.NewVBox(predictionAccuracyTitle3, knownLociLabel_67to100, widget.NewSeparator())