From ed1317278b2334a97d6a2233d6ef702928933de2 Mon Sep 17 00:00:00 2001 From: Laurent LAPORTE Date: Fri, 15 Mar 2024 09:23:19 +0100 Subject: [PATCH 1/5] fix(commands): added support for removing BC matrices in v8.7 when deleting a thermal cluster --- .../model/command/remove_cluster.py | 68 ++++++++++++------ tests/variantstudy/assets/empty_study_870.zip | Bin 0 -> 64653 bytes tests/variantstudy/conftest.py | 17 ++++- .../model/command/test_remove_cluster.py | 14 ++++ 4 files changed, 74 insertions(+), 25 deletions(-) create mode 100644 tests/variantstudy/assets/empty_study_870.zip diff --git a/antarest/study/storage/variantstudy/model/command/remove_cluster.py b/antarest/study/storage/variantstudy/model/command/remove_cluster.py index 095e62f526..fbefaea312 100644 --- a/antarest/study/storage/variantstudy/model/command/remove_cluster.py +++ b/antarest/study/storage/variantstudy/model/command/remove_cluster.py @@ -134,26 +134,50 @@ def _create_diff(self, other: "ICommand") -> t.List["ICommand"]: def get_inner_matrices(self) -> t.List[str]: return [] - # noinspection SpellCheckingInspection def _remove_cluster_from_binding_constraints(self, study_data: FileStudy) -> None: - config = study_data.tree.get(["input", "bindingconstraints", "bindingconstraints"]) - - # Binding constraints IDs to remove - ids_to_remove = set() - - # Cluster IDs are stored in lower case in the binding contraints configuration file. - cluster_id = self.cluster_id.lower() - for bc_id, bc_props in config.items(): - if f"{self.area_id}.{cluster_id}" in bc_props.keys(): - ids_to_remove.add(bc_id) - - for bc_id in ids_to_remove: - study_data.tree.delete(["input", "bindingconstraints", config[bc_id]["id"]]) - bc = next(iter([bind for bind in study_data.config.bindings if bind.id == config[bc_id]["id"]])) - study_data.config.bindings.remove(bc) - del config[bc_id] - - study_data.tree.save( - config, - ["input", "bindingconstraints", "bindingconstraints"], - ) + """ + Remove the binding constraints that are related to the thermal cluster. + + Notes: + A binding constraint has properties, a list of terms (which form a linear equation) and + a right-hand side (which is the matrix of the binding constraint). + The terms are of the form `area1%area2` or `area.cluster` where `area` is the ID of the area + and `cluster` is the ID of the cluster. + + When a thermal cluster is removed, it has an impact on the terms of the binding constraints. + At first, we could decide to remove the terms that are related to the area. + However, this would lead to a linear equation that is not valid anymore. + + Instead, we decide to remove the binding constraints that are related to the cluster. + """ + # See also `RemoveCluster` + # noinspection SpellCheckingInspection + url = ["input", "bindingconstraints", "bindingconstraints"] + binding_constraints = study_data.tree.get(url) + + # Collect the binding constraints that are related to the area to remove + # by searching the terms that contain the ID of the area. + bc_to_remove = {} + lower_area_id = self.area_id.lower() + lower_cluster_id = self.cluster_id.lower() + for bc_index, bc in list(binding_constraints.items()): + for key in bc: + if "." not in key: + # This key identifies a link or belongs to the set of properties. + # It isn't a cluster ID, so we skip it. + continue + # Term IDs are in the form `area1%area2` or `area.cluster` + # noinspection PyTypeChecker + related_area_id, related_cluster_id = map(str.lower, key.split(".")) + if (lower_area_id, lower_cluster_id) == (related_area_id, related_cluster_id): + bc_to_remove[bc_index] = binding_constraints.pop(bc_index) + break + + matrix_suffixes = ["_lt", "_gt", "_eq"] if study_data.config.version >= 870 else [""] + + for bc_index, bc in bc_to_remove.items(): + for suffix in matrix_suffixes: + # noinspection SpellCheckingInspection + study_data.tree.delete(["input", "bindingconstraints", f"{bc['id']}{suffix}"]) + + study_data.tree.save(binding_constraints, url) diff --git a/tests/variantstudy/assets/empty_study_870.zip b/tests/variantstudy/assets/empty_study_870.zip new file mode 100644 index 0000000000000000000000000000000000000000..78381529946171a8e3ac0b1be0c8c301d0b8aeaa GIT binary patch literal 64653 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 ubCjt^V? literal 0 HcmV?d00001 diff --git a/tests/variantstudy/conftest.py b/tests/variantstudy/conftest.py index e963c83879..1bcbb13cb1 100644 --- a/tests/variantstudy/conftest.py +++ b/tests/variantstudy/conftest.py @@ -8,6 +8,12 @@ import numpy.typing as npt import pytest +from antarest.study.storage.study_upgrader import get_current_version + +if t.TYPE_CHECKING: + # noinspection PyPackageRequirements + from _pytest.fixtures import SubRequest + from antarest.matrixstore.model import MatrixDTO from antarest.matrixstore.service import MatrixService from antarest.matrixstore.uri_resolver_service import UriResolverService @@ -134,27 +140,32 @@ def command_factory_fixture(matrix_service: MatrixService) -> CommandFactory: @pytest.fixture(name="empty_study") -def empty_study_fixture(tmp_path: Path, matrix_service: MatrixService) -> FileStudy: +def empty_study_fixture(request: "SubRequest", tmp_path: Path, matrix_service: MatrixService) -> FileStudy: """ Fixture for creating an empty FileStudy object. Args: + request: pytest's request object. tmp_path: The temporary path for extracting the empty study. matrix_service: The MatrixService object. Returns: FileStudy: The empty FileStudy object. """ - empty_study_path: Path = ASSETS_DIR / "empty_study_720.zip" + zip_name = getattr(request, "param", "empty_study_720.zip") + empty_study_path: Path = ASSETS_DIR / zip_name empty_study_destination_path = tmp_path.joinpath("empty-study") with zipfile.ZipFile(empty_study_path, "r") as zip_empty_study: zip_empty_study.extractall(empty_study_destination_path) + # Detect the version of the study from `study.antares` file. + version = get_current_version(empty_study_destination_path) + config = FileStudyTreeConfig( study_path=empty_study_destination_path, path=empty_study_destination_path, study_id="", - version=720, + version=int(version), areas={}, sets={}, ) diff --git a/tests/variantstudy/model/command/test_remove_cluster.py b/tests/variantstudy/model/command/test_remove_cluster.py index 99333d811a..faae51f5c7 100644 --- a/tests/variantstudy/model/command/test_remove_cluster.py +++ b/tests/variantstudy/model/command/test_remove_cluster.py @@ -1,3 +1,5 @@ +import numpy as np +import pytest from checksumdir import dirhash from antarest.study.storage.rawstudy.model.filesystem.config.binding_constraint import BindingConstraintFrequency @@ -13,6 +15,7 @@ class TestRemoveCluster: + @pytest.mark.parametrize("empty_study", ["empty_study_720.zip", "empty_study_870.zip"], indirect=True) def test_apply(self, empty_study: FileStudy, command_context: CommandContext): area_name = "Area_name" area_id = transform_name_to_id(area_name) @@ -39,6 +42,15 @@ def test_apply(self, empty_study: FileStudy, command_context: CommandContext): modulation=[[0]], ).apply(empty_study) + # Binding constraint 2nd member: array of shape (8784, 3) + array = np.random.rand(8784, 3) * 1000 + if empty_study.config.version < 870: + values = array.tolist() + less_term_matrix = None + else: + values = None + less_term_matrix = array.tolist() + bind1_cmd = CreateBindingConstraint( name="BD 1", time_step=BindingConstraintFrequency.HOURLY, @@ -48,6 +60,8 @@ def test_apply(self, empty_study: FileStudy, command_context: CommandContext): }, comments="Hello", command_context=command_context, + values=values, + less_term_matrix=less_term_matrix, ) output = bind1_cmd.apply(study_data=empty_study) assert output.status From 8b8f40d9471674b1c2a042d2d3cb47aed9a3330a Mon Sep 17 00:00:00 2001 From: Laurent LAPORTE Date: Fri, 15 Mar 2024 09:37:47 +0100 Subject: [PATCH 2/5] test(commands): improve unit tests on BC management --- .../test_manage_binding_constraints.py | 82 +++++++++++-------- 1 file changed, 46 insertions(+), 36 deletions(-) diff --git a/tests/variantstudy/model/command/test_manage_binding_constraints.py b/tests/variantstudy/model/command/test_manage_binding_constraints.py index bab8ff1681..aab13307b1 100644 --- a/tests/variantstudy/model/command/test_manage_binding_constraints.py +++ b/tests/variantstudy/model/command/test_manage_binding_constraints.py @@ -1,12 +1,16 @@ from unittest.mock import Mock import numpy as np +import pytest from antarest.study.storage.rawstudy.ini_reader import IniReader from antarest.study.storage.rawstudy.model.filesystem.config.binding_constraint import BindingConstraintFrequency from antarest.study.storage.rawstudy.model.filesystem.factory import FileStudy from antarest.study.storage.variantstudy.business.command_extractor import CommandExtractor from antarest.study.storage.variantstudy.business.command_reverter import CommandReverter +from antarest.study.storage.variantstudy.business.matrix_constants.binding_constraint.series_after_v87 import ( + default_bc_weekly_daily as default_bc_weekly_daily_870, +) from antarest.study.storage.variantstudy.business.matrix_constants.binding_constraint.series_before_v87 import ( default_bc_hourly, default_bc_weekly_daily, @@ -24,41 +28,18 @@ # noinspection SpellCheckingInspection -def test_manage_binding_constraint( - empty_study: FileStudy, - command_context: CommandContext, -): +@pytest.mark.parametrize("empty_study", ["empty_study_720.zip", "empty_study_870.zip"], indirect=True) +def test_manage_binding_constraint(empty_study: FileStudy, command_context: CommandContext): study_path = empty_study.config.study_path area1 = "area1" area2 = "area2" cluster = "cluster" - CreateArea.parse_obj( - { - "area_name": area1, - "command_context": command_context, - } - ).apply(empty_study) - CreateArea.parse_obj( - { - "area_name": area2, - "command_context": command_context, - } - ).apply(empty_study) - CreateLink.parse_obj( - { - "area1": area1, - "area2": area2, - "command_context": command_context, - } - ).apply(empty_study) + CreateArea.parse_obj({"area_name": area1, "command_context": command_context}).apply(empty_study) + CreateArea.parse_obj({"area_name": area2, "command_context": command_context}).apply(empty_study) + CreateLink.parse_obj({"area1": area1, "area2": area2, "command_context": command_context}).apply(empty_study) CreateCluster.parse_obj( - { - "area_id": area1, - "cluster_name": cluster, - "parameters": {}, - "command_context": command_context, - } + {"area_id": area1, "cluster_name": cluster, "parameters": {}, "command_context": command_context} ).apply(empty_study) bind1_cmd = CreateBindingConstraint( @@ -83,10 +64,18 @@ def test_manage_binding_constraint( res2 = bind2_cmd.apply(empty_study) assert res2.status - bc1_matrix_path = study_path / "input/bindingconstraints/bd 1.txt.link" - bc2_matrix_path = study_path / "input/bindingconstraints/bd 2.txt.link" - assert bc1_matrix_path.exists() - assert bc2_matrix_path.exists() + if empty_study.config.version < 870: + matrix_links = ["bd 1.txt.link", "bd 2.txt.link"] + else: + matrix_links = [ + # fmt: off + "bd 1_lt.txt.link", "bd 1_eq.txt.link", "bd 1_gt.txt.link", + "bd 2_lt.txt.link", "bd 2_eq.txt.link", "bd 2_gt.txt.link", + # fmt: on + ] + for matrix_link in matrix_links: + link_path = study_path / f"input/bindingconstraints/{matrix_link}" + assert link_path.exists(), f"Missing matrix link: {matrix_link!r}" cfg_path = study_path / "input/bindingconstraints/bindingconstraints.ini" bd_config = IniReader().read(cfg_path) @@ -108,14 +97,26 @@ def test_manage_binding_constraint( "type": "daily", } - weekly_values = default_bc_weekly_daily.tolist() + if empty_study.config.version < 870: + weekly_values = default_bc_weekly_daily.tolist() + values = weekly_values + less_term_matrix = None + greater_term_matrix = None + else: + weekly_values = default_bc_weekly_daily_870.tolist() + values = None + less_term_matrix = weekly_values + greater_term_matrix = weekly_values + bind_update = UpdateBindingConstraint( id="bd 1", enabled=False, time_step=BindingConstraintFrequency.WEEKLY, operator=BindingConstraintOperator.BOTH, coeffs={"area1%area2": [800, 30]}, - values=weekly_values, + values=values, + less_term_matrix=less_term_matrix, + greater_term_matrix=greater_term_matrix, command_context=command_context, ) res = bind_update.apply(empty_study) @@ -133,7 +134,16 @@ def test_manage_binding_constraint( remove_bind = RemoveBindingConstraint(id="bd 1", command_context=command_context) res3 = remove_bind.apply(empty_study) assert res3.status - assert not bc1_matrix_path.exists() + + for matrix_link in matrix_links: + link_path = study_path / f"input/bindingconstraints/{matrix_link}" + if matrix_link.startswith("bd 1"): + assert not link_path.exists(), f"Matrix link not removed: {matrix_link!r}" + elif matrix_link.startswith("bd 2"): + assert link_path.exists(), f"Matrix link removed: {matrix_link!r}" + else: + raise NotImplementedError(f"Unexpected matrix link: {matrix_link!r}") + bd_config = IniReader().read(cfg_path) assert len(bd_config) == 1 assert bd_config.get("0") == { From b8bc294214acca0aacecbbaecc98c10b4bfd7083 Mon Sep 17 00:00:00 2001 From: Laurent LAPORTE Date: Fri, 15 Mar 2024 09:44:43 +0100 Subject: [PATCH 3/5] test(commands): improve unit tests for `remove_area` command --- .../variantstudy/model/command/remove_area.py | 5 ++++- tests/variantstudy/assets/empty_study_810.zip | Bin 0 -> 62028 bytes tests/variantstudy/assets/empty_study_840.zip | Bin 0 -> 61082 bytes .../model/command/test_remove_area.py | 15 +++------------ 4 files changed, 7 insertions(+), 13 deletions(-) create mode 100644 tests/variantstudy/assets/empty_study_810.zip create mode 100644 tests/variantstudy/assets/empty_study_840.zip diff --git a/antarest/study/storage/variantstudy/model/command/remove_area.py b/antarest/study/storage/variantstudy/model/command/remove_area.py index a93c3bcd84..8703137a5a 100644 --- a/antarest/study/storage/variantstudy/model/command/remove_area.py +++ b/antarest/study/storage/variantstudy/model/command/remove_area.py @@ -93,6 +93,7 @@ def _remove_area_from_binding_constraints(self, study_data: FileStudy) -> None: Instead, we decide to remove the binding constraints that are related to the area. """ + # See also `RemoveArea` # noinspection SpellCheckingInspection url = ["input", "bindingconstraints", "bindingconstraints"] binding_constraints = study_data.tree.get(url) @@ -100,6 +101,7 @@ def _remove_area_from_binding_constraints(self, study_data: FileStudy) -> None: # Collect the binding constraints that are related to the area to remove # by searching the terms that contain the ID of the area. bc_to_remove = {} + lower_area_id = self.id.lower() for bc_index, bc in list(binding_constraints.items()): for key in bc: # Term IDs are in the form `area1%area2` or `area.cluster` @@ -110,7 +112,8 @@ def _remove_area_from_binding_constraints(self, study_data: FileStudy) -> None: else: # This key belongs to the set of properties, it isn't a term ID, so we skip it continue - if self.id.lower() in related_areas: + related_areas = [area.lower() for area in related_areas] + if lower_area_id in related_areas: bc_to_remove[bc_index] = binding_constraints.pop(bc_index) break diff --git a/tests/variantstudy/assets/empty_study_810.zip b/tests/variantstudy/assets/empty_study_810.zip new file mode 100644 index 0000000000000000000000000000000000000000..5d354af139c5f4a60623a83ec1fbecd634518312 GIT binary patch literal 62028 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 literal 0 HcmV?d00001 diff --git a/tests/variantstudy/assets/empty_study_840.zip b/tests/variantstudy/assets/empty_study_840.zip new file mode 100644 index 0000000000000000000000000000000000000000..6954ff5841715c14cbdb98d279304897fdbfccf8 GIT binary patch literal 61082 zcmbq)byS<{vVI_i6u06oErp_`I0T1MtcF`~w*(Jbw8fzhuEn7cG*E&= zaQLy$zW3~N_qp=N?_2Br@~vcM-kE2fnR#I)&((l;?g0USyMQ`3eC@#V++`~O0N{PQ z2yU0670kii#g)&_+3tRSE558OY0y%`0rABhwfd*x-nc5N1|eUC9|;*^wuxc`{cj*X zpxw;u)PzZab=n`Yk9-A6%t+;C>*|6O8W~($$&)Q7E=lcz4XwU@Z9sktwe+6M^Z)P$0O*9`Yu`HX&kOhV$CWWhskX*$}o@mKVA8EC}{ubyt$pTrJb{lg^M%H z9cpIh?Eb&S%>Tcs{kx?vo8oUu7A{Us|3%^NyDte|#Qf0E#jqW*W{|CKjKJ7;3i!j@ zN4M**9`K*C|7g2^kUolU@R24jw;Jy=)xq0anfeev-`ln2cYJ(31HGzBWOo4nGyDJD ztc9Zo%-st5ue|zQH=HFHRPjvpO9{#E|}KmUL8*42FnOPx&2V_c9H!h^r!4UGCrhQtj^0F zyY~2bxwh*-@6tO>b-rF6wPP&2ZYZmplyML@Vck2SgZ|*(2zlAy#JsWB{|g6j{@B9B z=3g`Zcc%W~s*8vF|9*DByA`^f>F&4V^esgZFKX2;b|7On&+;aC>;990U+^^I_ISb- z2zSgp=c@2Mde#F?pU+Ld>53lwD33I`uYW+ERk?-zB55TydS&4X;LOld0X-}+C_~b&JGpCI%UHR=<*f?=Ii69sXsuT53KEX#n!)TI+g<8rc(OQ z#VI9~Dyr3MiVyG_<5KSg{-bDbvAPQg*YwoZs#bsId^?Yf?*afc0EWL1{EvxeY36SB z2Q{=`;{kw;F@6?*EDvu20M;Fa!*;uW-27knew-H}Y&?8)1k6Cam5%lA5mZ@(rcZ(1 zg>qQerK;5mn`X0pKgx5{{3VaY^86vvgG1#-3PqL4ixb_G+M}VlR1NTNuU&{)X|`%d zXv;8dsnwijIWo{xaJ$Peury+cJR z#-~~NH98G$D#`~I_sq^|VA~U6pNn}}>kBL!pU0#ct~@E)AeoHvRMCA+Q6d0>9~5|8 z4zLlCag{yim1|(Ynbzj54#=Chf)UwGRtXr!WP_#I;JGTcMVQF>_kMRye$aEg_p)A4 zwJe(rOVm=IL#F3J4(^K@rm<2!`+-TeU=7bzE)P(3XUvL(j-kSUp}6IFi|I^S+Ucz$ z{7hl=TN&Se(AYwIf4@hzeZDLIyV2FQ@m_fTs{C8p?FH{FpcCNXhk}R8dWoSN8!r5g zAqC_gST}!?^(88Rr_&dn?@_;FmfXwpW<;~UGbW|@{`J?4!~IlcUWJ=rBokSdo%4ObdE8PcK58Ni3F&cvBJ;V3li%(eY zUGc~d8I$U37D`7wm+=wWJ`?oGlJ@GP*+EQ`R;-()C6(rfxN`pp3>m^A;f>(5!f%LY z8asNQOXQWkx$@k$xUY#IUR*9F@g*+}o&0oL{!{|JMAFwrRhQROL-!pTIyt$?ra+wc zz4NVp;jn(L_0V z|CU?y?6;vEc?xwn__twP6BUwFo@M`|o}6Lh$AYT+$-CUHotTHMB(Ab^^wz4I=K6*| zxjmY*dVe@hbf&C@n8#u5R>>2-yEm->1)#0iqViLNauq2cnVWY!Aa=R!K>@g^xcMb3u{m7npQkiBYQdg zYzH+6uWc&KQ{)nSH}&XxQ0IXd<(i$+i^{5rY{R{aSEt4S&F8S4%y*AV8}fLJa<2Vq zMW218D@CeZon=zKJD53rc%NDZE?7Ai=yIa%o}4JUW%9Y?h%D?Q`1A9LL;MoPk`afb zJln(9peAs;lB9LL-EgDgY)cM3qe-HAx9PT~i_YiT%#y*LbdT&Yod=E)Uu!%p+-sC3 zYYM-OZK8h@`nnkJ)>P)=Yu}xtemxhHl>a3lBcv}v!ggsz)8O(`ls*1@b=kZMXLQZc zs6%qO)Au1y%+-sdc|cf~35C*H+>b8;i>g0&qjPC#8rDC5t2zF*-8tw#U~)zAyim3a~8C{H`5u79d0k=RSkw{zi|dn20qETU_FF~c`K%HH(g zWv{>Uwa-kXb9vL70NbW_PPNqCV~=W;U$y2uwCCD~lqPMi8D_jbHYX2UUmNzxfpfWE zj4o6X3LJ%R%buShAvM3mIhoL!Y0xTQyK2==oYh?Il;v3JEKizuND_EvEUtMvOKlPT zBd;BEVlg#RDvme)Zn$yTN3=Nu-^I%mZ%*#0-^_1) zWh%u{Fw|+T!9)Kjx7?{OSF6?p_gBA1jl#z8%9OoG7pvnTWNy-IE^qd_I*{~=+fi$J z&U}?C^RmzBMDT2E_|6%3vs!ONi(TenkbE18$4~uOvJ9L*^6WG&E#cdZzKqE!Ss0yZ zY=Oq!eM5YUX=>r&Xp8JO9^C;rTPmki#X$axyjdr>*V(~1(g@BY`bZ8Br2+R}L7${b_KmQ@q&26cOqpVbb+PN#XK)%};> zUrAQC4$kg*=q0DN>8`hHWoKRFd~50{Cc5GJo*zA{)cU>RW?IyOxk6;J+QjfQSf|M| zY=p^d+&Lv@%5!XTlWO*mXm+ox*L^@oQfFIk!=g4tO;!g(r95%y9!$j za&c{=?uJR>mu3#mqUiaRj7F-9!Y~h$L`J(}Jgt+NfsA%%1u}T~A%}fc6i;Qd$ z^Ab6Ddk3-8fLgU#mZ~yx%30`!4o0doAMLxB+R;9#TZpH%g{6W>j$Za${sCWw^l#5j-IMF384Hp z+KFb|Ke2_>3~jW|9_%ufpcNKbWG;wjdqx#`CaZ1g#83v3T@(A);v`+N4fGDoCIfDF zwr2a`3_p58q>gl)_|ZvvLpYyBpg%C;yAfBD$y8EViUiqD?LKFfK_3t%ZnGopyWM)U zmB5PYw3XKTN2M+$|UbU2idsgMeB64Bb#q|V`mjt$F?D3{ue zC=<4W%>&u|=$cQ;!3SDWYRoqQM8iJe--t}FuYI#%3G{6bCX1W;b<$x1v1Z>yQ2iJC zjk#QxT*LMArclQebkc2}0;`wEhdx(Ko*pZxRiVF=(0)(wf?mF#eQcU`Be07#AdVvH z!CRI*LP?_wPA;qYSz_<*sET$WVcny;l9$yawzF(1H)^X{_CpS-MNZk9PGyvh8T?NC zs<|&hBrgT+3l&did1AAR2Vo1Q;{uny?W;^9&3!pn>Ej~nO*LoazbP?xk4?FoL2$HZ zX>EszP3C7UPS(l$w^>!XiYM5?GSA+3;4FfE*_LIx%9{#ke-BGP_`G7j0BFhTx*$Bx z?Me1tD3oK~e>E=frF~C4d=Et`Oz5X1RgyiPX|Gb~KJaSvm-D&vF3UKLeEJsK&-hs# z@&2XHn{Vhn%p@kX)Tsg~w)hN(#O?D4FTo$|O`a9hlicqy=o1(cCN7`oy8E$c=|VkV zfhY;l3EO#*E!sV7bWR83v#;1)>VFZppAlFEXA!2v+O&AlAPdha)=YW3eaX%u1^N+kHrAcacS{=wl6SAuLC}vn z8gu+Mc2CySL}nEvs&9xD=vSUBKLuBp9DGL3g0#06b7KsQFidTk z8g1o^;k?~AxJjqH#d2`Lwtwg4Oq2qIpP(ztzBiyR+h2G}lx_E(zokn=8O6nwiO>bM z^o0N%BmBlcI+zhI&EQ!p47Zy`XTX{^hfN$HoaIpr-=!S4mL2}t^;R}R|@gV~KR&N}F{IFcyo{+81HW=ERt;a=nfeF{uc> z_NwltJ69KHQh=t}k(n)Em8s*d2d__GT9a~R9Pv=B(0!j$3(?boe0N*IlU5?(3^7np znV~3Hu9>=NL$Q9nBDwK2+Svr;P2}IlA%ls2K2yI74ZZ*j@cCltl}(~E`sXTD)I7&Q zqrr8fbMKU$XdH}N9!vU3`5AY*Zu?>Tn;!;ro0Mg<_->5qJ#u#NEcSYYITS%}pjHNi z02k8$bmTT{r`D$XjLAGAY8ZfB$$yZ?r%pbsyTZSJUezxgXT;Bl0`HsKqCFQgkJ4IzVbl`8|>bo&d8LBI4`KF-tU*P`IhAyZSX1;TM~&Aq6%xEPYxp5PXN za+gZ$Zl7ly=!2c)30d&cYU6{~o~!N$M#{wK6K|mgpO(YSBB#!;^NXu~lZj1bypq1z zW+z3i;ZF36@~-R&qXvnbAn=QF|sW17Nd>Tl?k%ZM*p?K)!*4OI#+v>6>X&J@)=i%p1BlPc+WPFe>qtDh~Ua;Ok4^E=R)QG>k1k;V! zk)aqecXXFZ-E4jXo7o%9o^fMTnP&~&hkM6&c`2m$!y%p-7ooFNa?v8)jUFq@Y&*K! zylP}N`jL-8S+w{k6UH59{fRQOwyTep=Ev{<<5;I%3>D;=$*^`Iv}Tfnn9DqNEN3lM7iv-(MM1T(kfj=NrY zciQ>;QyC^tY3|ihrV`!Sj_js}>w4Js?2`$bx!M%hkXP5Hkpk0J;C`?6Xor9}#tVpb zx4sO<6XLn*QFBQn#_TauY0hF|%R8a9;P8^`vN(QEI-y5<_6z8!+7y3s=ILu>#Kt z2rjsLQGuDHoomgA)71P177RX`N8YN1&K4=iyiT98_@E#BTep|b0$zvq>sG1UB}HTW z38ZCi?FD4tJT0#9G#z8~|H<)70%K41CI9z8%1X|2y+oBc+o%_dmBwAaNER?m)POTsDn8Q2J5!jW7(q^ZpxBu4p(pf$H z8ZSV`loN$`^1LN=8hBC!t&1I9pZ$r4VSV5^PcgY@L0E57ETzk#g_%SlATrk}MzI3=O!o zxLEJ_S?wH{C$*?bZO>e!!-l0#0(YjnR5P|n;qQl)>25~D0&1n{(P5u8q!ZdO71^Gq0-xjffL`b1cxoE3(Z`-ewC$V-^XNL38_iOWcqEo3|90vWjLQ} z??olA)-#}Ag|RnTA#3rNh5Wj}s^UaD0aJv$qV}J}^log9 zBd58B6Lj^dE|d&O%BWpv1LClarj&f5JvDNDu*WKtHan!&J6*MUcvJ{%bjx4MO_t@+ z-Wg@)p@yCu27cGXE z{nH7reuww18$}425c$7^x#6ZxG{Dc`u2}ps0vwom5cPQUqAVM z30?Qe(nIO)y-Yx%^b+A=mIfE`c^9AZ=~g=z3#dAszd6jGPEzcDTxwV;oR6)4s@7uv zMyy+HcxPkuWp?6Zvwpxpz3=a^JaF;4xaVzI(Av|V)1y-j5-+s%yef23>?*s4e6C5M zj8Lh-MYq^o@vcLMM`IaNU8A3E2Z6snUAbi`956_J>M#ux=T2j7Z=mlI$6Z`84Q`&glSQu> zZ*5(RDWjh?TGfx1`IfO*Cq+*eO1?E-sCq#QziOdv$ld(1$=$W5TYp>QSK12})Y9o4 zFh7P-BMx&CgGMXQid}8ehGNs>6LXS-OKNj1B{cuUS&>l})32%*m9^cYYCVq$-c4_@ zVYJ?MGpz}~xZU)VR;3q`6mC3zz_0Do-&XNxTbE1kq|OD&ih13^R2`RjrCsyKoA+~A z1b6p9!p2IgKQ<$;D!QjF&UndpbnC}0Y$Z4{18->0ZLh?SHsO@#Jl-+j4I-eg{Ri+( zD;)PGaQ;fMl)8+)>`|Fe8QkNtis4xw#ZBg2*hQfG|iJ?N>ebxAD#E`=HpFYuad7q6}1UXJJ>Q&)7=a3dSiVrH#b-RlEF8M zMJieI(9ry&&7;BUJwM<@Ko~0BCcWpv$(H+Kg>a3aN!QG`YMJH2W?J;Y1#1lZ zq6>uaC!g^luO1QNO1Z_$lod?$kIxc06*G1~hOS{Rmwz{Y-cS9Rdt~l^3L? zITNLQxDgX9%YggQ*CGfGCmlMoJD)fXxLU_;31H{E>b~~5UlupO{rJaw{;$)E$Q;e^ zNlzo#_Q5ibf!9FnTTu}9(#%C?7tdp%k&tyL4$yyTKkM~Aj# zCc0+!P)VO|M|Jrz!bL-$c4PY^)>ASdT#>2VEGGz#OC<(@yyYTUeGJ^dODvVG75Ol_ z>)3k=uF7_?fBABmA%~czygUgrp?6Zx$U(Sg!eSM)Xzg|j@xjmH{1soo)^JtX3m;il zU|7aufH;I@?ju$Y4p2@o%G+Oo_Nq0u^1RFLvq(Wf5N;g9`0#i*&&H>#j#)_v;9a+@ zsTZN6Yd?U)Ox8@ARFVX8HIuzw!1TNiLD@{d_%nH+BFxvMhFtfMP0V9tRyqIMU=WK+-{{3+nUq;DuKv+2Sl7-zbRj z*QOFVYsQ&!9zxayeh|Q6 z6|^O%%H%pE`;7>A9|u@;pYUN1(9D!4RCL?x!<1I(Kpjd=wU2*=rK(N`=b}{?4a%ZH z`a(XW1_v{pV0#hD+8-bi>fh1mS$E&UkHp@^AwC35F2-VEv=XuyzkG_@-K6JSfjnh* z>R#rv#y#a-4nzPt2+>CavH=0R)bHGM5yt=&7AGMOv?It#!`suUBNZV8BtAe;EoDA& z546F#da1d-mDt><#4i4n|C?1F@hNUFmcBH^%k<7$-{%4X9sbhgnTzMuk69WX1(^#1 zW&{PMdQIZZyMqRevEWx>Cx(59Spnb{xh16P1J-HZw2i{`rVZ%Prp1rK*yvT3q5=^I zJ6&3!<}M*?zkk9b+*N6Lao~ZJKvJkba#6sw3kZyt28s_IB6x>@I=DTsBX1X_D?QH{ z!!Z2y-gX8K)X&5RHDk`WKknkbo~P$T04z5t=Eg(MED2>32tysPIEBp+txbZrOiL6Y zJT(@GH%kINUJ(Fn-#se}c;#hMv3*aDM$6S}d0LY-l>8cx_s9e%51&=`XaP>f;#-zS zJ(|AJenx;WrE90)qy1Kx0e!XLY_%#c8C*gy*&P}%R3 z9pN*`Q0X*IdM3w)K7{H9Xj#1cXA1&r;4@?0;%CNFepf&glx0@b69v2$4`Lz<6ri7n z4~-v&gFr4)d#gB-zR@`TZU_wi*gBBJV=Ea$~4rqkjCcAg1=GNqV_b518hb!;DD6Gu3<_qansjLHVoWNIubN?I^CdIgXY}gX?XZbceGEsxc(Ko= zNoqYhL(7-yXaYN!XHtM*9wQ@F?Fd*jxNx?b*_uA9C zU@2IOc-}8EkZ3f&5bxSIoOmC;w|mhXsD5&Sz&j?Bh$`+l|H=Kgjy}>{V3CT5vBOqr_v~;pf{rYqB?VY<_@xU$B_J z!`mzW<+2pR#9xnf;6Q%9Fl+q zTpR`6-x3L~8^`oWJw1J8K9oG97zz~8UGqpi)Xf_bATD_2f6JL+0VSTN%ZRH(@tngi z@=|-9SQDgXO&cl#_HtW%Z;hDfe?CYPvaL^g&EWSI_tW8UG=dV0-4x1 z0b@?1pdK0$vl-C<& zJ@YC)6{z=s81hw|bXm?JQ1yl`&%^?Y0ZHe(Kyza3a>`u4!y@(3*PPNX0%72b(_|O< zg{)URtRwJ3qLKgdnTGd>wu&;i=L(EhpoU29#0kt~{&85H;q?;dkn1#FRfTGkQty^= zse=3!i4eCyYZuU5WNf-H{Fl2xz zC}nDTUG5Rp>1bS?7{tRejihp6V4v1zIjEQM3%iH_Aa{^JPE)%VIF=M1>5VWNwlD97h69)C5NFm9-s9Y? zBX%S=icO<;-u+So4^8Q{1sXevX>tpy|L(+eij-B9NgTkM#PP+wf1+$JlT(MT%G=tRW~X2Gad+yg7&p~cUM|p(Lv_3 z!z1SbMuj2tBt=57dgA7vyi9ds$Q?=!*zE)Yzy}U;)<9A)mOR!<;XI)l)h3b9M`;Am zfRHY%vb5zhIyP^FMSe#{=d$1Xw-g;YFUqsfhAQEvfGN8nWtXvJ8q|fAP#3lg17zJQ z9Teccrb$G0Ev1!dE?BNHj5V~iW?%&ZosTByU)>dFx&9#^Ko7-@fg47i5T<`b+E+@bms{l;snw*+io$EPSH87EW>}Ns-%Xj8-hNoY- zVxfS3k&y5UpErkC;a>_J>uNJ3UgFi4ZK=>Y7dyl-s zA!x@s0+N$_d9{WRHP(CzMjTf{Asl_d=))d_$D3*G+>bPa1YZc0#E>JTpC`!QH0g;D z`-RS&lVajya5lw)r0sletz5y7%{0QgpKnF9(ca+qB<1H}bYGgflO%|7k?4vmqynWr#z8I_=)S}zDR(FyelQs>k#R7sUX-2Qkrs6^cwV}li9QD4MyK2)(_Dd%%5E& z^_=exPD5+o}YcnXja+H6ZRpY&84fieDG#hS{FXOepia>lHJ z8`nS;Fpc??*yfWk##2A05cBHQ<{u^(WmsHEJPSV~`(&B18p;PBRz-QgqWsk3g#o zJ*Zp&q$6Y#R_y~3N4nq+uGmnG3a!39+wqoNd@jECeh~B+6LXQRq+~1$m76Tuzb-nS z&asc`xmhjtF@d>3Q}BjHnFw|y-JaBK)jc?t8!e8pciI>g;;dWe@JHQWYt+1Kt%Nk* zm9p92B|oHu*9NQxXfb#{Zo_gs79n{IMMx*@jI%j(ve|r$%Bs3J4-(EhifxtT<2(`y z=@O25M^`~(qrUzY^lOD0PW2_^o}!ELqFwpt!0!e&SuQOow=3yD&cI>R3)x}4+(LaD z{?E3l$vVV-2O|fq-890v4?*{Cco_6%TCoP8K`=!g62CQ|HSVBAA$7e;>+g$1e=LXN zHybK#6%aYG_`2>$F&WxRJAZ*{vEi;jw_c@W2F80cYmoUJk;GUN&1We)w1(+gCEJg!SXGRSd*zUHrLL1Bv>?5Vt zfV}~-!eO@I(_YV)Om+fI6-nUv$gl+px+K2EsGEIraZ#u6s=jWqGOx(0%%WBgkg)in z8(GRw1z+@95Id(4??+%p;rM#+RDEb606gg2JVA{626oa2(BP^&=?PY= zgd&RZ46fQ5;>v2LaQuc+#e$f^P*mck4e}*sDFGc%T@ROHkTv-oX{}BwqT;nbTBVIp z*QIuvu47b6^^5i4Yj2x(jK=7=Yld*CaeKvW5Z+dW%&st5$3YR2mr#Uo#NDKNiu)L^ zdq&NGKwVPP_yU&HDJ-vibU9TxET%iYf#f7#%AJ5xyM z1_R$7-%=*)?HT|zpwAQ(_<(rYL(US+b!L(}o3M)e>+k{QV^GynP&Vy%!2nr*gyHzz z>;~KDi&{sFP*)>=tto(0-F_hI5lNzlrJkPFGh+yD*1$`UQ7nVY8Bz$^8h3hKLZ58) zOT5=cB$R6M^Ps@RC+;`mr`<3B>;h};_PpFnmsecH<$+5E7CO7Z0%5-KSlcTQ6TSE- z-uXf%=%$dlTr6!e&9AEhuG{*d+oOg3Oiy)3YuN{S17u7c4=;`_CLtp8z%r)xYyE*d zRMB0ft3tbd@fg(gaY+>nAxH##$%choy?87%8k)aqvHi-<`^+ zK$NgP!vK$n&eGlNU*F$?S?qB#TkMXKil2vWy!}cLtr^ez`$@SguM2^^=<0!A@8D{f+e<7y%tV7#YJP25Pj9+XuZ9p+8CB#VLZrmA)?biMqxzy`+h zQ!%2;Lo?LLL0ct^qU_CtMdPOyng<+I7oYkns3}(iH~RDqHC1_9`KM3(W<~C|GN9QH zdm3#c1&FGl-7WV??UB^zuK{eLMxUE|xs9kw(l0rl7*FdS9V5 zo|W}H0=1o!sShV*Ta?t|>y^^^u`7dRji)6+Vj(SqAs{JNKvGujHK|FAR4c6EtmA3t}E`_a^%o`todQ^<5`C!Oa$EJAD zAPRB9%0x=Q1M&r<=$Lxu@pQKlmyW(}jhaN!>C$dN9#~gzU-VwE8^HXCo0{k@?&5eA zvBMnRd6;5dEpr*V=q&Uxg_C;|V4R7kvvO^SUQo;IX+!}%jcJyHmdkLj?PVG*eUNK@ zb1?TEfD~yU=`fakFPSmE9$Ca8WD#(oZj(O7nHHb@mj7k#yYZW^$CHTH%d(zCWDW|0 zI2y5#DT%0DeUr4~MRjT-GOE!y?`6bKE_1mQAd=tO53$GqxMA)vF_}8Z(Iw7cl$d*O zq~duk;q zKB?@vTQH|d_LbId5hgflaFXFzjF;!!AdK zm(+{hpAvdTcN+V7jI=^T_T&}n$H673=22r2JO%_0Xwu0|7X9Ivhh!|%1|_lh(WtCz;f#Em## zRIw;O{_Lh%cYSfo6v4HNpLaOaf}!mjOH^drS9Sogf{S5Jl_EH&&LvRAPMf4&~e}rr=VZu@k2ngB%ZVM!|n*-}sy zH+v6kX>1N&lUpr5e7913xGIer;IWWrT(+ zakC@>L(A0e)G|wB7q&5o`Sj;46JKwN$G?<00Ee3>K3P8n7`|F=YF(5Hlp$D1U5~4~ zlzk60uTj1&`a>VcmFx}5pxIqN(`Ta6Guo6N5mFw07k)VFHW@v-09d5w3tAz6N&N|> zd;86vXQsKVO)DnDA|As9mKs4?vTC|SZqF~<{W&!v3#4M0H%i$rlEwD6=s$weC~l9| zO%~oGET%=umsm1F{H3H44R;6z838V?apPHnB}C+$_L(Of4nH!`(zu5_0f4AAz(;}P zcxjxYlmeu&N||F--Vq^Up%rTjl<01$SLulu4EA{GhD;U!l@rZL?Ja?#KgQRu4fub1 zkzDINYs5#glb_fyT;%mRG3>4Ycu69>F3y7F`MOJ(I5_yyBT!#K^ zN3n`Yge`_Nh=C?-cRTQ5{Z^?y`GREOfyzB#4e<+7;?WNt_ZLd((%9unupb<0l2^!H zmD0El;!An2#ir(ZP|d^RuwGHq5z^dPoHDCL0<{Rm#1+TG=XKS>_<6x}Wy$*IVHmKa zaFe0zc5>2L(58@h{c7JY^|0*D6B!T?wFrB5c4a;upMa_CrHI7K*qrA-TS_%kXK*z` z!~!8XKY&0g;>(k{*qB8ZHMC7Y>QdA^M9gBATEq>pU>15EzaA#kPymA&L@Q(2yyP3@ zJRZr~o4ntVeE&>z6>)+$+;|OHS^h@;`{a?QCQXJ+V!0@!6N?_GCr>ynwl|VjIfR|A zVCfy2L8Qa%?0Hh1M)9B{s6?x;6nibc-VI^`CpsBkio3kW$R93c3ti~QX1!&%X@wNKnR?rF(`~cXo1-hD&5!$Dnzd zIwv#4Zwd=Dfjutb<^nkjsQiue6q?VhD}_54lQMlyma3G0S|mxdN#bA%ffzs0Zhn!R zV|d2V#>~O=FrwoKcmDhn69Zc(7MORCuoy8Hn?0-^)!S6-cUp0Ivace)2E+vhh~16G z`Yk_Wj6KC7bS>D#oW)#1@D(pZk|?f~Yh}P|cU!0;)#l~-J+73u>-TsdVg3R^^#Ty< z@V&S7EAQVn;2d1zoews~LI)Uag8f@M)`{x`A-UKmMyOS- zClV+OY>+$pK7PB%d+B1xc4oYAECNve&#<4&tpmnC(T$oqzZ~*?+PbS))jp|h&e}cY z<@CaHT);aa+7x|cDt#`rwIDxL2@T{0?y?Il=bg^9vL39EFZWmOQ5+cT^6TjdNr_$; zoo-(yECvN@xgkqbBhEHR1tlk&NpEz+6{aP=Pu>y1b-cdo>u!5j-|N|_WBo`9_oXMj zf5=kIll8p|3=^ea-u@j%wu6L|jNtx(yPG6<$#)h%j+_a~e7g|@1>OOP?!7}M4|90?3p;P8_#A#iV&9f)1WZqy`RiV^$H)rwUW z0AGma%bb^aV6qWSx?ry(ozCt=E9r$0T_aCwD0oH0cB!$z;+H=!)gXR0e}+S#rz(m| z7#A&-%j3=6shJ&`K^LGI$c0n(3in0_8)W(xICmxBDnp73?v#u7gB(nq%(QYTQatJ} z6ilzn(yU{LAh#IUs=2h2pSwX0pihP>BXP|>>6V_eN1&*m8%tyb!WVUp7TzQ!wq6-Djlb`6ngKq$`bKJ-|#Y={w6iMEjKuCy)NPe z6)Iy6#laZ9Q+DI=Law%9UtTr3z;#|MC ziS5f0zQwe0DDkuMdZIy{6QJ3fV6BA7pMWK|NnYez7c!R(e{l^y6Z++1f2cxOI6uZN zI~;V#A#?3%KcXn1=x6%E8d$%8!HQTMPv`zx9~m(8P==K{%qH{qwzuycn6GtM`bUE3 zRd|ENOV+GIwvMvIReUAH^T%Ktzj?bCq&(Gq2%)m(8>=%}9^xm=d))}g-^@yA-0*Q`z(t1RNDY|4rDGZ}5=k#qTmn8RtRvU5g= zBjETugd$?uh=?_qi$h6cm=Q8(J=w=nh8BqD8V>*xZ{vXiI~J_MJ2y#{=$>={Ff^np z$6x|!6gp2M4dSfM^yTE;Na@tBAbdJ$?;IzEB_ej6V4k*i%Wi>dI)2>x7q}=0}me-WF!*c!GVwY^KdWK<8r<%h*SEHG0!^r3Wuvb zHO|qCv|@@BA-_}1g|D#=p_XZfgS()Z+A6r^Pp0t9ByQ)P zgjWJK#nCNAH&lcih}K%WF|+H7onJHpM)Ku|lhyq7u?w~_&UNu*1KBP4P3p%a{Z?+j zP6IY6J0OUP{(-~W-=)@uUJLBYJ1A|ExYg*c`%E$=%mOQ#CL&KJ7M+=1$wFEDF>`i{ ziWl1R!)n)<)4Z3^2Yv|I>FaoYVj~Gfyu)At8Zq*!e!@WmXtTWQ*kgww#9`TN$3V<+ zH$?`~l|5%8?3v^GF@b-b?hzL*_9m%W#btsRaY8C>;)-q|m^(nqZWWAC z_u0`imKs3!k_@JYv~*Cms8<}_Z?m~4%m(NcF&8QsVc?f&QCS%H;=CxT2h@Jbtl&p* z;Fud54A?xfAKz=~*l7rVNa6r<#DX$Mq_#^>zbg;(+~{nu=0wEZG{*mqnW00MFd&cY z=g*6N6bC*S*lYKPVl-&N?lz?#fKPQ!K;4#>T=A>30eF#lWPgo=JK)1B|8X6n_x*uC z3j?3xAQ%SxHE6tdn=&InPba;}4=mG~og5;Q%#FWSi^_okA0AoNKN7O!?Ya_bH^+m1DH#bF0clTzcytc9U?ys zn%~AD3SrNW)qcBiYN_QB4oc)to_E)j9FGpn`q>!xJPvqZV2wkY@;6}M-d~IXv6m<7 zydBs+Pv-~+i4!MEG-qIzEyw5QcFhdK>5*CafP*{W)+hDp69?0z`&}HOAGOB^;KA*w z@w8a}RJkG?$XELYX*--<^v!#$!e~*MoY0p;6jqBWkS^ihf&sA?$LhS@KCkSC#Q6SG z9AwXwG~LcAx$fv*LpOgUU>v}{i9>{WbBKOihbTTD_U0|i`qiaT`eqlG z<@e$c#bY3h4$%+pG<58_uI!;nSM9IHfY_^(b>D8CRc4v^`fE5yN~oAIAlu^e%kl@| zk9>L0_0QaE`I9(Ae<*jr$DSRo_4e+r>NiUlPLtVz1O3XHA!*uelk=QDyCi=w40z}e z1?Lc1ao|710KG#w4_>xyl&!Wp*^LAJs#q*#!2@&h-8{Rbzz<^p^ThxbhCgy^YakBM zUwjt4WA8kpno6QLo`g^WC>V+eVkkjcr0B8>=t6Yq;8Fxa37v?76j>qy0>K4WnjjFe z3J3})5C}*oiis!!L8?^gh)9v%Yc_6o&-Qk(#X9v&u)qQk_LV$ci+H;AKTQMDzhzIu-;h`S-^(HT@%I0KzQkA?n0}}{AMY!U z%12F8*)WJ8l8w%dxWe&wY#KZc!v*7f$4Dqj?J^b-?;=e=#e|ip4`M)xMbBF`>jC z-{+e6E{Evn+MeP2-+Z5IyrWnZ<0IyyAju&D_}cz19em$pMOpVb=yO}fd+#Ao@uIZW zbcu0B`)~is{E?rF3E%bw?=(Q4e4so(RHpQ-Bu+N_vWJL=w(2f<=uR-;j~GJ(@5;OK zb@{$B)aleW`q=zFWBrQFexCuqV$`=}^%cXt#e%>t6XKgoXC#}EE81O8OJvHHu5 z^`~N*?Y9~1M`9%PpNys6KEWS}&6s{9hU5B*y;WiG*X(V3!@`X|*51J`$jzpraid zP5^Z1qccSg%Ue@34+1>p@#;B*oQa8v>3|s_&M=hn=bhM%$>|x?QXnN~J%@aKP*Cr2 z_QSq{CGzu9A>VsKBuYi8dy|LTDIe{?XIHRMVMJgQNCbdn+a)(b=azuMI9!}9*DmUq zH%hiv9RPsl<{WQd&rSYdBBvUk?#5@Si5i!TC&|_&j9$hVmdGcobyj#ybhT!S&nU%E zeC>z&%KF_>RK43$QyuEpX75dtIr1sn{?gqsm0E6{Q@zbyl{3@pS9d_2Ct#FtS9PX|Hr**@4Bc7wi z%H;}0X{AwCzM*od%B>+?{m8y^&jSOel?(yX*n98q?BAY^;bOcH+^o+H=(AqZ-o;}7 zfR&#`1i|}W?y$vXD(ypHUak*LgY4!~@x&j*TyE|Us*h!3zKbxbVa^IGcxL6Aa%6M# zsZdkUCli^TTh+Z>wyMu#YS8gur0WjO{^i*_+OUlY`HpkF%YIg{Wcv`-^TN2WzQY`g za1q$`gxy#n9lf_9KGc&=Xt!4DF0h^#@p@C(WJDVP! z0mpX%vXvAzsk?)`7Z1_9gJ(SY*SIYJ9j9HAA5d&wkEHH(sk^GA61jM1w@bx!xR=t| zyo?)A(X9z>T_iEJQ8i$1b^h|b$4h?&ZKuxGGc9C);c;s6(UA=8Qt1C#I?Zdh*D4Z@Ah_+aetz~(c% z8MIp2skr=OfMR(;P?k;bv*jhqI;-K8BXb;-h6|nvB}tp$NV(%0xiqXPlUFU?ZdtXCE%`vXOBL)w(}_{pG`E4Js}cc-5zSLWcql$laJ))iN6 zb_iK_*Z*AN1l%aBAXXH3NX}A@bvJEL4_jYdatzd|<;eN43ejse>DjX;zdhrUzp=qc zd>1W!w%{Hh25>xVv7}EQMoH3_)z@MQUYF#SB;3gDa+G6*AhG<}SbW0Zoecw!85Uns zM`(ye0!b5aDjYrkqM^Kt9fELUKkN=}2zxS0*>I!#cY1CP&5(&5_bPky-9TxdrZ4B% zZ8roTUYsQai=(Z;9QRxE+(<=IYo-|iPzB$+e0{}!m9Goq0ZtJl=JMDWqAH}8du)RXrJn6oLebLvSBMT}(<$30A;RiP2LjqIR zkxdx6HmmJ~3rC0u;%|UI?*J?a>lYen9#0|NvUN2?!V$+KvxjqXiOB@aH8ELe;>Rc{ zGL3v%7kPp;85}WzMAYy>Ev84Bn(PPHKTPe}>KQm+Sh`Iv>FZ5D2<(cVoOIhBqHJHf z=l9C+vj*m@MzM{e35zOE6_#u?Mg%w_nAU%HL|;E1px;E0$VJF4tyRY2yq)&r$yz8T zIn!!B-B-hLcNK2#E{aPO-vw?^;Y3qjk@_fG(Vp!cHf5LS=pe1zP+;?u*vfUv7Akn` z%>AM8f)W7o6~f>&^A0%R;rVuRHg7dP#jD8m*b6m|Dut>x$FE47%23uol^?9k%7Ld% zq>Y!rW5y*RS>+iVOG^cD>z_M9yDEKGW-h$Q9~&V<`V|QJnGl?^-2UxG`sTgHQ5!o5 zVdQkJqe}~;)}jYJ$uo#<^DK7AShSKM>XXUq`^NUl`YNZL&7CNBwpls^@wYL)3if%N zBmtE8xZoHFrO5atew=4|ie@e``iZ)5FS*Ekn-+I^n6kQLC+t5~PucbUt5%MeW)j9t z;`b~vjXH{rm>pv-NtL1aiQFbZH`#ab&#}G2l22k5uz2TB&T3MyVUwgN#S#Q zJM3{}f+=*|BZZlkbM#Zvk)(8DtRc+0`YyS%#09JGvo9I$q-ws&Ybd*S2mIGW*9nxB%7Td zz9yX8zfzm7FR6Bc5>?=8M)f%BR>Vp9%YBT z3MO~prOD=0vkYQZ@kG}p)iEwP%}#t<=i>`pjjK6R*7SP=>jTL7z9YVDMm^Y9%Xd?^ z@N}xGK1q3+72sr~S9_;B=v)#pMw{TtbY-t44=HH;IV(EsQHa`b9MKD-?4<-&}NuMY~jv2KM%O0Q@Eb1AinM}&;P4Ea?JaO96GR;Kx zaofI+b2M&$5c`ZwD|_u5+08^sR&9O}x8NE$GThpM^0#$?$$l8}@_24#XhZM{D!AsF zMS7qMvWH3F{tQRz9{<;FbPj8)tS+)|HxKvx+*uDpWDvEGIn%$-F*lf@{d{jO?Vxks zCE1c`!&c*v3%TLUz+NSxP8NNR-J{Et)!Y7R&zM9!qIasTAEGChr03N}SgjZsApLG? zo??%BSb8y0E6&`CZu$|+30YI={YDj%B4wZZm3s#$S1@Y783W0}#(qj<97I{it8Og^ z8#@lssV;5hvADvEXmsi$(EI6aUH3m+Xf?V75cK_U&d=q=azNF2A^9{h$ZW7FOisQ& zPTTY>|M+b)9jZO9Jtb2BWd?0#_#Y*S@a;j`giHhmqW=&h76N+XA|Hcb(<9_)q3wm> z#rg@AaDa|Gj`PF$68hCO;Sm*my=^m{G#Lj|U;f*Qg&G|iApBn0z^r~tfrKRK##Tc# zGdZVBeixyx2H(!7a23bW$!|=1T@YQ8@NASexsd7Lq&82!cAOg`ecu(i&Nb^owdB&}r zF@zWdp>2SyGP?mTE_J4s6y8AwpXjo!%Bi8u*LP5jpzg=nsJ0YrO2Afw`a@OsJSV;@ zDH7_asEC)v(<+4~53Hd^^Vx`c+I25oM)c{LqFIN+=F&#YH9%WcnJp!sgGUa^>x1_6 znVT3&FFrqYrn|(`XXcUb6N&`bh%&w{-~5~^b?iYuW&V6|*6@6k%vHRAR$(S7nb|*` zHbHZCk@iCLS0~~Gy|T%Lrq-hJJeTw=*hwC`Nc(D2a}v{SbW%HC1gX%&ig6y{xd-9( z!?eUXy$MA{9QUy&u=T2@C+cTGX}l##)AZB)vxBL10748n^ho>-4+ZMJWX+b6F3aMA zdsK;2L}+4$A)!19Zr`CKOPqKvD_5KyYsC8aZtuk3Gq?IvzW1Ufgge-SE z9c1Z&+rw76c%Fq1+d4ce99BCvJeb5lUS$L4YUig!1`YU6Nd<7;G#olx#Zf)aID zWrA^toE9NSf(`UQot%(dJPC7&X^lKOOlvuy54x>sEz8;LCe|jFUZ%dP%*{hBO@bX0 zNV{&FU8qpY7>x94uX8H68yqY@xX{Mu2x_U^tXsmz_qn4bzBXKyd z%3HGPXweW`ldjWFBUf0}k7qIK?Il=Dmi95*O>etI$z;QJKt=@YG0<2UmC8tShTd76 z4s`N`wcK5V+c%qq7ZSV?`}?Sa7A>BBS2PnW9VzscI@ZFZN<& zUHR(xUK>p4OI<*1i&-`E4!Ly6)564q4if4Gxw+xsTiVXT|c=is1gNZf(aDoKzMw61vn%0G=>}=DNqJ&7u$mDgMNk8pKrU(zr zS;+N0K76nfH^31o66>0C0Yh?@=-aAew>xjq_+ybb4)DD&L14nbGW%JM9WWUvpW5%5 z-{a45GZBwEi+gf6Ex%k(%dCyvObqxb$qL$BYpdj9>@?qOiE4&pJjv@am5Xy{U3-N{trYChFOqq539?cQ1~VLS%p$59-L_vgzG zvRI_a-UJtqUL?zLht68-vmF-Z);roKc-d*?8d$@Iz(vR?F5S8Q5lGeAN;JeZd`)e_ z`dq(#{KL5^gWf3uP=u2c94h)eI|Qb{Khw>fVn2Am!aue*RM8yeIn=4{378bMMx|!0rzPLq;RbqY-VDaM*?KGb0ZM;LsLu^ z%HH6VdQ|xW4|~9Qw&;c=Mei3L?~!^q`9qQ1BQGZ2_;6Y~Fz#S&_NR;Eqw6wMW-XIl zjA^Fy2a5bvuAJ_0V(`YbM{JL#)~6~qD)7GkH$AikZYWLVp3p4iA}_n`zM+FUCVko6 zX?e=mYpr7Upbh!4p_RD|%=2e6bq0@ON@>*{4jc) zU<*XBcfIe;MsdsA}d+wBXL70kXv0fibjz(CVTk=2j16_$qUk(K6oX5KdEU&#+v*{L&g zt4-&~n2cSAI7EQWO+vTsrmBm><@yF^(=|9XEnmt;Hevqw zRVQD40n0v`0RG5IBd=wmxa{N;HsC@a+HV{$^?9czq1d*j_u)sU_R-nin@}+oV_Zfl zAO7(a0FT2+EYhm1n!MjvN*A=pIxdYAi>!Nmic~~Jg1j5}xmX|TC0@`zVSGzC+r~JH zrOw-VZOvAfdd8HcTW7bUwS{WHPJKy3(3MX~P*L0~hv`AlS^4{H&ruIEu?S(gYD<53 zhz$9pE)`*&`M^AJ=OmAkDhDTAq)uj`(PYR?#`473?8|85OyR><@p*S-p;9jq2BL_> zv;4=T5#`?F~9v@uto#Hg!vmY%NcA4=*C z$sj}qky5f_a_1sl^w0qN^SZr*Td?0 z1$Y~GcZ6gS%u7LX(IiVVlunw#E!-1J{|JZ%r51Z41l-oMq6eyK5J>fErJaQ3*4`#3 zhy%AbpI=w1Tmf7JG}f}^hOk%&oSa0$mGg=gFW2+(a5u_o3Z}?(6QexROJd^4C*5@= zlhlGG6r?zT^G~`rmDeQI@T1~P2-{{+L9<;ByoVEWh`A@PkRqNNd5tA!MgSwo(0b6_ z18wGc!yLi>ilrh{YDb>Pm3T+KdUUhIi%=HywfjIqi<)EDa1UR%iLJeY-LzzFOcNb6 zaT>i^@A+^KY~}`_ird*9AYRtbIm*huGxMo<9|n!sO?dEN5lbzKkmQR)UO50+$N01l zU6e^;yXFL{D91(h1s@B?tpGBr01?86wfR-Fm@{w1ZRoL12tWP|!31GzYNfF^Mbbo^ zOm871(mZw?B}Ugbsm1V6Hi8}JW{q>#HeVGCx!Hv&Dd1Lb1N*p%6o#}VugeJTESUB=a2%vk4m~X{ce4?{DJjv-*%HZP+^nZE5-u9Z zoB$jS$Vb0Vt67q$)A|56iXC3$%;*e%_KcfP4=vdDxe?@14u}RbPXvm(ycVo zAuZC~4FaNcmw-suoAGKRJH(2cRjMu2u zzn!n=EIzs$eklmp$@BHB2{qTS0AHfg&0^SKea|@a;vnN7mJRML(B8{Eca$&m?l9s;>u|KZK+a|0=PnCUOcDb(2d%RWF4x=bKpAi;P)8JOGZc%)u=`1_yJ&kADueo)AyCr)S;KB478<}98x_)WM|DVI$sf;HOX zS0a?TXcW`gcNJ-1P|oklgE>8rkA@oQ)yS=NE2r*)b4kCl$pWYK#?frwf5Pf6e7E06 zO|KWcLCPK_jQub$RJrne;p*BDczw2b%^2~ak9 zOANh7$Rah6Xb=dAJD&d|KtO5!jN9V5;Ggw1F-j*}_}diE3$2BnCx|w^XW?3z-ryiH zckDxvUeRi(#33bWpMX(D(=GqG%`o*}WEnXC%?ti+rA~OR8o_6(XZ7=)0QfeEiaDT!QbDN?91|YfoXArMBTk`HG?tYmA z#G5iahn;)n;x~o}dP#6F({DTd$_;i&68DoGt5QarjD=`DN=mh~VE1k1hR@MF7YwwG zZf*3L0H$?B6NMHvu&^weC4+|Plo^`sW{lUu+0^48{GQUa0NV}e~(NNJdObHjX7uW+7;s%i910|UxkWo zf+3nX9~-WT7=6%12jW2}H%frlaWzusWL2%rdWy78U)O-|yGG!~awl>Lr|$8k8gGrI z5c0=MRd<${eyS6QGo1>iB%`faq2KbITO3^=EBv=jAFQMXtBv zQFo1ZL`1z&Cc85&_e{stuuU$u=x>xcaTcLxDyL>H%x+p0%<&FAmxL>789+%zEp+O! znZ8YB)Uju?sPZ=SY$2e(ml20RdiDq{ZplP$QXQTbEy<667YIzBQ{!RFVdLU^{lp_~ z1$)JTH>@DV5Myhu127D|h0tJA(~dzLu~j7ia5@qYLAHV9z_ATsYm}pm39<0$-7R0f zvEO}aD{`@d&NH*7fAgDdfWh6d6jtpGKPqlU40dfHYY-Aujot-kd>F_7(|ayU0{`b5!^`<3s2Zv~E`Ce8M)hoFV^4-Cm`h+w#_`?_`$wmG}^*e`xDn&rEGZ!Vc9*Twu^`Zi5ViAFWyhNn-h+1`+h z1N_)Ojo|UZ%VuR~x|-39&fne#X3mR7kbOb^$_h1raJFigA_j=zsrg>a0xY-uP=t?5 zsA&UJuH)B-yye#?@u+>l#m3gj_CDV;)4hPJJX{fZ&{O5dO-1kC^BD7N-Ch+s%n^87 z5oA9pJ;pLN8)q^{8znSUCkh8TkW5nzb+lC<1QT^wJ(pnv$#9_b;iNp%f3jT6Y4-<{ z$3)#3R5nL)UAFl}tE&k<4^QMsYe&)Jgv7X3+-lX!4ws=bT)pjyI=E*dd?fahrtKP?oH1n=HUgBLZ*LK zW66RKL2NQLZ-w1M62GEVANdM)7_x4tNMCk#8}(TwfjZm9p#UO6Gh^$6B+euc?I!on^! zBdR&Lt)>gRs&+CUG20OvVuGrM<5is?Tq-BSp;i}QQq4bkP>*u#Pu5Y9VT#AvBuaYj zMH$S=Azjpt$F&EEw^L~M8@_kUzC+7htVDp3r;}Eu$)a;g9{lZWqa*G`PL=6}SN6I9 z9phxlYVh^H|IYQK`Q!L6ht5yEjPh8C3TRjic6@H=P{;K`DNhsf8G8PzJvHs+X$IX*DXCz<7hgNqS6c+w?Wu z>f4y4`@;2KHE5gRH_DN7YU2z1EqXD51nG-6iaSL|{#MPQ+uu%CJNz$IBp-}!XY=;( z9$$V=xjW=d*<>=%SzJ5GFD&BkLfr)gEt>dDXnExaU6m05z;v zC5`nWoNzNINnZ71z++F{H%%#GC5|rZ{1?5Yh}UvM4Hkd;V2`0Q-5t{77mqXJ8EHGZ z$kfo&Ha>Ye&Sd$&Lm!_-S_p82NC^=6yG@JVlE`57FTm9RedKAC-=5mtoxpDiD_0FR zh{?lFuO!h+*FtxJB(AERWHRVa7?fXtKPKzV>fNu?Xj^UV&mGX(A0^U=mU~=f`rn6i z^B*MSBn^q%e3)_0A#7tgiHA%ye)$G-$YB0_-5&>(tRe2rSrvc1Xva_S-1s?lk;`{J zYZi^=aS`95;>@sO&**ESbWCzvj&^_x87sET;DAYoFUFDS+t9Hh5Dd4fbzCkg07>!2 z$EP6lu4#{*^Xscti;(kAQBT5Q#AX5)b^p%-I4owwcwF~wE#vh@DH=0b=${2l%Z^Y)01>wotmOHqqcU%s{ZCF zp@DQFsv&N`41OZ|`&o(SVG)-B2OG#l=lR3?2s+8YkyHVn(A8DdN?Cl+lIQh{ez%8K zwdZ&H4;HDI=710#%EH~i>D>y2P-&amTjAu*cEi>OxtVh`FOI-i__>rXB3m9{3}tjh38#?cbO1U6RCkum6AwsZy~9a_twt$4=dhXJ$~uhvc{5-;!#QSaT& zUC`;os|zF540}KHNv0?9=^-@m&GpVRR54D*BqIEI-Gg%z^2~!g`ty4{avbtw*6p8DmqFc4 z_|iHl)ITFA7`ggcfeF>Y!=M=PnARbl%J4ND5l^va(<>s|RX|+F+`oJV6=K%l^IUB%eErYP$)(P99SN#gYrYC7GwtaUsTzOw?r@F|M^hu#%&A) zuP6_*g91^0pmx*A-#94ZKcAkBU;9Uhn4u9~Z~EU5)Ztj`ZW(+Jya9zJLi;IA$qsvbg~J*Cz9TiC5F;BJOjNU@oDYl z34LiK^F;jOMC8+-0|%h<7;REX1K$MA9vS9&zGW(3=UZy8ay z&1a+|!!Gn*?;ihHyBe?Iz@?`{+MRGt3E8)`<-aH_GsbuKA%4>gg6;ba1wv6w)I_8; z`ZT>s{S<-KayIasru7Elvo&|#n;o0=G${gLlxkWKeWnW3+svTmSEEf&aL$gXqI0M) z!9PrWnF4C|n@*MBG~g}3LWkQv_3u5|;$<)ln#L{*-j41|(8Yzpu>co@Kkl`TD$Vi2-N%4>p1pAmhG25XeE$>~FuH~|jub5yHA?-7 z{iW&Ym4nGqCrP`W-NM|%h42H;5T@U*HhlH2Tv$#iZPw`}Y?g~P*{*b^PDmu8$xx=0 z&9y1hZ9slYD_u951y_ce*;9E7_g530u z;chx|V5}JS$kWw)|CuV-jdZYxTW!U*Z{Q8>0|Iv?|2{^H);=M$7ds5mZ5a85;D79r zITI)T?Zx%`#l!ZT>BTQLbWTDobhvGqsn3!H&9ZQCDn8)llsneV#93-qR;zz-Sow1!a{J^~f9v!g%@%+m5>`LC~jaXDym%Sx@196uA<``i_YZEGp?6boEQ!2r$%eTi*mhyQ&=LNAD1! z?zSIV>r-Ef_n%K2l& z+=DRraZwjMfv?R0-6T?~%$M^oLlU30SdcNh?{{u-3l;1#cP(fq2sKkNiKtwAkP$*# zh{jSKuGwqUGVo|mOcB!PNaGvM9{XloX_s&_jFi#Rab)3IJzx)CxVd(m*XvL1JfzPSPkl$UI=_Wqf?V*kTHDPJX9Rp;% zZqHok;j=PVa{vpTx*`~@sc{h?O@P+nm+z^@!xGn(;^vn_z@SV;1^T)W8dZ>QudX1n%EzMA|g zySX-}o7o>ZqET5Gbe}Hm=^GaMuN;ABx?-?6YmG$t89gwV6SUr)Mq#xTUau>=B~o9f z_Ba$H;I&|=*f;qJ6Vmx%5dS7gkGgS_r__I?nqW=_MKUM{Mnt)Hkvy_+7KlY>2Ymme z6ak`ELTXd9>hQ#K!$FE=T*a|KZN=fnXM%!)YCQ7LEM{h_y}87i+dLz7$_9_`d>|R9 zn`pnSjC~H|O)e=7l9I~F08Y&3z67^0_PoE4r!pUXM6+7fWS;GGBlz*R8yBAY9=2-( zl%a)RjiblK&T?Egh_AP4Dq;deA7J^3#$pY~Ew_DhE4RGn>CNNv0Q87tRv9Dq`3wfO zR-gqI&)J^z=E$q;3)24j+MECNTC>JZr`Yn+Cj=5xTUPD`e&mf|0SF?Wg9yo=@@jJt zeh$3H0$;n51%Ju_(0=v^89J(cGWLppf4sd`k9?oH?FT>O@4^X!at;KSsG^|A**|hb zW<%rFwC*@C9G7} z2E1q_(mD{dG!Ng;!cL?k{<~jue|Y2eEN-Lr)vkq~+s_4|-aR&+sUNz}qE1T%xNdUN zXzN8uSxW@GCCKvTQ+VKIm4+MhQ5he~mo>Fg#e%L1CY4Yr6gJg>R14^cJM#Jy@~~R% z%`$E0?~WvPvucqm$|(^molVBfZH~0-Hs3R8j7&{7ZtoDozo^w}y!r@Af3VdCgdY6H z#EKoD#lA-zWM(!^AhwF%B`QCJ#}B4a`6yX}UagG808f4$FZ#i5r=F@m*}D8TN8Pe+ zQR?}Rl;NN3bRCP~s`CI7*7A@0rO68FtD;auT3;veDKW&;lgR4#zxzfLr{Q|X#-wsT zFms4KU`xD}0)!wM{ziiCj&**93o7kb65gFrFkaMfeL-CT=J^sTBTN{AQQ3%#vgf^- zx4cNmIB0KmjNLWJ%gJ40a55y`Z^p@W-7Cm5e~ibT`3C>gtDx9v-$8(;Y&m z&pDPT|1wier$3sXhm25>_OTnuup^nSVXgVX=G$GsTnTC3^+yqzEEI=K7=1z;P9dma|zDu_W!RG5pSI-tP z0rbB>asnhQZwmAc3RS^X)hXU!&l2$>d8Z?>#Sp1yTE)9k7h9dw%@;lIE2AGI7h#OE zxLOm7W**JgT{|LkZ60y|2-soM{s6J1lxP|nX+jKGe*4R#0KVjS=gxw(eYkKzWW^|! zaiA^@c<`f=VxDAb`b(Sc>f zGiD>b-6{Jmmu3_ME{xgHDX!LJ2I;x;oh@9Y%-;pA7^(Nl`VPA4T&4ELe-)r{I#C5X z>*qxp7uH93foXp!e{osmFDk!w^i+f&(HY98rpqh*ce)^_Mks;%epB`TzM3HM?`!P# zy!wshl`lS@Pw5xLb9};Zc?Mf)>gt+`Sfz^uVXt$d3Y$j%1! zq7P1YD=yLF^(>1C_0UZi-Ls8fMWkkF%EQ8XM}l8LR8;EE(=AzWX7YItja5_Qugo1g6#!pJ_h*mCamis7y>-o0&%Etu=XZ# z@uah<>a&{a9`YDJzsikX6T0EwvaNq8^!NK8>X>kdbMMF_9&iQp*rBOkDKGQ0eOHPY zy|B%U>2)?fUxk^N4)r6ejsd z^IVr(x;b{W6aVPuzV^_A7Hpj?;MkzxzO6{-QaVFi1WoS5@_-9v?OA?FkO2(62cW`I zF*<^JR6MAiL~Wn|Ei6G&JN&uwGWLVVAmc7>$Zx>&IlFmqA@PLIGlLG*cuJ~Qfhq&= zqCy5Gxbci;;%y9)wl?CYgox^KlYy>tS}|g?eL|{3nv;7Cx2O~m4<(tsKx?6X>mLv;?zV(KKwhJWVfps(He1GJV5mTU0 zpv?fLei%|lIj0bvD%6Q0cBB(7VQ<%2=oMnIQ69_!v}cdbdl>W2ZX1iqi?Po-h-9sDu8uEzvOTVAShR~eZDXoYqZsnObH#vwx&C^GZ9LSlRbwoym^~k8V?0?7siWM;+{Sg9>i`)7`8xo zGhi>OQkgE4>;{cU)a%O+92t!#`JP6>k_ z)Z}mXm)qsy6+~hvP6N8&y^g$g{?-6|w?UjG#*e`Ohj&I-&auCGP>gaAl%N9EI9qIe zPg8+eq|2?P#gZs$Owdyb$Hx@-Km|w2f!Rh;!T9A;=dGCkzr*(V%m^$3(p73b})hKQM)@qOh)xw5`~)r&==+W$HYHYd->F zMya(zAuO0dQA#Fk3`4c`;!V-C|6bIu<#OHl^wZa_6qP6RR8=E!OaXMdNtsVdN~@jw>|w#5<( z?tBDN=5b)r_A3>CGIboB99jz)^t~ca4uk+_NaBpn*j1UQee3`|DaV%++f#(x_MQwzT^$-uUahpbLQ~ZYxYt) z*gXpP*Hla?l~`ML8;dUGIwQ4+NvwSP9tSBv_1KIc9fVz^QMAnKfFC|FT5DWMz@o7r z9u(i(HL{<_Yv(l7m`h~W*uOd^S17CZYJ$s-d9diegu7i_t$ z3LhOgW9!8BX|#XvbbtK1-ksQ4;Kk8w>pg797uR0Ipm?V_26+8GF$a9ZjE%f1C9{Ai zv>RTrC7Zt=GGP$Io{%41fhit9iFf$KkhAq)(yK8qZrp)jfEHjTg!Kgn$oExs!aRvCNKK2Bwj=nbx#9K`Ob46Z1Xc(G!Gh+_rQUOD@*I<=iu z=PTC3;7>j>_l(+e3-rmif){m>d7U3f5eWFrC+O?Z(6C?^7oW?oYv-9dlwoER z_+wu(fXq5;2GQV++nc6cz5LGcjS;EK^IRYg07F2$zeP{7JONAVC&V(pze0x6rPwLAlo~h~b*oHgj zZ$H;`A}Sv$!V?pn-a1tp7!))1RnZy>oaC)c%t$|e*M#bbO59{9DQ+WXyK3h;T#k*k1O50;)L-BIvuL)eIu@8DwOn)|RyKX#4 z?Y;d7iV7NUc0bIUQyz7`P(+H3Ek%@Tr?FF-4AfSY=9I)7C}|(*CORfgQb4uAw2h*) zNgABW+D_Xh$t-PvzZaesESo$y?1{)uI&17VJCDr~ljZK@^Y2w7{+;)!efKnO!@qj; zE>oj7bKT}CW3ri!Rb=ZTN45pF(j05bikrhhOqmRnG+AD$%3xIumgz*b8*Vyr%|ImKbNklF znOM=^P~#}BgedV9T|mpS3G(_;W7kc{bT}H;^}4H?4=4As1FiMZqqAMZaj#w zB6dI!cbpX%`|LkEw;WCSH9vEVDl-a+#pY&Q4SAoSbDmX+g+)(I$ROFgZR_|1p=Xv zVT&UM=Z1uFtsZ$>e5?+febfG7{msRN)dvER; z$J0@jne}2r8!}tCa&t+nATpD;I|XgJFV%q5)vxJwFx{Zh`Pl|C}s0u z!z{KiB|yvdDh4!Hs0r2y*)^WJ!jiPnlCK5^w1%$@L>h`sC1QY-3U*W?<~?3vN0VTH;_FaRAJYyP{Qi((zp%Y!9k|KtkT8r-wjZ>5O;63x1N)2 zB&OjOm#dCzouZ0b^=P#F+p^v(Ini60zX;ZPHM1s{QL0IR1ThzCCt&ETw!Aawer%cR27O7{dUqM618 z(7QRl|2RG!&_N8`Q`7Uj4G^Ngt`8kIB>%nu2|oyR+gGJjWp(H2V4bs7W6A2(>aQeM zSJhn9!Ef$`{B_!PrRa`OgolIrSh5UQw4T4DYGi3M$bAL6l%6s#7ls_--1^s0qDdnh z-w_Va7(WsELjoR)B_)a-mYWvV=ao>7(=5aN9UpK3+I)!1kNo*42%V(Om z*?l{%!?V5t<#}&YTOJf|eVWoGgk=@Sl!mwP^W)9B!vKeV-_}oeWZ?7hWbYM+T0L@= zD}VH%ay#sYj+!!`$K6fE^U#Z97sn%85d#3~C7D)hGgg1Wmi2m!D2sduJF@+>B;^ql zA>GD?{PByz0w8ZyLVsUHn1_6>MDYB#-Xw!i_9NFhZ=fjDl^gUM+i&eDtq}!=F?zzj zt?H4SH8VrbSagigMcB(31Wyu|emI1`9%ARBgtq*m7Q|ZSO^6N&){q0!=EnWIkF#K2 zT7!p02Au*NFm~NulrbH-dARI+e3KE~L+{@9liY5U)oO|ahRTS}{^h`xK?wnVh5B#v zTV!}=EC!DKQOwdeOl*2t=eg%G-M5YpF2}U*&m0#?#a9=ePH_`f{PXG2)ilui@6LbL zjvij}^O;xm{~9LjdE!_aSwTm-_uzPkXI&-bAUGC7O-gVr^a(y=teQ{We7BJx89Dhi zR=@q6_iH@;xAphS9(8GEl~`HLhPvgzXu+EDKCS`PKC=Sv*-nX%KS-uH9!Z#M8uy7U zHzMQZ}WB2h1xBhw=Y8i+c%DXDZ0c56txqebj9G1U1 zzpX}L(s5BHf|o{ul`ruZwkNmfMD&{GqWRG3#J^pH7GDVO6kEGSuIc8uC9^DDQU7jC zZe>@O0|y^wEnzvh=N2?fKj^(>-YZsIXL_tw(N|B9tt09ghp&GO!&wrho~^rYQg|Wb z!V2S%qT~HmevfBuwz=5G`7?r0v*QPjiMf;Xlh3j`p7n*C3E#uA$=j%7zL+H1SKs4R zjnPy|cvSC0Q+9L3yvY;BRj6CepJ zGQAm84q8d9;Q@bef;f4$d)@)j(BO;@)BUeEmW-*}7#KINu;*A@X01XCp4`?`1b?r> zGeAgXDuDk}!&S#M*|p(qj2PXG3>e)=hm4evR1oQI1PMiQlpqZfioQA|q!~jRq@+Q* z8v$vg8@}iLe&5HB?Z53jJI{H}x$gUlJc9N}?Qg}YPsdB*`DKhsibHt47*NSan-P`j z)g9jXyw^SHfHg?8ONYKs&2(_cF*GBa*hK&E!N)sYFc7+j9=2?qQ>|Cb(2(`Z0GDX2Q^8C zfLEoB)y!u)A4*6DgG!%LS`UXhwuvnjQB!Tafv)-xkNj!%qf6%wv(2$3Y=KZ>c=mAx z9v%WWWdi-fDd{+%T(_ndFsY5UyLWIZK6Ly2@LmYPuXUa4c6PP5hAlww=V9^t;AJ&X z3@wp^-@r_c7UXN08XiI9uB7arK^lQu*m9XANuV#i072!i)HJ0DG3_&Ge0^{2qhGcN z7q#kmz%3vId+$-444kig+k@hLF(XPYl-)S?&qa>_eQD86i__p+(H5+J^Y51rRM3y~ zVBx`B;EM@E89Z=|o!#+4mv#BG$Iqpa1WVG+KW-%Rn@>Cd#T0qh_(m@P!3~D2QIUqg zD*5Z=IB<|If&`ok3vx;Y^5MLpy(viJi4uOQ!_CqsP83NE+~CsSCvdQ!5T_N%)7O;f z&basfDdq<0nn+v(&8HOs8+wnuXM1+&^wdAC^L13G^?t+aOoT$6)IhX=L~Zgz2(fpz z>R_Db_60fuhyG^A$y(=88Up;cL%A!-Zc8zQ>YveXO7mHcda91%d`6Sfq&dB9*r7WA z!gEf+K4p*5PUqSEW8TzCjnF5QLvq^2v~>WJSNtorm2=9Qri+pV39JSScD_l6@@#0C zR(<~MBOl@LfRv)|Z$)~+X~IuIh7a!MC+{J@FMWGCn$SzH&y%*;z>auZZZ2@i2)PLoDu4oCmF+ZgO&ISEiPYR*&43k86Fu;rv zTs+BO9a_kFTaxSkqtgB`KFq-M_Q>3U%C2BO=>DC*^Ls|8&t=#EV3)(D|LcS=`Q7@N zzH1{XH1Q1D`x6Rkscvl}KN4<=Ec6Wi7^>G=YBcj0IiBv6BhLoNv}NgpXn$P)ex%!S zk2!wfCi6vaQh^qvB)23!=iew1Q2+v!*1;pc1|P6Hk}>}rbMv&`3iJd7z-+$x-+%(x zGf?@pF@pu?!iFMD1R2+dheK}zKX7|R46?C?!$p60jCFz3&v$%$lR*g0AF%@XEd-iY zmv#cCI7p?fUa8vv%^zfLHvv<#)$GTO8?PNLUN2K+*Ypi$cF^bzQ&2oL{OMxJ=c9@c zdGMxUP$6u3Uw)uD(R|&3OY0(eX-d?*&I_#aYB8bpT{;c4BG!xz1| zWHOQU$*_z2{V)whN^I@5P5Wr>71^7Yd!Qi2*Cgg6G@5KqFWB@Z32VKtWw0hNI(qAr zhS0-FyF92=yzg7W2n|Jb?1+;0j}n1lbN*XZcc$fZegdFfR1=)ZD~hKd8y2_+W?_6} zDYiwLS>zTbpqZN+lr@kc0|s=6Ebi!PKmJDk$AHqKFEhd+?Bc;pS7K{}7scs0{Z55w zvcF#*%Iuq4QLNWU_3}T>C_sNk1VORA*>A+zE7HXHe?d}Y7WU^UdM`X#mo?){Ai9)| zx#LWXK##Z8Dc*4jDc)H4kKVry=vyJmcIW5a|8;Tn9@wF;9jR30s<~MedzQqenw|ka z?$Pb1+uz!vAd53_Ohc*5gHaD!;ZfiH_d(=q*m?F%?#^?uX-it1j-In+_gOr*0Y;I* zeMqK@bc>eX^!rr0+`QS?W=ta4jI;I5TUHg1NudYKJhL2MslAxL>wRiT_Y9({6mE>P zE`*u-u!ST@mj@QE!#Fq0f4Ey#_tR@Mkve(PD6hq7!h{}w&<=g_$@N2=6SjJ6+Y1D; zen#+7=hJPDV(T^8!nz9I`q@)vLXNfM1hK9v^ZfFhUXtb&=eA0|Q)-i&zvK`5itagIE9 zyQ02*d0UMx4lf4E$?9^-YR-Ej&p)UPnW?hlqFdr@>RF1D?@R%ZAA z7IvAEpjG4IrX)j8&iWZ1DV(r;PYShPcq~f1{74r?IQ#h|3L4p1*#C~F9?mcPoNwP` z>;>lUUf}!CKk!$#MTN%gV|@U?x`tX|=c$C6%DmIpl2PH>Re^F33aB+SLgVdI@H)uv z`j0mKBmRuOPw?l~5#c5d3t;)_7dQFOpF9yL17molU7*-5_s@^@Z5;`G!XiAsA!ulp zKf|{{y*~LeX$$>WP|(L?U8a+NkKTVDd@3VwPdX+H zpn_X|v0&ar=jfOKR;{0YL%?=$v>3=znxyO1*0X(^Z*7y5=)FQt5Ss~(Y@_pn`N7lc z^bOvAH+kXufjdko`uonuU%w$|IU8pacXK;%m! zs2=t-XtuUr(0ej7M1i)5T7!q7zXvMRi|0cR>QnbW6}WqVl*W@&U^DD3r-~a-?0?$R#e_P1rNaj_6f4=7Z1o{D|2fs~Z1E^b9 z*f*BoCD}H&h5N4-T94o9wKmh^+T^gjjosU}_yMt%EAX5Hb*{4f6JMJqHaVRtBf?`* zP$3)~oR>tqXFL1%o0HdO-5<`>vQGp`L*{K$9yKWSj}51|PhqosoJ8le(`Ox4gR)3X zfD5~UgEc3r$t`~n8;hT$WfFjAJccS>n7n(Zxy{8_e!s<16W%mua*pa=NY_A>r_r|lYt`j3tLj5Hx& zp(d${Lb4T1wEsB0P)q-mlNd*41Db#tG~5PAyG>Xh3`kWR-vXjcW6j}9 zFfG(1U_bcQ?883y>O4_PzmIUsJ%-k$Un~Soq$|qZ+p(@5FwpQA7+qq(tH3HfVozL$$cWm@gvY;&4tX7`em3*yBWr6{{` z=}!itVr_}xHUwf~BNp4N+Q+EikyxZuq<-U zYGg|bp=F68wGuV6N5LNAB8QuLIn^FavkVTqMYd!N2qPcle+dOwk!;(H zZx4IHSu^W-_|lCuKpH*zRh&O-M3X^ag1jKdh`+-6QhNV%t}M5k$a@q26GwL;5cm7o z@s;6gg8Hs4Htpw*tiwx1k09OMGb3tI@%>-%N^3hxbRl9$P!QcbaH*yVp`VLCR?xE{ zi*fJz8EOMhQBh%UD2xC^W26aEeyxU;L7-|Q0jSu(DE1Ucb)h}C28T5`5OGbEKRg;@ z6JL~RQ7kj%)R-EypCu@JWCJM70rxfQ&~yGoK`0)sxqcrrJ52R3OP0diqMB0+uy_j) zMe2(zMoY=Xolg5WhxkIYxpfcc6M_^I{GRM8t#NiD&FM~u;BDs}JmBa^?aI_@aTq~U z|4IuSo>BKtorbl2@R`!MAHa42dk~4eKYd9iO;}o+q95U}#9d~(zIG$PnXM4kEgEOa zmIepMe0%cjpR%Q+tBj~tKo$A2oy7Te$pbKY_H!H>bspYm0XYL#tk(AXEJ2R&1wYNn zdYrck4!!azQ9%kTVsH?yFo$cHNg8W3TU#Q&rz7pIcIME7K+@9tPD6FR3^v!B7q#D> z6rZq$lDB;L6e%ZpFPM@AJI{>(ftzErlO2|t2`_xrHLFYc+QZVeisIP}X)?b+3vk6A zkeWA6S#W~nR}>_omR2~Y0BzYe*thmL%5x9KlUO=e>P9(4iVr$an$9Nr^22tQbSK3o zUjEWW{N;Y<%B*M3&G5s<^oA@|Ycl}61EdMziQwcxS&hTP*(SEC-{){VTAN2phbVF+ z0Rb+-S8Hyt@HY|YQPBA=Enu-fzhC*Uy8w{y0vd=gDXFe+sqG@Lpi_r}$7z6pyW!=( zd|b6z3XA<>MGvvhcSOtD+AB!1o0-GSv~d^On?G%T>a|ZDR)DhW&2Yunj~n#^*64Td z2m&N#l3V3Mm`^WHD23Aag3_VZUhboP{6H>DPtNFNPrrs50;Chia0%8RZ+X^$XQz1j z%=g!4wWB2^07R^6$Cj@QE%jO{!T|S)uQlit*f?92Od@d533$#4{U2Nu>4L8$cH6*@D+A7CMo~7Uj*CmsdqwXT>=U#YtaZoeDVD z^hv6cNV#lFfG$c~?JpQHwecah8?K~Y5In;WqDp!e0^A@w3ch<0zh+G>g)Xc@n2wDj zEXdLzFT$sjey|QqKeKQ849bsyrcqSRWyouyEM`1|d7sj)u&@R;Iv4gT%*dY6WQ&n0 zmd8?P8q0|E(cV5zc8pUX(?4O;dJ2y`A-0Keo)kKm7VU9bIn+Li@W1FdatqNkWyY?s zt7^}>SEb9aSq~!Zsh2YZo%d(sCgxvpI9H{VmSXWsQNyJH+u0j$aSmuLcy4+o^U|6e z&8{76Wz){qFRZ8wWxd(y{WK^~W&M`26?MX-J5SHw2+RJvDcTh5U56}^Xx#6T@w z-OGN)VFQJS_y?yTg(%-3%cFO;#+Mmg$Wdiw>~mE_x${B;l^x5DsVM2@LIgZ7-JJn< zgm~E>zqDbmZA#&cedY(r<_V2`!~<`ISoqm$b+Z`*Ha@uHgQN4_+}nezeYHk!7GDpG zDgJ12+{@s|-&F6f{zhYNniRWVs-}Kve`TYpMf7Y96y+;{;q?2-`7uTUq=5IS9p7QE zfAmC(mO_!?8;&`xxQd8e`9v_bz++HdUy4+J1A3(i@K}ScsY3ZV8;RxcC#zVrd z!B@!6E~Uf578Jr->m%QvwMjLEJTgqANkknB)!V)xQryK zW;M3%XF~D2^AQztFLOi{27Xi|Bf2jYy8V#9-=AD25De5k`+hzaX-JrruhC%f{@x-U zT4+dC#Be$z`Ocjy%=XQaCghX?L~vianP82i_ovt!OJ`~PlLeZc>fSlh+ySay!doO; zZ1SgI+~Lm(1o`<>J|~itmoeo#8aIwG*`H^PH8Cg9rW>8^mW91xFFw`lM+y9H4@J7f zjql4+yC$6As>~YBq(%}^!FUEo(=6nba%qj|wJfO6oR?dt zs^0?v7j^#t%@v#6Ms>nENgtpResfPf_Rg7#7TtGQGYSee@FZs+JXxzxSHz58I#Ml9 z(SI%E6?dx6sk0+3t&_3G(hV9vgB!6xmBL}nzd)f@uJDks^6ILasd@-(YJ43H4{nwI2^w$r|k=i zc(K)_7-{WJd~hf>G7bbv7I#lbC7%SKZyuO&>QRE{zHV3I8p_WmB`b(ie>WwV@lgH! zJEr;(dsddRxI#kbG4+37E*<#YXX$+jA%mgf6jzb0VBYs7HC7DHsn#q1kVUAn8Glju>3jKu zrOQfo=J3av?aHpF%FOnQU3qdKsv}$%fBC#tj1!(LOTF-6)gwuxdF^VJ<}s(160ceY z0uCFyuFJY^8Mfmia+WorUXc`Djb&#^hQckhD@Yuk(ZT3vGRB3qC{{dJLmI_dD?1Vw zV?uru;6Kx~wPHiFF!JffA_+8#qjpB}D5dcTBT<$OZmUypbQUfE;< zuYg(&KeaOHv}@*RT05)R8?K~sE~cE{Ei``cDEIsZBs^}YMC{JoO#%z%yO+MW1~F{X^MF)J}mA-&jj*}pY@ zqt`2oxXE-z?k{v#FJ(d=g^lcgM|1^x8zJR#Q%kb&K)JB)3|^>@+?Gd@2aytJW;^?C zC2mVaeU5fH^Ev;xdyaB_o3M`03$WJscOD$1+_U4zLm9KYi+r8Bx&Co!;^deAyM3wwu7k>YK4g)R-NzeYk8#;Z6U8Xf5p~Q&u

C1@h~wX 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 fW&eS{`c?n#O0iLMBLKjUx^= 830: + if empty_study.config.version >= 830: empty_study_cfg["input"]["areas"][area_id]["adequacy_patch"] = { "adequacy-patch": {"adequacy-patch-mode": "outside"} } @@ -84,7 +76,6 @@ def test_apply( area_name2 = "Area2" area_id2 = transform_name_to_id(area_name2) - empty_study.config.version = version create_area_command: ICommand = CreateArea.parse_obj( { "area_name": area_name2, From 93e1e694bf1d0c51e5cbb6478eb8c18110e5c09a Mon Sep 17 00:00:00 2001 From: Laurent LAPORTE Date: Fri, 15 Mar 2024 17:08:59 +0100 Subject: [PATCH 4/5] feat(commands): binding constraint commands can accept matrix names in camelCase --- .../variantstudy/model/command/create_binding_constraint.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/antarest/study/storage/variantstudy/model/command/create_binding_constraint.py b/antarest/study/storage/variantstudy/model/command/create_binding_constraint.py index 495b48e557..75fe563911 100644 --- a/antarest/study/storage/variantstudy/model/command/create_binding_constraint.py +++ b/antarest/study/storage/variantstudy/model/command/create_binding_constraint.py @@ -84,7 +84,7 @@ class BindingConstraintProperties870(BindingConstraintProperties): group: t.Optional[str] = None -class BindingConstraintMatrices(BaseModel, extra=Extra.forbid): +class BindingConstraintMatrices(BaseModel, extra=Extra.forbid, allow_population_by_field_name=True): """ Class used to store the matrices of a binding constraint. """ @@ -96,14 +96,17 @@ class BindingConstraintMatrices(BaseModel, extra=Extra.forbid): less_term_matrix: t.Optional[t.Union[MatrixType, str]] = Field( None, description="less term matrix for v8.7+ studies", + alias="lessTermMatrix", ) greater_term_matrix: t.Optional[t.Union[MatrixType, str]] = Field( None, description="greater term matrix for v8.7+ studies", + alias="greaterTermMatrix", ) equal_term_matrix: t.Optional[t.Union[MatrixType, str]] = Field( None, description="equal term matrix for v8.7+ studies", + alias="equalTermMatrix", ) @root_validator(pre=True) From fc31eb5a3fdb39cfed23891d6f25d53bd424dd2c Mon Sep 17 00:00:00 2001 From: Laurent LAPORTE Date: Fri, 15 Mar 2024 17:10:07 +0100 Subject: [PATCH 5/5] test(api-thermals): add case with a BC referencing a thermal --- .../study_data_blueprint/test_thermal.py | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tests/integration/study_data_blueprint/test_thermal.py b/tests/integration/study_data_blueprint/test_thermal.py index a44d7058ac..a164b58d8f 100644 --- a/tests/integration/study_data_blueprint/test_thermal.py +++ b/tests/integration/study_data_blueprint/test_thermal.py @@ -530,6 +530,29 @@ def test_lifecycle( # THERMAL CLUSTER DELETION # ============================= + # Here is a Binding Constraint that references the thermal cluster.: + bc_obj = { + "name": "Binding Constraint", + "enabled": True, + "time_step": "hourly", + "operator": "less", + "coeffs": {f"{area_id}.{fr_gas_conventional_id.lower()}": [2.0, 4]}, + "comments": "New API", + } + matrix = np.random.randint(0, 1000, size=(8784, 3)) + if version < 870: + bc_obj["values"] = matrix.tolist() + else: + bc_obj["lessTermMatrix"] = matrix.tolist() + + # noinspection SpellCheckingInspection + res = client.post( + f"/v1/studies/{study_id}/bindingconstraints", + json=bc_obj, + headers={"Authorization": f"Bearer {user_access_token}"}, + ) + assert res.status_code in {200, 201}, res.json() + # To delete a thermal cluster, we need to provide its ID. res = client.request( "DELETE", @@ -540,6 +563,15 @@ def test_lifecycle( assert res.status_code == 204, res.json() assert res.text in {"", "null"} # Old FastAPI versions return 'null'. + # When we delete a thermal cluster, we should also delete the binding constraints that reference it. + # noinspection SpellCheckingInspection + res = client.get( + f"/v1/studies/{study_id}/bindingconstraints", + headers={"Authorization": f"Bearer {user_access_token}"}, + ) + assert res.status_code == 200, res.json() + assert len(res.json()) == 0 + # If the thermal cluster list is empty, the deletion should be a no-op. res = client.request( "DELETE",