From 61b22c2866836fe59472ff15b0e50c7f657d1a93 Mon Sep 17 00:00:00 2001 From: Martin Vanbrabant <6448245+mvanbrab@users.noreply.github.com> Date: Thu, 10 Apr 2025 13:53:41 +0200 Subject: [PATCH 01/24] Updated onto-deside configuration 2025-04-09 (#203) --- CHANGELOG.md | 2 + main/configs/onto-deside/config.json | 216 +++++++++++++++++- .../queries/variableQueries/x-batch_labels.rq | 12 + .../x-construction_building_labels.rq | 9 + .../variableQueries/x-element_labels.rq | 12 + .../queries/variableQueries/x-matter.rq | 19 ++ .../variableQueries/x-product_labels.rq | 12 + .../x-product_with_component_labels.rq | 14 ++ ...-product_with_disassembly_method_labels.rq | 15 ++ .../variableQueries/x-product_with_matter.rq | 23 ++ .../x-product_with_matter_labels.rq | 14 ++ .../x-textile_product_labels.rq | 9 + .../onto-deside/public/queries/x-actors.rq | 19 ++ .../queries/x-construction_buildings.rq | 29 +++ .../queries/x-construction_end_of_life.rq | 71 ++++++ .../x-construction_end_of_life_costs.rq | 58 +++++ .../x-construction_matter_composition.rq | 28 +++ .../x-construction_product_composition.rq | 28 +++ .../public/queries/x-construction_products.rq | 54 +++++ .../public/queries/x-details-per-batch.rq | 32 +++ .../public/queries/x-details-per-product.rq | 33 +++ .../x-details-per-variable_previous.rq | 23 ++ .../queries/x-electronics_products-coc.rq | 20 ++ .../public/queries/x-electronics_products.rq | 48 ++++ .../queries/x-extended details per product.rq | 31 +++ .../public/queries/x-marketplace-filtered.rq | 33 +++ .../public/queries/x-marketplace-images.rq | 29 +++ .../public/queries/x-marketplace-matter.rq | 34 +++ .../public/queries/x-marketplace-offers.rq | 40 ++++ .../public/queries/x-marketplace.rq | 74 ++++++ .../public/queries/x-product_composition.rq | 28 +++ .../public/queries/x-product_disassembly.rq | 25 ++ .../queries/x-product_matter_composition.rq | 27 +++ .../public/queries/x-product_with_matter.rq | 28 +++ .../onto-deside/public/queries/x-test.rq | 26 +++ .../public/queries/x-textile_products.rq | 52 +++++ 36 files changed, 1225 insertions(+), 2 deletions(-) create mode 100644 main/configs/onto-deside/public/queries/variableQueries/x-batch_labels.rq create mode 100644 main/configs/onto-deside/public/queries/variableQueries/x-construction_building_labels.rq create mode 100644 main/configs/onto-deside/public/queries/variableQueries/x-element_labels.rq create mode 100644 main/configs/onto-deside/public/queries/variableQueries/x-matter.rq create mode 100644 main/configs/onto-deside/public/queries/variableQueries/x-product_labels.rq create mode 100644 main/configs/onto-deside/public/queries/variableQueries/x-product_with_component_labels.rq create mode 100644 main/configs/onto-deside/public/queries/variableQueries/x-product_with_disassembly_method_labels.rq create mode 100644 main/configs/onto-deside/public/queries/variableQueries/x-product_with_matter.rq create mode 100644 main/configs/onto-deside/public/queries/variableQueries/x-product_with_matter_labels.rq create mode 100644 main/configs/onto-deside/public/queries/variableQueries/x-textile_product_labels.rq create mode 100644 main/configs/onto-deside/public/queries/x-actors.rq create mode 100644 main/configs/onto-deside/public/queries/x-construction_buildings.rq create mode 100644 main/configs/onto-deside/public/queries/x-construction_end_of_life.rq create mode 100644 main/configs/onto-deside/public/queries/x-construction_end_of_life_costs.rq create mode 100644 main/configs/onto-deside/public/queries/x-construction_matter_composition.rq create mode 100644 main/configs/onto-deside/public/queries/x-construction_product_composition.rq create mode 100644 main/configs/onto-deside/public/queries/x-construction_products.rq create mode 100644 main/configs/onto-deside/public/queries/x-details-per-batch.rq create mode 100644 main/configs/onto-deside/public/queries/x-details-per-product.rq create mode 100644 main/configs/onto-deside/public/queries/x-details-per-variable_previous.rq create mode 100644 main/configs/onto-deside/public/queries/x-electronics_products-coc.rq create mode 100644 main/configs/onto-deside/public/queries/x-electronics_products.rq create mode 100644 main/configs/onto-deside/public/queries/x-extended details per product.rq create mode 100644 main/configs/onto-deside/public/queries/x-marketplace-filtered.rq create mode 100644 main/configs/onto-deside/public/queries/x-marketplace-images.rq create mode 100644 main/configs/onto-deside/public/queries/x-marketplace-matter.rq create mode 100644 main/configs/onto-deside/public/queries/x-marketplace-offers.rq create mode 100644 main/configs/onto-deside/public/queries/x-marketplace.rq create mode 100644 main/configs/onto-deside/public/queries/x-product_composition.rq create mode 100644 main/configs/onto-deside/public/queries/x-product_disassembly.rq create mode 100644 main/configs/onto-deside/public/queries/x-product_matter_composition.rq create mode 100644 main/configs/onto-deside/public/queries/x-product_with_matter.rq create mode 100644 main/configs/onto-deside/public/queries/x-test.rq create mode 100644 main/configs/onto-deside/public/queries/x-textile_products.rq diff --git a/CHANGELOG.md b/CHANGELOG.md index 21e87d6b..28e0d9e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +- Updated onto-deside configuration 2025-04-09 (#202). + ## [1.7.0] - 2025-04-09 ### Added diff --git a/main/configs/onto-deside/config.json b/main/configs/onto-deside/config.json index ace1ff6f..40f39271 100644 --- a/main/configs/onto-deside/config.json +++ b/main/configs/onto-deside/config.json @@ -1,5 +1,5 @@ { - "title": "Query the Open Circularity Platform", + "title": "Query the Open Circularity Platform (Onto-DESIDE demo: all data is dummy data)", "logoLocation": "images/IDLab-logo.png", "logoRedirectURL": "https://idlab.technology/", "mainAppColor": "lightgray", @@ -8,7 +8,7 @@ "textColor": "#1976D2", "queryFolder": "queries", "showMilliseconds": false, - "defaultIDP": "https://onto-deside.ilabt.imec.be/css11/", + "defaultIDP": "https://onto-deside.ilabt.imec.be/css12/", "footer": "
", "introductionText": "Please log in as the appropriate actor and select a query from the menu on the left.", "queryGroups": [ @@ -46,6 +46,11 @@ "id": "evaluation-textile", "name": "Evaluation June 2024 - Textile", "icon": "CheckroomIcon" + }, + { + "id": "cross-domain-evaluation", + "name": "Cross-domain evaluation 2025", + "icon": "CheckroomIcon" } ], "queries": [ @@ -726,6 +731,213 @@ ], "lenient": true } + }, + { + "id": "700", + "queryGroupId": "cross-domain-evaluation", + "queryLocation": "spo.rq", + "name": "All accessible data", + "description": "This query shows all data accessible for the logged in user. This includes also PCDS data and data from the Circularise and the Concular platform.", + "sourcesIndex": { + "url": "https://onto-deside.ilabt.imec.be/css12/ceonadmin/ceon/index", + "queryLocation": "sourceQueries/seeAlso.rq" + } + }, + { + "id": "701", + "queryGroupId": "cross-domain-evaluation", + "queryLocation": "x-details-per-product.rq", + "name": "Product details", + "description": "Select a product to see all accessible data about this product and its direct relation to other data points.", + "indirectVariables": { + "queryLocations": ["variableQueries/x-product_labels.rq"] + }, + "sourcesIndex": { + "url": "https://onto-deside.ilabt.imec.be/css12/ceonadmin/ceon/index", + "queryLocation": "sourceQueries/seeAlso.rq" + } + }, + { + "id": "703", + "queryGroupId": "cross-domain-evaluation", + "queryLocation": "x-product_composition.rq", + "name": "Product Components", + "description": "Select a product to see the components of that product and their mass fraction in the selected product.", + "indirectVariables": { + "queryLocations": ["variableQueries/x-product_with_component_labels.rq"] + }, + "sourcesIndex": { + "url": "https://onto-deside.ilabt.imec.be/css12/ceonadmin/ceon/index", + "queryLocation": "sourceQueries/seeAlso.rq" + } + }, + { + "id": "704", + "queryGroupId": "cross-domain-evaluation", + "queryLocation": "x-product_matter_composition.rq", + "name": "Product Matter Composition", + "description": "Select a product to see the matter composition of that product.", + "indirectVariables": { + "queryLocations": ["variableQueries/x-product_with_matter_labels.rq"] + }, + "sourcesIndex": { + "url": "https://onto-deside.ilabt.imec.be/css12/ceonadmin/ceon/index", + "queryLocation": "sourceQueries/seeAlso.rq" + } + }, + { + "id": "705", + "queryGroupId": "cross-domain-evaluation", + "queryLocation": "x-product_with_matter.rq", + "name": "Products Filtered by Matter", + "description": "Select a matter to see all products containing this matter.", + "indirectVariables": { + "queryLocations": ["variableQueries/x-matter.rq"] + }, + "sourcesIndex": { + "url": "https://onto-deside.ilabt.imec.be/css12/ceonadmin/ceon/index", + "queryLocation": "sourceQueries/seeAlso.rq" + } + }, + { + "id": "706" , + "queryGroupId": "cross-domain-evaluation" , + "queryLocation": "x-product_disassembly.rq" , + "name": "Product Disassembly" , + "description": "Select a product to find its disassembly method and the original input products." , + "indirectVariables": { + "queryLocations": [ + "variableQueries/x-product_with_disassembly_method_labels.rq" + ] + } , + "sourcesIndex": { + "url": "https://onto-deside.ilabt.imec.be/css12/ceonadmin/ceon/index" , + "queryLocation": "sourceQueries/seeAlso.rq" + } + }, + { + "id": "707", + "queryGroupId": "cross-domain-evaluation", + "queryLocation": "x-marketplace.rq", + "name": "Marketplace: Batches for Sale", + "description": "This query retrieves a selection of data about all batches with an availability date.", + "sourcesIndex": { + "url": "https://onto-deside.ilabt.imec.be/css12/ceonadmin/ceon/index", + "queryLocation": "sourceQueries/seeAlso.rq" + } + }, + { + "id": "708", + "queryGroupId": "cross-domain-evaluation", + "queryLocation": "x-details-per-batch.rq", + "name": "Batch Details", + "description": "Select a batch to see all accessible data about this batch and its direct relation to other data points.", + "indirectVariables": { + "queryLocations": ["variableQueries/x-batch_labels.rq"] + }, + "sourcesIndex": { + "url": "https://onto-deside.ilabt.imec.be/css12/ceonadmin/ceon/index", + "queryLocation": "sourceQueries/seeAlso.rq" + } + }, + { + "id": "709", + "queryGroupId": "cross-domain-evaluation", + "queryLocation": "x-marketplace-matter.rq", + "name": "Batch Matter Composition", + "description": "This queries retrieve the matter composition of all batches with an availability date.", + "sourcesIndex": { + "url": "https://onto-deside.ilabt.imec.be/css12/ceonadmin/ceon/index", + "queryLocation": "sourceQueries/seeAlso.rq" + } + }, + { + "id": "710", + "queryGroupId": "cross-domain-evaluation", + "queryLocation": "x-marketplace-filtered.rq", + "name": "Batches Filtered by Matter", + "description": "Select a matter to see all batches with this matter in their composition.", + "indirectVariables": { + "queryLocations": ["variableQueries/x-matter.rq"] + }, + "sourcesIndex": { + "url": "https://onto-deside.ilabt.imec.be/css12/ceonadmin/ceon/index", + "queryLocation": "sourceQueries/seeAlso.rq" + } + }, + { + "id": "711", + "queryGroupId": "cross-domain-evaluation", + "queryLocation": "x-marketplace-offers.rq", + "name": "Batch Price Offers", + "description": "This query retrieves all batch price offers accessible for the logged in user.", + "sourcesIndex": { + "url": "https://onto-deside.ilabt.imec.be/css12/ceonadmin/ceon/index", + "queryLocation": "sourceQueries/seeAlso.rq" + } + }, + { + "id": "712" , + "queryGroupId": "cross-domain-evaluation" , + "queryLocation": "x-construction_end_of_life.rq" , + "name": "End of Life Scenarios" , + "description": "Select a building to see selected information relevant for decision concerning the end-of-life of products in the selected building." , + "indirectVariables": { + "queryLocations": [ + "variableQueries/x-construction_building_labels.rq" + ] + } , + "sourcesIndex": { + "url": "https://onto-deside.ilabt.imec.be/css12/ceonadmin/ceon/index" , + "queryLocation": "sourceQueries/seeAlso.rq" + } + }, + { + "id": "713", + "queryGroupId": "cross-domain-evaluation", + "queryLocation": "x-electronics_products.rq", + "name": "Overview of Electronics Products", + "description": "This queries retrieves selected data points for the electronics products. This data is directly integrated from the Circularise platform.", + "sourcesIndex": { + "url": "https://onto-deside.ilabt.imec.be/css12/circularise/ceon/index", + "queryLocation": "sourceQueries/seeAlso.rq" + } + }, + { + "id": "714", + "queryGroupId": "cross-domain-evaluation", + "queryLocation": "x-electronics_products-coc.rq", + "name": "Chain of Custody", + "description": "Select a product to see the products used as input for its production.This data is directly integrated from the Circularise platform.", + "indirectVariables": { + "queryLocations": ["variableQueries/x-product_labels.rq"] + }, + "sourcesIndex": { + "url": "https://onto-deside.ilabt.imec.be/css12/circularise/ceon/index", + "queryLocation": "sourceQueries/seeAlso.rq" + } + }, + { + "id": "715" , + "queryGroupId": "cross-domain-evaluation" , + "queryLocation": "x-construction_end_of_life_costs.rq" , + "name": "End of Life Scenarios: Costs and Benefits" , + "description": "This query retrieves selected costs and benefits related to end-of-life scenarios for products. Only the costs and benefits accessible to the logged in user are shown." , + "sourcesIndex": { + "url": "https://onto-deside.ilabt.imec.be/css12/ceonadmin/ceon/index" , + "queryLocation": "sourceQueries/seeAlso.rq" + } + }, + { + "id": "716", + "queryGroupId": "cross-domain-evaluation", + "queryLocation": "x-marketplace-images.rq", + "name": "Batches with Images", + "description": "This query retrieves all batches with published images. This data is directly integrated from the Concular platform.", + "sourcesIndex": { + "url": "https://onto-deside.ilabt.imec.be/css12/ceonadmin/ceon/index", + "queryLocation": "sourceQueries/seeAlso.rq" + } } ] } diff --git a/main/configs/onto-deside/public/queries/variableQueries/x-batch_labels.rq b/main/configs/onto-deside/public/queries/variableQueries/x-batch_labels.rq new file mode 100644 index 00000000..21ba4d06 --- /dev/null +++ b/main/configs/onto-deside/public/queries/variableQueries/x-batch_labels.rq @@ -0,0 +1,12 @@ +PREFIX rdfs:
+
Table of contents:
* [Preface](#preface)
@@ -387,9 +392,10 @@ The easiest way to add your own configuration is:
1. Get inspired by the configuration in `main/configs/demo`.
2. Choose your `+E4nvwFtm4xqvUS}Rfks>ZcSFIJ;AUDape%6C`cT5OLIV^QcQcB?C^ zgbMo$UXkYoSbSZA4)T#TB~oxJ;)i%*tYMCOilVESgx&L@(5KHYu6ouJo`*-K+);?=VsB5I)n{)vs@_%m|@N5CuBbpLcK&gf3Q6%*7l zr}0Yhwqz#NSQ7VIQo*=xB;UO+7L%N$4#`r2n9`BTM%aM=%bh%RA7_e!d?$6sbEGVe z0pCH0Xduf7LagBG^oV;&A?JuLgF(y@pvU5}&nGjP4tSY{rxygJ-6`akx3@iABY!4H z3-MKhP@>_5;fEg;Nm JU<-mAT)BEhY`T_gMnb2iH`yLxdd*_(w1Mg_$uHV!V;4T8V{WskW zi(7ppRWgOU;EFracDa3@Cl5xX=idU~y)6WHkhXwMpY!7<<~psxpF+CCbD^rT@JoSS zKfPd@K;&IBGT4kfflPC!@DCRsM2lJ>$D4wnb9bb5EufCO(&~NwahcHR$nem}r~5zg zyU#Ei`T~bs(B3L@&19&)m(?x!K@bJtdEy{p&+uKC4eq%kVEYJ6rRJxlP{PN^vb`0q zeoISF{9b}|nI=|zQ;m8J_=ubkju~XW)MY;Zvr*6KLiQMMh%+j}K*b30<_ox3d2WuX z^^7WGF?)9A1BWn0*bo$}0qa*d4$Po2*u22CN&Tkw6&U_eK4del7P-eIgFFIq>+mj+ z?bcu38p-7Tst6l**Iu_d5`WDK*iRULzl`-6uLk+}X=E!TMNt*qo^%9Qyr# e2KR|9 z`*xs*>Ag+ MdqgnWt4vzp1di;>t5zvvE0)KZhe5uJv zY {lQ1 zypV<8S5dpwp1_`&-x+YJDM`+5&7+aJ-h%z=PrRw$>3_qmypReF@O(u*&5kRCV!mcV zv;Hb|1hIhp<%*DM5hVs`2rADJ0p125M+>ua3>L_huV^-3kuDMtI}i#1-dY^13Ebx} zVXOVJeDAg>Ql!3S@FS*-X@%X3`T}Z9m}G~Em A(3UWTj@}a>6}@TiS_&MI9kP z9-2z;zMQ2km>}w`wm-AtVe;U8V9zm|+iY*BVx9Np4Cz+ud=w*Z?KmslO_4ck%}aw& z+AB?TnG|mYoRdikaBvE2FJFPV`!Zs9Oz?c%k9*Gp(6h*k^D#{meli((<%L!G5ep6A zTP=yfw;o%h5Fp79+Q^wQ<0mCFiHXd&RhN&E?J~vLj5tXZQ6&$(>rN!b3vEq~f<+LF zU%?Y$IK#Y7`a)A*Uzd>5d7zMy(VZ}I)jStetCp*M`NN*o_AXvcAD7#So^51wKHtdr z;b#Fo*49mU7+#=rS?Wrbg{l*;i0X5yJ^u0X+?Quer0FwmRQ>=50IOxn>Nt?gSnyR! zUW(za)ITiqlNJh${05GF%|3ifoesqKOv~#ytFpBGgj0f^iRLqi1*O?U1Q+xjxcXu! z<^%OkDM6FMr&al`B4dMJYi-QC6sPz)Oe@O3^hw+ !nDcs6m59XkY znBY_d!P@9ypl#LGtqzzhnmmbX`=*`ANV3TlxqzR{zQ%h$BNK zqPp;iMIkoZXzj}HNmbQ`4@eH^`S_Yh+nU*%7xl7Y0Gr^sK;LqL EAki_0RE?KSjK7J(M@Qhgp$@K$UWWN*15sWLJ z#npa-y>L&c+i!eo7q(x&6+=F41hct$1e6B)Z!dVopqcSRSnC}3+?L{tI}{g7aQ7E5 z?x^{A2i?UQ+?0_&owxH^?!C1i(KGeBx4Zf|TZ1rOU_#IqhFarj8jC4Phl=x2Vnemo z4m(OZ?b8d5oUSIOC9huG(_KfZ06S{P$=4Y>*MskM%`iptH5I0LXd<&&GVs!k&Ru>| zjSaps{ZjWX^GsI (ALZjl+S_*TGUCLz G`YLU_DU&YcBGlwR9`(l6;-1EcQdYusPNorPJt`* z$&f74#Y?#{`7Br9Q;5w9pe?Y0EA|yf0Ks6g-E+wFmwML>gM6Vz>GUazO}4BErNKE5 zVn1oNY6AvWTiRQLdUtz2(EGDp*}rCdIJt`tZ^!9nQpHTFKP_E-`g%e+B01v>y0Fmb z6ntki+eZx118JGl;Z4ugKc$BFW?h2))*yCs;k*0I6(t&Sk;4nKSNlG?v>X9^%Xg-) zCF$B}+=D(qKKSZm0bPUxn5N+IDjc!S5is{6g#yg*91{jng4zj%tO7^YrigJxT+dhrc0$4oR9ITy@XmVPyzO1{~L-U6}b~xxlt~jt{wQe zxYRPTwBZreUQ^Wz0vVqaLr^Uk%oxJFXICOM(MX$nx*RVO>GCky0U}R*L- anuv8(xxB0+exa0`1 zlSzJ34N?s6(z-O$rnxIDOu)X}_-u_HpHc{g-2IJh>1&ye%)AdCZI7#uvh@~k0h{PZ zO>jgApULE)Qog55x@9*HUu6|)x04Y>BX_#})QhXPInx2}_ADJ$!>o~e*KfWnNK$p< z^1anGt<1O_g+_F)jgC{Kw+6-LO(@sbxlwV{i8@4Q75JG7ULj1R+6aRzSU?APY{&8o zBS!id#)`rprrpfcl0B|96Xt`GHaNZ$JW+3HH--~^6B)Y!5GD- ^2XpzSf7L(<#h)ug|bG_l|$>^bzpkg&*N` zBv}>ze6$Cy90UNV*!4l!n(%X1&iVX;8&P$|&D+w=+nnsXDW~!wffMbd79*DmPA}3~ zvt`yfzZv8 W|a|y|0ye4j+DGJgfU;%H&72s^GF=6T6L6M9G|l z225?ue*7>v^lWL5tH%sZB&YEikI|lYZGkTLq2s186c&*W*%E#6PJ5nC**twf&eEp* z$%IC#OhykbNe%EWS@*)Ln1PC;cm4?I6zG6;$q-C_9bq{FKH28tLv(;)(1plg4%2K2 z+(VVh8}}C#g7H`<%uWvAK?Lvs1b*D}MY-=5MB~;mAM#)E(jzjfgBQ4<%krkK6pZ9y zf@yAud?5ed&JVf6mf2jZ>X<~5)K_eoY%u+bgCJMVgf@Zv{5V5RQ-m`JanUvIvYul@ zDMTr5r JZbjuFcmZ9@(IKeq?|u3 zpgD&Ln5jFxRZC|vTen>xi_gKld;@&%V*Ku*ODGtRDx#4}Sdv)~e$+NaA-Eo@Xl4*P zSh#OjEH1x-Y!UC#&TX(ekaYwMxIo78Np7Nvpfn)y$3x0+ZUMr~0m^2dgYG9SWztq@ zSU^4hZF>QamqE4699%W!lu=8&c__1a1T1YqW@(O>jTKhgJ3N^ShpSzM?kT uc^m%=?w(_~sg3}8NrNN67kNm< z3iu$`aLEv?GrqcSbpN6S)EAuDM%92I{|M )iH&<7cyO5noI4jLhd@jMOxf@NE+{yO z0V~$~2 Uude`P&xp_Zn|w(QI$n7n)UEnXa@0<0Gy%$E0Thn+k-U?1J- zCpl)~^X|FFU#QI2ptUmw)EGec99Vo6hr^mLFF0xr7#fTuun@OfL0dK-|Wi zrhs1P**+!B`%Sl1Vdk>6c7x76T?^zPMixv6K5<{1l KKv{Z)(k!PT#w(tzhZ>t2}6pw^J=MEgwh<($C^8x zBzeIE)idnkq)7U+=)aYby?SE8X)8MwggWM6tP#~XR7Pvr8l5ngrq)`D(XmdsZ4 z6`8M;eqQ7dbX&~VB 9hR)G(Bf@kKN 1?;{=eLG0G%F TkWVmRxeKE1}SN2s{e{-(o_dbZp`3ue1AyT zUGC(c` S^ckIhe9__`M4W6hiSkHejISEz4-Wo=Xt!Bp0J-?Nzzp_LYGUm%$TvW z&{1KMO%%%kbB{|k$LM1nHI?s9wh2fJ+2sg! cW&%N-@P2Zvrf=A zT jBlVc0y}?o&-Ec zA&$GZuwv?`c3cm%H}X?^r34s>VXepMA8)-B!jSgby&@}*lRDc}JrL->q|E+M7~GxK zJ{Hd~Fk5q%=stPE<+vt$lV@A|qRz(^5xy+T-BPX1fd$cS9lbhPfp6*Bo>U9cBx5@% z6l#hMzUO;g9(D6=du1)fgoh0^Nwby~gBd!oAUu`~Eb8+{>9_HHncu4&X(I{qTxPwG zqm))kfxE9Y*0ht)ML|X47u@6@mKVKeN8mILviGQ0ETFH}G1cJa#t{tpeP-o7lv%M+ z=atVzBL !QQ(6{HjGXhfkA{lf z7Z0nyIH2zMLcc-)tQf6bQTyC;;GJhBnx`jEn-;_F%sWlV2-qMfuOO=QQ#4>bdMB&~ z3>hAGy6mj==oIHab>%3DU~@>d{!DAf5LwY-EZ%6h1)0Raxp`dqSmt8gI!TvJ6Q8mf zIgGKfAZ`57Nd0Q^J8O*;<(4!8nYY7fE@iR;P(SHR$QJ0ssMcfDzEof_@7rB%X}%29 z&&aazwNl$LUh)i!s01@)xwVVBURBH%vHcEdeH+7X%bm!x$+y^wcT(WFlk(xTY+Bbe zXpakfDbNDo_%K3x_WVPM`p^NZ*k{AKS2#HC`}rt3_%sSb)_0%s7=BqtWLsO24OV*y z-y~2zN2dUoY>$xv`>Er}2QjN~O#gF(eUcQ)c(9{2zJVL7z9nz(%^u3<#~9;F#S9M9 z(FjTOu|KEtlS##%gTGj7SC$^mFb22hq#>KgfRz)p{*B}XNRl>po)uo4cztP+Mb&f~ zik}Ko$A^J+$j9KTRe+nvsc!n7hV->nHD>?VZr9XEwcu&wZnb)wpJWIqjWfvuAWNvP z-KD#UnNvq2p5nyA-03z)Z-L2vd3iJ<{n&;>z@&J7 %|VS~ bTHNcy&t%FrIn3B9j61PRRQQ!Udwf zK*xDDq7ReLBi)$W@j+q9|L_ zq^Fd#Du!Zs%3gn1xJi5$<+YLoJMSlb!mOc97)$1C3|7IVOkD<5;8S6?;YNWYyp?5J z;TQ{**@Da@!$gKrwIf$lEA;KZ3^dzvRK?$ZamVbcP( uiHH3o%dx~`ZgN5 z1-VS3Mae(Fuab;~0MUM+%Vt~eZYbq_^Y%4NtpsQK W z->2|Efg_+23RX@wa= zJ(Hc2Z4w48U!1ol_JOy$$AvHHdNjRK1quNM+fG6Afd@R1_X8VmfC2d7`}v}M5!`^) zL(s)G$X+}@7I{@#@ePZo1}qgzKY>qA+k2RF_Kej-Hh)n}7aLM@7p&>uKi;S2kC-%^ zczp&ZXRA+fV-P0}Tjg*YoK9ANJ@bj=EVN*ps+7RCvp-fvkz~Xs24V!g8}TJ?=C|!} zQ($SDHELDF7M&mN=;h;Z5Pdybsd1CNgSh=kIejkHX+(V6Rz@ks0Un 0HnxQ7teCnF+d<_nfPcoHnd*KMssZ`~; z(50IlJH>7+hDh6j4vlFDWvnaKs#9U@s`>14qGx`*+e_*UOOoAk^mB}y05Z4dpHUhs z_S)xrO;vQ+O&65jtcwyAlqQ+0{V~M^?0}nuye$e#ep*j7^>sZEs|ZpKuNsk!&X|9u zZkj@#%zR)`T(Zd{#Yt5dypr& s^jg)O<{eEmLM6-RgO&D8XH4e(D%`D>%f4yx zK-q-)sYQK8(MjDrFN1vExu>QNd_Jdz*LLRsHtw7gh@$ZeO19HD{dl;j8@UPuU%e1K z-za_-3}a+SvHow}3+N=3D_b*-c}&F#)O{)vf5i^4Mhu-x1*|o{v%Es}*8Qxr_z5G5Gix-L*sR!ph!ZRWV*=4w2!C`GaMMSJ~R#LS_AYS#}F z)l0q`viKTABd!rzJly3c6W) yj` zy9+-tpk5F({km}eD#M}RAgp*8jg-{*wb$9Tip*tnS^bFwyVy5*u@dJwHlhaK^xM9m z<$CdN6C)x((V6hB=*HmC1+1wYa~7V1jnMZtWc^{5+5W=}595m$RPQChID56T4&?zY zP^k&P@|MhNEXTy{ekmkvVmLk_J*Y5BxmjRx*LIJf>b5Xs?lz!7Z15zXg0Jq*g>LOH z5i`6hvE!*S?`vNihq~$v2Xqym!&kfo9QxOJl?xJ1@gtXt$VSzl@0 C(U)VL$|3q9cIJBCUJ!kmZBv^xSe(-UH>mdqZM6#U zm5WR1JddWx@l`T!cWpfQvU?xgmBU&dm6liT^tRki^z)}C!#PDyU}Kfuo4LzXF?v?+ z`Mevq(6sF^1a%`D>j-Ybm0l>+oG(qE4*zN()8)Z4YS}atc6)5!L<9ET{nXe}X?@Vg zj9mQ$Ysn{F7Ab|bN^@WNxf_F;*uoGM;ec0!{~OCB ~$>BKvqTpt8-&-T9DXdH?` zGwFfZz}MK8anYdMZ@YIqx^fdZl7=DS?b(W7+e=@78^~boN&IWmyFsoc!WF9DJhZNb ztQAhXh*!@Nx=2wCuBT8Yj7QdHM>5umEcIJkX2=To|DfoS47zhpQMQ&+Jy#Bml*Ovo z=%9jZy>l+~aEA$S)E;y-Z`-RI`Y)rIN?!!M%QEFjdSg%9`XLoglU?Qj3ml(7__> z4JfeAwVqFd(Y;9%v*1w>su`a|ua=}?(Zr&xRdfWLr~jFkk^k%90B>lHdqK3Sm`r okw{Q625~F@}z&t=w!gl)o zy(d~w_831{Rth{u=7ReRZ>@>NvN=*5%LCm(^Kz>j%y>doQAxXcz$yQDTN&tO`*Bw+ zFZJs* i}QqIC4OPrd)oIc8JsF=`v{RW-IwU zQsBu_j%%~JYZ XQ-un3f<-t=Pjg&OU>n3PA2K&v2_}vjE2Y39 z`eYquhq@HZPqw3xx82$B*ODoZfFGhDWxSRHZjd_0%exmR3&$3N3EA#MgVs!F2g)42 zcSZz>BLn|Y>RZDUxZFB%**mOfb*^h@@$v%}f}t2I zm9^7J=->AlH)WJj!Bl#d?2LOxzSMwyQV3 j(tI|t`G+JeTUWyGm%TRU(jU&C12 z10aYu1Q&N{$d@wzie&sxPri;-inzNkj*u3|(hPfKBp1~CH*3haf@H(Vap-*qtfhy9 zivbi-0+5jYkRf)T)4s1bUZHbe=LX2EZ{ GJo&t^Q4v^KJUlK}4K(Ykx zw&q!HtfAo3-sIhaBI0~K1pM)l=XP)I%49d<*f-G#(p-!92>(oxh&)S<{7ErNnY+jl z&CcNB6v~Wh6m>z>DU#(W`(+*;UxP0 lQH|3BEuvn+i7*&< idGMA zfvw7{Mvs}0-jH~-qICPGB>>!04l>>2#f0e)@<1i*ACIugaIOc12fkaBm+|Rm@la8a z1(P4(*~r_F?fQSmVEnU9L08g$Fo1i6wVFn71lPwX4O z1>pkEKrNypy|I_qsS0SpQ!Y#Oxmu2vPO}$Gp(_G-EGvASvOMx7R`=4j z LxP()|hiuP|08Z2zZx3XmXva;*b*a#; zuWL~6n#1~aFyZ5XN%jP`bAw0elU4G+bd}56&ivGEcqZ=%)HZ|=__cKU0Z#nB`H&S) znQU->S^CTiH;Udb4hYdU_#0N)9jOkYk$gzK`{;zi)A0vu!pU|$agm?VwU;o1c2Bpa zz%p|iLU^5LG-SJ|CwKC(I2lQwm_ONjA^+xPscrmiNa~mYVC~C$nI{cp)*X7f|4RUM z1Z8z^dw1BHQi@`SJ_Xh-1*;?M&Qm{f@Az>LB1C_w89 z4^a%c9ZT;%tw0_TruD+V2|UySs{nkc*D@wtbT(?!th?BC8izxSgH&_pkb`fQ=K$#& zV8-G10IJvB9&JU^{y0pyTS)#5 zWs(oISbywe&|pwiwSKCR9xvD<_no5hH7UwGpW<27@|Eml{aXK_XNsKY zx|2i)7ql3wI?gtcOQXPRJe>a1$ofMBGC3B7rGlZB9{+#ry>(QaO_wj)xVuYm*G7W7 zOOS-%?(U7dyIYV1x8MW~5+Jw)_uvrR-ESwa%s1c6+?g|T&bjxGWGz;@y6dUh_1jXr zs&?%My!liL?(jd|1pntMXxYB}H>~&k%Jvw${V?wr*LUF_KD~PekdC*2S8Y$101q5+ z{Ms+wM_P#lTq%Y5;gbwfO+ILue!#(xy%qJq_LSjky#M;+5{@@Vx>-X{+X~lFcka8S zqcz?4#O}_Nuo`USUzb__&~lGwK&%j+#WM9dOT}Bu&-o^|V^ss-wU;d)X-Vhhs2pHT zfcZq~^7wtLyazH@LIbp`ZQGCQ?;?o8kV*ombr6SIs1ZdwxQyoc^F7vfybM99KMkhP zCfK9o{M+k+!`p}pUtkS>81m3rwhC}!S`!Fb^a3d^7ZZa+nZPHXxHs7 jWN?`lTP@`uiMnHq`oUd>oI!RF%yf1$b) zv{15>w9vzgoygYh>ooR&rv{a&M_2$!hua7M^p{Edo1*`MR|ejgP^_P>Tg*fe!+2TP zg}*8O-HW6fd>aBV1~<^ocT&F+>~agbFCRd-JuL2p9^Vc+kQU=7H9~-Pt^ L(#XLTT*vb@nxQ+Jf*gAlu^WrLP}mU1Pe?b}IXB7D(23yvvOVU2 zE9+DM+lBNh_as<|P!Il+*ncD#;(g`5r&*Ah-DT9AE!hro%+Md+4?+$a#_5+{>y~lq z;t(TiM(4B40TB)$_-2?V?G$*U@3RHQCObd>rxp%=%;8}tjif}`Ba5G20sss#IINE! z9H1=><&6khGksz-28~x{%3oMmF&|-x=ofqz51I`NLoC{ULq-C8rkqAMhsLj(wmv zUw=e7uzLo$@g-i(0!+G|+E>9lwHIXQ5N97+3iNigDth0Sb{T#SsQy|)`HB9hzzGFl z4u&A)=gCh%lnA^BG)BTCtUo_1qPO%ZX=n<0L+ib2;t6vVM8aFYS| B<}D z4dJj$7@14=BhIp*PL?8#PX~h>w >uaaISu9 ?R)x8nwm6Bv5Qct7&y^yreY^yo-Ci0PYd&2G||7YG}^LIgns3H%2Gw)I+o zOZy;UG{t&nl9mc_a2Q^RHrGiL_%>%6T %fp!=GPn zK9RXoDxSvp%V&Sr?<&w DlfCD%xckwcCE1Zk=UVFHy9oGAAV$3IB zLpz~Ba)7OuAvmNc1ni5{fsY_$?KvAJ%daK|koT`mA_i+8;Wxn{a)l3ar> WPk!UemWEA7}ff%o0*m gGazn;m8 zvA5t7Gg4p9HOu~$NZPJ^Q8k=krO6zs5(ePW`>D$64!l1W(O&G~p8jp1h{^w+b&1qJ zN6Ov`AO}7ep~F`u1KaeUn++s|CrN9K4^)OOKDL^m5GqM@YOSq+?GOFD#7;`YMggRf zJ;V-QiIwyEu&ppKU~%3e1Hco)p-3P2+5crx{`&!^55gyk?>CqQq@BS@DFW^V7b>-c zjf5k7q_=`ZNP#!mUl-CsU8Jk04 JKn_xL-hbm#>jq753s)$cE4gC zCsqK$n;(iFeTKkCp%cFtC?s(c&$e;s_w)rEZZZ}Fa0Y?5Op|{x1dJkCj^UWeiQo># zem2q*j{L`4zN&~kcg`acBJmWjfVoB&CA;D|gLt$Y@)+_6iV$3$1hG7_t`aB!fDc)j z?c!hL{l5hPM9R88+HO1bBuSrogJ!Nk8OVL{zJDq1e8-6=2QACn?_^f(q&!hatjezd zxw<*V*CMUz_^r=(Kd+-lgdRv9Ie;RV1mGWYBm{Vk`7h%K-!B@2EBM74@2FGSC+WWt zfaLx7FZQQx2XZ;3NZ;zZ)VxS*#0><#lB| 0;zfc}s5T zSy_k0LJV_l*MKLtuqqKx6aOiQz2yJ3=<@$yK8NZj1E0;&pU!q3@~g4yxjW`h+Q-pA z3Xg9Jiw>JVj!EAO?m%_5iso2-AZfd&`DDsmUd)e#T<-6tMhv_o;U9z5{bN=Ki*qF4 zPJ0#ZAqlKYRn2}^T7Zj4u +}TeVZE!vm ziPi%1JQ-{?CY}Lc70IRrtH?i!NW>}Slk^I@-|WGcJB%D@?w{g}oI0`WHI&j=7pQqe zdeno6=XyuCIR=+^W4`(f2(N#WXeGuB4oBg5I7>Lh7tY54hn`o#yF-bbRLk1fLeCEJ zwl>{vjou3;Jwd{?TM$f-{ZH(~UC`jiaP9F*P92FbHIa2PZP E4d3UofpmxMqrL$L&o6wVMff1!{2ui~|uiupwaLx|Hyi622&fPAi@2=+FpL zGx^B@_CTWn+|dxzE-mhHpoWk_xF_fy$6IAM&3tcylaZ*fcJ7QQmqn%)bW($N!s(n4 zE4x~1*#+9~ILnBvd6ZNGsYRBz!FNF{Ab$la{ci{N-yjaK_-9x9KhWj>(zN=^IRCEs zFU!K;fc&*U{*A w+o8Bj0&nswZMxmtfaudx2V5{&)v>x-R#GLMJgN%W_M 4X?JUhqok98L&MwBr zrq0eG`6kBpCZ_H$jBN}pZB;DI?F>OKPNv`_y3Up+rfNUiu>^S-yExgnD>$3lnElEG zY$nKR% w>f&U__wxgv5tpekF9#=(nf;|H2Q#N3yD77wA;(K*LtaBuPIfakATJNc zuSZy%|LVco)ZM|x5ZoJhfG)o}C;R(1vS0N7Ng4h>QTFH9Oilj3B#OY$+1b?TC+#d2 zhRznICaP~_S$?8#@rx?G{~b{M-G%cX(Ea2fSQuDb+5ZtcccDKBAailDB>P2ysR i&>vTT8n?)D+A~LmPi{GjPIcu)6tMf%Oe!XlHCHE8))MZtK8j zX=%b|!ftHD#m&vb{F2L*o0*fx)QFjflgF6ZkdvE@n-{E9+@{?Btk=K9Pw0QfEn`C) zb2DcPL-v PrCpfKe93*?MnBS6fKgq-ThrOgdcZN!{l@NJ>uCP} z0oDAsM5TMX8Ved+_M!Tw@F-Zn-;S>c_ABJ*G`d(3!;qAU>$3biC3xO1dU*c PdI{ (E&d}D>?q|zpU=9Dn zfd5-Ks2jeWNVdNTm8W(UuTYaB@;mw#_S{mva 3!PvpjMDAywfBl10{*zeR zU&OK-+x*+9=@(zY76<$cB>7KTi~e0neQ9K50%SKeV+L{=8#8mVn{Y52ni}yi8?kY6 z0nK>Wc-c6NLBHD4H#fC2but9mJL&&ag)hIxW-e}F2$EKQYj5vl&SGq6$?}su`cBSf zKo(A37LI4jzh{R3w@K)~l70T4CLt$dCsRX^sfqsI=E6DX|B|r$(GBx|CX@flH~3Qy zhf@37%WIfXT3TvY-uZC8rMX~iY-K0WiAJx;z?%2m`lD(3|E%f11@X^jnJD_1-{6r@ z(DZJ;J&nV9-W-<6;o}CW-D~ zM}7*_M6f1YXC4F%K6#)f6gMysiUSx3Nt6Qx&h!q6ZC6Q`f7H{o$-s5@;)f_sr4cR> zKM(~Lfgw~T^cn>M0vQGXlw%_V;=@9zLPH^AsGAyz|K-PkkrNkXLjfZF{0#{i`jx4j zGaEV(^=A ZU9F&h#P;paE7SdgkJKoUF@_Lo35HV$?m2Nx%o7P!duck!hb zQ0-q;XF~(i@~bsiB?nVGQQ5zmM?!}CQ=-|ZfD}KgKp_+T*&*3aI>^Ld$&y*xk^NZ< zs0qY^g#!=jn;;|vEc~wzP!MoXVgP8h7w&xw%4j}E(EZq#Wd*KYQHPWHl!DVmVjT0Y z=n=%&fbjB#FH?3BHdsy;GV;qI5RV||BlMA{nOj(JGq`v114e-X!$4#(5ihVHAfBNi zfdC-s&k`jxJ`mR*TZ`1%Y%+PfS~SQf3)xGz$5~$f6Hoybo)H!T1_llS0$LO(3>5sU z41@?}vjBk{_*hw84Ou{cV8{aYO<7H?jEoIg9bAlTEREevjab1}4CLa>YH#f90DSSY zKWb=PAogGFKtccgiRzD^QK506u?O|ASeS@j=GhuaDsYIy7#$?tF#O`!3$&lKLqkEr z`TrCDp#mWw03H@XUV dl#CIj(H06qG`2(}%{npv^!(&X6c<5QV3IWDOTdY-M@Go-%eT zwJ=A+hZxj^_5}t)dxAB`=ugeDe2DKJj!+KdBPr3J2z;iSeoTu0C***_e+e)YGVB|B zd(eMNUD(*zfxKXK;r&xxz(t;4MX TX5QAb?1~CJ_o~bA9)aXX6nB!nw8PLW`NTNy+dbx*|)Ha7)f#0Q=ET= zNcRM1#E&?H;9=^4s*#Z_kjlzxG>xk<99fb!C=(B {iph V_ zO(KD(Y_WE0UWzAs`9)#y{;D+~H`_#JO#|Ljr_59IJ~WgMBKN4sX_+i nMk zfDJHIAS499g(uV#4@2xk-5a*L#chc{CS=gEXH!&*BbwYZ)X`7!Fv?qH?Bh0Dle4g! zieZjnc9CMp-uX$t;9~T4ygE*`zIOtbaZ;&;+OA}u5 ;#N!=o&+jE%k#WpC~TLPg0_|)s-vbp&-AnFTI|YudJYkzJ?i`g z8XVPuEpKIDuCQEg(^7(`yf;z_RsR&@ddg%f oR4y+}M`D!z6prJ)4rOXgJ~v($sG1HQm-el)`ez!{($4ONN^RMlK#} z;V$3s2wP%w 3c%O<4&@r4>+JvI&$qsp0O5C6o#kyN@8=9C!Dc)v%AbHiHlY!}{x)hw3CGyT9 za?A30v$iEOsrgw>-bL4$=}2PGtkaOz@j$tha+3TtS3pdeT3nGk0@0G{8AyfW7H1n+ zEQ|H3xrDN|=HpZ0)XLyg4|k(L#GKHl%5SpvuWSZny!Ovu$F4-rPI?2zEZ?ygCbOl! z>!jHxM|eTF-KgcjwK`3YnO)FjAK7EO(Skt#92n`YT4@-;(Bie5{iyu>K}W) 2UXjlgdNek1T3f!_%HM&LIBzY+M2z;6V8Bk&u6 z-w6Ch;5P!l5%`V3Zv=iL@Ed{O2>eFiHv+#A_>I7C1b!p%8-d>l{6^q60>2UXjlgdN zek1T3f!_%HpF-eDL&VF6avEai4EEd-8m9evA23toX-mE6NC1BM_vc<%zepQ$$B;bL zAHDtimmi*tQ(`%~tNWa@`b4uCoL4SR`8T={ikkrt0D!E7=v((J9UpBY+vW;Nk>+jT z(T~G9%z459i{{Tx&PiFu$6=`wkYqBa*?v#dA{G#d@xc%hVq^sb2QbpzB9IV9Uq~?l z0R=g&WARa2f#Lvp(Hy`Rx&%^c=+}S;T5~dTR!U@QOmNa?bX;OY3V_Ha6LbU>v K#mbp!?K7JZmyl|fe2HExdR3b<~iI9BK&I#o*eY~+M}62yserO{MPiY zJq+YJprdkyzDfZC+kKU_w*M<2Oe5easx|-2%!_q9{!N;r46{rCWjK^B0^v6R61@C~ zmAOnbfI=TxD-e?G7Q;Z|wH`*e2Z>j}DJcqc3|)B#L`vTe1-4a0LgjA%G8i}y$pq{W z7yxoLHh0|EGcuk);KN%8OaLgi(_da;g(#2eHJna3ep}cY4%NBP1Tyt;&t&$rWJUl4{Ig24@D$++?m`wB(sOy#n+B%VVn>KOFT>U1P2D|P#VUz*l p3Xv_}K=0)kTpc zfy4U3%DeOF>Z3CashGMio55rGmfH|Po_E8Y^q@F3?OLaG4hgn*)mg<%yt-5MdQPV^ z^&K}|Vp;H8Z~K}}I;6b{NW^$tXcwT{Y<9$X8=145GrIRXy61+ZXzp>Nmy?Hw3LKz^ zW^{F`v<|BuGDtrhCx~oI3s@m1BB5x} `By zmc?z6{(ik*f%uRDiRDd)X8+CR;+{uAOiKix?-mT4pxS;8S}ZADC5X5lBGJtyqcvoj zN1%Q9xg8d(rJiF7Q-{-epPB;2KfQ+?p+9@Zy^|;OO`Zf b?mnFRh@s12FnsAdN`1Tjy>8+mij?O;jNrb%d?L^8{Pl wK)A0_Hvr%Xk-jg>i^lk8^;3^ucdqEu7 zb HKM;~_B6td3eyMyz|>9D0aD$3r-3cG(BvBxx%Q zUBdW!Io02R%o3XToNy!abyKz)BSaK){mHViQoeBw8PzI_=rI55UR6jgrk>2M`N;rX zxmvw*8k8<`^(cr==zVheOPO-2a_4z>xDV(9myY`J6J{YODQ50GvW(acgy_hN-u>QA z58PT2nLhGiN(j90Vv|8%12>wN*=VVBD?XEK4g_Q;b{=lT=V+EY=hckb@t|r{@7zEH z O@EYkr&WV0Cvr;uSQ+zHQkVQ d0j;zA{K4^&edgno_ P8%ixe-&}`dI&kBDTza}14JD11Co$-3Y z6{A?m=8^`A-1ATqpUgng=o>x@(!z-=)DuiF0fE7AztZ>98ENC)^ADpiPEv%&-Q8}7 z?g+3{p|5hnLto DImLZbzF-Wb%nh+wAz%-Le5Gl)QRFhga&7`c#P#qo9SeU;_~JRl;KXvp*Bfg7R7D z^|*_U95g(4e; krMYNS@3fohXHqJ`GDjT^v}9eUgVe7RU>g?66uD@o-L5#-=DoibDia2C@6 zBLP4MM`*44DS@ee*^