From 593fd13aa51b5041cf64576e6f0460e9d95aafb6 Mon Sep 17 00:00:00 2001 From: arshPratap Date: Wed, 6 Sep 2023 23:17:45 +0530 Subject: [PATCH 1/2] Frontend Integration Fix --- src/main.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main.py b/src/main.py index 8e19cca..0288c04 100644 --- a/src/main.py +++ b/src/main.py @@ -26,6 +26,7 @@ def getSupportedDistros(): package_search = PackageSearch.load() json_data = json.dumps(package_search.getSupportedDistros()) resp = Response(json_data,mimetype="application/json") + resp.headers.set('Access-Control-Allow-Origin',"*") resp.headers.set('Cache-Control','no-cache, no-store, must-revalidate') resp.headers.set('Pragma','no-cache') resp.headers.set('Expires','0') @@ -48,6 +49,7 @@ def searchPackages(): json_data = package_search.searchSQLPackages(search_term,exact_match,search_bit_flag,page_number) resp = Response(json_data,mimetype="application/json") + resp.headers.set('Access-Control-Allow-Origin',"*") resp.headers.set('Cache-Control','no-cache, no-store, must-revalidate') resp.headers.set('Pragma','no-cache') resp.headers.set('Expires','0') @@ -55,6 +57,13 @@ def searchPackages(): except Exception as ex: LOGGER.error('Error in searchPackages with search parameters: %s', str(ex)) +@app.route("/sdt/data") +def get_data(): + return { + 'Name':"geek", + "Age":"22", + "programming":"python" + } # Logic to start flask server if executed via command line. if __name__ == '__main__': From cbf10a10a4adb8fc29d3a8c0fa39646f4f84b7e0 Mon Sep 17 00:00:00 2001 From: aashish-khatri Date: Sun, 10 Sep 2023 12:58:52 +0530 Subject: [PATCH 2/2] Implementation for react frontend Signed-off-by: aashish-khatri --- react-frontend/package.json | 38 ++ react-frontend/public/index.html | 43 ++ react-frontend/src/App.js | 9 + react-frontend/src/app.css | 587 ++++++++++++++++++ react-frontend/src/images/hero-theme-pic.png | Bin 0 -> 29242 bytes .../src/images/openmainframe-logo.png | Bin 0 -> 8802 bytes .../images/openmainframeproject-color-1.png | Bin 0 -> 25333 bytes react-frontend/src/images/sdt-logo.png | Bin 0 -> 11055 bytes react-frontend/src/index.js | 15 + react-frontend/src/screens/LandingPage.jsx | 18 + .../src/screens/components/Footer.jsx | 58 ++ .../src/screens/components/HeroSection.jsx | 44 ++ .../src/screens/components/NavTopSection.jsx | 19 + .../src/screens/components/Navbar.jsx | 13 + .../src/screens/components/SearchBar.jsx | 60 ++ .../src/screens/components/SearchList.jsx | 29 + .../src/screens/components/SearchResults.jsx | 13 + 17 files changed, 946 insertions(+) create mode 100644 react-frontend/package.json create mode 100644 react-frontend/public/index.html create mode 100644 react-frontend/src/App.js create mode 100644 react-frontend/src/app.css create mode 100644 react-frontend/src/images/hero-theme-pic.png create mode 100644 react-frontend/src/images/openmainframe-logo.png create mode 100644 react-frontend/src/images/openmainframeproject-color-1.png create mode 100644 react-frontend/src/images/sdt-logo.png create mode 100644 react-frontend/src/index.js create mode 100644 react-frontend/src/screens/LandingPage.jsx create mode 100644 react-frontend/src/screens/components/Footer.jsx create mode 100644 react-frontend/src/screens/components/HeroSection.jsx create mode 100644 react-frontend/src/screens/components/NavTopSection.jsx create mode 100644 react-frontend/src/screens/components/Navbar.jsx create mode 100644 react-frontend/src/screens/components/SearchBar.jsx create mode 100644 react-frontend/src/screens/components/SearchList.jsx create mode 100644 react-frontend/src/screens/components/SearchResults.jsx diff --git a/react-frontend/package.json b/react-frontend/package.json new file mode 100644 index 0000000..2101dc3 --- /dev/null +++ b/react-frontend/package.json @@ -0,0 +1,38 @@ +{ + "name": "sdt-veryfinal", + "version": "0.1.0", + "private": true, + "dependencies": { + "@testing-library/jest-dom": "^5.17.0", + "@testing-library/react": "^13.4.0", + "@testing-library/user-event": "^13.5.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-scripts": "5.0.1", + "web-vitals": "^2.1.4" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/react-frontend/public/index.html b/react-frontend/public/index.html new file mode 100644 index 0000000..aa069f2 --- /dev/null +++ b/react-frontend/public/index.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + React App + + + +
+ + + diff --git a/react-frontend/src/App.js b/react-frontend/src/App.js new file mode 100644 index 0000000..4d4dcac --- /dev/null +++ b/react-frontend/src/App.js @@ -0,0 +1,9 @@ +import "./app.css"; +import LandingPage from "./screens/LandingPage"; +function App() { + return ( + + ); +} + +export default App; diff --git a/react-frontend/src/app.css b/react-frontend/src/app.css new file mode 100644 index 0000000..cd0cf77 --- /dev/null +++ b/react-frontend/src/app.css @@ -0,0 +1,587 @@ +@import url("https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css"); + +@import url("https://fonts.googleapis.com/css?family=Poppins:700|Outfit:700"); + +:root { + --black: #000000; + --font-size-xxxs: 20px; + --font-size-m: 68px; + --font-size-s: 31px; + --font-size-xxs: 26px; + --font-size-xs: 27px; + --font-family-poppins: "Poppins", Helvetica; + --font-family-outfit: "Outfit", Helvetica; +} + +* { + box-sizing: border-box; +} +body::-webkit-scrollbar{ + display: none; +} + +/* .search-list-container::-webkit-scrollbar{ + display: none; +} */ + +.hidden, +.hidden * { + pointer-events: none; + visibility: hidden; +} + +.landing-page { + align-items: center; + background-color: #f5f5f5; + /* border: 1px solid; */ + /* border-color: var(--black); */ + display: flex; + flex-direction: column; + gap: 31px; + height: auto; + min-width: 1440px; + padding: 50px 30px; + position: relative; +} + +.hero-section { + align-items: center; + display: flex; + flex: 0 0 auto; + justify-content: center; + padding: 40px 0px; + position: relative; + width: 1179px; +} + +.hero-image { + align-self: stretch; + flex: 1; + flex-grow: 1; + position: relative; + margin-top: 10px; +} + +.headline { + align-items: flex-start; + align-self: stretch; + display: flex; + flex: 1; + flex-direction: column; + flex-grow: 1; + gap: 5px; + padding: 10px 0px; + position: relative; +} + +.medium-length-display { + align-self: stretch; + letter-spacing: 0; + line-height: 85px; + margin-top: -1px; + position: relative; +} + +.outfit-bold-black-68px { + color: var(--black); + font-family: var(--font-family-outfit); + font-size: var(--font-size-m); + font-style: normal; + font-weight: 700; +} + +.discover-open-source { + color: var(--black); + font-family: var(--font-family-outfit); + font-size: var(--font-size-xxs); + font-weight: 700; + letter-spacing: 0; + line-height: 27.5px; + position: relative; + width: fit-content; +} + +.nav-section { + align-items: center; + display: flex; + flex: 0 0 auto; + flex-direction: column; + gap: 20px; + justify-content: center; + position: relative; + width: 1181px; +} + +.search-bar-wrapper { + align-items: center; + display: flex; + flex: 0 0 auto; + gap: 15px; + justify-content: center; + position: relative; + width: 1181px; +} + +.search-button-container { + align-items: center; + display: inline-flex; + flex: 0 0 auto; + gap: 20px; + position: relative; +} + +.search-button-container-item { + cursor: pointer; + height: 43px; + position: relative; + background-color: #000000; + border-radius: 10px; + transition: all 0.2s ease; + width: 170px; +} + +.search-button-container-item:hover { + box-shadow: 0px 0px 10px 2px rgba(0, 0, 0, 0.2); +} + +.text-inside-button { + color: #ffffff; + padding: 5px; + font-weight: bold; + font-family: var(--font-family-outfit); +} + +.omf-logo { + align-items: center; + display: inline-flex; + flex: 0 0 auto; + gap: 10px; + position: relative; +} + +.image-11 { + height: 96px; + object-fit: cover; + position: relative; + width: 88px; +} + +.searchbox { + align-items: center; + display: flex; + flex: 1; + flex-grow: 1; + gap: 10px; + position: relative; + padding: 10px; + border-radius: 10px; + background-color: #ffffff; +} + +input:focus { + outline: none; +} + +.searchbox-input { + background-color: transparent; + border: 0; + color: var(--black); + flex: 1; + flex-grow: 1; + font-family: var(--font-family-poppins); + font-size: var(--font-size-xxxs); + font-weight: 700; + letter-spacing: 0; + line-height: 27.5px; + margin-top: -1px; + padding: 0; + position: relative; +} + +.searchbox-input::placeholder { + color: #00000099; +} + +.navbar-wrapper { + align-items: center; + display: flex; + flex: 0 0 auto; + gap: 38px; + justify-content: center; + position: relative; + width: 1181px; +} + +.landing-page .sdt { + gap: 10px; + position: relative; +} + +.sdt-logo { + align-items: flex-start; + display: inline-flex; + flex: 0 0 auto; + flex-direction: column; +} + +.image-12 { + height: 83px; + position: relative; + width: 300px; +} + +.navbar { + align-items: center; + align-self: stretch; + display: flex; + flex: 1; + flex-grow: 1; + gap: 38px; + justify-content: flex-end; + position: relative; +} + +.navbar-link { + letter-spacing: 0; + line-height: 27.5px; + position: relative; + white-space: nowrap; + width: fit-content; +} + +.poppins-bold-black-20px { + color: var(--black); + font-family: var(--font-family-poppins); + font-size: var(--font-size-xxxs); + font-style: normal; + font-weight: 700; +} + +.support-section { + align-items: center; + display: flex; + flex: 0 0 auto; + flex-direction: column; + gap: 10px; + justify-content: center; + margin-bottom: -12.48px; + position: relative; + width: 1179px; +} + +.supported-for { + align-items: center; + display: inline-flex; + flex: 0 0 auto; + position: relative; +} + +.supported-for-1 { + color: var(--black); + font-family: var(--font-family-outfit); + font-size: var(--font-size-xs); + font-weight: 700; + letter-spacing: 0; + line-height: 27.5px; + margin-top: -1px; + position: relative; + width: 1179px; +} + +.os-logos { + align-items: center; + display: flex; + flex-direction: row; + gap: 32px; + height: 136px; + position: relative; + width: 1179px; +} + +.open-suse_-logo-1 { + align-self: center; + flex: 1; + flex-grow: 1; + position: relative; +} + +.red_-hat_logo-1 { + align-self: center; + flex: 1; + flex-grow: 1; + position: relative; +} + +.ibm-z_os-1 { + align-self: center; + flex: 1; + flex-grow: 1; + object-fit: cover; + position: relative; +} + +.alma-linux_-icon_-logo-1 { + align-self: center; + flex: 1; + flex-grow: 1; + position: relative; +} + +.logo-1 { + align-self: center; + flex: 1; + flex-grow: 1; + position: relative; +} + +.x267px-fedora_logo-1 { + align-self: center; + flex: 1; + flex-grow: 1; + position: relative; +} + +.rocky_-linux_logo-1 { + align-self: center; + flex: 1; + flex-grow: 1; + position: relative; +} + +.debian_logo-1 { + align-self: center; + flex: 1; + flex-grow: 1; + position: relative; +} + +.ubuntu-logo-2022-1 { + align-self: center; + flex: 1; + flex-grow: 1; + position: relative; +} + +.middle-section { + align-items: center; + display: flex; + flex-direction: column; + gap: 22px; + height: 567.48px; + justify-content: center; + mix-blend-mode: multiply; + padding: 40px 0px; + position: relative; + width: 1175px; +} + +.sdt-tagline { + align-items: center; + align-self: stretch; + display: flex; + flex: 1; + flex-grow: 1; + justify-content: center; + width: 100%; +} + +.valign-text-middle { + display: flex; + flex-direction: column; + justify-content: center; +} + +.matches-developers-w { + letter-spacing: 0; + line-height: 74.8px; + position: relative; + text-align: center; + width: fit-content; +} + +.openmainframeproject-color-1 { + align-self: stretch; + flex: 1; + flex-grow: 1; + margin-left: -0.09px; + margin-right: -0.09px; + margin-top: -0.35px; + position: relative; + width: 100%; +} + + + + +.search-list-container { + display: flex; + flex-direction: column; + width: 1179px; + height: 648px; + align-items: center; + gap: 20px; + position: relative; + overflow-y: auto; +} + +.search-list { + display: flex; + width: 1179px; + align-items: center; + padding: 25px; + position: relative; + border-bottom-width: 3px; + border-bottom-style: solid; + border-color: #a89f9f; + } + + .search-list .name-desc { + display: flex; + flex-direction: column; + height: 97px; + align-items: flex-start; + gap: 5px; + flex-grow: 1; + position: relative; + flex: 1; + } + + .search-list .name { + align-self: stretch; + margin-top: -1px; + font-family: "Outfit-SemiBold", Helvetica; + font-weight: 600; + color: #000000e6; + font-size: 25px; + letter-spacing: 0; + line-height: 20px; + position: relative; + flex: 1; + } + + .search-list .decription { + position: relative; + flex: 1; + align-self: stretch; + font-family: "Outfit-Regular", Helvetica; + font-weight: 400; + color: #00000099; + font-size: 14px; + letter-spacing: 0; + line-height: 18px; + } + + .search-list .version-ostag { + display: flex; + flex-direction: column; + height: 97px; + align-items: flex-end; + justify-content: center; + position: relative; + flex: 1; + flex-grow: 1; + } + + .search-list .version-year-wrapper { + display: flex; + align-items: center; + justify-content: flex-end; + gap: 5px; + position: relative; + flex: 1; + align-self: stretch; + width: 100%; + flex-grow: 1; + } + + .search-list .text-wrapper { + position: relative; + width: fit-content; + font-family: "Fira Mono-Regular", Helvetica; + font-weight: 400; + color: #666666; + font-size: 14px; + text-align: right; + letter-spacing: 0; + line-height: 21px; + white-space: nowrap; + } + + .search-list .tag-wrapper { + display: flex; + align-items: center; + justify-content: flex-end; + gap: 20px; + position: relative; + flex: 1; + align-self: stretch; + width: 100%; + flex-grow: 1; + } + + .search-list .tag { + display: flex; + width: 105px; + align-items: center; + justify-content: flex-end; + padding: 10px; + position: relative; + background-color: #030303; + border-radius: 5px; + } + + .search-list .tagname { + position: relative; + flex: 1; + align-self: stretch; + margin-top: -1px; + font-family: "Outfit-SemiBold", Helvetica; + font-weight: 600; + color: #ffffff; + font-size: 18px; + text-align: center; + letter-spacing: 0.4px; + line-height: 10px; + white-space: nowrap; + } + + +/* +.dropbtn { + background-color: #3498DB; + color: white; + padding: 16px; + font-size: 16px; + border: none; + cursor: pointer; +} + +.dropbtn:hover, .dropbtn:focus { + background-color: #2980B9; +} + +.dropdown { + position: relative; + display: inline-block; +} + +.dropdown-content { + display: none; + position: absolute; + background-color: #f1f1f1; + min-width: 160px; + overflow: auto; + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + z-index: 1; +} + +.dropdown-content a { + color: black; + padding: 12px 16px; + text-decoration: none; + display: block; +} + +.dropdown a:hover {background-color: #ddd;} + +.show {display: block;} */ \ No newline at end of file diff --git a/react-frontend/src/images/hero-theme-pic.png b/react-frontend/src/images/hero-theme-pic.png new file mode 100644 index 0000000000000000000000000000000000000000..5a408c6f7b4de84c6508889e11cc3ae6ef23ab0c GIT binary patch literal 29242 zcmZ^KWn5I<7cMC!5(5L$okNE-ICP4jI1C{SosxneDc$9OG)Txx4&6O;$Iu@Sv%MBJUdcXN0pe6h7bb-gIHZnNe=@9O9ul3vlIUb`pO%kpPlFr z0v9zycMJ?7z`qwJMtUYS`XZ*go+=olVvKGd{R7A5rS?k<3`9K9y*VxhhU>Vx(#tpA zn8#TUUnv`^kr^!~kN$BObV1rU{z@21g7NrISbmXWas(5R2`afTV{PHf#C4K(wbu0W zPuObcsq>W-o;(<7M#oFK>*P55Ille+A3T&4jL#ebX}q5M_el!Y(v=|l_l-Kwg$4Z+ zUkJRR^zRQ?NO$DFqP_T`fPdv8$Ot+ASA&&8=U+Ky6|T(x8Ho9R25zqY{Xg@wSpP0Z zzvZ@=teVJ&s2J~26n*&)H+X;6&9}V++D^cAe{(a_F7f#BkhOXcM|Y;6+i{{`Mp0~ymS6@oM`gXuk|i%*1Io$@+5J%`L3Rxb>%L%rvZ;G zq*LS|3P!olkkyWW4r5bOw+*#Gbxhjyni>&jM-DtcdOrp~MvK7zTkq`m&alNK~mwpYKQ7$IE2MBaA$vWGuR?XS0d3bC=?7N zjwAyWBK1KR;T9W>=sVa2n+K_r z3O$wod%ZQfwvkW6%{4=*dwo7G|JZt?|CfZw_En>;V|ef3?B127EILe&4fnr?1)j3V zlTzqddiVa`gqp3xxmK)tgmKLOT%T=a$WNA`@)OCJLoe@6JJuq&Z@hS`AooAzAI;Yt zEtb<{p{ae?=Xm1eKY#utT98K@QL{h&4^j1ae?I;qfWav-RX>zb-oN#xCe$;kPZtN2{as_|&ZHQm{D6$6di!yfRIQ4~{Po%wTQG!0qsUuyPW2%_ZRpZRXI#F=v`+x_}hx?mzhlUR+waE(2a)xphkJnrA zhuN7NLm7wi#}bvV0K3{fkFn2A?gnQ+`jLMtJ(Z)I~qI*%w9Yv*P61fk_hbtoATt=doze6k*_-5*;aww zwT_4gIjafM)HJ;2H{*J`YmlBs#@wXzLN3Q5T1D(wgfMtWo|%+s4|TrxA_;{~f%NHW z8?UKoJ-JrXTx8FxHf zE?vZ^kv8otI9butVG?rG>-NkC;%1BxgaYhz)Mb);g`Bi23e|gchsslXg?@oT~ z6QFSBYUqn6JzsF54Re!fHxUh>oF$o6MVsavCAlTOXXy0&{v1yMGG(oMvV@=^(I3G> z+j~+bz@Bf1VTG>cm4i}?)wFpsjFWI-UW1nJ)t2Ih(tod6(yJ0+%!|T^LX5eLophwKjjJky)0M63!f0cuwLNBi zcI>8|BibaTn-aj7&XzTTy^H2M8<1`IP*tsXg0^(n8F;4D)m#5o+MXx=d9Djf=^&Z* z_g#S@*GWUAX@=jTUtz8bd9kgfMP@MCJo>>|c>sDqQ8t}4k(ED{MaKX4=sGxw?xb zmG({u_Ll*lZn&<8+}w|^7wbkvr{epnU&tWug0=l}N-TCLKuEuNBF3kAggl(p`Ng5S zkQ=Q-?)8+bd9E2OqwcI=g&N%`Y%Yke91pZ_wIJBthyQwfQ%&jk_3O?mI9yW8j~bd=byW-`}Q>N_FrR7yEJ z6!eRe?&5}nk-R*V-${+DAg|Gd+k{r_q`5K&=*!d@6p3HXeTN~$nX`FcbO6+`8$RgB z54kP~t!ErZI1P(3sD^b%E;Dnc&3*XZQVxRQ=W}y*01(Mb4KRM`=B@d-)wDG`TC^>` zGR}co@#cgoNQN6$_qQ7E9Ak%~-MC!O$k<~e#oq=~RD_(rzZ$=bT2ooOfe@bWLNe5z zM=%cWza!O%F@aeSy+G9*5`_Yq%$)?U_fS-tEGm$KvQ5`YeyIq+KHfC|PT%`_=3~b$ zB!&w+0Frzr}i^C;Y`}P{&WV z>OXuT2~uV<^1hdj%y(NbR|?^UIK6j+S}o~s2!rVyrWr&+dhDrh+tJI;E(f#CI9GDWaCYZ8NfQT> zxHQO@aL#zoOW*l5aii~kHERI_b#dkU4$}euMhKmi)~&^0Zh2kGp|z;qn!Zjna{2Aa z;U#!PnU?5D_>H{vx1Mnn&iJ%d|G&`bw$h`WO(1U=h_QRnm;5GJ0?{Kqvir?Vsa=vn zxyR^m3NZQT=;*mLfIDXs*1d0*f)g^H)`B1HawHu|s)ZYRI=D#TdnvS$d>}Hg^OiTe zJ88qusYi#-FP$a!7(X^>^CHhhinP$`tu>u@YHI4_DI4du-j#&_swl;lkRT_es@6JI zm9g8`@WjR`l^zt|sAK%)Qr6s4DL{>$&CDVLA@tqbk1O+;lDgs7=R+m71?{}RUn!mz z0stK?(NN(IMY96qtP*dIRy;YQ&3rc;Z=REpDVK+)e8vYXKmTK!8bs`jwG@FYHiZse z9@|6UwnTbj8oT=aUvAerJb)M4hLRA@D~-lpH|R|;_oX2-YNooU=Kb9f3fN|CL0d8^ zlNyg7I{k8>PJHw;3oAQ0pL4UUmZ;DqMK#b6M^R1GE|{SFk0?ilQ1N)a;bwW&UHzM+ z27EQ~dPAB%juPz9X-qDJ_^5F*ALSZb-7Ku~o2;g{n&``!kTM|$C4kO~9WcMH*vD-% zOV5B$#w*gIyAF!AX!i-Wq*-(MDG42NjO|^g^p!<&BS$OdS1ZZizH}?*bAObYVj&eZ z$07qpg;rAp^_})t#~PK(ap%R4pLOIQ57;^~MEvLHRh(+2X3@h4WBVk{MqV9AWDks1 zKf;+E;l_uZG)-JpZ@-#S($~t}eBP^+EYJwMlA%0JsTK`AQ6FRJ-p+LNwf$dxyPw<8 zjLU=uuKIx}u9!A!RPL`g?S&Ip8ipR9&4YcZ@3JP;Wp7Nh=ZnfR^G<;P?Ft7S2g!?8 z(8be*d26(d^6+lEp9OI#cTOK2^g(BZpfQBwMolxfem?h~Hn(%pu5ts|Lt^LI#A%_i z6I4D9`Kr)39v?Ek@+r08+{}WueDa`{fv}i9nU3aKpM4uf&bZHa!<% ziPO-|knGC!?&)87j(X6yeRqFO_H+#rIYCsUlR&INv8S%Yahmaq6^3fde&CD94^ha{ z5jfW~VD7vK@s6lQWI5d=1Gb>+QURs%WUOd)^-$)SA~>&buF#eM*48Yd%r@PgXn~ zeeG(czAA3i>btFY_?8R;$#o#Tp%cM!`jKB#qLW0CM3iWp~Abyb! z#&BZ~?#VZ$0Y9Ox3;%1y|5?yeXIgpkZrBvRDOZUC8Qj0ooe}irHZYBn)7t4gK!7bB z9E=C%`HI3w7L)6jGQVTdaz8|#sA^BLtxZZ*pu59|Gy!!v3LR<2>>_5jLgo?{yti$Ss#A|X1-o|-{J3fekXT5#(C!P(_JSy zc>lpw7QIFof^$D)g&ZVd%RNqhSM{oRcUUa&zWq(doE@`nhaw;N>RZC|uFuPEI;*_s zFl-H{3hd6I6P|d@S5-e`{citQPtF3{>Iy>i_eA_Kg=m-)F-72Y+X_?6|l5QqYv2bqAsR~Wz9GIcDn28uZxel6XJ6Iti>f~wQbQ9sUG|x4uFF0@`%&UrQj45kkyG^nDWaX?3o$dER*xF44@^DuGM?TQd<7 zVu22Wk21qzvG~icnW^ZP_0Vq<%g(_8@qr&I`bFGKJR-hCAfIjc=oo<9pOS8__+M{? zXUJPzpK0fv?p$(%)fh@#)#`U(u5b8D;xA^#p}a&O%pYG3&ZQjK^8UQaX@b{Hv>Beu zLdk2yks#@kk+a3q<_h7pq_0B~*%o%y)>KzHCP&$SMpPA}0ZXQ|`hfXdq+K|qoYMij z$2>L=cN3lCX%eJ|Vg!v;$(0k(g^TU{eYiUqx0WKKtP#%&(f-rYTc+*p{P&bakQS)4 zEDeeMtZA@k$uNKr-S7h$aC9|@cO4X(sJ?R0k5(iOiNW~N+mH5_0`0G-s`2-|5{Q?^ zRtk8oS^Q)$7U^0J%p0ej+@z@fRX`}*lMf)Qjhpo$Iu^G;@h%%_>e|J9wTnCoR2;9g z`K`C>3R`lpNN6N}5`Icr>hhnM!m_?W6J{8D^yibi=5B5e7RTE4U%J(r%gHnD(N@#^ z+?6$#IJE7W|Am?SxUoH*zDrR2(NT>!&Woj~7bN$XJtlRS@G1|qeIdzW>@_fL>1lHv zw8@`m8G*W*#VS@jDab6yll8v4JkELqq(Tmw>^g|<%{~x8+u0h=b%Mod()c^AAh%B+ z{9~^0*?((czF=Dp*~@UD%-?8Uw;pQ}Z+*3&hYz-9g6G6K_9Hic80qDtAzwm|$ywV& zao|Cj3O#9e-)DZa*^wAWEA6eu7#vMC*ymp6?l6Q59jCyV67NFqupLasL`-Ov_(H#h z>SlF8w566whCLyNi^!qXD#UT&qzP4cMKgVp)ay_bn5)xsD`N%wujKMY;WxJGtxh*_rOB>@q3Pk-s%jD(nQThv(Ns?5SRjo*wdpU zRPxVkw_R}oFotepn}55+12cVRz@Be1B=u2_ov4YI4u+ecs*Zt|7jl=znr8gV&zzfP z!&az*aojX`+YeRbHY^z^W zdl|!-!kZX(fW^g-$V>%;AIsh1CKQ9Pwl6p*vA5@uLk-(Y=>$q`MNEhwaS-nyYTgG{ZY$!Z+Y(NAS5e?DU9;K^?<*=al=c0 z@M$8OyY?seJU0jwS0I-bp%^?1)~Z@>V;*pY39^0OVOt+$p`@dF-~QPU7NWyTUagw; z)E&eR>}OM3Oyn6zk7o49jv@fZ=a^**$#)@@`idq;gA5IfOVk$LJr4 z8V!VUj*h>;O+{Qbzfl0KcsQ!sQ@>LR7t)dDp!mR6&gR}I(5JV_U1t_X{;H^g-bp)n zL^o5Phxf%`e-eYDLq!CiHg+!i{Zn?6Sme48G3F8(?N+7-^;WF~DQ`%+HM1^&e{RRq z-`{_D7IV%BE4>;6(NnbeFBqTN!Y^4R-N8UxtyPOULy!q^4zvcB&E82vTL zAgM~*Xh!n&3@fEYu^2wZs8yK1d909>q4M{+LS!RyQ&Phu*3q%1VUd#K5(~Z8RI}Pu z8IF8TXqX5a|+_QCudX`1EM zj_CbbCg2pj;laeD2HG5y(gnjn9GzuwYOfD`laqZg zoa>Ac(Q`e1ykHu?ZoOWKnNt{1&mtK4KL=<(D54#3qrxo3k3=$Uh}6A&$CC}}NTodu zp$0Ovlq+(nCat-FGQ=V-GUh!6y#TbdSrrtfH^^UyEcxoq6Y0frh>#m6 z=bfg3Aww;Qu)cIJ%(sh;m8|8uNa5#gUBRu1X*s$az!2S;S<9PPCy}=nO~kn7)?%gy8MI{^=H{Y;6?h8ZjO-6%XH+D~ncrT0OXy zW;zBD^E;8-_z14(x3g1Jwod<&^#9fU;wjV#wm|^%%*iy6vR#YGM)t_0BXVtb+OUeO zFKu$%!%wpv_&{(r%>eC4zdmsUqHt-lTn8QWE|$#Y&@mS8g2K&gP*5}UmkZAXop!W2 z7!>pIKC^4nQ~e@7oqwt>xX))O=~D(e&p+OC=SFwZDtu19j{`nzw9eHt&T>|RQ=5q( zRApv<6>5rsO=pM?#bR!1H!6Ye5^W1x zV!)COE3RK&LmpBe)-q`7Q~?Knmz{lZuIYn(ZGAzz^g5$3?K1mcW0X)}mIRqmzOsd< z;Lfjv19`Lq3**xIgZ)>O6M@B^kOSO$(6||;L=(FSHR)KN^#@gfF7#j^)vKV49;eA? zebWqk{RCe3Cc5sIz5S#XZs69fohwvTBk+pH3jkRCtFArlYj`V4OS`ld+qFT}NP>oA z88P-1?OoCR(#@C#Wg@?-575oq{wj1x1u(7eVG*=1WE^PXi1Z7#RV0j|o46{=z!Vp+ z@91Bc{GY=~ypo)`Zoz$%pbF`(I<{U|k_&OVuT@bk_Vu&IQ_|F_U#Dc{FkqKsx!wH1 zt=nk^@_67MMj~X8(!DQOfaRn41U%%lRllrE$%56*#op|);$2=x*Ke>c>)Lz>0S zi|7B0EMhMHR~roTVamrS1EuGq5g&WJcf5zlN4GB~(G~e~{K617j!DoIyg>p;lCKx8s{OaeOl3D^WBN9w2*;{$+JqM3* z1Y*`swO;C_#DfEK_&OS2Ie2`J24ch{2=aC;^B_7{_BZ>*Ir){c#LYWsJXO-L3oiQ$ z4bSYLcWcAnRpb9#8K=0WTRu0)x%s`LIeqsR%@z#reZKv(U-TGo{mYy=qzunue_(5W zbt*Ml|4wQ;yLSnE8yNa9_deil0BTdxY!VrK@sB#dCyFRYo^|;2dwb9s2he%-&&H_N zO42m{kMxM9*4EY=9c~>|5iLSS7!9SgH@(>V5|ZF!hW)v^T0j*$V`$YF6xS60hZVRj zt#5X!7Gv<=ca?;XV_q~(Ycqr+HWn5{4Xi~Rxuquxol>MQ2ZzC!&Z(JcF&oUe-#sMq zWs788!ge=0E`YwiXU4DB3TjEfgiBHfSX$#(W=mWka7F~c}BP6p^cq&zwzj!D2rGFFC zy0_31ZI;ev6+0|$`5Mshe__A*n9EK(l*fwRG%=yajnmR3>e-WU#;3gzArkfp@1NmI z)d$kOEyjK1xafwOA;8Wcy1Vxl`$4k=D9(WJh(-=gEz&Y8BRbhI2f$SzsW6ACN3y;I zeMDMm#7VORDHX6rw3pn}NctTm>=RS&gvM5MFZp-btz(fyo2rN(<1IbBk5~95<7E9zq0^nYim*wQ1#)ilsp{nJQ1l8)eDkT<3JpT(nQ=av(RvCeV+r{a)E(&<21%%*RshWo{Y=LGc;+H@Tmm;H204$E zN3DPrI?1scjE?^Xw+mJqf#5S=NvFbDpM>j6I7Q&Is~a?W;`RRQX(k`OaTjHR>5p3- zCcnS_3<>gzyHa4>+1 zpXH2&uCL(1LrF#E6vKEG*e7B*+Lh+RGuTb*(&tL(`*y`@`tk!gxAwAMiodm_R<7T% zs@AG1M(#D^ST?DI9VGuM@sUNR?#U}Or)#v!(KB_ieaW1!qE5w5&b4wooP<>7=jYq& zSc5$M_D7JbAH;!IGcakzyRCTnu=_F6e8}?asPA|PVKG}$?(dkBraY$Z*?0K=xW)ac zQ*_mCr}|G8#GocUf;67QS9t8&q!!iTpk+AgwM);&-R1pQM11h@`9I8f)GdoIh}Tt= z&D@e-gd^25P=a~MUDS&{bed2}Fz*Sq+rd%EIg`B3(H&FVlWr@`MEs2~B*RqzFQ%CN z!IJ{+0ZPgrh!?aYEII?1|G0`OAEtdKkd`k%3#)zlaIW(7zGFt3misI>g=_(=5Sw|< z^V5+q$xNDHKa2nUNcpCPx%KPs-Y$IV;mRY-}1iA*_aGS&sovfoGl65Rj(i35#vs)Ao^LC5ZsWbWeicyWYZ7Z=m>|#GN$sv_!z3c zE`XUJc4Y!Ohr%=k!MnY1f_5~CzwJP}E_t|5ZFz?78>+`m*pfJWJ0oM`Myq7=C7-C zDiRy!3ZiH8mVOhi4STKpYQBL%^^|+>S)-ptBMC;J?or*52~LJB^%`Tc4u%5WlJ&yD zbYO`tn!s?^KbG+F`Nc)H&VyR3JZR}G0f+4$)yA0DDc)?UXJxc#E*e~4=)us_9MeSV z+>|-`lj~521U>M7l#1blN+~f$ie4ERon zsb?L&!mI+ER|c;!4RJuGrl$OboonxD554DwRbohmUsN%n6$YmcUv#^Do=)PNr9cI$ zTosR|(6R!`td0i$qc+|RoELZumX)f<1mXW*1@EsGqqoQp><>`9*01ua` z(OW;gVlg*|tZqpH0VWpe2K;#dOmBUIdBFK^;Bei{6u6j6iY((4*urOcMW`W>+eD zPkpq~NVv@<-*2gPA844K|x7iL5Kr8_d#sVq$L6-ZOk z9cn+e=u;zC=Mo(6{_O|gxT)?()CyK<^r+Opnbe!zv8H#_9&Mc=R%BisXx+)h(Y72O zde_lR>`q*!K`Q4U4l9v#IE0MYg#s8f)azf@i(;_u z4zZ9WrPQOxwdJrZH-sg7f(gTckjq%rnc&Me>~52K25fZp>;zNqUe?oRvxA^M5*BOK zS19%Yoh1#@^7*&XkhE7-h_@GxRkO=*Jwq5Ig5`vocS9Va0`_+Yo1>Nz!4`@C%gCnt2 z{lwkM!f44po-u+BG>}(IlQt)K)zpoDxXECA%)}YQ7n+Ru8WXKxh6=@brc zDScTgrr>_KH0$i^Hf$$&!){brpZbUXd+z8kX>rM~Oupw(iAm)b0SBn1@{SV(GjzdbKz;v63I`*glKz&R^bjN)RFf5u$i1wqcUUnrc&Gme;d zU#$f&-kWUqNRgvkoJMg%xuGM>rde6YEK|qOeWm>HR~IaJoNNC)BBT3s*MM;ifV%zS z=;%OGu6=R#QwCjj3pgbQE3OkOnyTc`g>WHkQHU;M0v z;Nn9w>8MHlGs7e@#V!_LowrHJOL&+&h{LkT49vAP^F$d99gVT6<&bdO+A^m(blv#+ zu{(Ej5aJjvl-YwDUQ;%7M)QPJNhfytJ*iex*Bp5a^$_kG5!z;PGF_Rk0Nz^}3q{6| zh`C#A{Tj#VOFg(PTWxz;s8a9kJo&7Ua;Jx$T z-nRZ6z0aOR>v0nD@*S?+{lm%uCL6(0b zH6l1cTvLH9d*zX?t`<~Pjhi)95%ue6cB>2dTu76R(c$Z-VFDF0T~e;=8c$r`QZuZ* zErUe0gP^7$*AP!cuQ>mS}wdBIoKP2i;(UW&FM^3Re5G}xv z`IQOEUueF5+1eO%o0i6Gz*Jx#4g9R4BSq*GuCu7f>*7~SfdeDHjEp6D68@+NTA-vg z8V!Sx^TjD?7C~5zTtK__hs~Nb)F`rs?Oy^Hw=l(H)5zO zqvFU&p*L7sz4WA0G)FAvc2gfkpjxwwS=vL3mXTX5UI?~<@*VpiF~ZYO|1UV-InRg{Ham70p*Cc13nnINzt~vf|kxEjDH!Y{}oVrlV%wvF!*xDEMvH z){dtOHD91QA*&JjbLwA14uEri4 z6yGcQ)fjIzUh??%OK2wTw|}#T!{CqC?vk%15;+>1B71LfQlEnq3Nh;qP)C2nH1sG6 zmem`@A(?6n+`OizovXTQfjjvHk1r|Y{BAv%{q|Qr#DQ(G?N&s?WPl#Ci6-PVpg}fV zOxz%SX@Cy3$%>JEk}n@TB=xDnD5s}rN5iZF zz|Fg&(7E1bJo~k%6Gry)ehWYF^HX>6*zZvb<{^ODzy4gZ+)w7dHdZcI^PHUgV*v+| z%D_tKN%L~qWeILJs_65t5&iMJE5D0!?LCLWIgH8PYMuwf^AR;VK8Du^i71Ryzm&Av zXyhPrJ@_-%Fpi`g8Ut-u^KWs+{q0}yd$*BT@`W4zg`xvP_8ZDOK9SY2r`Z-q?U!SR z`4>G?_wt!{^$sHoGtZo|$3_PjXs^o8YuPJGc&SdPyd=NPhclQt)_-)HG`V6b?$~By zdddd_V#3Ki)he21&2pYcLr(nOKltnML~y6qJ1qCsvepKT&=(`7G>p)p3hs%Axh+ZK zj~!#`?Bp2+s#6Jhz<*Qb`FqoJYDT>|p=a>o$L2>Qp73s_FV7c|d&T1f8)@_>+)gOZ z0i7!No)?P&$mcB6s5$w$&ZnjKo(FYCL{?`jftLaICkV%JgjU`4N7F{SKoRGU{@JTQeHy$kf8R>Z>HqiUMXv6zW(%4>%{BlV(*EfxkcHti-iaeYm zc3fdG(_)9h$9Yba0)Yn?P5ki*hsVEv3tvnB@G5pq=gQA{3oVT)FfnYq%M6euVVPYK zBYmWDm(GvRd%|#AOW6wS_#zj(w&wOMEpJkJ4o-v6#=7;~liaj15_}T_fN(tbcJwkj z!I}zAKIFekXZA6E{Y9DUQuqQiAFj=qIHcr@79~S z^8W~pYimi@-nfh|l8XG$m3ZhGq?7%VOIwmB!lEGcGsJLMd}u#qS>J1_YQRh(mpMZE zkJSCsO~M=t!!!*qXrY;KP;SC$puFp*V;_>`lFnBka1qDZgj5gsn(l|KCpqO@>^Or} z_I$G|U^-4$;X1vJxjwPb`SEUAs~_!lJOb33i!O1)|iA^Vj;g9 zYh3-NX87BO$Wz-JQh{kP%LBC(nb9EK^oa-M`h0-J;e>REbE49)6~~ji_ZeYDN31U* zeItU@%}WnyXVVco;Gpr*NPR<1`)Q&4M&iUMuOmJ+&1DkrONU)BKX7N##R(=@XyfP)ZYB&t zSMo=NnJ*Ttwr=W1GEXcdW2N*rM^grlA7sIPDlKtI(^-<*&qUA)n^@)3%afHBhpDg$ zYgrGhCY)Yd`uKox*&+U|^O zWo}T?GGAu$g42n|X`@xN$(r6>(QlNXgkpxbpx%KmuJ(uiSo0qldP6cGzUOQix8E=GM4VNRS zEk2-%S1*X-l^lBvmb$6PZH+=1pK@o$rQibqRwZH>$uBt8%Z)Q?PPb7{PH&w`SK^73 z$Sbe`gtu?UA-Q5^BmK9or;Qv_U_L4ma=PGn(KGl&BKxGw8=QR!>OrG-1$F5ykKYrTAB_yf72zLZjE1jk zGDGSTk_W1H+cc~s7@H7jAAKj}@9$QJx{LkbGC%pK4J3|NOuW#%X_n?tTS!i1A!d=D z*5cH!0I}rtV}#{PzAO4yzvk5=i&ld!`3p0Wp}~Wk{jmm`opZ}?{y08;@*y6cRz2$% z|0%CN%^{ppr=*&yrambxIW1IOGvXT-(Ik|tZtkc>EIG1*_|KX&T=~=Rby<@4cZRKQ zo?LqZ?-69));g>BlP_029anrN-}BBIl{JFRLjm&{EzbakV<*p(P4}pG(^GKy*$vN*H{W=$#OZQ@9^Q0)%gdLBoOVIuOk z#EP$)Y;e@IHq>^gO+}_ZanlwAoSN$4;{V=!?6wQ3X5f=mIF#fAUM)*|SbA^NDsvpA z^VujA>mdF_U8&J4%ek#vjo!b4>|K5q5c*~gNC5EGhWhefeM8k>qk7!}3&OlLhk5We2bXcF^_U#=HV+D0fK?Ly5l&Q>Ff<*1D)-Y~}-R#*|3G@am!-zYH3SFfBu zwp`257ThrxjG(O{oF%0xX*Fu2QPzJC9&hWPkIgFU5xZC((PGZDj`18)Z-?`UyiRJ) zeUjH~R6XI|Jv5B4IDP?(Oz*k~bQsY_{qXyl&5h@VJ8jUl<`8KZ=YSuViE(S-4*Hqv zA0j?|El(uY_sTJDzbP*VED`h#mgV-ugNMsE+$Shgiwa-#Bel2%;YP@(_!LLpy4gPgS1G8vQG1eU&xhvm==!NSZISpxZWN4Ol@-#iE z%?^hbk?GVxvfPAGMZm>G4m^i-2@VSnGY=5xl9WP~aIx1fIJD}k@AC)EUW(-wYAU{4 z{8hj>Nlwr>Psw+*RrI$P7OObk?e%<)`V}Gpo?YQz z_TdWNjy~ie@H_r6gAOWg+UkwSbY2z~E)H+V=fHtbnm)CYj$&rBTtJS(4w&Sj{)(mpU$m6q186O(O_{Qp4kL^+M|wj$J3GJs z>`xcs?MbIm=|7~;?1VG=>)t&>NyS((c66ARZ8eqSx^u6-+p3*3(#g0i#AA0@hw=ke z*>?k1M)5Ht^Q?*2b&#SLaW?~n%Fmx1X;s}RSA1_f=0LWI9WsZfmtREIF4tmBS;txo zF~c>?%EfY3xp4Wkmq`Bugcr$@j1n3iHX%h7#*;m#8xKOtvB^^ha_bYMWbw`fhqqVs zo|*-(eUIp7d&4VdTZED_hzK53;d-^a2pK}GrcV!z4U6B}6j|ClcimF= zLjcr5zU5ZB{X8Fg%;iD-b4M_^KLB_13{UanXO#FQKCR)lZ9W(e- zW=xFR(AYsf(YO99d?~?f5-F-D&p6~om$C0@qj~)K=~sLTK1IXgj5Y{MUi0bgb$Azf z`+FC)>FD+yNbpB0U+>w8e7l!D|V%d~$M_AyJfh=eHe7vPSP`I)z;ee8Uo>bOauFN$0dL9*O%OKZVx9 zwfpp9mT!4`1E=PFSxAV>4^YyFEc>QOV#61{vF9aIWVY+nptv6AmwQ}AL~#~qHTXN?QLjO9O><4UD>ToZhGqEfwB6`R9gC^9OlX%o#tzi>bz^(Hsj{*0YkzOI$*mvHz(k0FOAw`O1^ z3G3DSBM|qt^Fn=Cy@ci}d*oG|CpiLgL}g`rRnz-hAKDOy>N=a)`~NPjkJGE+)onbUx{)w;$bX4xWBjC6yHh~{H-U%d<_rSt{0ri3kbisq%Z&VQIs z{3}&kDkW+YHOnwcQI~H>Twd9_d)cqJ_1ljVYn4+_H~Rlkm3-iKr_eSu|n4D+W5y|1O^L4}Pf)$)Quh9sXx z-oR}=z^Y@KyO`0Xalu}WwSP&C8t&_Ch`c^U_m-Ai_@;K3D3d|$xG^!nIVMY>SY*%U z;*e9Lf9r=>06!e}S&qeu*sqz<_D)D0lxJ_TqbQ_TH$L4%@{d~BaZ&d|xeHd^a5ZFEiJ3@uG?JA) zoelnD*DLj^oISrPVJEYDV=&`kqGyOLXM<1#Q80CIM(h-4Tr=3y_)(Ev16N=_9tb0+ z;WY@FO`ci~l+>QDbHNh(YO8VIYcDpNUZ$TvNJ(7+sT2e9dgwu(x|!IpBMrIJFBRjy z65z>d08Jw9CTz@@IoBq3BkH1a9i#RPvWNm?@!7$%uqc)JnA+dMP1^HqXdkC23ZzuI zxLQR4l`2|KZz{^tu=?wEkM1pqv))e8skJ|C*r+LJho1QAiymWxicnhz4#v`m&(0nf zs~nc}#p{v`={v7!zch7iwW;rr7`KcOgp=wpz33m%WAX=g=fX4iKl&)##Uv;XQn6mI zlnJE=kfCAl;t8m}0IP>Hi_hi-GuJY$eu+6O#cLq=%ay?By-~~ApHcq-*U|Di{LsD^%F{3OI9=_Wq!3QgVYt6XbJ2orfNx8^XMuyeM5jnc_WmsZ||M>Om?3i$C<*8*45l9Bi z^c&5nST>!GM9^~b$BGXkO2Y-Ii!2n2>JBZR@sq`pS%A-;CM|LTxzaAf#X2CPmT>6N z`x4Slv8FBJQxV_C+7#jZ=#w;CT7N!})l9MnKit2)sOh|uITSEZVwdXXicC3y)_&H? z>ul5gvTx5c-hx=t^*jybeg9zLEUzjlAKGn|_7*dr@TJdkm@;zK&aLeR)aJSGFcUvG(xkwkMqAV4j-bn8v|v@rcjJ9r31ipsb4qlpW=Y zZ|I}Pc?N&mpcU^Nn?Z8HVdZpD(2UPPV)<0x z>*~~_$%|Ej~RLIk#^4Oz)T(y=+)czudzs_M zDmKU{@@feGbyrk&E7NX&VO48cU0$x8cL(06O)>x!e@q{X{f4idHqsA^i$~Y60px0(^CJ}w87NJ zCbUNGJpmGU2_?_?F(Gf%C*PYiw~JF2)~;AFAGs0@%t$5gV!H~<;Ko9`@z+7$LGx6u z{%ak9u0%PT=(kGQPo(Kg7LqAY+zoOpz5J3wW$aV>=q-dZwLLTgK4N0ejRvwLITNU% z@`M-fz=CuMO=(}44*R0Vfv++PvgKp!_{O>wP)b%zbV>$Na$RZnXxh^c&7;2OO0@fFbP!Wad zr(}Kx*~*w|K@-uzv^XfMD=xF(WAk?7e1M~hrX-5s#nglMA-CjEHoQ;eZ3*Y7t&|%?5Gl*?9oI3Dir#a0h#Fa z|IyLB#r9FdsP6|I^gwwy-2)}|_1{B;>Q|h?lR4~ydig@2!?|0=nC7uNlfw5ui-;qS zKWg@~_zR>cc|~fS#F(=HYsJ_(B8<(+q5aEON8erue#~z*sDX_C@2ulN3Xo0-0p?{_ zRwGakYQOv6v6k03waR2h6m-gn6$4ziI-zey5wxLQV!DtdVUd~v zr5U7`i1!x+EkAr5PHjp+hMf!D-Ieu9XSSkL;s^^B z$VIGi8V4gKB)DeQ8bD5Vv_-${CqH5(u9?m@0N#ebrJ^d)F;g@fP5dfK$|Fk6>G4Xe z!1brhu+Xbh*XawKwD@&Pb3qxe8Rw|inWaxphrCkW{_h=F+_VOMNZHoY+MKd70lnvD!Y8EfL@9mg$FI$oek|k=4#whn z<3+!O@>8d^k!Jjy>GXFa!uNXGe9KI4*NIVMpuFAsU>t9ebd1Zz1_H(e#V}Vz4cWT7 zkXyl2$J@A}pr?+lG~WZtBp__7Y3oNv@?G!n;Z0vozT_xw_5IB4LngZ8%>12ev&4U+ zqUu-qY}GIv9vtnUr)rWzJEvrdS{$1(FTjXKs7VjnrZ!5OG%^aut~6Rk3fr0YgXN2ORyL9^o=xWC!4pQ8mJ&8;T-@gqj`8((?rzmn0H-GrKe-euxYLqAriukOG@UUfTOru=#wB_d&cEONLSd7W$HD;Pu!|9))dDj8IUDEgmBElY6Cdi^^p<<{w#< z0hg_(_H8Xwst3QKcioB%@bg5`LFhoiVm0ntAUwFcn2mv=7`W{#WDR`wyh$#K`(HLg z?!5npJc@`tQmc)PzU!Gr3G9Ixz5F-n1&4<;GQg1f{3g}fp|t#kbLQ3{&q>XT#iHtd zE|V|&Y?MK9at}uhs-!@lgtTF(tYf!?6s$kj zuA$t3-U$jdpx?QCDedmi!R~nrkfGLB<8rfJ^tb*(4s=~f$E82tiW8sJ8(mEjubEY| zAu5k888IrMSEh7U)20}j_^LxmC^|a6xSTh0jHY0fH60q;jtq)ENcR%g7b6!i5-l;w z5!`&CKl^en#X@>3sD!1$0bAg(?=ONKw`Ncu@>TjvvjRXd-|fly51~oCZ!BbDCx-- zBQfWLpX#d7_$~-Z7W&S|8Uo3T!9C=ZLckG!m0$TVPI$njOsI0f1rPaALFy)m?Zx@= zPU;1wT+Qo=R?28)F%;Rn0VIa=l7~$yNz9emQ z?SDf*7jYH}c(>Ht$wLW7ooy{lJt)#7=N@<@c|7a_$i`!6C!t00mHdKL|3gQ<^Tf79 zqo1jJq;$eUQ<<2#%XK0i7{kyDe8vdidDWm$&bRowD#y_s6`=%GO)pl>Q8Onx*Lsh#EQVZt* zzEsE?tr3Q`TK~=$i|Rmpf>zJ?%)IEcbrbw!jZ8~vLS5~%k9ywG7x9UOw^S3(QSf=S z>xv{3IOPLJWJh$r{x|6JWiid*ZNK#X61MPo1JHk+x-@^26_K$V@u@H7#ZvJ&Be1x|nzV!0{@1*!ePA0(C*f-((K zCb1`tMNbwepq)0ZRSV^I;wxFB(I|K1Z_U|eiNbz!_a_H*b}tc>1y!|VaZW{XiLbOY zvo=~F0dHY;6@I-Mu$SCvySx(2H*@bI+TP4DDD^C!#gp^j7*?G~>B5XHa6BBkWobsg zY!-ApY-ha0wvvAy~MIZJ04%g+E+ zCnYjN=YvF0o{UgN3{)GUF`Y6GCYwqXFIBd7aPcjXw6874!~l~$!W~%BE1l(T)}3^} z>sF0%DEGY#x7^YA^Q*=uEeFv)6~ zgq4I;{_b#)C3AXX_Nmap$?jZFL*G0%?3Q5NAdWDW2{Rt!dNfUR5BhSrMkOYc}gHRE~ou?-IU8W-A0Sv2oi&s)ZWocg2&bDIRs^JUx~+HplMTt4^2@Ma{X$ zTHH`+GaE%|PAWy`!7sySH_1WoAO68Jtp)Bz*oS#j|E#L=x_zT!K5D<^w?9^uM_qQ- z6nJ|GDFSZ)+p`G0xVJKYKmA$Fe&O7r9Z)wLqB_5{CK+ z;H9gxU3TkA0uxoG0uw24mxG(Vg~uo2jr$k!bG0?bmpCS=t!onjxf6%_GueFEpkba2 z=()Y+_G@;f9%}7|Pg-O=okOrK_fT^iMwhoZ#$?00!9D9Cop;{Q14_`QOBMJLlEqc4 z6Heec6Qxbt_E6~QOFSMjtJYkn$pK{2XE_b zB`Jb=YCc18vvI)h(yf`9Fxe7yCdu6 z0}uZ(ga<|jJAAyp0{M#8j^^P8Yw+D>Ag9l5FxnPTQ_y44z2Edb9K7=vsJL>2vFHX z`P570F*_X}GeWhH-y(5VfemT$=DI!^#Wlxb)^N`?^npvj1H0KOK)MAVRI&F5xYBOC z+W?$XC0|||g9_~P%L5Q7*pMW%Y@pBX&x)?oX&w1DH~wEzcFl6G&nTKjE2w{*{v>5) zpqn!@&B=cn(1_~7!s+3;9(dDZ?d=|fnyLo0WZJ59i^G!g0xdI(RMN`j2|c>b)LqT< z039##V6v*2C_6{Th11W*6Bgyv_c)5b0oODeR5=Rh6(T==okq5j0SpmQZ`0QY*Ybke z`v}bg#!k6 z|5I@h7-M(6Sb+$&VdNbysz5B+L%&7Dr3J!)vYLC>t=?SE#pGyTnS6Nz&zW5IxwGWP zWg_}$p}ABD=MFE5L0uxbU&TLm%~S`0(ZSP}<*P|hkl^Sp?0~M3xBo}+I}EtH@p-3b z1J!^O+e6vly2?OrV!LdR^K-!+CWI_SQR;{ESj@w7W#3GNFZ#cH7ik~#OE{}ur?8xT zD{fZ*z4+WF7B34#HmbF&J*lM1@ZW2btAw>tfS9B=Hh3DoS!PmxshRnl%D(K@A-#Jt z_o_J4DZ+z(_61>6K|fP@_=;isHmFkLi=hq;6PtA9JZtrf=p8VA)Yakh!a0*j?4e0W zqgDX)uN_s;fCSE;#piZXt9V_|M>!dn`c@r*{VRqr{?rk&eZmw9*ey3z6KC{_XOk~N zo~C)eEZ5qtI+>n*Ah=lZ_a&m&1y`CzqwfXHh?edezq6tM`nZ0`7JtB&K@0 z^$wRfg3sZM6MxTux>K-4K{NhP9tx<1g*Hj4ejdN(3`2fnP0un}LS*M?$0>W^Ct7RC zlPzv2#IuE_vK9)-+T~m`z9@c-^niUO(0o}Mz|NZ8w!16|r<$~H;CR#BM>j&VKG)`g zvxTeq`@bx9t}71yAx5B}-ecw9fA)mvTr*X^TGm6)$9stTqe;qB5xt7D+**H;5>INK zyd}wHYqXl^n*I=Is^^1P}mG%zqQLp+9qS`Q?uKblImc7jUS^txFa1fYB^0VBmbQc;CF_hi+ z=vdkncO_16XAXFr$K;qq{yy{#Rti(6b9s3weGUuo$XJy66-K5DRIncVzl&rmBBTV} zQrT>@Ft@R*-zLicuS|DWHgriaU^S%mj>)zr)rUQUH4QdfL*DZ#63h|`(>xRt_Uy@h zC;dS#L^%!set$G@-T;|O>+GX1sq)u9bsL!Z zQ2K5g2sM8Ut0Y*Q>xjA1jvvR4Zl69?lU&c0R^IZUDPe#=VkVLn;%-d!Dns$#i=<~_ z7&H(any?XRtDiTC+GA!wQeRT<6Yh^O(+tC1P~z|3OqR0>dXPH4o<-0jsRoGlxuU*# zcK;(eakrwnSW~VFECkbOnLF3Txq4kcF_&vK&iD%maV*A%e0sqvs~P+H4(yRH@Q8mT z_oun@9Vt)7&lc6>2vpSTUY_K?WNTR$#7L}Ku5>bDt%k1^AM0c|}%|>ulVH@=jzoD_%luZO9@e z716Q%l4*Sst03_KfvaU#k--A1mH8)jC8y7LYr#%-+klSsPFkq>H5${PWqM5}M>_Xw zAoDcdHMZY;?4HkHb1%3r!WglN{+beso4az~jgVKif78#_cu6&c{_M^iM~O|0rdT** z5l?V~z^fLD_7PLEjvLDNwR!TWP#nB|ZNJ)e5~`XQ6QD4GOy{=02K< zng(|EZ}l5f0I8`JM1w{(d2bz9r^*}R3q8NMU?JB+QJ_oQoF zM|TCCDbT~`6{6q-wC>ZS?}Rm?8bD;yQg=#S?yU*Bv60`f3j%5KG#P!aM@;j$Ps_Bx9@abVYric-%|BT_f6=9zw1&#;L1z!gXB+?=!D@1TDDfOg-`_9 zDAjd$W#y*948vMU4W*g-U)LEfpwyQAHt5Ji-0E~XTN%39y2N+ka16K7ZB zT6IJ9rKCV?XE##X{8~vd68`JVYyVtQf!DiD9lKpG;i<*mV(UJv?BLdO_I(8UYYSx? zZ)gVF)pvSGah47F7y0w>r;7KPiB-7;dN*+HNBQY>7f+e@jEy6qft`yap)YakGrn6l z{VKGd&-Ej<OKxB?r~Jp4ur4(YK8rdCc0%h?&N3PA1L0+8IZ!KpeO-Ak(`(IiA-; z(dV9fS6wJpAEZDcAz{+U>e>c_3V_l}e9LGz87e%syq&25?jSjcnrlDUY5!qX&RSuT z?~GTbp;F+>%aX-sM#XXh#(HfW9NpdSKJWGS$GVA%ee;|)e_6eqLCP(~C_jJ}xBJ(Z zK!Ee2oos+xTe9~4T>d&Y&4g9``*4OBY-~oIxKwNHC{KeOnW4|YrcGsC^leC^^pA_s z7>y~sCZ^4@dK}gpw$232YDVLv7_j&R`%g zgz5?$kPoP6OGmev1t8|yJ~!9WbTZ=nBUUxDSYncDzWag{F>Og&sEgPiXi}Al+ z3A{TH(jOmJIg$grSzihE>{AdnNs!plMn=nCj|0`2T)S=!7_+Np>U%$ze= z;*kE1Dqq0bcGwNkxE+aaV3vy%-!$e#$1o13Pmyf63*HBvJMf)GA5#y%>gca5ribuq zwv_T<|Gp6gdw&)cdK^<}(nAm6SIfblN7fVh;`KE0#ec?9Ni(@&BrbLf(PafEYSL_j zYZ8>xo1RBKcsPhuKQY5TGU+zK-?PJ?G16^Y_80FD_7Cqm#S0Ay_Y1tewXt1~BTgK- zTljtT6csibB^q972ntyg`eO6-dY;By-52d|G`J`jS3t6cSGDwhbbZxvoRD@;y}|~K{^Znz=E4?CC*M!L?@Rl`e&J2V5@yZ_J(LL<1Dl%B^7;%Y z_!a#Ml{N2?#iQz^goM>J-o+LS!VVk{>(b4Qs*=uE&=I|)p9C+0dK0cLZq9x-Nxlyv z9A~sMXB7-G}KgoD|=MPpsj1Wx;==nChp>`oWG8yK(6i)81 zF;_{RJMCF6q2=PyQF=hig;AmDGHZs%7H9VHjUgFYaC*{YULFQEY?W6FVQREOx?4{# zGJZ24!h;&ixjso65S7n6hv^&Nm!`m@f}oSRcalAo$8qa8^3*0T3)C`X3>2HBJ&R@q1tE`h9x&e3AMFyVwHUqIC_%Zat*o(2K&EDnth= zF`nVIz{kJl&rS+#!z~l&_dm`SfzOEV>&WmmONu?ioGJ3wqS}v$O3&hJQZ7d1Cni5w zU4_pT-gAzdzyW|~;rZsdzNg}dg~hy|sTMOIn$A--qW=^$+ZEg%v{NG6V!T4ik-EX@ zX4BgDe`4lRgOwCEzo8M(0+AhC)HYFSMv>amda3B!+ros2o&>VmAS3gZ+8m?XAGqX( zDm4$c&1%f`UK}xQSjLJh!*VZku5`oNgzIPFIr=!O5$>xW@b^XK4tU@Ae=zl}6dWx(=3=fkfzUqQDhGm))S|(jZKNy#NoVsqp`dwU(2A#AW zc`;abHSjmL zTQCQ0ZOD(8Z~i%**p%~Qy$k{kTs}9y+U@Lbx_A%Q^g=f2U-3U-9P;Z-vVTPHbEr%h>nb zZ!%4sUr}Dt%8lj;D0+56Q!V$!Cmo_IZFAMHn>xIIGvdo9B?=&y+M+BQ*s*PN-KAE? zzZpbvqHbej>U_-!xV;Xi?Sd7=W-Of!_e5V>9EOeez9k^;&c`jb5OG{(W_?@k@A^d2 zHNs5JY4l;=kI9Hm&vDOo?W>FId2Xu*{o2hKO+|&(Z~1Yhx>9UeRN<|)>FoZVr=wLK z_b=WuhzX!uoK50C(x^;+NrV|oo$rmYVL@FZJrJf6iL)NQH)Ylo2Za$@F{7! zT97DfaIya@w0fNh5tLDl*s0TC7Yf!$;g+tRkEmv7 zI1( zeqBemI-|lGa^eKI9&gD$`qd4GQ}cs}Jvd zJC)T($r8_YR+TG~eF7x_Nl)zD|lLh2$Flw;2QcvK|0m9@3hy80A~J=iltNN7bEZaihWu%k;DuyjcEJ6h$8T*RH?n)gRiT z-*A>uXoCPNF7Bt_7R6gtt(Fwt@a=e&a{kjiiJ~=Kk-k3tGS&>;cYfa1W#Qj;5`gd} z(*QZl`mNtAO&20TSt>BkdbbB@X>wkNc9{TqD1@Y9@jvrzwp1{WhJpl7!=Wc)5z9kc z_o?r7O*jg?DAVr?eZB|9FUwT{yqZG$K|ED)P>Va`MZnp6X)(9OS`ERBJw#V-n8KbaezsdW((hyJ5dF|ywUc)%q_VnJ1&?0iuBX_c+j zAF^)(qClRA1zFuj53?hQ6EdxP`-(*6?t34Ggi&Dz_Ee6QX`+*llH@&HW)7XsuS>Xn zVyHi($&`)`=zyD3fG??Jo6&-iYCIL5%)iKlaa_9{N_fikIj8)~Vd2S$lZR1%%!owv>wOOkrzown=pdM(jJPQ-x!zN} z$3peACQIK!IZ7N&mAU}l-NkA)}cp#m$_}Z{@$U*PS_!( z97n94wnB!%l8%u)gWo1u3+me@eV;-yZVwzmgdtk(fYnu9sEYg!SGH{>Y2w#?LG8vW z;`fbQtkckeK*L~xWbSC*SkTV9l07m6_3a->d?H(pa-ZTP5k@wH3MbmtYmWcv86eGF zokf_(eT$6m0gP(GIkKhEsW3L$=F#w+uF1!`0mJA@nC?AEN=figykHlEh*o@R*~puXHg0pjUwB@4R=kz&%D|v$WU=18 ziX_nk?gUMbN%xwHEi|&=Xnu;ZSnhO3%dbi z#Ju^S1u(DWKJFw^9BQxTMf#*r6He;nI%4;F)!uV*=3ZR-w|VyUwOFR+{|Ph<`9sl% z1@~&{u;y6}nW#4ft`Vpp5zg%T058b{*(IN9waoE}UOp-*V@e;xwk?!vuJ1yNGG0#|L)Jt1}C>VUgUm_wSYSNa8v5MVyiYgTM*zx-|*x?j{gM{JSXsr{{yXINBAm| z#NfN~HUy(=G^a=Lk{Q1Nq~;u59K$X!FSw^H^-P3Kn*-xL0Pj0bYv2pzv482cwC|CL z-PNl*=iZY4;yBOVCH_I7n9>%f7v1=o%k^)KGOyC_+Z<>1qrX*U<3!rn+JMvSf|Q3S zoeIAav!!g*57tZr7lU6k*ZsSqex~l+%j~^<1NF)wqLa1cTDlWJE!!65s=P$Y-T=WS z%oeo=U!QvhuHua@nDz+bBQVRYGM!K~M-egmg8-jj{G751=zoY0m*<`d9VwQNct6Fn zLA4QnmA^n0Anm<#oH?Ij*Q74oJaWd?{q)F}4{Mc2FizNjm5n>zMpYr+=PceIosH0# z3{&FytV33HIYral+1#RHr}l(UMi!n4CDx1bi6Qt<)B72hSOof+7|sIg#tIRi)~n$= z@)U~iAy4fdYSiEpL}fls^ME;;a0I`6$bCW>l2`PFLW+2|A?Iv4= zbr1Kop)@Y&b9n|A{d)uN!)wlX-8eYkvklBV*9MtN_16OT{)j`whXh22XH<-Rk{^%$ z*+FM?VFjC!^$)b3RN-B#Hpe4k+u^BdcegLpw`r-JK7{*m^Z$m@{6oS8m@ zc%t($Owaphs*PsXmkQ_e1$e&uBqeG_lS0gn`xhWn9cDQ$Y~Jz0ANpX*&oHFTd#e$l z-GwR@U`oqcN6;!Vrp4$hk&m1Yk)Twg84Vk986BjVe<*A3gL>f2T}4@=wVT{qOJ#V) zx`mT`LKtd0J&w%uuD__1jxK}nn-QJHDzKOE?1Kg0OD%&9Zxfe!FL^YN>6`L`pA7@t zoX$39>Io}a6>$jdPbseQaL2dPO+Z5*LMnA@*)JywO|STKb+_zYQ#4?KE1964KHSN5 zW(R*Wp@!nCCeF`D>j)3_b=FxvXEzGHDMENM3hy!AR-9!%DfcJy@h!llYH}jNm&IpD zI>BNGphV1osnAIlYePbG=90DO+2sHao$FPdWB)RJr_UWh9hs&~@YeHJbE2=dJYedF z-T~NQ*=J5R2V5xFN|WawDbCeM#DKN3#I;_fXItbkm){y`+eM|4xv0(yx;A&O`#}QM zu4|90aG^kRE2VF3Cx69Gt=}fjI3ZaX4`~k=A66qSSb6X&N^j=gej z{IRU(orY2>-lKK8Rw+6Nzto>HI=0=0ALF_v41Hj^zm4?=$%JnMeW8VzN}*<{uEPY5BCDu z&YzQd`9ojSrpFe!XkHuCkbY_p?>t|O$Rh3(pRf3P94HI;-zGxL?!$VYuc_5%l@PVr zK6|I({MPOm=!EmD+bc4rp?pH=YbE3Ek6HFQ2mp)}E!0*NwPoWmKL)*CefE6i<16)`=^z7NDko3r zdlbkxc{8Z>-=B&xpGW$nReja4fABO>Pyp%)fWK#*swS4h_hB?vz|NZ27;)1v$cxrS z3mE&jCNo0N3G>|gH0{3$2G52Oa)EbQEiwyh7{Fj^cZ>af1M43_ct2$YSAjZUQpz3? zGMKj?s6Q)EW=YFJZrFjQmJnL%n|;??$q`bUN~k?da>whIfKQmZm(hbNdHCd6*)J8c zF*4l@j=M&((Cc$O=p#gUc*V_RwQ+ohw1i;IRN`0^CHLw3vB}z%$;2<}$y)oL)U^7b z*)o1GQMwSn6N+Ei3=FYV>)m00TV4s}*4EX<(S$?JqfEs`H(1_q*%OyM7|p=i;K4Dh z*;0Dr5Bq223gT*^iXa{wo=AWt9x6cDjBmBqcE>Y>6si@ykngI-Wov5K9Kf|Be1~(I z@;a?VEkOejfK+rd95fcQQI9yS%4C7hW+SuCmZ2!lLWX_yaN>B zY$XriuS(xq5uc`fNqH4_aGz?FTH|NhKcEEpCZUS!kM(^`m>)qz(`4;!U4TyCy@{ym|r6LWjB3XL=0`j4xpZC7D-<9z^A(Wr)Lon z{dlP;cT}&iDiMXdE-aMN-K<>Jr57gKydE4|9S7*&U*v|GuK|L8kF*v zzJfOLa)`no1)vZ73b|O2@w&6M?epAy%L|ac*oh!SKoB!{QNbL@xLpv$(X3PpiZbpz0 zOd=L~{o(B)p?%N4L#5GPM_TTIz@%2PTb5djw*Oz@@>>tkWy=U~0$;>aH>&#%k4?~r zhmq?b-zx}01YLFr0vJ-Q1ld(BOX7cEYh4kyx2ilneOkc!%PIsiQ>Us2PMmX{Myvgs zAgFF40Y{R6H3)FXGSQ`qVGuDzgfQBYWD?A6wu3mfS3&?1ke2w`YgeeU;`*Pbij4Xr zy}W>aMIeZgA+(XlyuPLJ*sFaH*fs^4RSq~2r{4C}D1H2pD`Wu=)5}nBeoiY%`af-z z2firy?-jcdAOwhrWnsXBd!yC5$SdfI9uq`Waxl0JoupNE*@|UR^QPTe@p1n1lgv=u zX#d6UMLc?Od5Fbfxe^ZB-71}FJiVm_=Zwg*?2_!wJK@3$qET3%vv_C={1m?q?BZuV zpQec&^iNULJRqudX$bT{)s3*okJhZ0sL{=Uq#dY>8(P+s^F=xQ5P!79>Xe5IhZ=Ok zYyrXpf&c?J?!YQL<<~T7-TRqOUY`e~`%UoYS0WyK?Ln=SqP+%s{k>|)=a3`E1?*m| zqAcV%Ty3xP)D2jczF6=JA^U}hQ(uvF$l5SfAJ=~|33nWO7J}nRWEs*PXHEV;?Q#9m zix&53fDhx-K4ePDJbluwAB+`kwnb`V^db^(Di^Rn-e@b58=@DY4Q#DnK=46{qN znd-5Xx1pQpHo+v_zs;a`iqYEe*!h5Xod7X~3)tU~9kL`< z2qM0f>I$EV%YL#vJ>C2HU~E{YQ6nVmCksREXYIYLx|w`Gm7qbWI$i+J$j(kR$%kIItk3Q=R|N0+At zCkPNE*P^qIK zs3)sL=ak3^_msOd>Kbd&4lCS@M=bHMNAvnRB$r4(dpB4@kew(#+Rz12vm&6u+!RbXssj7ncrq*(`q*)rRTxG6oz@ zC!zXvt!!`IBxns!?>U^d zHwvrE%dqnIuCw{Evre(aT>WNzvT5dAwZ`;G0a-Gym8b{ygcnZINL;dJPjr`{NMR=aNfq;(jm3!^l+eYnGhOJ!+Ns@5+r& zZLit-E*mLu()k#t7UN=B9AG^>T52)hrH$Z-F#Xfr}DeMLum}x@!nql7BCZS zVz`LeqqLYkjwMlK-1A;BvMT9@34B}ygMFVzCIJ7rK30P_Ir#`gNdmjBxW@%Rws@%N^tt&sUCi}RY*-%Iyfxy1q0N0>gre+LpnAYfg*nL zldV{~tr6>UY-n`*t~mGN)0SALk}h@ZHu7xF|I)=u8MS^lAwY zTpWS%sbPwr>ke4(7f;!r@qKlOqp%{Q)DHVuwX1svpAm6{Uch;jGJ9fH1ZE76Kt!nf z6DKN)bP{8YXtr2z@L(=veFOxxK44r6_5{0OYzY1^j69dGvc35vn17S&!6M6^>T6p}wtqjX<~g#B7m!QWE~A2_cv@G8|E1-kmL2 zZf?f>=hotIMKgrx!4Qm8juriL!WLW0adHEi&`U(O6qaj-Q%*(z%Pnij0wj}*iEf2)LL9# z3;w(!Vz$`*V}aWz8*#^!2=s|c*U`K5$JdVdjoIqKu8^?v>;Y%WME|rQy zbZVc{2m2!RO^k%i;l%z!WsuuyN!`pMhxzo8d93^F_K60}9vgYa^1HWDT#Q6LrVKDp z%2Y;WqZ3UYtonIG#O&5b=w-|ptXI0HW{wD_^o-^gU1q+7jw*WNha}-}aSaN~Ye~rU zP`XsL;XWy3)<-gPh!&5`it{-E|C}(&l8osSf^k%JbvWCrer+B|$+=a;?0%D>#h{*Q zJan-MH;j)!LX_U8E!qj#XG}|pL4J8X%Bo1j)0S`hGTr zEnT!xgW*Y93`^9YuGs~1i$qmGxDB_8SWW-hoN*y|;_@gAN(_O2jtpZNX_Ic%iZ5z(u4Bqf4(>p{d@YCfPaqBpvI6` zJH)y}w5IMc$Ncz#lW^sEX_$Y_xiE%M;lOEyTzwF7W0Bhyy)#4@1pINj2@_M@)6~lqS8**oX_1xgz6jvqnNdiI?fC8t z|3X%T%${_zy{X-2?f_iGXMpu~458BWt+PfcE{3w;vXg{N7MUJ}@KCT983HW0z=YH| z|H!j<9hr(uJ@>>8HugENf9m>9?lhF6WV% zksp&xnTY98-P)q+3&_kzuE{>DJTez?2N}>i1`Fp-LPE6hr#G39Yw}3QWnJ=-2gQl_ z$CXi?+GZbkkVUqbAy;Mq4$Eo(CKquBVb(G=DGCezFb)yMpNZ{6iMo^Nw^%B~v7v}P z!nuHdj;#2|2Tq%Q<09@PSDZHx58W^c#?YVbX>*cAHq#@pv9LoHnGO6~ba^-?4>W@F zYgpEzhSF~tr}UAzh`Yc=WBcLK@%?}Krc$Clsx%Fq4Xn9+?)WfFNaX@P9dc_OrQb4@ z_5C$m#9hEdR(Sq3V=!@8uV3bJnUBnxhFZ<1wa6-3{YwUGF>{3Rj068TveFtWRqp>y zu*X-fi^N8R;!nRHhnVnRwMUZ0kVwc9`E;iuIYP!=(;^XT^3PEL-9dZP(82b;i{o$+ zcM+Bf8__=wf0=ha`NzKs%Iqx^UGIU^P(q^qsYK0ec073x|GYXz*);2`+qQfXrD>=V zF3MV*2==&$-304)yLHw`gy?^@A;3i?>N?6=G?w7RWRaLK)*EcZpd^0AWv6LA2B{{O zjDwwv*j=zf$ebC&F>6wPXf?m;IAd9h8rC#a2A$}{)uVK{WJE-_&4~yM$RM;-C@vcp zu^R~s(c+$K#$rrb!f*eO9)nWNAzYYZ!OfGSpi^@JcNygv^GYsachfT}6pzfAh=Iw! zJ(E22XbzMi~|?32VgzOi*B8QD0WW6aZ=(Vs5mkK2{Ak$>~6S-J;X@L zSloa81jIy!pjVs;f4*)!`o!}ivpoTSu6YPH2YJT0R5Z3&5g%>Bv~yB|q`BSua1nbD zw&j1$j1fwl1WUguC%HNe|_V7 z`n~g`^?jKmrL|b{>28#p&weawAP{tA=i*}x_;B3;*c@IuJ==@CyJkQ3<^^9$G3Z3h z#QWhlS$K8D4g?BqRK$3lEb!`0c|lp+3Cac_mU3G5%|WE^EriqM|AF4xZF%^3eHMb1 zplyn0fzQh;c0#2Vao&hz_#^BKn7*$F&-~w3#To}ILEVa(S5k);Ki-MMCAIKJ4(3-Y zrS(=SDF<`2Q&5YT-S|UAW<2%o4>(%pU!`f5X<78vMif>wAlTte@x&gA=wBh%qRC=| zKTzA)ikFw~P`-G)-IR-1feB&b-XeTJrDqxA>z9hK5K?QjtvhXqORez^~y zZ_e}C95PFvt^OfbX>bpwirkstBK{dHKw?79DKNtq*>k8uY3ykY;NIZQz(xEkN+@7j zxa3=86;%6F4X#*hobU&dK2-J`HQO9LCD;bGj|iW99MBHsvb) z!910AYPg6`Lkk5^Z>`>gANCh}y|IS<|2FI{Py$W1>6LS8xQNd{b$zQ+2+1q*ZZkcr zB)(35c}?S)59khdxQNe!{PKD{yKE~eYg^zAnB{$8*>)T*E|G`T^VnFwinx}BF8Jr?tzQgO)wYX+g! zhRv>ETZy)0mj3vj639_S?mr*zKwXd>yWkD@0p%Wm9eDHnM_W-+HB@evey4 z%&M(ydkx=a&N&rK8V-lct(|*r%@ea}PcN^lg1M>+myU@?TvRAHoD-PqTd{WAVSKbc z%dN)~yS>;^VbS8n?;G&Vu5FkzJq72D=nYe-4xHeH9hkl~vjj`OK7h<4m2Mvi=8=k> zOJhP-qm1W1&Bph83NiQ6;Ydq~g-)XaCpb{t2A2y3+0 zwjmPcRtaD2Ie;Ap%kaA?X}Ipfq39K70w?e(D6hxon{%;xQ?4@Rz>|2icR~n>f*3m# zb>=L*za|5l_ZMT{tWlUgrVk>*xQh{pSlS%;A)`oX{P)%@IS)4g2@pbKq0)?n>)2i# zDXYWdZ+wS-Nl{ohcM^v8i-R#l3qcUT@n4uun_F$jIC2axeXWn}`uYY;8r~ZZTt9(lG5nmG1`A$Zz7yNYZLFyA{=Px)h?sn2!4M5G zZloe)IIXB{Y{M6u^RP3!4D+u(7gNqjCNYPB<3F&S+FLS;@eT!U1>HEk$gBOtLP!k6 z=mC&wkC2ethexv=!Y_QZUCCn1pM5Td_3Odi3m=F1xw*x)cy;AY?8~b}lf{be#OqD* zf~hw|wVo_;CgtMVQ!Y*9Pi>-a^q$-bTr{p9uDfU`hV|_MQRHIwB_tAWA*IaT`EoD5 z-BqaMe|-V(@9Yp*uonj*b};1HTuLVXG|t~*b>NF1@~}7e7_Oe0hS}2xBidx(mbsf@ zfm>sX6)V2W#{bd}DTkv=KGa&!ZQGMXQzB&Ym8BXc`-9tL@4)Qrce@LfV#Us!a?1bu?g>uayHS+f1kscP zNmN0u&i;*%8Ei(wru{|A85Wz#Z@%H8VHlRmgFjEff;Kkr`;!gXSiAKwtajh;O7w}{ z&LUZ4))OL|PcCG(hHQN5=j1Q5lRjB5#>Er>_DhW9Vs;ZusD%{`$`m8ks8iSEKSz)G z%$9vIES45BjnZ#<2poU;fptPDAQuV=;TI3V3MP^mMe=XgjxEL&pF=bQ=G-@9Bbp$40Cf-js z<|ymv@YDHlzBN3BRrW$-DgBm4K61{FdE`^UZo;Ph#mFu&}oHJ8c zQIAi)&Bp2^_{F3RTQS zypr00IxA1vY7sl>?*4+PNu~ePz=sfYCi-QBY;QiJYjFY>xfrb!sBnHu;jsp#SB1G@ z0fJMKT05W zSyNMw=vvMTGeyO>Euz11G5MzbSuFy-0ITXb+8~whqV$`0PP*s#9^}%qYC^dnsJ<5* z(i3fUp;blcw^)BuDM*@dzaezo+;fDm=mjc4z6w4R{7J1f?FA8A6F9*IsaF!A`o?Z= zdA=q8z|N`zAN<&GbINj8%DjzwK`ULZk4gSB`OBlpD*Hr5LAKVnw{hC}$wNVbKsHyF zcG;V&-&W}ozRLgXp6cKHl{5Vt!yYY;bUGU62?pcMf*=k*o1gJCvb6zH)d8}|jo<_> zvVdI4Zu>}9MZR%#<*lbYH~5T$AgZ^#WQ~YW@7E_z*(SA*z39dEXb9aXW8aRLYC_X?0JWtHkvvceBF7ks<6WW#f(wN@Pz;$ZE7g)7EtG@yJHUP9fI+ZQ2)_X?amnEwN77OD;#n04I%7?R)W?p*z-*bJjgNeUJnkXgm&Ks3 zZEGDQCS*I$TKFr9^%Yg6R!h^1~=f=F_q@cFBgRN9ruIA)Tao+|qdFu{2rK)ccZpPFk=)5Y=`_n7vwcOStaiUQwx&=E{P62fa*&r=e$=)Kbwt*TTV@-HP(}R!BTMCweTQS1})H(0sS1uxUx9cg0XjUOgNq)a+bmZb-wQnR$29-csUk&r9f_w4Z!b(c_@ z(*+9JWVs9)-SaI+v(}XFe6@o9s9W|u`ONs7#H(LPiWqRoEwV~;7X^Qb@CdZ}7Bi&k zEN+pzfGkPHq~ebo%Cp|C-u9MP{NB^yGiP!&ANsnWtPn4Uh{iThtCc&8?Y$DJ2tteOa%MO~O;6{)f6F@f7(P9XFZK3~Nrr^fDUvMxonH2X zn~|GJ+kIp%rKO>CW9ipVb-U|uGW=qsr163c(eWdbuhN8SA0)SSAl&x3 z<@Tl_b5463CqGyHM`S@Pk{#0XmeTT1%6C0e3m?X>=AsUKq+lTIwRfvSV{V2hM#4?7 z&8IS@-{iIq^#m_suqvhhMCO-%hADO}IZQY1;gmf~Z|U z>7G%7Aa^;_!h$`ynk=$4cy@>!-x`!B$?^*g+3UWnKKKP|(($XWvEPqb?|ai1z4eI$ zZ=}@O?d&DGNc%W|jDWYuGJE_$tfc>V$5CJOLBY4r9f6+`AZG>0!m!7(20CQby(&%E zY`QUB>R)CpoXT7aYasf_f=mn3=yKXtkrVa$(N)cvz+%6iFc?q=UZmdmp-J8E{0XA$ zS^!y`MsMka&WM>kW9>~OEVHW;T4+78A%;GGtTgxg#x4KqzO!uINMN4Y zGU0wh-w_M1*T>rC(*=$|C+Ep2t_2$h;P*bV;G#R7YlrTghQd|v)b0E_payjW@X8|G+(t70#?7R*QXeGRmCnF%$JoariU^x~Xlb8-;C_)G(k zCoyk*rBUDWydPA?h-^_*4azI9<*~%}r&m7p;D%2m#Lj Y1EFTHW;85k-v9sr07*qoM6N<$f^Jy}kN^Mx literal 0 HcmV?d00001 diff --git a/react-frontend/src/images/openmainframeproject-color-1.png b/react-frontend/src/images/openmainframeproject-color-1.png new file mode 100644 index 0000000000000000000000000000000000000000..84c1c831df2ab986094127f23fba43dd14f03046 GIT binary patch literal 25333 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

W}2zp2tT9;9r@~W_sk2v=MTj-JpTD zR6rZ0>6o2;-rZ*(K))_RUfvTjf!UCQ>2mI^KPC+W=b=l-BH|n@GdcPZvCVJt$-<*U>6HzN4+^3q>v{NS*Y_f6B$S`m7-#MB%F`TnQD=U1wV zx^Y-QMO}uAA9(=+>EY+JLR-#2-yFhhEqQEqI{p&ctoIvh-AeYR3s?>DG^N&KC#^GR zc$N@%YBo3ckBhFoyB9E0c6`|a#Zc4ce(JpJ^i2hj@3sCIQFC(y<6qhr+BN<$Q|GD* z$gC$*q5v)fFwkKKsQU^ZG?8cEA_qtLb#sfP<0tLBDm>3Hmi7X1jPnK6s-4?QK8CYw zD7SY@eu0K>OhQLVl|9C2ngP~HMpH%U_uiGHkqk_=wYkDf1yOjR%dDw-fy}bvq5JcV z<9(k9renAj$b3DT?=2Reuags_^QZ0$d}~H zkdS<&LgF$T|Ni|wUcIja;=_D+o%HW^b$VX<_r!I`S5;^O1mnVI8TG{!O40ZT5c-iL zLVrf)Rl?BYfK1b!ysO9N1w`G6O75}J&P`SEJ^rZVdW&L&pJMp0ytbq^czspO-#U@SU+Z*9_#){@WoP*Qz`va5ZH zd-u>u7f*oL&jI%y^&-yj7Xw?mA(blx6N|GK?;GZ|JB0pdZsET%;SFI9@sntn3PwTU zC#_oiA)HCa>lE+H6lb^Zx|Q(TYz`Z(Wf(CRgu)}Mxe8d=6rifd5`g!_ z`BwQ2apo9d(q*3PT~p&3UVf8hLdP>L(q_nJR92$^E8I90h8M~NB_VUPgD!pTttqz* z9&%1uy5V}bx=sN@Acnr^ufp{bMN;=)-CbZBQfH zzWFJ_PKVCq>}n$Q>)ngoqTcw|Gq>{xDsx&?M*H1Bn1zjJe; zjy=D@d)O8Pyev^sYjlNQp=Am99*HFIC@;~}k)wF_zFg-RXz(3W^-#jQ7)25<v{|)P!qOQle!d+N~P;+AFRA`MfHr^{Pf?hwPj~ZGcDl{VahQGb3Lm|O8 zpHTu@(JS=#O9?aGvAILRkc~&%jRJ?& z#zG#T-uTSH5^M)~Xe+oQjR#qdJ`yBKKBWGS$2%e8R-7#76O9li)n!+H{}0ppG72vg zz9x92+v-dc%+-WUoYT6$y+{F zFd)Ownql^PJ9|KcJACrk!icU~C9c%6g*?qaA&;QjqMd>7$2w&^v6le?gF=Rj>fpW> z-`G^A$X9u4>F-81NY9rjh(%W^%>cfZA>s5CDd*!WV3a8mrQmAw5C=6TN)KE`M=jlnRkJWF|F2)>KJJc-i^Fdy43cLJ}$u z^>(*--h-_;Vq$gP9z_ty@SVNmUZ~T0Sj~FW<+!QHVH!P>FDM}SLVrPL>}r?5AbeCe z&2BepRD>A6WMaXC+nC6OKQp?GZSoLyg;)+;5#56D@ot!OmG(iZHy*wPx=ZD2{}fxN z)MU@OCEUck!wb1(X)`RcZyUp$U5IAyC6D{~BY4@H;eD_jGSap2X8y0avy5x<3;(|g z0s@YZ5}Ab34bsx3boW3?q)}opQWThobcoW;=#~-@kp`t}AkvI(1{=S7>i7SD{(JPh z9_+z*-Mi1u&N=rLpX-ea{!q{={@6rp>W{S-7(ByA1Y~c7Tt`;K(A+k!k(`Z=zZkAY zmQ?8L%u_9eh^*f%lpxT%=s3a0>H^$?dUmNsc_fP8qJ;Y>D{{Pu1Gs z^eypp=Np~>8N-7AP2fB8m37ZM(;}c57OnN6(Kom}oC>L_u=kpSn!t31u})Z0!6GFX zzdHOLMdy9o=xpX*vAd>9)X(Fg3wv%Ik>wq)-LKoenDk;Zc*jSJVot~=t>_S7&%6JD zo$o`yxorYF=pfX_=;tBxP-(j4;U~ZqK!(xfwLPm)4A4iri20yp-msv*2@&Re57~G} z@DU8%(AM}7=&{a}uUhl@mR8x=yUn4ZY?XVTMHE8Ogf{&j92FUPD&!XJM%HTgYUDr4 zD^cb83Ou56s2BT)@~?yU4!0!^%JUkI*&&EiZK^xpifbMSLqiX~xz9BQo~9YQncvKj z^m;b`CjIa}*7<}ZZQ8}MV^O}&$iOrpWzJZZ06}ZSLsx4`byuF~z0N%+Pt1zvo%9@b z2>GhgQltvIG=*oN2K6e4*Aka;1b(#2Pq#A?;l~f0T`D>O8pu>lpY~^^kmkdR^x)!k z*M% z$`8w0wq9XnWQsB{^k73$d@^#=Ubbib(vkH(XFfMrdq-@~=s8@1u6H-a>f~&|>RyzdHsfXOJ|VThx~EoJN@}WbX%-Xv+KTLvX8TfF zB#nc#$XCSVxQ=^|y8Lt30f$%P>j`VLhnq=6@f=;euoqM9{|y4_LNM557$=sSlc zcgLrhsd%H_5M2dtT29wayjCRhk?vb)ythpnNQI2AMyGBQH`^Q+GH6fK9ZrjjO2PufcsWG7h> zWqET6!$<3rtVHo&F3DNi%eOdu3FIlm+OtBY($8Vk z_2SJh-S=G^_=C_No;Vwmho$pR5jE9^V5ySNF;ACNm1-}BSWH4UYq5(R4~cay&KD1u z`)<+|qQEb1aJZSWEK(2?sBD$c=ubP6&4AfXNiLZ;c z;y^Qh_#E{8-TXaZA&?DCu*bKbI6qCzE)vw;Da(-btzs^iW9N?cp(-3VPS!BuI$eon zc~(ftHCSfpX3~E0mW|kRTaVCF@*udX_a8MJ7=W|+@WPW<0`p^AiJn5ou9rf%d5OY)n zr9%dmXM2dQW5n*aucwV79MRct=UaGBpGqou%S%M8iFxYe(%h(gc+`+AtgD(fGpgV2 zQ(ki0ZDhbqgIVu^>nMgdosj0e zikBV8tzh?echP$z6P27qop~#TF@2*w!>L5^aM((E(AO z&ZE){NxS+v#A?Xz!D&u0-k(#}918ZWBtj8Wna#lUkH>n(I*H=tEdLb8M&rhW-7l1H z6fixK%xgkSSus8X#KpwicTWL%rfv;%3~4wlJxPJY%u_riJmCg;s>d#~=*B z=l$urUq4Rjc-lQ?FPF`8Ep^pyaBy*|i@tqBOM!pglVT%w-WqEi$zQaZHGd)tepXj) z5Psc{M4r;1B}%dYui$b`c+7_=6!MOHV5)M$EZuO&x%C!brox#;ASHu^f@`-C{+9=p z3Z=hPiuD9Sx1|b2H+8#!3SO<^s}hQ=NTHF4D{EQSFXOYgR;M)CFXa-+<22F!4y>V1 z;8k~-v%Sh6E?8rDeW^m(BJ!K*p_LaeB121+JucKFPG4)U-Rx;SJ zTkRhvbWE1s+(}0d`#Lnv8%F~P3ZOx{otr6D4fB+4Mfzz%?*xr(dI!BaAgWRlELC1j zQ*wW$!uKuY_iQ$4D*P)T69O7RN*8KABuQc#P_5mDFk`*38K`0RAxiI*>ll*Iql4&v zFzT5+FYDOjFVT*zR>OVNKmF46{F9<}P32KJU2&@&o#o~2@iU}1 z`M=xzz2yJ)Yn9wzH8n^1GTp$mw)*}D>c_|Nh}|>k@)tWeN)PZ9iN&cR0i&{gm}+{$ ztu7)vdBmg0mH4PCe^(0s`s1W(kHyIAA1SgvU?IACJjtaIda~@|Tr`P1kc$LJRJU%q zkLeb;V1t!Kx>K%T4&->P<0ggb7&VpJ(UeZr@QiX|ugC?~aV9zQvq6L|je>@3G6{!~~pvADsWp4w6WiG5~1O;p> zC>4_(1_N%~HGoBj`-&Vsu4C*Q=OAt>26Uc`srJZ`9(Q`l{q@+c+*Lx3d;(udJI!Mw z0}E=8U$zUF4P_gS6p%CJ(R|gbFvX+%+X$|(BGPn$sH6Lz!Vw^3ITvsLB@y$=_GDdQ zb<|_n@q6jJ34>#Y^ZY+N=TTvGl1$t`$vAYMJQyp9(V3~3SCUmz)NVFmfjk_bM@Ej8 zH~5p#w7lcUepUR!zQ=(mbUrpqp=PO`y$}ugEY+t3$?j;f+l0AP?wmNJ3sP@{$$I6O z7FZqILAJ+d8j3UOM^I!9^RFg@Krk-SG_K$DJ3amAQGVZY8`C+$BFnx3o)f(C3SAOO z1Fv-*KF_XzHyM|=>-1+(w|;_vIl-CD1Z-!&#goh@pUt&dboMDd@}@qd5HG9Eh?NTowK6(!_nl$49erYsO?CB0j|+ z%oA~P3ByFEVMO^2a8RRzv$3Dy-BUUJo=1TUMn|w4gX8?uQ$SPEbRzXi#Vkf;hL|?E zguN@9<`7dmeqv5dx$d!keW$vGnJEV@0C*jMJs;SH76;qjPYyna^rG)CV* z!zhu^C%@!wF&ov|_0;#;pIsi%tjxPe8v5%_jy+V*%GmST9LJM)8m@O$)Q&{?=?cLd zKIJLKn1(M84O=VA?(APQfav(9j7mB9&)w#DFyj2ws`l(vOQsa3x=HKZ-q_xyDZ^}K z=@rL`Ed{*q4E85gcKWBoRH**ymGU_NS%yVno*%mt5~a9QyRL`k;DA`IVI%}8tjU+1 zlxYP!tF4HvNcit-IE62+vnMZLD%3Ig^nByi`Br-1Tlyu-{k~$N+%ol*3V^dF1&JUI z7L_-5)clgaO+^7$vE6&b*pLemiqX4Cc;lAwb>O_%clKEv<1f?TY3e%@RiQ z+h$P+t-O*T4poWk!I0Ls{Iu&2{tz`)wH9J+8BN4NyQl`9bYYa&Sa|;$ggj>^2bew; z+*|h2(81{V`J`VDcJ{-_z3`i{r4+$Z|V7TjopFr6tJb3aKf*=yl`J_ z0o6w<@iq!KW#+I;Nx9KbSXfxbHe9pT!NKX!mss?W%OtjIR~y>pR#(1d&p{pMdPfpZ z)80TP*D5RdI3D?0GeRADk3gJvnSf&K1`tc&>`3Raeisd#YrblYJmntCK-=Ms?r_-@ zr#l2obZVulI!S&8VTRht)GL861-Q(Q$M|7V%bONP$*?P_Q_qo%356Y8%~mCIQZ&KT zvTlk|qXN}9@i7Dln{Z~pSoRuEjnapYUWS_`*YE7QqtvQ$b`gzO7`rX{3WxXRF>Br2 z7Vn*RM7uOA(pTf$eRvA|^DZR6mGo<*aNMqOHeGnSbK=+b3ckh!_zgH4Q{>#PUXfgI zY_YAf>tntdNpV%J=SK6&OGc;X`b4EDY+8zHq;U{9uB+5kAS!qVJrn9&l}lsTviB%g znA*VEe{MUt*ZjvNn4Dq^$g%!i^+mHft0=gge~ozi*N}*`im*hjbUmu5mr^O3x|tJ) z^*5)z-3pXoQwNg2_CEHWkg{}tT!C4+vp3Ikf#Vm5w3|zBQN&OU&WrH-UL^`LkYPbE z{x@7+8Q+j=A3;Eitxw z*iz|18H*a?|(a&BK_Z)rH_7k*dy6TI1iTUV4Z{n zzO|s~%CJHT9s+*UHN?mBc zMo2y}=+%3^ZK1P8?x2w$U5ni`caostFUP0Qy$J}&a25%{^>da_&a1st6D4IpI7A~t zF7eYD9?ZKQy`YdND-{T4z4i-uTsdV1>;KYm?$ry>g4*IenwDs4#kMJ2Vonwk0KLiT z1k6B4_gTwg`C&^H$UCdn2Bj7w?00TUK1NBA*HD6zt2ksZoPb%WiqL@s|NrVLjbC)1;9v$gbo%6wdE>tiyET4CxC^+N`F<8xf1XAJE1PTonMkiqh#K~lStjB=ru?z|>e;-$S)^4Ha+*3Mh~E7}Mij3&^)`1GlS z4qq5@tk04yOusVT$J&9hU)X8^+)6 z^qJL}-zigl`B9hR=m`a|L0 z?}QFLgG;tAWQOXYACX(lCkni8zP2D~hUCHI ztPYzWQt+Vf!EbwqA#JE#H-JRoSU-jkr&m%E!F5>U?5h(BfQyi}HQ~=lA;N`9jqlV+ z7C(30&JCEduJIDD^XdA%ka3KJF@^qNlQ5q39Je4B>c5CF?y-qY6lTtrLiz{>0ioxA z%R8r%8xw?0QL|G$5FcxKI3;$qPH3tkH$4T)`(eXKDb|4Am^%y6^ImV?(Qo1F4n<5N z%zL#Io)+^|nmz7<*Y@cQ;a&uY;hU+>8fx9+OM%!zomXajBTK1K88?iPvo z3^LnXl;unMPmD*i<9vCSb+K8vZB;H0(te`f%x;LgxxfVB%?gJ*h5UQIM(GOD3s`qL zEbsP-Ov+H1<3+4zntY7T>m#PQB+kdyc$#v0lMTl_R`BJ7Kg_3k2+U~=P_Ftc*U~$1 z#3{QyL%nphp=k!{hzBqy{slZr6#B=Q&_+oJ4B;d{`q&(^JTbO%JV%Vu3Ou)h@?>l} zeh3gl2sP|_I2_aEcjRM_Td>XMN@=esR@K^u&gJA=t8A;ng!;vB+_$R$&;m%O{Mnpv zF7;BnV)kGI-uF(mHINir=YU0O644HKNOej0J66S6Ff2-ePNCp+)LjRTs%>Ny2Z+u% zi8m7?{5z8_$zBX4SN5dq1#N2;qXONlhb)nS|J+)RY5-C3(&QClMOiPcKmx>D^H8L< z5kjKIX+IG_3HEzWJT9FP<#v+m?JTD7Eq!W>5^r2}^7-I>mJ=6<=#J*-Epy|5y1@r! zZKx?0f72V~UeL8;GmeHmzT(uLa*(O&E4U2+Px|v6OybkGP9Sl*VuSWs|OG|mp{&agl}Dc5m6Gj6-oj|M;TVSeTy~|Wm$87^cBD|k7EYwO}ny1 zHJiLVQr@R}zw3fv--1%GRV5Z4`e)S_aYco_$pe|L@WY9jdM-Q4N9=v>JU-BFn9xG^ zt!O#dn+(s`?7UEmJ>9S#;}xu7o7~BozbgStq~G4&@}J=-2^L;-wNP*Om+q+vsPMC; zs!2yAo3h&)W;BFDt&{l7ca;FNlOsV?%FzqsK*t>Y*f+&;-}i>Qcw#>n;@%*M?EXvM@5g=srdS=j*)nx~m7JnW<^a)^1QmyWz? z|Liv6S|L5RRsAnQuwB}crM?g6lUYO}Ao_OE(i)fV?$Lpb+n@Crgc(;HOf^vSd7!-A zngi#KvussonNM$oKb(E0-&s>)%+IHs_#>t~u4{4Xbr!>MC2dJK)0H{*{h)~iY)1cG zTDZyOc+BdfR+lx`NfID!0PFD6GdqtRewsc9Up5q@OoHd^Ke)g7O#I&1wn3%R{C3sT zcYD2vmKHNYtG`X(I8RI0HH_y;D2T@3oX_~J^)yCs9iU*w{rKD^wcNMLTQP=NT0wgW z94Vm2r`$_@QceV^u*Ds3Gl&toV`#+S7gj%q?(AcihYh+)G#k6?ol7^(Wh@)YpKy;v z2OiM$`>SiuX}QcFxd@J3z9||xD$tm%GRw45dkZl(s-D=|id*;ED?~5*=GJ;_+cdjS z!#VE$+x(HN+@5`TiVZxYS0mbT-18SSRNzT`R-d}lf3`}0)013#SvU)^i2hPKI-{yB zQ_o+Vn%ZNIxfw$prU4cQ^XYI(l0Vk#L+2@%#966*sKei@IRyuR` z^zPWjAl*}$Z#ND&8oDVzGXbKSfUH7BCaIY%Q~l>@poAucynH%I7s};f+FRjm49Ro* zy=M8pPUi%WjWfxE913));mtqXla6XvleCRO;4B3z>2tU_1!lFZQOc`XfzWJd=0H;J zT-DSXO9II9gc+2h|EwF1s6>Uu^n;uzZ{S_Uf5#I1>mz*CowSCFBxj($81e5ZKoJ&$ z%=C5eSD{klR_`SNp7j6!FK?u3)V0BaVA~;Xb(*YaJ)%HmkU5$K*Ix;2eo*jwMuAes zbY1CaE^r(D|95lzcp=!~k$F-Oo=UYneHUl@6S;cmF7JLe5E@;9!+%pb|MkKt!a}Uh zA~-r8Djv2_P8pW3$~ao+ok0QN!f#yn`JeMmr*hZ7PLu^jWmgL|#ReN2F9ROJ-dmt7 z_Qw>mvKrxY00Z|cQv~&&yH@dr}yBjvJ03`+K8eP)TF^~>nbeGiV2?NF$ zgCBl=UwQw2e{8#Z?(;nNoOACz=k+@0eo;}9zD@Rs3;+P!mX&#<1^^K0UbJ(slU#gn zWF=)@{M>Ms(RBj=sG0tLuE?rA|8sHiikq6WB%ow~ZsX$5HLKT(uK|Ga$eX7o!~g(m zyX>3S8s1lSQjw7>khlfL5B!g0-xV97J34n2P{(Co%^%2F5U!-2+#D4-o{sgv{Cwvd znYI(87PtNFz2nb-S3Eb%N^Nm#-zrR6YB*zWN!`EI_N|zln}&AeBQal6nrS-^kPtg6>Dxr02T{}d~J6+HViIA1ki(T{QUux zxkYT}sY%)89LoTl55<^7X)Z3ll71h3AvgdqNOa76^KT=a_>VI6-^Qz(i*WY8jd#>7 z5`S$20C2nusQ6z)4{&aNI@5NV)>HpUYh+!}Lbk>rD z8DY*zCLN&}m)pzu-yKXU|6U|V-R&KxT{iFghcFjNI2tjoKh*0Qhmgtr6+-1|%>Rk- zE}EEn=#z1LahzJD%@9zRCXZ(PvGV^!FT7MirK07To-^X~aL4%kl}~xJms}t1UdmAe z$E&Y`UCmolfh)s?dF$OqHR#TBdrrM(*vy)8QfCXdCeSb%=b?-xu)wT~}mFPkg@tqH;o>ERQmGVMk_X zCm54KaE#$VWeMIaBZ|6n*RSu88w0oQ}!m`qK+*%?d*z+~@$+!AO{jocxjfO@_vu73XnYs1IwdZ+ zUkJ?mQ(}O+U5dOP9#gbk=ZQug5PqNJ@HGYch^tmF z$DVm_{dChJLu*&Hu_4uFTp{aIu70&JCkd$IOx6a0vfg;g54HMLD?Gji62-~5?B<;4R3yE6uf zR4N>Kf*>k^x6lO@uNWU_<~Ns9E# zA-fk@WYoYHX%m17{nNv>T(J+SC7-N$AN95{%uuDt5uc-vBpdJjTy$r{Q7qD#cmWHO z>K(OrySGV|xHqMEzI-t`$nK#FNPgJX~Xm*#=DxCdFv>ik1&pEaV2jzXJ zX{UZ*mez38tFwJiOCf~7?a^AcnvFr#^DTt8|GAl>ty|Jpd>L4U zYaqQpK~g)!9E%(k231<-=~tXDJqpLWSNZmg4F&7G<9(dK5K_XdandDQ5G-B*rJ!s?c&Z-`=Pow$|%{EbsXbRK=vo9iL5lpiRNjfyLO7lf+IFb77t0P6bE@ zLYB830zDH0!S8{P(Stt3sc<%W;Z-p?R|K5S<3+o#Dy-uy^HburUMh5(p3DjO2{bha zrd;~{o_xKM6X?`|lPi{Qz-v5VAFHZ&OuZAY?ilM5!0hdpiX5%SRo0&B-$m);YN=)n z&H1@#nrRM=Vt(BF7j)9~dU#^cU}jqI)pu-WjuNszSuHsQR(P2x7+@9S*BR-DW}?n! z?xM`}mLW-<^j^TMiY-Ax&tNPsZuyPUjr;WBN->>=H5xtByEyIvtSnitpXMuBhf?Lj z2eU36#B4eOP88B!{awvvSW!(9gR0iq41yfyxed^e%Her3qm4zA)liWst?>DeW@KvF^YK3&v_|$%GB$?*PtPr?7Jw2O@hV5?galR~! z&p;=O)9Of+4MyB<6;$byI_jcVpH!=YOmS2c(t0=bId+rnj+f^s-U9%Wj z5w(f%cRV+mU@eM4f5DjN+^hysG!4rI%u{XP#)03J`?MUBdi=F7BFbO)W&PfkDU_-x zbR-dw3U0nXb-rQ|Ewpf*u~<<$$??sP-`>3sej=z#Kxz=JS|JW?Uy_lGs^kci9+ zC7b2pr24OOPnjA6A+1FU55C*yko9_-c!{g6ZQ<71(C7xslH*(9?RRAGnyEZ0S66%P zbHb<9+|xCabbR>au-3uQc_z3n!Q!dhsG(EZP3|TJ$KsdGUWcy2UJ^!%lx!B|)&S#$ zn#acq=Ws4KGBPTZ6-H2V$l1=8i-nyb93FVgHqLK0`aG5NsSs+O-|Fd0&@wEztNytv z%OqU=nUqiS5%IrG`O5wG?YA3(CtVgZF#n<;x0IYV7=Grw27dH7l=c?hRQ7k4wx#J+ z?*K+y)PqJfopM=eM0Hc?%{=y;h2ZLz9P2}WGYwPSH#Yya?iBB26H^y|}YTJ8d z5G+-Wx#>kW@x3`HhvwkSMS+q4dAJCiIdnRal|%{nIl9!9IA?8rmAP&#-qEp5lS#j# zbWo^9;E7Kj@@{jDX*o#>8qJYpru@QjpdZH^umja)5Tg;i;$Jf2fAneF+C&@1pNi%< zZ?Z0A&zYD2et_&Aq5~uED;e#(l)lOM_+RvT#}Jjxn1E{y!gR`rdZi$b{o8(TwW!8z zogE=p!y7A)W|T`_WS!I>{~B&SGpQ^q{UYy2ukaIPIboj+-x_ zMT^9vt<{Mw45zg!J&CdS8V1n$2Q6J=wg^e{z?D3f@(E#0$_w`l|2_BFTEinH$GRO# zpdH{y1bG#+upjzVtRElZx{p3+KW6~dV1rSTE2z{`3N~Fj2m9=#T7qF(VNN0?M5Ahl z27lJ@vw5-ca1lQ_9gInIhf;aM}u`bGta!kkOS+t@v`m3{s4%x@6~+ua^O;|F-2De@7!_}-IiIb?B~ zB)kq;Q4#46~o_-;y-RP53iT&cjJ%B&=5oaj00Tq@Gj@o#;@WvXMTu)bNR|{ zHIg$>)v}b!J8P+-AT?Abi7w8Mpmu28QGDtdU(m>D8-Zyl9*37z2vLx}_DCzL5*A4c z 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 literal 0 HcmV?d00001 diff --git a/react-frontend/src/index.js b/react-frontend/src/index.js new file mode 100644 index 0000000..35a0782 --- /dev/null +++ b/react-frontend/src/index.js @@ -0,0 +1,15 @@ +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import App from './App'; + + +const root = ReactDOM.createRoot(document.getElementById('root')); +root.render( + + + +); + +// If you want to start measuring performance in your app, pass a function +// to log results (for example: reportWebVitals(console.log)) +// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals diff --git a/react-frontend/src/screens/LandingPage.jsx b/react-frontend/src/screens/LandingPage.jsx new file mode 100644 index 0000000..4add3b2 --- /dev/null +++ b/react-frontend/src/screens/LandingPage.jsx @@ -0,0 +1,18 @@ +import Navbar from "./components/Navbar"; +import HeroSection from "./components/HeroSection"; +import Footer from "./components/Footer"; +import SearchResults from "./components/SearchResults"; +import { useState } from "react"; +function LandingPage() { + const [results, setResults] = useState([]); + return ( +

+ + {/* */} + + {/*
*/} +
+ ); +} + +export default LandingPage; diff --git a/react-frontend/src/screens/components/Footer.jsx b/react-frontend/src/screens/components/Footer.jsx new file mode 100644 index 0000000..f6765df --- /dev/null +++ b/react-frontend/src/screens/components/Footer.jsx @@ -0,0 +1,58 @@ +function Footer() { + return( +
+
+
SUPPORTED FOR
+
+
+ OpenSUSE_Logo 1 + 267px-Fedora_logo 1 + Debian_logo 1 + Ubuntu-logo-2022 1 + Rocky_Linux_logo 1 + Red_Hat_logo 1 + logo 1 + IBM-Z_OS 1 + AlmaLinux_Icon_Logo 1 +
+
+ ); +} + +export default Footer; \ No newline at end of file diff --git a/react-frontend/src/screens/components/HeroSection.jsx b/react-frontend/src/screens/components/HeroSection.jsx new file mode 100644 index 0000000..6aa3f60 --- /dev/null +++ b/react-frontend/src/screens/components/HeroSection.jsx @@ -0,0 +1,44 @@ +import heroPic from "../../images/hero-theme-pic.png"; +import openMainFrameLogo from "../../images/openmainframeproject-color-1.png"; + +function HeroSection() { + return ( +
+
+
+

+ Packages From +
+ any Source +
+ any Repository
+ in One Place. +

+

+ Discover Open Source Packages For
+ Z architecture/s390x On Any Z Operating
+ system In One Place. +

+
+ hero image +
+
+ openmainframeproject-color 1 +
+

+ Matches Developers With
+ Best Open Source Software That +
+ Meets Their Needs. +

+
+
+
+ ); +} + +export default HeroSection; diff --git a/react-frontend/src/screens/components/NavTopSection.jsx b/react-frontend/src/screens/components/NavTopSection.jsx new file mode 100644 index 0000000..80b6d95 --- /dev/null +++ b/react-frontend/src/screens/components/NavTopSection.jsx @@ -0,0 +1,19 @@ +import sdtLogo from "../../images/sdt-logo.png"; + +function NavTopSection() { + return ( +
+
+ image 12 +
+
+
about
+
blog
+
contact
+
documentation
+
+
+ ); +} + +export default NavTopSection; \ No newline at end of file diff --git a/react-frontend/src/screens/components/Navbar.jsx b/react-frontend/src/screens/components/Navbar.jsx new file mode 100644 index 0000000..87e10a8 --- /dev/null +++ b/react-frontend/src/screens/components/Navbar.jsx @@ -0,0 +1,13 @@ +import NavTopSection from "./NavTopSection"; +import SearchBar from "./SearchBar"; + +function Navbar({ setResults }) { + return ( +
+ + +
+ ); +} + +export default Navbar; diff --git a/react-frontend/src/screens/components/SearchBar.jsx b/react-frontend/src/screens/components/SearchBar.jsx new file mode 100644 index 0000000..ec1a88b --- /dev/null +++ b/react-frontend/src/screens/components/SearchBar.jsx @@ -0,0 +1,60 @@ +import React, { useState } from "react"; + +import omfLogo from "../../images/openmainframe-logo.png"; + +function SearchBar({ setResults }) { + const [input, setInput] = useState(""); + + const fetchData = (value) => { + fetch( + "https://raw.githubusercontent.com/openmainframeproject/software-discovery-tool-data/d37ec20db63776674dae7beccfd95e152b0d1e55/data_files/IBMZ_container_registry.json" + ) + .then((response) => response.json()) + .then((json) => { + const results = json.filter((software) => { + return ( + value && + software && + software.packageName && + software.packageName.toLowerCase().includes(value) + ); + }); + setResults(results); + }); + }; + + const handleChange = (value) => { + setInput(value); + fetchData(value); + }; + + return ( +
+
+ image 11 +
+
+ handleChange(e.target.value)} + /> +
+
+ {/* + + */} + +
+
+ ); +} + +export default SearchBar; diff --git a/react-frontend/src/screens/components/SearchList.jsx b/react-frontend/src/screens/components/SearchList.jsx new file mode 100644 index 0000000..4e57d90 --- /dev/null +++ b/react-frontend/src/screens/components/SearchList.jsx @@ -0,0 +1,29 @@ +function SearchList({ result }) { + return ( +
+
+
{result.packageName}
+

{result.description}

+
+
+
+
version: {result.version}
+ {/*
5 years ago
*/} +
+ {/*
+
+
redhat
+
+
+
redhat
+
+
+
redhat
+
+
*/} +
+
+ ); +} + +export default SearchList; diff --git a/react-frontend/src/screens/components/SearchResults.jsx b/react-frontend/src/screens/components/SearchResults.jsx new file mode 100644 index 0000000..b21d45c --- /dev/null +++ b/react-frontend/src/screens/components/SearchResults.jsx @@ -0,0 +1,13 @@ +import SearchList from "./SearchList"; + +function SearchResults({ results }) { + return ( +
+ {results.map((result) => { + return ; + })} +
+ ); +} + +export default SearchResults;