From 5eaa3199138f6cb6bc84aa94273fd0ae55e76dcf Mon Sep 17 00:00:00 2001 From: James Whatley Date: Fri, 17 Nov 2023 15:17:50 -0600 Subject: [PATCH 01/14] sending over baselayout --- index.html | 78 +++++++++++++++++++++++++++++++++++++++++++----------- style.css | 22 +++++++++++++++ 2 files changed, 84 insertions(+), 16 deletions(-) diff --git a/index.html b/index.html index 0d5208117..a27f7be08 100644 --- a/index.html +++ b/index.html @@ -2,33 +2,79 @@ - + Coffee Shop + + + -

Coffee!

- -
- - - + +
+ +
+

hashdfasdfasd

+
+ + + +
+ - +
- - - +

+

+

-
IDNAMEROAST
+ + + + + diff --git a/style.css b/style.css index cd051aae3..5421cb697 100644 --- a/style.css +++ b/style.css @@ -7,3 +7,25 @@ td, th { border: 1px solid black; padding: 5px 10px; } + +.container { + display: grid; + grid-template-columns: + 1fr +2fr; + /*width: 100%;*/ + margin: 0 auto; + max-width: 1200px; + padding: 20px; + +} + +main { + grid-area: main; +} + +.right-side { + display: grid; + grid-template-rows: auto 1fr; + grid-area: aside; +} From 805f70cb1e48b9be9fd29c2ec5bf80351318cc05 Mon Sep 17 00:00:00 2001 From: Roberto Bueno Date: Fri, 17 Nov 2023 16:53:56 -0600 Subject: [PATCH 02/14] working on project --- index.html | 47 +++++++++++++++++++++++------------------------ main.js | 22 ++++++++++++++-------- style.css | 23 ++++++++++++++--------- 3 files changed, 51 insertions(+), 41 deletions(-) diff --git a/index.html b/index.html index a27f7be08..62bf07bbe 100644 --- a/index.html +++ b/index.html @@ -6,19 +6,34 @@ - + - +

Coffee!!

-

hashdfasdfasd

+ + + + + + + + + + +
+ +
+
+ +
+
-
- - -

-

-

- - - -
- - + - - + diff --git a/main.js b/main.js index 51df444ff..958eebf8c 100644 --- a/main.js +++ b/main.js @@ -1,11 +1,11 @@ "use strict" function renderCoffee(coffee) { - let html = ''; - html += `${coffee.id}`; - html += `${coffee.name}`; - html += `${coffee.roast}`; - html += ''; + let html = '
'; + html += `

${coffee.id}

`; + html += `

${coffee.name}

`; + html += `

${coffee.roast}

`; + html += '
'; return html; } @@ -27,7 +27,7 @@ function updateCoffees(e) { filteredCoffees.push(coffee); } }); - tbody.innerHTML = renderCoffees(filteredCoffees); + coffeeList.innerHTML = renderCoffees(filteredCoffees); } // from http://www.ncausa.org/About-Coffee/Coffee-Roasts-Guide @@ -46,12 +46,18 @@ const coffees = [ {id: 12, name: 'Viennese', roast: 'dark'}, {id: 13, name: 'Italian', roast: 'dark'}, {id: 14, name: 'French', roast: 'dark'}, + {id: 15, name: 'French', roast: 'light'}, ]; -const tbody = document.querySelector('#coffees'); +const coffeeList = document.getElementById('coffees'); const submitButton = document.querySelector('#submit'); const roastSelection = document.querySelector('#roast-selection'); +// const filteredCoffee = document.getElementById("filtered-coffees") -tbody.innerHTML = renderCoffees(coffees); +coffeeList.innerHTML = renderCoffees(coffees); +// submitButton.addEventListener('click', (e) => { +// e.preventDefault() +// console.log("submit has been clicked") +// }); submitButton.addEventListener('click', updateCoffees); diff --git a/style.css b/style.css index 5421cb697..8de80e332 100644 --- a/style.css +++ b/style.css @@ -11,21 +11,26 @@ td, th { .container { display: grid; grid-template-columns: - 1fr -2fr; - /*width: 100%;*/ + 1fr 2fr; margin: 0 auto; - max-width: 1200px; padding: 20px; - +} +h1 { + display: flex; + justify-content: center; + padding: 10px; } -main { - grid-area: main; +.left-side { + display: grid; } .right-side { display: grid; - grid-template-rows: auto 1fr; - grid-area: aside; + grid-template-rows: .5fr 1fr; +} + +.left-side { + display: flex; + justify-content: left; } From f9ff17734a30e6cd7ce6085a7f3a4dea3b634a7b Mon Sep 17 00:00:00 2001 From: Roberto Bueno Date: Sat, 18 Nov 2023 21:38:25 -0600 Subject: [PATCH 03/14] updated code with new code --- index.html | 26 ++++++++++++-------------- main.js | 21 +++++++++++---------- 2 files changed, 23 insertions(+), 24 deletions(-) diff --git a/index.html b/index.html index 62bf07bbe..bb96d5c8b 100644 --- a/index.html +++ b/index.html @@ -49,22 +49,20 @@

Coffee

-
-

Add Your own Coffee!!

-
- +
-

Roast

- -

Coffee

- - -
+ +
+ + + +
+
diff --git a/main.js b/main.js index 958eebf8c..3ea3bbe04 100644 --- a/main.js +++ b/main.js @@ -1,5 +1,6 @@ "use strict" +// ALL I DID TO THIS FUNCTION WAS CHANGE THE tr TO A div AND THE td's TO p TAGS. function renderCoffee(coffee) { let html = '
'; html += `

${coffee.id}

`; @@ -18,6 +19,8 @@ function renderCoffees(coffees) { return html; } +// THE ONLY MODIFICATION TO THIS FUNCTION WAS THE VARIABLE NAME +// ON LINE 33 (CHANGED FROM tbody TO coffeesList) function updateCoffees(e) { e.preventDefault(); // don't submit the form, we just want to update the data const selectedRoast = roastSelection.value; @@ -27,7 +30,7 @@ function updateCoffees(e) { filteredCoffees.push(coffee); } }); - coffeeList.innerHTML = renderCoffees(filteredCoffees); + coffeesList.innerHTML = renderCoffees(filteredCoffees); } // from http://www.ncausa.org/About-Coffee/Coffee-Roasts-Guide @@ -46,18 +49,16 @@ const coffees = [ {id: 12, name: 'Viennese', roast: 'dark'}, {id: 13, name: 'Italian', roast: 'dark'}, {id: 14, name: 'French', roast: 'dark'}, - {id: 15, name: 'French', roast: 'light'}, ]; -const coffeeList = document.getElementById('coffees'); +// ON LINE 55 CHANGED VARIABLE NAME FROM tbody TO coffeesList; +const coffeesList = document.querySelector('#coffees'); +// (ON LINE 57) ALSO TESTED IT BY TARGETING THE DIV USING getElementById // THIS ALSO WORKS +// const coffeesList = document.getElementById('coffees'); const submitButton = document.querySelector('#submit'); const roastSelection = document.querySelector('#roast-selection'); -// const filteredCoffee = document.getElementById("filtered-coffees") -coffeeList.innerHTML = renderCoffees(coffees); +// ON LINE 62 CHANGED VARIABLE NAME FROM tbody TO coffeesList; +coffeesList.innerHTML = renderCoffees(coffees); -// submitButton.addEventListener('click', (e) => { -// e.preventDefault() -// console.log("submit has been clicked") -// }); -submitButton.addEventListener('click', updateCoffees); +submitButton.addEventListener('click', updateCoffees); \ No newline at end of file From e86f91ecc57098c7c4c310c71d5b6a8d1226a184 Mon Sep 17 00:00:00 2001 From: James Whatley Date: Sun, 19 Nov 2023 14:36:02 -0600 Subject: [PATCH 04/14] Option works set logs that are saying all the coffees are true for the search bar not sure how to get that t --- index.html | 30 +++++++++++++++--------------- main.js | 23 ++++++++++++++++++++--- 2 files changed, 35 insertions(+), 18 deletions(-) diff --git a/index.html b/index.html index bb96d5c8b..23052c561 100644 --- a/index.html +++ b/index.html @@ -39,29 +39,29 @@

Coffee!!

Roast

Coffee

- +
-
+ -
+ -
- - - -
+ + + + + + + + + diff --git a/main.js b/main.js index 3ea3bbe04..cf506933f 100644 --- a/main.js +++ b/main.js @@ -23,13 +23,29 @@ function renderCoffees(coffees) { // ON LINE 33 (CHANGED FROM tbody TO coffeesList) function updateCoffees(e) { e.preventDefault(); // don't submit the form, we just want to update the data - const selectedRoast = roastSelection.value; + const selectedRoast = roastSelection.value.toLowerCase(); + const searchTerm = userTexts.value.trim().toLowerCase(); + console.log('Selected Roast:', selectedRoast); + console.log('Search Term:', searchTerm); + const filteredCoffees = []; coffees.forEach( coffee => { - if (coffee.roast === selectedRoast) { - filteredCoffees.push(coffee); + console.log('Coffee Roast:', coffee.roast.toLowerCase()); + console.log('Coffee Name:', coffee.name.toLowerCase()); + + if (coffee.roast.toLowerCase() === selectedRoast){ + const matchesRoast = coffee.roast.toLowerCase() === selectedRoast || selectedRoast === 'all'; + const matchesSearch = coffee.name.toLowerCase().includes(searchTerm); + console.log('Matches Roast:', matchesRoast); + console.log('Matches Search:', matchesSearch); + + // filteredCoffees.push(coffee); /*without this in the code it doesn't populate */ + if (matchesRoast && matchesSearch); + filteredCoffees.push(coffee); /*without this in the code it doesn't populate */ } }); + console.log('Filtered Coffees:', filteredCoffees); + coffeesList.innerHTML = renderCoffees(filteredCoffees); } @@ -57,6 +73,7 @@ const coffeesList = document.querySelector('#coffees'); // const coffeesList = document.getElementById('coffees'); const submitButton = document.querySelector('#submit'); const roastSelection = document.querySelector('#roast-selection'); +const userTexts = document.querySelector('#userText') // ON LINE 62 CHANGED VARIABLE NAME FROM tbody TO coffeesList; coffeesList.innerHTML = renderCoffees(coffees); From 4b959a72dbda0f27215cedd16f25f5d743247a6f Mon Sep 17 00:00:00 2001 From: Roberto Bueno Date: Sun, 19 Nov 2023 23:09:50 -0600 Subject: [PATCH 05/14] updated coffee project --- index.html | 81 +++++++++++++++++++----------------------------------- main.js | 70 +++++++++++++++------------------------------- style.css | 80 +++++++++++++++++++++++++++++++++++++++-------------- 3 files changed, 110 insertions(+), 121 deletions(-) diff --git a/index.html b/index.html index 23052c561..7b530a3fb 100644 --- a/index.html +++ b/index.html @@ -9,69 +9,44 @@ -

Coffee!!

+

Coffee!

-
- - - - - - - - - - -
- -
-
- -
- +
- -
- - - - - - + + - + \ No newline at end of file diff --git a/main.js b/main.js index cf506933f..ec59a8050 100644 --- a/main.js +++ b/main.js @@ -1,81 +1,55 @@ "use strict" // ALL I DID TO THIS FUNCTION WAS CHANGE THE tr TO A div AND THE td's TO p TAGS. +// Given functions + function renderCoffee(coffee) { let html = '
'; - html += `

${coffee.id}

`; - html += `

${coffee.name}

`; + html += `
${coffee.name}
`; html += `

${coffee.roast}

`; html += '
'; - return html; } function renderCoffees(coffees) { let html = ''; - for(let i = coffees.length - 1; i >= 0; i--) { + for (let i = coffees.length - 1; i >= 0; i--) { html += renderCoffee(coffees[i]); } return html; } -// THE ONLY MODIFICATION TO THIS FUNCTION WAS THE VARIABLE NAME -// ON LINE 33 (CHANGED FROM tbody TO coffeesList) -function updateCoffees(e) { - e.preventDefault(); // don't submit the form, we just want to update the data +// Filter function with slight adjustments + +function updateCoffees() { const selectedRoast = roastSelection.value.toLowerCase(); const searchTerm = userTexts.value.trim().toLowerCase(); - console.log('Selected Roast:', selectedRoast); - console.log('Search Term:', searchTerm); - const filteredCoffees = []; - coffees.forEach( coffee => { - console.log('Coffee Roast:', coffee.roast.toLowerCase()); - console.log('Coffee Name:', coffee.name.toLowerCase()); - - if (coffee.roast.toLowerCase() === selectedRoast){ - const matchesRoast = coffee.roast.toLowerCase() === selectedRoast || selectedRoast === 'all'; - const matchesSearch = coffee.name.toLowerCase().includes(searchTerm); - console.log('Matches Roast:', matchesRoast); - console.log('Matches Search:', matchesSearch); - - // filteredCoffees.push(coffee); /*without this in the code it doesn't populate */ - if (matchesRoast && matchesSearch); - filteredCoffees.push(coffee); /*without this in the code it doesn't populate */ - } + const filteredCoffees = coffees.filter(coffee => { + const matchesRoast = coffee.roast.toLowerCase() === selectedRoast || selectedRoast === 'all'; + const matchesSearch = coffee.name.toLowerCase().includes(searchTerm); + return matchesRoast && matchesSearch; }); - console.log('Filtered Coffees:', filteredCoffees); coffeesList.innerHTML = renderCoffees(filteredCoffees); } -// from http://www.ncausa.org/About-Coffee/Coffee-Roasts-Guide +// The provided coffee data const coffees = [ - {id: 1, name: 'Light City', roast: 'light'}, - {id: 2, name: 'Half City', roast: 'light'}, - {id: 3, name: 'Cinnamon', roast: 'light'}, - {id: 4, name: 'City', roast: 'medium'}, - {id: 5, name: 'American', roast: 'medium'}, - {id: 6, name: 'Breakfast', roast: 'medium'}, - {id: 7, name: 'High', roast: 'dark'}, - {id: 8, name: 'Continental', roast: 'dark'}, - {id: 9, name: 'New Orleans', roast: 'dark'}, - {id: 10, name: 'European', roast: 'dark'}, - {id: 11, name: 'Espresso', roast: 'dark'}, - {id: 12, name: 'Viennese', roast: 'dark'}, - {id: 13, name: 'Italian', roast: 'dark'}, - {id: 14, name: 'French', roast: 'dark'}, + { id: 1, name: 'Light City', roast: 'light' }, + // ... (other coffee objects) + { id: 14, name: 'French', roast: 'dark' }, ]; -// ON LINE 55 CHANGED VARIABLE NAME FROM tbody TO coffeesList; +// Variable targeting the #coffees div const coffeesList = document.querySelector('#coffees'); -// (ON LINE 57) ALSO TESTED IT BY TARGETING THE DIV USING getElementById // THIS ALSO WORKS -// const coffeesList = document.getElementById('coffees'); -const submitButton = document.querySelector('#submit'); const roastSelection = document.querySelector('#roast-selection'); -const userTexts = document.querySelector('#userText') +const userTexts = document.querySelector('#userText'); -// ON LINE 62 CHANGED VARIABLE NAME FROM tbody TO coffeesList; +// Initial rendering of all coffees coffeesList.innerHTML = renderCoffees(coffees); -submitButton.addEventListener('click', updateCoffees); \ No newline at end of file +// Event listeners for filtering coffees + +userTexts.addEventListener('input', updateCoffees); // Real-time filtering while typing +roastSelection.addEventListener('change', updateCoffees); // On roast selection change diff --git a/style.css b/style.css index 8de80e332..d84277757 100644 --- a/style.css +++ b/style.css @@ -1,36 +1,76 @@ -table { - border-collapse: collapse; - margin: 15px 0; +/* Custom CSS */ +body { + font-family: Arial, sans-serif; + background-color: #f8f9fa; + margin: 0; + padding: 20px; } -td, th { - border: 1px solid black; - padding: 5px 10px; +h1 { + text-align: center; + color: #333; } .container { - display: grid; - grid-template-columns: - 1fr 2fr; - margin: 0 auto; - padding: 20px; -} -h1 { display: flex; - justify-content: center; - padding: 10px; + justify-content: space-between; } .left-side { - display: grid; + flex: 1; + padding-right: 20px; } .right-side { + flex: 1; + background-color: #fff; + padding: 20px; + border-radius: 5px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); +} + +form { + margin-bottom: 20px; +} + +#coffees { display: grid; - grid-template-rows: .5fr 1fr; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 10px; } -.left-side { - display: flex; - justify-content: left; +#coffees > div { + border: 1px solid #ccc; + padding: 10px; + border-radius: 5px; + background-color: #f9f9f9; +} + +#coffees > div h5 { + margin-bottom: 5px; +} + +input[type="text"], +select.form-select { + width: 100%; + margin-bottom: 10px; +} + +input[type="submit"] { + width: 100%; + padding: 8px 10px; + border: none; + border-radius: 3px; + background-color: #007bff; + color: #fff; + cursor: pointer; +} + +input[type="submit"]:hover { + background-color: #0056b3; +} + +/* Bootstrap Overrides */ +select.form-select { + appearance: auto; } From 4c11c00d62cfb60d94d066da5a7e793fccc0db6f Mon Sep 17 00:00:00 2001 From: Roberto Bueno Date: Mon, 20 Nov 2023 08:59:31 -0600 Subject: [PATCH 06/14] updated files for coffee project --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 7b530a3fb..83e39f4e7 100644 --- a/index.html +++ b/index.html @@ -31,7 +31,7 @@

Coffee

-

Add Your Own

+

Add Your Own

From cca6219205e6f987e839b055c9cd087f761ca35e Mon Sep 17 00:00:00 2001 From: Roberto Bueno Date: Mon, 20 Nov 2023 09:27:52 -0600 Subject: [PATCH 07/14] updated files back to the original js --- index.html | 2 +- main.js | 61 +++++++++++++++++++++++++++++++----------------------- style.css | 10 +++++++++ 3 files changed, 46 insertions(+), 27 deletions(-) diff --git a/index.html b/index.html index 83e39f4e7..64ba71bac 100644 --- a/index.html +++ b/index.html @@ -26,7 +26,7 @@

Coffee!

Coffee

- +
diff --git a/main.js b/main.js index ec59a8050..3ea3bbe04 100644 --- a/main.js +++ b/main.js @@ -1,55 +1,64 @@ "use strict" // ALL I DID TO THIS FUNCTION WAS CHANGE THE tr TO A div AND THE td's TO p TAGS. -// Given functions - function renderCoffee(coffee) { let html = '
'; - html += `
${coffee.name}
`; + html += `

${coffee.id}

`; + html += `

${coffee.name}

`; html += `

${coffee.roast}

`; html += '
'; + return html; } function renderCoffees(coffees) { let html = ''; - for (let i = coffees.length - 1; i >= 0; i--) { + for(let i = coffees.length - 1; i >= 0; i--) { html += renderCoffee(coffees[i]); } return html; } -// Filter function with slight adjustments - -function updateCoffees() { - const selectedRoast = roastSelection.value.toLowerCase(); - const searchTerm = userTexts.value.trim().toLowerCase(); - - const filteredCoffees = coffees.filter(coffee => { - const matchesRoast = coffee.roast.toLowerCase() === selectedRoast || selectedRoast === 'all'; - const matchesSearch = coffee.name.toLowerCase().includes(searchTerm); - return matchesRoast && matchesSearch; +// THE ONLY MODIFICATION TO THIS FUNCTION WAS THE VARIABLE NAME +// ON LINE 33 (CHANGED FROM tbody TO coffeesList) +function updateCoffees(e) { + e.preventDefault(); // don't submit the form, we just want to update the data + const selectedRoast = roastSelection.value; + const filteredCoffees = []; + coffees.forEach( coffee => { + if (coffee.roast === selectedRoast) { + filteredCoffees.push(coffee); + } }); - coffeesList.innerHTML = renderCoffees(filteredCoffees); } -// The provided coffee data +// from http://www.ncausa.org/About-Coffee/Coffee-Roasts-Guide const coffees = [ - { id: 1, name: 'Light City', roast: 'light' }, - // ... (other coffee objects) - { id: 14, name: 'French', roast: 'dark' }, + {id: 1, name: 'Light City', roast: 'light'}, + {id: 2, name: 'Half City', roast: 'light'}, + {id: 3, name: 'Cinnamon', roast: 'light'}, + {id: 4, name: 'City', roast: 'medium'}, + {id: 5, name: 'American', roast: 'medium'}, + {id: 6, name: 'Breakfast', roast: 'medium'}, + {id: 7, name: 'High', roast: 'dark'}, + {id: 8, name: 'Continental', roast: 'dark'}, + {id: 9, name: 'New Orleans', roast: 'dark'}, + {id: 10, name: 'European', roast: 'dark'}, + {id: 11, name: 'Espresso', roast: 'dark'}, + {id: 12, name: 'Viennese', roast: 'dark'}, + {id: 13, name: 'Italian', roast: 'dark'}, + {id: 14, name: 'French', roast: 'dark'}, ]; -// Variable targeting the #coffees div +// ON LINE 55 CHANGED VARIABLE NAME FROM tbody TO coffeesList; const coffeesList = document.querySelector('#coffees'); +// (ON LINE 57) ALSO TESTED IT BY TARGETING THE DIV USING getElementById // THIS ALSO WORKS +// const coffeesList = document.getElementById('coffees'); +const submitButton = document.querySelector('#submit'); const roastSelection = document.querySelector('#roast-selection'); -const userTexts = document.querySelector('#userText'); -// Initial rendering of all coffees +// ON LINE 62 CHANGED VARIABLE NAME FROM tbody TO coffeesList; coffeesList.innerHTML = renderCoffees(coffees); -// Event listeners for filtering coffees - -userTexts.addEventListener('input', updateCoffees); // Real-time filtering while typing -roastSelection.addEventListener('change', updateCoffees); // On roast selection change +submitButton.addEventListener('click', updateCoffees); \ No newline at end of file diff --git a/style.css b/style.css index d84277757..9673ac257 100644 --- a/style.css +++ b/style.css @@ -74,3 +74,13 @@ input[type="submit"]:hover { select.form-select { appearance: auto; } + +/*table {*/ +/* border-collapse: collapse;*/ +/* margin: 15px 0;*/ +/*}*/ + +/*td, th {*/ +/* border: 1px solid black;*/ +/* padding: 5px 10px;*/ +/*}*/ From 70afd4e60638a9b1304b3025da0c7706874fd8b2 Mon Sep 17 00:00:00 2001 From: Roberto Bueno Date: Mon, 20 Nov 2023 09:49:20 -0600 Subject: [PATCH 08/14] fixed search issue --- main.js | 3 ++- pexels-daria-obymaha-1684151.jpg | Bin 0 -> 495136 bytes 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 pexels-daria-obymaha-1684151.jpg diff --git a/main.js b/main.js index 3ea3bbe04..deb70a222 100644 --- a/main.js +++ b/main.js @@ -61,4 +61,5 @@ const roastSelection = document.querySelector('#roast-selection'); // ON LINE 62 CHANGED VARIABLE NAME FROM tbody TO coffeesList; coffeesList.innerHTML = renderCoffees(coffees); -submitButton.addEventListener('click', updateCoffees); \ No newline at end of file +submitButton.addEventListener('click', updateCoffees); +roastSelection.addEventListener("input", updateCoffees); \ No newline at end of file diff --git a/pexels-daria-obymaha-1684151.jpg b/pexels-daria-obymaha-1684151.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ec928a9991e03a69e8ce2f3d49d7795c1ca706dd GIT binary patch literal 495136 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%0AVe&s`F3gFmKV^#;8*yClojfbUa z#z?sd2-Wx>pIaiAq}v^ zW3}Sqc9+v7p#UnKssS_LfFB1Z@Bf~Bi8OvcNqyhjW`hJ+6sWM>5T5xX!zOjqWL69m};wW-XqUB{7d#@KK% z8^^qW~JqV6r&MI|OANZoMS24FrZ(Wgk(jDRmIGg+n-r*otm zV-z0W~QS8Nr0$Rjv=;R3%BGnyi|$^pIFCFV;y!E4MZbE z)sP&_ES4TOgE*Ig|50}gV}gD}K`^IN;f!I4P6Blxr~&sR60u;`DJsFOGQgo1&>e<{ z@*I`6&S*RWO#+G&k#Ir0Pt|HX99xLB5t>U8{6^1qdKF#M1*V+g-AJRh7tDZoACY5< zoad=nR<9JG2PMtuwgYpAL4}e&w=jk=5>~=0;7v;KhCudaGTw{EWXuj=Ymh`)G@(n> z!hvmcPtykG7t39?a~pHMC*hck!hmGxwGAyf;d?=oVs8p24r+(R8puw~jDXn~qE1YM z?y>OeWwmIGOwG_XA-X6)gz1JRSP$3&i!}xq2JF2FQ8E-?o(&|C8X!wwN^nOjBzwVWZC$`8ZsKY*;C(yfP#FJ>QP94@9z{ zCBcN`+X2^@PGlT2qB$%}@F&rLoFF19SPuM0`Q`dIVWAYTSJlz@j0N;8nHR1}e&R|M z>KG~$;4&?EK1$gh|ZngtI8Kn=7_kmo}>3rz)4SPjkyX%^k4 zmyS(@9w&i_?o>SLVhFM-;v&|^UQ^0!oE51{)?wDH`HJS`IGgUbP0r1WJwxHbw>bL}*i> zA}WHuI%Z6A$Qz^s*ZV<9Ki2i+<3aA1mLQ<492;N`GQDANM?1@=mQI3L$i*bQxHyo! zf??4HmeJ253;RF}YONbmWPBfp9$6TIs>KQ4BFUj{K)J%u(eZe~sclnZ%nm-Y>y#45 zH8>&r82=ec|5Y=jx4i_0K!Q!9bx#8p#;dS_m}L<%92L-^{2HVO5dVw1XvQ%>%l2Nu zy%aR;C|pKhTgssgs0EHhg=`EOOdZ7mdM!}H4S)<_%CLmv#s#nl;C8U6iIxl}Py`7n z4^O-be}S?h5lyv0XihIUN*ori&nB=S16vR_=v}ggo{8x(|k~UvKKW$cSzu*{)AFE9BhD?NERQ0yR4J1&Kr2N$)-bIkOpH_ z=(&-(!&w+<6iZC!OtuRk7O+>fW09&2^|*m4QDRjnNta&G8xTGhZt54IWXF-EZbcIO zj8!K+U?McEwAG@+5Lu`#(Zsnxdf}i8C$}+0Mx}2((1f~d)x!FIC5NbBPArLmPnE*f zZsNWj37a}~)F_RI#C?f@L~OvE0=v=-gp#o3IP_6NQiBC~W(4jLcrY95%@H{_B+w=s z7W)jutR5vHR&iQ3xX)qi5g`O8*P;LD4JY9NoCL0cjR3#UU{1n|AdFaj9~%&GngKNc zh>^L0d6DO0aKM;DA*}#D6sf4A8DIj7!a|UyDa8F+{}#T0bzm5c#0!{VStY5eSIc_9 zmN~Nudvb*%ng#Rrq=uiY;QrWPTI__ackoxosbEZyIGQ}!h9kICfXD_m3M=>#X-|g- z4N4U&f=^75a|d+`%{}8+Yt@nLj3tT|l?Fy4Rb^2}lq3TI2-+2a&6y#*flqsKgu`ke zmd3NnxH!@Y`34A46$~{>9E;cy_yTJ^5dMfDCCUg@jI-d32EFEobtk-oyIHUhoMGLP zgoQJN52h(us)N4R&Nu{sFdZoz0+ZR)2MhNuJ61;^3M4bAJ|3TuLJs2!C*LJ1nt+pt z2rCjqz@F}eKtLp5KrNRMF{P~QM^kg%;Jqq7i&uoETEYt|CP?eh^aT~k|I$FmDwKtV zG8_NXooWMYRIaBWq{2?cGS!%dZT>2sEBkVozwm>IkPf*(9GHK?6*>nlDxw$q+<-Qi zkn$>dI%8f$0FupHRj8dBtTx?-2DHw$#K*vbB(`jIOhu)T} z4?81cJTArsx-eDD!R6fm&_KW7fwzLMvZ4FlP+7BL3uHfB2Zq{CYLLxdw3TIh#7s0` zO(Bth^%=k%POnkHs_227HZh>kHuNIJM6&V7LC6T6mNwWG424m8OgD;CDF z!)2id^y(1YriWK2VJ%(15GaQ`-XMW()Yn7ieCFZ{2-hs;kx_~j@{HjaqA7R6tR?2dWl)V)Pb-o>1-1=L(^0v_6l};K zqA#w~S1nb|o@y`kn})#-j(}qd_}(Fj7wMOHTp4kolk(6NB}K;g2WZe`Kqh^gdsS&y z0Djo=Y2p-RdfY!Cj1xFiUVDn2Okn zCd3jAaHmM*!ovB%qMUH+9JO_;oEs>Llme)A6d2*&oQ>23&c^1F1@_bc8!|8njxqt* z40;&#GOrRFV*n(Cd33V+imcEUffFB++cYC8vvL(dg$9SGMC&QM4k8zpAM}Ntk#bP2 z3~M^k8|)gWh_xw*36XJ;CMZh);&Y;E)@Ja;6M$>(k$eEmGB$UKwvEdBAU?4HXpgznSdhff1y!4> zp>M)*LqzR0G6Pmy4mYY?mf&3EY*-%RAz=}g)nUc61CLmb0m~K{CrZIstST5@jYUw( zhJ^Tus^ym`3-lR?00MM7gl4qX;yhql5J+aI;c_~yY3wrMRtrO89g&UJLr`d=L^sf{ zmV_|{6hyOW+81;jC8`1k`#Qppgu|0DCRR1VAJD5nrG- zT*TthbG2wm0}q&2X%5pSXa}KKhz%s-24oH4Rsl2gzJ>R>7I8c+1b&} z2n4=_fjE+=rHc-F;=e$!feB8Uw%y+a`*6ZmCgmn+Un6E@`g4V%3W664=!Oi&mRndX zD1v)1H8#nxYs@l1n|hWy+k#+J=yq=5@zn`dt03M-6+ob6ifAMtpx_gR36>QLvX zq0tcs5jw|)j807gp(Qm6*(eVcJ8=FMmS7fs6VxyILt3G`B@GG|;;E_%uSoT0qX%Fbi;bg35CS2 zPj_`!2#X|Zq6b_1Y0IUG zMILQOFrSI`NV0)_P)3rj^8uad;NwL4Lpbn40jxsRW?Ax$ux!_&T-~dt;MKyb<_G04 zUue`E#`c6ubm(3rW~!ls`RPM*nm)j#CzFrq^cr7m@~R7Fbs^1YJe15pdQ4S56)Hy z1VHn{X4o*#L}DmMA~La*sK?dT+Z)UmXfzY>v@VcfZ~*}hJpZb>W{;nI)Lsm z36(~fPTi3#PR61Y3qAmrg9R1{5-Jcnt)c;}S#V#3BILAmPyw=yust!@6qXi{4(Lu* zB8AK>(@Zg$N#q1Uq_I$)?kd;~i*}iuL(-T7mT_ft1>0xY_)2nHtOBPZb`ZLOevg6R zu_XVf{J(6l10(4SNz$H~`V9l1cgBivx{e`jdrionZtpMWy7#qt!0Nn|Of zE5)n@rkgfNGZFol_fBUXC;$l>laLbGVYhIe1FkEXf6y-}+Ph?Q-bJV)4)stfFW*E3 zT@dUbCo`&p6bU;}YZg327xex7lh3~do&8)1%Pi8Uv8rziSoRp!2FE~Eh#-$M7Orq# zp{cE;9&9u#sKzOZXN;IOfx{PvELPvkt7t@?Dz6q|Rv8$CrrbJ1d>iZKmDoTeoQAnK zNc{jL`Y~mcIu{qpEG9@R@+ADuUGSRYk-BXl1t18d+~aNX@R+Pin#H+4FsqHt`t@4- zq3@h|^+z_uv=3eV+#7KMNj$GY5;rF-!0W;#okYSZ@idjP^boz!Vfyc%81Zm;t;K5PA9R5PY3PV4bKz>y9s>~XeWP`hc#%> z@*Wd&r=Q_^SMr^B11<)!saTjoR!N+2+zGT7rrZU0<&A6%=4uh2;5U${golLQKzR)| z2tvswb&f9u$niv@Gu}BDLc_HifQ`uWqr0zZx%07&cU*JBcjx_gY_7)oY6Gzm4d<9! zV2>GG6-wa7*Gf9GMge^Xts+V-v2cNSK2S@BRf&vQ0YaX4!k8SYT&jH4wA_tRn*e~0YU@8BQiNSD-(jLpp+17s(`it*jSHa3C9D0SxNSt zn>i347SzA!(1VfZKmOK>9^81>9iQ*Ms5G6a4oo26@<5&;Vwm8z<@D_{aRIh6>MroHULB-wdueqC&yS0Ct&$bdv@RkAT9MD8(FviFP>| zR`^vgVPM3I>FT7oKV*{sWqAeSP67{-W3m!fsX`!Al3X{3I%j)*@n&qj6Jih-?E}2~ zc5b{Ql^-b02cPX4y|v7saZ5UjNLaWC>j0PH2zZb5I2|~E6#?a8HZTon3YZ%luW>iH ztN?yUSx>1lJe(~OypMV9-d({%10Txu=P)rZCPfFwczl@D2?40cV$#bm=$cV93qPM+ zq0E-I!E#ceb(SE>QmYyxuF#-N;VGM@X^kJ~*j^w1@r{i_1FvV>OZLBm}VK)T@O<2@fVP&a1vpXslIq*fio!(1|RyHK-g zTJkzhgMc)ajn~D+?Z>%6nk^Qe42}8?oKlxx#ZPWy3<(_j;jI;_L2J2O5OMoWeNtDE zeDOd_FfjgNFGsJil51~x^4ZMKFDKfP@oKkim=((&GE^P=EtnvjZHkq^)gvon^v zxrtn4$8qwD5*<+2$M+cHd!WQDt2rjuyVcl<>5`!!7@>oC@h30L{eauD=^x7u?u32M z?hQqwYD=;U`$kcG|DaH9PGtH>3qc^g1SJ6V31@hmFA2wo#`=VLh7YAJ;y z!a#bfuxUgP_hP?fcoz zXstYjQ>T*3al#Q=hL+B}fji}olLD+18b#nzRqK{DKB5Mdlswy7SE5&Rf|_AwSdbNF zRST8)9ED_U^npkWR0H))H$Q?uv{O=p(>6A33L!-!FJa{Yu5)}*T)~8n98*2!1QIB^ z$m1J2OhyBPBo_`ei*eP0hHd@)hL3MpxT(K&HphziN~BS0>%DUGbpqsMA$7agR_;BQ@&B71Ukg9zNEMJoa(gB-s1YK2l*Nn5q#6uwK1uk0V1+8gS^PyXC? zbo1ze=nb71#37(T1jP*z{nO=QH{3b-X4qWxlU^{l1sZy}weN&sM%P zu`4^>Rkkwtqe5B={DGOl)-EQw4v!7TVW&;E2&gaEb`rWThL6+^!G0kHxl(MMZJjkk zzl;J1JB*X&MP`%jlDeHB&=SKs9nE$qgB{!s=>WAiMD8e|ORxn_*x2y!_Td+j*wsP? z3oLxhls56*Nvym{-NcyOhV3ApqL6Fd8ed2SQzva$xUpfv<$_Cl?)}$9H^Oq|+sj`n zw?EciE@%6@%7eG`^JnuTZSjBwhY_MFSJFwjO(D23B^4{8kV#$y6id90ZL7pV{9s*; zr#tf4U;-jqSZf7CaxPoS_<`}V(ew~LK}joDlHgz_jXcAF4qOR3&p#J;gzfMRl@x+n z7JNdh79z@84u3Gfgsnqfz*!KcSiRg{srRVAmB~N=onv)OiZ|X9?~k|6UKqdOvF-S{ z0k}yC_swU1w#4oE;fc-Z=A^>au=i7rtHor%}s z+^O1J1Nk^#uteQ!U8F?SKv+wjnv=0YjvO98bW{3KuzDs1g@R>h;@RH5haVr^_tR>4 zz@E>hE9L&gVQfMH7wXT~k2kc*#K1;E0fE9#Eh?x)at(M|H-gX3A)f8AAb)F;jGfJaNVW z>!@PV=Y|s&BMx_XoQN%`-jW2(2~MzwKpBAy=;6;pzN12$Md=fiR!O(ZaDhAM50U6L zMsrdC!RHb!WlbltM+}~d-ITfTGuy%G)P_HsdH$u_?w@+9G*1R>OMWI?z$QC>5H8OJ z7u;@+y&({gIJ{KI2MtG?1>;$DHUfK5$KM?T zaXG2=Meu=_ev?!wvA>W8VsFt#(-og7e!~()G<2a+_v4U6OD7q)W%TFisILp#VoVDH z42oxxPV>btj9>j&mnFVf66()9o7(qN7wS#<K4Ax>=Ak@++Ok8lp=9)Z-5B2zA>KtFt?UO#_6t95bfLt;xf?QQQ z;?wax=k}c28))9;=a0Z?gNs^v`0kt+eE`mMW`oVdMXsa<_KwP zx96w|H`5Xih;JVOo{&bFG1J0)F?*;v-ZvXOm})kx@p~Riu+RxV1X-s|!Lv}qyheb+ z7~u?sfv6?kjgYTCsM@;iu{PXeP`fZ7lpMAzfD3^^_X5PxPTX{7roR&hk`ORu_|!|G zfxZ~d&B1kEFZLB^*)4@26T|?JHL>RnzwN-#1NTKzzWX4Q_<)0%2oL5jnmG6V&ksC4 zn%|o@fQS5aZx_d^0(c`1Fl`l!1qH!K8_tDbE^Y+ki$}qD17Eer(jMP>V}>y$*VREC zI1nmN4X1*k@+R#UI`+?04dDZHh(re}akb)FGHYN7QYvRnFgZsk4BvJqK2VFL$TSP< z2zJl3R8~zJv8UX)D$BtZ~*HzWqR9I zhJg0Ch%ta7ULg8y!qn&rTOgiu4mdOIt*-Hnk_sa=CpXB;DJcKG>#X-@1s=5 z|3=l)O}Q=BV_1W^&bl(#T4$kkTQ=i6JOCXV7B;m6E-)iNO56{P2nK-u!LkP&jx`tJ z;839;JtH@=HiJEBys!B>FodHX_qT%kv;;cEJ4?x(2o=!JHbg}hOLLPgn!+}~eQ^B8 zaPZ^!OKC{49S>gK{`k1->2;Ot$sI|2%o8R=YJu-y2e7g%*l0(1?jSCuM877Y*e-8y z%UyQ@o?s&)#XDy^^m#QE2+QLKWwv(DW{LwM0b?SV1`lkA!S6q!mQ7t_mQz^lV+1G#Oms|? zQVme3l@OO;va>_I06h?I{c2DAh9k0_IIQC*VIcd!t}Mvjzw6mlez;sSHU+{K$ImHM z+3CW$B4h@ILl^NZLW0Oq5yIc$feIfQ!=HkBKusZT;}0H^0v#Ppd+vs#AO^2Ggfm)l zh$e$f{HdW@7<8p5n(aAOU?4yBoxm8%2;3qS@A0b5Sq(dlmGAqov_Sk|OGgYyLbdp= zyG6%(5hj8?u;^tc;hZ)_wiB2fR5g}AYspa!49H~Bn>=vO%%(W zn=ju8vp}Jo()6ah6y9XA2oxvvC}T*>9Jbbr+)yDtT7?_n$IgpIE?a-sXuLm-P^PY9 zsVl|zN1$(5)9n_(L<7YAg+Q|Ep3R6+gU<(|X_NLBgd{J!lyo7&%-eawuRvDh$gwXJk>1p&)t$U5933R|q;FC3nCn z{Kkd@-wNUQPFrg>wuy{Fej~gj7|9tw7-D8qwuloFay}?P(S6+bPIGC6a zVntBxzhf62maw5Y!r>uokqcdf-Pj!x)&+h|hSOm|p<4K*AmU4CClW$YUeA-e{Ib~E zGA_a{5fdf?dK+%cl^edX;Tz}B*Xg_WZiRhJY^C-CkT`fhjy*Q*x7-Zr!$!?V)zLt2Vi&o7IHfZ>Ev{7cq-WzCv%Z5 z(I@5H<1nxm#Lv(#%r^_v0g{7Eb8VeV3(=qS!+kOb3>Kl)GL$TJ3JHD9M8D^0FM!H2 zj>=29&RG*48aS`Fd!zg9=_i)jL}#*X%dX(qWCEgs0JS}c{eJ#LYh{SI02{}J$<59A zzA3#AwwQ)DO9mDSy@Uw-P#BS$l=ys z1o2nXYO&yf0SDjrCm%cKA_p5673_I`4u{vpc4>ylF#@Yw+beAqo#BOc(icGXJdR@! zPRDA=!o9ob1YEMjMt3#mAfb>#i`52-wWOXX;_s#)rn5lXo&#_xG%y$z1AF3#slwAl zq-nObYJreU%Jkm)sV>1VseH9m2|dumDo0r%_z1`PL^k^HH>l|ctnR^6(uWD`uHyXZ z*pxxBL?enV*Q)E=VilXHDOweM#Ly22MT%EhdKD5ax+3gAf&i(fUxpkOj+56i{_ zX*8^u$igg3YTJju z6Ft8(yy@Y`Ki&n4voo)7{#+>$V}TZk(4irm8rqMg3yb5=7Q;~{Tc8YX#pw>Qg$)Oj zepyHm3{SEs`a^$p(IK!XF$pxV?=OGk$Fe6wZY4v7&LHX~Gl} z!9@Z>5LfBU4&al+7CmBBgmB`p5FxyK_O(tue%G2KVf=-SM8Slw zyzfaTngz$bixpYgW?aPYV12BD~A&nY4VzoUKf6=hZa12PD;m z1_=yF2}0ML>+eITfI%gc3$P2o3L-bmNJhk||IeQTD|7W@+YcWcZv>#Nv5$g?CdK&5 zqj^C6XKWM@y@R_!?ADeh44WVE_+@xC=eHd$Dpj;iQ$6DwR3%)N* zrx_q`mSkAinO#Wf;F}BbFf}+0S%EClA&D`#-jEc;La^4T%PB<%Zt9@9k+AhZ4Mqun zA1#s2PIOl`)oP)_Q445+chQ??#3@z4m}oGd1lv{)(>>Gv7>;V$+3UA<6^7vp(DZVU zH~hp&gf3(S))8h&>>mJ0RV$nhR_C9+t|y5Q2G~0I2x4-Fv7O`l%#Hon+2BX5j&M=; zfxx79ZytDz!e8NZr06pl9q09ZW_wBvjnu0n(>vAL92BmGkL_VcU=W^RtFz96{TqW* zfd85BoujmnAa@cg)e_J{e$x0M%yj`jl(^mpXSD*2Mi>&h03ikhK!B>rI1euj6^Ckj z!7$U>NCfB2=l(xa?*i83m9-5&Nt3=I5gTHNqtoexNSu%crwS24v>}8}NCZO&$Vo*M zMZ~t2S}WR_7|DDX6g7n4q1X_J6Ao$sg<{pg1BfW7oYac6jv^v;tU}wjww>$0cbxCL zeni9*?>a(7b4f=0G(7T9 zughYu)jMidVWFf+$VxS4x5iwf<8v_~m&uS=L`5!(%1P0f%C<^)9*+QuU>$`OrFh71 z$m1gmF+!)pwqD_(E^rXV-AoMMK|)2P%xThQgC|@@=poZ>i?rRSPh$ZFAkJGmjn+0m zgf@aEae7jU**4FeE+)S)Hj(=tdQk!B9Hj_28;Wh_|^V7Bkc~v|PLbVm$t<_;j-ojUgml z(xQZTfo8YVz)|A3I?Q&H0ysYn&K_R_-xJRq#SLt1lI^}K(8AmDm6gD8^gG&2LKT5K ztWBxRO{XalPqY-W1|L~KfQ%tyn@NXpqnSa`!13xl_>Xwi7@kcNNY6)s=s{-gVo0#s z6eqJ8=d2O02!=$V%LTqAv4?|K3y}8;)B$WD9@Tj9c_o-czx6z4I=u~m%}DXuV1bsR zS_@yS(?hFWDKWA*QS=ntAA{44qee`IBnuoG7dfw#*)8=28Ro*fM4FJ5CJDsqnGvUv zf}pnsL?GqHOVx<3Dn*x=MjE{mgQ5LaB>{gr_Gd$(*e>!~5CwcjDg2l!-X*T~ko8eu z!-$wutPVMFTVp{(a|S1ijhtEWzAJPBJM zrh%R3FhyM$nL*M7;!1?UBH&t)v#U&13=Ay{l1Yp%Towm;v;qOpjsK<-cxNtxIK&^o z6)B>)3Kh=mZHPRuE#8P$;`eR zBZ`8#1^Xae6FLb|l@fYbU;u<}6_|L@x>T+X6O&+TU|pqYr@Kp&@nKI!FC>h?PRfoJ z6W)0mL;{UMR-I2S+9N;$lib8aap*eAT?^F7$0PCWTn(fxX)+du79(claS5{llkuRH z7OR2pSOiZcS-{pXVDx@KA1W;cq{nsF3Eiy!$DSfO3xZQ{dVq1y6WOl|ttT)d(k2HZ zpi3-eGUpXqGC-m<&tI_PrAwd-iXXq$c%152RFxW(yjD_-~RIp!~22Sh-(iPnGVDwP-wv-q| zedKs18pfj0fR)J-(XxT~Ae{8j=#-F>CGLQH0GAdvkceK#5*1pE77vQ`@E~Mayi#Z* z)9k^7LgPs;(az&8DFhlP-7Jn_0D;CvQ31I?0y>PEkUH^I{5aei4z)vK2~eQOqQi+w zkx1xig_XIwpezkUn1s7#bF$H7fQZG#3ZeIa!Jv!^oIgAeEgN-T8a!|u6jlUH;cpZS zmMm&buz>RfC<>-0!X`m zmd0jJQji!yIc$Vp26)yrwizsCxF`~f&AX#{#nsYj5HQh5aYC{{SqLZSiGl|{uh#PF zl@6BDh*u2LK!%B#%mUQ0!A&Q#?K>bSKuji?bBb2tp@b~HOo;`h%x-PIfh%YeavM3q z20$OU7c3)!acWGF1NcWFHKe4O_RENod7U;69u|o~&jHl9X-d>sJ?;MsxFZniXW zS%egs8~R8&G-%#Y)rUq4B`89%v3>BqvB!F6BQi13o!s&H@O4=JWNb71GdF-HYSU7u zU@H3rZ47ra92`&L0e^sXk-3w0(d&`Eq-L86**+=_pa$H9Bp};Ep;V%v$V=n`A_^%5 zndeeFtH(l_+NeSgONQPZ>7`;y0}s(Ava^fWBBHcbii}KwzKu`QsB5w=0qQm0mf$Hc zdzhA$nq$Ok@{8hKKxh|(K;;eX2}!=BF$=j4Y)Oq;NXympT}&V{H{X~f5%SC&2E>6z z(E2WjQfw`u&3f1e-mqzK@7Nl`lOcI!lV5^&#%k;P0F3Yt6bd1i&b#EpGqm#BC>jua zQh=n4a5%bVUvYZ2)KC*+23TpM(dcm0B6J)m$@m#c=Me_8aM8+nsm|V;LdjULdE}Nx zJyU0AgDE2OZecJu%LF!pALqg&M*-&;cwbX{Bcy;YG%gFvb4jXn)Wi5KmIj=vw`b|m z>>wSgQsXe#Z9Af36&}Fv3r4g)fWDzA;H`yxnFRt2-VXgGI*mm<^Z8_6We&bR%PAFO z`m};?knja2{>fBYG9oxa7y+D=8~z*e#M_}eV-?=26^)d7jYc6RmipjCA>u)jFXd$R zqU6&{&?fE+gOMqMSjsE1U3h*z*GHkCXo_aT0N5>CP4dv)PzPkGyF&@W2Ny@qd<`}?POobUT8sw0(-GyNGOPW zTnRBNOBU0>VJNUm$OF*fq9nA231p&6psVFeIUGqbL|T<(@-f1XQzEHUz?-tz3K_Hq zg^j&j?>>rXd)#I zm`(!?=bj{ygh6`+*~p`x?gj=VtwP?DNJlae8}tz=DRcRLQl}GlC1l6Z&CLcnf+q4i z4imXO^4LaR7eyEPtct?p>SPiSP^l~l@mr{3){7gI1~I8(>9B6FMWzQEl3ko5?6gij-KEEt>qgZ#cSl#R_s>y2elbD6{em6rR zuqQ;J;4L-A=2Y_9=&)uQ1JGG$MiTdm6~r1)KoInY^$7~}(A!fQ zXi;K;Ov40W9BgBvvxO)w2)W1Loj=U*7#T z2a%6~D|`<`AdS{)8?z=#!4_E{n0BD_D5Q398v=j}mDN&#OH-DsH<{Wgnw0L`rM9H1 z_!hChMj#H#R_xfwB3C2nX_8`wlg`)?B~5CP2lv=rup`0kT0014Wvb4xpR>x3rzdB< zn(%B`B={-QZIsA-g}wTr$5>Ziv4E3Vtp#JnVl}J*J;v4gQ33}H;up6CP)TAo~ zf-WJ2f)!Fv)iyC7H-i;ZYL`VV zp?C7xIsq9Jz#?dXEn@j_gs~i~7L{g$4~Aw6`e-JY)L?0BjEx}DL372*1sb73s=s|K<94(3c5$Y|<1$i|5D`6=tJ14#IBS**d&vX_PUZlXtBvkx z#u$531ZvkQ*!ibx}up0S@AKzQu zF-AI~wFcL_V^u7?HdnFwWEm`Lqu7Cy=dy^bL0Ppj0AYop8c(Z7?n&mgscVRnE=>3H z;{?ifaHG`!ox6~_N~0G@i|B2QMqE|6FUgFHmU%9ntBkoT*`;IB)J~A5au8ue6|M3h zz0Ae}+^)-P29HUjSbmJyRF%q5D0GK*FAqVh7#bN#d;>0MPEg*_0I|cvA{FCM6wx#; z>5hI|K-XDB^%lEKk)RKX3QjPjCaIW?RJ|+71Z_HD^?l$#jg$y{E;)bx*=1l{_!?kH z8bOY*EgZ@;GjI-*#i1z`F59aGBRn`|+<{t7rV-f09f=ZUVG2`7l4!94t8NkNlf(&z zV6m<;CV|~7#XWMkl$_Xm#!Etl=elZkR$L9t!{_CV@6kEV^3yD^TL%$M5HzmnlEfj%> z*gTd(sDklPueHg@-B_?fN~~n!&ITEqEyyX0Ve8WL{3M#17?Qulh$XVZ>ged_!^>pz zq#U6t9idkX>?@@IUxNaQgikbZU9@Z(P1$BYFVF==8FWcVhLc1^P7T&cbRkY-t?s%g z71E8Vt1_FBNZ>HLWs0I~M$`;HhDHf)0KBeufru=M!1iW6avK}UW3L7vau7z)*y1OH z0v;8CG$XHaW107WA~AR1xRUZ6*AF?2kj?=-)RD^@8BB)-!Hq*_irO0OLOrgZtdWW( zd@g0S8*LO+(R?2O0K0EEEErs;6dDEfIMs6p$q zXWEjOd_J2A`8hEpr&d-h($q)@gHO}?1(J0iY`~tYDz!(L@4gxmEn-7z840nGZ zErT(6YntE#L7D?HA+@KJ$RdN?W*{v5!%VoZbh-o20ER|EdAJ10cjBofBEFGIvKtUh z_CXnHXw;Nt%RqjZbo4fI*8Y0|q)=x`2bj_8upU~H((`qsDK4 zRyV2BNsC=)Utq7;eJn%+8j_Q*0kp}Mrf;+dk#^W@LBgty zqu?=Vz>vHm`jspzX~Pop4K^k-Rar=j!Nv3-{}4Le60$~K2n6mNw;c)t`_&C=`eQL8 z$ZEx+&?)9lwVdv(7b-8M`!R^%LI4sG1R90-W+LdaSqG*85R*VhU`#Pl$>V@qi!|B* znWzYs43Ox;(M(2oBIpfasYV4pp_6H9GXm_iC0Q`)L`)f-MMVE~;i{mpn8UY2GD*ya zyrB|K;u``r`JIslcGyY<1d-qUEHaVa2bnvK48bp~i80+tCfeX!12zudGzO}Fy2*tU znn$;GVrx_kjmVF~#DPGO8vG$LJyi6p5|i03DMNJO<1*rECRJ?{nRG@D#t`d>LFfse zM^9W5PMYkaW)DoXM>|=Cp%&l!3=)|1OJyU(FzJ} z|E(U9?+n_``+Aw#L|=D@vZMToIwh{EjETy zLBvc+FqYC~LljQW<`X{(Ivu$(m>{w|C?{V6>I=4Za#O(cEM0g?WB=|cgo+T%juNb${nDliJP7&vRX z%Ygtz(Zq&E+}Z%PEmJ~gEAYi=Vs~&^5a1*}CsX!maL|$zLX1$})xpyBii72SOqe7wqx|X?`9_-?)C8A-8x0Yc zRKfcLWQ|&}LWub>v6*}$R!nq3f(ENny{J}(tH%Kwutr$16uPS}f3+H2E!||ZuwX0_ z+mVnG<1o@CHl_gdOAw)30C1Q_1;sT=`3*9cJq^4H-$X*ys|yB%rY>Ck=Z>-2nMQCD z_;VVQ95w5moLAL(FrDys6a!tynMg5zR=~|sX##PYKU?3M6q{o=nRP*Gif>S&I?QGk zZ`=hz1Vd7!())3dZ-Gcc@%c6w&FW%$*Q|o@@uMYVp^hKIdbviA+d5j7tgwtml>BZo zzqI@EtxFR<2kZ$7U}c)3m>X=0!ZxxCdy|@dz54IwBya9Pftbh9)dsQ94{-rXCZ38~h zidjyXM4&@R#FEl78VS(rH3My#u;xw6*qL^GX##Soe z(~*a>C=mixkgKj7M4`Lcj zRKC32A0D=irC>8XRx@sqBCeY#NWhH|n}hRbYdl8GXeOWmwX_u84h0EsHXE1(_B;H3llB3-H4T*xEMFU3JEPG=FT$Wu3%YMqEHHgc zBc0-wDblOLj+V|Gf3N{PvEh@3W4oW+w%6O}a4Zzax{9k?C!QAFzuMP1vHG8q z3+++7Hidv;a&QYJQJHS|rw)S8kHl~D;%2- z$d^4r%nb0B_J}_bThtyI&(60f?I`m*=(`LSF-a{bzsz2!d^WmcNHtn5!wTxL1V|o4 zMW87yHoC=&2nb~&&>JLx*aUJBlcVE`Syv@=PQvPR@SXTS1cTXmT^@=ur_6DYx&Cq9@-1z)T55fPXtUBz@H>ZCom;uu{KYY9g-|Z*&K)d=^p;7N!|ergm1bbe~yy z!N~GcNx`R{w!2C8W&@}f^4eHFb7EyI0;B*lE$+R1r$o@cKKqn^r6K9nvEA)9S^{xw zSqhC-2&n+k`WcHUL$#4<5skew)>QVispRE%Bj^5mU~?OAT9rZMlt@V!BQMCss|z1m zk@3~PB8SdK?wwySv5N`7ix!_ij|x?Fz|?$g=0N9NIeyKL3yBL^wxqvB+9&A~*LU?_ zD@}Z7a7}uk?4WEP(MOTR>-N%G_)z3n(p9EED!TBKnY=sab_k9!&Bl$sLZi&oQgb+-*%s%)s zY@D>DGI{nK7cdFFoPw0Fv_5lG3X>B9s4*G<QbF0us_Ag?`FXRiCNV!P6-)Ho5T@d4x+>@WH?hu>n9P)l1c?l<)E;19%LwNgHh(u zX~aqkg?{>?hV?SDeIEtU7k+>yq+&c;%BBd|SO&HC>7JUXY>E%6tk{b`(Hde^$<%=5 zAPUHb2|@cI^Py8oGY=&hl6M)Bn4%)E#iCuLIwiUQ2o~rm#xx;u8nTU(S3hnaYqFn) zMII(`_sHqo*71+qZ`d?;_+`}MOxR1e#YWMkm!PDn6)GJd{ko^=8%n-h5qb8_hc90I z@X-RfK+9?j9L&{#^24`jqw5{Lz8U>3p)KNpEAo%zA7PNnJAI-nzOkU#OjiUW93dgN zi8cg8qqj6fnpiA2Y5q`-8QEgIJU>HOY_8L(v(+f2q6-0w-tF87gmg*g`L23UFb_Nffbnp799p7iH)M^G-euu zey1u~|0Jzh2e)AnlH7flY=-ArD-s@yhDFC5{n`}aw}#x@qqd}(K(zw`y%F+L7Lf%a zOGF_rgs9;ftxj50RE#`vI)Q#w_Lu9ojw8+h{hiHis8d(U_5lT@uFsMXpde)tO^pKO zSMQe5G2#rB<8>bmZ~rB0!AFz%OT*s%i+EISjZ;EvJO#`kW)E1~{K!Z!sc!&K$n+(9 z=EcpEp}cL}pJ&`b1Meh}if%XG)@B7mZgVHQ5+y*ArzBXO)QG;`T@V4f96E; z)T!==Pg+VHkH%J)*0x4eKYVgLvEkFNrp~z;9?|*e_C=k=?Ib~nkUq8iVul+FdZEn? zGa~4S5GD+e1DR3a!d1*cw6z|ptA8Rv#sj=SR+B-5+pRMi)n;g9BoyrRD)Rwh_}1=U z`*#SJ!3pSHbhi-+{3|lZhcFs+N-qa~?Ada>q<}bwfzjjkhGTv6dvgPEBwzv|@s6oP~p7kn!YX;O?16`y`Y zU-%ysBixo6iAhvcmt~a{FFBp}?GHIGR%S;Ynp`uQ`uG1W?|pH9(Y^m{K2i5Y#T#4Z zaG!2JUGi_L?oD~IQay2YMtDT#p$G2q z_)Y4lE#of4}P(NTzX z_a21+8QsK1ny2SNu^P8w;T%^TN1(Ups{KT-77u; zIJ={DWAFf}ERp#u$U9}c_F@Ry(8?L;jLU&{DS7$$m3O&if8|~J=_q-`Kqn7$2q7v0 zFH7iEYG6riDWUs%X>1@u$dmO$eak}oYkMNHx8h9fefN(`1CcjnTqO+GwW<(Z*9E9@ zDItgL!)R`EPY-lUX_OA-N(bCRLJaaDFk7TcCPrYo6BT3Q^RX)lhV?ONHa7THi4k5K z(FI3dV*K-J^AD4epM5r?{P!cBKP>&91wXxb5#6$Qx%j|%)&GhACGw|%yonD6zQSHz zH2-_S@JSf{`?k@AYaTsW(DPvDmlMMmcixD+<#}-I_M=w&ZE4Is^xJMs56QjOv(xr; zYWTA^<}X@(`TFDNN7w%`YjnfiYa_k+E0->%E#Ce8c!2X?5!C_aRBe{TcO4 zfXKAbRb*n-Z;a?zor01&}e z;zCu5CPnmX5H%^4j((dtV2K;4R=3RIlUXfuP>fK-!@(x4^#29|lA0|T-I^-7)(=r| zeW3eVe;`Vn@X}pSd>J)_Ad`w}B__HPSt#Y7P2UG1h;3kkF>A);P8a1M)qR1F1J5Zbu3(a_;785JU=f6 zH^I~=)bE-2a?i*2n~rWOtsX6Vc4X_q1z9T%6FFnyk5)8UBED?@_k{X~$Zd-jK7T2D zdLpuEa3c3?*!8-FE0TN4k65oTTGIpVBL~Lb2~7{VdUM02A1_`Ve7^Mkb6aA5oT$i~ zSa)Y9o(u=5$b)mF5p~kwPBHF;h450wAmige>oB zzZ*9rt?7y!`t8k9+i#t`&O&Xl2}3vT_mAO0VBpv zHP~X3@b1q~Lt!eLv>@wfx`Z_U+yOTGRkyKGBgCW99^Y~wJac)$FXKmGUY52EddJWhH1_Op>y_K6!U$qn=0xqazgc*~U2(VstF@YVE^&t{Z_ zxkn-ri@(Hjzwzb|4_{o*SSg;YGCx@`yz|I0F{l2ntZR14p`p>$Er0lM`Q$|I%C*0i zr%sM{-=DPZpm z3ZQDRsdnH{am{*#j;4Oa-9eJOren*_@WCacsa7V+9)Q6Xiana|-6MH6v47+*JJonc zJl36_TaYt?JbZ&Id|VkSPFE@r)0~vxJc1#*3OHF383{I3^B(P=wJh|8s14%I=H!(KWn}6=SPB!ZHvumUBSs^;>v1|QS%{&xoZ(Ie^bXnBI z2%SNQC6;+NN_BgtoSb(vtF5{$S+a*mASv4)aKy%^MJaTKN7D87r4A>PBo|7CP7%26xzpVRk_A37e~?H@`|FrhF~N{=nbiBN*5= zSOe}N$aMSpqGB7zJ=kAACu^v0%l!IA2CjH1bW(6gd|8qoh_N=PfW^T(lYPbYqetU2 zewiTYu6$x$OUPk;hUOGpX^($wjYiBZMgtdqrxUi{7UPk;QN`|A^bd~a&xXP;y|`$Bar zaemF7zTM->zTh>pubn)xsQ>T%t^jp!!)C^fJxVzuD8Pz^%yYb$x96StFj0Nnl;-f! z`jQP*)9SX782D=VDuZ^P>x4VY^6y zdv`sm7;KGj2f6^E@Pl>(1do&^xRaRP(T&!8?`AMz@ZOp}c4EO`?BOY+seV~{5IYRi z0wQmbbhUoZ2L8Q{JsF94*psg=Cw}&aSirPh3Y--(ZjFf6gbq{*bP_af9tfP@W3g#p z&lB$?|6Due!Pc7kC&4@QkncAqWYuu^Cb6c`fmS)?9c2=O?J?Wz6rmP+eKqwDsu#SN z%rEc04$`pa^DA<3*QH`XoKmK8!Mccrh0d!Co!8G+JA>BTxEdWiBfwpLJc){Mkt=#+dxw02q;(vN`L;vUvi!@=+ z?hU#b{<)|S6d{U{B(_aRqmfe^9W0fK+%^je!j^%yyE8+(IV@*fbmUi6S3mom_~gY8 zFAYu8&F0K4&5QoWjG_T4ayFtZAovSH9Pl>^=p=yz80n0Fyw{tm2cI{kd1FitiS1wo z6)cVRz`<6;m!8emwU<-?kYngXNSSw1A)aA$6CACF1fvP!m%d>dKarjpi@H-CF`@4N5*CG>vSt~LFERnioe2Z+ll=_=}*B?+ zpF{o`_I~Py$G?vbecW;+VuWOrf|a53oT22~T0#``HvA%L zql=n+SEMdH)4C}C^3J&UcmAxtl380HmB;ET>n|>QE%xmbizXJKz(Xp?!oXHx z0HcxNFi|W=A&sJhH1H%8M(2Fo(U;aOuYYn1?MF2VR54NhI5@cEL23x`Ng*;UGbQkg z;m}u3o8KK0m$9b_KZl4<;tzBVnF@aWWbr@$_Qm*$3vKX5bc6+3CMv#8>)NonaVrWU z#KM}2NAEZ{%yR0{3mDwp+>xj&&UYaHPgQ#wYk3^#$1s>nD)v-w4vSu zA{-}B9N2&SQ^2t6H@z@yHAg@mpG6h{3u5EY$+8H&pNr9niyZWjJ(y%T$*ugCv%J$|C- zyMHZQka%*W^v1-+zR0Tn7Z>|q^z}u4Ke;q;WyZv;n@70MjzolIhg?58#da*^{+Y); zVLR%hLZ;{W&V!on>uDzz{p+mgicU)lLhD|jXCJi8LR4|V@C%(OI7KoDB*=8iXTLwT zAp$Kt$*(HLMpLCoTN*x?$ZPM}JZ)M+mQ(6VF^k%&ExPLd($SC&YWb$PjKpR9d+lN5 zlf3Vi|FGa}LF9jqFFE^L3Q&m%i8u5+_9z9|G?AZ{NeC#AK#xoP_iKY;HY>ke2+&C@2km{l3x;!oKCub@lJc>@IT+0 z_^bKBU3K-r{_sB3sy$lHV!(7d2l!}qC3V6Wxze z8Z;v4`aF_iuFD+Y%{9GyMh>5-&_N-Wp>&|7*GFm6C^Ra8wIXqsMyGRCf7dCtE?SXv zKl{-2w?3cvbToC@TSM6+^^ca1h97#|Iav_-hwNYedZO&vtv@IK?}ksukF%d{e{d^u zVA0GM-%WndePcZQUuTzfV=G4%ZRuVbGx0{^-OT%G+|XTB@a>ABwNt+uiCa>9a8~L8saO$sEC2^V z40M%USO0$38>+_h5;dsy_uf}2lotXx6xbC6cRd$9Yp7?sYA;Zo5{WqQ$pZxekVBd*?HB0n7E#sPm|vi%ElQ~rbqOfZg?8}{2#tuAi=Y;* zbZGU__(*{4uy>dK?qP!hN9q5)5h#I~r(#sZ*kYz({d-5vHocp21t`crfvcg>xbLmv zDxy|=u=KTSvs+iU%-EX$&4T=IW;e_VTQKN5UXi|O`q*cGE}mTb*FE?9K7D*;epgS$ zg1o_2{c!Hnt$oX8ER6r~Y53HpS;rnEHvjtdqR4;Ds{VGxOXNli62CG>JnLDQKU(zk z)|Jzf`H#Y~V$W#{Mh}I}^}QCoZKNu3!HRNw=~inxx6xP4i(bYbZhbsZEU(Y$O&e_Z zD)`XC=mZ+i&xgC8K^H2Bm7yGFeJwI`ZuBv+{3l?RDDEXJQV8jr&^UqBn1iZfGeD z8Qb#nxvSgS8?{SLimydv2S zt61w3W9p8|7DvZ!WY9H2swG08M{=WKIe6vsWoRG(zQO2-cDhShRD&L30y3Z6kx$7V zKX9KE?Y$LL+>uj>9GcYS8VemX4oPqDhP^ZTC%9%Fs$8YfVHODaGXN}fGA8)VD2zgL z)td{SN8UJedCun}_xC)!yy!)_?V7zK`Re}q#G6ll9~K8(wngUlFYjpN6k_y8X&$;VJ^swy_%GY~ z-Wl8ExE2xqb>F%6{+V)^zJ6y)b$@Zb zQx~Tc+CmSV+$9^-iUq!kYB8fffQhldvFjx!#taYHsbflRjUG2%1b4gCjk~g)DfFuZ zz~3X$PCgwa+>$rXzPUGYtcR9K6b?u-{(o-{8cIz5F+hk&lMZ{&r$C#b(~`6aCqzA4L3AaBj=7FOt7}zo*4sT6J(+ zc**JeiKiaK_t{n)e9*IS^y>6`ksnWv{$2cR@8anL+YOUT7vH*bV)2?EfB1fL)4=w- zO=s_)eDdgc%bxhs*9sm+3`bYD^H2c#0KHE6{b^3w5bi~rpE*RqLEj#bCavpc)? z^>X}Dh9ZZTRz9-+vUuh3l~u?8aFS7~8*nrVLrr9u7|9-b{@cHQhd-t>7 zH-0=ic*@TYh4;e;tZfPmCg5{fe26A^ZIoKTg*;KQfndnEp~nMe(vNUko1c_f-MG&K z4QK0YIgsS)5Zyi|I9L#&PQ8ix*-|5CA>Aqd#urMR15$wMYf#uM?r)>`o{T`va!wJ$bzovy2sk`~n{nN*!XD3Epu%@ADHta=sM z@?Dyy-;GV*JIA|UU2|np|4d9(L&;SK@c?6<`l<$3O=$5@;ZRCOREBV)tEgb2R?i^rK%s9{(`@r;^eWAN(nO(e$#gmboo7sRM0l$eO{m1~zih)=SAyjdd6o=Tv*i8c9WK z;LF7)O2=1LZU1c#`lnS*;VX_8guV8~;ai>03qBqFbIsV#=eifRH@+76^4rVt1rbAI zQKIt|Q`UXhy{}C*`nn_VVlxH4EH%B5CE8E509JVyY zbaC0tIZe4&r*tb>Qge}{s5c=$>TR9H#4r@=0(T4Zmrl>^4q6B#Gwr1#+;<6tJ}rb7eZaM zF2%XFWowmdByOlLZ`QUE*VC;Zhn?HDXFQ_G)ls@E^zN*@{uVL*OJ8U|xwiwH*!)u; z#ii8M4~(7LmR+HN;hZ#8aeiRe0QIUd_1{{|UDtQcG z{b#=iK@JTx0#*$slCZgogRQgQM+qZ=&H+S&ycRVGiv9CoCplSefHCLCZ9l#|x3c=> z%!yCrnTi90KJ{xRhyURFsN}7cTRy+sG+Hq4Wkuv)E9T2IaDlU*H>qV#`ns**qn}Qn zIp;-0lf$RtqCX|xsTeSI)sO1B1LUtaxMWee$ge#`%6h3@Zz*!7$g>4$*4^po&!y9{ zEi6w;t;nQh8Y^Y!5~922G*p2JOgb=c;AHN8q55D=mfG24JjghSg8dhHayGSEpaEi2XGGX%}QUFIJ?Ezwzfk{v~MZ z>Z8kMj1`vZYSa75Q^xzgQ1zxueN`5-D&+Es8C%z-RIh2(6f&f;f$nl}3lYno9cdiv zv-cbtJvnxK8$gnOtLoryb46cFUyCEX19*6_qLqG;h6k-aQ(rG=<-G6ZQ`~HU^ zTWe<9GH`5Aryv)1C0?jCK_x}ri<}?K8hHHkZ`VIL^IM!lJ7x9p_=2wZm-l<`<&TwK z*}L@6qQ%z_K3QBg@iLSVQ{M{^z^i-nmo@(yvLu{Itk%C4KD;4t&)S>yxp!xjx<*fH zP(9jxe06M$t?>f8aF0f8^wi`IJw{D%dgy?uJ<#1*YqR3Uyc(5<2UpE&^YF{0S4HhU zv6%xqx6BMJ%WG^ZIamUmPwG?gS!9<0o@@c$c1(037!1uhxw&Pi>_XN}6klXqgp7vW z;%2|D_oE4ns6Z>Iso{g!BiE0MA6#z<-#WTA@=NU8*0HjYic6Os*N>-%e{wzLkgS(Y zV;8A1UW|2)ROBb8)&=mo8Yt4qerI!j{Gkrl@XwQ_1wB{K!1ni5qVj2OhVsI6XFU!- zDyuD_H?;NtZmC~Cr>Pb~hQWr@I8Sq)pFY?cTd{U_9{1HwA^YGf;02**k_GTz(H&4l zHEGz)LI;!LTC@SYqwlW{#}S0~R;Q3rL2S}n_XbGS|MEe_OP);q?bpxVcpp2|DHk3b z3V)&=JMnIG#=?J{sc6`JZtsbaU*7(@V{!)y6wvIKRyj>-oc?)VJ4XcJm(g>hb3n>`m?zwIJ zCVQU9dCUMgk5Om)(_071%NKusD||3lD~qDUM_qPT@!ImV9@jT3mahRw18KlkHA~Ou z2DZ$<7qX`EV;QEzVk*i&57Z*?b7ycLMD0MC{LK4aulM!AL3l2%s2wlONH}x66aBpv z-0}scT@NJjL4+J#S4M(+4UUEn5gl6&k$O?Dm}zFJ8Cu&=^118tpNdBJZ@SzfzP|Y2?wPZX z&Fi0Ozbd(?>!eIG8XHQ;o_x6?W$e&}`mU=KOV^CSUn7G}?r-9^A@P~>yee7bXqjKn zMo*2m;+BX2lPu- znF=Wi*$(JS@cJ<3bqB9asYMnwd$Uy&phm40n?Nzp)+vn~0g(gV4Fonm+I6?$BbLUD zH0dmzt)P}Twv5#$Bu~eG{!ih{&(6GccD@Xaaw*j;`WME3MmTk3PeZXxD$gY$8s9hB4tOx`r% zPG$XFdH(8U^IJ&yyN)oh>GCrWGNbmq<+d)&A5Jt zc9Tt!&?I^|sbWgyga!pgr%Nc3yke9{BrTiDW~UgurJdqs^Di->FLOSth!`%A`{Z&C z&8--jTYT;8f@fiO#(zF{c(MJ=Z$DPzJ7QCMwv--v*q_j6@3vqVVSmxJutNfUZgk!6 zYbqXI8eWCW)-}(hE!`3^r@__VFnhBPV#ksv)t+np-d)km4V%(y?ew5|Fjfij-ob4& zcMI6cHd2^sNe=wlzd|#5y?NIE`Qu+e2Hscdq7)}l-EdGeL$W#NkghVDR6l@OfxDIH zGUG)B&S)*hwn4tOBNO9`O|CzEadY&|ZJW9~BJ#_BH@xhNIlrzBNlihFbAyA+l*NBK zY%r2^fAvvu$Ck2=Er+i7vCE>OR@F2Py1we^-VmWZ(|g+{HM#a@9oreJK;J^w_?D%rFblr!e6`hAio%Me2{oGd# zelPrPsp3#~^NX6RVj=wj~w^t9YmivO4tb{sppV4{YLU4C2gy25p zoZxb1nKU6kX5YZhJWwT?X$!`Rx8^_Xf%p0-J_~Xn@iT>WC2_W5ULGQV= z^^beg2D) z`C1FzDj^#4Li%~Rn zk|jEQ?%B!slpkWAFZ|wuEt;Bfc0uIJFH45M_+!e;6<-|wZfH{Mh%r(U?$M9KN2`mH zIw~U?oR*#~2hNvPh1z`;gFojDZhkvt>+W9Xg(mk^oz^GwbazCEt2A|qEHt71aa?rx zaBO{_K{9*u6hkP(Q^sc7Y%@F#FnNv?2Hb@1bUQ>7uGyQXzxndp2Uq_&>+c0wV#4Qs@E^z{k#x#qM*insnrlA%NX72_AtIqa?T{a)f*UopvrL(N~}HK!qq@USXAjnDomxr@!h~&B1XD>@xzO&eJ}d%MwJpu z&3lhKPUnsGr8g}cEDuAeX=T-w#Tk=7H!Yi=&L6pcZkqjJ`OPQaZ(010m2aHL&)R{B zkU}JhRnMWf&KNXkFK7%GqrzaM{)GB`IugvH9bNs?V2~G9-7u?{QlZ&y&-P? zu^1wpgB{k2v{G$A_DL1X<}kJSxH*_ohxRKSZi->s2D-!YHPaW2m6k6a>H#~q1a2un z4HAbqFZ5kA#T4QRdH~yyYl5@_QK?oi#g2V8jW_ILg*cZ_%*xpI5y4g1k=@@vYySuc zT1L&F*6GeOyIC_D@QCl4Lgo*C#(4Tch2H1suO z@#;_vmVm@&V4xc!-TJ8@Y zRjXu9if^oml{Q>&SulEwKgQi)FR6*G=mN8|D|=R|d{e`w4VedrR|_8Y>P!!|3Ub;# z&G2bs@+rr)o7@{_ZLPi5zYF+3x6N7=2+GG^EOe$OLwaJws2WnRsEI*Q1-I6uuW6iH zav=PpXPx)MjJV?p%0_=uP>PDm)ssj<3DFY42qMIPHX|TNfv!S@&PS)Tel5f#R)03Q z(~i9E2UlCfqZMoaH1*eI5TA%H(Y3)QswX1TSjdv`c`ROi3KJX=`*p`a8R>Y_c{^s% z!-YPDJz@+*#62?gr+dny!fLejz*@)FZR@C4P|8ZEvk~98*c27gCn%qAN(6eGkqwws zWvXehWlzt|c1^ zT8^|-P5-3f<6Ux|OibtOnSTA@%gAXX*OwiZZ(4imQ2f?0(~lFAd;fOgQNa(3>OY88 zi78s9XGU-9=+R8mYe!qZtHxoG$)-F}-;f_KkORj=he;YQ#-eeew%b0ZF(L+ZK!-Eb zGSFe#eN_Zv1nS@|2aFE3+gRN=Jv60GRxB|V$~+D-j?7y-N}DqJY52s`?gjZzueGI1 zaOqr3PSVVTD2;$_-bH+utd7O?xETRl)r=@xVGzqBYlxzM%?ij?u}x;vh0c_dqDl^D z&&XD5#z$j4E4B_Ud5&x{N1&%O8hm8weCzp&Xv%tl@@M!dKs;-X%2BF+0_m zI|sCdAz+wp_4qVVC7d+e+X>awcv$LKwg+c|!ZwgmkK6?fT43gnY(4l@~_+Pg=}8(q&I=mV#bf8 z*gt6Y{FPy)kDo6sTlCkAf$p-3=!({ob6@;1aqQ*dElv5J2DCf~5@bg=&zc7P;1gdL zy-9wcD|+jV^3e6ZLyr#*Z&(1p)tDle9BOaofy_)Ft!>ivY?;yvi9?NS_rBi5Wixpf z-{xey-PQ{xy3WHClbH@+R@h~sWx0kF3~zdm1dz;;t1Y1;vLqXokT%4B#`|!A^qIhIMOq-D`h_lm8HK^FHZ=T|1UVhkpr`Vc5cI{tf$vK6Tbwq4- zSkJ$P)e>UDP!vOwo=--LkZEGK;ZMMOVQv7K7?!BOU1>->LccaV-dWJmm(zF3{s`u8 zcGGZmM-(3f0!C#z2=hbZ8eYe!Ombx=(3HT?OxoSad~z9`xAq}KyJSWx#=oMUk>|XN zkuH@|@yjehlHkh5kh<87H5+Fslf-21Ay?^er!$zEK)hD114B!m z9jUsBM5K7}(O-{LoC?AcV7?~$JQ$u0NA>{m5?@q*QwF*22mGPhj)FB89)C3!pf{eDBP5e5U{W#$eIK_lYQ~&YzW|y{N4OIVc>)ZF(@stk@5-dVczW$c z{`l315&5o^H6xqi#%KDdm21yulMxBmJQ(VtR<`-&&@rF|-%~0m#3*jM5e<200LS12 zQVUFxXSL)bRo~!h`zC(*RCE7${`k{OBCD%V_8hQD{;+9xUQRrf^>JR=AQoi`iwE=$=q!W^DOrt{rbqPGLQG*F_em*n&_NkfV zMMwh4FCH2#mr@A$RT(e8eX(is!=BdFpU&O$Xr=UG`e;?&#njCD94PBB0ytCAlp5%< zw)x9q$`rV4AQ*s2!(`e#5(<~gprwk;vFe7#4={>9&;e=FmYK)PL%)gtY}(PLV{yF? zxqLbt4ULiX|Iu_V@KERb|Nolh9G66rw%TolX~#5lK^RPO+10pBF6FMxHIxb~LX+5a zADJ;i7{k=KUq+;)i*g@RCRA=)E`v#Ot46f{_jG=Ldrs}P=k&;YKA-pJ{dvFNujdP@ zQ}K@_EHn`b87DH>JOEEZykKt7MLETGKgEWR8o8>N+q?xu0+$@c((iCIk{p6i?nDG1 z?sr3*iIKrCv*FOfH(&~J3G_@b8^D`b^MFs?J7=ev4oNuP^L)*#CKobRRxyxl#ahA2 zFkzogW#EGY_>nn=j=uWgH@z?8&5vzPo4Xac$@Zu+*NQ`Gf-Lq2xAv|AVtZuLJ$MiG zbA93Rqss^Dj=1%{OuGsxkt{|{3Q2f=+(vJ!mQ-N2vnfMS;y>q38h^f4s2{&`+ix^y zaG0QpKV3;O03H?VuupMTzghTNB&Eo}P7x!g;fs+8iM*tg#HrZ=^RAvI%}em7^9pk{ z=DTK>*#=zV7>xOG9aumCGOdD{&^orRu$^0=>OQMCl;h~$VQZTTMpRIkv8;u?icy6QG9m->N)mAN zB*lu2e%ZwSt;bBAp`8$4Y=twMqBUEZqE+N16EF;E6i8-JsB+|pX(?hV0q;5pPg-4P z6F{#{GX+`%EGTpxzwL)S$eKUhURr-*(eYtL+gNLn_x2jcGa+IV4P5;#eQIh{y5)Ym z%X+emR5j~;TV2zS74r+b!F}-H(E_tuY3>rgv9vj7^fm=Vr3J~ebn}`F$9$&;AvE6W z%LZB%aCAqs`A>+A&#lduW~qk<@{T)8HHaa92sFxNRV9>g zSjFE?PhH=kcoo#7@XO!7An1szRLYx^InR1(G^4_1lc8qoeHb5>T4w8WsdAc$f$j@T zJcKmib6lG>RICwne2<);q-A2+>EiGNKu216s#XqTt@=Ul3jKCg6*>i!SYjdoOV2-5 z-0ukAf6mikMKI)OHl>M9L=@v6Ng<|i3_vk$Sqsd%tB~zjez(tHYbCNl(ha;El-!<> zgnF~CZCk|j9ANs1ebErO55x-R4Ou5NR1F|&Mx;8Sjt|Fxu?IoO+u--{IlufRu1Hzr z_(ISg?-@#`zJ4!itso>$44oC<_YwvBew^LpetL(#_(A0w%Zh2fY@z%4Z)^rWnDm4c|`GFvpRmg=fu7SBvd1!vW4%LZpxrxfu= zxW@`tx7B>djA1|v=#wU*`Pp-Z_=@bg47(C4ds4VLtkUq_X1h!f=^ghijeoUAQR%uG zoCGsP=cA{e(WTuG8BEiODcOdBHH6sk#;;Ve|F z)s>zGIo}RZSUFwq6*-G1+TymeLRDA&DBe zgkwM*lZ8*(Mm*APRi610Ue8Lep`8H}7F$;^a17uIfe~ro&A^Fh(hE_vWE11z5k#`6 z^|=t!y1z_7xiR0i?bP>hwEJPc@a3w!q{GPtls51r8=`#x!8e-D_mIHn^Vs8C4*n!Rl^dTY(p4%=6l$)?Fu1B5yv=W|sdVKf8(aO{F zgZ@%R0hBWyM6EPCJcetb))EM+S0&7zsv;6*405e12A!&?qQb~jfhGu4k=QWIj0HOG zwjI_Q-$AJ(ZLlT--P}VtHr@SOA^7z(n$UbbDE#VOF-w3`BhH_oUxhd+N{jtC7;vq~ zCe;?J6r=Xy{m1wJJtry^ahKbxMKcR?i+>UzPE~}JyNkbb3FsUdPE^bBDVDP;owcX{ z*8~3gKSaZ<(o2rv*y)9xTJhawxMW|vPB~;jPo~9>hVzGMR8p$UQN2xqs6%qfJJAi< z&Q95o@1RsVaq*9#@(Qm@4cyuv=>R zveLOE7*N<7n`@l=$-JY;*ErP4xaPN$sntID=X)GpA46M$*o!OyeI!JZm{|V^VI>XK zbj;iTw`gE0ZzAL7RJ;B)g17heNWWxUU4fs4Qd*Bp`X3Sz&~brbhW~JgnQT1`Z8HE_ z00oMrB5MVZls`^4?19E6WE71qVq>rG?Ird=UR5w2zaqGg58c&V+Fbt(*&-LB3WyT~ zj7pJAj09R7#S%bgmj%-1_*c-AWvKGi7^?n{p-^a9r$~-xvEm;|x|GwQ=tcy8Y;l)l z;|F@q8E}fJ#lnM>jUb6gwkjl0SlR1<#s{LT9J}Na!PM=z9xJyc$*mmYDn&nWHtV=J4s0!F! zd9~p%Uv?u4WeQ{!7mz6@W2lx-Up<}O9LAn7vY0UHx@0Fb=JVBiOh`-iPR7(Bg`Yn8 zE(N@%_L#Wl^se~dz1KNC0y>%$G0~uied|0YY0%mEyRcYnlmu1wI_cY zj;)c^<6GMva@1DFALgl~vZi4Bb^;Q$3~E{!42g(9H`gXViU_wej6cDkZOd2tVyLLYjH#y?31N^?Ss;{ckIagg;FLSarlbkZPrp=Z zbD!e4zN`$0+9~h};h!mgI+7OTc*YtqjXDLB+3%c_s&qIRgsXvFBlV6n4jEF7o{CHCCr$VD)%LZPZfG0I~sq|KIy<^ELW8LsNNg zduoiwV(wo&nKK|r_7mH&Wp!KpI4Fa=?qBs%{m>I@$^V2nDIzC04vFyUK$OWag9EKQ zrkkv+7ySL1WC4S4CTgwjuE^}YXWzt}LN>NKjl|d7?HsIPo=kRRXl@1dW(mn!SyZMn?dVxaSAf^-%=_zB`5>hvqjGF(qm8S2^g9?R zyx;WVQpgOqzBt4JqN8-Jq+1GP=yFzMNd&0+pg6a_=&56~G*19XL`+-`ed|xeJ zBNkzoeqXR$jKu9V?*ICIuRZv-C1cqt`_w>^BUBppd}=gJ4iy2 zfEMBgNfR;K6iB`-8F8YOA}f`B7HE1v%!d$Hav~50z8)OBD{PI8CY+^0rjQ^K z*{Yy|gFmJ!WF`QhR(lF8KP4OuM^4>?yMwz9&c>>DaPf*)B|yOr$V}5Zut6k~lvT8E zm6b8)0@r@nSr(G}>TS_)_D0njc>;ys*7Lkivs0jCTQ25Vpl0sstB zKAbXw+jM?qnGk1E=uu;5lr#KZRCu3|IK}r%fQZLPU=nq74QKSipyvl;DmTX<%d9IO z3~a~y8!qTJZcdwtF9vx}9avdE9kC3|%O(OhR#8G3g))0$$^sm%c#Wj!FBAdoL2{#A z6~`5<7CVbfXDF-2#{+^-PF6x1#V89D*B+b@@MVS+6EbM=QbGOG=jM!IUoE5%+9hf4 z4eUh5ADSr&)ZuqIJYEe>_|yIKzY=ax2%?DNVzTw!%APH_oD*(Jhh*TB($TvPgYq>_?4+4s6*Y!^i`Iu1As3& z3;RkHkz|%yV;NW%2yKWYVkw!bi51JUoa!@^z)2V-mGu~ok2K7XBN$7~(-^?7RrP_5 zb2?121O}l|^&~cjHt5Bxw4U$6GK}SgQ1^5`kDHAhgQ)iN$J*_dquI%Hy?_ zYakpi!-*CEgWWKWS`DKX*||`>*4>+iV;=0|6sCKmAJXMQT7Wf&su$$ZaAzU$j{-;& z)1MY8dndUo(d)bO2|4!rZwD!nAyvb%>-R=%jyA8rBei?=^V%c#IEC)S)z=kFAFKoi zd&g4er!SBB>HA4IL75XduJqJh1FIxM-wQngj>i<-T_L06p`kg3Q**DJVdM^;QBu_aD?rOc$yzjE z2qf4l03B2=g*h=N`f&&)bQfh;YkxXRR}A|S?y~imjrM?0#c8sEMX}Z+1IPrjAd;mb zNdgEbVrMx7y#@QKUJi$#uLAiX2YU>YRZi4kWtCN2{NNx2GQ}85QP*46(#J)qFIp}`q zDzkD&?82h79E7`EO1Z_R2vlv3D|JCiqT#IaChv}anKEOKYCMCX!jhuFWC9e`5Rhi7 z9QT7pIRaxbSh!-z(ukIdRXsCFnoTFkrUt_AqRMm_fIh8ct&5CgpS+LpgvWBSUNUrb zObAB;Xp2zN%Iknu2Cd(F>ut=-F?rSI!A(Awj)5T-Jkes_^@wAXMlF0lwf)X488B5S z2d*9vH2qvHK?`{+wekfB3;2=B!!V#z;uh4G*O&3N?@mE#mIKW4NlD7e_+_h#LnW+) zq?{?7m8WcL$VYH$Pg7h$g^g>(WnsFL^;B$e-Ow6-snK8G02xjaQ%mQJ8eLOu*w5vG zPQ!g3@m`P#q)rG8IeH52OPP$!3ElwpS;tHmA?DK}HOKB!&d@^z^WmDk!v2YS!@A#B z;*r=u0}P^xrQ|YRsd4T~)N*umi)RTG+OKfJ7%$6CiC;6_fPjD@5+WINhzFYWv-jJ1 z%3I6m>YR0ThK?Qhyh^Ba!4;(1K!1~W4>0d+D>e>L&POeQN(sdAhHf(4aswK0E?{@! zkOb@#=Aa)FTWQ=0%gF=df$#Qn^|a-`naU~PeR+e)-+q?vBX&@ zCjzPo10xRLeU$=6>|udP{m!6BwQdQ?wgxs&Nvz?DUS&Ava$nzrgAW4CU5QEGz0Ydt zBuKHuHbPMQfby~;tOy2hAWy{1F(OcS%e(2e7Ac3=RC8DpwW<`W1}+Tpu-WOGs>+=8 zT0VG&8rcQ~uE1Q*vlCO-y0#5^!wjLlyR_x9mEz}J-C`|E&eaYRuZL|| zpSo)z$$6VYzy;UmqHm!m^MZ@CM{;QOhEcI`mUHT=W}Je5aB7o`_J|wJgQh!bJ5?nd zp1QdEStde_#8wqLr|@yXqdQ z0HwA#V7Wo>4-NH83rMBi@~TU85v4~6_Bak!B$ELvlRH=aH}F2Qm|)k^|sgl`+L?WExqS z=I&SPfRj~Yg3@1Xft183JA+eEmC$0R`dL(*%G7c&ZO~w_0Tsu5gL?X%Zw|QU+-oj8 z%s6hD>eA~bCEJkW#@RV*XE*UzEFmgpw|!&^EJ@2yMv$Q>*2`~zehASi_@}wN%St`> zSb-TFkgO-9L|{BX$HEd#Qv|j@hK7)s&N$ao+fOLHJ_`^*aLt;z&(-(Chj&;E+5A}* zF~xV41GOj#B5Q-jmO#m)RxIFI-odJ69k);hV>+d$^)!@Hk1`DUpfFd}=r{>AIuR7# zfD5olaRqinIZZ5Rz__H8ozPxx7+ZwPL+GQ6z-Q$LonoZS6mgb!7e5Cohiw9CmoI$w z6%}5o=_4E_G!^aNz1r>db?Hp($-jgpx@^5YdV65r%t;X%;pQ1e7jv3w1ZyR;q1@S7 z30M(?oRtwZW-Ba$l>lU*@)pEY8Sr?I(JnbBzORNRVgV_FL$^jhi;0DKA>by^u`DdQ zmY8k!=xQL^1)R;CTri~TT8GM0H2Ptn0?;xzvK07OXhJO3=rO~jsH$ky`DO<>J41kw z+!FMIp%_0}jD&Z}g}$!Pl=b_gJmO`lM^r;_MjTQA|NGDz&NT+u~IoMrB)8(prHP>4c!GQhcQmcX%Ye!Cy=Tla#jO2 zqi*Rk4whsMIZioluRtl9FDsuCT78Q0&CXiSS1!2j(MZ=u`{Mn ztAp23uHMbl`n;d0w{fRE{Uyx$-L}~kh(2>-b?(Fe;!^CG<5blBi`?Z43+=&wMJ5T_ z9vUpKzI{!S`%gq(@8BtHK+HQ=n{LRmk|0r%r8UYb1Jw~^7qBE4*Aos}bh_)#Z15+@ zb1h>E@z(xB?tPU*cCqTW?L32TEm!@cXi*DyF*FvCEf|2CLv3;kra={cMY5FWR2~n! zQ3z;O&OpKe5YwU36cjwJxVZTFE#Vx2@>5IRY@eqv-K#RNNrSHoi@?;}XT0{#c5Quk zSscY)zoc}VBm_Pf==3e6xkKP09aVXX%iJTS?vw`+s^1NjnIH)pU6!SaktM4E7MVm! zDRV-R7-FKL>lsZyus3nRX+U!mbksyzofaD-i?(8RiV<1T5`LOzY2t}oiLBmtdTAH& z7ds5b4G?E^@rjhbZc&@!cBjnxSHTC;(YSp%>)@ru`DfL}YfDhbI<@$xpkG>xtEy9A zhVpSmZ%PzT&S_mJ>WawSzaxH9q;G z=dj225WdZ;CTyb`Gpp_A13lwH(b%Zn1PNLlipomxIYXN)zKiN0aoWAS@6Jj5oo#_A za03!|qR3ENV0L22ba$uBavJ#8sxq|LnKT-M3^;Hs3YVDB2>)FFs$LoO#HH*gOxZUb zGtGqDoK0iWG4xUz1HM5kj$xJ0PbIgtV;RfAnfdf{L|j&-AT0&F<{FhIGLlc z58!XXFa!!9QkKvnlp)n8o54~L)snVo{$T~UoJ0T(sHH-agUP?o9V% zL97OvB#{hnYUPA_In{cVQk+@mK6o@`zKrk0nmy{noBw^p&K|cC)}vzCuWkhuen-PG zyFy-((7w3ZgU`D7!s#Q9s1coTn*y5=mHi>C# zl?Ws5DsCysP5>ZNrfCMDa4Ifrs7n)JbCXp_Ww`5pNbPa(7R2s5smpdwfYP`43(}!( zeO{3!{$l%yM;I-!5lz_%S(b)ex$PD2!^Gv@g|@|((;Ot3%|hi<5>XTn&aIO?Eb z`X2(0YCUk0;n@VILk2V(zzvXsBG%=0esp^$8foB;+Kf852f3eclT#{nOQ^##rE!V% zN~P|gD^jdXRje1+nJn4XdqRNUnNYtieY4B_jemqmo%9hPD?BQ=J4c}0ZWE5Ysyih% zyOb8US?hfV|3InCajG1G`kkfF7#gS`>!D_kf~2{)npkF*P!FAVRFW!!#XgbN&68qDDQiF>p#g#n+_i$v*`7jm7qCnS1P`DF z`gLbNH)TbCKfU3eH-h1zzx^9%h-I0=FM=!9qTccC+9P!>KESdwr$=8j>OLU5>DrHD z+b%TtxaeNp7N$po5g-z|K0zuwP$iJ;Y6*iHFuiwZN-Jph1$2`pD<3>i9!O2-S&qADg`QMyZWe?+qt2;)aE?qX8Nko zjjV1cOFlx6uz-fU(5lpIQWEtK;C#0*E zQciLNmn&CTZx~?W@<>q;dc(3VbXbx=ZUY9V)!9gV8DE+LHi0L>FR(tHV|`IK1say= zRzLwKY5I|i_na=1l|zBG4Xjw&9ch5JQAsHYntmw&MPVc~GEgcGTTWU5~nFF+Jnu*kJenSIe)53{66t!}=b?IMI#h#@B%^upBt?QbFYEv{tR8cgb79fl(3v zWX4bhi%unL2`M06Sl}eB*piZJZO|}(trMOk6fQ;wk5|X)tAJaIVseOoj|R>q$E{Kb z*^w24Az9v~dd*7n7!jQ!E#1gS^%LLbVD{B0f2hjCW#AcxAqT``?5h+y8Ii+?C+vu7 zX>VXoMazt&)R5R*rUp(}awqkjvO|EZ3oj^F(=AyO#w9V$iy1fT)ShG?Gh;i;S-Q(+ zgNGP#(0{9I-?>mD?Wl>n%h8-S-jNmD*-%T;o=ulFb{iVT{EHM%=7~Hmi#TOG*PKI> zyxr@Y9~k^u$(@w;A+_tvRPqg3sY>wD;MU60lH$qRFx!+>95hWaD4Zs^ioI}3^)G*Y z`ZZHbW6OaS`@+v5AjH9MgkJxwPcgR*&|ysV3?wZE@CDZjazgsawL~SlxB^xCz2{kJ zn|9c+@xTbo*Fq0q^SNtO#uT1P1Fq@wDI@b#m>RGYL?~gd`Y9$tD<}k>BoO%^F#y*> zP|HEkgY(6+WLUDzP;io9rIb3|puk!R$0)H*?4m06sm-jFk+<5XR*yxAeKj*H>Gi}; z{=x9h`lEE8lPX??l>JdA8!a23G4)SmWIIuCxv#R|usWqMfrRR!bx?obR;J;oTaOhW zpxGEAJE>NyFNsmB%A}*~voIvE7jU(Pp|I{oz}$g`BpK|8@0=DtJftPC%(N;oGLZ|d z%I;!6V)=1XiBr&(A##j|Vwykp)a<^bcVnBS0|xRdCuf$FMtyggq#4+Z?eMf|i|RY+ z8Pl3fxP6;D%eQo?y)mxCom>!fi@v^%v(FiR65K}leMeMJQcHB$uW=?_1*h1WGJrto z&7yBn`A@`kFeZiBU?dn1FHR{2?Dk|ojEXu83Z90}A+0e`oO_Ke-W!6|f~Vp9nnLpD zdtnWAr)m#&@TreGWjX|5` zap{}QQTAs=_bDvC;7`hxE88nSuf-HT=r-$8x|MuRs2>p)zBd8*5b$<&q9H2GBuEp! z)Asb$ z2b*ihAj%EQ$w(;-t-Vt^Cv-sO22fRKomooJwNlTs1_%f3Z0_?l5mZMt##(cC}=UlvVu{5u9wpw}N(%ijcOg(k1jF|(;S{e1! z8e@t=aAx2ZQFiJ$w#2H<@97LDAC6&L#$`W4@k9d5;)_Q|G8}6sj5cfk-*tGt2M7=t zI+iRa7IOo%g2UMoZDU^g)Q);%~8KX|VxvhkT2gVRUzWTh) zc?#xzMtwU>bhrvOOVcKfT?)ZZO(;Kpvfq7j*!aNb))-0&;ZOTgQ7)lk^6A=Z(ZM** z#M7?^BF(s>{hK&1I&PZ${3TXu+1@)>e6P#k9_LBhyY-^y$rO=~b51`&ah9$G2!ngfvq1tuJ>L~WbRj4si`(Iy>@ zwd{xX*C{rJ;Rc%*@?Z_^3+?y|Q;;bd;^Jw}vdY^)8C33!9HY8k#aWbSsc1oYU2oI! zY*(0Y@vHBe=a)}!uHp_(u3nn_r_p18u)k=0*}0?XCt;y}B53yw!u!$%Q8t38oUNC3 zPTBfDkpjzy+_7Ug20~97&|#s?UL~WhhMmZC(UdiN&c>u(YzmnJaf;t>ocrhMd~Pk5 zTo&|0X5lq@_v^VhN}T(+NpP3rP}E9;ROhhz1v|o(NCS~*RkVCDKHk<`>u77RQ7Dh~ zp*`XGv)XtSm8Zn4$^^CycwVMTz{5;A+mr?>h%~{)Ufl!F+bp=O^i7Qi-iT+m>YME# z6sxDbuigxebi1uB27Ud_eF^P(+PBg}cNy?=fz{CJ}q9SaPQriV#TBYw?B|89uCOydgib;BaTZn@biM z1Nm!%D?p*?BvpigNT)Pz+xuslZAE@yIj{BZIsd5QP%IhnR}&Q@2V%~yc`-`D1R>uHZPM`>|_@V zN;u^A07=?ck_!O>7)Vf>MS&qb*h`?5$gan6wLy;j`Nhjyo8SU`_9?pc+^yE3l6R4u z_rX&$YxemHw+X(4o1!R6MNu|Y$jhMA5RS&(pP0grBbB3#-rNT#97wBe+kb- z+X(Hggo^jVi4U!JMEQjDkKr}$yz=>|nSQ0Kr(8`LWJK*vvZkCADy57hS)${!-Q4ii zz)y#UbER_B4#q7!V>M` z@GMV7tTa$|w<@P+S(IUQ&K_c=pj}c9fmpS`FKTJFTW^IB$+wSNe8B#3P~k{U(@&4w zWJC)u*3qJtwdKCLo|qFpw`^V-)s;T8tmoqg4n`yhdT#4wD(ix(lq{j8bMDkYC5BsD zp{6W`&Z#hh0?RBNXvOaErhhdkTG4}&LH+8~y_Lx2RlBi=MJsnGu`R1QT#c1b-r#7r zDuNmTnep9GRkYdTuk_TcC;h+hAi9b+-Ho5=t41r>w8!Qa}vPKxPPrgr>{`RZe z*X>ggH6<}7!O$Xm<4}x606v|43QRChFxW&oSz6A_qT+P&F@#tKPgRZQy(2mme|&E* zDl$=YN#2g=^DsQuW0<rL@oGK%b{V}pxMELXY7@NRGIN)J#~{^i%XFDL(57Ip{cz`^ewv*G%NN?TP4DZXQ6 z7xH@r2`Xxj`rS+w8B`bDJVhL%nJ!so+4*uC>J^cO_Ed%`yfW*H`e7#{cl~X5x%$DE z)!*%6H*egH8dayqE@$$KfNM2bq2rz-Nku>_Os;eYN!C$@2#Mnm` zFp(0TeOvjRQ<1dU>Rp}}=M{`@A5fKKI*?tkE>Hr5wUdRhSy{O-i`u@3{6iMtQYm^(4PRi` z1}7LLE*^m<11gS4=q~%;E4t=jgNXfrzlHhpV}7a# zTdQ+aV3(6+qnD}QlH&{Ol%X}y~X^=}-` zKzcy$cRvJtP6fQnGyQa>W!y=M5g=Z`o6G@z7#D-GYp%3`m{Nbo&ex1k5?}{ z2SduO254p5ZYX0+-6cUNld383uq)mf5z@>%8;FBNzE1g*nk%+aRILf zqszMr+9nZ) z#3?;lJQ8BsfRO)Jq(bHOQ6E-x&HB`MABl;$*Nq452VPTU`cGudow$>+_LqAG z?{REZ%g#s=(V)p1zL7swQc`I5!EYv|80_xKWRn9K;y=b!Y;V*=O@5KV;NH`n&Zswe zr3eXfa|BlU?CHm;II0!*Mc7&B1Hr(6c;XP#od%4tnAc-IL#y9HUk*l|9>yJOc?x45oF3o#Xghth)7uf!OIvpMZXe0$4pPOzftJsgO%;K1q z=c%O)pfm<5-PBmYx{Xdwp032~@GUJfqaBWgw|ExKoY@bPKnmP(G~J}v&+zepofTZ*9-~apC>=^{2hBt463!8 zJwR0H@Z|fZ!kIceg3}J?3z6`%Yc1OU=j8>MC|t5xsBS*1Umbmzn`2X9l^RCuggQGI zTP5~85fN~HW0uQZ1UPRk4$^TK7#eW3zNmK|GBVZ_d$wA4C45PJe0XY>&~YX4-o}4J z`&RiYJHHeN=UPlESDMc?&?_}0u&;Fw7AEirum4(dkD`|QH?}hwOmQ5O+AIH2AV^<4 zb@zJURm-4f5@P>v5(_OKo>%26N7FO~+w||*f5RarF|7wCw>B-#3%qc1gq#;2W99wn zFPjZ7ZNvfUH`yx6Bxau=?#hR6(H_f#{&fYXdVB41=s7j#JTr23q+e(`bKNgDeWbrj zHdkM9Kwzt5y0>2JXn9djaj=f52mx5iW3Ifja;CyEPfEMac1(Ak&wF#PcM2cAyjorO zFY;@vVD!UcMDwR{{jk7_f=wU(ixZVJMnaR*EgoDn7_}AW#Z2VpxtsSDG{AB4Po^#! zS_&@p6+4^vM*B_<>I9K!PzF)D4$c^*Dd5GRF0Q9QNm#}dMoHm$st7JBKL{%8K{%lF z1XyF&3~O`id7qS#;K2sV(g2Git|3&$JuZC zY~E&4yJ!++ueCy4zSow2;o?g$P$`DaJS!Vjj!R4#_xf35HJD;C9~IFzY8ZqcyX>hZ z_AukChk?)5Ax{r^IQiT3WGnmY^;B!)qKq zOvB5>XK3iL{q6Ay$CaNS8ujz~Lzi1qzEX0=9Y+nqtJC_6ak)*d_l~jl9@Z($(z#Q1 z%pqPW^JRzB?6e@MxzGAWHtAM*&~?B6Bs+oQ#L=TI5mm|ou3~&E3%K$`hT0Qi8rKZd z`+RC@RYciuvqGrhaA&Jr&lH@Rn4WKk?w6y1Fnj&8;GwywYsXY`S>F;CE8J;f^v=kq zP)z{LI-8j$O-oRYy&{&Cq4~PCNUd&Psv>xd>HcQxgrj++mJ$1yUBMy#cwyGPu@hd@ zLw&hVA*U%Uhx%KSx4z@hO5904XJ+B&4^eBE{`n;2zM8!dZ1vM+Ur}6Z0l(I}yQ13{x*)I2qPR(*$%njhsM zaQ$)Qz`cW!+jW?BVT?(bX|FVd#~!{SBUZ^+v})c{T`XYoKU^z5-A8``$DK^4LnP?$>s01_c3{-$dxa7Lapa$+|IaJCPgDbD8 zvhofP+fagKoDl~SgW+ll8LH9~Yb1e*GZbwQB9>R$C)Zjj`(yEt2H!Pak3Q81Eh2@h zqANq+ya?V`^gNd{`Fat)wsp1#bQ4tpZzes~oKxBfOMc*GCs2WeIP>>2VVc(ZD*exequlwve$*>Ieu@ngCRmo~r72l>FYllWf=Ey@0T zt`EN0)OyP)hPXAVs)=C0n*{7;5fIinV0wtXBWc_UU`MnaPUBK`DCX)N!jfPFKUEFh zaOOJapS}{{DaH%?{)*jU5L^xe@=>4)^0_%@aF3c=cIjRll|5x-H95bJ_8yF-QlZ>a zlCV<2H8Jlhx?sFxjVOv*Ynup|fBMDc>&Nv^N6hoqSH7Ho?E< z*y@~S^g|fEVCxk=tkQHoz5Xz_9&!h_6b2TmVaL+udZU|HOnzQJxxZrOOLWbPPwPWL z8@pQ-%6Vlmu?=%HkIA8;BI)KE+NYh#_jIaoimYwNj+z0$BUjtsx^Ibc#mh4i-8V%w zb5>)kG7uH$VM`z=rJSOo0fD`~4SyzF9g@HtcLd==704M0eL8 z?)T2z6D02;-i+^Yq9Hv_jOvMJ>ip+f;TZZ8!=HZ zee;9yfwA&I z69-I$BQH#T@dm@Fq3WMEr}3@!=~@Fv0N@QUv1aaI`7#-IbW4!$NN0a|WpJ5J)ltYh zo(roD!7O3y4p*kkF=z7#dM-H-LI5aY0N`US<$?g#OA#LHDAW@Kyt={p@LJHAALM$|VGiiVBLcgFk5n2N=tWK}SZCRe^Ox35|OyXC0`+g}G%l_We1$l?(5=%L@eC03fS>%U%^yto4Co zOr#MJwr*EAl;V~24{i^GPD*n|HEA|~u+I~JTyfA19Wpi0DeU3qMu*Y8S|1)MaSeJ> zz1cWChbXO^*$7+%F?Ql53d%OM@Q{~=sv}73K{qCAibxv@OZh5}k%e|ced5}^PY?JB z%o`c5)V8DFPnDdztlP=oS+0mm4opF$RN0VuTh)Rb14;u2Xv7&C6QubH@gTM%9HLZ4csUEe3KN@|~bipU2->0-Pe9G}bI}4%?l(XQku88*^*Br;oh8)h} z?mDcjRjzrq z?9MkiS=gP~^aE?kj-$-i1j}KYtgdXJD`)mQcokH>9b#0bTkWkeFBC1A{IpKhzm!qd8tviJ4C&?ep4kCRbD0?cRxMJbpVQe=iZJ2{P=2Uc z{4;3WYQSx;np*zWWgL4y8eW;&l;5x2;!z(4B&>WAePfLiuJ5nNiSm675$Bh^4>nrj z0F#yGnUg;2NN=)>*-)GoZcmLc{_wo7d2(gk#HiV^L~2A(-vit=z)M*QVBCgcVcZgz z;C+4itH{1r^e^I?wEou-cY$|r>t{N_eW)EE3^ZuW%O>*mw7S9*AbaH>lSi|X`nTIq zLx@d!`uq%lAI}UtgIQ>gz_Qztchg3~fGg*y~?J zA8)riW3<8~FK9t|OcW#-{~+=LmFPHrKI((hn00kH2xldF$MYYieOil&-S@KZuSkXM zw~hI4`UZh%;Hg@8CY*ba9CrB~ zuV?*Vqxz#pN6J@O^{^8AlPerO<_6OXYI-3>` z-Xo6?1{u6+AHk8A0>~Oz3a;62Zv8w^(;cfY7(MYW*6XHS(UF)imz7gf$!zJs&N&dy4HwP>#6%nZl%R3V{d^F~-$kgSS3Yy`Nmun3BlR9|fNM7k`< z^{5)Fv|g6Yw#MwiAn_npkfpuX&q_jFwSpW?)bXxRE3Jf{hbC zOF#XKcz0ddyYUO1pfe+yS{j`)L!^`w5f@Nw*4bLv>VWkFAXHdjTQ|@ICUz%JZZo-J zJ-OkI=Zj5e)Sf^tqk0crsJ9Zc@N2wLSVx(jQ1H5H;b)cVG`y3*$lU4 zcyM#hPI|XaOIt^5Imn7ph$JS*A=9ud^Fy$F8%erlRJV{hUq?D|kq zm}@XvQh3?g@SbD7k5*cPszyu4^(O{G-n4gfP0p%gAtA?_u($PX+!1e8-1!D7Ze_uePus&_gn7Nk-{UPlTAx^H-4pkp|Cm^O$;)0Dh)^5$qZzh9133aQZz-I^|sLo(UkCJ zzo5p4SKSgkI^Mdio{LW?Ow;&n#^iMlheWO$Y`i zYi^Hsd`PNQE&DB8=V)F=q?_UL%H|y_lgmCs3j1s53U)DXOiprHVDH1(WoNL`_Sc&8 z+m0cwfmiLI=pSK*(=5Nor+oBpP+I{7SGuBX0hZt-*Tr^rcsPk*yeGeWs9+Dw=^M-wc^ zHSSwBZf)w#DYA3T8K3>~W6o+JrQLsgB=n=+mCFy?Hg+6we<=7`Gj9Kc|9Ss2$4}Hn z-;I*R0?OccXBg*G=rhWjBinm78rJt`ZV0Y@Tvr&1d6+u7Yhe}FaX&6(ykxj%S$*Xj z($A-7;Q8AJI^?3`#+N=*@_9mqRNjI@-^5D&!~I1A z3f=aD3SA4U>dQtOKSHSWZlq9$X83InU6vk@-d^6U&z_#~IDF`ND$0tJvvq*iHr-S6 zbap0RWK4LN)fzfB1>HD>u9b~zOQNq=@WxHi?jJ-O>ho*HyGQMElmkdlUxz&iw^`}5 zJ*u@AA7LQOp?eoE*V13Bhd4&UJM)+&dC1l-_TKD|k(H~tzv4t(|7i6SuBKw+q%JU& z%3_pftCfPo#o;n_D}b8-J-ng&k&GU~xEh32m6M_;q@>K2MZkfRPbk?%0;mCB3%dOS z2g47%>K!#4O|!cOuem0>sP~3*d@bqk@wLZ%pB3Xq#!bWZx%2bf3)Oo2^NR{{_gyy$ffA*#SQsGK^>IYMPtHv?re^*PGGxUwLUR0^myK+$bR`> z#5OinQL+|%0|T6vh3usTAA{LGldX>x{&eDn1U?l8cbLRXP(3&Q9NF2=FBp^;@;EI5 z<`_644;mL3WklcAntERDkqg~`Yo!yL`ShI91db1F9=Q0$3h7fDKONa8*!at5F=~TS zaAkkoLY8-a>`!Wb=qA0hw9$6vYfG9K#;eyF&6)e!dSsv~$Ccz4PfQrlsf)w=b_RUE6=%LXAb2j*ai3eHE&e?hwwIhOSIMZvmPs{WDJ(OQdxeJ|X1GZMr zYG-3sW*5Kp9?|TWU(bzcxxbk6sjBd5*~s#|RdcfNcfO#I__#ccfp<@u2#{k&$vZc7a5Rn}+2PaOQL)R0cKPP>WA;)i@ zbsiF@-`xbm)$a>*68N$EY(~ah1bsb%*-=k4@RYDj$#S(P^y6A-Y;HLb^hb?MnEFRE z$j)3Mcoq;7*lLfY9B?@4a$-C%(WCiMedo#pdmn4*Mpy>0n1@Qd|E)JeZ0!7TCvZGc1q{@!tjO*7_>HAi9IQrmNA7EPoAPvTm?8kp=h{n}W6}pc_KtxS z&v4wwyrIur#1@t4Hb73e)`6<)uMz0!vL%Rjaeg<^{N1&8LUDKYCqC+T!oMCr{uiP8 zgCN$fbw+~?YE!TIZINN-te6odFxJ(Ua6Gz%@TBxdR2R;5xbw_~y~70R^*h#6>odqb zZ`Z!XJ*(X}bDU;2QA_`hCWT|mzRO8vhwcgOam?ITqB6IB}V)AW6l+nzi5#k*^ofol=%ckYyEX^`?QKke0& zqH~tf7&dxroObx_-eHmTJVw=q%nxiAnp3m@e=WhweI!vA4o3KCr<62xpT7JXK?`)JEe`jE1JjFLE zBQGyOwvd-D>Otwe-(L=ygoPlVoq$ubh{!XP85Bw7Q$)oC-i`=q^A^a(V<;H!V$mrv z;Lm%YBNC^D;F=ww2+1IvMjnsqOpm}Q#q=W7(#Z(?)2=hapDWuc<~Td($lRT8N$h;S z`R+zEE&18F@@TK--!;mNLDRgv;MOq4wVr7lp~$T>W7l~O^3nX*_Mf!F1#8RS{}
diff --git a/main.js b/main.js index deb70a222..0b8f25870 100644 --- a/main.js +++ b/main.js @@ -1,6 +1,4 @@ "use strict" - -// ALL I DID TO THIS FUNCTION WAS CHANGE THE tr TO A div AND THE td's TO p TAGS. function renderCoffee(coffee) { let html = '
'; html += `

${coffee.id}

`; @@ -11,6 +9,9 @@ function renderCoffee(coffee) { return html; } + +const searchInput = document.querySelector('#coffeeSearch'); + function renderCoffees(coffees) { let html = ''; for(let i = coffees.length - 1; i >= 0; i--) { @@ -18,9 +19,6 @@ function renderCoffees(coffees) { } return html; } - -// THE ONLY MODIFICATION TO THIS FUNCTION WAS THE VARIABLE NAME -// ON LINE 33 (CHANGED FROM tbody TO coffeesList) function updateCoffees(e) { e.preventDefault(); // don't submit the form, we just want to update the data const selectedRoast = roastSelection.value; @@ -32,8 +30,20 @@ function updateCoffees(e) { }); coffeesList.innerHTML = renderCoffees(filteredCoffees); } +function addNewCoffee(e) { + e.preventDefault() + const CoffeeName = document.querySelector('#coffeeName').value; + const CoffeeRoast = document.querySelector('#coffeeRoast').value; + + const newCoffee = { + id: coffees.length + 1, + name: CoffeeName, + roast: CoffeeRoast + }; + coffees.push(newCoffee); + coffeesList.innerHTML = renderCoffees(coffees) +} -// from http://www.ncausa.org/About-Coffee/Coffee-Roasts-Guide const coffees = [ {id: 1, name: 'Light City', roast: 'light'}, {id: 2, name: 'Half City', roast: 'light'}, @@ -50,16 +60,14 @@ const coffees = [ {id: 13, name: 'Italian', roast: 'dark'}, {id: 14, name: 'French', roast: 'dark'}, ]; - -// ON LINE 55 CHANGED VARIABLE NAME FROM tbody TO coffeesList; +const addCoffeeButton = document.querySelector('#addCoffee'); const coffeesList = document.querySelector('#coffees'); -// (ON LINE 57) ALSO TESTED IT BY TARGETING THE DIV USING getElementById // THIS ALSO WORKS -// const coffeesList = document.getElementById('coffees'); const submitButton = document.querySelector('#submit'); const roastSelection = document.querySelector('#roast-selection'); -// ON LINE 62 CHANGED VARIABLE NAME FROM tbody TO coffeesList; coffeesList.innerHTML = renderCoffees(coffees); submitButton.addEventListener('click', updateCoffees); -roastSelection.addEventListener("input", updateCoffees); \ No newline at end of file +roastSelection.addEventListener("input", updateCoffees); +searchInput.addEventListener('keyup', updateCoffees); +addCoffeeButton.addEventListener('click', addNewCoffee); \ No newline at end of file From f4ffb07799f3903049a7b60cf4e351560c0a3a77 Mon Sep 17 00:00:00 2001 From: James Whatley Date: Mon, 20 Nov 2023 12:00:57 -0600 Subject: [PATCH 10/14] Got the search function to work --- index.html | 7 ++++-- main.js | 62 ++++++++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 61 insertions(+), 8 deletions(-) diff --git a/index.html b/index.html index 6a1e73dad..8ed4808fa 100644 --- a/index.html +++ b/index.html @@ -25,8 +25,11 @@

Coffee!

Coffee

- - + +
diff --git a/main.js b/main.js index 0b8f25870..3661921a6 100644 --- a/main.js +++ b/main.js @@ -1,4 +1,5 @@ "use strict" + function renderCoffee(coffee) { let html = '
'; html += `

${coffee.id}

`; @@ -14,22 +15,24 @@ const searchInput = document.querySelector('#coffeeSearch'); function renderCoffees(coffees) { let html = ''; - for(let i = coffees.length - 1; i >= 0; i--) { + for (let i = coffees.length - 1; i >= 0; i--) { html += renderCoffee(coffees[i]); } return html; } + function updateCoffees(e) { e.preventDefault(); // don't submit the form, we just want to update the data const selectedRoast = roastSelection.value; const filteredCoffees = []; - coffees.forEach( coffee => { + coffees.forEach(coffee => { if (coffee.roast === selectedRoast) { filteredCoffees.push(coffee); } }); coffeesList.innerHTML = renderCoffees(filteredCoffees); } + function addNewCoffee(e) { e.preventDefault() const CoffeeName = document.querySelector('#coffeeName').value; @@ -62,12 +65,59 @@ const coffees = [ ]; const addCoffeeButton = document.querySelector('#addCoffee'); const coffeesList = document.querySelector('#coffees'); -const submitButton = document.querySelector('#submit'); +// const submitButton = document.querySelector('#submit'); const roastSelection = document.querySelector('#roast-selection'); +const coffeeSearch = document.querySelector('#coffeeSearch'); +const submitButton = document.querySelector('#submit1'); +// const tbody = document.querySelector("#coffees"); + coffeesList.innerHTML = renderCoffees(coffees); -submitButton.addEventListener('click', updateCoffees); +// submitButton.addEventListener('click', updateCoffees); roastSelection.addEventListener("input", updateCoffees); -searchInput.addEventListener('keyup', updateCoffees); -addCoffeeButton.addEventListener('click', addNewCoffee); \ No newline at end of file +// searchInput.addEventListener('keyup', updateCoffees); +addCoffeeButton.addEventListener('click', addNewCoffee); +// coffeeSearch.addEventListener('keyup', searchText ) + + +// function searchText() { +// e.preventDefault(); +// coffeeSearch.addEventListener("keydown", () => { +// const name = coffeeSearch.value.toLowerCase(); +// const filtered = coffees.filter((coffee) => { +// coffee.name.toLowerCase().includes(name) +// }); +// tbody.innerHTML = renderCoffees(filtered) +// }) +// +// tbody.innerHTML = renderCoffees(coffees); + +// const nameCoffees = []; +// const roast = updateCoffees; +// console.log(name) +// coffees.forEach( coffee => { +// if (coffee.name.toLowerCase().includes(searchText) === name) { +// nameCoffees.push(coffee); +// console.log(coffee) +// +// } +// +// +// }); + + +const tbody = document.querySelector('#coffees'); + +const searchbox = document.getElementById('searchroast1'); +searchbox.addEventListener('keydown', () => { + const searchInput = searchbox.value.toUpperCase(); + const filteredCoffees = coffees.filter((coffee) => + coffee.name.toUpperCase().includes(searchInput) + ); + tbody.innerHTML = renderCoffees(filteredCoffees); +}); +tbody.innerHTML = renderCoffees(coffees); + + + From cc945c2c5935965dc2b4885cd231aff266064070 Mon Sep 17 00:00:00 2001 From: James Whatley Date: Mon, 20 Nov 2023 12:06:11 -0600 Subject: [PATCH 11/14] style on submit fixed --- style.css | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/style.css b/style.css index 9673ac257..8dc900e4c 100644 --- a/style.css +++ b/style.css @@ -69,6 +69,25 @@ input[type="submit"] { input[type="submit"]:hover { background-color: #0056b3; } +button[type="text"], +select.form-select { + width: 100%; + margin-bottom: 10px; +} + +button[type="submit"] { + width: 100%; + padding: 8px 10px; + border: none; + border-radius: 3px; + background-color: #007bff; + color: #fff; + cursor: pointer; +} + +button[type="submit"]:hover { + background-color: #0056b3; +} /* Bootstrap Overrides */ select.form-select { From 731d48b224678435f32a416f29b630cf2d93ece8 Mon Sep 17 00:00:00 2001 From: Roberto Bueno Date: Mon, 20 Nov 2023 13:48:41 -0600 Subject: [PATCH 12/14] styled the coffee page --- style.css | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/style.css b/style.css index 8dc900e4c..b022494d6 100644 --- a/style.css +++ b/style.css @@ -1,14 +1,18 @@ /* Custom CSS */ body { + background-image: url("pexels-daria-obymaha-1684151.jpg"); + background-position: center; + background-size: cover; font-family: Arial, sans-serif; - background-color: #f8f9fa; margin: 0; padding: 20px; } h1 { + font-family: Jonathan Hetegral, sans-serif; text-align: center; color: #333; + font-size: larger; } .container { @@ -23,10 +27,10 @@ h1 { .right-side { flex: 1; - background-color: #fff; + /*background-color: #fff;*/ padding: 20px; border-radius: 5px; - box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); + /*box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);*/ } form { @@ -37,8 +41,11 @@ form { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; + font-family: Agbalumo, sans-serif; } + + #coffees > div { border: 1px solid #ccc; padding: 10px; From 4203020058ba56f25926efa9808dc010b8dfcd1f Mon Sep 17 00:00:00 2001 From: James Whatley Date: Mon, 20 Nov 2023 14:01:54 -0600 Subject: [PATCH 13/14] got the all option to show all after u change to light --- main.js | 42 +++++++----------------------------------- 1 file changed, 7 insertions(+), 35 deletions(-) diff --git a/main.js b/main.js index 3661921a6..ccf73818e 100644 --- a/main.js +++ b/main.js @@ -24,10 +24,12 @@ function renderCoffees(coffees) { function updateCoffees(e) { e.preventDefault(); // don't submit the form, we just want to update the data const selectedRoast = roastSelection.value; - const filteredCoffees = []; + let filteredCoffees = []; coffees.forEach(coffee => { - if (coffee.roast === selectedRoast) { - filteredCoffees.push(coffee); + if (selectedRoast === 'all'){ + filteredCoffees = coffees; + } else { + filteredCoffees = coffees.filter(coffee => coffee.roast === selectedRoast); } }); coffeesList.innerHTML = renderCoffees(filteredCoffees); @@ -63,48 +65,18 @@ const coffees = [ {id: 13, name: 'Italian', roast: 'dark'}, {id: 14, name: 'French', roast: 'dark'}, ]; + const addCoffeeButton = document.querySelector('#addCoffee'); const coffeesList = document.querySelector('#coffees'); -// const submitButton = document.querySelector('#submit'); const roastSelection = document.querySelector('#roast-selection'); const coffeeSearch = document.querySelector('#coffeeSearch'); const submitButton = document.querySelector('#submit1'); -// const tbody = document.querySelector("#coffees"); - coffeesList.innerHTML = renderCoffees(coffees); -// submitButton.addEventListener('click', updateCoffees); roastSelection.addEventListener("input", updateCoffees); -// searchInput.addEventListener('keyup', updateCoffees); + addCoffeeButton.addEventListener('click', addNewCoffee); -// coffeeSearch.addEventListener('keyup', searchText ) - - -// function searchText() { -// e.preventDefault(); -// coffeeSearch.addEventListener("keydown", () => { -// const name = coffeeSearch.value.toLowerCase(); -// const filtered = coffees.filter((coffee) => { -// coffee.name.toLowerCase().includes(name) -// }); -// tbody.innerHTML = renderCoffees(filtered) -// }) -// -// tbody.innerHTML = renderCoffees(coffees); - -// const nameCoffees = []; -// const roast = updateCoffees; -// console.log(name) -// coffees.forEach( coffee => { -// if (coffee.name.toLowerCase().includes(searchText) === name) { -// nameCoffees.push(coffee); -// console.log(coffee) -// -// } -// -// -// }); const tbody = document.querySelector('#coffees'); From 9b4d59ab4db9174c503abcec0154097077b92b66 Mon Sep 17 00:00:00 2001 From: James Whatley Date: Tue, 21 Nov 2023 09:31:56 -0600 Subject: [PATCH 14/14] aking new pull took out some unused code --- style.css | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/style.css b/style.css index b022494d6..de7db7a64 100644 --- a/style.css +++ b/style.css @@ -27,10 +27,10 @@ h1 { .right-side { flex: 1; - /*background-color: #fff;*/ + padding: 20px; border-radius: 5px; - /*box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);*/ + } form { @@ -101,12 +101,4 @@ select.form-select { appearance: auto; } -/*table {*/ -/* border-collapse: collapse;*/ -/* margin: 15px 0;*/ -/*}*/ -/*td, th {*/ -/* border: 1px solid black;*/ -/* padding: 5px 10px;*/ -/*}*/