+
+
+ Document
+ body{
+ background-color: antiquewhite;
+ }
+
+
+ Lorem ipsum, dolor sit amet consectetur adipisicing elit. Placeat vitae eligendi maiores impedit, ab eius doloremque amet accusantium, repudiandae voluptatum consequatur dolore unde officiis hic nobis veritatis laborum a odit magni omnis facere. Impedit cum voluptatem enim, officiis, iusto corrupti officia nisi asperiores cupiditate nemo consequuntur quibusdam ipsum quo iure qui vitae fugit! Aut, exercitationem. Fuga dolore consectetur sed ipsum, est rerum repudiandae ab quod harum. Numquam minima delectus nostrum ut animi quod, autem, neque voluptates iste deserunt, tempore nisi illum ducimus esse voluptatum commodi ex? Recusandae ratione blanditiis quod nihil, quisquam repellat necessitatibus labore nesciunt sint earum, eaque ut distinctio aliquam libero sit debitis perspiciatis temporibus voluptatem sequi pariatur ipsum! Praesentium deserunt consequuntur ullam sequi. Harum ab, est magnam tempora consectetur nulla ea hic iure explicabo iusto ex culpa saepe? Commodi, maiores exercitationem. Eum eius repudiandae fuga sit dolorum, quae laboriosam iure architecto, modi excepturi accusamus officiis eveniet quibusdam vel obcaecati illo a explicabo quasi magni provident. Dignissimos quo aliquam soluta. Temporibus iusto animi aspernatur voluptate rerum alias, commodi et doloremque sunt ut veritatis molestias dicta modi. Aperiam, soluta obcaecati quas repudiandae, animi deserunt adipisci officia dolorem tenetur harum mollitia asperiores totam in. Facilis commodi omnis quas animi ratione suscipit similique nesciunt excepturi reiciendis consequatur iste ut nemo qui ipsa itaque minus maxime fugit vero tempore, dolorum eligendi quae veniam unde pariatur! Nulla et minus, accusantium nihil eius esse quam, accusamus ratione, labore commodi magni ea dolore est blanditiis numquam nesciunt non fuga quas fugit repellendus aperiam odit voluptatem nemo? Excepturi, minima debitis? Necessitatibus perspiciatis facere id repellendus magnam amet reprehenderit dicta fuga molestias at aliquid laudantium nisi, commodi repudiandae placeat obcaecati sunt voluptas rem sequi sint explicabo doloremque accusamus eos quae. Debitis molestias quia deleniti rerum, illum beatae perferendis, repellat ratione incidunt nulla doloribus repellendus sed. Expedita, consectetur porro laborum unde, repudiandae nulla reprehenderit iusto molestias dolor aliquam vitae repellendus, sunt error provident molestiae incidunt neque! Quis quos itaque, similique quibusdam quia ut recusandae praesentium accusamus, voluptatem non dolor aspernatur, asperiores nihil ea dolore amet at obcaecati minus voluptates. Cumque doloribus quia doloremque labore quo odit necessitatibus unde ratione praesentium enim quidem officiis velit harum cum totam quis, cupiditate esse? Possimus, voluptatum ipsum, eum magni illum numquam porro iure assumenda, obcaecati accusantium commodi! Corrupti iste explicabo voluptas consequatur temporibus earum tempora alias! Qui, impedit perspiciatis? In officia quasi eius nesciunt. Blanditiis ipsa dolores ab dicta, sunt quod esse sequi at deserunt in officia nobis consectetur, soluta deleniti? Dolorum illo reprehenderit ipsum a, consequuntur eaque quasi nobis cupiditate facilis, eum magnam! Impedit ratione culpa nihil fugiat. Explicabo dicta distinctio aut totam tempore, culpa optio sit magnam provident! Iste nesciunt perferendis blanditiis sapiente dolores facere, placeat numquam voluptatem id explicabo corporis ratione fugiat inventore eos a fugit ut! Fugiat sunt inventore corporis. Optio laboriosam, dolorum eius sapiente est possimus ipsam fugiat doloremque iure soluta veritatis nulla vero esse quasi laborum? Enim, quam cum minus id a nam repudiandae? Eveniet architecto alias in incidunt repellendus nesciunt consequuntur ipsum a enim aliquid.
+
+
\ No newline at end of file
From 52935f8e1df37b1d9b7944bdd7a0ef96c23230b0 Mon Sep 17 00:00:00 2001
From: Rahul Gupta <122372097+Rahulgupta122@users.noreply.github.com>
Date: Sat, 16 Nov 2024 22:28:34 +0530
Subject: [PATCH 2/2] codes
---
about.html | 16 +++++
alarm.css | 98 +++++++++++++++++++++++++
alarm.html | 175 +++++++++++++++++++++++++++++++++++++++++++++
alarm.js | 129 +++++++++++++++++++++++++++++++++
boxes.js | 50 +++++++++++++
boxes_onclick.html | 38 ++++++++++
contact.html | 14 ++++
image1.png | Bin 0 -> 973818 bytes
image2.png | Bin 0 -> 955974 bytes
image3.png | Bin 0 -> 910665 bytes
index.html | 118 ++++++++++++++++++++++++++++++
index1.html | 15 ++++
index1.js | 5 ++
portfolio.html | 14 ++++
prac.html | 22 ++++++
15 files changed, 694 insertions(+)
create mode 100644 about.html
create mode 100644 alarm.css
create mode 100644 alarm.html
create mode 100644 alarm.js
create mode 100644 boxes.js
create mode 100644 boxes_onclick.html
create mode 100644 contact.html
create mode 100644 image1.png
create mode 100644 image2.png
create mode 100644 image3.png
create mode 100644 index.html
create mode 100644 index1.html
create mode 100644 index1.js
create mode 100644 portfolio.html
create mode 100644 prac.html
diff --git a/about.html b/about.html
new file mode 100644
index 0000000..87c143e
--- /dev/null
+++ b/about.html
@@ -0,0 +1,16 @@
+
+
+
+
+
+ Document
+
+
+
+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Quis accusantium reprehenderit cumque provident. Quae, in eius tempora id, excepturi nobis, quis exercitationem laudantium placeat obcaecati sunt. Facere, atque deserunt aspernatur pariatur, laudantium dolorum, obcaecati commodi facilis nihil eveniet culpa illo nesciunt aliquid aut mollitia distinctio fugiat adipisci at officiis. In, qui saepe, debitis commodi facere voluptas libero magni odit deserunt, magnam quod voluptatibus consequatur quibusdam excepturi provident dicta consequuntur impedit eligendi blanditiis fugiat labore at voluptatum ducimus quis. Fugiat quas ab, magnam, consequuntur debitis, illum beatae assumenda nemo recusandae vitae aperiam molestiae quod dolorem? Cupiditate velit repellat provident, deleniti natus exercitationem. Necessitatibus aliquid at dicta? Facere deserunt fuga, fugiat soluta consequuntur voluptate pariatur quae libero itaque voluptates iure est nisi tempore voluptatum et omnis accusamus? Et, debitis aliquid maxime ipsam rerum minima laudantium blanditiis ad, aspernatur quis ratione quo dolorem odio repudiandae itaque autem commodi distinctio. Perferendis facere magni ipsa aut. Aut nesciunt nihil, magnam dolorem odit architecto quidem nobis odio. Nisi, quos! Sed voluptas rem cum amet labore aspernatur sapiente cupiditate dignissimos eum tempore odit distinctio quo expedita dolores doloremque earum tenetur, modi repudiandae dolorem facere, maxime error pariatur? Odit molestias neque nisi accusantium accusamus non nulla facilis possimus sed atque dolorum illum, voluptatibus reiciendis iste quia vero ut amet. Repellat reprehenderit omnis quaerat hic nemo reiciendis odio earum vero sunt accusamus et ad, eveniet quibusdam itaque repellendus nisi alias qui, voluptates iure aspernatur quia eos ipsa tempora. Sint, modi quibusdam rem dicta repellendus exercitationem debitis, sapiente molestiae laborum aperiam quaerat, perferendis veniam delectus dolorem corporis. Dolor deserunt alias tempora commodi a quisquam minus molestiae iure quibusdam voluptate. Perferendis fugit quibusdam soluta! Suscipit quae provident maiores dolor amet nulla at autem? Vel non debitis amet, voluptatum dolore est? Vel vitae sapiente quis aspernatur eveniet inventore ipsum. Dolor autem nam iusto aperiam quam officia eligendi a porro, consectetur similique error architecto fugiat optio libero expedita. Delectus quod magni, doloremque dolorem odit ea a tenetur? Eveniet laudantium quae, recusandae quaerat hic ipsa accusamus nam quos ullam soluta commodi, eius sequi vitae ad dolor voluptatibus labore laborum temporibus asperiores harum error cumque aspernatur voluptas adipisci. Consequuntur tenetur alias distinctio porro enim assumenda eligendi illo culpa excepturi eius, atque nostrum ipsam voluptatibus possimus quidem beatae reprehenderit aliquid quas rem tempore fugit corrupti! Harum eius consequuntur rerum perferendis alias nobis cum magnam amet deserunt sequi reiciendis blanditiis nemo fugiat nesciunt libero placeat in velit consequatur soluta ex, sapiente culpa itaque quidem perspiciatis. Molestiae corrupti excepturi non culpa enim ab, qui magni animi odit in harum commodi sint optio quo minus? Consequatur at molestias ipsum vitae voluptates, nobis asperiores eos similique, unde esse, id quo magni ipsa inventore cumque nulla quis. Animi quasi recusandae laborum assumenda quis iusto rerum fuga cumque doloribus cum voluptatum, provident aliquam blanditiis earum fugiat nisi maiores praesentium voluptatibus suscipit sequi quaerat. Fuga itaque ipsam atque recusandae enim, beatae quo accusamus laudantium aliquam. Accusamus, nam maiores ut, eligendi, placeat commodi similique eius porro quaerat ullam laborum corrupti pariatur ex non dicta.
+
+
\ No newline at end of file
diff --git a/alarm.css b/alarm.css
new file mode 100644
index 0000000..487cb3d
--- /dev/null
+++ b/alarm.css
@@ -0,0 +1,98 @@
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ border: none;
+ outline: none;
+
+}
+
+body, html {
+ height: 100%;
+ font-family: Arial, sans-serif;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ background-color: #f0f0f0;
+}
+
+.container {
+ text-align: center;
+ background-color: #fff;
+ padding: 40px;
+ border-radius: 10px;
+ box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
+}
+
+h1 {
+ font-size: 2.5em;
+ margin-bottom: 20px;
+}
+
+.buttons {
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ gap: 20px;
+ margin-top: 20px;
+}
+
+button {
+ padding: 10px 20px;
+ font-size: 1em;
+ border: none;
+ border-radius: 5px;
+ background-color: #4CAF50;
+ color: white;
+ cursor: pointer;
+ transition: background-color 0.3s;
+ outline: none;
+}
+
+button:hover {
+ background-color: #45a049;
+}
+
+.time-container {
+ display: flex;
+ justify-content: center;
+ gap: 20px;
+ margin-top: 20px;
+}
+
+.time-box {
+ background-color: #4CAF50;
+ color: white;
+ font-size: 1em;
+ padding: 10px;
+ width: 120px;
+ text-align: center;
+ border-radius: 10px;
+}
+
+.time-box input, .time-box select {
+ width: 100%;
+ padding: 5px;
+ margin-top: 5px;
+}
+
+.back-button {
+ margin-top: 30px;
+ padding: 10px 20px;
+ font-size: 1em;
+ border: none;
+ border-radius: 5px;
+ background-color: #ff4c4c;
+ color: white;
+ cursor: pointer;
+ transition: background-color 0.3s;
+ outline: none;
+}
+
+.back-button:hover {
+ background-color: #e04343;
+}
+
+.hidden {
+ display: none;
+}
diff --git a/alarm.html b/alarm.html
new file mode 100644
index 0000000..1e745d4
--- /dev/null
+++ b/alarm.html
@@ -0,0 +1,175 @@
+
+
+
+
+
+ RR Watch
+
+
+
+
+
Welcome To RR Watch
+
+
+
+
+
+
+
+
+
Current Time
+
+
+
+
00
+
+
+
+
00
+
+
+
+
00
+
+
+
+
+
+
+
Stopwatch
+
+
+
+
00
+
+
+
+
00
+
+
+
+
00
+
+
+
+
+
+
+
+
+
+
+
+
Set Alarm
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/alarm.js b/alarm.js
new file mode 100644
index 0000000..c12bc69
--- /dev/null
+++ b/alarm.js
@@ -0,0 +1,129 @@
+
+document.getElementById("timeBtn").addEventListener("click", function() {
+ document.getElementById("mainPage").classList.add("hidden");
+ document.getElementById("timePage").classList.remove("hidden");
+ updateTime();
+});
+
+
+document.getElementById("alarmBtn").addEventListener("click", function() {
+ document.getElementById("mainPage").classList.add("hidden");
+ document.getElementById("alarmPage").classList.remove("hidden");
+});
+
+// Show stopwatch page when "StopWatch" button is clicked
+document.getElementById("stopwatchBtn").addEventListener("click", function() {
+ document.getElementById("mainPage").classList.add("hidden");
+ document.getElementById("stopwatchPage").classList.remove("hidden");
+});
+
+// Return to main page when "Back" button is clicked on time page
+document.getElementById("backBtn").addEventListener("click", function() {
+ document.getElementById("timePage").classList.add("hidden");
+ document.getElementById("mainPage").classList.remove("hidden");
+});
+
+// Return to main page when "Back" button is clicked on stopwatch page
+document.getElementById("stopwatchBackBtn").addEventListener("click", function() {
+ document.getElementById("stopwatchPage").classList.add("hidden");
+ document.getElementById("mainPage").classList.remove("hidden");
+});
+
+// Return to main page when "Back" button is clicked on alarm page
+document.getElementById("alarmBackBtn").addEventListener("click", function() {
+ document.getElementById("alarmPage").classList.add("hidden");
+ document.getElementById("mainPage").classList.remove("hidden");
+});
+
+// Function to update time in the boxes
+function updateTime() {
+ const now = new Date();
+ const hours = now.getHours().toString().padStart(2, '0');
+ const minutes = now.getMinutes().toString().padStart(2, '0');
+ const seconds = now.getSeconds().toString().padStart(2, '0');
+
+ document.getElementById("hour").textContent = hours;
+ document.getElementById("minute").textContent = minutes;
+ document.getElementById("second").textContent = seconds;
+
+ // Refresh every second
+ setTimeout(updateTime, 1000);
+}
+
+// Stopwatch functionality
+let stopwatchInterval;
+let stopwatchTime = { hours: 0, minutes: 0, seconds: 0 };
+
+function updateStopwatchDisplay() {
+ document.getElementById("stopwatchHour").textContent = stopwatchTime.hours.toString().padStart(2, '0');
+ document.getElementById("stopwatchMinute").textContent = stopwatchTime.minutes.toString().padStart(2, '0');
+ document.getElementById("stopwatchSecond").textContent = stopwatchTime.seconds.toString().padStart(2, '0');
+}
+
+function startStopwatch() {
+ if (stopwatchInterval) return; // If already running, do nothing
+
+ stopwatchInterval = setInterval(() => {
+ stopwatchTime.seconds++;
+ if (stopwatchTime.seconds === 60) {
+ stopwatchTime.seconds = 0;
+ stopwatchTime.minutes++;
+ }
+ if (stopwatchTime.minutes === 60) {
+ stopwatchTime.minutes = 0;
+ stopwatchTime.hours++;
+ }
+ updateStopwatchDisplay();
+ }, 1000);
+}
+
+function stopStopwatch() {
+ clearInterval(stopwatchInterval);
+ stopwatchInterval = null;
+}
+
+function resetStopwatch() {
+ stopStopwatch();
+ stopwatchTime = { hours: 0, minutes: 0, seconds: 0 };
+ updateStopwatchDisplay();
+}
+
+// Stopwatch button event listeners
+document.getElementById("startBtn").addEventListener("click", startStopwatch);
+document.getElementById("stopBtn").addEventListener("click", stopStopwatch);
+document.getElementById("resetBtn").addEventListener("click", resetStopwatch);
+
+// Alarm functionality
+let alarmTime = null;
+
+function setAlarm() {
+ const alarmHour = parseInt(document.getElementById("alarmHour").value);
+ const alarmMinute = parseInt(document.getElementById("alarmMinute").value);
+
+ alarmTime = new Date();
+ alarmTime.setHours(alarmHour, alarmMinute, 0, 0); // Set alarm time
+
+ // Confirm the alarm time with a popup
+ alert(`Your alarm is set for ${alarmHour}:${alarmMinute.toString().padStart(2, '0')}`);
+
+ // Start checking if the alarm time has been reached
+ checkAlarm();
+}
+
+// Check if the alarm time has come
+function checkAlarm() {
+ setInterval(() => {
+ const currentTime = new Date();
+ const currentHours = currentTime.getHours();
+ const currentMinutes = currentTime.getMinutes();
+
+ // When current time matches the alarm time
+ if (alarmTime && currentHours === alarmTime.getHours() && currentMinutes === alarmTime.getMinutes()) {
+ alert("Wake UP!"); // Display alert when alarm goes off
+ alarmTime = null; // Reset the alarm after it rings
+ }
+ }, 1000); // Check every second
+}
+
+// Set the alarm when button is clicked
+document.getElementById("setAlarmBtn").addEventListener("click", setAlarm);
diff --git a/boxes.js b/boxes.js
new file mode 100644
index 0000000..c513e16
--- /dev/null
+++ b/boxes.js
@@ -0,0 +1,50 @@
+// Select elements
+const openFormButton = document.querySelector('#openFormButton');
+const closeFormButton = document.querySelector('#closeFormButton');
+const toDoForm = document.querySelector('#toDoForm');
+const addToDoForm = document.querySelector('#addToDoForm');
+const toDoList = document.querySelector('#list');
+
+// Show form when 'Add To-Do' button is clicked
+openFormButton.addEventListener('click', () => {
+ toDoForm.classList.remove('hidden');
+});
+
+// Hide form when 'Cancel' button is clicked
+closeFormButton.addEventListener('click', () => {
+ toDoForm.classList.add('hidden');
+});
+
+// Add a new to-do item
+addToDoForm.addEventListener('submit', (event) => {
+ event.preventDefault();
+
+ // Get form values
+ const title = document.querySelector('#title').value;
+ const date = document.querySelector('#date').value;
+ const description = document.querySelector('#description').value;
+
+ // Create to-do item
+ const toDoItem = document.createElement('li');
+ toDoItem.classList.add('to-do-item');
+ toDoItem.innerHTML = `
+
+ ${title}
+ ${date}
+
${description}
+
+
+ `;
+
+ // Append to the list
+ toDoList.appendChild(toDoItem);
+
+ // Clear form inputs
+ addToDoForm.reset();
+ toDoForm.classList.add('hidden'); // Hide the form
+
+ // Delete functionality
+ toDoItem.querySelector('.delete-button').addEventListener('click', () => {
+ toDoList.removeChild(toDoItem);
+ });
+});
diff --git a/boxes_onclick.html b/boxes_onclick.html
new file mode 100644
index 0000000..0fa951d
--- /dev/null
+++ b/boxes_onclick.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+ To-Do List with Delete Option
+
+
+
+
+
+
+
+
Add a New To-Do
+
+
+
+
+
+
Your To-Do List
+
+
+
+
+
+
diff --git a/contact.html b/contact.html
new file mode 100644
index 0000000..940c3c8
--- /dev/null
+++ b/contact.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+ Document
+ body{
+ background-color: antiquewhite;
+ }
+
+
+ Lorem ipsum, dolor sit amet consectetur adipisicing elit. Porro, laborum necessitatibus! Reprehenderit exercitationem nulla dignissimos deleniti praesentium minus voluptas minima in dolorem, eaque quam repellendus mollitia? Consequatur tempora, veniam rem earum quam dolores quasi officia, maxime praesentium cumque deserunt officiis iusto eos error sapiente accusantium exercitationem iste dicta neque? Sapiente tempore temporibus ipsum beatae voluptatibus, officia odio dignissimos possimus rerum, numquam dolore deleniti eius! Consequatur autem id tempore modi ex magni et! Architecto eius id sed dolorem pariatur in sit rem similique dignissimos, illo nulla quo expedita, nam repellendus nemo corporis temporibus voluptatum, dolorum impedit inventore! Adipisci provident nostrum similique, rerum placeat magnam dolor consectetur maiores optio odio, recusandae dolorem earum voluptatibus sit laudantium vitae ab, sunt voluptates? Qui fugiat dolorem iste ipsam maiores, est eos optio dolorum inventore earum libero corrupti veniam voluptates beatae repudiandae veritatis reprehenderit facilis minus exercitationem mollitia officia voluptatum! Amet accusantium dolorem nobis autem sapiente, suscipit voluptatem provident dolore, molestias dicta magnam ratione facilis quos optio. Veniam, maiores? Illo ullam voluptates perferendis omnis esse? Dolor amet vel sed debitis veritatis velit, eligendi maiores, commodi veniam, quia natus. Odio hic veritatis incidunt accusantium expedita quibusdam dolor dolore vitae repudiandae deserunt porro, maiores praesentium autem distinctio sequi veniam obcaecati cum ducimus quas natus voluptas quia maxime recusandae magni! Maiores aspernatur, eaque enim inventore cupiditate eveniet debitis asperiores sed dolorum libero harum, commodi voluptas excepturi et a accusantium necessitatibus corporis? Adipisci perferendis in pariatur magnam expedita doloribus! Vero architecto officia dicta velit repellat. Nostrum dolore delectus eum, eius itaque consequuntur quia, incidunt iusto iure omnis officiis debitis. Cum est corporis optio, amet repellat ipsam perferendis delectus aliquam voluptates eveniet recusandae quo mollitia quisquam nisi nam minus voluptatibus atque facilis eius hic voluptatem nemo in autem! Non assumenda, recusandae tenetur autem aperiam exercitationem voluptate pariatur odio explicabo laudantium facere iure tempora qui nostrum provident quasi fugit id corrupti doloremque accusamus dolorum nesciunt! Id perspiciatis totam praesentium vel dolores! Natus dolorem labore exercitationem blanditiis inventore quidem rem quam ea minima. Ratione et ipsum maiores id dolorem, cumque corporis laboriosam molestias laborum eligendi. Iure itaque corporis at nostrum! Rem est illum neque magnam? Ipsam reiciendis maxime perferendis provident, quibusdam eos ipsum culpa accusantium earum eum harum porro, cumque, aspernatur dicta! Unde ratione incidunt hic nisi rerum eum asperiores perspiciatis ducimus, minima quis? Ratione saepe nihil dicta quisquam, consectetur voluptas molestias quia fugiat explicabo corrupti maxime tempore dolore ipsum, sed totam. Commodi illum repudiandae rerum, accusamus libero incidunt blanditiis quam provident animi aliquid placeat. Amet inventore repellendus nostrum, quam magnam corrupti sit animi adipisci, quibusdam excepturi commodi temporibus, distinctio molestias doloribus facilis cum vero laboriosam at. Ullam est in error tenetur expedita placeat reprehenderit! Minima enim voluptatum, eius quas placeat ut, beatae exercitationem sequi a earum distinctio, similique amet officia magnam aliquam ipsum! Ab quod nulla doloremque unde ex libero, explicabo veniam, rem cupiditate possimus consequuntur alias omnis excepturi incidunt. Quaerat at, corrupti pariatur amet possimus necessitatibus odit minus, odio neque deleniti delectus asperiores quibusdam a similique beatae cum. Reprehenderit, repudiandae vitae?
+
+
\ No newline at end of file
diff --git a/image1.png b/image1.png
new file mode 100644
index 0000000000000000000000000000000000000000..5584a7d377b491054112f856c18a843a3978418b
GIT binary patch
literal 973818
zcmV)nK%KvdP)Vc*00001b5ch_0Itp)
z=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D|D{PpK~#8Ny!~gp
zWjS)Ti6PDL-lR9>vTRoyx|cJ0bxHbZ{9V$eFPhN|HRO;@vb))?s=CWpR{A{toXpgH
zKLPBsPi9uLdp->I#sU^hAP@)yfLK^q=dN78^a9gbd(q@#q9j(sMPUSq0ny=-2j91KEfA-=8
zKBXM_n9gb+Itnf9clLYRubV0QN{d2bx}K+gW6s8DDpaRvDUQOa;1g*ty{VVgtTg(I
z4i~}wB6YCOYi+MXWYTeX4LabrNXc^Ey30+(*^V!W3xDIjuzd+L%>~=mUvMZy#A#**
zuCR>I^aMUThDI0R8RbObB#zcF@Z|9kB3+E?Fv-Ny~Eps(*A?6uwf-FE5HcH6$R)i$>_
z+k*!W+CTl%KefAe??ygcr2o&)%@cpAUA}y|UA=O(ZES9|^|kf3y}b?3&a{91*MDul
z_|>o4C%^xs?d|WU{E$Nn?iz8C#x*v=Y53C)U@A>R`{Xz^fs(q|4#ThGeesm|&0v?7
zmfGUdBJ%8@9bosM=kf7T%5i+LodXVA`IPH3z26X;!r))WxGDVP(TcZBdN=aQGT(jY
zPW$Oke%fx`xYe#*z1}w0x7zaJN}HXTO~q}?z^1I~X&s*Jk}LiE`ANHX|NHjq-~PJ&
zzy9C<&-R;7e%tQe|Bn93cu&4#{ISD=zF0pFDyG~1jY;M`JnCY9Uy-gL*apE4AxSjWTu!nhdCzw^ELyYFD@>$1@Jzh4UZUW4-bz*
zQ}ZHrkzc(JYprSbpJ$GfKKF_-lUK`n*;L$w2{6Kv#`cqE@BM`#b#}!l&C%7y0g)a|GL)KWO!O6xH;VD;r`$x^{sP_7uS19104KjpFX9CLc}IhN{|m97
z8Tsi)(4o2`DS$Dou;M1JQkM%)AoFJDW^v`2bI6Ee=zUCIr{3~YFW3BKl(|}Ri(AH}
z5!cN?>2+o@XudvCBU8Nl!>)`{;8{Z8N1J&qrH?9So_$@@+$p&A@X&fe)iGFonmd`C+^<#3{3qhJ5}^9r}fk1#i^Bu}oVs?RjLK?O@Wv
zM>yT3u8y4-X1t}|BznQzM>+0%I`YK2l2)nm0-lO=q0Eb9xj?z+h*#D)b~=U%cORLu
z&sYH!Q&i29h%&t?$ls}k$qj#F&YCfv*=J4dT+9ACJ?>~SK2zs0=7dV-t4hbb3LQh*
z3V$_rGS{^5AkcB=_nZo(bn;VZ)iKGbF=?HBO<1*?QU8I_ndlVHMR>ufyE^_-zv{PD
z?W)`H5q%ALe-7DpJ_VdLCJm3g&h+ARbDNt}lX??0E%PrduPpsT_rGEaKu3BCvIy70
z*0@t(sRyRgpIWn-te8G2a7ScrPyNFft&@wcjS@DXd<9N#Fr$gfyV*J4U_R0a;*!Owx7wA_r$-I=&nhq_d~6o!<`;!Xv_OeUn#
zl?ewEi4!`^39C%q2oYc?G6H_$Vkv9T+P1LW9Pm{1Sk`kVO)RdTJyXDzpfZmp)Q!K|
zEf8^|D2Z!=zrX;yCa6wkn6w=owxgpX>cB*{6RR*6hbjCgJX2vKzAlBQBp5dI2t38S
zJX`tGAA5gtpg12TgM)i&>1Pgza%(J_%w
z$pFF>B%HVwigi(MyU%q6&BFYATVz6SeXJeL*N)}2%z6bZkNSfb;f)t2VBmBhQ1K!s
zWPrs=&!VY6-C!ni@Pd4H62FTfm5LWB(?Qid4kqb?SWUq&BGe^7z=V+a1^Hf({{?*a
zTt8$LU6=Z$)a*a%nkr1^*V`e#VvK)nMDc*X@DH|l!1T7Mrf0NoAXhS(9;F2?;c?Ge
zle}7F(O_aauT;8n%_`lfJ~YHqocJUn*^Aev-IVFi+m}q>r9Q8*6r!8SpceRp-|QIT
za6S`52V~NLkbE~3oKBup_6ftxQOb}vx6nm-;$r#|3&M9;^nLjL2kpZTKFs2OX>mC?
zr%nopUbbV!%IZqHa`{pe6Yr7l&O7h4x8HsX_wDxHyYIFSKm33N^9{;>-X7e)-@g9(
z>$bbQ7a8H$r&99p;IKV@^tgR@_q+DZ*Wa|SzWS)1_2=;>~m)W?79pmDjGWX@cSwVz0*Ll)TLe9R)-#c@sG
zBt(ata*8)~i@wDtPFUw=XWI`F`a^#ZnF1B6drhHRF6BP%sm3W57}Bph947b}nh&dHd}s
zDz0CBco&bO_tjVKwUpZI1mU>i_B7yTD$
za}{;c$-V?YD1ak8^4L#aHASgGv9qRA(d_BNr}@J}M5i1Li2{T0Qe^qS;jk?&&$ac9
zb?|~Gu`iyVwE5W!ZIK1;Rr=o6)_TSg?FIOCes%#GEdcO5?eQ#DMFkWLee6bzl%dxN
zH}*s2CAF*ab1l55ujL45%JiroG}4dyOy^3L)5`>8_-(