From 5853fc54fda9efc82de30ee08228c1491d283057 Mon Sep 17 00:00:00 2001 From: selvi Date: Tue, 16 Dec 2025 19:25:27 +0530 Subject: [PATCH] home and inner pages structures updated --- app/about/about.module.css | 837 +++++++----- app/about/page.tsx | 308 ++--- app/blog/blog.module.css | 222 ---- app/blog/page.tsx | 153 --- app/careers/careers.module.css | 395 ++++++ app/careers/page.tsx | 211 +++ app/channels/[slug]/channel-page.module.css | 633 +++++++++ app/channels/[slug]/page.tsx | 250 ++++ app/channels/channels.module.css | 283 +++++ app/channels/page.tsx | 163 +++ app/contact/contact.module.css | 40 +- app/contact/page.tsx | 11 +- app/docs/docs.module.css | 176 --- app/docs/page.tsx | 144 --- app/features/[slug]/feature-page.module.css | 633 +++++++++ app/features/[slug]/page.tsx | 285 +++++ app/features/features.module.css | 49 +- app/features/page.tsx | 10 +- app/globals.css | 86 +- app/page.tsx | 9 +- app/pricing/page.tsx | 134 +- app/pricing/pricing.module.css | 351 ++++- app/resources/[slug]/page.tsx | 85 ++ app/resources/page.tsx | 49 + app/resources/resources.module.css | 275 ++++ components/AboutSection.module.css | 304 +++++ components/AboutSection.tsx | 104 ++ components/CTA.module.css | 321 ++--- components/CTA.tsx | 115 +- components/CoreServices.module.css | 354 ++++++ components/CoreServices.tsx | 114 ++ components/FAQ.module.css | 372 +++--- components/FAQ.tsx | 260 ++-- components/Features.module.css | 250 ++-- components/Features.tsx | 107 +- components/Footer.module.css | 11 +- components/Footer.tsx | 34 +- components/Hero.module.css | 855 +++++-------- components/Hero.tsx | 326 ++--- components/HowItWorks.module.css | 411 +++--- components/HowItWorks.tsx | 92 +- components/Navbar.module.css | 57 +- components/Navbar.tsx | 226 ++-- components/Pricing.module.css | 242 ++-- components/Pricing.tsx | 110 +- components/SafeImage.tsx | 26 + components/SocialConnect.module.css | 1267 ++++--------------- components/SocialConnect.tsx | 419 ++---- components/StatsCounter.module.css | 125 ++ components/StatsCounter.tsx | 118 ++ components/TestimonialSlider.tsx | 69 + components/Testimonials.module.css | 429 ++++--- components/Testimonials.tsx | 222 ++-- components/WhyChooseUs.module.css | 322 +++++ components/WhyChooseUs.tsx | 94 ++ data/channels.ts | 285 +++++ data/features.ts | 273 ++++ data/resources.ts | 399 ++++++ package-lock.json | 10 + package.json | 1 + public/about-image-2.png | Bin 0 -> 768123 bytes public/about-image.png | Bin 0 -> 768310 bytes public/cta-dashboard.png | Bin 0 -> 707570 bytes public/device-mockup.png | Bin 0 -> 557690 bytes public/faq-illustration.png | Bin 0 -> 580888 bytes public/faq-workspace.jpg | Bin 0 -> 686132 bytes public/features/ai.png | Bin 0 -> 600221 bytes public/features/analytics.png | Bin 0 -> 561331 bytes public/features/platforms.png | Bin 0 -> 532851 bytes public/features/scheduling.png | Bin 0 -> 505229 bytes public/hero-inner-bg.png | Bin 0 -> 410373 bytes public/hero-slide-1.png | Bin 0 -> 435538 bytes public/hero-slide-2.png | Bin 0 -> 464431 bytes public/hero-slide-3.png | Bin 0 -> 493010 bytes public/images/about/app-dashboard.png | Bin 0 -> 523620 bytes public/images/about/team-meeting.png | Bin 0 -> 842341 bytes public/images/about/workspace.png | Bin 0 -> 978095 bytes public/logo.png | Bin 0 -> 23915 bytes public/rocket-logo.png | Bin 0 -> 39822 bytes 79 files changed, 9868 insertions(+), 4648 deletions(-) delete mode 100644 app/blog/blog.module.css delete mode 100644 app/blog/page.tsx create mode 100644 app/careers/careers.module.css create mode 100644 app/careers/page.tsx create mode 100644 app/channels/[slug]/channel-page.module.css create mode 100644 app/channels/[slug]/page.tsx create mode 100644 app/channels/channels.module.css create mode 100644 app/channels/page.tsx delete mode 100644 app/docs/docs.module.css delete mode 100644 app/docs/page.tsx create mode 100644 app/features/[slug]/feature-page.module.css create mode 100644 app/features/[slug]/page.tsx create mode 100644 app/resources/[slug]/page.tsx create mode 100644 app/resources/page.tsx create mode 100644 app/resources/resources.module.css create mode 100644 components/AboutSection.module.css create mode 100644 components/AboutSection.tsx create mode 100644 components/CoreServices.module.css create mode 100644 components/CoreServices.tsx create mode 100644 components/SafeImage.tsx create mode 100644 components/StatsCounter.module.css create mode 100644 components/StatsCounter.tsx create mode 100644 components/TestimonialSlider.tsx create mode 100644 components/WhyChooseUs.module.css create mode 100644 components/WhyChooseUs.tsx create mode 100644 data/channels.ts create mode 100644 data/features.ts create mode 100644 data/resources.ts create mode 100644 public/about-image-2.png create mode 100644 public/about-image.png create mode 100644 public/cta-dashboard.png create mode 100644 public/device-mockup.png create mode 100644 public/faq-illustration.png create mode 100644 public/faq-workspace.jpg create mode 100644 public/features/ai.png create mode 100644 public/features/analytics.png create mode 100644 public/features/platforms.png create mode 100644 public/features/scheduling.png create mode 100644 public/hero-inner-bg.png create mode 100644 public/hero-slide-1.png create mode 100644 public/hero-slide-2.png create mode 100644 public/hero-slide-3.png create mode 100644 public/images/about/app-dashboard.png create mode 100644 public/images/about/team-meeting.png create mode 100644 public/images/about/workspace.png create mode 100644 public/logo.png create mode 100644 public/rocket-logo.png diff --git a/app/about/about.module.css b/app/about/about.module.css index a761969..c7f1318 100644 --- a/app/about/about.module.css +++ b/app/about/about.module.css @@ -1,337 +1,576 @@ +/* About Page Styles */ + .aboutPage { - min-height: 100vh; + background: var(--background); } +/* Hero Section */ .hero { - padding: 8rem 0 4rem; - text-align: center; - background: linear-gradient(135deg, rgba(236, 72, 153, 0.05), rgba(59, 130, 246, 0.05)); + background: var(--background-secondary); + padding: 8rem 0 8rem; position: relative; - overflow: hidden; -} - -.hero::before { - content: ''; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: radial-gradient(circle at 50% 50%, rgba(236, 72, 153, 0.1) 0%, transparent 70%); + border-bottom: 1px solid var(--border-color); } .heroContent { - position: relative; - z-index: 1; + text-align: center; + max-width: 800px; + margin: 0 auto; } .heroTitle { - font-size: clamp(2.5rem, 6vw, 4rem); + font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 800; - margin-bottom: 1.5rem; - line-height: 1.2; + margin-bottom: 1rem; + background: var(--gradient-primary); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; } -.heroSubtitle { - font-size: 1.25rem; +.breadcrumb { color: var(--text-secondary); - max-width: 700px; - margin: 0 auto; - line-height: 1.7; + font-size: 0.95rem; +} + +.breadcrumb a { + color: var(--text-secondary); + text-decoration: none; + transition: color 0.2s; +} + +.breadcrumb a:hover { + color: var(--primary); +} + +.breadcrumb span { + color: var(--primary); + font-weight: 600; +} + +/* 1. Story Section (Image 3 Style) */ +.storySection { + padding: 4rem 0; + background: white; + overflow: hidden; } .storyGrid { display: grid; grid-template-columns: 1fr; - gap: 3rem; + gap: 4rem; align-items: center; } -@media (min-width: 1024px) { +.storyImageContainer { + position: relative; + padding: 2rem; + /* Space for frame */ +} + +/* The decorative frame behind the image */ +.storyFrame { + position: absolute; + inset: 0; + border: 3px solid #ec4899; + /* Primary Pink */ + border-radius: 20px; + transform: rotate(-3deg); + z-index: 0; + width: 90%; + height: 90%; + margin: auto; +} + +.storyImageWrapper { + position: relative; + z-index: 1; + border-radius: 20px; + overflow: hidden; + box-shadow: var(--shadow-xl); + transform: rotate(2deg); + /* Counter tilt */ +} + +.storyImg { + width: 100%; + height: auto; + display: block; +} + +.storyContent { + padding-left: 2rem; +} + +.storyTitle { + color: #ec4899; + /* Pink Title */ + font-size: 1.1rem; + font-weight: 800; + text-transform: uppercase; + letter-spacing: 2px; + margin-bottom: 1rem; +} + +.storyHeading { + font-size: 2rem; + font-weight: 700; + color: var(--foreground); + margin-bottom: 1.5rem; + line-height: 1.3; +} + +.storyText { + color: var(--text-secondary); + margin-bottom: 1.5rem; + font-size: 1rem; + line-height: 1.7; +} + +.storyBtn { + background: #ec4899; + color: white; + border: none; + padding: 1rem 2rem; + font-weight: 600; + border-radius: 8px; + cursor: pointer; + font-size: 1rem; + transition: all 0.3s ease; + box-shadow: 0 4px 14px 0 rgba(236, 72, 153, 0.39); +} + +.storyBtn:hover { + transform: translateY(-2px); + box-shadow: 0 6px 20px rgba(236, 72, 153, 0.23); + background: #db2777; +} + + +/* 2. Why Choose Us (Image 1 Style) */ +.whyChooseSection { + padding: 4rem 0 4rem; + background: var(--background-secondary); +} + +.whyHeader { + text-align: center; + max-width: 700px; + margin: 0 auto 4rem; +} + +.sectionTitle { + font-size: 2.5rem; + font-weight: 800; + margin-bottom: 1rem; + color: var(--foreground); +} + +.sectionSubtitle { + color: var(--text-secondary); + font-size: 1.1rem; +} + +.cardsGrid { + display: grid; + grid-template-columns: 1fr; + gap: 2rem; +} + +.card { + padding: 2.5rem 1.5rem; + border-radius: 24px; + text-align: center; + transition: transform 0.3s ease; + border: 1px solid transparent; +} + +.card:hover { + transform: translateY(-10px); +} + +.cardIconWrapper { + width: 64px; + height: 64px; + border-radius: 50%; + background: white; + display: flex; + align-items: center; + justify-content: center; + margin: 0 auto 1.5rem; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05); +} + +.card h3 { + font-size: 1.25rem; + font-weight: 700; + margin-bottom: 1rem; + color: var(--foreground); +} + +.card p { + font-size: 0.95rem; + color: var(--text-secondary); + line-height: 1.5; +} + +/* Card Variants */ +/* Purple */ +.cardPurple { + background: #F3E8FF; + border-color: #E9D5FF; +} + +.cardPurple .cardIconWrapper { + color: #9333EA; +} + +/* Orange */ +.cardOrange { + background: #FFEDD5; + /* Peach/Orange */ + border-color: #FED7AA; +} + +.cardOrange .cardIconWrapper { + color: #F97316; +} + +/* Pink */ +.cardPink { + background: #FCE7F3; + border-color: #FBCFE8; +} + +.cardPink .cardIconWrapper { + color: #EC4899; +} + +/* Green */ +.cardGreen { + background: #DCFCE7; + border-color: #BBF7D0; +} + +.cardGreen .cardIconWrapper { + color: #16A34A; + /* Updated green for better contrast on light bg, slightly darker than accent */ +} + + +/* 3. Feature Set Section (Image 2 Style) */ +.featureSetSection { + padding: 4rem 0; + background: white; + overflow: hidden; +} + +.featureSetGrid { + display: grid; + grid-template-columns: 1fr; + gap: 4rem; + align-items: center; +} + +.featureSetTitle { + font-size: 2.5rem; + font-weight: 800; + margin-bottom: 3rem; + line-height: 1.2; + color: var(--foreground); +} + +.featureList { + display: flex; + flex-direction: column; + gap: 2rem; +} + +.featureListItem { + display: flex; + gap: 1.5rem; + align-items: flex-start; +} + +.featureListIcon { + width: 50px; + height: 50px; + border-radius: 12px; + background: var(--background-secondary); + color: var(--primary); + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; +} + +.featureListText h4 { + font-size: 1.1rem; + font-weight: 700; + margin-bottom: 0.5rem; + color: var(--foreground); +} + +.featureListText p { + font-size: 0.95rem; + color: var(--text-secondary); + line-height: 1.5; +} + +/* Mockup Side */ +.mockupWrapper { + position: relative; + background: #F8FAFC; + /* Subtle bg blob? */ + border-radius: 40px; + padding: 2rem; + /* Center the image */ + display: flex; + justify-content: center; + align-items: center; +} + +.mockupWrapper::before { + content: ''; + position: absolute; + inset: 0; + background: radial-gradient(circle at center, #F1F5F9 0%, transparent 70%); + z-index: 0; +} + +.mockupImg { + position: relative; + z-index: 1; + width: 100%; + height: auto; + filter: drop-shadow(0 20px 40px rgba(0, 0, 0, 0.1)); +} + +.floatCard { + position: absolute; + background: white; + padding: 1rem 1.5rem; + border-radius: 16px; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); + z-index: 2; + display: flex; + flex-direction: column; + gap: 0.25rem; + animation: float 4s ease-in-out infinite; +} + +.floatCard1 { + top: 10%; + right: 5%; + animation-delay: 0s; +} + +.floatCard2 { + bottom: 15%; + right: 10%; + animation-delay: 1.5s; +} + +.floatCard span { + font-weight: 600; + color: var(--foreground); + font-size: 0.9rem; +} + +.floatCard small { + color: var(--text-secondary); + font-size: 0.8rem; +} + +.floatCard strong { + color: var(--primary); + font-size: 1.2rem; +} + +/* Responsive */ +@media (min-width: 900px) { .storyGrid { grid-template-columns: 1fr 1fr; } + + .cardsGrid { + grid-template-columns: repeat(4, 1fr); + } + + .featureSetGrid { + grid-template-columns: 1fr 1fr; + } } -.storyImage { - order: 2; +/* 4. Ready CTA Section (Image Bottom Style) */ +.readySection { + padding: 4rem 0 4rem; + /* Padding bottom mainly, card has internal padding */ + background: white; } -@media (min-width: 1024px) { - .storyImage { - order: 1; - } -} - -.imagePlaceholder { - width: 100%; - aspect-ratio: 1; - background: linear-gradient(135deg, var(--primary), var(--secondary)); - border-radius: 24px; - display: flex; - align-items: center; - justify-content: center; - position: relative; - overflow: hidden; -} - -.placeholderIcon { - font-size: 8rem; - opacity: 0.3; -} - -.storyContent { - order: 1; -} - -@media (min-width: 1024px) { - .storyContent { - order: 2; - } -} - -.sectionTitle { - font-size: clamp(2rem, 4vw, 3rem); - font-weight: 800; - margin-bottom: 1.5rem; - line-height: 1.2; -} - -.storyText { - font-size: 1.125rem; - line-height: 1.8; - color: var(--text-secondary); - margin-bottom: 1.5rem; -} - -.storyText:last-child { - margin-bottom: 0; -} - -.valuesSection { - background: linear-gradient(135deg, rgba(236, 72, 153, 0.03), rgba(59, 130, 246, 0.03)); -} - -.sectionHeader { - text-align: center; - margin-bottom: 4rem; -} - -.sectionSubtitle { - font-size: 1.125rem; - color: var(--text-secondary); - max-width: 600px; - margin: 0 auto; -} - -.valuesGrid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); - gap: 2rem; -} - -.valueCard { - background: var(--card-bg); - border: 1px solid var(--border-color); - border-radius: 20px; - padding: 2rem; - text-align: center; - transition: all 0.3s ease; -} - -.valueCard:hover { - transform: translateY(-5px); - box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1); - border-color: var(--primary); -} - -.valueIcon { - font-size: 3rem; - margin-bottom: 1rem; -} - -.valueTitle { - font-size: 1.5rem; - font-weight: 700; - margin-bottom: 0.75rem; - color: var(--text-primary); -} - -.valueDescription { - font-size: 1rem; - color: var(--text-secondary); - line-height: 1.6; -} - -.timeline { - max-width: 800px; - margin: 0 auto; - position: relative; -} - -.timeline::before { - content: ''; - position: absolute; - left: 30px; - top: 0; - bottom: 0; - width: 2px; - background: linear-gradient(180deg, var(--primary), var(--secondary)); -} - -@media (min-width: 768px) { - .timeline::before { - left: 50%; - transform: translateX(-50%); - } -} - -.timelineItem { - display: flex; - gap: 1.5rem; - margin-bottom: 3rem; - position: relative; -} - -@media (min-width: 768px) { - .timelineItem { - width: 50%; - } - - .timelineItem:nth-child(even) { - margin-left: auto; - flex-direction: row-reverse; - } -} - -.timelineIcon { - width: 60px; - height: 60px; - background: linear-gradient(135deg, var(--primary), var(--secondary)); - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - font-size: 1.75rem; - flex-shrink: 0; - box-shadow: 0 4px 20px rgba(236, 72, 153, 0.3); - position: relative; - z-index: 1; -} - -.timelineContent { - flex: 1; - background: var(--card-bg); - border: 1px solid var(--border-color); - border-radius: 16px; - padding: 1.5rem; -} - -.timelineYear { - font-size: 1.5rem; - font-weight: 800; - background: linear-gradient(135deg, var(--primary), var(--secondary)); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; - margin-bottom: 0.5rem; -} - -.timelineEvent { - font-size: 1.125rem; - color: var(--text-primary); - font-weight: 600; -} - -.teamSection { - background: var(--bg-primary); -} - -.teamGrid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); - gap: 2rem; -} - -.teamCard { - background: var(--card-bg); - border: 1px solid var(--border-color); - border-radius: 20px; - padding: 2rem; - text-align: center; - transition: all 0.3s ease; -} - -.teamCard:hover { - transform: translateY(-5px); - box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1); - border-color: var(--primary); -} - -.memberImage { - width: 100px; - height: 100px; - background: linear-gradient(135deg, var(--primary), var(--secondary)); - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - font-size: 3rem; - margin: 0 auto 1.5rem; -} - -.memberName { - font-size: 1.25rem; - font-weight: 700; - color: var(--text-primary); - margin-bottom: 0.5rem; -} - -.memberRole { - font-size: 1rem; - color: var(--primary); - font-weight: 600; - margin-bottom: 0.75rem; -} - -.memberBio { - font-size: 0.9375rem; - color: var(--text-secondary); - line-height: 1.6; -} - -.ctaSection { - padding: 6rem 0; - background: linear-gradient(135deg, rgba(236, 72, 153, 0.05), rgba(59, 130, 246, 0.05)); -} - -.ctaContent { - text-align: center; -} - -.ctaTitle { - font-size: clamp(2rem, 4vw, 3rem); - font-weight: 800; - margin-bottom: 1rem; - line-height: 1.2; -} - -.ctaSubtitle { - font-size: 1.25rem; - color: var(--text-secondary); - margin-bottom: 2rem; -} - -.ctaButtons { +.readyCard { + background: linear-gradient(135deg, #2563eb 0%, #ec4899 100%); + /* Primary Gradient Blue->Pink */ + border-radius: 40px; + padding: 4rem 4rem 0; + /* No bottom padding, content aligns to bottom */ display: flex; flex-direction: column; - gap: 1rem; + justify-content: space-between; align-items: center; + position: relative; + overflow: hidden; + color: white; + box-shadow: 0 20px 40px -10px rgba(37, 99, 235, 0.4); } -@media (min-width: 640px) { - .ctaButtons { +.readyContent { + max-width: 600px; + text-align: center; + margin-bottom: 3rem; + position: relative; + z-index: 2; +} + +.readyTitle { + font-size: clamp(2rem, 5vw, 3rem); + font-weight: 800; + margin-bottom: 1.5rem; + line-height: 1.2; + color: white; +} + +.whiteGradientText { + color: #fff; + text-shadow: 0 0 20px rgba(255, 255, 255, 0.5); +} + +.readyText { + font-size: 1.05rem; + line-height: 1.6; + margin-bottom: 2.5rem; + opacity: 0.9; + max-width: 500px; + margin-left: auto; + margin-right: auto; +} + +.readyBtn { + background: white; + color: #ec4899; + /* Pink text */ + border: none; + padding: 1rem 2.5rem; + border-radius: 50px; + font-weight: 700; + font-size: 1rem; + cursor: pointer; + transition: transform 0.2s, box-shadow 0.2s; + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1); +} + +.readyBtn:hover { + transform: translateY(-2px); + box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2); +} + +.readyImageWrapper { + position: relative; + z-index: 1; + width: 100%; + display: flex; + justify-content: center; + margin-bottom: -50px; + /* Let it bleed out slightly if we want, or just sit at bottom */ +} + +/* Phone Mockup */ +.phoneFrame { + position: relative; + width: 300px; + height: auto; + transform: rotate(-10deg) translateX(-20px); + /* Tilted left like ref */ + transition: transform 0.3s ease; +} + +.phoneFrame:hover { + transform: rotate(0deg) translateX(0); +} + +.phoneScreen { + width: 100%; + height: auto; + border-radius: 30px; + border: 8px solid #1e293b; + /* Dark Frame */ + box-shadow: 0 20px 50px rgba(0, 0, 0, 0.3); + background: white; + /* Fallback */ +} + +.phoneOverlayCard { + position: absolute; + top: 20%; + right: -40px; + background: white; + color: #0f172a; + padding: 1rem 1.5rem; + border-radius: 16px; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15); + display: flex; + flex-direction: column; + gap: 0.5rem; + animation: float 5s ease-in-out infinite reverse; +} + +.overlayItem { + font-size: 0.85rem; + background: #f1f5f9; + padding: 0.5rem; + border-radius: 8px; + font-weight: 500; +} + +/* Desktop Layout */ +@media (min-width: 900px) { + .readyCard { flex-direction: row; - justify-content: center; + align-items: center; + text-align: left; + padding: 4rem 4rem 4rem 6rem; + /* Left padding for image space */ + overflow: visible; + /* Allow image to pop out if needed */ + /* Space for pop out */ + } + + .readyContent { + max-width: 50%; + text-align: left; + order: 2; + /* Text on right */ + margin-bottom: 0; + } + + .readyText { + margin-left: 0; + margin-right: 0; + } + + .readyImageWrapper { + order: 1; + /* Image on left */ + width: 40%; + justify-content: flex-start; + margin-bottom: 0; + position: relative; + left: -20px; + } + + .phoneFrame { + width: 280px; + transform: rotate(-12deg) translateY(20px) scale(1.1); } } \ No newline at end of file diff --git a/app/about/page.tsx b/app/about/page.tsx index a44df34..6cec6f4 100644 --- a/app/about/page.tsx +++ b/app/about/page.tsx @@ -1,4 +1,7 @@ import type { Metadata } from 'next'; +import Image from 'next/image'; +import Link from 'next/link'; +import { ShieldCheck, Users, Zap, Award, CheckCircle2 } from 'lucide-react'; import styles from './about.module.css'; export const metadata: Metadata = { @@ -7,193 +10,210 @@ export const metadata: Metadata = { }; export default function AboutPage() { - const team = [ - { - name: 'Alex Johnson', - role: 'CEO & Founder', - image: 'πŸ‘¨β€πŸ’Ό', - bio: '10+ years in social media marketing', - }, - { - name: 'Sarah Williams', - role: 'CTO', - image: 'πŸ‘©β€πŸ’»', - bio: 'Former lead engineer at major tech companies', - }, - { - name: 'Michael Chen', - role: 'Head of Product', - image: 'πŸ‘¨β€πŸŽ¨', - bio: 'Product design expert with a passion for UX', - }, - { - name: 'Emily Rodriguez', - role: 'Head of Customer Success', - image: 'πŸ‘©β€πŸ’Ό', - bio: 'Dedicated to making customers successful', - }, - ]; - - const values = [ - { - icon: '🎯', - title: 'Customer First', - description: 'Everything we do is centered around making our customers successful.', - }, - { - icon: 'πŸš€', - title: 'Innovation', - description: 'We constantly push boundaries to deliver cutting-edge solutions.', - }, - { - icon: '🀝', - title: 'Collaboration', - description: 'We believe in the power of teamwork and community.', - }, - { - icon: 'πŸ’‘', - title: 'Simplicity', - description: 'Complex problems deserve simple, elegant solutions.', - }, - ]; - - const milestones = [ - { year: '2020', event: 'SocialBuddy founded', icon: 'πŸŽ‰' }, - { year: '2021', event: '1,000 users milestone', icon: '🎯' }, - { year: '2022', event: 'Series A funding', icon: 'πŸ’°' }, - { year: '2023', event: '10,000+ active users', icon: 'πŸš€' }, - { year: '2024', event: 'AI features launched', icon: 'πŸ€–' }, - { year: '2025', event: 'Global expansion', icon: '🌍' }, - ]; - return (
{/* Hero Section */}
-

- About SocialBuddy -

-

- We're on a mission to empower businesses and creators to build meaningful connections - through social mediaβ€”without the complexity. -

+

About Us

+
+ Home / About +
- {/* Story Section */} -
+ {/* 1. Our Story Section (Reference Image 3) */} +
-
-
- πŸ“– + {/* Left Image with Frame */} +
+
+
+ Our Team Story
+ + {/* Right Content */}
-

Our Story

+

OUR STORY

+

redefining the way you manage social media.

- SocialBuddy was born out of frustration. Our founders spent years managing social media - for multiple businesses and experienced firsthand the chaos of juggling multiple platforms, - tools, and spreadsheets. + In the heart of the digital age, SocialBuddy began with a simple idea: to bring exceptional social media management tools directly to your fingertips. With a passion for innovation and a commitment to convenience, we embarked on a mission to redefine the way you grow your online presence.

- We knew there had to be a better way. So in 2020, we set out to build the social media - management platform we wished existedβ€”one that's powerful yet simple, comprehensive yet - intuitive, and accessible to businesses of all sizes. -

-

- Today, SocialBuddy serves over 10,000 businesses and creators worldwide, helping them - save time, increase engagement, and grow their online presence. + From our humble beginnings to becoming a beloved tool for creators worldwide, our journey has been guided by one principle: to deliver results. With a dedication to quality insights and tech innovation, we invite you to join us on this flavorful adventure. Welcome to SocialBuddy, where every click tells a story of passion, growth, and the joy of shared success.

+
- {/* Values Section */} -
+ {/* 2. Why Choose Us Section (Reference Image 1) */} +
-
-

Our Values

+
+

Why choose us?

- The principles that guide everything we do + We provide comprehensive solutions tailored to your unique needs, helping you achieve your goals faster.

-
- {values.map((value, index) => ( -
-
{value.icon}
-

{value.title}

-

{value.description}

+ +
+ {/* Card 1: Purple */} +
+
+
- ))} +

Experienced Professionals

+

Our team consists of industry veterans with years of experience in social media strategies.

+
+ + {/* Card 2: Orange (Yellow/Peach in Ref) */} +
+
+ +
+

Satisfaction Guarantee

+

We are committed to your success and offer a satisfaction guarantee on all our services.

+
+ + {/* Card 3: Pink (Red/Pink in Ref) */} +
+
+ +
+

Affordable Rates

+

Get premium tools and insights at a fraction of the cost of enterprise solutions.

+
+ + {/* Card 4: Green */} +
+
+ +
+

Reliable & Trustworthy

+

Security and data privacy are our top priorities. Your account is safe with us.

+
- {/* Timeline Section */} -
+ {/* 3. Features Loop Section (Reference Image 2) */} +
-
-

Our Journey

-

- Key milestones in our growth story -

-
-
- {milestones.map((milestone, index) => ( -
-
{milestone.icon}
-
-
{milestone.year}
-
{milestone.event}
+
+ {/* Left Content */} +
+

+ Comprehensive Feature Set
+ of a Social Manager App +

+ +
+
+
+ +
+
+

Data Sync and Backup

+

Sync tasks and app settings like system color across multiple devices automatically.

+
+
+ +
+
+ +
+
+

Task Attachments

+

Users can attach files, documents, or links to tasks, providing additional context.

+
+
+ +
+
+ +
+
+

Real-time Analytics

+

Track performance metrics instantly as they happen, giving you the edge to adapt.

+
- ))} -
-
-
+
- {/* Team Section */} -
-
-
-

Meet Our Team

-

- The passionate people behind SocialBuddy -

-
-
- {team.map((member, index) => ( -
-
{member.image}
-

{member.name}

-
{member.role}
-

{member.bio}

+ {/* Right Image/Mockup */} +
+ {/* Mockup Container */} +
+ Feature Dashboard + {/* Floating Cards simulating the ref image */} +
+ Create Task + 17 August, 2023 +
+
+ Total Working Hours + 44:32:00 +
- ))} +
- {/* CTA Section */} -
+ {/* 4. Ready CTA Section (Reference Image Bottom) */} +
-
-

Join Us on Our Journey

-

- Be part of the future of social media management -

-
- - Start Free Trial - - - Contact Us - +
+
+

+ Ready? Let's Start with
SocialBuddy + and Get Awesome Experience +

+

+ Define unique social tactics for your brand. Users can adjust the goals, visuals and audience details to ensure their content workflows are spot on. +

+ +
+
+
+ SocialBuddy App + {/* Floating Overlay Card inside section */} +
+ Task List +
βœ… Social Audit
+
βœ… Content Plan
+
+
diff --git a/app/blog/blog.module.css b/app/blog/blog.module.css deleted file mode 100644 index 2ff32e4..0000000 --- a/app/blog/blog.module.css +++ /dev/null @@ -1,222 +0,0 @@ -.blogPage { - padding-top: 5rem; -} - -.hero { - background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); - padding: 6rem 0 4rem; - text-align: center; - color: white; -} - -.heroContent { - max-width: 800px; - margin: 0 auto; -} - -.heroTitle { - font-size: clamp(2.5rem, 5vw, 4rem); - margin-bottom: 1.5rem; - color: white; -} - -.heroSubtitle { - font-size: 1.25rem; - color: rgba(255, 255, 255, 0.95); -} - -.categoriesSection { - padding: 2rem 0; - background: var(--background-secondary); -} - -.categories { - display: flex; - gap: 1rem; - justify-content: center; - flex-wrap: wrap; -} - -.categoryBtn { - padding: 0.75rem 1.5rem; - background: var(--background); - border: 2px solid transparent; - border-radius: var(--radius-lg); - font-weight: 600; - cursor: pointer; - transition: all 0.3s ease; - color: var(--foreground-secondary); -} - -.categoryBtn:hover, -.categoryBtn.active { - background: var(--gradient-primary); - color: white; - transform: translateY(-2px); -} - -.blogGrid { - display: grid; - grid-template-columns: 1fr; - gap: 2rem; -} - -@media (min-width: 768px) { - .blogGrid { - grid-template-columns: repeat(2, 1fr); - } -} - -@media (min-width: 1024px) { - .blogGrid { - grid-template-columns: repeat(3, 1fr); - } -} - -.blogCard { - background: var(--background); - border-radius: var(--radius-xl); - overflow: hidden; - box-shadow: var(--shadow-md); - transition: all 0.3s ease; - display: flex; - flex-direction: column; -} - -.blogCard:hover { - transform: translateY(-10px); - box-shadow: var(--shadow-xl); -} - -.cardImage { - height: 200px; - background: var(--gradient-primary); - display: flex; - align-items: center; - justify-content: center; -} - -.imageIcon { - font-size: 5rem; - filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.2)); -} - -.cardContent { - padding: 2rem; - flex: 1; - display: flex; - flex-direction: column; -} - -.cardMeta { - display: flex; - gap: 1rem; - margin-bottom: 1rem; - font-size: 0.85rem; -} - -.category { - padding: 0.25rem 0.75rem; - background: var(--gradient-primary); - color: white; - border-radius: var(--radius-md); - font-weight: 600; -} - -.date { - color: var(--foreground-secondary); -} - -.cardTitle { - font-size: 1.5rem; - margin-bottom: 1rem; - font-family: var(--font-display); -} - -.cardTitle a { - color: var(--foreground); - text-decoration: none; - transition: color 0.3s ease; -} - -.cardTitle a:hover { - color: var(--primary); -} - -.cardExcerpt { - color: var(--foreground-secondary); - line-height: 1.6; - margin-bottom: 1.5rem; - flex: 1; -} - -.cardFooter { - display: flex; - justify-content: space-between; - align-items: center; - padding-top: 1rem; - border-top: 1px solid var(--background-secondary); -} - -.readTime { - color: var(--foreground-secondary); - font-size: 0.9rem; -} - -.readMore { - color: var(--primary); - font-weight: 600; - text-decoration: none; - transition: all 0.3s ease; -} - -.readMore:hover { - gap: 0.5rem; -} - -.newsletter { - background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); - padding: 5rem 0; - text-align: center; - color: white; - margin-top: 4rem; -} - -.newsletterContent { - max-width: 600px; - margin: 0 auto; -} - -.newsletterTitle { - font-size: 2.5rem; - margin-bottom: 1rem; - color: white; -} - -.newsletterSubtitle { - font-size: 1.25rem; - margin-bottom: 2rem; - color: rgba(255, 255, 255, 0.95); -} - -.newsletterForm { - display: flex; - gap: 1rem; - max-width: 500px; - margin: 0 auto; - flex-wrap: wrap; -} - -.newsletterInput { - flex: 1; - min-width: 250px; - padding: 1rem 1.5rem; - border: none; - border-radius: var(--radius-lg); - font-size: 1rem; - outline: none; -} - -.newsletterForm .btn { - white-space: nowrap; -} \ No newline at end of file diff --git a/app/blog/page.tsx b/app/blog/page.tsx deleted file mode 100644 index 3e8987d..0000000 --- a/app/blog/page.tsx +++ /dev/null @@ -1,153 +0,0 @@ -import type { Metadata } from 'next'; -import Link from 'next/link'; -import styles from './blog.module.css'; - -export const metadata: Metadata = { - title: 'Blog - SocialBuddy', - description: 'Latest news, tips, and insights about social media management, marketing strategies, and platform updates.', -}; - -export default function BlogPage() { - const blogPosts = [ - { - title: '10 Social Media Trends to Watch in 2025', - excerpt: 'Stay ahead of the curve with these emerging social media trends that will shape the digital landscape.', - category: 'Trends', - date: 'Dec 8, 2025', - readTime: '5 min read', - image: 'πŸ“ˆ', - slug: '10-social-media-trends-2025', - }, - { - title: 'How to Create a Content Calendar That Works', - excerpt: 'Learn the best practices for planning and organizing your social media content effectively.', - category: 'Strategy', - date: 'Dec 5, 2025', - readTime: '8 min read', - image: 'πŸ“…', - slug: 'content-calendar-guide', - }, - { - title: 'Mastering Instagram Reels for Business Growth', - excerpt: 'Discover how to leverage Instagram Reels to increase engagement and reach new audiences.', - category: 'Tutorial', - date: 'Dec 1, 2025', - readTime: '6 min read', - image: '🎬', - slug: 'instagram-reels-guide', - }, - { - title: 'The Ultimate Guide to Social Media Analytics', - excerpt: 'Understand the metrics that matter and how to use data to improve your social media performance.', - category: 'Analytics', - date: 'Nov 28, 2025', - readTime: '10 min read', - image: 'πŸ“Š', - slug: 'social-media-analytics-guide', - }, - { - title: 'AI-Powered Content Creation: Tips and Tools', - excerpt: 'Explore how artificial intelligence is transforming content creation and how you can use it effectively.', - category: 'Technology', - date: 'Nov 25, 2025', - readTime: '7 min read', - image: 'πŸ€–', - slug: 'ai-content-creation', - }, - { - title: 'Building a Strong Brand Voice on Social Media', - excerpt: 'Learn how to develop and maintain a consistent brand voice across all your social platforms.', - category: 'Branding', - date: 'Nov 20, 2025', - readTime: '6 min read', - image: '🎯', - slug: 'brand-voice-guide', - }, - ]; - - const categories = ['All', 'Trends', 'Strategy', 'Tutorial', 'Analytics', 'Technology', 'Branding']; - - return ( -
- {/* Hero Section */} -
-
-
-

- SocialBuddy Blog -

-

- Insights, tips, and strategies to help you succeed in social media marketing -

-
-
-
- - {/* Categories */} -
-
-
- {categories.map((category, idx) => ( - - ))} -
-
-
- - {/* Blog Grid */} -
-
-
- {blogPosts.map((post, idx) => ( -
-
- {post.image} -
-
-
- {post.category} - {post.date} -
-

- {post.title} -

-

{post.excerpt}

-
- ⏱️ {post.readTime} - - Read More β†’ - -
-
-
- ))} -
-
-
- - {/* Newsletter Section */} -
-
-
-

Stay Updated

-

- Get the latest social media tips and SocialBuddy updates delivered to your inbox -

-
- - -
-
-
-
-
- ); -} diff --git a/app/careers/careers.module.css b/app/careers/careers.module.css new file mode 100644 index 0000000..e3d668e --- /dev/null +++ b/app/careers/careers.module.css @@ -0,0 +1,395 @@ +/* Careers Page Styles */ + +.careersPage { + background: var(--background); +} + +/* Hero Section */ +.hero { + background: url('/hero-inner-bg.png') no-repeat center center; + background-size: cover; + padding: 8rem 0 8rem; + /* Taller padding */ + position: relative; + border-bottom: 1px solid var(--border-color); + text-align: center; + color: white; + /* Text white on BG */ +} + +.hero::before { + content: ''; + position: absolute; + inset: 0; + background: rgba(0, 0, 0, 0.6); + /* Dark Overlay */ + z-index: 0; +} + +.heroContent { + position: relative; + z-index: 1; +} + +.heroTitle { + font-size: clamp(2.5rem, 5vw, 4rem); + font-weight: 800; + margin-bottom: 1rem; + color: white; +} + +.subTitle { + color: #0072b1; + /* Dark Blue */ + font-weight: 700; + font-size: 0.875rem; + margin-bottom: 1rem; + display: inline-block; + text-transform: uppercase; + letter-spacing: 2px; +} + +.heroSubtitle { + color: rgba(255, 255, 255, 0.9); + font-size: 1.1rem; + max-width: 600px; + margin: 0 auto; +} + +.breadcrumb { + color: rgba(255, 255, 255, 0.8); + font-size: 0.9rem; + margin-top: 1.5rem; + display: flex; + align-items: center; + justify-content: center; + gap: 0.5rem; +} + +.breadcrumb a { + color: white; + text-decoration: none; + font-weight: 500; +} + +.breadcrumb span { + opacity: 0.6; +} + +.breadcrumb .active { + color: var(--primary); + /* Pink or Blue highlighting current page? or just Theme Color */ + color: #ec4899; +} + +/* 1. What We Offer (Left Content, Right 3 Images) */ +.offerSection { + padding: 4rem 0; + background: white; +} + +.offerContainer { + display: grid; + grid-template-columns: 1fr; + gap: 4rem; + align-items: center; +} + +.offerContent { + text-align: left; +} + +.offerContent h2 { + font-size: 2.5rem; + font-weight: 800; + color: var(--foreground); + margin-bottom: 1.5rem; +} + +.offerContent p { + color: var(--text-secondary); + font-size: 1rem; + line-height: 1.7; + margin-bottom: 2rem; +} + +.offerImageGrid { + display: grid; + grid-template-columns: repeat(2, 1fr); + grid-template-rows: repeat(2, 200px); + gap: 1.5rem; +} + +.gridImg { + border-radius: 20px; + object-fit: cover; + width: 100%; + height: 100%; +} + +.img1 { + grid-row: 1 / 3; + /* Tall image on left */ + height: 100%; +} + +.img2 { + grid-column: 2; + grid-row: 1; +} + +.img3 { + grid-column: 2; + grid-row: 2; +} + + +/* 2. Stats Section (BG Image + Overlay) */ +.statsSection { + background: url('/hero-slide-1.png') no-repeat center center; + background-size: cover; + background-attachment: fixed; + /* Parallax effect */ + padding: 4rem 0; + color: white; + position: relative; + overflow: hidden; +} + +.statsSection::before { + content: ''; + position: absolute; + inset: 0; + background: rgba(37, 99, 235, 0.85); + /* Blue Overlay */ + z-index: 0; +} + +.statsGrid { + position: relative; + z-index: 1; + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 2rem; + text-align: center; +} + +.statItem { + position: relative; +} + +.statIconWrapper { + font-size: 2.5rem; + margin-bottom: 1rem; + color: #f9cd35; + /* Yellow Icon */ +} + +.statNumber { + font-size: 3.5rem; + font-weight: 800; + margin-bottom: 0.5rem; + line-height: 1; +} + +.statLabel { + font-size: 1.1rem; + font-weight: 600; + opacity: 0.9; + text-transform: uppercase; + letter-spacing: 1px; +} + + +/* 3. Hiring Process (Timeline) */ +.hiringSection { + padding: 4rem 0; + background: white; +} + +.hiringGrid { + display: grid; + grid-template-columns: 1fr; + gap: 5rem; + align-items: start; +} + +/* Hiring Image Left */ +.hiringImageWrapper { + position: sticky; + top: 100px; +} + +.hiringImg { + border-radius: 24px; + width: 100%; + height: auto; + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1); +} + +/* Hiring Process Content Right */ +.processList { + position: relative; + padding-left: 0; + display: flex; + flex-direction: column; + gap: 3rem; +} + +.processList::before { + content: ''; + position: absolute; + left: 25px; + /* Center of numbering */ + top: 170px; + /* Start below the first number to avoid line going above */ + bottom: 55px; + /* End before last number */ + width: 2px; + background: #e2e8f0; + z-index: 0; +} + +.processItem { + position: relative; + z-index: 1; + display: flex; + gap: 2rem; +} + +.processNumber { + width: 50px; + height: 50px; + background: white; + color: #2563eb; + border: 2px solid #2563eb; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-weight: 700; + font-size: 1.25rem; + flex-shrink: 0; + z-index: 1; +} + +.processContent h4 { + font-size: 1.25rem; + font-weight: 700; + color: #1e293b; + margin-bottom: 0.5rem; +} + +.processContent p { + color: var(--text-secondary); + line-height: 1.6; +} + + +/* 4. Benefits / Ultimate Experience (Vertical Connected Cards) */ +.benefitsSection { + padding: 4rem 0; + background: var(--background-secondary); + overflow: hidden; +} + +.benefitsGrid { + display: grid; + grid-template-columns: 1fr; + gap: 4rem; + align-items: flex-start; +} + +.benefitsContent h2 { + font-size: 2.5rem; + font-weight: 800; + margin-bottom: 1.5rem; + color: var(--foreground); +} + +.benefitsText { + font-size: 1.05rem; + color: var(--text-secondary); + line-height: 1.7; + margin-bottom: 2rem; +} + +/* Right Side: Connected Cards */ +.connectedCards { + position: relative; + display: flex; + flex-direction: column; + gap: 2rem; + padding-left: 2rem; + /* Indent slightly if needed */ +} + +/* Dotted Line connecting the cards - REMOVED per request */ +/* .connectedCards::before { } */ + +.connCard { + position: relative; + z-index: 1; + background: white; + padding: 1.5rem 2rem; + border-radius: 16px; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05); + /* Flat style */ + display: flex; + gap: 1.5rem; + align-items: center; + transition: transform 0.3s ease; +} + +.connCard:hover { + transform: translateX(10px); + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1); +} + +.connIcon { + width: 60px; + height: 60px; + background: #f1f5f9; + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + font-size: 1.5rem; + color: #0072b1; + flex-shrink: 0; + border: 4px solid white; + /* Gap for line */ + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); +} + +.connContent h4 { + font-size: 1.1rem; + font-weight: 700; + margin-bottom: 0.25rem; + color: #1e293b; +} + +.connContent p { + font-size: 0.9rem; + color: #64748b; + margin: 0; +} + +/* Responsive */ +@media (min-width: 900px) { + .offerContainer { + grid-template-columns: 1fr 1fr; + } + + .statsGrid { + grid-template-columns: repeat(4, 1fr); + } + + .hiringGrid { + grid-template-columns: 1fr 1fr; + } + + .benefitsGrid { + grid-template-columns: 1fr 1fr; + } +} \ No newline at end of file diff --git a/app/careers/page.tsx b/app/careers/page.tsx new file mode 100644 index 0000000..de95ec1 --- /dev/null +++ b/app/careers/page.tsx @@ -0,0 +1,211 @@ +import type { Metadata } from 'next'; +import Image from 'next/image'; +import Link from 'next/link'; +import { + Users, Smile, MapPin, Award, + Zap, Briefcase, Clock, Coffee, Layout, MousePointerClick, Gem +} from 'lucide-react'; +import styles from './careers.module.css'; + +export const metadata: Metadata = { + title: 'Careers - Join SocialBuddy', + description: 'Join our team and help shape the future of social media management.', +}; + +export default function CareersPage() { + return ( +
+ {/* Hero Section */} +
+
+
+

Careers

+ +
+ Home / Careers +
+
+
+
+ + {/* 1. What We Offer (Left Content, Right 3 Images) */} +
+
+
+ {/* Left Content */} +
+ What We Do +

We Are Building The Future of Social Media

+

+ At SocialBuddy, we don't just build tools; we build connections. Our platform empowers over 10,000 businesses to reach their potential audiences effectively. +

+

+ We work with cutting-edge technologies like AI and Machine Learning to solve complex scale problems. If you love challenges and innovation, this is the place for you. +

+ +
+ + {/* Right Image Grid (3 Images) */} +
+
+ Team Collaboration +
+
+ Our Workspace +
+
+ Meeting +
+
+
+
+
+ + {/* 2. Stats Section (BG + Overlay) */} +
+
+
+
+
+
54
+
Happy Team
+
+
+
+
340
+
Completed Projects
+
+
+
+
15
+
Countries
+
+
+
+
25
+
Awards Won
+
+
+
+
+ + {/* 3. Hiring Process (Timeline) */} +
+
+
+ {/* Left: Image */} +
+ Hiring Process +
+ + {/* Right: Process List */} +
+
+ Hiring Process +

+ Join in 3 Simple Steps +

+
+ +
+
01
+
+

Provide details

+

Submit your application with your resume and portfolio. Tell us about your journey.

+
+
+
+
02
+
+

Schedule Interview

+

We'll schedule a call to discuss your skills, experience, and cultural fit.

+
+
+
+
03
+
+

Get Hired

+

Receive an offer and join our amazing team. Welcome aboard!

+
+
+
+
+
+
+ + {/* 4. Ultimate Experience (Dotted Cards) */} +
+
+
+ {/* Left Content */} +
+ Why Choose Us? +

Ultimate Experience for
Your Career

+

+ Completely empower your career journey with robust opportunities. We enable front-end and back-end developers to thrive in an environment of innovation. +

+ +
+ + {/* Right Connected Cards */} +
+
+
+ +
+
+

Future Technology

+

Work with the latest modern stack.

+
+
+ +
+
+ +
+
+

Drag & Drop Builder

+

Intuitive tools for every task.

+
+
+ +
+
+ +
+
+

Most Eco Friendly

+

Sustainable practices at core.

+
+
+
+
+
+
+
+ ); +} diff --git a/app/channels/[slug]/channel-page.module.css b/app/channels/[slug]/channel-page.module.css new file mode 100644 index 0000000..b83c49c --- /dev/null +++ b/app/channels/[slug]/channel-page.module.css @@ -0,0 +1,633 @@ +/* Page Wrapper */ +.page { + animation: fadeIn 0.6s ease-out; + background-color: var(--background); + color: var(--text-primary); +} + +.container { + max-width: 1280px; + margin: 0 auto; + padding: 0 1.5rem; +} + +/* --- Hero Section (Ref: Inner Banner from About) --- */ +.hero { + padding: 8rem 0 8rem; + text-align: center; + background-image: url('/hero-inner-bg.png'); + /* Use same image as About */ + background-size: cover; + background-position: center; + background-repeat: no-repeat; + position: relative; + overflow: hidden; +} + +.hero::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.3); + /* Overlay for text readability */ +} + +.heroContent { + position: relative; + z-index: 1; + max-width: 900px; + margin: 0 auto; +} + +.heroTitle { + font-size: clamp(2.5rem, 6vw, 4rem); + font-weight: 800; + margin-bottom: 1rem; + line-height: 1.2; + color: #fff; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); +} + +.breadcrumbs { + font-size: 1rem; + color: rgba(255, 255, 255, 0.9); + display: flex; + align-items: center; + justify-content: center; + gap: 0.5rem; +} + +.breadcrumbs a { + color: rgba(255, 255, 255, 0.9); + text-decoration: none; + transition: color 0.3s ease; +} + +.breadcrumbs a:hover { + color: #fff; +} + +.breadcrumbs span { + color: #fff; + font-weight: 600; +} + +/* --- Section 1: About (Icons) --- */ +.aboutSection { + padding: 4rem 0; + background: #fff; +} + +.aboutGrid { + display: grid; + grid-template-columns: 1fr; + gap: 4rem; + align-items: center; +} + +@media (min-width: 992px) { + .aboutGrid { + grid-template-columns: 1fr 1fr; + } +} + +.aboutImages { + position: relative; + min-height: 500px; +} + +.aboutMainImgWrapper { + position: absolute; + top: 0; + left: 0; + width: 80%; + height: 85%; + z-index: 1; + border-radius: 12px; + overflow: hidden; +} + +.aboutSubImgWrapper { + position: absolute; + bottom: 0; + right: 0; + width: 55%; + height: 50%; + z-index: 2; + border: 8px solid #fff; + border-radius: 12px; + overflow: hidden; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); +} + +.aboutContent { + padding-left: 1rem; +} + +.sectionSubtitle { + font-size: 0.875rem; + text-transform: uppercase; + letter-spacing: 2px; + color: var(--primary); + margin-bottom: 1rem; + display: block; + font-weight: 600; +} + +.sectionTitle { + font-size: clamp(2rem, 4vw, 3rem); + line-height: 1.2; + margin-bottom: 1.5rem; + color: var(--text-primary); + font-weight: 700; +} + +.aboutDescription { + color: var(--text-secondary); + margin-bottom: 2rem; + line-height: 1.7; + font-size: 1.1rem; +} + +.aboutPoints { + display: grid; + grid-template-columns: 1fr; + gap: 1.5rem; + margin-bottom: 2.5rem; +} + +@media (min-width: 640px) { + .aboutPoints { + grid-template-columns: 1fr 1fr; + } +} + +.aboutPointItem { + display: flex; + align-items: center; + gap: 1rem; +} + +.aboutPointIcon svg { + width: 28px; + height: 28px; + color: var(--primary); +} + +.aboutPointText { + font-weight: 600; + color: var(--text-primary); +} + +/* --- Section 2: Benefits --- */ +.benefitsSection { + padding: 4rem 0; + background: var(--background-secondary); +} + +.benefitsContainer { + display: grid; + grid-template-columns: 1fr; + gap: 4rem; + align-items: center; +} + +@media (min-width: 992px) { + .benefitsContainer { + grid-template-columns: 1fr 1.5fr; + } +} + +.benefitsContent {} + +.benefitsGrid { + display: grid; + grid-template-columns: 1fr; + gap: 1.5rem; +} + +@media (min-width: 640px) { + .benefitsGrid { + grid-template-columns: repeat(2, 1fr); + } +} + +.benefitCard { + background: #fff; + padding: 2rem; + border-radius: 16px; + box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); + transition: all 0.3s ease; + text-align: center; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} + +.benefitCard:hover { + background: var(--primary); + transform: translateY(-5px); +} + +.benefitCard:hover * { + color: #fff !important; +} + +.benefitIcon { + font-size: 2.5rem; + margin-bottom: 1rem; + color: var(--primary); + transition: color 0.3s ease; +} + +.benefitCardTitle { + font-size: 1.25rem; + font-weight: 700; + margin-bottom: 0.5rem; + color: var(--text-primary); + transition: color 0.3s ease; +} + +.benefitCardDesc { + font-size: 0.9rem; + color: var(--text-secondary); + transition: color 0.3s ease; +} + +/* --- Section 3: Testimonial (Update: Left Images Grid, Right Slider) --- */ +.testimonialSection { + padding: 4rem 0; + background: #fff; + overflow: hidden; +} + +.testimonialGrid { + display: grid; + grid-template-columns: 1fr; + gap: 4rem; + align-items: center; +} + +@media (min-width: 992px) { + .testimonialGrid { + grid-template-columns: 0.8fr 1.2fr; + /* Images < Slider */ + } +} + +/* Left side: 2 Image Grid */ +.testimonialImages { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 1rem; +} + +.testImgWrapper { + border-radius: 12px; + overflow: hidden; + height: 300px; + background: #f0f0f0; +} + +.testImgWrapper:nth-child(2) { + margin-top: 3rem; + /* Stagger effect */ +} + +/* Right side: Slider Styles (Used by Client Component) */ +.testimonialSliderContainer { + position: relative; + padding: 2rem; +} + +.testSliderContent { + min-height: 300px; + display: flex; + flex-direction: column; + justify-content: center; + animation: fadeIn 0.5s ease-in-out; +} + +.testStars { + display: flex; + gap: 4px; + margin-bottom: 1.5rem; +} + +.testQuoteFade { + font-size: clamp(1.25rem, 2.5vw, 1.75rem); + font-weight: 500; + line-height: 1.4; + color: var(--text-primary); + margin-bottom: 2rem; + font-style: italic; +} + +.testAuthorBlock { + display: flex; + align-items: center; + gap: 1rem; +} + +.testAuthorAvatar { + width: 60px; + height: 60px; + border-radius: 50%; + object-fit: cover; +} + +.testAuthorInfo h4 { + margin: 0; + font-size: 1.1rem; + font-weight: 700; +} + +.testAuthorInfo span { + font-size: 0.9rem; + color: var(--text-secondary); +} + +.sliderDots { + display: flex; + gap: 0.5rem; + margin-top: 2rem; +} + +.dot { + width: 10px; + height: 10px; + border-radius: 50%; + background: #E2E8F0; + border: none; + cursor: pointer; + transition: background 0.3s; +} + +.activeDot { + background: var(--primary); +} + + +/* --- Section 4: Blogs --- */ +.resourcesSection { + padding: 4rem 0; + background: var(--background-secondary); +} + +.blogGrid { + display: grid; + grid-template-columns: 1fr; + gap: 2rem; + margin-top: 3rem; +} + +@media (min-width: 768px) { + .blogGrid { + grid-template-columns: repeat(3, 1fr); + } +} + +.blogCard { + background: #fff; + border-radius: 12px; + overflow: hidden; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05); + transition: transform 0.3s ease; +} + +.blogCard:hover { + transform: translateY(-5px); +} + +.blogImageWrapper { + height: 200px; + overflow: hidden; +} + +.blogImage { + width: 100%; + height: 100%; + object-fit: cover; +} + +.blogContent { + padding: 1.5rem; +} + +.blogCategory { + color: var(--primary); + font-size: 0.8rem; + font-weight: 600; + text-transform: uppercase; + margin-bottom: 0.5rem; + display: block; +} + +.blogTitle { + font-size: 1.25rem; + margin-bottom: 0.75rem; + line-height: 1.4; +} + +.blogExcerpt { + font-size: 0.95rem; + color: var(--text-secondary); + margin-bottom: 1rem; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + line-clamp: 2; +} + +.readMoreLink { + color: var(--primary); + font-weight: 600; + display: inline-flex; + align-items: center; + gap: 0.5rem; +} + +/* --- Section 5: FAQ --- */ +.faqSection { + padding: 4rem 0; + background: #fff; +} + +.faqGrid { + display: grid; + grid-template-columns: 1fr; + gap: 4rem; + align-items: flex-start; +} + +@media (min-width: 992px) { + .faqGrid { + grid-template-columns: 1fr 1fr; + } +} + +.faqImageWrapper { + border-radius: 20px; + overflow: hidden; +} + +.accordionItem { + border-bottom: 1px solid var(--border-color); + margin-bottom: 1rem; +} + +.accordionTrigger { + width: 100%; + display: flex; + justify-content: space-between; + align-items: center; + padding: 1.5rem 0; + background: none; + border: none; + text-align: left; + cursor: pointer; + font-size: 1.1rem; + font-weight: 600; + color: var(--text-primary); +} + +.accordionContentOpen { + animation: slideDown 0.3s ease-out; +} + +@keyframes slideDown { + from { + opacity: 0; + transform: translateY(-10px); + } + + to { + opacity: 1; + transform: translateY(0); + } +} + +.accordionIcon { + font-size: 1.5rem; + font-weight: 300; +} + + +/* --- Section 6: CTA (Full Width Floating) --- */ +/* --- Section 6: CTA (Full Width Floating) --- */ +.ctaFullWidth { + position: relative; + padding: 4rem 0; + background-color: #F8FAFC; + /* Light fallback */ + background-image: url('/images/cta-bg-light.png'); + /* User requested image */ + background-size: cover; + background-position: center; + background-repeat: no-repeat; + overflow: hidden; + color: var(--text-primary); + text-align: center; + display: flex; + align-items: center; + justify-content: center; + border-top: 1px solid rgba(0, 0, 0, 0.05); +} + +.ctaContentCentered { + position: relative; + z-index: 10; + max-width: 700px; + padding: 0 1.5rem; +} + +.ctaFullTitle { + font-size: clamp(2.5rem, 5vw, 4rem); + font-weight: 800; + margin-bottom: 1.5rem; + line-height: 1.1; + color: var(--text-primary); +} + +.ctaFullText { + font-size: 1.25rem; + color: var(--text-secondary); + margin-bottom: 2.5rem; +} + +.ctaFullBtn { + background: var(--primary); + /* Primary purple/blue */ + color: white; + padding: 1rem 3rem; + border-radius: 50px; + font-size: 1.1rem; + font-weight: 700; + transition: transform 0.2s; + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1); + display: inline-block; +} + +.ctaFullBtn:hover { + transform: translateY(-3px) scale(1.05); + background: var(--primary-dark, #5b21b6); +} + +/* Floating Elements */ +.floatElem { + position: absolute; + opacity: 0.15; + pointer-events: none; +} + +.floatLeft { + left: 5%; + top: 20%; + width: 150px; + animation: float 6s ease-in-out infinite; +} + +.floatRight { + right: 5%; + bottom: 20%; + width: 180px; + animation: float 8s ease-in-out infinite reverse; +} + +@keyframes float { + 0% { + transform: translateY(0px); + } + + 50% { + transform: translateY(-20px); + } + + 100% { + transform: translateY(0px); + } +} + +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(20px); + } + + to { + opacity: 1; + transform: translateY(0); + } +} + +.img { + display: block; + width: 100%; + height: 100%; + object-fit: cover; +} \ No newline at end of file diff --git a/app/channels/[slug]/page.tsx b/app/channels/[slug]/page.tsx new file mode 100644 index 0000000..9872361 --- /dev/null +++ b/app/channels/[slug]/page.tsx @@ -0,0 +1,250 @@ +import { channels } from '@/data/channels'; +import { notFound } from 'next/navigation'; +import styles from './channel-page.module.css'; +import SafeImage from '@/components/SafeImage'; +import Link from 'next/link'; +import TestimonialSlider from '@/components/TestimonialSlider'; +import { + Calendar, Eye, BarChart, Trophy, Inbox, ShieldCheck, + Palette, Layout, Smartphone, Zap, PenTool, Repeat, + CheckCircle +} from 'lucide-react'; + +// Define Props interface +interface PageProps { + params: Promise<{ slug: string }>; +} + +export async function generateStaticParams() { + return channels.map((channel) => ({ + slug: channel.slug, + })); +} + +export async function generateMetadata(props: PageProps) { + const params = await props.params; + const channel = channels.find((c) => c.slug === params.slug); + if (!channel) return { title: 'Channel Not Found' }; + + return { + title: `${channel.title} Management Tool - SocialBuddy`, + description: channel.description, + }; +} + +// Icon mapping helper +const getIcon = (iconName: string) => { + switch (iconName) { + case 'Calendar': return ; + case 'Eye': return ; + case 'BarChart': return ; + case 'Trophy': return ; + case 'Inbox': return ; + case 'ShieldCheck': return ; + case 'Palette': return ; + case 'Layout': return ; + case 'Smartphone': return ; + case 'Zap': return ; + case 'PenTool': return ; + case 'Repeat': return ; + case 'CheckCircle': return ; + default: return ; + } +}; + +export default async function ChannelPage(props: PageProps) { + const params = await props.params; + + // Ensure params exists + if (!params?.slug) { + notFound(); + } + + const channel = channels.find((c) => c.slug === params.slug); + + if (!channel) { + notFound(); + } + + return ( +
+ {/* 1. Hero Section */} +
+
+
+

{channel.title}

+
+ Home / Channels / {channel.title} +
+
+
+
+ + {/* 2. About Section */} + {channel.about && ( +
+
+
+
+
+ +
+
+ +
+
+
+ {channel.about.subTitle} +

{channel.about.title}

+

{channel.about.description}

+
+ {channel.about.bulletPoints.map((point, i) => ( +
+ + {getIcon(point.icon)} + + {point.text} +
+ ))} +
+ Start Free Trial +
+
+
+
+ )} + + {/* 3. Benefits / Why Choose */} +
+
+
+
+ Why SocialBuddy for {channel.title} +

Tools Built for Growth

+

+ We've built specific tools to help you succeed on {channel.title}. + Stop guessing and start growing with data-driven insights. +

+ See All Features +
+
+ {channel.benefits.slice(0, 4).map((benefit, index) => ( +
+
+ {getIcon(benefit.icon)} +
+

{benefit.title}

+

{benefit.description}

+
+ ))} +
+
+
+
+ + {/* 4. Testimonials */} + {channel.testimonials && channel.testimonials.length > 0 && ( +
+
+
+
+
+ +
+
+ +
+
+
+ Testimonials +

Loved by {channel.title} Creators

+ +
+
+
+
+ )} + + {/* 5. FAQ */} + {channel.faqs && channel.faqs.length > 0 && ( +
+
+
+
+ FAQ +

Frequently Asked Questions about {channel.title}

+
+ {channel.faqs.map((faq, index) => ( +
+ + {faq.question} + + + +
+

{faq.answer}

+
+
+ ))} +
+
+
+ +
+
+
+
+ )} + + {/* 6. CTA (Full Width Floating) */} +
+ + + +
+

Ready to Master {channel.title}?

+

+ Join thousands of marketers who are growing their {channel.title} presence with SocialBuddy. +

+ + Start Free Trial + +
+
+
+ ); +} diff --git a/app/channels/channels.module.css b/app/channels/channels.module.css new file mode 100644 index 0000000..bca7406 --- /dev/null +++ b/app/channels/channels.module.css @@ -0,0 +1,283 @@ +/* Channels Page Styles */ + +.channelsPage { + background: var(--background); +} + +/* 1. About/Intro Section (Ref Image 1) */ +.introSection { + padding: 4rem 0; + background: white; + overflow: hidden; +} + +.introContainer { + display: grid; + grid-template-columns: 1fr; + gap: 4rem; + align-items: center; +} + +/* Left Image Structure */ +.introImageWrapper { + position: relative; + padding: 2rem; + display: flex; + justify-content: center; +} + +.introFrame { + position: absolute; + left: 20px; + bottom: 20px; + width: 90%; + height: 95%; + border: 4px solid #ec4899; + /* Pink Border */ + border-radius: 20px; + z-index: 0; + transform: none; + /* Reset rotation */ + margin: 0; +} + +.introImgContainer { + position: relative; + z-index: 1; + border-radius: 20px; + overflow: hidden; + transform: translate(20px, -20px); + /* Move image up-right relative to frame */ + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1); + width: 100%; + max-width: 450px; +} + +.introImg { + width: 100%; + height: auto; + display: block; + object-fit: cover; +} + +/* Right Content */ +.introContent h2 { + font-size: 2.5rem; + font-weight: 800; + margin-bottom: 1.5rem; + background: var(--gradient-primary); + /* reusing variable or hardcoded gradient */ + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + line-height: 1.2; +} + +.introContent p { + color: var(--text-secondary); + font-size: 1.05rem; + line-height: 1.7; + margin-bottom: 2rem; +} + +.learnMoreBtn { + background: #2563eb; + color: white; + border: none; + padding: 1rem 2rem; + border-radius: 50px; + font-weight: 600; + cursor: pointer; + transition: all 0.3s; +} + +.learnMoreBtn:hover { + background: #1d4ed8; + transform: translateY(-2px); +} + + +/* 2. Process/Learning Section (Ref Image 2 - Grid of 4) */ +.processSection { + padding: 4rem 0; + background: #F8FAFC; + /* Light gray bg */ + text-align: center; +} + +.processHeader { + max-width: 700px; + margin: 0 auto 4rem; +} + +.processHeader h2 { + font-size: 2.5rem; + font-weight: 800; + margin-bottom: 1rem; + color: var(--foreground); +} + +.processGrid { + display: grid; + grid-template-columns: 1fr; + gap: 3rem; +} + +.processCard { + display: flex; + flex-direction: column; + align-items: center; + gap: 1rem; +} + +.processIcon { + width: 60px; + height: 60px; + background: white; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + color: #2563eb; + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05); + margin-bottom: 0.5rem; + font-size: 1.25rem; +} + +.processCard h3 { + font-size: 1.1rem; + font-weight: 700; + color: var(--foreground); +} + +.processCard p { + font-size: 0.9rem; + color: var(--text-secondary); + line-height: 1.5; +} + + +/* 3. Testimonial Section (Left Slider, Right Image) */ +.testimonialSection { + padding: 4rem 0; + background: white; +} + +.testimonialGrid { + display: grid; + grid-template-columns: 1fr; + gap: 5rem; + align-items: center; +} + +/* Right Image */ +.testimonialImageWrapper { + position: relative; + order: -1; + /* Mobile first: image top? Or default to bottom. Lets check desktop media query */ +} + +.testimonialImg { + border-radius: 20px; + box-shadow: 0 20px 40px rgba(37, 99, 235, 0.15); + width: 100%; + height: auto; +} + +/* Left Content Slider */ +.testimonialContent { + position: relative; + overflow: hidden; + padding-bottom: 3rem; + /* Space for dots */ +} + +.testimonialSlide { + display: none; + animation: fadeIn 0.5s ease-in-out; +} + +.testimonialSlide.active { + display: block; +} + +.quoteIcon { + font-size: 3rem; + color: #ec4899; + opacity: 0.2; + margin-bottom: 1rem; +} + +.quoteText { + font-size: 1.5rem; + font-weight: 600; + line-height: 1.4; + color: var(--foreground); + margin-bottom: 2rem; + font-style: italic; +} + +.author h4 { + font-size: 1.1rem; + font-weight: 700; + color: #2563eb; +} + +.author p { + font-size: 0.9rem; + color: var(--text-secondary); +} + +/* Dots */ +.dots { + display: flex; + gap: 0.5rem; + margin-top: 2rem; +} + +.dot { + width: 12px; + height: 12px; + border-radius: 50%; + background: #cbd5e1; + cursor: pointer; + transition: background 0.3s; +} + +.dot.active { + background: #2563eb; + width: 24px; + border-radius: 10px; +} + +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(10px); + } + + to { + opacity: 1; + transform: translateY(0); + } +} + +/* Responsive */ +@media (min-width: 900px) { + .introContainer { + grid-template-columns: 1fr 1fr; + } + + .processGrid { + grid-template-columns: repeat(4, 1fr); + } + + .testimonialGrid { + grid-template-columns: 1fr 1fr; + } + + .testimonialImageWrapper { + order: -1; + /* Image on Left */ + } +} \ No newline at end of file diff --git a/app/channels/page.tsx b/app/channels/page.tsx new file mode 100644 index 0000000..b101fa1 --- /dev/null +++ b/app/channels/page.tsx @@ -0,0 +1,163 @@ +'use client'; + +import { useState, useEffect } from 'react'; +import Image from 'next/image'; +import { + Globe, Layers, Zap, BarChart, CheckCircle2, + ArrowRight, MessageSquare, Heart +} from 'lucide-react'; +import Pricing from '@/components/Pricing'; +import FAQ from '@/components/FAQ'; +import styles from './channels.module.css'; + +export default function ChannelsPage() { + const [currentSlide, setCurrentSlide] = useState(0); + + const testimonials = [ + { + quote: "SocialBuddy revolutionized how we handle our multi-channel strategy. It's simply brilliant.", + author: "Sarah Jenkins", + role: "Marketing Director, TechFlow" + }, + { + quote: "The analytics across all channels provided insights we never had before. Highly recommended.", + author: "Mike Ross", + role: "CEO, Pearson Specter" + }, + { + quote: "Managing 5 different platforms used to be a nightmare. Now it's our competitive advantage.", + author: "Jessica Pearson", + role: "Managing Partner, PSB" + } + ]; + + useEffect(() => { + const timer = setInterval(() => { + setCurrentSlide((prev) => (prev + 1) % testimonials.length); + }, 5000); + return () => clearInterval(timer); + }, [testimonials.length]); + + return ( +
+ + {/* 1. About/Intro Section (Ref Image 1: Left Image Frame, Right Content) */} +
+
+
+ {/* Left Image with Frame */} +
+
+
+ Channel Management +
+
+ + {/* Right Content */} +
+

Master Every Channel with
Precision

+

+ Whether it's the professional network of LinkedIn, the visual appeal of Instagram, or the fast-paced world of Twitter, SocialBuddy optimizes your presence everywhere. +

+

+ Our unified platform ensures your brand voice remains consistent while adapting to the unique nuances of each platform. Connect, engage, and grow without the chaos. +

+ +
+
+
+
+ + {/* 2. Process/Learning Section (Ref Image 2: Grid of 4 Icons) */} +
+
+
+

Learning Your Channels

+

+ Understand the core pillars of effective multi-channel management. +

+
+ +
+
+
+

Global Reach

+

Expand your audience across borders with localized content strategies.

+
+
+
+

Content Sync

+

Seamlessly synchronize posts while customizing for each platform's format.

+
+
+
+

Fast Execution

+

Schedule and deploy campaigns in minutes, not hours.

+
+
+
+

Deep Analytics

+

Get granular data on performance for every single channel.

+
+
+
+
+ + {/* 3. Testimonial Section (Left Slider, Right Image) */} +
+
+
+ {/* Left Content Slider */} +
+ {testimonials.map((t, index) => ( +
+
❝
+

{t.quote}

+
+

{t.author}

+

{t.role}

+
+
+ ))} + + {/* Dots */} +
+ {testimonials.map((_, index) => ( +
setCurrentSlide(index)} + /> + ))} +
+
+ + {/* Right Image */} +
+ Success Story +
+
+
+
+ + {/* Reused Components */} + + +
+ ); +} diff --git a/app/contact/contact.module.css b/app/contact/contact.module.css index 38cdf27..dc6178b 100644 --- a/app/contact/contact.module.css +++ b/app/contact/contact.module.css @@ -3,9 +3,12 @@ } .hero { - padding: 8rem 0 4rem; + padding: 8rem 0 8rem; text-align: center; - background: linear-gradient(135deg, rgba(236, 72, 153, 0.05), rgba(59, 130, 246, 0.05)); + background-image: url('/hero-inner-bg.png'); + background-size: cover; + background-position: center; + background-repeat: no-repeat; position: relative; overflow: hidden; } @@ -17,7 +20,7 @@ left: 0; right: 0; bottom: 0; - background: radial-gradient(circle at 50% 50%, rgba(236, 72, 153, 0.1) 0%, transparent 70%); + background: rgba(0, 0, 0, 0.3); } .heroContent { @@ -28,16 +31,33 @@ .heroTitle { font-size: clamp(2.5rem, 6vw, 4rem); font-weight: 800; - margin-bottom: 1.5rem; + margin-bottom: 1rem; line-height: 1.2; + color: #fff; } -.heroSubtitle { - font-size: 1.25rem; - color: var(--text-secondary); - max-width: 700px; - margin: 0 auto; - line-height: 1.7; +.breadcrumb { + font-size: 1rem; + color: rgba(255, 255, 255, 0.9); + display: flex; + align-items: center; + justify-content: center; + gap: 0.5rem; +} + +.breadcrumb a { + color: rgba(255, 255, 255, 0.9); + text-decoration: none; + transition: color 0.3s ease; +} + +.breadcrumb a:hover { + color: #fff; +} + +.breadcrumb span { + color: #fff; + font-weight: 600; } .contactGrid { diff --git a/app/contact/page.tsx b/app/contact/page.tsx index c8078ab..e2d2112 100644 --- a/app/contact/page.tsx +++ b/app/contact/page.tsx @@ -60,13 +60,10 @@ export default function ContactPage() {
-

- Get in Touch -

-

- Have a question or need help? We're here for you 24/7. - Reach out and let's start a conversation. -

+

Contact Us

+
+ Home / Contact +
diff --git a/app/docs/docs.module.css b/app/docs/docs.module.css deleted file mode 100644 index 028774a..0000000 --- a/app/docs/docs.module.css +++ /dev/null @@ -1,176 +0,0 @@ -.docsPage { - padding-top: 5rem; -} - -.hero { - background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); - padding: 6rem 0 4rem; - text-align: center; - color: white; -} - -.heroContent { - max-width: 800px; - margin: 0 auto; -} - -.heroTitle { - font-size: clamp(2.5rem, 5vw, 4rem); - margin-bottom: 1.5rem; - color: white; -} - -.heroSubtitle { - font-size: 1.25rem; - color: rgba(255, 255, 255, 0.95); - margin-bottom: 2rem; -} - -.searchBox { - display: flex; - max-width: 600px; - margin: 0 auto; - background: white; - border-radius: var(--radius-xl); - overflow: hidden; - box-shadow: var(--shadow-xl); -} - -.searchInput { - flex: 1; - padding: 1rem 1.5rem; - border: none; - font-size: 1rem; - outline: none; -} - -.searchButton { - padding: 1rem 2rem; - background: var(--gradient-primary); - border: none; - color: white; - font-size: 1.5rem; - cursor: pointer; - transition: all 0.3s ease; -} - -.searchButton:hover { - opacity: 0.9; -} - -.docsGrid { - display: grid; - grid-template-columns: 1fr; - gap: 2rem; -} - -@media (min-width: 768px) { - .docsGrid { - grid-template-columns: repeat(2, 1fr); - } -} - -@media (min-width: 1024px) { - .docsGrid { - grid-template-columns: repeat(3, 1fr); - } -} - -.docCategory { - background: var(--background); - border-radius: var(--radius-xl); - padding: 2rem; - box-shadow: var(--shadow-md); - transition: all 0.3s ease; -} - -.docCategory:hover { - box-shadow: var(--shadow-xl); -} - -.categoryHeader { - display: flex; - align-items: center; - gap: 1rem; - margin-bottom: 1.5rem; - padding-bottom: 1rem; - border-bottom: 2px solid var(--background-secondary); -} - -.categoryIcon { - font-size: 2rem; -} - -.categoryTitle { - font-size: 1.5rem; - color: var(--foreground); - font-family: var(--font-display); -} - -.docsList { - display: flex; - flex-direction: column; - gap: 0.75rem; -} - -.docLink { - display: flex; - align-items: center; - gap: 0.75rem; - padding: 0.75rem; - color: var(--foreground-secondary); - text-decoration: none; - border-radius: var(--radius-md); - transition: all 0.3s ease; -} - -.docLink:hover { - background: var(--background-secondary); - color: var(--primary); - padding-left: 1.25rem; -} - -.docIcon { - font-size: 1.25rem; -} - -.arrow { - margin-left: auto; - opacity: 0; - transition: all 0.3s ease; -} - -.docLink:hover .arrow { - opacity: 1; -} - -.helpSection { - background: var(--background-secondary); - padding: 5rem 0; - text-align: center; - margin-top: 4rem; -} - -.helpContent { - max-width: 600px; - margin: 0 auto; -} - -.helpTitle { - font-size: 2.5rem; - margin-bottom: 1rem; - color: var(--foreground); -} - -.helpSubtitle { - font-size: 1.25rem; - color: var(--foreground-secondary); - margin-bottom: 2rem; -} - -.helpButtons { - display: flex; - gap: 1rem; - justify-content: center; - flex-wrap: wrap; -} \ No newline at end of file diff --git a/app/docs/page.tsx b/app/docs/page.tsx deleted file mode 100644 index d6b9e62..0000000 --- a/app/docs/page.tsx +++ /dev/null @@ -1,144 +0,0 @@ -import type { Metadata } from 'next'; -import Link from 'next/link'; -import styles from './docs.module.css'; - -export const metadata: Metadata = { - title: 'Documentation - SocialBuddy', - description: 'Complete documentation and guides for using SocialBuddy. Learn how to manage your social media effectively.', -}; - -export default function DocsPage() { - const docCategories = [ - { - title: 'Getting Started', - icon: 'πŸš€', - docs: [ - { title: 'Quick Start Guide', href: '/docs/quick-start' }, - { title: 'Account Setup', href: '/docs/account-setup' }, - { title: 'Connecting Social Accounts', href: '/docs/connecting-accounts' }, - { title: 'Dashboard Overview', href: '/docs/dashboard' }, - ], - }, - { - title: 'Content Management', - icon: 'πŸ“', - docs: [ - { title: 'Creating Posts', href: '/docs/creating-posts' }, - { title: 'Scheduling Content', href: '/docs/scheduling' }, - { title: 'Content Calendar', href: '/docs/calendar' }, - { title: 'Media Library', href: '/docs/media-library' }, - ], - }, - { - title: 'Analytics', - icon: 'πŸ“Š', - docs: [ - { title: 'Understanding Analytics', href: '/docs/analytics' }, - { title: 'Custom Reports', href: '/docs/reports' }, - { title: 'Competitor Analysis', href: '/docs/competitor-analysis' }, - { title: 'Export Data', href: '/docs/export-data' }, - ], - }, - { - title: 'Team Collaboration', - icon: 'πŸ‘₯', - docs: [ - { title: 'Inviting Team Members', href: '/docs/team-members' }, - { title: 'Roles & Permissions', href: '/docs/roles' }, - { title: 'Approval Workflows', href: '/docs/workflows' }, - { title: 'Team Activity Log', href: '/docs/activity-log' }, - ], - }, - { - title: 'API & Integrations', - icon: 'πŸ”Œ', - docs: [ - { title: 'API Documentation', href: '/docs/api' }, - { title: 'Webhooks', href: '/docs/webhooks' }, - { title: 'Third-Party Integrations', href: '/docs/integrations' }, - { title: 'Developer Resources', href: '/docs/developers' }, - ], - }, - { - title: 'Account & Billing', - icon: 'πŸ’³', - docs: [ - { title: 'Managing Your Account', href: '/docs/account' }, - { title: 'Billing & Payments', href: '/docs/billing' }, - { title: 'Upgrading Plans', href: '/docs/upgrading' }, - { title: 'Security Settings', href: '/docs/security' }, - ], - }, - ]; - - return ( -
- {/* Hero Section */} -
-
-
-

- Documentation & Guides -

-

- Everything you need to know about using SocialBuddy effectively -

-
- - -
-
-
-
- - {/* Documentation Grid */} -
-
-
- {docCategories.map((category, idx) => ( -
-
- {category.icon} -

{category.title}

-
-
- {category.docs.map((doc, index) => ( - - πŸ“„ - {doc.title} - β†’ - - ))} -
-
- ))} -
-
-
- - {/* Help Section */} -
-
-
-

Need More Help?

-

- Can't find what you're looking for? Our support team is here to help. -

- -
-
-
-
- ); -} diff --git a/app/features/[slug]/feature-page.module.css b/app/features/[slug]/feature-page.module.css new file mode 100644 index 0000000..b83c49c --- /dev/null +++ b/app/features/[slug]/feature-page.module.css @@ -0,0 +1,633 @@ +/* Page Wrapper */ +.page { + animation: fadeIn 0.6s ease-out; + background-color: var(--background); + color: var(--text-primary); +} + +.container { + max-width: 1280px; + margin: 0 auto; + padding: 0 1.5rem; +} + +/* --- Hero Section (Ref: Inner Banner from About) --- */ +.hero { + padding: 8rem 0 8rem; + text-align: center; + background-image: url('/hero-inner-bg.png'); + /* Use same image as About */ + background-size: cover; + background-position: center; + background-repeat: no-repeat; + position: relative; + overflow: hidden; +} + +.hero::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.3); + /* Overlay for text readability */ +} + +.heroContent { + position: relative; + z-index: 1; + max-width: 900px; + margin: 0 auto; +} + +.heroTitle { + font-size: clamp(2.5rem, 6vw, 4rem); + font-weight: 800; + margin-bottom: 1rem; + line-height: 1.2; + color: #fff; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); +} + +.breadcrumbs { + font-size: 1rem; + color: rgba(255, 255, 255, 0.9); + display: flex; + align-items: center; + justify-content: center; + gap: 0.5rem; +} + +.breadcrumbs a { + color: rgba(255, 255, 255, 0.9); + text-decoration: none; + transition: color 0.3s ease; +} + +.breadcrumbs a:hover { + color: #fff; +} + +.breadcrumbs span { + color: #fff; + font-weight: 600; +} + +/* --- Section 1: About (Icons) --- */ +.aboutSection { + padding: 4rem 0; + background: #fff; +} + +.aboutGrid { + display: grid; + grid-template-columns: 1fr; + gap: 4rem; + align-items: center; +} + +@media (min-width: 992px) { + .aboutGrid { + grid-template-columns: 1fr 1fr; + } +} + +.aboutImages { + position: relative; + min-height: 500px; +} + +.aboutMainImgWrapper { + position: absolute; + top: 0; + left: 0; + width: 80%; + height: 85%; + z-index: 1; + border-radius: 12px; + overflow: hidden; +} + +.aboutSubImgWrapper { + position: absolute; + bottom: 0; + right: 0; + width: 55%; + height: 50%; + z-index: 2; + border: 8px solid #fff; + border-radius: 12px; + overflow: hidden; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); +} + +.aboutContent { + padding-left: 1rem; +} + +.sectionSubtitle { + font-size: 0.875rem; + text-transform: uppercase; + letter-spacing: 2px; + color: var(--primary); + margin-bottom: 1rem; + display: block; + font-weight: 600; +} + +.sectionTitle { + font-size: clamp(2rem, 4vw, 3rem); + line-height: 1.2; + margin-bottom: 1.5rem; + color: var(--text-primary); + font-weight: 700; +} + +.aboutDescription { + color: var(--text-secondary); + margin-bottom: 2rem; + line-height: 1.7; + font-size: 1.1rem; +} + +.aboutPoints { + display: grid; + grid-template-columns: 1fr; + gap: 1.5rem; + margin-bottom: 2.5rem; +} + +@media (min-width: 640px) { + .aboutPoints { + grid-template-columns: 1fr 1fr; + } +} + +.aboutPointItem { + display: flex; + align-items: center; + gap: 1rem; +} + +.aboutPointIcon svg { + width: 28px; + height: 28px; + color: var(--primary); +} + +.aboutPointText { + font-weight: 600; + color: var(--text-primary); +} + +/* --- Section 2: Benefits --- */ +.benefitsSection { + padding: 4rem 0; + background: var(--background-secondary); +} + +.benefitsContainer { + display: grid; + grid-template-columns: 1fr; + gap: 4rem; + align-items: center; +} + +@media (min-width: 992px) { + .benefitsContainer { + grid-template-columns: 1fr 1.5fr; + } +} + +.benefitsContent {} + +.benefitsGrid { + display: grid; + grid-template-columns: 1fr; + gap: 1.5rem; +} + +@media (min-width: 640px) { + .benefitsGrid { + grid-template-columns: repeat(2, 1fr); + } +} + +.benefitCard { + background: #fff; + padding: 2rem; + border-radius: 16px; + box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); + transition: all 0.3s ease; + text-align: center; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} + +.benefitCard:hover { + background: var(--primary); + transform: translateY(-5px); +} + +.benefitCard:hover * { + color: #fff !important; +} + +.benefitIcon { + font-size: 2.5rem; + margin-bottom: 1rem; + color: var(--primary); + transition: color 0.3s ease; +} + +.benefitCardTitle { + font-size: 1.25rem; + font-weight: 700; + margin-bottom: 0.5rem; + color: var(--text-primary); + transition: color 0.3s ease; +} + +.benefitCardDesc { + font-size: 0.9rem; + color: var(--text-secondary); + transition: color 0.3s ease; +} + +/* --- Section 3: Testimonial (Update: Left Images Grid, Right Slider) --- */ +.testimonialSection { + padding: 4rem 0; + background: #fff; + overflow: hidden; +} + +.testimonialGrid { + display: grid; + grid-template-columns: 1fr; + gap: 4rem; + align-items: center; +} + +@media (min-width: 992px) { + .testimonialGrid { + grid-template-columns: 0.8fr 1.2fr; + /* Images < Slider */ + } +} + +/* Left side: 2 Image Grid */ +.testimonialImages { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 1rem; +} + +.testImgWrapper { + border-radius: 12px; + overflow: hidden; + height: 300px; + background: #f0f0f0; +} + +.testImgWrapper:nth-child(2) { + margin-top: 3rem; + /* Stagger effect */ +} + +/* Right side: Slider Styles (Used by Client Component) */ +.testimonialSliderContainer { + position: relative; + padding: 2rem; +} + +.testSliderContent { + min-height: 300px; + display: flex; + flex-direction: column; + justify-content: center; + animation: fadeIn 0.5s ease-in-out; +} + +.testStars { + display: flex; + gap: 4px; + margin-bottom: 1.5rem; +} + +.testQuoteFade { + font-size: clamp(1.25rem, 2.5vw, 1.75rem); + font-weight: 500; + line-height: 1.4; + color: var(--text-primary); + margin-bottom: 2rem; + font-style: italic; +} + +.testAuthorBlock { + display: flex; + align-items: center; + gap: 1rem; +} + +.testAuthorAvatar { + width: 60px; + height: 60px; + border-radius: 50%; + object-fit: cover; +} + +.testAuthorInfo h4 { + margin: 0; + font-size: 1.1rem; + font-weight: 700; +} + +.testAuthorInfo span { + font-size: 0.9rem; + color: var(--text-secondary); +} + +.sliderDots { + display: flex; + gap: 0.5rem; + margin-top: 2rem; +} + +.dot { + width: 10px; + height: 10px; + border-radius: 50%; + background: #E2E8F0; + border: none; + cursor: pointer; + transition: background 0.3s; +} + +.activeDot { + background: var(--primary); +} + + +/* --- Section 4: Blogs --- */ +.resourcesSection { + padding: 4rem 0; + background: var(--background-secondary); +} + +.blogGrid { + display: grid; + grid-template-columns: 1fr; + gap: 2rem; + margin-top: 3rem; +} + +@media (min-width: 768px) { + .blogGrid { + grid-template-columns: repeat(3, 1fr); + } +} + +.blogCard { + background: #fff; + border-radius: 12px; + overflow: hidden; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05); + transition: transform 0.3s ease; +} + +.blogCard:hover { + transform: translateY(-5px); +} + +.blogImageWrapper { + height: 200px; + overflow: hidden; +} + +.blogImage { + width: 100%; + height: 100%; + object-fit: cover; +} + +.blogContent { + padding: 1.5rem; +} + +.blogCategory { + color: var(--primary); + font-size: 0.8rem; + font-weight: 600; + text-transform: uppercase; + margin-bottom: 0.5rem; + display: block; +} + +.blogTitle { + font-size: 1.25rem; + margin-bottom: 0.75rem; + line-height: 1.4; +} + +.blogExcerpt { + font-size: 0.95rem; + color: var(--text-secondary); + margin-bottom: 1rem; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + line-clamp: 2; +} + +.readMoreLink { + color: var(--primary); + font-weight: 600; + display: inline-flex; + align-items: center; + gap: 0.5rem; +} + +/* --- Section 5: FAQ --- */ +.faqSection { + padding: 4rem 0; + background: #fff; +} + +.faqGrid { + display: grid; + grid-template-columns: 1fr; + gap: 4rem; + align-items: flex-start; +} + +@media (min-width: 992px) { + .faqGrid { + grid-template-columns: 1fr 1fr; + } +} + +.faqImageWrapper { + border-radius: 20px; + overflow: hidden; +} + +.accordionItem { + border-bottom: 1px solid var(--border-color); + margin-bottom: 1rem; +} + +.accordionTrigger { + width: 100%; + display: flex; + justify-content: space-between; + align-items: center; + padding: 1.5rem 0; + background: none; + border: none; + text-align: left; + cursor: pointer; + font-size: 1.1rem; + font-weight: 600; + color: var(--text-primary); +} + +.accordionContentOpen { + animation: slideDown 0.3s ease-out; +} + +@keyframes slideDown { + from { + opacity: 0; + transform: translateY(-10px); + } + + to { + opacity: 1; + transform: translateY(0); + } +} + +.accordionIcon { + font-size: 1.5rem; + font-weight: 300; +} + + +/* --- Section 6: CTA (Full Width Floating) --- */ +/* --- Section 6: CTA (Full Width Floating) --- */ +.ctaFullWidth { + position: relative; + padding: 4rem 0; + background-color: #F8FAFC; + /* Light fallback */ + background-image: url('/images/cta-bg-light.png'); + /* User requested image */ + background-size: cover; + background-position: center; + background-repeat: no-repeat; + overflow: hidden; + color: var(--text-primary); + text-align: center; + display: flex; + align-items: center; + justify-content: center; + border-top: 1px solid rgba(0, 0, 0, 0.05); +} + +.ctaContentCentered { + position: relative; + z-index: 10; + max-width: 700px; + padding: 0 1.5rem; +} + +.ctaFullTitle { + font-size: clamp(2.5rem, 5vw, 4rem); + font-weight: 800; + margin-bottom: 1.5rem; + line-height: 1.1; + color: var(--text-primary); +} + +.ctaFullText { + font-size: 1.25rem; + color: var(--text-secondary); + margin-bottom: 2.5rem; +} + +.ctaFullBtn { + background: var(--primary); + /* Primary purple/blue */ + color: white; + padding: 1rem 3rem; + border-radius: 50px; + font-size: 1.1rem; + font-weight: 700; + transition: transform 0.2s; + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1); + display: inline-block; +} + +.ctaFullBtn:hover { + transform: translateY(-3px) scale(1.05); + background: var(--primary-dark, #5b21b6); +} + +/* Floating Elements */ +.floatElem { + position: absolute; + opacity: 0.15; + pointer-events: none; +} + +.floatLeft { + left: 5%; + top: 20%; + width: 150px; + animation: float 6s ease-in-out infinite; +} + +.floatRight { + right: 5%; + bottom: 20%; + width: 180px; + animation: float 8s ease-in-out infinite reverse; +} + +@keyframes float { + 0% { + transform: translateY(0px); + } + + 50% { + transform: translateY(-20px); + } + + 100% { + transform: translateY(0px); + } +} + +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(20px); + } + + to { + opacity: 1; + transform: translateY(0); + } +} + +.img { + display: block; + width: 100%; + height: 100%; + object-fit: cover; +} \ No newline at end of file diff --git a/app/features/[slug]/page.tsx b/app/features/[slug]/page.tsx new file mode 100644 index 0000000..ab6c34c --- /dev/null +++ b/app/features/[slug]/page.tsx @@ -0,0 +1,285 @@ +import { features } from '@/data/features'; +import { resources } from '@/data/resources'; +import { notFound } from 'next/navigation'; +import styles from './feature-page.module.css'; +import SafeImage from '@/components/SafeImage'; +import Link from 'next/link'; +import TestimonialSlider from '@/components/TestimonialSlider'; +import { + Calendar, Eye, BarChart, Trophy, Inbox, ShieldCheck, + Palette, Layout, Smartphone, Zap, PenTool, Repeat, + CheckCircle +} from 'lucide-react'; + +// Define Props interface +interface PageProps { + params: Promise<{ slug: string }>; +} + +export async function generateStaticParams() { + return features.map((feature) => ({ + slug: feature.slug, + })); +} + +export async function generateMetadata(props: PageProps) { + const params = await props.params; + const feature = features.find((f) => f.slug === params.slug); + if (!feature) return { title: 'Feature Not Found' }; + + return { + title: `${feature.title} - SocialBuddy`, + description: feature.description, + }; +} + +// Icon mapping helper +const getIcon = (iconName: string) => { + switch (iconName) { + case 'Calendar': return ; + case 'Eye': return ; + case 'BarChart': return ; + case 'Trophy': return ; + case 'Inbox': return ; + case 'ShieldCheck': return ; + case 'Palette': return ; + case 'Layout': return ; + case 'Smartphone': return ; + case 'Zap': return ; + case 'PenTool': return ; + case 'Repeat': return ; + default: return ; + } +}; + +export default async function FeaturePage(props: PageProps) { + const params = await props.params; + + // Ensure params exists + if (!params?.slug) { + notFound(); + } + + const feature = features.find((f) => f.slug === params.slug); + + if (!feature) { + notFound(); + } + + // Filter resources + const featureResources = resources.filter(b => b.featureSlug === feature.slug).slice(0, 3); + const displayResources = featureResources.length > 0 ? featureResources : resources.slice(0, 3); + + return ( +
+ {/* 1. Hero Section (Banner Style, Center Title + Breadcrumbs) */} +
+
+
+

{feature.title}

+
+ Home / Features / {feature.title} +
+
+
+
+ + {/* 2. About Section (Icons) */} + {feature.about && ( +
+
+
+
+
+ +
+
+ +
+
+
+ {feature.about.subTitle} +

{feature.about.title}

+

{feature.about.description}

+
+ {feature.about.bulletPoints.map((point, i) => ( +
+ + {getIcon(point.icon)} + + {point.text} +
+ ))} +
+ Read More +
+
+
+
+ )} + + {/* 3. Benefits / Why Choose */} +
+
+
+
+ Why Choose Us +

Custom Solutions for Your Social Growth

+

+ Everything you need to succeed on social media, all in one platform. + We provide the tools to help you scale effectively. +

+ Video Showcase +
+
+ {feature.benefits.slice(0, 4).map((benefit, index) => ( +
+
{benefit.icon}
+

{benefit.title}

+

{benefit.description}

+
+ ))} +
+
+
+
+ + {/* 4. Testimonials (Left: 2 Images, Right: Slider) */} + {feature.testimonials && feature.testimonials.length > 0 && ( +
+
+
+
+
+ +
+
+ +
+
+
+ Testimonials +

Trusted by Thousands

+ +
+
+
+
+ )} + + {/* 5. Resources / Blogs */} +
+
+
+ Resources +

Latest Insights for {feature.title}

+
+ +
+ {displayResources.map((resource) => ( +
+
+ +
+
+ {resource.category} +

{resource.title}

+

{resource.excerpt}

+ + Read Article β†’ + +
+
+ ))} +
+
+
+ + {/* 6. FAQ */} + {feature.faqs && feature.faqs.length > 0 && ( +
+
+
+
+ FAQ +

Frequently Asked Questions

+
+ {feature.faqs.map((faq, index) => ( +
+ + {faq.question} + + + +
+

{faq.answer}

+
+
+ ))} +
+
+
+ +
+
+
+
+ )} + + {/* 7. CTA (Full Width Floating) */} +
+ + + +
+

Ready to Grow Your Social Presence?

+

+ Join thousands of marketers who are already using SocialBuddy to streamline their workflow. +

+ + Start Free Trial + +
+
+
+ ); +} diff --git a/app/features/features.module.css b/app/features/features.module.css index bb17b7d..0fe9575 100644 --- a/app/features/features.module.css +++ b/app/features/features.module.css @@ -3,27 +3,62 @@ } .hero { - background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); - padding: 6rem 0 4rem; + background-image: url('/hero-inner-bg.png'); + background-size: cover; + background-position: center; + background-repeat: no-repeat; + padding: 8rem 0 8rem; text-align: center; color: white; + position: relative; + overflow: hidden; +} + +.hero::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.3); } .heroContent { max-width: 800px; margin: 0 auto; + position: relative; + z-index: 1; } .heroTitle { font-size: clamp(2.5rem, 5vw, 4rem); - margin-bottom: 1.5rem; + margin-bottom: 1rem; color: white; } -.heroSubtitle { - font-size: 1.25rem; - color: rgba(255, 255, 255, 0.95); - line-height: 1.6; +.breadcrumb { + font-size: 1rem; + color: rgba(255, 255, 255, 0.9); + display: flex; + align-items: center; + justify-content: center; + gap: 0.5rem; +} + +.breadcrumb a { + color: rgba(255, 255, 255, 0.9); + text-decoration: none; + transition: color 0.3s ease; +} + +.breadcrumb a:hover { + color: #fff; +} + +.breadcrumb span { + color: #fff; + font-weight: 600; } .categorySection { diff --git a/app/features/page.tsx b/app/features/page.tsx index aa0175a..399de4c 100644 --- a/app/features/page.tsx +++ b/app/features/page.tsx @@ -100,12 +100,10 @@ export default function FeaturesPage() {
-

- Powerful Features for Modern Teams -

-

- Everything you need to manage, analyze, and grow your social media presenceβ€”all in one platform. -

+

Features

+
+ Home / Features +
diff --git a/app/globals.css b/app/globals.css index bdc2286..3236f8c 100644 --- a/app/globals.css +++ b/app/globals.css @@ -3,15 +3,24 @@ :root { - /* Color Palette - Pink Primary, Blue Secondary */ + /* Color Palette - Updated per user request */ --primary: #ec4899; + /* Pink */ --primary-dark: #db2777; - --primary-light: #f472b6; - --secondary: #3b82f6; - --secondary-dark: #2563eb; - --secondary-light: #60a5fa; - --accent: #14b8a6; - --accent-dark: #0d9488; + + --secondary: #2563eb; + /* Blue (Requested #2563eb) */ + --secondary-dark: #1255d8; + /* Blue (Requested #1255d8) */ + + --accent: #6cb655; + /* Green (Requested #6cb655) */ + --accent-dark: #5a9646; + + --dark-blue: #0072b1; + /* Dark Blue (Requested #0072b1) */ + --yellow: #f9cd35; + /* Yellow (Requested #f9cd35) */ /* Backgrounds */ --background: #ffffff; @@ -28,11 +37,19 @@ /* Borders */ --border-color: #e2e8f0; - /* Gradients - Pink to Blue Theme */ - --gradient-primary: linear-gradient(135deg, #ec4899 0%, #3b82f6 100%); - --gradient-secondary: linear-gradient(135deg, #f472b6 0%, #60a5fa 100%); - --gradient-accent: linear-gradient(135deg, #db2777 0%, #2563eb 100%); - --gradient-hero: linear-gradient(135deg, #ec4899 0%, #db2777 30%, #3b82f6 70%, #2563eb 100%); + /* Gradients - Linear Theme using new palette */ + /* Blue (#2563eb) to Pink (#ec4899) */ + --gradient-primary: linear-gradient(to right, #2563eb 0%, #ec4899 100%); + + /* Yellow (#f9cd35) to Roman? No, let's keep consistency. Maybe Yellow to Pink? + User didn't specify gradient composition, just colors. + Retaining generic gradients but updating hexes. */ + --gradient-secondary: radial-gradient(circle, #2563eb 0%, #ec4899 100%); + + /* Dark Blue (#0072b1) to Green (#6cb655) for accent gradient if needed */ + --gradient-accent: linear-gradient(135deg, #0072b1 0%, #6cb655 100%); + + --gradient-hero: radial-gradient(circle, #2563eb 0%, #ec4899 100%); /* Shadows */ --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05); @@ -61,19 +78,7 @@ --font-display: 'Outfit', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; } -@media (prefers-color-scheme: dark) { - :root { - --background: #0f172a; - --background-secondary: #1e293b; - --bg-primary: #0f172a; - --card-bg: #1e293b; - --foreground: #f1f5f9; - --foreground-secondary: #cbd5e1; - --text-primary: #f1f5f9; - --text-secondary: #cbd5e1; - --border-color: #334155; - } -} + * { margin: 0; @@ -241,34 +246,39 @@ body { padding: 0 var(--spacing-md); } -.section { - padding: var(--spacing-2xl) 0; +/* Alternating Section Backgrounds */ +section { + position: relative; + z-index: 1; } -/* Alternating Section Backgrounds */ section:nth-child(odd) { - background: linear-gradient(180deg, - var(--background) 0%, - rgba(236, 72, 153, 0.02) 50%, - var(--background) 100%); + background-color: #f1f5f9; } section:nth-child(even) { - background: linear-gradient(180deg, - rgba(59, 130, 246, 0.02) 0%, - rgba(168, 85, 247, 0.02) 50%, - rgba(59, 130, 246, 0.02) 100%); + background-color: #ffffff; + /* Slate 100 - Distinct contrast */ + border-top: 1px solid var(--border-color); + border-bottom: 1px solid var(--border-color); +} + +/* Ensure spacing consistency */ +.section { + padding: 5rem 0; + /* Default mobile padding */ } @media (min-width: 768px) { .section { - padding: 5rem 0; + padding: 4rem 0; } } @media (min-width: 1024px) { .section { - padding: 6rem 0; + padding: 4rem 0; + /* Standardized large spacing per user request */ } } diff --git a/app/page.tsx b/app/page.tsx index ff94834..2a47be4 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,20 +1,27 @@ import Hero from '@/components/Hero'; +import AboutSection from '@/components/AboutSection'; import Features from '@/components/Features'; import SocialConnect from '@/components/SocialConnect'; import HowItWorks from '@/components/HowItWorks'; import Testimonials from '@/components/Testimonials'; +import StatsCounter from '@/components/StatsCounter'; import Pricing from '@/components/Pricing'; import FAQ from '@/components/FAQ'; import CTA from '@/components/CTA'; +import WhyChooseUs from '@/components/WhyChooseUs'; +import CoreServices from '@/components/CoreServices'; + export default function Home() { return (
- + + + diff --git a/app/pricing/page.tsx b/app/pricing/page.tsx index e8d4722..a6c5911 100644 --- a/app/pricing/page.tsx +++ b/app/pricing/page.tsx @@ -1,59 +1,107 @@ +'use client'; + +import { useState } from 'react'; import type { Metadata } from 'next'; import Pricing from '@/components/Pricing'; import styles from './pricing.module.css'; -export const metadata: Metadata = { - title: 'Pricing - SocialBuddy', - description: 'Choose the perfect plan for your social media management needs. Free, Pro, and Premium plans available with 14-day free trial.', -}; - export default function PricingPage() { + const [openFaqIndex, setOpenFaqIndex] = useState(0); + + const faqs = [ + { + question: 'Can I change plans later?', + answer: "Yes! You can upgrade or downgrade your plan at any time. Changes take effect immediately, and we'll prorate any charges." + }, + { + question: 'What payment methods do you accept?', + answer: 'We accept all major credit cards (Visa, MasterCard, American Express), PayPal, and bank transfers for annual plans.' + }, + { + question: 'Is there a free trial?', + answer: 'Yes! All paid plans come with a 14-day free trial. No credit card required to start.' + }, + { + question: 'Can I cancel anytime?', + answer: 'Absolutely. You can cancel your subscription at any time with no cancellation fees. Your access continues until the end of your billing period.' + }, + { + question: 'Do you offer discounts for nonprofits?', + answer: 'Yes! We offer special pricing for nonprofits and educational institutions. Contact our sales team for details.' + }, + { + question: 'What happens to my data if I cancel?', + answer: 'Your data is safely stored for 30 days after cancellation. You can export all your data at any time before deletion.' + } + ]; + + const toggleFaq = (index: number) => { + setOpenFaqIndex(openFaqIndex === index ? null : index); + }; + return (
+ {/* Hero Section */} +
+
+
+

Pricing

+
+ Home / Pricing +
+
+
+
+ {/* FAQ Section */}
-
-

Frequently Asked Questions

-
-
-
-

Can I change plans later?

-

- Yes! You can upgrade or downgrade your plan at any time. Changes take effect immediately, and we'll prorate any charges. -

+
+
+
+ {/* Diagonal Background Lines */} +
+
+
+
+ + {/* Image with Decorative Borders */} +
+
+
+ Social media management workspace +
+
-
-

What payment methods do you accept?

-

- We accept all major credit cards (Visa, MasterCard, American Express), PayPal, and bank transfers for annual plans. -

-
-
-

Is there a free trial?

-

- Yes! All paid plans come with a 14-day free trial. No credit card required to start. -

-
-
-

Can I cancel anytime?

-

- Absolutely. You can cancel your subscription at any time with no cancellation fees. Your access continues until the end of your billing period. -

-
-
-

Do you offer discounts for nonprofits?

-

- Yes! We offer special pricing for nonprofits and educational institutions. Contact our sales team for details. -

-
-
-

What happens to my data if I cancel?

-

- Your data is safely stored for 30 days after cancellation. You can export all your data at any time before deletion. -

+
+
+

Frequently Asked Questions

+
+
+ {faqs.map((faq, index) => ( +
+ +
+

{faq.answer}

+
+
+ ))} +
diff --git a/app/pricing/pricing.module.css b/app/pricing/pricing.module.css index 760c8fc..e7cae90 100644 --- a/app/pricing/pricing.module.css +++ b/app/pricing/pricing.module.css @@ -2,52 +2,365 @@ padding-top: 5rem; } -.faqHeader { +.hero { + padding: 8rem 0 8rem; text-align: center; - margin-bottom: 3rem; + background-image: url('/hero-inner-bg.png'); + background-size: cover; + background-position: center; + background-repeat: no-repeat; + position: relative; + overflow: hidden; +} + +.hero::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.3); +} + +.heroContent { + position: relative; + z-index: 1; +} + +.heroTitle { + font-size: clamp(2.5rem, 6vw, 4rem); + font-weight: 800; + margin-bottom: 1rem; + line-height: 1.2; + color: #fff; +} + +.breadcrumb { + font-size: 1rem; + color: rgba(255, 255, 255, 0.9); + display: flex; + align-items: center; + justify-content: center; + gap: 0.5rem; +} + +.breadcrumb a { + color: rgba(255, 255, 255, 0.9); + text-decoration: none; + transition: color 0.3s ease; +} + +.breadcrumb a:hover { + color: #fff; +} + +.breadcrumb span { + color: #fff; + font-weight: 600; +} + +/* FAQ Section */ +.faqContainer { + display: grid; + grid-template-columns: 1fr; + gap: 3rem; + align-items: start; +} + +@media (min-width: 1024px) { + .faqContainer { + grid-template-columns: 1fr 1fr; + } +} + +.faqDecorativeSection { + display: flex; + align-items: center; + justify-content: center; + padding: 2rem 0; +} + +.imageFrameWrapper { + position: relative; + width: 100%; + max-width: 450px; + aspect-ratio: 3/4; + display: flex; + align-items: center; + justify-content: center; +} + +/* Diagonal Background Lines */ +.diagonalLines { + position: absolute; + inset: 0; + overflow: hidden; + z-index: 1; +} + +.diagonalLinePink { + position: absolute; + width: 150%; + height: 3px; + background: linear-gradient(to right, rgba(236, 72, 153, 0.3), rgba(236, 72, 153, 0.6)); + top: 30%; + left: -25%; + transform: rotate(-45deg); + animation: floatLine 8s ease-in-out infinite; +} + +.diagonalLineBlue { + position: absolute; + width: 150%; + height: 3px; + background: linear-gradient(to right, rgba(37, 99, 235, 0.3), rgba(37, 99, 235, 0.6)); + bottom: 30%; + right: -25%; + transform: rotate(45deg); + animation: floatLine 8s ease-in-out infinite reverse; +} + +@keyframes floatLine { + + 0%, + 100% { + transform: rotate(-45deg) translateY(0); + } + + 50% { + transform: rotate(-45deg) translateY(-10px); + } +} + +/* Image Frame with Borders */ +.imageFrame { + position: relative; + width: 85%; + height: 85%; + z-index: 2; + border-radius: 20px; + overflow: hidden; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); +} + +.frameImage { + width: 100%; + height: 100%; + object-fit: cover; + display: block; +} + +/* Decorative Borders */ +.frameBorderTopLeft { + position: absolute; + top: -15px; + left: -15px; + width: 120px; + height: 120px; + border-top: 4px solid #ec4899; + border-left: 4px solid #ec4899; + border-radius: 20px 0 0 0; + z-index: 3; +} + +.frameBorderBottomRight { + position: absolute; + bottom: -15px; + right: -15px; + width: 120px; + height: 120px; + border-bottom: 4px solid #2563eb; + border-right: 4px solid #2563eb; + border-radius: 0 0 20px 0; + z-index: 3; +} + +.faqContent { + display: flex; + flex-direction: column; +} + +.faqHeader { + margin-bottom: 2rem; } .faqTitle { font-size: 2.5rem; color: var(--foreground); + font-weight: 800; } -.faqGrid { - display: grid; - grid-template-columns: 1fr; - gap: 2rem; - max-width: 900px; - margin: 0 auto; -} - -@media (min-width: 768px) { - .faqGrid { - grid-template-columns: repeat(2, 1fr); - } +.faqList { + display: flex; + flex-direction: column; + gap: 1rem; } .faqItem { background: var(--background); border-radius: var(--radius-xl); - padding: 2rem; + overflow: hidden; box-shadow: var(--shadow-md); transition: all 0.3s ease; + border: 1px solid var(--border-color); } .faqItem:hover { - transform: translateY(-5px); - box-shadow: var(--shadow-xl); + box-shadow: var(--shadow-lg); + border-color: var(--primary); } .faqQuestion { - font-size: 1.25rem; + width: 100%; + display: flex; + align-items: center; + justify-content: space-between; + padding: 1.25rem 1.5rem; + font-size: 1.125rem; font-weight: 700; - margin-bottom: 1rem; color: var(--foreground); font-family: var(--font-display); + background: transparent; + border: none; + cursor: pointer; + text-align: left; + transition: all 0.3s ease; +} + +.faqQuestion:hover { + color: var(--primary); +} + +.faqIcon { + font-size: 1.5rem; + font-weight: 300; + color: var(--primary); + transition: transform 0.3s ease; + flex-shrink: 0; + margin-left: 1rem; +} + +.faqIconOpen { + transform: rotate(45deg); } .faqAnswer { + max-height: 0; + overflow: hidden; + transition: max-height 0.3s ease, padding 0.3s ease; +} + +.faqAnswerOpen { + max-height: 500px; + padding: 0 1.5rem 1.25rem 1.5rem; +} + +.faqAnswer p { color: var(--foreground-secondary); line-height: 1.6; + margin: 0; +} + +/* Responsive adjustments */ +@media (max-width: 1023px) { + .imageFrameWrapper { + max-width: 400px; + margin: 0 auto 3rem; + } + + .frameBorderTopLeft, + .frameBorderBottomRight { + width: 100px; + height: 100px; + } + + .frameBorderTopLeft { + top: -12px; + left: -12px; + } + + .frameBorderBottomRight { + bottom: -12px; + right: -12px; + } +} + +@media (max-width: 768px) { + .faqTitle { + font-size: 2rem; + } + + .faqQuestion { + padding: 1rem 1.25rem; + font-size: 1rem; + } + + .faqAnswer p { + font-size: 0.9375rem; + } + + .faqAnswerOpen { + padding: 0 1.25rem 1rem 1.25rem; + } + + .faqIcon { + font-size: 1.25rem; + } + + /* Adjust decorative frame for mobile */ + .imageFrameWrapper { + max-width: 350px; + aspect-ratio: 4/5; + margin-bottom: 2rem; + } + + .imageFrame { + width: 90%; + height: 90%; + } + + .frameBorderTopLeft, + .frameBorderBottomRight { + width: 80px; + height: 80px; + border-width: 3px; + } + + .frameBorderTopLeft { + top: -10px; + left: -10px; + } + + .frameBorderBottomRight { + bottom: -10px; + right: -10px; + } + + .diagonalLinePink, + .diagonalLineBlue { + height: 2px; + } +} + +@media (max-width: 480px) { + .imageFrameWrapper { + max-width: 280px; + } + + .frameBorderTopLeft, + .frameBorderBottomRight { + width: 60px; + height: 60px; + } + + .frameBorderTopLeft { + top: -8px; + left: -8px; + } + + .frameBorderBottomRight { + bottom: -8px; + right: -8px; + } } \ No newline at end of file diff --git a/app/resources/[slug]/page.tsx b/app/resources/[slug]/page.tsx new file mode 100644 index 0000000..713a4bd --- /dev/null +++ b/app/resources/[slug]/page.tsx @@ -0,0 +1,85 @@ +import { resources } from '@/data/resources'; +import { notFound } from 'next/navigation'; +import SafeImage from '@/components/SafeImage'; +import styles from '../resources.module.css'; +import Link from 'next/link'; + +interface PageProps { + params: Promise<{ slug: string }>; +} + +export async function generateStaticParams() { + return resources.map((resource) => ({ + slug: resource.slug, + })); +} + +export async function generateMetadata(props: PageProps) { + const params = await props.params; + const resource = resources.find((r) => r.slug === params.slug); + if (!resource) return { title: 'Resource Not Found' }; + + return { + title: `${resource.title} - SocialBuddy Resources`, + description: resource.excerpt, + }; +} + +export default async function ResourceDetailPage(props: PageProps) { + const params = await props.params; + + if (!params?.slug) { + notFound(); + } + + const resource = resources.find((r) => r.slug === params.slug); + + if (!resource) { + notFound(); + } + + return ( +
+ {/* Standardized Hero/Banner Section */} +
+
+
+

{resource.title}

+
+ Home / Resources / {resource.title} +
+
+
+
+ + {/* Featured Image */} +
+
+ +
+
+ + {/* Content Body */} + {/* Content Body */} +
+
+
+ + {/* Back to Resources */} +
+ + View All Resources + +
+
+ ); +} diff --git a/app/resources/page.tsx b/app/resources/page.tsx new file mode 100644 index 0000000..1594f57 --- /dev/null +++ b/app/resources/page.tsx @@ -0,0 +1,49 @@ +import Link from 'next/link'; +import SafeImage from '@/components/SafeImage'; +import styles from './resources.module.css'; +import { resources } from '@/data/resources'; + +export const metadata = { + title: 'Resources - SocialBuddy', + description: 'Guides, tips, and strategies to master social media marketing.', +}; + +export default function ResourcesPage() { + return ( +
+ {/* Standardized Hero Section */} +
+
+
+

Resources

+
+ Home / Resources +
+
+
+
+ +
+
+ {resources.map((resource) => ( + +
+ +
+
+ {resource.category} +

{resource.title}

+

{resource.excerpt}

+
+ + ))} +
+
+
+ ); +} diff --git a/app/resources/resources.module.css b/app/resources/resources.module.css new file mode 100644 index 0000000..2e12100 --- /dev/null +++ b/app/resources/resources.module.css @@ -0,0 +1,275 @@ +/* Page Wrapper */ +.page { + animation: fadeIn 0.6s ease-out; + background-color: #F8FAFC; + min-height: 100vh; +} + +.container { + max-width: 1280px; + margin: 0 auto; + padding: 0 1.5rem; +} + +/* --- Hero Section (Ref: Inner Banner) --- */ +.hero { + padding: 8rem 0 8rem; + text-align: center; + background-image: url('/hero-inner-bg.png'); + background-size: cover; + background-position: center; + background-repeat: no-repeat; + position: relative; + overflow: hidden; +} + +.hero::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.3); +} + +.heroContent { + position: relative; + z-index: 1; + max-width: 900px; + margin: 0 auto; +} + +.heroTitle { + font-size: clamp(2.5rem, 6vw, 4rem); + font-weight: 800; + margin-bottom: 1rem; + line-height: 1.2; + color: #fff; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); +} + +.breadcrumbs { + font-size: 1rem; + color: rgba(255, 255, 255, 0.9); + display: flex; + align-items: center; + justify-content: center; + gap: 0.5rem; +} + +.breadcrumbs a { + color: rgba(255, 255, 255, 0.9); + text-decoration: none; + transition: color 0.3s ease; +} + +.breadcrumbs a:hover { + color: #fff; +} + +.breadcrumbs span { + color: #fff; + font-weight: 600; +} + + +/* --- Grid & Cards --- */ +.grid { + display: grid; + grid-template-columns: 1fr; + gap: 2rem; + padding: 4rem 0; +} + +@media (min-width: 640px) { + .grid { + grid-template-columns: repeat(2, 1fr); + } +} + +@media (min-width: 1024px) { + .grid { + grid-template-columns: repeat(3, 1fr); + } +} + +.card { + background: white; + border-radius: 16px; + overflow: hidden; + box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05); + transition: transform 0.3s ease, box-shadow 0.3s ease; + display: flex; + flex-direction: column; + text-decoration: none; + /* Ensure no underline on card */ +} + +.card:hover { + transform: translateY(-5px); + box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); +} + +.imageWrapper { + height: 220px; + overflow: hidden; + position: relative; + background: #f0f0f0; +} + +.image { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.5s ease; +} + +.card:hover .image { + transform: scale(1.05); +} + +.content { + padding: 1.5rem; + flex: 1; + display: flex; + flex-direction: column; +} + +.category { + font-size: 0.8rem; + text-transform: uppercase; + letter-spacing: 1px; + color: var(--primary); + font-weight: 600; + margin-bottom: 0.5rem; + display: block; +} + +.title { + font-size: 1.25rem; + font-weight: 700; + color: var(--text-primary); + margin-bottom: 0.75rem; + line-height: 1.4; +} + +.excerpt { + font-size: 0.95rem; + color: var(--text-secondary); + margin-bottom: 1.5rem; + line-height: 1.6; + flex: 1; +} + +.meta { + display: flex; + align-items: center; + justify-content: space-between; + font-size: 0.85rem; + color: #94A3B8; + border-top: 1px solid #F1F5F9; + padding-top: 1rem; +} + +.author { + font-weight: 500; +} + +.date { + font-style: italic; +} + +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(20px); + } + + to { + opacity: 1; + transform: translateY(0); + } +} + +/* Detail Page Styles */ +.detailPage { + background: white; +} + +/* Moved Title to Hero, so this header is deprecated/removed in new design, + but keeping a simplified version just in case of fallback usage +*/ +.detailHeaderDeprecated { + text-align: center; + padding: 4rem 1.5rem 0; + max-width: 900px; + margin: 0 auto; +} + +.detailImageWrapper { + max-width: 1000px; + height: 400px; + margin: 3rem auto; + border-radius: 20px; + overflow: hidden; + box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.1); +} + +.detailImageWrapper img { + width: 100%; + height: 100%; + object-fit: cover; +} + +.detailContent { + max-width: 800px; + margin: 0 auto; + padding: 0 1.5rem 4rem; + /* Adjusted padding */ + line-height: 1.8; + color: var(--text-primary); + font-size: 1.125rem; +} + +/* Ensure no unwanted underlines in content unless links */ +.detailContent h2, +.detailContent h3, +.detailContent p, +.detailContent li { + text-decoration: none; +} + +.detailContent a { + text-decoration: underline; + color: var(--primary); +} + +.detailContent h2 { + font-size: 2rem; + font-weight: 700; + margin-top: 2.5rem; + margin-bottom: 1.25rem; + color: #1E293B; +} + +.detailContent h3 { + font-size: 1.5rem; + font-weight: 600; + margin-top: 2rem; + margin-bottom: 1rem; + color: #334155; +} + +.detailContent p { + margin-bottom: 1.5rem; +} + +.detailContent ul { + margin-bottom: 1.5rem; + padding-left: 1.5rem; +} + +.detailContent li { + margin-bottom: 0.5rem; +} \ No newline at end of file diff --git a/components/AboutSection.module.css b/components/AboutSection.module.css new file mode 100644 index 0000000..fb1ebbb --- /dev/null +++ b/components/AboutSection.module.css @@ -0,0 +1,304 @@ +.section { + position: relative; + overflow: visible; + /* Changed from hidden to visible to avoid clipping badge/shadows */ + padding: var(--spacing-2xl) 0; + background: var(--background); + /* Ensure z-index management if sections overlap, but usually safe default */ +} + +.container { + max-width: 1280px; + margin: 0 auto; + padding: 0 var(--spacing-md); +} + +.contentWrapper { + display: grid; + grid-template-columns: 1fr; + gap: var(--spacing-2xl); + align-items: center; +} + +@media (min-width: 1024px) { + .contentWrapper { + grid-template-columns: 1fr 1fr; + /* Equal width as requested "equaly show the image and content" */ + gap: 2rem; + /* Reduced from 4rem */ + } +} + +/* Image Composition */ +.imageGrid { + position: relative; + height: 600px; + width: 100%; +} + +.mainImageWrapper { + position: absolute; + top: 0; + right: 0; + width: 75%; + height: 85%; + border-radius: var(--radius-2xl); + overflow: hidden; + z-index: 1; +} + +.secondaryImageWrapper { + position: absolute; + bottom: 0; + left: 0; + width: 55%; + height: 50%; + border-radius: var(--radius-2xl); + border: 10px solid var(--background); + overflow: hidden; + z-index: 2; + box-shadow: var(--shadow-xl); +} + +.image { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.7s ease; +} + +.mainImageWrapper:hover .image, +.secondaryImageWrapper:hover .image { + transform: scale(1.05); +} + +.badge { + position: absolute; + bottom: 25%; + left: 45%; + transform: translate(-50%, 50%); + width: 140px; + height: 140px; + background: #a855f7; + background: linear-gradient(135deg, #a855f7 0%, #d946ef 100%); + border-radius: 50%; + border: 8px solid var(--background); + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + color: white; + z-index: 3; + box-shadow: var(--shadow-lg); + animation: float 4s ease-in-out infinite; +} + +.badgeNumber { + font-size: 1.75rem; + font-weight: 700; + line-height: 1; +} + +.badgeText { + font-size: 0.75rem; + text-align: center; + opacity: 0.9; + margin-top: 4px; +} + +/* Text Side */ +.textContent { + display: flex; + flex-direction: column; + /* gap: 1rem; */ + /* Reduced from var(--spacing-md) */ + padding-left: var(--spacing-md); +} + +.subTitle { + color: #0072b1; + text-transform: uppercase; + letter-spacing: 2px; + font-weight: 600; + font-size: 0.875rem; + margin-bottom: 1rem; +} + +.subTitleIcon { + width: 18px; + height: 18px; + border: 2px solid var(--primary); + border-radius: 50%; + position: relative; + display: flex; + align-items: center; + justify-content: center; +} + +.subTitleIcon::after { + content: ''; + width: 6px; + height: 6px; + background: var(--primary); + border-radius: 50%; +} + +.title { + font-family: var(--font-display); + font-size: clamp(2rem, 3.5vw, 3rem); + font-weight: 800; + line-height: 1.25; + color: var(--text-primary); +} + +.description { + color: var(--text-secondary); + font-size: 1rem; + line-height: 1.7; + max-width: 600px; +} + +.featuresList { + list-style: none; + display: flex; + flex-direction: column; + gap: 1rem; + /* Reduced from 2rem */ + margin-top: 1rem; +} + +.featureItem { + display: flex; + align-items: flex-start; + gap: 1.25rem; +} + +.iconWrapper { + flex-shrink: 0; + width: 60px; + height: 60px; + border-radius: 50%; + background: #f1f5f9; + color: #0072b1; + display: flex; + align-items: center; + justify-content: center; + font-size: 1.5rem; + transition: all 0.3s ease; +} + +.featureItem:nth-child(2) .iconWrapper { + background: #f1f5f9; + /* Darker blue-100 for better visibility */ + color: #ec4899; +} + +.featureItem:nth-child(3) .iconWrapper { + background: #f1f5f9; + /* Darker pink-100 for better visibility */ + color: #1255d8; +} + +.featureContent h4 { + font-size: 1.125rem; + font-weight: 700; + margin-bottom: 0.5rem; + color: var(--text-primary); +} + +.featureContent p { + color: var(--text-secondary); + font-size: 0.9rem; + line-height: 1.6; + margin: 0; +} + +/* Button Wrapper */ +.buttonWrapper { + margin-top: 1rem; +} + +/* Counters Section */ +.countersSection { + margin-top: 5rem; + padding-top: 3rem; + /* Added some top padding/border maybe */ + border-top: 1px solid var(--border-color); + /* Added border to separate explicitly */ + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + gap: 2rem; +} + +@media (max-width: 768px) { + .countersSection { + display: grid; + grid-template-columns: 1fr 1fr; + text-align: center; + margin-top: 3rem; + } + + .imageGrid { + height: 400px; + } +} + +.counterItem { + display: flex; + flex-direction: column; + align-items: center; + position: relative; + flex: 1; + /* Distribute space */ +} + +/* Add separator lines between counters on Desktop */ +@media (min-width: 1024px) { + .counterItem:not(:last-child)::after { + content: ''; + position: absolute; + right: 0; + top: 50%; + transform: translateY(-50%); + height: 50px; + width: 1px; + background: var(--border-color); + } +} + +.counterNumber { + font-size: 2.5rem; + font-weight: 800; + color: var(--text-primary); + line-height: 1; + margin-bottom: 0.5rem; +} + +/* Plus sign color pop */ +.counterNumber::after { + content: '+'; + color: var(--primary); + margin-left: 5px; +} + +.counterLabel { + color: var(--text-secondary); + font-size: 0.9rem; + font-weight: 500; + text-transform: capitalize; +} + + +@keyframes float { + + 0%, + 100% { + transform: translate(-50%, 50%) translateY(0); + } + + 50% { + transform: translate(-50%, 50%) translateY(-10px); + } +} \ No newline at end of file diff --git a/components/AboutSection.tsx b/components/AboutSection.tsx new file mode 100644 index 0000000..6d1f072 --- /dev/null +++ b/components/AboutSection.tsx @@ -0,0 +1,104 @@ +'use client'; + +import React from 'react'; +import Image from 'next/image'; +import Link from 'next/link'; +import { Users, Layout, ShieldCheck, ArrowRight } from 'lucide-react'; +import styles from './AboutSection.module.css'; + +const AboutSection = () => { + return ( +
+
+
+ {/* Left Side - Image Composition */} +
+ {/* Main Large Image (Top Right) */} +
+ Business Professional +
+ {/* Secondary Small Image (Bottom Left) */} +
+ Team working +
+ {/* Badge removed as requested */} +
+ + {/* Right Side - Content */} +
+ {/* Subtitle */} +
+ About Company +
+ + {/* Title */} +

+ We Are The Best Social Media Marketing Agency +

+ + {/* Description */} +

+ Elevate your brand with our data-driven social media strategies. We combine creativity with analytics to deliver campaigns that resonate with your audience and drive measurable results. +

+ + {/* Features List */} +
    +
  • +
    + +
    +
    +

    Trusted Partner

    +

    Over a decade of experience helping brands grow their online presence with verified strategies.

    +
    +
  • + +
  • +
    + +
    +
    +

    Fastpace Platform

    +

    Rapid deployment of campaigns across all major social platforms to catch trends instantly.

    +
    +
  • + +
  • +
    + +
    +
    +

    Tested Reliability

    +

    Consistent results and transparent reporting you can count on, backed by data.

    +
    +
  • +
+ + {/* CTA Button */} +
+ + Discover More + +
+
+
+ + {/* Counters Section Removed as requested */} +
+
+ ); +}; + +export default AboutSection; diff --git a/components/CTA.module.css b/components/CTA.module.css index d714711..818781a 100644 --- a/components/CTA.module.css +++ b/components/CTA.module.css @@ -1,238 +1,193 @@ .ctaSection { - padding: 6rem 0; position: relative; -} - -.ctaCard { - background: linear-gradient(135deg, var(--primary), var(--secondary)); - border-radius: 32px; padding: 4rem 2rem; - position: relative; overflow: hidden; - box-shadow: 0 20px 60px rgba(236, 72, 153, 0.3); + background: #0f172a; + /* Dark fallback */ + display: flex; + justify-content: center; + align-items: center; + min-height: 600px; + color: white; + /* Switch text to white */ } -.background { +/* Background Image */ +.gridBackground { position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - overflow: hidden; + inset: 0; + background-image: linear-gradient(to bottom, rgba(15, 23, 42, 0.8), rgba(15, 23, 42, 0.9)), url('/hero-bg-v2.png'); + background-size: cover; + background-position: center; + z-index: 0; + pointer-events: none; } -.circle1, -.circle2, -.circle3 { +/* Floating Icons Container */ +.floatingIconsContainer { position: absolute; - border-radius: 50%; - background: rgba(255, 255, 255, 0.1); - animation: float 20s ease-in-out infinite; + inset: 0; + z-index: 1; + pointer-events: none; } -.circle1 { - width: 300px; - height: 300px; - top: -100px; - right: -100px; - animation-delay: 0s; +.floatIcon { + position: absolute; + width: 50px; + height: 50px; + background: white; + border-radius: 12px; + box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08); + /* Soft shadow */ + display: flex; + align-items: center; + justify-content: center; + font-size: 1.5rem; + border: 1px solid rgba(0, 0, 0, 0.05); + animation: float 6s ease-in-out infinite; } -.circle2 { - width: 200px; - height: 200px; - bottom: -50px; +/* Icon Positioning imitating scatter */ +.icon1 { + top: 15%; left: 10%; - animation-delay: 2s; + animation-delay: 0s; + color: #FF4500; + filter: blur(1px); + transform: scale(0.9); } -.circle3 { - width: 150px; - height: 150px; - top: 50%; - left: -50px; - animation-delay: 4s; +/* Reddit-ish */ +.icon2 { + top: 25%; + left: 5%; + animation-delay: 1s; + color: #FF0000; } +/* YouTube */ +.icon3 { + top: 10%; + left: 30%; + animation-delay: 2s; + color: #000000; + opacity: 0.7; +} + +/* X */ +.icon4 { + top: 12%; + right: 20%; + animation-delay: 3s; + color: #1DA1F2; +} + +/* Twitter/Blue */ + +.icon5 { + top: 50%; + left: 15%; + animation-delay: 1.5s; + color: #0077B5; +} + +/* LinkedIn */ +.icon6 { + top: 30%; + right: 5%; + animation-delay: 0.5s; + color: #E60023; +} + +/* Pinterest */ +.icon7 { + bottom: 20%; + left: 20%; + animation-delay: 2.5s; + color: #E4405F; + filter: blur(2px); + transform: scale(0.8); +} + +/* Insta-ish heart */ +.icon8 { + bottom: 25%; + right: 15%; + animation-delay: 3.5s; + color: #222; +} + +/* Thread/Spiral */ + @keyframes float { 0%, 100% { - transform: translateY(0) scale(1); + transform: translateY(0) rotate(0deg); } 50% { - transform: translateY(-30px) scale(1.1); + transform: translateY(-15px) rotate(2deg); } } -.content { +/* Content */ +.contentContainer { position: relative; - z-index: 1; + z-index: 2; text-align: center; - max-width: 900px; - margin: 0 auto; -} - -.badge { - display: inline-flex; - align-items: center; - gap: 0.5rem; - padding: 0.5rem 1.25rem; - background: rgba(255, 255, 255, 0.2); - border: 1px solid rgba(255, 255, 255, 0.3); - border-radius: 50px; - font-size: 0.875rem; - font-weight: 600; - color: white; - margin-bottom: 1.5rem; - backdrop-filter: blur(10px); + max-width: 800px; + width: 100%; } .title { - font-size: clamp(2rem, 5vw, 3.5rem); + font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 800; color: white; - margin-bottom: 1.5rem; - line-height: 1.2; -} - -.highlight { - background: linear-gradient(135deg, #fff, rgba(255, 255, 255, 0.7)); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; - text-shadow: 0 0 30px rgba(255, 255, 255, 0.3); + /* Updated for dark bg */ + margin-bottom: 1rem; + line-height: 1.1; + letter-spacing: -0.02em; } .subtitle { - font-size: 1.125rem; - color: rgba(255, 255, 255, 0.95); - margin-bottom: 2.5rem; - line-height: 1.7; - max-width: 700px; - margin-left: auto; - margin-right: auto; + font-size: 1.1rem; + color: rgba(255, 255, 255, 0.8); + /* Updated for dark bg */ + margin-bottom: 3rem; } -.features { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); - gap: 1rem; - margin-bottom: 2.5rem; - max-width: 800px; - margin-left: auto; - margin-right: auto; -} - -.feature { - display: flex; - align-items: center; - gap: 0.75rem; +/* Standalone CTA Button */ +.standaloneBtn { + background: var(--gradient-primary); color: white; - font-size: 1rem; - font-weight: 500; - background: rgba(255, 255, 255, 0.1); - padding: 0.75rem 1rem; - border-radius: 12px; - backdrop-filter: blur(10px); - border: 1px solid rgba(255, 255, 255, 0.2); -} - -.checkIcon { - width: 24px; - height: 24px; - background: white; - color: var(--primary); - border-radius: 50%; - display: flex; + border: none; + padding: 1rem 2.5rem; + border-radius: 50px; + font-weight: 700; + font-size: 1.125rem; + cursor: pointer; + transition: all 0.3s ease; + white-space: nowrap; + display: inline-flex; align-items: center; justify-content: center; - font-weight: 700; - flex-shrink: 0; + gap: 0.75rem; + margin-top: 1rem; + text-decoration: none; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); } -.buttons { - display: flex; - flex-direction: column; - gap: 1rem; - align-items: center; - margin-bottom: 2.5rem; -} - -@media (min-width: 640px) { - .buttons { - flex-direction: row; - justify-content: center; - } -} - -.primaryBtn { - background: white !important; - color: var(--primary) !important; - box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); -} - -.primaryBtn:hover { +.standaloneBtn:hover { transform: translateY(-2px); - box-shadow: 0 15px 40px rgba(0, 0, 0, 0.3); -} - -.secondaryBtn { - background: rgba(255, 255, 255, 0.2) !important; - color: white !important; - border: 2px solid white !important; - backdrop-filter: blur(10px); -} - -.secondaryBtn:hover { - background: rgba(255, 255, 255, 0.3) !important; + box-shadow: 0 10px 20px -5px rgba(236, 72, 153, 0.4); } .arrow { - margin-left: 0.5rem; - transition: transform 0.3s ease; display: inline-block; + transition: transform 0.3s ease; } -.primaryBtn:hover .arrow { +.standaloneBtn:hover .arrow { transform: translateX(5px); -} - -.trustBadges { - display: flex; - flex-wrap: wrap; - justify-content: center; - gap: 2rem; - padding-top: 2rem; - border-top: 1px solid rgba(255, 255, 255, 0.2); -} - -.trustBadge { - display: flex; - align-items: center; - gap: 0.5rem; - color: white; - font-size: 0.9375rem; - font-weight: 600; -} - -.badgeIcon { - font-size: 1.25rem; -} - -@media (min-width: 768px) { - .ctaCard { - padding: 5rem 3rem; - } - - .subtitle { - font-size: 1.25rem; - } -} - -@media (min-width: 1024px) { - .ctaCard { - padding: 6rem 4rem; - } } \ No newline at end of file diff --git a/components/CTA.tsx b/components/CTA.tsx index 0902009..9ac8feb 100644 --- a/components/CTA.tsx +++ b/components/CTA.tsx @@ -1,77 +1,60 @@ +'use client'; + import Link from 'next/link'; + import styles from './CTA.module.css'; export default function CTA() { return (
-
-
-
-
-
-
-
+
-
-
- πŸš€ - Get Started Today -
- -

- Ready to Transform Your Social Media Strategy? -

- -

- Join thousands of businesses and creators who are already using SocialBuddy to grow their online presence. - Start your free trial todayβ€”no credit card required. -

- -
-
- βœ“ - 14-day free trial -
-
- βœ“ - No credit card required -
-
- βœ“ - Cancel anytime -
-
- βœ“ - 24/7 customer support -
-
- -
- - Start Free Trial - β†’ - - - View Pricing - -
- -
-
- πŸ”’ - Secure & Encrypted -
-
- ⭐ - 4.9/5 Rating -
-
- πŸ‘₯ - 10,000+ Users -
-
-
+ {/* Floating Icons */} +
+ {/* Top Left */} +
+ πŸ“£
+
+ ▢️ +
+ + {/* Top/Mid */} +
+ 𝕏 +
+
+ πŸ¦‹ {/* Bluesky/Twitter-like */} +
+ + {/* Left/Right Scatter */} +
+ πŸ’Ό +
+
+ πŸ“Œ +
+ + {/* Bottom Scatter */} +
+ ❀️ +
+
+ πŸŒ€ +
+
+ +
+

+ Your social media
workspace +

+

+ Share consistently without the chaos +

+ + + Get started for free β†’ +
); diff --git a/components/CoreServices.module.css b/components/CoreServices.module.css new file mode 100644 index 0000000..11e19b3 --- /dev/null +++ b/components/CoreServices.module.css @@ -0,0 +1,354 @@ +.section { + padding: 5rem 0; + position: relative; + background: var(--background); + overflow: hidden; +} + +@media (min-width: 768px) { + .section { + padding: 4rem 0; + } +} + +@media (min-width: 1024px) { + .section { + padding: 4rem 0; + } +} + +.header { + text-align: center; + margin-bottom: 5rem; +} + +.subTitle { + color: #0072b1; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 2px; + font-size: 0.9rem; + margin-bottom: 0.5rem; + display: block; +} + +.title { + font-size: clamp(2.5rem, 5vw, 3.5rem); + font-weight: 800; + margin-bottom: 1.5rem; + color: var(--foreground); + line-height: 1.1; +} + +.highlight { + background: linear-gradient(135deg, var(--primary), var(--secondary)); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.subtitle { + font-size: 1.2rem; + color: var(--foreground-secondary); + max-width: 600px; + margin: 0 auto; + line-height: 1.6; +} + +.gridContainer { + display: grid; + gap: 3rem; + align-items: center; +} + +/* Service Item Styling */ +.serviceItem { + display: flex; + gap: 1.5rem; + margin-bottom: 3rem; + align-items: flex-start; +} + +.serviceItem:last-child { + margin-bottom: 0; +} + +.iconWrapper { + width: 50px; + height: 50px; + border-radius: 12px; + background: var(--card-bg, rgba(255, 255, 255, 0.05)); + border: 1px solid var(--border-color); + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + transition: all 0.3s ease; +} + +.serviceItem:hover .iconWrapper { + background: var(--primary); + border-color: var(--primary); + transform: scale(1.1); + box-shadow: 0 10px 20px rgba(var(--primary-rgb), 0.3); +} + +.icon { + font-size: 1.5rem; +} + +.content h3 { + font-size: 1.25rem; + font-weight: 700; + margin-bottom: 0.5rem; + color: var(--foreground); + transition: color 0.3s ease; +} + +.serviceItem:hover .content h3 { + color: var(--primary); +} + +.content p { + font-size: 0.95rem; + color: var(--foreground-secondary); + line-height: 1.6; + margin: 0; +} + +/* Central Visual Styles */ +.columnCenter { + display: flex; + justify-content: center; + align-items: center; + min-height: 400px; + position: relative; +} + +.centralVisual { + position: relative; + width: 300px; + height: 400px; + display: flex; + align-items: center; + justify-content: center; +} + +.circleBg { + position: absolute; + width: 350px; + height: 350px; + background: radial-gradient(circle, rgba(236, 72, 153, 0.1) 0%, transparent 70%); + border-radius: 50%; + z-index: 0; + animation: pulse 4s ease-in-out infinite; +} + +@keyframes pulse { + + 0%, + 100% { + transform: scale(1); + opacity: 0.5; + } + + 50% { + transform: scale(1.1); + opacity: 0.8; + } +} + +.glassCard { + width: 240px; + height: 340px; + background: rgba(255, 255, 255, 0.03); + backdrop-filter: blur(10px); + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 20px; + position: relative; + z-index: 1; + display: flex; + flex-direction: column; + padding: 20px; + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2); + transform: rotateY(-10deg) rotateX(10deg); + transition: transform 0.5s ease; +} + +.centralVisual:hover .glassCard { + transform: rotateY(0) rotateX(0) translateY(-10px); +} + +.cardHeader { + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + padding-bottom: 10px; + margin-bottom: 20px; +} + +.dots { + display: flex; + gap: 6px; +} + +.dots span { + width: 8px; + height: 8px; + border-radius: 50%; + background: rgba(255, 255, 255, 0.2); +} + +.dots span:nth-child(1) { + background: #ff5f56; +} + +.dots span:nth-child(2) { + background: #ffbd2e; +} + +.dots span:nth-child(3) { + background: #27c93f; +} + +.cardBody { + flex: 1; + display: flex; + flex-direction: column; + gap: 20px; +} + +.graphArea { + display: flex; + align-items: flex-end; + gap: 10px; + height: 100px; + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + padding-bottom: 5px; +} + +.bar { + width: 20%; + background: linear-gradient(to top, var(--primary), var(--secondary)); + border-radius: 4px 4px 0 0; + animation: growBar 2s ease-out infinite alternate; +} + +.bar:nth-child(1) { + height: 40%; + animation-delay: 0s; +} + +.bar:nth-child(2) { + height: 70%; + animation-delay: 0.2s; +} + +.bar:nth-child(3) { + height: 50%; + animation-delay: 0.4s; +} + +.bar:nth-child(4) { + height: 90%; + animation-delay: 0.6s; +} + +@keyframes growBar { + from { + transform: scaleY(0.9); + } + + to { + transform: scaleY(1.1); + } +} + +.pieChart { + width: 80px; + height: 80px; + border-radius: 50%; + background: conic-gradient(var(--primary) 0% 70%, rgba(255, 255, 255, 0.1) 70% 100%); + margin: 0 auto; + position: relative; +} + +.pieChart::after { + content: ''; + position: absolute; + inset: 20px; + background: var(--card-bg); + /* Match visual background if possible, or transparent */ + border-radius: 50%; + backdrop-filter: blur(5px); +} + +.floatingBadge { + position: absolute; + top: -20px; + right: -20px; + background: white; + color: black; + padding: 8px 16px; + border-radius: 20px; + font-weight: bold; + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); + animation: floatBadge 3s ease-in-out infinite; +} + +@keyframes floatBadge { + + 0%, + 100% { + transform: translateY(0); + } + + 50% { + transform: translateY(-5px); + } +} + +/* Desktop Layout (1024px+) */ +@media (min-width: 1024px) { + .gridContainer { + grid-template-columns: 1fr 350px 1fr; + gap: 4rem; + } + + .columnLeft { + text-align: right; + } + + .columnLeft .serviceItem { + flex-direction: row-reverse; + } +} + +/* Tablet (768px - 1023px) */ +@media (min-width: 768px) and (max-width: 1023px) { + .gridContainer { + grid-template-columns: 1fr 1fr; + gap: 3rem; + } + + .columnCenter { + grid-column: span 2; + order: -1; + min-height: 300px; + } +} + +/* Mobile (below 768px) */ +@media (max-width: 767px) { + .gridContainer { + grid-template-columns: 1fr; + } + + .columnCenter { + order: -1; + /* Image first on mobile */ + margin-bottom: 2rem; + } + + .centralVisual { + transform: scale(0.9); + } +} \ No newline at end of file diff --git a/components/CoreServices.tsx b/components/CoreServices.tsx new file mode 100644 index 0000000..203555a --- /dev/null +++ b/components/CoreServices.tsx @@ -0,0 +1,114 @@ +'use client'; + +import styles from './CoreServices.module.css'; + +export default function CoreServices() { + return ( +
+
+
+
Our Services
+

All-in-One Social Management

+

+ Everything you need to dominate social media, conveniently organized in one powerful platform. +

+
+ +
+ {/* Left Column */} +
+
+
+ πŸ“Š +
+
+

Unified Dashboard

+

Manage Facebook, Instagram, X, and LinkedIn from one centralized, intuitive interface.

+
+
+ +
+
+ ⚑ +
+
+

Smart Scheduling

+

AI-powered timing suggestions to automatically post when your audience is most active.

+
+
+ +
+
+ πŸ“… +
+
+

Visual Calendar

+

Drag-and-drop content calendar to plan and visualize your strategy months in advance.

+
+
+
+ + {/* Center Column - Image */} +
+
+ {/* CSS-based Abstract Dashboard/Manager Illustration */} +
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ πŸš€ +128% +
+
+
+
+ + {/* Right Column */} +
+
+
+ πŸ“ˆ +
+
+

Analytics & Reports

+

Deep dive into performance metrics with automated, white-labeled reports for clients.

+
+
+ +
+
+ πŸ‘₯ +
+
+

Team Collaboration

+

Built-in approval workflows and role-based access for seamless team coordination.

+
+
+ +
+
+ πŸ’¬ +
+
+

Social Inbox

+

Never miss a comment or DM. innovative unified inbox to reply to all interactions.

+
+
+
+
+
+
+ ); +} diff --git a/components/FAQ.module.css b/components/FAQ.module.css index f7c8f1b..6d53889 100644 --- a/components/FAQ.module.css +++ b/components/FAQ.module.css @@ -1,203 +1,277 @@ -.header { - text-align: center; - margin-bottom: 4rem; +.section { + padding: 4rem 0; + background-color: transparent; } -.badge { - display: inline-flex; +.container { + max-width: 1200px; + margin: 0 auto; + padding: 0 1.5rem; +} + +.grid { + display: grid; + grid-template-columns: 1fr; + gap: 3rem; align-items: center; - gap: 0.5rem; - padding: 0.5rem 1.25rem; - background: linear-gradient(135deg, rgba(236, 72, 153, 0.1), rgba(59, 130, 246, 0.1)); - border: 1px solid rgba(236, 72, 153, 0.2); - border-radius: 50px; - font-size: 0.875rem; - font-weight: 600; - color: var(--primary); - margin-bottom: 1rem; } -.title { - font-size: clamp(2rem, 5vw, 3rem); - font-weight: 800; +.leftColumn { + padding-right: 0; +} + +.label { + color: #2563eb; + font-weight: 700; + font-size: 0.875rem; margin-bottom: 1rem; + display: block; + text-transform: uppercase; + letter-spacing: 0.05em; +} + +.heading { + font-size: 2.25rem; + font-weight: 800; + color: #111827; + margin-bottom: 2.5rem; line-height: 1.2; } -.subtitle { - font-size: 1.125rem; - color: var(--text-secondary); - max-width: 700px; - margin: 0 auto; +.featureList { + display: flex; + flex-direction: column; + gap: 1.5rem; + margin-bottom: 3rem; } -.contactLink { - color: var(--primary); - text-decoration: none; - font-weight: 600; - transition: color 0.3s ease; -} - -.contactLink:hover { - color: var(--secondary); - text-decoration: underline; -} - -.faqContainer { - max-width: 900px; - margin: 0 auto 4rem; -} - -.faqItem { - background: var(--card-bg); - border: 1px solid var(--border-color); - border-radius: 16px; - margin-bottom: 1rem; - overflow: hidden; +.featureItem { + display: flex; + gap: 1.25rem; + align-items: center; + padding: 1rem; + border-radius: 12px; + cursor: pointer; transition: all 0.3s ease; + border: 1px solid transparent; } -.faqItem:hover { - border-color: var(--primary); - box-shadow: 0 4px 20px rgba(236, 72, 153, 0.1); +.featureItem:hover { + background-color: #F8FAFC; + transform: translateX(5px); } -.faqItem.open { - border-color: var(--primary); +.featureItem.active { + background-color: white; + border-color: #E2E8F0; + box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05); + transform: translateX(10px); } -.faqQuestion { - width: 100%; +.iconWrapper { + flex-shrink: 0; + width: 48px; + height: 48px; + border-radius: 50%; display: flex; align-items: center; - justify-content: space-between; - gap: 1rem; - padding: 1.5rem; - background: transparent; - border: none; - cursor: pointer; - text-align: left; + justify-content: center; + color: white; + box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); transition: all 0.3s ease; } -.faqQuestion:hover { - background: rgba(236, 72, 153, 0.05); +/* Icon Styles - Default opacity for non-active? Or just keep colorful */ +.iconWrapper.orange { + background: linear-gradient(135deg, #f9cd35, #f9cd35); + box-shadow: 0 4px 12px rgba(255, 107, 69, 0.2); } -.questionText { +.iconWrapper.red { + background: linear-gradient(135deg, #ec4899, #ec4899); + box-shadow: 0 4px 12px rgba(244, 67, 54, 0.2); +} + +.iconWrapper.blue { + background: linear-gradient(135deg, #1255d8, #1255d8); + box-shadow: 0 4px 12px rgba(41, 121, 255, 0.2); +} + +.featureItem:hover .iconWrapper { + transform: scale(1.1); +} + +.activeIcon { + transform: scale(1.1); + box-shadow: 0 8px 15px rgba(0, 0, 0, 0.15) !important; +} + +.featureContent h4 { font-size: 1.125rem; - font-weight: 600; - color: var(--text-primary); - flex: 1; + font-weight: 700; + color: #1F2937; + margin-bottom: 0.25rem; + transition: color 0.3s; } -.icon { - width: 24px; - height: 24px; - color: var(--primary); - transition: transform 0.3s ease; - flex-shrink: 0; +.featureItem.active .featureContent h4 { + color: #EC4899; + /* Highlight active title */ } -.faqItem.open .icon { - transform: rotate(180deg); -} - -.faqAnswer { - max-height: 0; - overflow: hidden; - transition: max-height 0.3s ease; -} - -.faqItem.open .faqAnswer { - max-height: 500px; -} - -.answerContent { - padding: 0 1.5rem 1.5rem; -} - -.answerContent p { - font-size: 1rem; - line-height: 1.7; - color: var(--text-secondary); +.featureContent p { + color: #6B7280; + line-height: 1.4; + font-size: 0.9rem; margin: 0; } -.ctaBox { - background: linear-gradient(135deg, rgba(236, 72, 153, 0.1), rgba(59, 130, 246, 0.1)); - border: 1px solid var(--border-color); - border-radius: 24px; - padding: 3rem 2rem; - text-align: center; - position: relative; - overflow: hidden; +.supportSection { + margin-top: 2rem; + padding-left: 1rem; } -.ctaBox::before { - content: ''; - position: absolute; - top: -50%; - left: -50%; - width: 200%; - height: 200%; - background: radial-gradient(circle, rgba(236, 72, 153, 0.1) 0%, transparent 70%); - animation: rotate 20s linear infinite; +.supportText { + color: #6B7280; + margin-bottom: 1rem; + font-size: 0.9375rem; } -@keyframes rotate { - from { - transform: rotate(0deg); - } - - to { - transform: rotate(360deg); - } +.contactBtn { + background: linear-gradient(135deg, #4F46E5, #EC4899); + color: white; + padding: 0.75rem 1.5rem; + border-radius: 8px; + font-weight: 600; + text-decoration: none; + display: inline-block; + transition: all 0.3s ease; + box-shadow: 0 4px 6px -1px rgba(79, 70, 229, 0.2); } -.ctaTitle { - font-size: 1.75rem; - font-weight: 800; - color: var(--text-primary); - margin-bottom: 0.75rem; - position: relative; - z-index: 1; +.contactBtn:hover { + transform: translateY(-2px); + box-shadow: 0 6px 15px -1px rgba(79, 70, 229, 0.3); } -.ctaText { - font-size: 1.125rem; - color: var(--text-secondary); - margin-bottom: 2rem; - position: relative; - z-index: 1; -} - -.ctaButtons { +/* Right Column */ +.faqList { display: flex; flex-direction: column; gap: 1rem; + min-height: 500px; + /* Prevent large layout shifts */ +} + +.mobileCategoryTitle { + display: none; + font-size: 1.5rem; + font-weight: 700; + color: #111827; + margin-bottom: 1rem; +} + +.faqItem { + background: white; + border-radius: 12px; + overflow: hidden; + transition: all 0.3s ease; + border: 1px solid #F3F4F6; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02); + animation: fadeInRight 0.4s ease-out; +} + +@keyframes fadeInRight { + from { + opacity: 0; + transform: translateX(20px); + } + + to { + opacity: 1; + transform: translateX(0); + } +} + +.faqItem:hover { + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); +} + +.faqButton { + width: 100%; + padding: 1.25rem; + display: flex; align-items: center; - position: relative; - z-index: 1; + justify-content: space-between; + background: transparent; + border: none; + text-align: left; + cursor: pointer; + gap: 1rem; } -@media (min-width: 640px) { - .ctaButtons { - flex-direction: row; - justify-content: center; +.question { + font-weight: 600; + color: #1F2937; + font-size: 0.95rem; + line-height: 1.4; +} + +.chevron { + color: #EC4899; + flex-shrink: 0; + transition: transform 0.3s ease; +} + +.faqItem[data-state="open"] .chevron { + transform: rotate(180deg); +} + +.answer { + display: grid; + grid-template-rows: 0fr; + transition: grid-template-rows 0.3s ease-out; +} + +.faqItem[data-state="open"] .answer { + grid-template-rows: 1fr; +} + +.answerContent { + overflow: hidden; +} + +.answerInner { + padding: 0 1.25rem 1.25rem; + color: #6B7280; + line-height: 1.6; + font-size: 0.9375rem; +} + +@media (min-width: 1024px) { + .grid { + grid-template-columns: 0.8fr 1.2fr; + gap: 4rem; + } + + .heading { + font-size: 3rem; + } + + .section { + padding: 4rem 0; } } -@media (min-width: 768px) { - .ctaBox { - padding: 4rem 3rem; +@media (max-width: 1023px) { + .featureItem.active { + transform: translateX(0); + background-color: #F0F9FF; + /* Highlight slightly differently on mobile/tablet */ } - .questionText { - font-size: 1.25rem; - } - - .answerContent p { - font-size: 1.0625rem; + .mobileCategoryTitle { + display: block; + /* Show title above questions on mobile */ } } \ No newline at end of file diff --git a/components/FAQ.tsx b/components/FAQ.tsx index 80051a4..c35d482 100644 --- a/components/FAQ.tsx +++ b/components/FAQ.tsx @@ -1,115 +1,197 @@ 'use client'; import { useState } from 'react'; +import { Calendar, Sparkles, ShieldCheck, ChevronDown } from 'lucide-react'; import styles from './FAQ.module.css'; +interface FAQItem { + question: string; + answer: string; +} + +interface FAQCategory { + id: string; + title: string; + description: string; + icon: React.ReactNode; + colorClass: string; + faqs: FAQItem[]; +} + export default function FAQ() { + const [activeCategoryIndex, setActiveCategoryIndex] = useState(0); const [openIndex, setOpenIndex] = useState(0); - const faqs = [ + const categories: FAQCategory[] = [ { - question: 'What social media platforms does SocialBuddy support?', - answer: 'SocialBuddy supports all major social media platforms including Facebook, Instagram, Twitter (X), LinkedIn, Pinterest, TikTok, YouTube, and more. You can manage unlimited accounts across all these platforms from a single dashboard.', + id: 'scheduling', + title: 'Convenient Scheduling', + description: 'Easily plan and schedule your content across all platforms.', + icon: , + colorClass: 'orange', + faqs: [ + { + question: 'How does the multi-platform scheduling work?', + answer: 'Our intuitive calendar allows you to drag and drop content to schedule it across Facebook, Instagram, LinkedIn, and more simultaneously. You can customize the caption and media for each platform individually if needed.' + }, + { + question: 'Can I bulk upload posts from a CSV file?', + answer: 'Yes! You can upload hundreds of posts at once using our CSV bulk uploader. We also support bulk image uploading to match your spreadsheet content.' + }, + { + question: 'Does SocialBuddy suggest the best times to post?', + answer: 'Absolutely. Our AI analyzes your audience engagement history to recommend the optimal posting times for each specific platform to maximize reach.' + }, + { + question: 'Is there a limit to how many posts I can schedule?', + answer: 'Our Pro and Premium plans offer unlimited scheduling. The Starter plan includes up to 50 scheduled posts per month, which is sufficient for most individual creators.' + }, + { + question: 'Can I preview how my posts will look?', + answer: 'Yes, we provide a realistic preview for each platform so you can see exactly how your image, caption, and hashtags will appear before they go live.' + } + ] }, { - question: 'Can I try SocialBuddy before committing to a paid plan?', - answer: 'Absolutely! We offer a 14-day free trial for all our paid plans. No credit card is required to start your trial. You can explore all features and see how SocialBuddy fits your needs before making any commitment.', + id: 'ai', + title: 'Best AI Content Team', + description: 'Leverage advanced AI to generate captions and ideas instantly.', + icon: , + colorClass: 'red', + faqs: [ + { + question: 'How does the AI caption generator work?', + answer: 'We utilize advanced natural language processing models. You simply provide a topic or an image, and our AI generates engaging, on-brand captions with relevant emojis and hashtags.' + }, + { + question: 'Can I teach the AI my brand voice?', + answer: 'Yes! You can set up "Brand Personas" where you define your tone (e.g., professional, witty, casual). The AI will then tailor all generated content to match your specific style.' + }, + { + question: 'Does the AI generate images as well?', + answer: 'Currently, our AI focuses on text generation (captions, scripts, blog ideas). However, we integrate with stock photo libraries and design tools to help you find the perfect visuals.' + }, + { + question: 'Is the AI content unique?', + answer: 'Yes, every piece of content is generated from scratch based on your inputs. It is not pre-written templates, ensuring your content remains fresh and original.' + }, + { + question: 'Can AI help with hashtag research?', + answer: 'Definitely. Our AI analyzes your post content and niche to suggest high-traffic, low-competition hashtags that boost discoverability.' + } + ] }, { - question: 'How does the AI content assistant work?', - answer: 'Our AI content assistant uses advanced machine learning to analyze your brand voice, industry trends, and audience preferences. It can generate engaging captions, suggest relevant hashtags, recommend optimal posting times, and even help you create content ideas based on trending topics.', - }, - { - question: 'Is my data secure with SocialBuddy?', - answer: 'Security is our top priority. We use bank-level encryption (256-bit SSL) to protect your data. All social media connections are made through official OAuth protocols, and we never store your social media passwords. We\'re also GDPR and SOC 2 compliant.', - }, - { - question: 'Can I manage multiple team members and clients?', - answer: 'Yes! SocialBuddy offers robust team collaboration features including role-based access control, approval workflows, client management, and activity logs. You can invite unlimited team members on our Pro and Premium plans.', - }, - { - question: 'What kind of analytics and reporting does SocialBuddy provide?', - answer: 'SocialBuddy provides comprehensive analytics including engagement rates, follower growth, reach, impressions, best performing content, audience demographics, and competitor analysis. You can generate custom white-labeled reports and export data in various formats.', - }, - { - question: 'Can I schedule posts in advance?', - answer: 'Yes! You can schedule posts days, weeks, or even months in advance. Our smart scheduling feature uses AI to recommend the best times to post based on when your audience is most active. You can also use our bulk upload feature to schedule hundreds of posts at once.', - }, - { - question: 'What happens if I exceed my plan limits?', - answer: 'If you approach your plan limits, we\'ll notify you in advance. You can easily upgrade to a higher plan at any time. If you temporarily exceed limits, we won\'t interrupt your service - we\'ll just let you know it\'s time to upgrade.', - }, + id: 'growth', + title: 'Guaranteed Satisfaction', + description: 'Experience significant growth in engagement and reach.', + icon: , + colorClass: 'blue', + faqs: [ + { + question: 'What happens if I am not satisfied with the results?', + answer: 'We offer a 30-day money-back guarantee. If you don\'t see the value in SocialBuddy within the first month, just let us know and we will refund your subscription.' + }, + { + question: 'Is my social media account data secure?', + answer: 'Security is paramount. We use bank-level 256-bit encryption and never store your account passwords. We connect via official APIs which are safe and compliant.' + }, + { + question: 'Can I cancel my subscription at any time?', + answer: 'Yes, there are no long-term contracts. You can cancel your monthly subscription at any time from your dashboard settings without any cancellation fees.' + }, + { + question: 'Do you offer team collaboration features?', + answer: 'Yes, our higher-tier plans allow you to invite team members, assign roles (Editor, Admin), and set up approval workflows to ensure quality control.' + }, + { + question: 'How can I contact support if I have issues?', + answer: 'We offer 24/7 priority support via live chat and email for all our customers. Our average response time is under 15 minutes.' + } + ] + } ]; + const currentCategory = categories[activeCategoryIndex]; + const toggleFAQ = (index: number) => { setOpenIndex(openIndex === index ? null : index); }; - return ( -
-
-
-
- ❓ - FAQ -
-

- Frequently Asked Questions -

-

- Everything you need to know about SocialBuddy. Can't find the answer you're looking for? - Contact our support team. -

-
+ const handleCategoryClick = (index: number) => { + setActiveCategoryIndex(index); + setOpenIndex(0); // Reset to first item open or closed when switching? Let's open first item. + }; -
- {faqs.map((faq, index) => ( -
- -
-
-

{faq.answer}

+ +
+
+
+ {faq.answer} +
+
-
- ))} -
- -
-

Still have questions?

-

- Our friendly support team is here to help you 24/7 -

-
diff --git a/components/Features.module.css b/components/Features.module.css index 66de722..8d65df6 100644 --- a/components/Features.module.css +++ b/components/Features.module.css @@ -4,6 +4,18 @@ margin: 0 auto 4rem; } +.subTitle { + background: linear-gradient(to right, #2563eb 0%, #ec4899 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 1px; + font-size: 0.875rem; + margin-bottom: 1rem; +} + .badge { display: inline-flex; align-items: center; @@ -15,12 +27,14 @@ font-weight: 600; margin-bottom: 1.5rem; color: var(--primary); + border: 1px solid var(--border-color); } .title { font-size: clamp(2rem, 4vw, 3rem); margin-bottom: 1rem; color: var(--foreground); + line-height: 1.2; } .subtitle { @@ -29,96 +43,172 @@ line-height: 1.6; } -.featuresGrid { +.contentWrapper { display: grid; grid-template-columns: 1fr; - gap: 2rem; + gap: 3rem; + align-items: start; } -@media (min-width: 640px) { - .featuresGrid { - grid-template-columns: repeat(2, 1fr); - } -} -@media (min-width: 1024px) { - .featuresGrid { - grid-template-columns: repeat(3, 1fr); - } -} - -.featureCard { - background: var(--card-bg); - border-radius: var(--radius-xl); - padding: 2rem; - box-shadow: var(--shadow-md); - transition: all 0.3s ease; - border: 1px solid var(--border-color); - animation: fadeIn 0.6s ease-out forwards; -} - -.featureCard:hover { - transform: translateY(-10px); - box-shadow: var(--shadow-xl); - border-color: var(--primary); -} - -.iconWrapper { - width: 70px; - height: 70px; - border-radius: var(--radius-xl); +/* Accordion Styles */ +.accordion { display: flex; - align-items: center; - justify-content: center; - margin-bottom: 1.5rem; - transition: all 0.3s ease; -} - -.featureCard:hover .iconWrapper { - transform: scale(1.1) rotate(5deg); -} - -.icon { - font-size: 2.5rem; - transition: all 0.3s ease; -} - -.featureCard:hover .icon { - animation: float 2s ease-in-out infinite; -} - -.featureTitle { - font-size: 1.5rem; - font-weight: 700; - margin-bottom: 1rem; - color: var(--foreground); - font-family: var(--font-display); -} - -.featureDescription { - color: var(--foreground-secondary); - line-height: 1.6; - margin-bottom: 1.5rem; -} - -.learnMore { - color: var(--primary); - font-weight: 600; - cursor: pointer; - display: flex; - align-items: center; - gap: 0.5rem; - transition: all 0.3s ease; -} - -.learnMore:hover { + flex-direction: column; gap: 1rem; } -.arrow { +.accordionItem { + padding: 1.5rem; + border-radius: 1rem; + background: transparent; + border: 1px solid transparent; + cursor: pointer; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + position: relative; + overflow: hidden; +} + +.accordionItem:hover { + background: rgba(255, 255, 255, 0.02); +} + +.accordionItem.active { + background: var(--card-bg, rgba(255, 255, 255, 0.05)); + border-color: var(--border-color); + box-shadow: 0 4px 20px -5px rgba(0, 0, 0, 0.2); +} + +.accordionItem::before { + content: ''; + position: absolute; + left: 0; + top: 0; + bottom: 0; + width: 4px; + background: var(--primary); + transform: scaleY(0); transition: transform 0.3s ease; } -.learnMore:hover .arrow { - transform: translateX(5px); +.accordionItem.active::before { + transform: scaleY(1); +} + +.itemHeader { + display: flex; + align-items: center; + gap: 1.25rem; +} + +.iconWrapper { + width: 50px; + height: 50px; + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + font-size: 1.5rem; + background: rgba(var(--primary-rgb), 0.1); + color: var(--foreground); + transition: all 0.3s ease; + flex-shrink: 0; +} + +.accordionItem.active .iconWrapper { + background: var(--primary); + color: white; + transform: scale(1.1); + box-shadow: 0 0 15px var(--primary); +} + +.itemTitle { + font-size: 1.25rem; + font-weight: 700; + color: var(--foreground); + margin: 0; + transition: color 0.3s ease; +} + +.accordionItem.active .itemTitle { + color: var(--primary); +} + +.itemContent { + display: grid; + grid-template-rows: 0fr; + transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1); + padding-left: calc(50px + 1.25rem); + /* Align with text */ +} + +.accordionItem.active .itemContent { + grid-template-rows: 1fr; + margin-top: 1rem; +} + +.contentInner { + overflow: hidden; + color: var(--foreground-secondary); + line-height: 1.6; + font-size: 1rem; +} + +/* Image Column */ +.desktopImageWrapper { + display: none; + /* Hidden by default on mobile */ + position: relative; + width: 100%; + border-radius: 1.5rem; + overflow: hidden; + border: 1px solid var(--border-color); + box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5); + background: var(--card-bg); +} + +.mobileImageWrapper { + margin-bottom: 1rem; + border-radius: 0.75rem; + overflow: hidden; + border: 1px solid var(--border-color); +} + +.mobileImage { + width: 100%; + height: auto; + object-fit: cover; + display: block; +} + +@media (min-width: 1024px) { + .contentWrapper { + grid-template-columns: 1.2fr 1fr; + gap: 5rem; + align-items: stretch; + } + + .desktopImageWrapper { + display: block; + height: auto; + min-height: 100%; + } + + .mobileImageWrapper { + display: none; + } +} + +.featureImage { + width: 100%; + height: 100%; + object-fit: cover; + transition: all 0.5s ease; +} + +.imageOverlay { + position: absolute; + inset: 0; + background: linear-gradient(to bottom, transparent 60%, rgba(0, 0, 0, 0.8)); + pointer-events: none; } \ No newline at end of file diff --git a/components/Features.tsx b/components/Features.tsx index 6b86aff..762be79 100644 --- a/components/Features.tsx +++ b/components/Features.tsx @@ -1,42 +1,54 @@ +'use client'; + +import { useState } from 'react'; +import Image from 'next/image'; import styles from './Features.module.css'; export default function Features() { + const [activeIndex, setActiveIndex] = useState(0); + const features = [ { icon: 'πŸ“…', title: 'Smart Scheduling', - description: 'Schedule posts across all platforms with AI-powered optimal timing suggestions.', + description: 'Schedule posts across all platforms with AI-powered optimal timing suggestions to maximize your reach and engagement.', color: '#667eea', + image: '/features/scheduling.png' }, { icon: 'πŸ“Š', title: 'Advanced Analytics', - description: 'Track performance metrics, engagement rates, and audience insights in real-time.', + description: 'Track performance metrics, engagement rates, and audience insights in real-time with comprehensive interactive dashboards.', color: '#ec4899', + image: '/features/analytics.png' }, { icon: 'πŸ€–', title: 'AI Content Assistant', - description: 'Generate engaging captions and hashtags with our AI-powered content tools.', + description: 'Generate engaging captions, hashtags, and creative content ideas instantly with our advanced AI-powered writing tools.', color: '#14b8a6', + image: '/features/ai.png' }, { icon: 'πŸ‘₯', title: 'Team Collaboration', - description: 'Work seamlessly with your team with role-based access and approval workflows.', + description: 'Work seamlessly with your team using role-based access, approval workflows, and shared content calendars.', color: '#f59e0b', + image: '/features/platforms.png' }, { icon: 'πŸ“±', title: 'Multi-Platform Support', - description: 'Manage Facebook, Instagram, Twitter, LinkedIn, and more from one dashboard.', + description: 'Manage Facebook, Instagram, Twitter, LinkedIn, and more from a single, unified dashboard without switching tabs.', color: '#8b5cf6', + image: '/features/platforms.png' }, { icon: 'πŸ””', title: 'Real-Time Notifications', - description: 'Stay updated with instant alerts for mentions, comments, and engagement.', + description: 'Stay on top of your community with instant alerts for new mentions, comments, and engagement opportunities.', color: '#ef4444', + image: '/features/ai.png' }, ]; @@ -44,37 +56,74 @@ export default function Features() {
-
- ✨ - Features -
+
Features

- Everything You Need to Succeed + Everything You Need to Succeed

Powerful tools designed to streamline your social media management and boost your online presence.

-
- {features.map((feature, index) => ( -
-
- - {feature.icon} - +
+ {/* Left Column: Image Preview */} +
+ {features.map((feature, index) => ( + {feature.title} + ))} +
+
+ + {/* Right Column: Accordion */} +
+ {features.map((feature, index) => ( +
setActiveIndex(index)} + > +
+
+ {feature.icon} +
+

+ {feature.title} +

+
+
+
+
+ {feature.title} +
+ {feature.description} +
+
-

{feature.title}

-

{feature.description}

-
- Learn more β†’ -
-
- ))} + ))} +
diff --git a/components/Footer.module.css b/components/Footer.module.css index 4e820ba..f138104 100644 --- a/components/Footer.module.css +++ b/components/Footer.module.css @@ -1,9 +1,11 @@ .footer { - background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + background: linear-gradient(135deg, #a855f7, #ec4899); + /* Purple/Pink gradient per user image */ color: white; - padding: 4rem 0 2rem; - margin-top: 6rem; + padding: 6rem 0 3rem; + /* Increase top padding */ position: relative; + margin-top: 0; } .footer::before { @@ -130,7 +132,8 @@ flex-direction: column; gap: 1rem; align-items: center; - justify-content: space-between; + justify-content: center; + /* Centered */ padding-top: 2rem; border-top: 1px solid rgba(255, 255, 255, 0.2); } diff --git a/components/Footer.tsx b/components/Footer.tsx index 7db413e..4355ba7 100644 --- a/components/Footer.tsx +++ b/components/Footer.tsx @@ -1,4 +1,5 @@ import Link from 'next/link'; +import { Facebook, Instagram, Linkedin, Twitter, Youtube } from 'lucide-react'; import styles from './Footer.module.css'; export default function Footer() { @@ -13,7 +14,7 @@ export default function Footer() { ], company: [ { label: 'About Us', href: '/about' }, - { label: 'Blog', href: '/blog' }, + { label: 'Blog', href: '/resources' }, { label: 'Careers', href: '/careers' }, { label: 'Contact', href: '/contact' }, ], @@ -32,11 +33,11 @@ export default function Footer() { }; const socialLinks = [ - { icon: '𝕏', href: 'https://twitter.com', label: 'Twitter' }, - { icon: 'πŸ“˜', href: 'https://facebook.com', label: 'Facebook' }, - { icon: 'πŸ“·', href: 'https://instagram.com', label: 'Instagram' }, - { icon: 'πŸ’Ό', href: 'https://linkedin.com', label: 'LinkedIn' }, - { icon: 'πŸ“Ί', href: 'https://youtube.com', label: 'YouTube' }, + { icon: , href: 'https://twitter.com', label: 'Twitter' }, + { icon: , href: 'https://facebook.com', label: 'Facebook' }, + { icon: , href: 'https://instagram.com', label: 'Instagram' }, + { icon: , href: 'https://linkedin.com', label: 'LinkedIn' }, + { icon: , href: 'https://youtube.com', label: 'YouTube' }, ]; return ( @@ -46,8 +47,8 @@ export default function Footer() { {/* Brand Section */}
- πŸš€ - SocialBuddy + SocialBuddy Logo +

Empowering businesses to manage their social media presence with powerful tools and analytics. @@ -108,16 +109,21 @@ export default function Footer() {

+ {/* Bottom Bar */} {/* Bottom Bar */}

- Β© {currentYear} SocialBuddy. All rights reserved. + Β© Copyright {currentYear} SocialBuddy | Powered by{' '} + + MetatronCube + {' '} + All Rights Reserved

-
- πŸ”’ Secure - ⚑ Fast - 🌍 Global -
diff --git a/components/Hero.module.css b/components/Hero.module.css index 6cf3f18..3a41a67 100644 --- a/components/Hero.module.css +++ b/components/Hero.module.css @@ -1,398 +1,267 @@ -.hero { +.heroSection { position: relative; + padding: 8rem 0 4rem; + /* Top padding for fixed navbar */ + /* Stronger Pastel Gradient for differentiation */ + background: linear-gradient(135deg, #fce7f3 0%, #e0f2fe 100%); + overflow: hidden; min-height: 100vh; display: flex; align-items: center; - padding: 8rem 0 6rem; - overflow: hidden; - background: - linear-gradient(to bottom, rgba(15, 23, 42, 0.3), rgba(15, 23, 42, 0.9)), - url('/hero-custom.png'); - background-size: cover; - background-position: center; - background-repeat: no-repeat; - /* Custom user-uploaded background */ - color: white; } -.hero::before { - content: ''; +/* Background Abstract Circles */ +.heroBackground { position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: - radial-gradient(circle at 15% 50%, rgba(236, 72, 153, 0.1), transparent 25%), - radial-gradient(circle at 85% 30%, rgba(59, 130, 246, 0.1), transparent 25%); + inset: 0; + pointer-events: none; z-index: 0; - pointer-events: none; } -.canvas { +.circleBg1 { position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - pointer-events: none; - z-index: 1; - opacity: 0.4; -} - -/* Floating gradient orbs - refined */ -.gradientOrb1, -.gradientOrb2, -.gradientOrb3 { - position: absolute; - border-radius: 50%; - filter: blur(80px); - opacity: 0.3; - z-index: 0; - pointer-events: none; -} - -.gradientOrb1 { width: 600px; height: 600px; - background: radial-gradient(circle, rgba(236, 72, 153, 0.3), transparent 70%); - top: -20%; + background: radial-gradient(circle, rgba(236, 72, 153, 0.05) 0%, transparent 70%); + top: -10%; left: -10%; - animation: floatOrb 25s ease-in-out infinite alternate; + border-radius: 50%; } -.gradientOrb2 { - width: 500px; - height: 500px; - background: radial-gradient(circle, rgba(59, 130, 246, 0.3), transparent 70%); +.circleBg2 { + position: absolute; + width: 700px; + height: 700px; + background: radial-gradient(circle, rgba(59, 130, 246, 0.05) 0%, transparent 70%); bottom: -10%; right: -10%; - animation: floatOrb 20s ease-in-out infinite alternate-reverse; + border-radius: 50%; } -.gradientOrb3 { - width: 400px; - height: 400px; - background: radial-gradient(circle, rgba(139, 92, 246, 0.2), transparent 70%); - top: 40%; - left: 60%; - animation: floatOrb 22s ease-in-out infinite alternate; +.container { + position: relative; + z-index: 1; + width: 100%; } -@keyframes floatOrb { - 0% { - transform: translate(0, 0); - } - - 100% { - transform: translate(30px, -30px); - } -} - -.heroContent { +.contentWrapper { display: grid; grid-template-columns: 1fr; gap: 4rem; align-items: center; - position: relative; - z-index: 2; - max-width: 1280px; - margin: 0 auto; - padding: 0 2rem; } @media (min-width: 1024px) { - .heroContent { + .contentWrapper { grid-template-columns: 1.1fr 0.9fr; - gap: 6rem; + gap: 2rem; } } -.textContent { +/* Left Content */ +.leftContent { display: flex; flex-direction: column; justify-content: center; - animation: slideInUp 1s ease-out; } -/* Animated badge - refined */ .badge { - position: relative; display: inline-flex; align-items: center; gap: 0.75rem; - padding: 0.5rem 1.25rem; - background: rgba(255, 255, 255, 0.03); - backdrop-filter: blur(12px); - -webkit-backdrop-filter: blur(12px); - border-radius: 9999px; - font-size: 0.875rem; - font-weight: 500; - margin-bottom: 2.5rem; - border: 1px solid rgba(255, 255, 255, 0.08); - box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1); + background: rgba(236, 72, 153, 0.1); + /* Light pink bg */ + padding: 0.5rem 1rem; + border-radius: 50px; + margin-bottom: 1.5rem; align-self: flex-start; - color: rgba(255, 255, 255, 0.9); - transition: all 0.3s ease; } -.badge:hover { - background: rgba(255, 255, 255, 0.08); - border-color: rgba(255, 255, 255, 0.15); - transform: translateY(-1px); +@media (max-width: 1024px) { + .badge { + margin-left: auto; + margin-right: auto; + display: flex; + justify-content: center; + align-items: center; + text-align: center; + } } -.badgePulse { - position: absolute; - inset: 0; - border-radius: inherit; - box-shadow: 0 0 0 0 rgba(236, 72, 153, 0.4); - animation: pulseShadow 2s infinite; + +.badgeLabel { + background: #6cb655; + /* Green like ref "NEW" */ + color: white; + padding: 0.15rem 0.5rem; + border-radius: 4px; + font-size: 0.7rem; + font-weight: 700; + text-transform: uppercase; } -@keyframes pulseShadow { - 0% { - box-shadow: 0 0 0 0 rgba(236, 72, 153, 0.4); - } - - 70% { - box-shadow: 0 0 0 10px rgba(236, 72, 153, 0); - } - - 100% { - box-shadow: 0 0 0 0 rgba(236, 72, 153, 0); - } +.badgeText { + font-size: 0.9rem; + color: #0f172a; + font-weight: 500; } .title { - font-size: clamp(3rem, 5vw, 4.5rem); + font-size: clamp(2.5rem, 5vw, 4rem); line-height: 1.1; - margin-bottom: 1.5rem; - color: white; font-weight: 800; - letter-spacing: -0.02em; -} - -.typingText { - background: linear-gradient(to right, #ffffff, #e2e8f0); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; + color: #0f172a; + /* Dark text */ + margin-bottom: 1.5rem; } .cursor { display: inline-block; width: 3px; - height: 1em; - background-color: #3b82f6; - margin-left: 4px; - vertical-align: middle; - animation: blink 1s step-end infinite; + background: #3b82f6; + animation: blink 1s infinite; } @keyframes blink { - - 0%, - 100% { - opacity: 1; - } - 50% { opacity: 0; } } - .subtitle { - font-size: clamp(1.125rem, 2vw, 1.25rem); - line-height: 1.6; + font-size: 1.1rem; + color: #64748b; margin-bottom: 3rem; - color: rgba(255, 255, 255, 0.6); - max-width: 580px; -} - -.ctaButtons { - display: flex; - flex-wrap: wrap; - gap: 1.25rem; - margin-bottom: 4rem; -} - -/* Premium Buttons */ -.primaryCta { - position: relative; - padding: 1rem 2rem; - background: linear-gradient(135deg, #ec4899, #8b5cf6); - color: white; - border-radius: 12px; - font-weight: 600; - font-size: 1rem; - display: flex; - align-items: center; - gap: 0.75rem; - transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); - box-shadow: 0 10px 30px -10px rgba(236, 72, 153, 0.4); - overflow: hidden; -} - -.primaryCta:hover { - transform: translateY(-2px); - box-shadow: 0 20px 40px -15px rgba(236, 72, 153, 0.5); -} - -.buttonGlow { - position: absolute; - top: 0; - left: -100%; - width: 50%; - height: 100%; - background: linear-gradient(to right, transparent, rgba(255, 255, 255, 0.3), transparent); - transform: skewX(-20deg); - transition: left 0.5s; -} - -.primaryCta:hover .buttonGlow { - left: 150%; - transition: left 0.7s; -} - -.secondaryCta { - padding: 1rem 2rem; - background: rgba(255, 255, 255, 0.05); - backdrop-filter: blur(10px); - border: 1px solid rgba(255, 255, 255, 0.1); - color: white; - border-radius: 12px; - font-weight: 600; - display: flex; - align-items: center; - gap: 0.75rem; - transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); -} - -.secondaryCta:hover { - background: rgba(255, 255, 255, 0.1); - border-color: rgba(255, 255, 255, 0.2); - transform: translateY(-2px); -} - -.arrow { - transition: transform 0.3s ease; -} - -.primaryCta:hover .arrow { - transform: translateX(4px); -} - -/* Trust badges - cleaner */ -.trustBadges { - display: flex; - gap: 4rem; - padding-top: 1.5rem; - border-top: 1px solid rgba(255, 255, 255, 0.08); -} - -.trustBadge { - display: flex; - flex-direction: column; -} - -.trustValue { - font-size: 1.75rem; - font-weight: 700; - color: white; - line-height: 1.2; - margin-bottom: 0.25rem; -} - -.trustLabel { - font-size: 0.875rem; - color: rgba(255, 255, 255, 0.5); - font-weight: 400; -} - -/* Image Content / Dashboard Preview */ -.imageContent { - position: relative; - perspective: 1200px; - display: flex; - justify-content: center; - align-items: center; -} - -.dashboardPreview { - position: relative; - background: rgba(30, 41, 59, 0.4); - backdrop-filter: blur(20px); - -webkit-backdrop-filter: blur(20px); - border-radius: 20px; - padding: 2.5rem; - border: 1px solid rgba(255, 255, 255, 0.08); - box-shadow: - 0 25px 50px -12px rgba(0, 0, 0, 0.5), - 0 0 0 1px rgba(255, 255, 255, 0.05) inset; - transform-style: preserve-3d; - transform: rotateY(-8deg) rotateX(4deg); - transition: transform 0.5s ease; - animation: floatCard 8s ease-in-out infinite; + line-height: 1.6; max-width: 500px; +} + +/* Search Bar CTA */ +.searchBarCta { + display: flex; + align-items: center; + background: white; + padding: 0.5rem; + border-radius: 12px; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05); + max-width: 500px; + margin-bottom: 3rem; + border: 1px solid #e2e8f0; +} + +.inputGroup { + flex: 1; + display: flex; + align-items: center; + padding-left: 1rem; + gap: 0.75rem; +} + +.searchIcon { + font-size: 1.2rem; + color: #94a3b8; +} + +.searchInput { width: 100%; + border: none; + outline: none; + font-size: 1rem; + color: #334155; + background: transparent; } -.dashboardPreview:hover { - transform: rotateY(-4deg) rotateX(2deg) scale(1.02); +.searchBtn { + background: #6cb655; + /* Green Button like Ref */ + color: white; + border: none; + padding: 0.75rem 1.5rem; + border-radius: 8px; + font-weight: 600; + cursor: pointer; + transition: background 0.2s; + white-space: nowrap; } -@keyframes floatCard { - - 0%, - 100% { - transform: rotateY(-8deg) rotateX(4deg) translateY(0); - } - - 50% { - transform: rotateY(-8deg) rotateX(4deg) translateY(-15px); - } +.searchBtn:hover { + background: #6cb655; } +/* Trusted By */ +.trustedBy p { + font-size: 0.9rem; + color: #64748b; + margin-bottom: 1rem; +} -/* Floating icons - clearer */ -.floatingIcon { - position: absolute; - width: 60px; - height: 60px; - background: rgba(30, 41, 59, 0.6); - backdrop-filter: blur(12px); - border-radius: 16px; +.trustedIcons { + display: flex; + gap: 1.5rem; + align-items: center; +} + +.trustIcon { + font-size: 1.5rem; + font-weight: 700; + opacity: 0.8; + filter: grayscale(0%); + /* Keep colored like ref */ +} + +/* Right Content */ +.rightContent { + position: relative; + height: 500px; + /* Adjust as needed */ display: flex; align-items: center; justify-content: center; - font-size: 1.75rem; - border: 1px solid rgba(255, 255, 255, 0.1); - box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.3); - z-index: 10; - animation: floatIcon 6s ease-in-out infinite; } -.icon1 { - top: -20px; - left: -20px; - animation-delay: 0s; +.imageContainer { + position: relative; + width: 100%; + height: 100%; } -.icon2 { - top: 30%; - right: -30px; - animation-delay: 2s; +.mainImageCircle { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + z-index: 1; } -.icon3 { - bottom: -15px; - left: 20%; - animation-delay: 4s; +.heroImage { + max-height: 500px; + max-width: 100%; + height: auto; + object-fit: contain; + /* Clean, no shadow if image has its own transparency */ + filter: drop-shadow(0 20px 30px rgba(0, 0, 0, 0.08)); } -@keyframes floatIcon { +/* Floating Cards */ +.floatCard { + position: absolute; + background: white; + border-radius: 16px; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); + padding: 1rem; + display: flex; + align-items: center; + gap: 1rem; + z-index: 2; + animation: float 4s ease-in-out infinite; +} + +@keyframes float { 0%, 100% { @@ -400,252 +269,200 @@ } 50% { - transform: translateY(-12px); + transform: translateY(-10px); } } -.previewHeader { - display: flex; - align-items: center; - gap: 1rem; - margin-bottom: 2rem; - padding-bottom: 1.5rem; - border-bottom: 1px solid rgba(255, 255, 255, 0.08); -} - -.previewDots { - display: flex; - gap: 0.5rem; -} - -.previewDots span { - width: 10px; - height: 10px; - border-radius: 50%; - background: rgba(255, 255, 255, 0.15); -} - -.previewTitle { - font-size: 0.875rem; - color: rgba(255, 255, 255, 0.5); - flex-grow: 1; - text-align: center; - letter-spacing: 0.5px; -} - -.previewBody { - display: grid; - gap: 1.5rem; -} - -.previewCard { - background: rgba(255, 255, 255, 0.02); - border-radius: 12px; - padding: 1.5rem; - border: 1px solid rgba(255, 255, 255, 0.05); -} - -.cardHeader { - display: flex; - align-items: center; - gap: 0.75rem; - color: rgba(255, 255, 255, 0.8); - margin-bottom: 1.25rem; - font-weight: 500; - font-size: 0.95rem; -} - -.chartBar { - height: 6px; - background: rgba(255, 255, 255, 0.05); - border-radius: 4px; - position: relative; - overflow: hidden; - margin-bottom: 1rem; -} - -.chartBar::after { - content: ''; - position: absolute; - top: 0; +/* Card 1: Congrats (Top Left / Top Center) */ +.cardCongrats { + top: 10%; left: 0; - height: 100%; - width: var(--progress, 0%); - background: linear-gradient(90deg, #ec4899, #8b5cf6); - border-radius: 4px; - animation: fillBar 1.5s ease-out forwards; + animation-delay: 0s; } -.chartBar:nth-child(1) { - --progress: 75%; +.cardIcon { + width: 40px; + height: 40px; + background: #fff1f2; + color: #f43f5e; + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + font-size: 1.2rem; } -.chartBar:nth-child(2) { - --progress: 45%; +.cardText { + display: flex; + flex-direction: column; } -.chartBar:nth-child(3) { - --progress: 90%; +.cardText strong { + font-size: 0.9rem; + color: #0f172a; } -.scheduleItem { - height: 12px; - background: rgba(255, 255, 255, 0.05); - border-radius: 4px; - margin-bottom: 12px; +.cardText span { + font-size: 0.75rem; + color: #64748b; } -@keyframes fillBar { - from { - width: 0; - } - - to { - width: var(--progress); - } +.checkIcon { + width: 20px; + height: 20px; + background: #6cb655; + color: white; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-size: 0.7rem; } +/* Card 2: Users (Bottom Right) */ +.cardUsers { + bottom: 20%; + right: 0; + flex-direction: column; + /* Stacked layout like ref */ + align-items: flex-start; + padding: 1.25rem; + animation-delay: 1.5s; + background: rgba(255, 255, 255, 0.8); + backdrop-filter: blur(10px); +} -/* Scroll indicator - minimalist */ -.scrollIndicator { +.userCount { + font-size: 1.1rem; + font-weight: 700; + color: #0f172a; + display: flex; + flex-direction: column; + margin-bottom: 0.5rem; +} + +.userLabel { + font-size: 0.75rem; + font-weight: 400; + color: #64748b; +} + +.userAvatars { + display: flex; +} + +.avatar { + width: 32px; + height: 32px; + border-radius: 50%; + background: #e2e8f0; + border: 2px solid white; + margin-left: -10px; + display: flex; + align-items: center; + justify-content: center; + font-size: 1rem; +} + +.avatar:first-child { + margin-left: 0; +} + +.addBtn { + width: 32px; + height: 32px; + border-radius: 50%; + background: #f1f5f9; + color: #64748b; + border: 2px solid white; + margin-left: -10px; + display: flex; + align-items: center; + justify-content: center; + font-size: 0.8rem; + font-weight: 700; +} + +/* Card 3: Message (Bottom Left) */ +.cardMessage { + bottom: 10%; + left: 10%; + padding: 0.75rem 1rem; + animation-delay: 2.5s; +} + +.msgAvatar { + width: 36px; + height: 36px; + border-radius: 50%; + background: #bfdbfe; + display: flex; + align-items: center; + justify-content: center; + font-size: 1.2rem; +} + +.msgText span { + font-size: 0.75rem; + color: #64748b; + display: block; +} + +.msgText p { + font-size: 0.85rem; + color: #0f172a; + font-weight: 500; + margin: 0; +} + +/* Dots */ +.sliderDots { position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%); display: flex; - flex-direction: column; - align-items: center; - gap: 0.75rem; - opacity: 0.5; - animation: fadeBounce 2s ease-in-out infinite; - pointer-events: none; + gap: 0.5rem; } -.scrollIndicator span { - font-size: 0.75rem; - letter-spacing: 1px; - text-transform: uppercase; -} - -.mouse { - width: 20px; - height: 32px; - border: 2px solid white; - border-radius: 12px; - position: relative; -} - -.mouseWheel { - width: 2px; - height: 6px; - background: white; - position: absolute; - top: 6px; - left: 50%; - transform: translateX(-50%); - border-radius: 1px; -} - -@keyframes fadeBounce { - - 0%, - 100% { - opacity: 0.5; - transform: translate(-50%, 0); - } - - 50% { - opacity: 0.8; - transform: translate(-50%, -5px); - } -} - -/* Morphing shapes - softer, blended */ -.morphingShape1, -.morphingShape2 { - position: absolute; +.dot { + width: 10px; + height: 10px; border-radius: 50%; - filter: blur(100px); - opacity: 0.15; - z-index: 0; + background: #cbd5e1; + border: none; + cursor: pointer; + transition: all 0.3s; } -.morphingShape1 { - width: 600px; - height: 600px; +.activeDot { + width: 30px; + border-radius: 5px; background: #3b82f6; - top: -10%; - right: -10%; - animation: morph 20s infinite alternate; + /* Blue active dot */ } -.morphingShape2 { - width: 500px; - height: 500px; - background: #ec4899; - bottom: -10%; - left: -10%; - animation: morph 25s infinite alternate-reverse; -} - -/* Slide animations */ -@keyframes slideInUp { - from { - opacity: 0; - transform: translateY(20px); - } - - to { - opacity: 1; - transform: translateY(0); - } -} - - -/* Responsive adjustments */ +/* Responsive */ @media (max-width: 1024px) { - .hero { - padding-top: 6rem; + .contentWrapper { + grid-template-columns: 1fr; + text-align: center; + } + + .leftContent { + align-items: center; + } + + .searchBarCta { + margin: 0 auto 3rem; + } + + .rightContent { + display: none; + /* Hide complex image on tablet/mobile if needed, or simply scale it */ } .title { - font-size: 3rem; - } - - .imageContent { - display: none; - /* Hide 3D element on small screens to reduce clutter */ - } - - .heroContent { - text-align: center; - width: 100%; - display: flex; - flex-direction: column; - align-items: center; - } - - .textContent { - align-items: center; - } - - .badge { - margin-bottom: 2rem; - align-self: center; - } - - .ctaButtons { - justify-content: center; - } - - .trustBadges { - justify-content: center; - border-top: none; - padding-top: 0; - gap: 2rem; - } - - .trustBadge { - align-items: center; + font-size: 2.5rem; } } \ No newline at end of file diff --git a/components/Hero.tsx b/components/Hero.tsx index a592ba0..d01cd1a 100644 --- a/components/Hero.tsx +++ b/components/Hero.tsx @@ -1,262 +1,172 @@ 'use client'; import Link from 'next/link'; -import { useEffect, useRef, useState } from 'react'; +import { useEffect, useState } from 'react'; import styles from './Hero.module.css'; export default function Hero() { - const canvasRef = useRef(null); - const heroRef = useRef(null); + const [currentSlide, setCurrentSlide] = useState(0); const [typedText, setTypedText] = useState(''); - const [cursorTrail, setCursorTrail] = useState>([]); - const [stats, setStats] = useState({ users: 0, posts: 0, rating: 0 }); - const fullText = 'Manage All Your Social Media in One Place'; + const slides = [ + { + id: 1, + badge: 'New Feature', + badgeText: 'AI-Powered Scheduling is here', + title: 'Find your social media success.', + subtitle: 'Your dream engagement is waiting for you. Manage all your accounts in one place.', + ctaPrimary: 'Get Started', + image: '/hero-slide-1.png' + }, + { + id: 2, + badge: 'Analytics', + badgeText: 'Deep insights for growth', + title: 'Analyze performance & boost reach.', + subtitle: 'Track every click, like, and share with our advanced analytics dashboard.', + ctaPrimary: 'Explore Analytics', + image: '/hero-slide-2.png' + }, + { + id: 3, + badge: 'Community', + badgeText: 'Join 10,000+ Creators', + title: 'Connect with your audience instantly.', + subtitle: 'Real-time engagement tools to keep your community active and growing.', + ctaPrimary: 'Join Community', + image: '/hero-slide-3.png' + }, + ]; - // Typing animation + // Typing effect for the title of the current slide useEffect(() => { - let index = 0; + const text = slides[currentSlide].title; + setTypedText(''); + let i = 0; const timer = setInterval(() => { - if (index <= fullText.length) { - setTypedText(fullText.slice(0, index)); - index++; + if (i < text.length) { + setTypedText((prev) => text.slice(0, i + 1)); + i++; } else { clearInterval(timer); } }, 50); return () => clearInterval(timer); - }, []); + }, [currentSlide]); - // Stats counter animation + // Auto-slide useEffect(() => { - const duration = 2000; - const steps = 60; - const interval = duration / steps; - let step = 0; - const timer = setInterval(() => { - step++; - const progress = step / steps; - setStats({ - users: Math.floor(10000 * progress), - posts: Math.floor(1000000 * progress), - rating: Math.min(4.9, 4.9 * progress), - }); - - if (step >= steps) clearInterval(timer); - }, interval); - + setCurrentSlide((prev) => (prev + 1) % slides.length); + }, 5000); return () => clearInterval(timer); }, []); - - // Enhanced particle system - Cleaner & Performance Optimized - useEffect(() => { - const canvas = canvasRef.current; - if (!canvas) return; - - const ctx = canvas.getContext('2d'); - if (!ctx) return; - - canvas.width = window.innerWidth; - canvas.height = window.innerHeight; - - const particles: Array<{ - x: number; - y: number; - size: number; - speedX: number; - speedY: number; - color: string; - opacity: number; - }> = []; - - // Reduced particle count for a cleaner look - for (let i = 0; i < 60; i++) { - const colors = [ - 'rgba(236, 72, 153, 0.4)', // Pink - 'rgba(59, 130, 246, 0.4)', // Blue - 'rgba(255, 255, 255, 0.1)', // White - ]; - particles.push({ - x: Math.random() * canvas.width, - y: Math.random() * canvas.height, - size: Math.random() * 2 + 1, // Smaller particles - speedX: Math.random() * 0.5 - 0.25, // Slower movement - speedY: Math.random() * 0.5 - 0.25, - color: colors[Math.floor(Math.random() * colors.length)], - opacity: Math.random() * 0.5 + 0.1, - }); - } - - function animate() { - if (!ctx || !canvas) return; - ctx.clearRect(0, 0, canvas.width, canvas.height); - - // Draw connections - very subtle - particles.forEach((particle, i) => { - particles.slice(i + 1).forEach((otherParticle) => { - const dx = particle.x - otherParticle.x; - const dy = particle.y - otherParticle.y; - const distance = Math.sqrt(dx * dx + dy * dy); - - if (distance < 100) { - ctx.beginPath(); - ctx.strokeStyle = `rgba(255, 255, 255, ${0.05 * (1 - distance / 100)})`; - ctx.lineWidth = 0.5; - ctx.moveTo(particle.x, particle.y); - ctx.lineTo(otherParticle.x, otherParticle.y); - ctx.stroke(); - } - }); - }); - - // Draw particles - particles.forEach((particle) => { - ctx.globalAlpha = particle.opacity; - ctx.fillStyle = particle.color; - ctx.beginPath(); - ctx.arc(particle.x, particle.y, particle.size, 0, Math.PI * 2); - ctx.fill(); - - // Update position - particle.x += particle.speedX; - particle.y += particle.speedY; - - if (particle.x < 0 || particle.x > canvas.width) particle.speedX *= -1; - if (particle.y < 0 || particle.y > canvas.height) particle.speedY *= -1; - }); - - requestAnimationFrame(animate); - } - - animate(); - - const handleResize = () => { - canvas.width = window.innerWidth; - canvas.height = window.innerHeight; - }; - - window.addEventListener('resize', handleResize); - return () => window.removeEventListener('resize', handleResize); - }, []); + const slide = slides[currentSlide]; return ( -
- +
+
+ {/* Abstract Circles/Shapes like reference */} +
+
+
- {/* Floating gradient orbs */} -
-
-
- - {/* Morphing shapes */} -
-
- -
-
-
-
- ✨ - Scale your Social Media Presence - +
+
+ {/* Left Content */} +
+
+ {slide.badge} + {slide.badgeText}

- - {typedText} - | - + {typedText}|

- Empower your brand with intelligent scheduling, deep analytics, and real-time engagement tools. + {slide.subtitle}

-
- - Start Free Trial - β†’ - - - - β–Ά - Watch Demo - + {/* Search-like CTA Bar like Reference */} +
+
+ βœ‰οΈ + +
+
-
-
-
{stats.rating.toFixed(1)}/5
-
Rating
-
-
-
{(stats.users / 1000).toFixed(0)}K+
-
Active Users
-
-
-
{(stats.posts / 1000000).toFixed(1)}M+
-
Posts Scheduled
+
+

We are Trusted by:

+
+
G
{/* Google */} +
Be
{/* Behance */} +
πŸ“·
{/* Insta */} +
⊞
{/* Microsoft */}
-
-
- {/* Floating social media icons */} -
- πŸ“± -
-
- πŸ“Š -
-
- πŸ’¬ + {/* Right Content - Image & Floating Cards */} +
+
+
+ {/* Using dynamic image from slide data */} + {slide.title}
-
-
- - - + {/* Floating Card 1: Congrats */} +
+
πŸ“©
+
+ Congrats! + You have got an Email
-
SocialBuddy Dashboard
+
βœ“
-
-
-
- πŸ“Š - Analytics Overview -
-
-
-
-
-
+ + {/* Floating Card 2: Jobholder / Users */} +
+
10k+ Active Users
+
+ πŸ‘© + πŸ‘¨ + πŸ§‘ + +
-
-
- πŸ“… - Upcoming Posts -
-
-
-
-
+
+ + {/* Floating Card 3: Small Message */} +
+
πŸ‘±β€β™€οΈ
+
+ Hi, +

I am looking for...

-
- {/* Enhanced scroll indicator */} -
-
-
+ {/* Slider Indicators */} +
+ {slides.map((_, idx) => ( +
- Scroll
); diff --git a/components/HowItWorks.module.css b/components/HowItWorks.module.css index 8782bef..1f08283 100644 --- a/components/HowItWorks.module.css +++ b/components/HowItWorks.module.css @@ -1,233 +1,274 @@ -.header { - text-align: center; - margin-bottom: 4rem; +.section { + position: relative; + padding: 4rem 0; + overflow: hidden; + background: var(--background); } -.badge { - display: inline-flex; - align-items: center; - gap: 0.5rem; - padding: 0.5rem 1.25rem; - background: linear-gradient(135deg, rgba(236, 72, 153, 0.1), rgba(59, 130, 246, 0.1)); - border: 1px solid rgba(236, 72, 153, 0.2); - border-radius: 50px; - font-size: 0.875rem; - font-weight: 600; - color: var(--primary); - margin-bottom: 1rem; +.container { + max-width: 1000px; + margin: 0 auto; + padding: 0 1.5rem; + position: relative; +} + +.header { + text-align: center; + margin-bottom: 5rem; } .title { font-size: clamp(2rem, 5vw, 3rem); font-weight: 800; margin-bottom: 1rem; - line-height: 1.2; + color: var(--foreground); } -.subtitle { - font-size: 1.125rem; - color: var(--text-secondary); - max-width: 600px; - margin: 0 auto; +.subTitle { + background: transparent; + -webkit-background-clip: unset; + -webkit-text-fill-color: unset; + background-clip: unset; + color: #0072b1; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 2px; + font-size: 0.875rem; + margin-bottom: 1rem; + display: inline-block; } -.stepsContainer { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); - gap: 2rem; - margin-bottom: 4rem; +.timeline { position: relative; + display: flex; + flex-direction: column; + gap: 3rem; } -@media (min-width: 768px) { - .stepsContainer { - grid-template-columns: repeat(2, 1fr); - } -} - -@media (min-width: 1024px) { - .stepsContainer { - grid-template-columns: repeat(4, 1fr); - } -} - -.step { - position: relative; - opacity: 0; - transform: translateY(30px); - transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1); -} - -.step.visible { - opacity: 1; - transform: translateY(0); -} - -.stepNumber { +/* The vertical connecting line (simplified snake for responsiveness) */ +.timeline::before { + content: ''; position: absolute; - top: -10px; - right: 20px; - width: 50px; - height: 50px; + top: 80px; + bottom: 0; + left: 40px; + /* Aligns with circle center */ + width: 4px; + background: #e2e8f0; + z-index: 0; +} + +.stepItem { + position: relative; + z-index: 1; + display: flex; + align-items: center; + gap: 2rem; + opacity: 0; + transform: translateX(-20px); + transition: all 0.6s ease-out; +} + +.stepItem.visible { + opacity: 1; + transform: translateX(0); +} + +/* ZigZag indent for desktop */ +@media (min-width: 768px) { + + /* Create the snake effect by alternating margins/padding isn't robust for the straight cards shown. + The image creates a visual snake with the connectors, but the cards look aligned. + We will keep cards aligned for readability and use the connector styling to suggest the flow. + */ + .timeline::before { + background: radial-gradient(circle at center, var(--secondary) 0%, transparent 100%); + width: 2px; + opacity: 0.3; + left: 49px; + } +} + +/* Circle Number Wrapper */ +.numberWrapper { + flex-shrink: 0; + width: 100px; + height: 100px; + border-radius: 50%; + background: var(--background); + border: 8px solid var(--background); + /* Gap for connection */ + box-shadow: var(--shadow-xl); display: flex; align-items: center; justify-content: center; - font-size: 1.25rem; - font-weight: 800; - border-radius: 12px; + position: relative; z-index: 2; } -.stepContent { - background: var(--card-bg); - border: 1px solid var(--border-color); - border-radius: 20px; - padding: 2rem 1.5rem; +/* The colored ring and number */ +.numberCircle { + width: 100%; height: 100%; - transition: all 0.3s ease; - position: relative; - overflow: hidden; -} - -.stepContent::before { - content: ''; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: linear-gradient(135deg, rgba(236, 72, 153, 0.05), rgba(59, 130, 246, 0.05)); - opacity: 0; - transition: opacity 0.3s ease; -} - -.stepContent:hover { - transform: translateY(-5px); - box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1); - border-color: var(--primary); -} - -.stepContent:hover::before { - opacity: 1; -} - -.stepIcon { - width: 70px; - height: 70px; + border-radius: 50%; + background: var(--gradient-primary); display: flex; align-items: center; justify-content: center; - border-radius: 16px; - margin-bottom: 1.5rem; + color: white; font-size: 2rem; + font-weight: 800; position: relative; + box-shadow: inset 0 4px 6px rgba(0, 0, 0, 0.2); +} + +/* The connecting curve element */ +.connectorCurve { + display: none; + /* Hidden on mobile */ +} + +/* Card Capsule */ +.cardCapsule { + flex: 1; + background: white; + border-radius: 50px; + /* Pill shape */ + padding: 1.5rem 3rem 1.5rem 2rem; + box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1); + border: 1px solid var(--border-color); + display: flex; + align-items: center; + justify-content: space-between; + gap: 1.5rem; + position: relative; + overflow: hidden; + transition: transform 0.3s ease; +} + +.cardCapsule:hover { + transform: translateY(-5px); + border-color: var(--primary-light); +} + +/* Colored accent bar on the left of capsule */ +.cardCapsule::before { + content: ''; + position: absolute; + left: 0; + top: 0; + bottom: 0; + width: 8px; + background: var(--gradient-primary); +} + +.textContent { + flex: 1; +} + +.label { + color: #0072b1; + font-weight: 700; + font-size: 0.875rem; + margin-bottom: 1rem; + display: block; + text-transform: uppercase; + letter-spacing: 0.05em; } .stepTitle { font-size: 1.25rem; - font-weight: 700; - margin-bottom: 0.75rem; + font-weight: 800; color: var(--text-primary); + text-transform: uppercase; + margin-bottom: 0.5rem; + letter-spacing: 0.5px; } .stepDescription { - font-size: 0.9375rem; + font-size: 0.95rem; color: var(--text-secondary); - line-height: 1.6; + line-height: 1.4; + margin: 0; } +.iconCircle { + width: 60px; + height: 60px; + border-radius: 50%; + background: var(--gradient-hero); + display: flex; + align-items: center; + justify-content: center; + color: white; + flex-shrink: 0; + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); +} + +.iconCircle svg { + width: 30px; + height: 30px; +} + + +/* Specific S-Curve Connector Logic to match image better */ +/* We will simulate the "snake" by adjusting the timeline line or adding curves between items */ +/* For robust responsive design, sticking to a straight cleaner line is safer, but let's try to add the "orange connector" look between circles */ + .connector { - display: none; -} - -@media (min-width: 1024px) { - .connector { - display: block; - position: absolute; - top: 50%; - right: -2rem; - transform: translateY(-50%); - width: 2rem; - color: var(--primary); - opacity: 0.3; - z-index: 1; - } - - .step:last-child .connector { - display: none; - } -} - -.ctaBox { - background: linear-gradient(135deg, var(--primary), var(--secondary)); - border-radius: 24px; - padding: 3rem 2rem; - display: flex; - flex-direction: column; - align-items: center; - gap: 2rem; - text-align: center; - position: relative; - overflow: hidden; -} - -.ctaBox::before { - content: ''; position: absolute; - top: -50%; - left: -50%; - width: 200%; - height: 200%; - background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, transparent 70%); - animation: pulse 4s ease-in-out infinite; -} - -@keyframes pulse { - - 0%, - 100% { - transform: scale(1); - opacity: 0.5; - } - - 50% { - transform: scale(1.1); - opacity: 0.8; - } -} - -@media (min-width: 768px) { - .ctaBox { - flex-direction: row; - justify-content: space-between; - text-align: left; - padding: 3rem 4rem; - } -} - -.ctaContent { - position: relative; + left: 48px; + /* Center of 100px circle approx */ + top: 100px; + /* Bottom of circle */ + width: 4px; + height: 3rem; + /* Gap between items */ + background: var(--primary); z-index: 1; } -.ctaTitle { - font-size: 1.75rem; - font-weight: 800; - color: white; - margin-bottom: 0.5rem; -} +/* Mobile responsive adjustments */ +@media (max-width: 768px) { + .stepItem { + flex-direction: column; + align-items: flex-start; + gap: 1rem; + } -.ctaText { - font-size: 1rem; - color: rgba(255, 255, 255, 0.9); -} + .timeline::before { + left: 20px; + top: 20px; + } -.arrow { - margin-left: 0.5rem; - transition: transform 0.3s ease; - display: inline-block; -} + .numberWrapper { + width: 60px; + height: 60px; + border-width: 4px; + } -.ctaBox a:hover .arrow { - transform: translateX(5px); + .numberCircle { + font-size: 1.25rem; + } + + .cardCapsule { + width: 100%; + border-radius: 20px; + padding: 1.5rem; + flex-direction: column; + align-items: flex-start; + } + + .iconCircle { + position: absolute; + top: 1rem; + right: 1rem; + width: 40px; + height: 40px; + } + + .iconCircle svg { + width: 20px; + height: 20px; + } } \ No newline at end of file diff --git a/components/HowItWorks.tsx b/components/HowItWorks.tsx index 62c33dc..26d839b 100644 --- a/components/HowItWorks.tsx +++ b/components/HowItWorks.tsx @@ -2,6 +2,7 @@ import { useEffect, useRef } from 'react'; import styles from './HowItWorks.module.css'; +import { TrendingUp, BarChart3, Users, Heart } from 'lucide-react'; export default function HowItWorks() { const sectionRef = useRef(null); @@ -18,7 +19,7 @@ export default function HowItWorks() { { threshold: 0.1 } ); - const steps = sectionRef.current?.querySelectorAll(`.${styles.step}`); + const steps = sectionRef.current?.querySelectorAll(`.${styles.stepItem}`); steps?.forEach((step) => observer.observe(step)); return () => observer.disconnect(); @@ -27,84 +28,67 @@ export default function HowItWorks() { const steps = [ { number: '01', - title: 'Connect Your Accounts', - description: 'Link all your social media accounts in seconds with our secure OAuth integration.', - icon: 'πŸ”—', - color: '#667eea', + title: 'Trends and Technologies', + description: 'Leverage emerging tools to foster innovation and collaboration.', + icon: , }, { number: '02', - title: 'Create & Schedule Content', - description: 'Design beautiful posts with our editor and schedule them at optimal times using AI suggestions.', - icon: '✍️', - color: '#ec4899', + title: 'Data Analysis and Analytics', + description: 'Deploy insights to improve decision making and drive traffic.', + icon: , }, { number: '03', - title: 'Engage Your Audience', - description: 'Respond to comments, messages, and mentions from a unified inbox across all platforms.', - icon: 'πŸ’¬', - color: '#14b8a6', + title: 'Your Target Audience', + description: 'Understand Your Target Audience and their shopping behavior.', + icon: , }, { number: '04', - title: 'Analyze & Optimize', - description: 'Track performance metrics and get actionable insights to improve your social media strategy.', - icon: 'πŸ“ˆ', - color: '#f59e0b', + title: 'Social Media Engagement', + description: 'Create valuable, shareable content for increased engagement.', + icon: , }, ]; return ( -
-
+
+
-
- πŸš€ - How It Works -
+ Our Work Process

- Get Started in 4 Simple Steps + How We Drive Results

-

- From setup to success, we've made it incredibly easy to manage your social media presence. -

-
+
{steps.map((step, index) => ( -
-
- {step.number} -
-
-
- {step.icon} +
+ {/* Number Circle Left */} +
+
+ {step.number}
-

{step.title}

-

{step.description}

- {index < steps.length - 1 && ( -
- - - + + {/* Content Capsule */} +
+
+

{step.title}

+

{step.description}

- )} +
+ {step.icon} +
+
+ + {/* Manual connecting line logic for visual flow if needed + (CSS pseudo-element ::before handles main vertical line) + */}
))}
- -
-
-

Ready to streamline your social media?

-

Start your 14-day free trial today. No credit card required.

-
- - Get Started Free - β†’ - -
); diff --git a/components/Navbar.module.css b/components/Navbar.module.css index cf41501..3ab2729 100644 --- a/components/Navbar.module.css +++ b/components/Navbar.module.css @@ -15,11 +15,7 @@ box-shadow: var(--shadow-md); } -@media (prefers-color-scheme: dark) { - .navbar.scrolled { - background: rgba(15, 23, 42, 0.95); - } -} + .navContent { display: flex; @@ -59,7 +55,7 @@ align-items: center; } -@media (min-width: 768px) { +@media (min-width: 992px) { .navLinks { display: flex; } @@ -208,4 +204,51 @@ flex-direction: column; gap: 1rem; margin-top: 1rem; -} \ No newline at end of file +} +.navItem { + position: relative; + height: 100%; + display: flex; + align-items: center; +} + +.dropdownMenu { + position: absolute; + top: 100%; + left: 50%; + transform: translateX(-50%) translateY(10px); + background: var(--background); + border-radius: var(--radius-lg); + box-shadow: var(--shadow-xl); + padding: 1rem; + min-width: 220px; + opacity: 0; + visibility: hidden; + transition: all 0.3s ease; + border: 1px solid var(--border-color); + display: flex; + flex-direction: column; + gap: 0.25rem; + z-index: 1001; +} + +.navItem:hover .dropdownMenu { + opacity: 1; + visibility: visible; + transform: translateX(-50%) translateY(0); +} + +.dropdownItem { + padding: 0.75rem 1rem; + border-radius: var(--radius-md); + color: var(--foreground-secondary); + text-decoration: none; + transition: all 0.2s ease; + display: block; + white-space: nowrap; +} + +.dropdownItem:hover { + background: var(--background-secondary); + color: var(--primary); +} diff --git a/components/Navbar.tsx b/components/Navbar.tsx index 98e82dd..16f14c0 100644 --- a/components/Navbar.tsx +++ b/components/Navbar.tsx @@ -5,91 +5,161 @@ import { useState, useEffect } from 'react'; import styles from './Navbar.module.css'; export default function Navbar() { - const [isScrolled, setIsScrolled] = useState(false); - const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false); + const [isScrolled, setIsScrolled] = useState(false); + const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false); + const [isMobileFeaturesOpen, setIsMobileFeaturesOpen] = useState(false); + const [isMobileChannelsOpen, setIsMobileChannelsOpen] = useState(false); - useEffect(() => { - const handleScroll = () => { - setIsScrolled(window.scrollY > 20); - }; + useEffect(() => { + const handleScroll = () => { + setIsScrolled(window.scrollY > 20); + }; - window.addEventListener('scroll', handleScroll); - return () => window.removeEventListener('scroll', handleScroll); - }, []); + window.addEventListener('scroll', handleScroll); + return () => window.removeEventListener('scroll', handleScroll); + }, []); - const navLinks = [ - { href: '/', label: 'Home' }, - { href: '/features', label: 'Features' }, - { href: '/pricing', label: 'Pricing' }, - { href: '/about', label: 'About' }, - { href: '/docs', label: 'Docs' }, - { href: '/blog', label: 'Blog' }, - { href: '/contact', label: 'Contact' }, - ]; + const navLinks = [ + { href: '/', label: 'Home' }, + { + href: '#', + label: 'Features', + dropdown: [ + { href: '/features/publish', label: 'Publishing' }, + { href: '/features/analyze', label: 'Analytics' }, + { href: '/features/engage', label: 'Engagement' }, + { href: '/features/create', label: 'Create' }, + { href: '/features/start-page', label: 'Start Page' }, + { href: '/features/ai-assistant', label: 'AI Assistant' }, + ] + }, + { + href: '/channels', + label: 'Channels', + dropdown: [ + { href: '/channels/facebook', label: 'Facebook' }, + { href: '/channels/instagram', label: 'Instagram' }, + { href: '/channels/linkedin', label: 'LinkedIn' }, + { href: '/channels/twitter', label: 'Twitter (X)' }, + { href: '/channels/tiktok', label: 'TikTok' }, + { href: '/channels/pinterest', label: 'Pinterest' }, + ] + }, + { href: '/pricing', label: 'Pricing' }, + // { href: '/about', label: 'About' }, + // { href: '/careers', label: 'Careers' }, + { href: '/resources', label: 'Resources' }, + // { href: '/contact', label: 'Contact' }, + ]; - return ( - - ); + + ); } diff --git a/components/Pricing.module.css b/components/Pricing.module.css index 42a812a..a3b51f4 100644 --- a/components/Pricing.module.css +++ b/components/Pricing.module.css @@ -4,6 +4,19 @@ margin: 0 auto 4rem; } +.subTitle { + background: transparent; + -webkit-background-clip: unset; + -webkit-text-fill-color: unset; + background-clip: unset; + color: #0072b1; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 1px; + font-size: 0.875rem; + margin-bottom: 1rem; +} + .badge { display: inline-flex; align-items: center; @@ -43,7 +56,7 @@ position: relative; width: 60px; height: 30px; - background: var(--background-secondary); + background: #f1f5f9; border: none; border-radius: 2rem; cursor: pointer; @@ -87,148 +100,201 @@ margin-bottom: 3rem; } -@media (min-width: 768px) { +@media (min-width: 900px) { .pricingGrid { grid-template-columns: repeat(3, 1fr); } } .pricingCard { - background: var(--card-bg); - border-radius: var(--radius-2xl); - padding: 2.5rem; - box-shadow: var(--shadow-md); + border-radius: 30px; + /* More rounded */ + padding: 2.5rem 2rem 1.5rem; + /* Less padding bottom to accommodate footer */ + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); transition: all 0.3s ease; - border: 2px solid var(--border-color); position: relative; - animation: fadeIn 0.6s ease-out forwards; display: flex; flex-direction: column; + color: white; + overflow: hidden; + /* For clipping */ + min-height: 500px; + /* Variants defined below */ } .pricingCard:hover { transform: translateY(-10px); - box-shadow: var(--shadow-xl); + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2); } -.pricingCard.popular { - border-color: var(--primary); - background: linear-gradient(135deg, rgba(236, 72, 153, 0.05) 0%, rgba(59, 130, 246, 0.05) 100%); +/* Gradients */ +/* Card 1: Blue (#1255d8) / Pink (#ec4899) */ +.cardVariant1 { + background: linear-gradient(135deg, #ec4899 0%, #1255d8 100%); } -.pricingCard.popular:hover { - box-shadow: var(--shadow-xl), var(--shadow-glow); +/* Card 2: Yellow (#f9cd35) / Pink (#ec4899) */ +.cardVariant2 { + background: linear-gradient(135deg, #f9cd35 0%, #ec4899 100%); } -.popularBadge { +/* Card 3: Blue (#1255d8) / Green (#6cb655) */ +.cardVariant3 { + background: linear-gradient(135deg, #1255d8 0%, #6cb655 100%); +} + +/* Decorative circles in background */ +.pricingCard::before { + content: ''; position: absolute; - top: -15px; - left: 50%; - transform: translateX(-50%); - background: var(--gradient-primary); - color: white; - padding: 0.5rem 1.5rem; - border-radius: 2rem; - font-size: 0.85rem; - font-weight: 700; - box-shadow: var(--shadow-md); + top: -50px; + right: -50px; + width: 200px; + height: 200px; + background: rgba(255, 255, 255, 0.1); + border-radius: 50%; + pointer-events: none; +} + +.pricingCard::after { + content: ''; + position: absolute; + bottom: -50px; + left: -50px; + width: 200px; + height: 200px; + background: rgba(255, 255, 255, 0.05); + border-radius: 50%; + pointer-events: none; } .planHeader { margin-bottom: 2rem; + position: relative; + z-index: 1; } .planName { - font-size: 1.75rem; - font-weight: 700; - margin-bottom: 0.5rem; - color: var(--foreground); - font-family: var(--font-display); + font-size: 2rem; + font-weight: 800; + margin: 0; + color: #fff; } .planDescription { - color: var(--foreground-secondary); + margin-top: 6px; font-size: 0.95rem; + color: rgba(255, 255, 255, 0.65); + line-height: 1.4; } -.priceSection { - margin-bottom: 2rem; -} - -.price { - display: flex; - align-items: baseline; - gap: 0.25rem; - margin-bottom: 0.5rem; -} - -.currency { - font-size: 1.5rem; - font-weight: 700; - color: var(--foreground-secondary); -} - -.amount { - font-size: 3.5rem; - font-weight: 700; - color: var(--foreground); - font-family: var(--font-display); - line-height: 1; -} - -.period { - font-size: 1rem; - color: var(--foreground-secondary); -} - -.billedAnnually { - font-size: 0.85rem; - color: var(--foreground-secondary); -} - -.ctaButton { - width: 100%; - margin-top: auto; -} .features { display: flex; flex-direction: column; - gap: 1rem; + gap: 0.8rem; flex-grow: 1; - margin-bottom: 2rem; + margin-bottom: 3rem; + position: relative; + z-index: 1; } .feature { display: flex; - align-items: flex-start; + align-items: center; gap: 0.75rem; - color: var(--foreground-secondary); + color: rgba(255, 255, 255, 0.9); font-size: 0.95rem; + font-weight: 500; } .checkIcon { + font-weight: 900; + color: white; + /* Simple tick */ +} + +/* Footer Section */ +.cardFooter { + display: flex; + justify-content: space-between; + align-items: flex-end; + margin-top: auto; + /* To handle the button cutout loop, we might need absolute positioning for button */ + position: relative; + padding-top: 1rem; + z-index: 2; +} + +.priceInfo { + display: flex; + flex-direction: column; +} + +.priceAmount { + font-size: 3rem; + font-weight: 800; + line-height: 1; + display: flex; + align-items: flex-start; +} + +.currency { + font-size: 1.5rem; + margin-top: 5px; + margin-right: 2px; +} + +.period { + font-size: 0.9rem; + opacity: 0.8; + margin-top: 5px; + font-style: italic; +} + +/* Button Styling - Specific "inset" look */ +.signupBtn { + /* We want it flush with bottom right corner */ + position: absolute; + bottom: -1.5rem; + /* Bleed into padding area */ + right: -2rem; + /* Bleed to edge */ + + background: #0072b1; + /* Updated to requested Dark Blue #0072b1 */ + color: white; + padding: 0.8rem 2rem 1.2rem 1.5rem; + /* Extra padding bottom right */ + border-top-left-radius: 30px; + /* The cutout shape */ + font-weight: 600; display: flex; align-items: center; - justify-content: center; - width: 20px; - height: 20px; - background: var(--gradient-primary); - color: white; - border-radius: 50%; - font-size: 0.75rem; - font-weight: 700; - flex-shrink: 0; + gap: 0.5rem; + transition: all 0.3s; + text-decoration: none; + box-shadow: -5px -5px 20px rgba(0, 0, 0, 0.1); +} + +.signupBtn:hover { + background: #0f172a; + /* Keep dark hover or update? Let's keep dark fallback for hover state */ + padding-right: 2.2rem; + /* Animate slightly */ +} + +.btnArrow { + font-size: 0.8rem; } .guarantee { text-align: center; - padding: 2rem; + padding: 1rem; + padding-bottom: 1px; background: var(--background-secondary); border-radius: var(--radius-xl); color: var(--foreground); -} - -.guarantee strong { - color: var(--primary); + margin-top: 1rem; } \ No newline at end of file diff --git a/components/Pricing.tsx b/components/Pricing.tsx index 31d2629..2723745 100644 --- a/components/Pricing.tsx +++ b/components/Pricing.tsx @@ -9,51 +9,44 @@ export default function Pricing() { const plans = [ { - name: 'Free', - description: 'Perfect for individuals getting started', - price: { monthly: 0, annual: 0 }, + name: 'Basic Buddy', + description: 'Perfect for individual creators.', + price: { monthly: 10, annual: 100 }, features: [ - '1 social media account', - '10 scheduled posts per month', - 'Basic analytics', - 'Email support', - 'Mobile app access', + '1 Social Profiles', + 'Basic Analytics', + 'Content Scheduling', + 'Standard Support', ], cta: 'Get Started', popular: false, }, { - name: 'Pro', - description: 'Ideal for growing businesses', - price: { monthly: 29, annual: 290 }, + name: 'Standard Buddy', + description: 'For growing businesses and influencers.', + price: { monthly: 50, annual: 500 }, features: [ - '5 social media accounts', - 'Unlimited scheduled posts', - 'Advanced analytics & reports', - 'Priority email support', - 'Team collaboration (3 members)', - 'AI content assistant', - 'Custom branding', + '10 Social Profiles', + 'Advanced Analytics', + 'AI Content Generation', + 'Priority Support', + 'Team Collaboration (up to 3)', ], - cta: 'Start Free Trial', + cta: 'Get Started', popular: true, }, { - name: 'Premium', - description: 'For agencies and enterprises', - price: { monthly: 99, annual: 990 }, + name: 'Premium Buddy', + description: 'Ultimate solution for agencies.', + price: { monthly: 150, annual: 1500 }, features: [ - 'Unlimited social media accounts', - 'Unlimited scheduled posts', - 'Enterprise analytics & insights', - '24/7 priority support', - 'Unlimited team members', - 'Advanced AI features', - 'White-label solutions', - 'API access', - 'Dedicated account manager', + '25 Social Profiles', + 'White Label Reports', + 'Dedicated Account Manager', + 'API Access', + 'Unlimited Team Members', ], - cta: 'Contact Sales', + cta: 'Get Started', popular: false, }, ]; @@ -62,15 +55,12 @@ export default function Pricing() {
-
- πŸ’Ž - Pricing -
+
Pricing

- Simple, Transparent Pricing + Simple, Transparent Pricing

- Choose the perfect plan for your needs. All plans include a 14-day free trial. + Choose the perfect plan for your needs. All plans include a 7-day free trial.

@@ -83,8 +73,8 @@ export default function Pricing() { - Annual - Save 17% + Yearly + Save 20%
@@ -93,31 +83,14 @@ export default function Pricing() { {plans.map((plan, index) => (
- {plan.popular &&
Most Popular
} -

{plan.name}

{plan.description}

-
-
- $ - - {isAnnual ? Math.floor(plan.price.annual / 12) : plan.price.monthly} - - /mo -
- {isAnnual && plan.price.annual > 0 && ( -

- Billed ${plan.price.annual} annually -

- )} -
-
{plan.features.map((feature, idx) => (
@@ -127,19 +100,26 @@ export default function Pricing() { ))}
- - {plan.cta} - +
+
+
+ $ + {isAnnual ? Math.floor(plan.price.annual) : plan.price.monthly} +
+
per month
+
+ + + Sign up β–Ά + +
))}

- πŸ’― 30-Day Money-Back Guarantee - Try risk-free. Cancel anytime. + Try risk-free. Cancel anytime.

diff --git a/components/SafeImage.tsx b/components/SafeImage.tsx new file mode 100644 index 0000000..c58811b --- /dev/null +++ b/components/SafeImage.tsx @@ -0,0 +1,26 @@ +'use client'; + +import { useState } from 'react'; + +interface SafeImageProps extends React.ImgHTMLAttributes { + fallbackSrc?: string; +} + +export default function SafeImage({ src, alt, fallbackSrc, ...props }: SafeImageProps) { + const [imgSrc, setImgSrc] = useState(src); + + const handleError = () => { + if (imgSrc !== fallbackSrc && fallbackSrc) { + setImgSrc(fallbackSrc); + } + }; + + return ( + {alt} + ); +} diff --git a/components/SocialConnect.module.css b/components/SocialConnect.module.css index ae13748..fbf2ad8 100644 --- a/components/SocialConnect.module.css +++ b/components/SocialConnect.module.css @@ -1,1081 +1,334 @@ -.connectSection { - padding: 6rem 0; - position: relative; +.carouselSection { + padding: 4rem 0; overflow: hidden; - background: linear-gradient(180deg, - var(--background) 0%, - rgba(236, 72, 153, 0.02) 50%, - var(--background) 100%); + background: #fdfdfd; } -/* Animated Background */ -.backgroundAnimation { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - pointer-events: none; - z-index: 0; -} - -.floatingOrb1, -.floatingOrb2, -.floatingOrb3 { - position: absolute; - border-radius: 50%; - filter: blur(100px); - opacity: 0.3; - animation: floatOrb 20s ease-in-out infinite; -} - -.floatingOrb1 { - width: 600px; - height: 600px; - background: radial-gradient(circle, rgba(236, 72, 153, 0.4), transparent); - top: -20%; - left: -10%; - animation-delay: 0s; -} - -.floatingOrb2 { - width: 500px; - height: 500px; - background: radial-gradient(circle, rgba(59, 130, 246, 0.4), transparent); - bottom: -20%; - right: -10%; - animation-delay: 7s; -} - -.floatingOrb3 { - width: 400px; - height: 400px; - background: radial-gradient(circle, rgba(168, 85, 247, 0.3), transparent); - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - animation-delay: 14s; -} - -@keyframes floatOrb { - - 0%, - 100% { - transform: translate(0, 0) scale(1); - } - - 33% { - transform: translate(100px, -100px) scale(1.1); - } - - 66% { - transform: translate(-80px, 80px) scale(0.9); - } -} - -/* Header */ -.header { +.container { + max-width: 1200px; + margin: 0 auto; text-align: center; + padding: 0 1.5rem; +} + +.header { margin-bottom: 4rem; - position: relative; - z-index: 1; } -.badge { - display: inline-flex; - align-items: center; - gap: 0.5rem; - padding: 0.75rem 1.5rem; - background: linear-gradient(135deg, rgba(236, 72, 153, 0.1), rgba(59, 130, 246, 0.1)); - border: 1px solid rgba(236, 72, 153, 0.2); - border-radius: 50px; - font-size: 0.9rem; +.subTitle { + background: linear-gradient(to right, #2563eb 0%, #ec4899 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; font-weight: 600; + text-transform: uppercase; + letter-spacing: 1px; + font-size: 0.875rem; + margin-bottom: 1rem; +} + +.subtitle { + display: inline-block; color: var(--primary); - margin-bottom: 1.5rem; + font-weight: 600; + margin-bottom: 1rem; position: relative; - overflow: hidden; - animation: badgeFloat 3s ease-in-out infinite; + padding: 0 1.5rem; } -@keyframes badgeFloat { - - 0%, - 100% { - transform: translateY(0); - } - - 50% { - transform: translateY(-5px); - } -} - -.badgeIcon { - font-size: 1.2rem; - animation: rotate 4s linear infinite; -} - -@keyframes rotate { - from { - transform: rotate(0deg); - } - - to { - transform: rotate(360deg); - } -} - -.badgePulse { +/* Dash lines beside subtitle */ +.subtitle::before, +.subtitle::after { + content: ''; position: absolute; - top: 0; - left: -100%; - width: 100%; - height: 100%; - background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent); - animation: badgeShine 3s ease-in-out infinite; + top: 50%; + width: 20px; + height: 2px; + background: var(--primary); } -@keyframes badgeShine { - 0% { - left: -100%; - } +.subtitle::before { + left: 0; +} - 50%, - 100% { - left: 100%; - } +.subtitle::after { + right: 0; } .title { - font-size: clamp(2.5rem, 5vw, 4rem); + font-size: clamp(2rem, 5vw, 3rem); font-weight: 800; margin-bottom: 1.5rem; line-height: 1.2; color: var(--text-primary); } -.highlight { - background: linear-gradient(135deg, var(--primary), var(--secondary)); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; - position: relative; - display: inline-block; -} - -.subtitle { - font-size: 1.25rem; - color: var(--text-secondary); +.description { max-width: 700px; margin: 0 auto; - line-height: 1.7; + color: var(--text-secondary); + line-height: 1.6; } -/* Platforms Container */ -.platformsContainer { +/* Arc Container */ +.arcContainer { position: relative; - z-index: 1; - margin-bottom: 4rem; - background: linear-gradient(135deg, - rgba(236, 72, 153, 0.08) 0%, - rgba(168, 85, 247, 0.05) 25%, - rgba(59, 130, 246, 0.08) 50%, - rgba(168, 85, 247, 0.05) 75%, - rgba(236, 72, 153, 0.08) 100%); - background-size: 200% 200%; - border: 2px solid; - border-image: linear-gradient(135deg, - rgba(236, 72, 153, 0.3), - rgba(59, 130, 246, 0.3)) 1; - border-radius: 32px; - padding: 3rem; - box-shadow: - 0 20px 60px rgba(236, 72, 153, 0.1), - 0 0 0 1px rgba(255, 255, 255, 0.1) inset; - transition: all 0.3s ease; - animation: gradientShift 15s ease infinite; - overflow: hidden; -} - -.platformsContainer::before { - content: ''; - position: absolute; - inset: 0; - background: - radial-gradient(circle at 20% 30%, rgba(236, 72, 153, 0.15) 0%, transparent 50%), - radial-gradient(circle at 80% 70%, rgba(59, 130, 246, 0.15) 0%, transparent 50%), - radial-gradient(circle at 50% 50%, rgba(168, 85, 247, 0.1) 0%, transparent 60%); - opacity: 0.6; - pointer-events: none; - z-index: 0; -} - -.platformsContainer::after { - content: ''; - position: absolute; - inset: 0; - background-image: - repeating-linear-gradient(45deg, - transparent, - transparent 10px, - rgba(236, 72, 153, 0.02) 10px, - rgba(236, 72, 153, 0.02) 20px); - pointer-events: none; - z-index: 0; -} - -@keyframes gradientShift { - - 0%, - 100% { - background-position: 0% 50%; - } - - 50% { - background-position: 100% 50%; - } -} - -.platformsContainer:hover { - box-shadow: - 0 30px 80px rgba(236, 72, 153, 0.15), - 0 0 0 1px rgba(236, 72, 153, 0.2) inset, - 0 0 60px rgba(59, 130, 246, 0.1); - border-image: linear-gradient(135deg, - rgba(236, 72, 153, 0.5), - rgba(59, 130, 246, 0.5)) 1; -} - -.connectText { - text-align: center; - margin-bottom: 3rem; - display: flex; - flex-direction: column; - align-items: center; - gap: 1rem; -} - -.connectIcon { - font-size: 4rem; - animation: pulse 2s ease-in-out infinite; -} - -@keyframes pulse { - - 0%, - 100% { - transform: scale(1); - opacity: 1; - } - - 50% { - transform: scale(1.1); - opacity: 0.8; - } -} - -.connectText h3 { - font-size: clamp(1.5rem, 3vw, 2rem); - font-weight: 700; - color: var(--text-primary); - line-height: 1.3; - margin: 0; -} - -/* Platforms Grid */ -.platformsGrid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(80px, 1fr)); - gap: 1.5rem; + height: 500px; + margin-top: 2rem; + width: 100%; max-width: 900px; - margin: 0 auto; - perspective: 1000px; + margin-left: auto; + margin-right: auto; } -@media (min-width: 768px) { - .platformsGrid { - grid-template-columns: repeat(5, 1fr); - } -} - -.platformCard { - position: relative; - aspect-ratio: 1; - background: var(--background); - border: 2px solid var(--border-color); - border-radius: 20px; - display: flex; - align-items: center; - justify-content: center; - cursor: pointer; - transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); - overflow: hidden; - opacity: 0; - transform: translateY(30px) rotateX(10deg); - animation: cardReveal 0.6s ease-out forwards; -} - -@keyframes cardReveal { - to { - opacity: 1; - transform: translateY(0) rotateX(0); - } -} - -.platformCard::before { - content: ''; +/* Dashed Semi-Circle */ +.dashedArc { position: absolute; - inset: 0; - background: linear-gradient(135deg, - rgba(236, 72, 153, 0.05), - rgba(59, 130, 246, 0.05)); - opacity: 0; - transition: opacity 0.3s ease; -} - -.platformCard:hover { - transform: translateY(-10px) scale(1.05); - border-color: var(--primary); - box-shadow: 0 20px 40px rgba(236, 72, 153, 0.2); -} - -.platformCard:hover::before { - opacity: 1; -} - -.platformCard.selected { - background: linear-gradient(135deg, var(--primary), var(--secondary)); - border-color: var(--primary); - transform: scale(1.05); - box-shadow: 0 15px 35px rgba(236, 72, 153, 0.3); -} - -.platformCard.selected .iconEmoji { - transform: scale(1.2); - filter: brightness(1.2); -} - -.platformIcon { - position: relative; - z-index: 2; - font-size: 2.5rem; - transition: transform 0.3s ease; -} - -.iconEmoji { - display: block; - transition: all 0.3s ease; -} - -.platformCard:hover .iconEmoji { - transform: scale(1.15) rotate(5deg); -} - -.checkmark { - position: absolute; - top: -5px; - right: -5px; - width: 24px; - height: 24px; - background: white; - color: var(--primary); - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - font-weight: 700; - font-size: 0.9rem; - animation: checkmarkPop 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55); - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); -} - -@keyframes checkmarkPop { - 0% { - transform: scale(0); - opacity: 0; - } - - 50% { - transform: scale(1.2); - } - - 100% { - transform: scale(1); - opacity: 1; - } -} - -.platformRipple { - position: absolute; - inset: 0; - border-radius: 20px; - background: radial-gradient(circle, rgba(236, 72, 153, 0.4), transparent 70%); - opacity: 0; - transform: scale(0); - transition: all 0.6s ease; -} - -.platformCard:active .platformRipple { - opacity: 1; - transform: scale(1); - transition: all 0s; -} - -.platformGlow { - position: absolute; - inset: -2px; - background: linear-gradient(135deg, var(--primary), var(--secondary)); - border-radius: 20px; - opacity: 0; - filter: blur(10px); - z-index: -1; - transition: opacity 0.3s ease; -} - -.platformCard.selected .platformGlow { - opacity: 0.6; - animation: glowPulse 2s ease-in-out infinite; -} - -@keyframes glowPulse { - - 0%, - 100% { - opacity: 0.6; - } - - 50% { - opacity: 0.9; - } -} - -/* Stats Bar */ -.statsBar { - display: flex; - flex-wrap: wrap; - justify-content: center; - align-items: center; - gap: 2rem; - padding: 2.5rem; - background: linear-gradient(135deg, - rgba(236, 72, 153, 0.05), - rgba(59, 130, 246, 0.05)); - border-radius: 24px; - margin-bottom: 4rem; - position: relative; - overflow: hidden; -} - -.statsBar::before { - content: ''; - position: absolute; - top: 0; - left: -100%; - width: 100%; - height: 100%; - background: linear-gradient(90deg, - transparent, - rgba(255, 255, 255, 0.1), - transparent); - animation: shimmer 3s infinite; -} - -@keyframes shimmer { - 0% { - left: -100%; - } - - 100% { - left: 100%; - } -} - -.statItem { - display: flex; - align-items: center; - gap: 1rem; - position: relative; - z-index: 1; -} - -.statIcon { - font-size: 2.5rem; - animation: bounce 2s ease-in-out infinite; -} - -@keyframes bounce { - - 0%, - 100% { - transform: translateY(0); - } - - 50% { - transform: translateY(-10px); - } -} - -.statContent { - text-align: left; -} - -.statNumber { - font-size: 2rem; - font-weight: 800; - background: linear-gradient(135deg, var(--primary), var(--secondary)); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; - line-height: 1; - margin-bottom: 0.25rem; -} - -.statLabel { - font-size: 0.9rem; - color: var(--text-secondary); - font-weight: 500; -} - -.statDivider { - width: 2px; - height: 50px; - background: linear-gradient(180deg, - transparent, - var(--border-color), - transparent); -} - -/* CTA Section */ -.ctaSection { - display: flex; - flex-direction: column; - gap: 2rem; - align-items: center; - text-align: center; - padding: 3rem 2rem; - background: linear-gradient(135deg, var(--primary), var(--secondary)); - border-radius: 32px; - position: relative; - overflow: hidden; -} - -.ctaSection::before { - content: ''; - position: absolute; - top: -50%; - left: -50%; - width: 200%; - height: 200%; - background: radial-gradient(circle, rgba(255, 255, 255, 0.1), transparent 50%); - animation: rotateGlow 20s linear infinite; -} - -@keyframes rotateGlow { - from { - transform: rotate(0deg); - } - - to { - transform: rotate(360deg); - } -} - -.ctaContent { - position: relative; - z-index: 1; -} - -.ctaTitle { - font-size: clamp(1.75rem, 4vw, 2.5rem); - font-weight: 800; - color: white; - margin-bottom: 0.75rem; -} - -.ctaText { - font-size: 1.125rem; - color: rgba(255, 255, 255, 0.95); - max-width: 600px; -} - -.ctaButtons { - display: flex; - flex-wrap: wrap; - gap: 1rem; - justify-content: center; - position: relative; - z-index: 1; -} - -.ctaButtons .btn { - background: white !important; - color: var(--primary) !important; - border: none !important; -} - -.ctaButtons .btn:hover { - transform: translateY(-3px); - box-shadow: 0 15px 40px rgba(0, 0, 0, 0.2); -} - -.ctaButtons .btn-secondary { - background: rgba(255, 255, 255, 0.2) !important; - color: white !important; - border: 2px solid white !important; - backdrop-filter: blur(10px); -} - -.ctaButtons .btn-secondary:hover { - background: rgba(255, 255, 255, 0.3) !important; -} - -.arrow { - display: inline-block; - transition: transform 0.3s ease; -} - -.ctaButtons .btn:hover .arrow { - transform: translateX(5px); -} - -/* Connection Lines SVG */ -.connectionLines { - position: absolute; - bottom: 0; - left: 0; - width: 100%; + top: 50px; + /* Start arch slightly down */ + left: 10%; + right: 10%; height: 400px; - pointer-events: none; - opacity: 0.3; + /* Tall enough */ + border: 2px dashed #e2e8f0; + border-radius: 50% 50% 0 0; + /* Semi-circle top */ + border-bottom: none; z-index: 0; } -.animatedPath { - stroke-dasharray: 1000; - stroke-dashoffset: 1000; - animation: drawPath 3s ease-in-out infinite; -} - -@keyframes drawPath { - 0% { - stroke-dashoffset: 1000; - } - - 50% { - stroke-dashoffset: 0; - } - - 100% { - stroke-dashoffset: -1000; - } -} - -/* Responsive */ -@media (max-width: 768px) { - .connectSection { - padding: 4rem 0; - } - - .platformsContainer { - padding: 2rem 1.5rem; - } - - .platformsGrid { - grid-template-columns: repeat(3, 1fr); - gap: 1rem; - } - - .statsBar { - flex-direction: column; - gap: 1.5rem; - } - - .statDivider { - width: 50px; - height: 2px; - } - - .ctaSection { - padding: 2rem 1.5rem; - } - - .ctaButtons { - flex-direction: column; - width: 100%; - } - - .ctaButtons .btn { - width: 100%; - } -} - -@media (min-width: 768px) { - .ctaSection { - flex-direction: row; - justify-content: space-between; - text-align: left; - padding: 3rem 4rem; - } -} - -/* NEW CREATIVE FEATURES */ - -/* Grid Pattern Background */ -.gridPattern { +/* Icon Slots */ +.iconWrapper { position: absolute; - inset: 0; - background-image: - linear-gradient(rgba(236, 72, 153, 0.03) 1px, transparent 1px), - linear-gradient(90deg, rgba(59, 130, 246, 0.03) 1px, transparent 1px); - background-size: 50px 50px; - opacity: 0.5; - animation: gridMove 20s linear infinite; + width: 60px; + height: 60px; + transform: translate(-50%, -50%); + transition: all 0.6s cubic-bezier(0.25, 1, 0.5, 1); + cursor: pointer; + z-index: 2; } -@keyframes gridMove { - 0% { - transform: translate(0, 0); - } - - 100% { - transform: translate(50px, 50px); - } -} - -/* Enhanced Connect Icon with Rings */ -.connectIconWrapper { - position: relative; - display: inline-block; -} - -.iconRings { - position: absolute; - inset: -20px; - pointer-events: none; -} - -.ring { - position: absolute; - inset: 0; - border: 2px solid var(--primary); +.iconCircle { + width: 100%; + height: 100%; + background: white; border-radius: 50%; - opacity: 0; - animation: ringPulse 3s ease-out infinite; -} - -.ring:nth-child(1) { - animation-delay: 0s; -} - -.ring:nth-child(2) { - animation-delay: 1s; -} - -.ring:nth-child(3) { - animation-delay: 2s; -} - -@keyframes ringPulse { - 0% { - transform: scale(0.8); - opacity: 0.8; - } - - 100% { - transform: scale(2); - opacity: 0; - } -} - -/* Gradient Text */ -.gradientText { - background: linear-gradient(135deg, var(--primary), var(--secondary)); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; -} - -.connectSubtext { - font-size: 0.9rem; - color: var(--text-secondary); - font-weight: 500; - opacity: 0.8; -} - -/* 3D Card Inner Structure */ -.cardInner { - width: 100%; - height: 100%; - position: relative; - transform-style: preserve-3d; - transition: transform 0.6s; -} - -.cardFront { - width: 100%; - height: 100%; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); display: flex; - flex-direction: column; align-items: center; justify-content: center; - gap: 0.5rem; - position: relative; - backface-visibility: hidden; -} - -/* Platform Name Label */ -.platformName { - font-size: 0.7rem; - font-weight: 600; - color: var(--text-secondary); - text-align: center; - opacity: 0; - transform: translateY(10px); + color: var(--color); + border: 2px solid transparent; + /* default */ transition: all 0.3s ease; } -.platformCard:hover .platformName { - opacity: 1; - transform: translateY(0); +.iconCircle svg { + width: 28px; + height: 28px; + fill: currentColor; } -.platformCard.selected .platformName { - color: white; - opacity: 1; - transform: translateY(0); -} +/* Slot Positions (Assuming 900px wide container) */ +/* Arc approximate path: + Center (Slot 3): 50% X, 50px Y + Mid Right (Slot 4): 80% X, 180px Y + Far Right (Slot 5): 90% X, 350px Y + Mid Left (Slot 2): 20% X, 180px Y + Far Left (Slot 1): 10% X, 350px Y +*/ -/* Animated Border */ -.animatedBorder { - position: absolute; - inset: -2px; - background: linear-gradient(45deg, - var(--primary), - var(--secondary), - var(--primary)); - background-size: 200% 200%; - border-radius: 20px; - opacity: 0; - z-index: -1; - animation: borderRotate 3s linear infinite; -} - -.platformCard.selected .animatedBorder { - opacity: 1; -} - -@keyframes borderRotate { - 0% { - background-position: 0% 50%; - } - - 50% { - background-position: 100% 50%; - } - - 100% { - background-position: 0% 50%; - } -} - -/* Shine Effect */ -.shineEffect { - position: absolute; - top: -50%; - left: -50%; - width: 200%; - height: 200%; - background: linear-gradient(45deg, - transparent 30%, - rgba(255, 255, 255, 0.3) 50%, - transparent 70%); - transform: translateX(-100%); - transition: transform 0.6s; -} - -.platformCard:hover .shineEffect { - transform: translateX(100%); -} - -/* Particle System */ -.particleContainer { - position: absolute; - inset: 0; - pointer-events: none; +.slot3 { + /* Center Active */ + left: 50%; + top: 50px; z-index: 10; - overflow: hidden; + /* Active styling logic handled here? No, iconWrapper handles POS */ } -.particle { - position: absolute; - width: 6px; - height: 6px; - border-radius: 50%; +.slot3 .iconCircle { + /* Active item gets a ring or glow? */ + border-color: var(--color); + box-shadow: 0 0 0 4px rgba(0, 0, 0, 0.05); +} + +.slot4 { + /* Right Mid */ + left: 80%; + top: 150px; +} + +.slot5 { + /* Right Entry - fully visible, same size */ + left: 92%; + top: 300px; + opacity: 1; + transform: translate(-50%, -50%) scale(1); +} + +.slot2 { + /* Left Mid */ + left: 20%; + top: 150px; +} + +.slot1 { + /* Left Exit - fully visible, same size */ + left: 8%; + top: 300px; + opacity: 1; + transform: translate(-50%, -50%) scale(1); +} + +.slot0 { + /* Hidden / Exited */ + left: 0%; + top: 400px; + opacity: 0; pointer-events: none; - box-shadow: 0 0 10px currentColor; } -/* Connection Dots */ -.connectionDots { +/* Center Content Card */ +.centerCard { position: absolute; - bottom: -15px; + top: 130px; + /* Below arch vertex */ + left: 50%; + transform: translateX(-50%); + width: 320px; + text-align: center; + z-index: 5; + background: transparent; + /* Or white if needed? Image shows text floating on bg */ + display: flex; + flex-direction: column; + align-items: center; +} + +.cardIcon { + font-size: 3rem; + margin-bottom: 1rem; + width: 64px; + height: 64px; + margin: 0 auto 1rem; +} + +.cardIcon svg { + width: 100%; + height: 100%; +} + +.cardTitle { + font-size: 1.5rem; + margin-bottom: 1rem; + color: var(--text-primary); +} + +.cardDesc { + font-size: 0.95rem; + color: var(--text-secondary); + margin-bottom: 2rem; + line-height: 1.6; +} + +.brandName { + font-weight: 700; + color: var(--primary); +} + +.readMoreBtn { + border: none; + color: white; + padding: 0.75rem 2rem; + border-radius: 50px; + font-weight: 600; + cursor: pointer; + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.15); + transition: transform 0.2s; +} + +.readMoreBtn:hover { + transform: translateY(-2px); +} + +/* Floating More Services Btn - Moved to Bottom Center */ +.moreServicesBtn { + position: absolute; + bottom: -20px; + /* Position at bottom */ left: 50%; transform: translateX(-50%); display: flex; - gap: 4px; + align-items: center; + gap: 0.5rem; + background: #e0f2fe; + /* Light blue */ + padding: 0.5rem 1.5rem; + border-radius: 50px; + cursor: pointer; + color: var(--text-primary); + font-weight: 600; + font-size: 0.9rem; + transition: all 0.3s; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05); z-index: 10; + top: auto; + /* Override previous top */ + right: auto; + /* Override previous right */ } -.connectionDots span { - width: 6px; - height: 6px; - background: white; +.moreServicesBtn:hover { + background: #bae6fd; + transform: translateX(-50%) translateY(-2px); +} + +.plusIcon { + background: var(--secondary); + color: white; + width: 24px; + height: 24px; border-radius: 50%; - animation: dotPulse 1.5s ease-in-out infinite; - box-shadow: 0 0 10px rgba(255, 255, 255, 0.8); -} - -.connectionDots span:nth-child(1) { - animation-delay: 0s; -} - -.connectionDots span:nth-child(2) { - animation-delay: 0.3s; -} - -.connectionDots span:nth-child(3) { - animation-delay: 0.6s; -} - -@keyframes dotPulse { - - 0%, - 100% { - transform: scale(1); - opacity: 1; - } - - 50% { - transform: scale(1.5); - opacity: 0.5; - } -} - -/* Enhanced Stats with Icon Glow */ -.statIconWrapper { - position: relative; - display: inline-block; -} - -.statIconGlow { - position: absolute; - inset: -10px; - background: radial-gradient(circle, var(--primary), transparent 70%); - opacity: 0; - filter: blur(15px); - z-index: -1; - animation: iconGlowPulse 2s ease-in-out infinite; -} - -@keyframes iconGlowPulse { - - 0%, - 100% { - opacity: 0.3; - transform: scale(0.8); - } - - 50% { - opacity: 0.6; - transform: scale(1.2); - } -} - -.statNumber.animated { - animation: numberPop 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55); -} - -@keyframes numberPop { - 0% { - transform: scale(0.5); - } - - 50% { - transform: scale(1.2); - } - - 100% { - transform: scale(1); - } -} - -/* Enhanced CTA with Background Orbs */ -.ctaBackground { - position: absolute; - inset: 0; - overflow: hidden; - z-index: 0; -} - -.ctaOrb1, -.ctaOrb2 { - position: absolute; - border-radius: 50%; - filter: blur(60px); - opacity: 0.3; -} - -.ctaOrb1 { - width: 300px; - height: 300px; - background: radial-gradient(circle, rgba(255, 255, 255, 0.4), transparent); - top: -100px; - right: -100px; - animation: ctaOrbFloat 8s ease-in-out infinite; -} - -.ctaOrb2 { - width: 250px; - height: 250px; - background: radial-gradient(circle, rgba(255, 255, 255, 0.3), transparent); - bottom: -80px; - left: -80px; - animation: ctaOrbFloat 10s ease-in-out infinite reverse; -} - -@keyframes ctaOrbFloat { - - 0%, - 100% { - transform: translate(0, 0) scale(1); - } - - 50% { - transform: translate(30px, -30px) scale(1.1); - } -} - -/* Icon Emoji Styling */ -.iconEmoji { - font-size: 2.5rem; - font-weight: 700; display: flex; align-items: center; justify-content: center; + font-weight: bold; } -/* Checkmark Enhancement */ -.checkmark span { - display: block; - animation: checkSpin 0.5s ease-out; -} - -@keyframes checkSpin { - 0% { - transform: rotate(-180deg) scale(0); +@media (max-width: 768px) { + .arcContainer { + height: auto; + min-height: 380px; } - 100% { - transform: rotate(0) scale(1); + .dashedArc { + display: none; + /* Hide confusing arc on mobile */ + } + + .iconWrapper { + position: relative; + transform: none; + display: inline-block; + margin: 0.5rem; + left: auto !important; + top: auto !important; + opacity: 1 !important; + } + + .centerCard { + position: relative; + top: auto; + left: auto; + transform: none; + margin: 2rem auto; + } + + .moreServicesBtn { + position: relative; + right: auto; + top: auto; + justify-content: center; + margin-top: 2rem; } } \ No newline at end of file diff --git a/components/SocialConnect.tsx b/components/SocialConnect.tsx index f64e97b..07f0dcf 100644 --- a/components/SocialConnect.tsx +++ b/components/SocialConnect.tsx @@ -1,334 +1,159 @@ 'use client'; -import { useState, useRef, useEffect } from 'react'; +import { useState, useEffect } from 'react'; import styles from './SocialConnect.module.css'; +// SVG Icons (Reusing existing ones) +const Icons = { + TikTok: ( + + + + ), + WhatsApp: ( + + + + ), + Discord: ( + + + + ), + YouTube: ( + + + + ), + Instagram: ( + + + + ), + Facebook: ( + + + + ), + Pinterest: ( + + + + ), + Reddit: ( + + + + ), + Dribbble: ( + + + + ) +}; + const socialPlatforms = [ - { name: 'Bluesky', icon: 'πŸ¦‹', color: '#0085ff', delay: 0, symbol: 'B' }, - { name: 'Facebook', icon: 'f', color: '#1877f2', delay: 0.1, symbol: 'F' }, - { name: 'Google', icon: 'G', color: '#4285f4', delay: 0.2, symbol: 'G' }, - { name: 'Instagram', icon: 'πŸ“·', color: '#e4405f', delay: 0.3, symbol: 'I' }, - { name: 'LinkedIn', icon: 'in', color: '#0a66c2', delay: 0.4, symbol: 'L' }, - { name: 'Mastodon', icon: '🐘', color: '#6364ff', delay: 0.5, symbol: 'M' }, - { name: 'Pinterest', icon: 'P', color: '#e60023', delay: 0.6, symbol: 'P' }, - { name: 'Threads', icon: '@', color: '#000000', delay: 0.7, symbol: 'T' }, - { name: 'TikTok', icon: 'β™ͺ', color: '#000000', delay: 0.8, symbol: 'TT' }, - { name: 'X', icon: '𝕏', color: '#000000', delay: 0.9, symbol: 'X' }, - { name: 'YouTube', icon: 'β–Ά', color: '#ff0000', delay: 1.0, symbol: 'Y' }, + { name: 'TikTok', icon: Icons.TikTok, color: '#000000', label: 'Video Marketing', desc: 'Create viral video content that engages millions of users daily.' }, + { name: 'WhatsApp', icon: Icons.WhatsApp, color: '#25D366', label: 'Direct Messaging', desc: 'Connect directly with customers through their preferred chat app.' }, + { name: 'Discord', icon: Icons.Discord, color: '#5865F2', label: 'Community Building', desc: 'Build and manage thriving communities around your brand.' }, + { name: 'YouTube', icon: Icons.YouTube, color: '#FF0000', label: 'Content Strategy', desc: 'Leverage long-form video content to build authority and SEO.' }, + { name: 'Instagram', icon: Icons.Instagram, color: '#E4405F', label: 'Visual Branding', desc: 'Showcase your brand aesthetics clearly and effectively.' }, + { name: 'Facebook', icon: Icons.Facebook, color: '#1877F2', label: 'Social Advertising', desc: 'Target specific demographics with precision ads.' }, + { name: 'Pinterest', icon: Icons.Pinterest, color: '#BD081C', label: 'Visual Discovery', desc: 'Drive traffic through inspiring visual content and pins.' }, + { name: 'Reddit', icon: Icons.Reddit, color: '#FF4500', label: 'Niche Engagement', desc: 'Engage with highly specific interest groups authenticaly.' }, + { name: 'Dribbble', icon: Icons.Dribbble, color: '#EA4C89', label: 'Design Showcase', desc: 'Demonstrate design expertise to a creative audience.' }, ]; -interface Particle { - x: number; - y: number; - vx: number; - vy: number; - life: number; - color: string; -} - export default function SocialConnect() { - const [hoveredIndex, setHoveredIndex] = useState(null); - const [selectedPlatforms, setSelectedPlatforms] = useState([]); - const [particles, setParticles] = useState([]); - const [mousePos, setMousePos] = useState({ x: 0, y: 0 }); - const containerRef = useRef(null); - const cardRefs = useRef<(HTMLDivElement | null)[]>([]); + const [activeIndex, setActiveIndex] = useState(0); - // 3D Tilt Effect on Mouse Move - const handleMouseMove = (e: React.MouseEvent, index: number) => { - const card = cardRefs.current[index]; - if (!card) return; - - const rect = card.getBoundingClientRect(); - const x = e.clientX - rect.left; - const y = e.clientY - rect.top; - - const centerX = rect.width / 2; - const centerY = rect.height / 2; - - const rotateX = ((y - centerY) / centerY) * -15; - const rotateY = ((x - centerX) / centerX) * 15; - - card.style.transform = `perspective(1000px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) translateY(-10px) scale(1.05)`; - }; - - const handleMouseLeave = (index: number) => { - const card = cardRefs.current[index]; - if (card) { - card.style.transform = ''; - } - setHoveredIndex(null); - }; - - // Particle Explosion on Click - const createParticles = (e: React.MouseEvent, color: string) => { - const rect = (e.currentTarget as HTMLElement).getBoundingClientRect(); - const x = e.clientX - rect.left; - const y = e.clientY - rect.top; - - const newParticles: Particle[] = []; - for (let i = 0; i < 12; i++) { - const angle = (Math.PI * 2 * i) / 12; - newParticles.push({ - x, - y, - vx: Math.cos(angle) * (2 + Math.random() * 3), - vy: Math.sin(angle) * (2 + Math.random() * 3), - life: 1, - color, - }); - } - setParticles(prev => [...prev, ...newParticles]); - }; - - const handlePlatformClick = (index: number, e: React.MouseEvent) => { - const isSelected = selectedPlatforms.includes(index); - - setSelectedPlatforms(prev => - prev.includes(index) - ? prev.filter(i => i !== index) - : [...prev, index] - ); - - // Create particle explosion - createParticles(e, socialPlatforms[index].color); - }; - - // Animate particles useEffect(() => { - if (particles.length === 0) return; - const interval = setInterval(() => { - setParticles(prev => - prev - .map(p => ({ - ...p, - x: p.x + p.vx, - y: p.y + p.vy, - vy: p.vy + 0.2, // gravity - life: p.life - 0.02, - })) - .filter(p => p.life > 0) - ); - }, 16); - + setActiveIndex((prev) => (prev + 1) % socialPlatforms.length); + }, 3000); return () => clearInterval(interval); - }, [particles]); + }, []); - // Magnetic cursor effect - const handleContainerMouseMove = (e: React.MouseEvent) => { - setMousePos({ x: e.clientX, y: e.clientY }); + const getSlot = (index: number) => { + const length = socialPlatforms.length; + let diff = (index - activeIndex) % length; + if (diff < 0) diff += length; + + // Slot Mapping: + // diff 0 -> Center (3) + // diff 1 -> Right Mid (4) + // diff 2 -> Right Entry (5) + // diff length-1 -> Left Mid (2) + // diff length-2 -> Left Exit (1) + + if (diff === 0) return 3; + if (diff === 1) return 4; + if (diff === 2) return 5; + if (diff === length - 1) return 2; + if (diff === length - 2) return 1; + return 0; // Hidden }; + const activePlatform = socialPlatforms[activeIndex]; + return ( -
-
- {/* Animated Background Elements */} -
-
-
-
-
-
- - {/* Header */} +
+
- - πŸ”— - One Platform, All Networks - - +
Our Services

- Connect Your Favorite Accounts + Always we offer the best services for success!

-

- Seamlessly integrate all your social media platforms in one place. - Manage, schedule, and analyze everything from a single dashboard. +

+ New analytic tools can help manufacturers in labor-intensive sectors boost + productivity and earnings by double-digit on It is a secure and simple + ondemand. the total percentages.

- {/* Interactive Platform Grid */} -
-
-
-
🌐
-
-
-
-
-
-
-

Connect your
favorite accounts

-

Click to select platforms

-
+
+
-
- {socialPlatforms.map((platform, index) => ( + {socialPlatforms.map((platform, index) => { + const slot = getSlot(index); + return (
{ cardRefs.current[index] = el; }} - className={`${styles.platformCard} ${selectedPlatforms.includes(index) ? styles.selected : '' - } ${hoveredIndex === index ? styles.hovered : ''}`} - style={{ - animationDelay: `${platform.delay}s`, - '--platform-color': platform.color - } as React.CSSProperties} - onMouseEnter={() => setHoveredIndex(index)} - onMouseMove={(e) => handleMouseMove(e, index)} - onMouseLeave={() => handleMouseLeave(index)} - onClick={(e) => handlePlatformClick(index, e)} + className={`${styles.iconWrapper} ${styles[`slot${slot}`]}`} + style={{ '--color': platform.color } as React.CSSProperties} + onClick={() => setActiveIndex(index)} > - {/* 3D Card Inner */} -
-
-
- - {platform.icon} - -
{platform.name}
- {selectedPlatforms.includes(index) && ( -
- βœ“ -
- )} -
- - {/* Animated border */} -
- - {/* Shine effect */} -
-
+
+ {platform.icon}
- -
-
- - {/* Connection dots */} - {selectedPlatforms.includes(index) && ( -
- - - -
- )}
- ))} -
+ ); + })} - {/* Particle System */} -
- {particles.map((particle, i) => ( -
- ))} -
-
- - {/* Enhanced Stats Bar */} -
-
-
-
🎯
-
+
+
+ {activePlatform.icon}
-
-
11+
-
Platforms Supported
-
-
-
-
-
-
⚑
-
-
-
-
- {selectedPlatforms.length > 0 ? selectedPlatforms.length : '0'} -
-
Selected Networks
-
-
-
-
-
-
πŸš€
-
-
-
-
1-Click
-
Easy Integration
-
-
-
- - {/* Enhanced CTA Section */} -
-
-
-
-
-
-

Ready to streamline your social media?

-

- Connect all your accounts now and start managing them from one powerful dashboard. +

{activePlatform.label}

+

+ {activePlatform.desc} +
+ Prysm Quarterly has been defining...

-
-
- -
-
- {/* Floating Connection Lines Animation */} - - - - - - - - - - - - - - - - - - + {/*
+
+
+ More Services + β†— +
*/} +
); diff --git a/components/StatsCounter.module.css b/components/StatsCounter.module.css new file mode 100644 index 0000000..5fa4a65 --- /dev/null +++ b/components/StatsCounter.module.css @@ -0,0 +1,125 @@ +/* Section: Transparent/Clean */ +.statsSection { + padding: 4rem 0 4rem; + background: transparent; + position: relative; + z-index: 10; +} + +.container { + max-width: 1200px; + margin: 0 auto; + padding: 0 1.5rem; +} + +/* Grid Container for separate cards */ +.statsGrid { + background: transparent; + border-radius: 0; + box-shadow: none; + padding: 0; + + display: grid; + grid-template-columns: repeat(1, 1fr); + gap: 2rem; + margin: 0; + top: auto; +} + +@media (min-width: 768px) { + .statsGrid { + grid-template-columns: repeat(3, 1fr); + gap: 2rem; + /* Distinct gap for separate cards */ + padding: 0; + } +} + +/* Individual Card Styling */ +.statItem { + background: white; + border-radius: 24px; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05); + padding: 2rem 1.5rem; + + display: flex; + align-items: center; + gap: 1.5rem; + transition: transform 0.3s ease, box-shadow 0.3s ease; + border: 1px solid rgba(0, 0, 0, 0.02); +} + +.statItem:hover { + transform: translateY(-5px); + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08); +} + +/* Floating Icon Wrapper */ +.iconWrapper { + width: 60px; + height: 60px; + display: flex; + align-items: center; + justify-content: center; + position: relative; + flex-shrink: 0; + animation: floatIcon 3s ease-in-out infinite; +} + +/* Icon Background Blob */ +.iconBg { + position: absolute; + inset: 0; + background: linear-gradient(135deg, rgba(236, 72, 153, 0.1), rgba(59, 130, 246, 0.1)); + border-radius: 16px; + transform: rotate(10deg); +} + +.statIcon { + font-size: 1.75rem; + position: relative; + z-index: 2; +} + +/* Text Content */ +.textContent { + display: flex; + flex-direction: column; + justify-content: center; +} + +.numberWrapper { + font-size: 2rem; + font-weight: 800; + line-height: 1; + margin-bottom: 0.25rem; + color: var(--text-primary); + background: var(--gradient-primary); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + display: flex; + justify-content: flex-start; + align-items: baseline; + gap: 0.1ch; +} + +.label { + font-size: 0.85rem; + color: var(--text-secondary); + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.5px; +} + +@keyframes floatIcon { + + 0%, + 100% { + transform: translateY(0); + } + + 50% { + transform: translateY(-8px); + } +} \ No newline at end of file diff --git a/components/StatsCounter.tsx b/components/StatsCounter.tsx new file mode 100644 index 0000000..52300a5 --- /dev/null +++ b/components/StatsCounter.tsx @@ -0,0 +1,118 @@ +'use client'; + +import { useState, useEffect, useRef } from 'react'; +import styles from './StatsCounter.module.css'; + +export default function StatsCounter() { + const [hasAnimated, setHasAnimated] = useState(false); + const sectionRef = useRef(null); + + // Stats State + const [counts, setCounts] = useState({ + users: 0, + posts: 0, + satisfaction: 0 + }); + + const targets = { + users: 15, // 15K+ + posts: 2, // 2M+ + satisfaction: 99 // 99% + }; + + useEffect(() => { + const observer = new IntersectionObserver( + (entries) => { + if (entries[0].isIntersecting && !hasAnimated) { + setHasAnimated(true); + } + }, + { threshold: 0.5 } + ); + + if (sectionRef.current) { + observer.observe(sectionRef.current); + } + + return () => observer.disconnect(); + }, [hasAnimated]); + + useEffect(() => { + if (!hasAnimated) return; + + const duration = 2000; // 2s + const steps = 60; + const intervalTime = duration / steps; + + let currentStep = 0; + + const timer = setInterval(() => { + currentStep++; + const progress = Math.min(currentStep / steps, 1); + + // Easing function for smooth count + const easeOutQuart = (x: number) => 1 - Math.pow(1 - x, 4); + const value = easeOutQuart(progress); + + setCounts({ + users: Math.floor(targets.users * value), + posts: Math.floor(targets.posts * value * 10) / 10, // Keep decimal for smaller numbers if needed, here integers roughly + satisfaction: Math.floor(targets.satisfaction * value) + }); + + if (currentStep >= steps) clearInterval(timer); + }, intervalTime); + + return () => clearInterval(timer); + }, [hasAnimated]); + + return ( +
+
+
+ {/* Stat 1 */} +
+
+
+ πŸ‘₯ +
+
+
+ {hasAnimated ? counts.users : 0}k+ +
+

Active Users

+
+
+ + {/* Stat 2 */} +
+
+
+ πŸš€ +
+
+
+ {hasAnimated ? '2' : '0'}M+ +
+

Posts Scheduled

+
+
+ + {/* Stat 3 */} +
+
+
+ ⭐ +
+
+
+ {hasAnimated ? counts.satisfaction : 0}% +
+

Client Satisfaction

+
+
+
+
+
+ ); +} diff --git a/components/TestimonialSlider.tsx b/components/TestimonialSlider.tsx new file mode 100644 index 0000000..59a1f10 --- /dev/null +++ b/components/TestimonialSlider.tsx @@ -0,0 +1,69 @@ +"use client"; + +import { useState, useEffect } from "react"; +import styles from "@/app/features/[slug]/feature-page.module.css"; +import SafeImage from "./SafeImage"; +import { Star } from "lucide-react"; + +interface Testimonial { + quote: string; + author: string; + role: string; + rating: number; + image: string; +} + +export default function TestimonialSlider({ testimonials }: { testimonials: Testimonial[] }) { + const [currentIndex, setCurrentIndex] = useState(0); + + useEffect(() => { + const interval = setInterval(() => { + setCurrentIndex((prev) => (prev + 1) % testimonials.length); + }, 5000); // 5 seconds per slide + return () => clearInterval(interval); + }, [testimonials.length]); + + const current = testimonials[currentIndex]; + + return ( +
+
+
+ {[...Array(5)].map((_, i) => ( + + ))} +
+
+ "{current.quote}" +
+
+ +
+

{current.author}

+ {current.role} +
+
+
+
+ {testimonials.map((_, idx) => ( +
+
+ ); +} diff --git a/components/Testimonials.module.css b/components/Testimonials.module.css index 5790fee..c938aae 100644 --- a/components/Testimonials.module.css +++ b/components/Testimonials.module.css @@ -1,224 +1,293 @@ -.header { - text-align: center; - margin-bottom: 4rem; +.testimonialSection { + padding: 4rem 0; + overflow: hidden; + background: linear-gradient(to right, #f9fafb 50%, #ffffff 50%); + /* Subtle separation if needed */ + background: #f8fafc; } -.badge { - display: inline-flex; - align-items: center; - gap: 0.5rem; - padding: 0.5rem 1.25rem; - background: linear-gradient(135deg, rgba(236, 72, 153, 0.1), rgba(59, 130, 246, 0.1)); - border: 1px solid rgba(236, 72, 153, 0.2); - border-radius: 50px; - font-size: 0.875rem; - font-weight: 600; - color: var(--primary); - margin-bottom: 1rem; -} - -.title { - font-size: clamp(2rem, 5vw, 3rem); - font-weight: 800; - margin-bottom: 1rem; - line-height: 1.2; -} - -.subtitle { - font-size: 1.125rem; - color: var(--text-secondary); - max-width: 600px; +.layoutContainer { + max-width: 1400px; margin: 0 auto; -} - -.testimonialSlider { - overflow: hidden; - margin-bottom: 2rem; - position: relative; -} - -.testimonialTrack { - display: flex; - transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1); -} - -.testimonialCard { - min-width: 100%; - padding: 3rem 2rem; - background: var(--card-bg); - border: 1px solid var(--border-color); - border-radius: 24px; - position: relative; - overflow: hidden; -} - -.testimonialCard::before { - content: '"'; - position: absolute; - top: 1rem; - left: 2rem; - font-size: 8rem; - font-family: Georgia, serif; - color: var(--primary); - opacity: 0.1; - line-height: 1; -} - -.stars { - display: flex; - gap: 0.25rem; - margin-bottom: 1.5rem; - font-size: 1.25rem; -} - -.star { - animation: twinkle 2s ease-in-out infinite; -} - -.star:nth-child(2) { - animation-delay: 0.2s; -} - -.star:nth-child(3) { - animation-delay: 0.4s; -} - -.star:nth-child(4) { - animation-delay: 0.6s; -} - -.star:nth-child(5) { - animation-delay: 0.8s; -} - -@keyframes twinkle { - - 0%, - 100% { - opacity: 1; - transform: scale(1); - } - - 50% { - opacity: 0.7; - transform: scale(0.95); - } -} - -.testimonialText { - font-size: 1.25rem; - line-height: 1.8; - color: var(--text-primary); - margin-bottom: 2rem; - font-style: italic; - position: relative; - z-index: 1; -} - -.author { display: flex; align-items: center; - gap: 1rem; + position: relative; + padding: 0 2rem; + gap: 0; + /* No gap because we force overlap */ } -.authorImage { - width: 60px; - height: 60px; - border-radius: 50%; +/* LEFT SIDE CARD */ +.leftCard { + flex: 0 0 450px; + background: var(--primary); + /* Assuming green/primary color */ background: linear-gradient(135deg, var(--primary), var(--secondary)); + border-radius: 32px; + padding: 4rem 3rem; + color: white; + position: relative; + z-index: 10; + /* Above slider */ + box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); + /* Make it overlap the slider area */ + margin-right: -40px; + overflow: hidden; + /* For pattern */ + min-height: 500px; display: flex; - align-items: center; + flex-direction: column; justify-content: center; - font-size: 2rem; - flex-shrink: 0; } -.authorInfo { - flex: 1; +/* Decorative pattern roughly matching image curves */ +.leftCard::before { + content: ''; + position: absolute; + bottom: -50px; + right: -50px; + width: 200px; + height: 200px; + border-radius: 50%; + border: 30px solid rgba(255, 255, 255, 0.1); } -.authorName { - font-size: 1.125rem; - font-weight: 700; - color: var(--text-primary); - margin-bottom: 0.25rem; +.leftCard::after { + content: ''; + position: absolute; + bottom: -80px; + right: -80px; + width: 300px; + height: 300px; + border-radius: 50%; + border: 30px solid rgba(255, 255, 255, 0.05); } -.authorRole { - font-size: 0.9375rem; - color: var(--text-secondary); +.cardContent { + position: relative; + z-index: 2; } -.dots { +.cardTitle { + font-size: 2.5rem; + font-weight: 800; + line-height: 1.2; + margin-bottom: 1.5rem; + color: white; +} + +.cardDescription { + font-size: 1.1rem; + line-height: 1.6; + opacity: 0.9; + margin-bottom: 3rem; + max-width: 90%; + color: #fff; +} + +.miniStats { display: flex; - justify-content: center; - gap: 0.75rem; + gap: 2rem; margin-bottom: 3rem; } -.dot { - width: 12px; - height: 12px; - border-radius: 50%; - background: var(--border-color); +.statBadge { + display: flex; + align-items: center; + gap: 0.75rem; + background: rgba(255, 255, 255, 0.1); + padding: 0.75rem 1rem; + border-radius: 12px; + backdrop-filter: blur(5px); +} + +.statIcon { + font-size: 1.5rem; +} + +.statBadge strong { + display: block; + font-size: 1.1rem; + line-height: 1; +} + +.statBadge span { + font-size: 0.8rem; + opacity: 0.8; +} + +.readMoreBtn { + background: white; + color: var(--primary); border: none; + padding: 1rem 2rem; + border-radius: 12px; + font-weight: 700; cursor: pointer; - transition: all 0.3s ease; - padding: 0; + transition: transform 0.2s ease, box-shadow 0.2s ease; } -.dot:hover { - background: var(--primary); - opacity: 0.7; +.readMoreBtn:hover { + transform: translateY(-2px); + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1); } -.activeDot { - background: var(--primary); - width: 32px; - border-radius: 6px; +/* RIGHT SIDE SLIDER */ +.sliderContainer { + flex: 1; + position: relative; + z-index: 1; + /* Below Left Card */ + overflow: hidden; + padding: 4rem 0 4rem 6rem; + /* Extra left padding to compensate overlap */ + /* Mask/gradient to fade out right side? Optional. */ + mask-image: linear-gradient(to right, black 80%, transparent 100%); } -.stats { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); +.sliderTrack { + display: flex; gap: 2rem; - margin-top: 4rem; - padding-top: 3rem; - border-top: 1px solid var(--border-color); + transition: transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1); } -.statItem { - text-align: center; +.sliderCard { + flex: 0 0 320px; + background: white; + border-radius: 20px; + padding: 2rem; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05); + border: 1px solid #edf2f7; + transition: transform 0.3s ease; + display: flex; + flex-direction: column; } -.statNumber { - font-size: 2.5rem; - font-weight: 800; - background: linear-gradient(135deg, var(--primary), var(--secondary)); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; - margin-bottom: 0.5rem; +.sliderCard:hover { + transform: translateY(-5px); + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08); } -.statLabel { +.cardHeader { + display: flex; + align-items: center; + margin-bottom: 1.5rem; + gap: 1rem; +} + +.userImage { + width: 48px; + height: 48px; + border-radius: 50%; + background: #f0f4f8; + display: flex; + align-items: center; + justify-content: center; + font-size: 1.5rem; +} + +.userInfo h4 { font-size: 1rem; - color: var(--text-secondary); - font-weight: 500; + font-weight: 700; + margin: 0; + color: #2d3748; } -@media (min-width: 768px) { - .testimonialCard { - padding: 4rem 3rem; - } - - .testimonialText { - font-size: 1.5rem; - } +.userCompany { + font-size: 0.8rem; + color: #718096; + display: block; } -@media (min-width: 1024px) { - .testimonialCard { - padding: 5rem 6rem; +.rating { + margin-left: auto; + font-size: 0.8rem; +} + +.reviewTitle { + font-size: 1.1rem; + font-weight: 700; + margin-bottom: 0.75rem; + color: #1a202c; +} + +.reviewText { + font-size: 0.95rem; + line-height: 1.6; + color: #4a5568; + display: -webkit-box; + -webkit-line-clamp: 4; + line-clamp: 4; + -webkit-box-orient: vertical; + overflow: hidden; +} + +/* NAVIGATION */ +.sliderNav { + display: flex; + gap: 1rem; + margin-top: 2rem; + justify-content: flex-start; + padding-left: 2rem; +} + +.navBtn { + width: 40px; + height: 40px; + border-radius: 50%; + border: 1px solid #cbd5e0; + background: white; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + transition: all 0.2s; + color: #4a5568; +} + +.navBtn:hover { + background: var(--primary); + color: white; + border-color: var(--primary); +} + +/* RESPONSIVE */ +.cardBgPattern { + display: none; +} + +@media (max-width: 1024px) { + .layoutContainer { + flex-direction: column; + align-items: stretch; + gap: 2rem; + padding: 0 1rem; + } + + .leftCard { + flex: none; + margin-right: 0; + width: 100%; + min-height: auto; + padding: 3rem 2rem; + border-radius: 24px; + } + + .sliderContainer { + padding: 0; + mask-image: none; + overflow: visible; + } + + .sliderTrack { + /* On mobile, maybe snap scroll? */ + overflow-x: auto; + padding-bottom: 2rem; + transform: none !important; + /* Disable JS slide on mobile if preferring native scroll */ + } + + .sliderCard { + flex: 0 0 280px; } } \ No newline at end of file diff --git a/components/Testimonials.tsx b/components/Testimonials.tsx index ba57506..7daa1f9 100644 --- a/components/Testimonials.tsx +++ b/components/Testimonials.tsx @@ -1,137 +1,205 @@ 'use client'; -import { useState, useEffect } from 'react'; +import { useState, useEffect, useRef } from 'react'; import styles from './Testimonials.module.css'; export default function Testimonials() { const [activeIndex, setActiveIndex] = useState(0); + const [isResetting, setIsResetting] = useState(false); + const timeoutRef = useRef(null); const testimonials = [ { name: 'Sarah Johnson', role: 'Marketing Director', company: 'TechFlow Inc.', - image: 'πŸ‘©β€πŸ’Ό', - rating: 5, - text: 'SocialBuddy has completely transformed how we manage our social media. The scheduling features and analytics are game-changers. We\'ve seen a 300% increase in engagement!', + text: 'SocialBuddy has completely transformed how we manage our social media. The scheduling features and analytics are game-changers.', + image: 'πŸ‘©β€πŸ’Ό' }, { name: 'Michael Chen', role: 'Content Creator', company: 'Digital Nomad', - image: 'πŸ‘¨β€πŸ’»', - rating: 5, - text: 'As a solo creator managing multiple platforms, SocialBuddy saves me hours every week. The AI content suggestions are incredibly helpful, and the unified inbox is a lifesaver.', + text: 'As a solo creator managing multiple platforms, SocialBuddy saves me hours every week. The AI content suggestions are incredibly helpful.', + image: 'πŸ‘¨β€πŸ’»' }, { name: 'Emily Rodriguez', role: 'Social Media Manager', company: 'BrandBoost Agency', - image: 'πŸ‘©β€πŸŽ¨', - rating: 5, - text: 'Managing 20+ client accounts used to be overwhelming. SocialBuddy\'s team collaboration features and approval workflows have streamlined our entire process. Highly recommended!', + text: 'Managing 20+ client accounts used to be overwhelming. SocialBuddy\'s team collaboration features have streamlined our process.', + image: 'πŸ‘©β€πŸŽ¨' }, { name: 'David Park', role: 'CEO', company: 'StartupHub', - image: 'πŸ‘¨β€πŸ’Ό', - rating: 5, - text: 'The analytics and reporting features are outstanding. We can now make data-driven decisions about our social media strategy. ROI has improved significantly since switching to SocialBuddy.', + text: 'The analytics and reporting features are outstanding. We can now make data-driven decisions about our social media strategy.', + image: 'πŸ‘¨β€πŸ’Ό' }, { name: 'Lisa Thompson', role: 'Influencer', company: 'Lifestyle & Travel', - image: 'πŸ‘©β€πŸ¦°', - rating: 5, - text: 'I love how intuitive SocialBuddy is! The content calendar helps me plan my posts weeks in advance, and the best time to post feature ensures maximum reach. It\'s perfect for influencers!', + text: 'I love how intuitive SocialBuddy is! The content calendar helps me plan my posts weeks in advance.', + image: 'πŸ‘©β€πŸ¦°' }, { name: 'James Wilson', role: 'E-commerce Manager', company: 'ShopSmart', - image: 'πŸ‘¨β€πŸ«', - rating: 5, - text: 'SocialBuddy has helped us maintain a consistent brand presence across all platforms. The bulk scheduling feature is amazing for our product launches. Customer engagement has never been better!', - }, + text: 'SocialBuddy has helped us maintain a consistent brand presence across all platforms. The bulk scheduling feature is amazing.', + image: 'πŸ‘¨β€πŸ«' + } ]; + // Clone the first few items to create the infinite illusion + // We need enough clones to fill the visible area. 4 is safe. + const extendedTestimonials = [...testimonials, ...testimonials.slice(0, 4)]; + const totalOriginal = testimonials.length; + useEffect(() => { const interval = setInterval(() => { - setActiveIndex((current) => (current + 1) % testimonials.length); - }, 5000); + handleNext(); + }, 3000); return () => clearInterval(interval); - }, [testimonials.length]); + }, [activeIndex, isResetting]); // Re-create interval if state changes to avoid stale closures, though functional update handles it. - const handleDotClick = (index: number) => { - setActiveIndex(index); + const handleNext = () => { + if (isResetting) return; + + setActiveIndex((prev) => { + // If we are at the end of the original list (showing the first clone) + // We animate TO the clone. + return prev + 1; + }); + }; + + // Handle seamless reset + useEffect(() => { + if (activeIndex === totalOriginal) { + // We have just slid TO the first cloned item (visually identical to index 0) + // Wait for transition to finish, then snap back to real 0 + timeoutRef.current = setTimeout(() => { + setIsResetting(true); // Disable transition + setActiveIndex(0); // Jump to 0 + + // Re-enable transition after a brief moment to allow DOM update + requestAnimationFrame(() => { + requestAnimationFrame(() => { + setIsResetting(false); + }); + }); + }, 500); // Must match CSS transition duration + } + + return () => { + if (timeoutRef.current) clearTimeout(timeoutRef.current); + }; + }, [activeIndex, totalOriginal]); + + const slideNext = () => { + if (isResetting) return; + setActiveIndex(prev => prev + 1); + }; + + const slidePrev = () => { + if (isResetting) return; + if (activeIndex === 0) { + // Jump to end clone without transition, then slide back + setIsResetting(true); + setActiveIndex(totalOriginal); + requestAnimationFrame(() => { + requestAnimationFrame(() => { + setIsResetting(false); + setActiveIndex(totalOriginal - 1); + }); + }); + } else { + setActiveIndex(prev => prev - 1); + } }; return ( -
-
-
-
- ⭐ - Testimonials +
+
+ {/* Left Side Static Card - High Z-Index */} +
+
+

+ Discover your
+ entrepreneurial potential +

+

+ Join countless marketers and influencers who have transformed their social media presence with SocialBuddy. + Success is just a click away. +

+ +
+
+ πŸ‘₯ +
+ 10,000+ + Happy Users +
+
+
+ ⭐ +
+ 4.9/5 + Ratings +
+
+
+ +
-

- Loved by Thousands of Users -

-

- Don't just take our word for it. See what our customers have to say about SocialBuddy. -

-
-
- {testimonials.map((testimonial, index) => ( -
-
- {[...Array(testimonial.rating)].map((_, i) => ( - ⭐ - ))} -
-

"{testimonial.text}"

-
-
{testimonial.image}
-
-
{testimonial.name}
-
- {testimonial.role} at {testimonial.company} -
+ {/* Right Side Slider - Lower Z-Index, moves behind Left Card */} +
+
+ {extendedTestimonials.map((t, i) => ( +
+
+
{t.image}
+
+

{t.name}

+ {t.company}
+
⭐⭐⭐⭐⭐
+
Amazing Experience!
+

{t.text}

))}
-
-
- {testimonials.map((_, index) => ( + {/* Navigation Arrows */} +
- -
-
-
4.9/5
-
Average Rating
-
-
-
10,000+
-
Happy Customers
-
-
-
98%
-
Satisfaction Rate
+ className={styles.navBtn} + onClick={slidePrev} + aria-label="Previous testimonial" + > + ← + +
diff --git a/components/WhyChooseUs.module.css b/components/WhyChooseUs.module.css new file mode 100644 index 0000000..2831d8b --- /dev/null +++ b/components/WhyChooseUs.module.css @@ -0,0 +1,322 @@ +.section { + padding: 5rem 0; + position: relative; + background: var(--background); + overflow: hidden; +} + +@media (min-width: 768px) { + .section { + padding: 4rem 0; + } +} + +@media (min-width: 1024px) { + .section { + padding: 4rem 0; + } +} + +.header { + text-align: center; + max-width: 800px; + margin: 0 auto 5rem; +} + +.subTitle { + color: #0072b1; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 2px; + font-size: 0.9rem; + margin-bottom: 1rem; + display: inline-block; +} + +.title { + font-size: clamp(2.5rem, 5vw, 3.5rem); + font-weight: 800; + margin-bottom: 1.5rem; + color: var(--foreground); + line-height: 1.1; +} + +.highlight { + background: linear-gradient(135deg, var(--primary), var(--secondary)); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.subtitle { + font-size: 1.2rem; + color: var(--foreground-secondary); + line-height: 1.6; +} + +/* Bento Grid Layout */ +.bentoGrid { + display: grid; + grid-template-columns: 1fr; + gap: 2rem; +} + +.bentoItem { + background: var(--card-bg, rgba(255, 255, 255, 0.5)); + border: 1px solid var(--border-color); + border-radius: 24px; + padding: 2rem; + display: flex; + flex-direction: column; + justify-content: space-between; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + position: relative; + overflow: hidden; + height: 100%; +} + +.bentoItem:hover { + transform: translateY(-5px); + box-shadow: 0 20px 40px -5px rgba(0, 0, 0, 0.1); + border-color: var(--primary); +} + +.itemContent { + position: relative; + z-index: 2; +} + +.iconWrapper { + width: 50px; + height: 50px; + background: rgba(0, 0, 0, 0.05); + /* Very light gray for icon bg */ + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 1.5rem; + font-size: 1.5rem; +} + +.bentoItem h3 { + font-size: 1.5rem; + font-weight: 700; + margin-bottom: 0.75rem; + color: var(--foreground); +} + +.bentoItem p { + color: var(--foreground-secondary); + line-height: 1.6; + font-size: 1rem; + margin: 0; +} + +/* Desktop Grid Configuration */ +@media (min-width: 1024px) { + .bentoGrid { + grid-template-columns: repeat(3, 1fr); + grid-template-rows: repeat(2, 320px); + /* Fixed height rows for bento look */ + gap: 2rem; + } + + .itemLarge { + grid-column: span 2; + } + + /* Specific positioning if needed: + Row 1: Large (AI) | Small (Community) + Row 2: Small (Integrations) | Large (Analytics) + */ + .bentoItem:nth-child(2) { + /* Community */ + grid-column: 3; + grid-row: 1; + } + + .bentoItem:nth-child(3) { + /* Integrations */ + grid-column: 1; + grid-row: 2; + } + + .bentoItem:nth-child(4) { + /* Analytics */ + grid-column: 2 / span 2; + grid-row: 2; + } +} + +/* Tablet Grid */ +@media (min-width: 768px) and (max-width: 1023px) { + .bentoGrid { + grid-template-columns: 1fr 1fr; + gap: 2rem; + } + + .itemLarge { + grid-column: span 2; + } +} + +/* Visuals Styling */ + +/* AI Visual */ +.visualAi { + margin-top: 2rem; + background: #f8fafc; + border-radius: 12px; + padding: 1rem; + border: 1px solid var(--border-color); +} + +.typingBox { + display: flex; + gap: 0.25rem; + margin-bottom: 0.5rem; +} + +.typingDot { + width: 6px; + height: 6px; + background: var(--primary); + border-radius: 50%; + animation: bounce 1.4s infinite ease-in-out both; +} + +.typingDot:nth-child(1) { + animation-delay: -0.32s; +} + +.typingDot:nth-child(2) { + animation-delay: -0.16s; +} + +@keyframes bounce { + + 0%, + 80%, + 100% { + transform: scale(0); + } + + 40% { + transform: scale(1); + } +} + +.aiMessage { + font-size: 0.875rem; + color: var(--foreground); + font-weight: 500; +} + +/* Community Visual */ +.visualCommunity { + flex-grow: 1; + display: flex; + align-items: flex-end; + justify-content: center; + padding-bottom: 1rem; +} + +.avatarStack { + display: flex; + margin-left: 15px; + /* offset for negative margins */ +} + +.avatar { + width: 40px; + height: 40px; + border-radius: 50%; + border: 3px solid white; + background: #ccc; + margin-left: -15px; + /* Placeholder gradients */ +} + +.avatar:nth-child(1) { + background: #FFD700; +} + +.avatar:nth-child(2) { + background: #FF6B6B; +} + +.avatar:nth-child(3) { + background: #4ECDC4; +} + + +/* Integrations Visual */ +.visualIntegrations { + flex-grow: 1; + display: flex; + align-items: flex-end; + justify-content: center; + padding-bottom: 1rem; +} + +.logoGrid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 10px; +} + +.miniLogo { + width: 40px; + height: 40px; + background: #f1f5f9; + border-radius: 8px; + border: 1px solid var(--border-color); +} + + +/* Analytics Visual */ +.visualAnalytics { + margin-top: 2rem; + display: flex; + align-items: flex-end; + gap: 1rem; + height: 60px; + padding-left: 1rem; + border-left: 2px solid var(--border-color); + border-bottom: 2px solid var(--border-color); +} + +.graphBar { + width: 30px; + background: linear-gradient(to top, var(--primary), var(--secondary)); + border-radius: 4px 4px 0 0; + transition: height 0.5s ease; +} + +.graphBar:nth-child(1) { + height: 40%; + animation: grow 2s infinite alternate; +} + +.graphBar:nth-child(2) { + height: 70%; + animation: grow 2.5s infinite alternate; + animation-delay: 0.2s; +} + +.graphBar:nth-child(3) { + height: 90%; + animation: grow 1.8s infinite alternate; + animation-delay: 0.4s; +} + +@keyframes grow { + from { + transform: scaleY(0.8); + } + + to { + transform: scaleY(1.1); + } +} \ No newline at end of file diff --git a/components/WhyChooseUs.tsx b/components/WhyChooseUs.tsx new file mode 100644 index 0000000..b772903 --- /dev/null +++ b/components/WhyChooseUs.tsx @@ -0,0 +1,94 @@ +'use client'; + +import styles from './WhyChooseUs.module.css'; + +export default function WhyChooseUs() { + return ( +
+
+
+
Why Choose Us
+

Why SocialBuddy?

+

+ Don't just manage your social mediaβ€”master it. Join thousands of creators and businesses who use SocialBuddy to grow faster. +

+
+ +
+ {/* Item 1: AI Assistant (Large) */} +
+
+
+ ✨ +
+

The Ultimate AI Assistant

+

Generate captions, hashtags, and creative ideas in seconds with our context-aware AI.

+
+
+
+ + + +
+
Content generated! πŸš€
+
+
+ + {/* Item 2: Community (Small) */} +
+
+
+ πŸ‘₯ +
+

Trusted by 50K+

+

Join a community of serious creators.

+
+
+
+
+
+
+
+
+
+ + {/* Item 3: Integrations (Small) */} +
+
+
+ πŸ”Œ +
+

Seamless Sync

+

Works with your favorite tools.

+
+
+
+
+
+
+
+
+
+
+ + {/* Item 4: Analytics (Large) */} +
+
+
+ πŸ“ˆ +
+

Data-Driven Insights

+

Make decisions based on real-time performance data, not guesswork. Track growth instantly.

+
+
+
+
+
+
+
+
+
+
+
+ ); +} diff --git a/data/channels.ts b/data/channels.ts new file mode 100644 index 0000000..e30c280 --- /dev/null +++ b/data/channels.ts @@ -0,0 +1,285 @@ + +export interface ChannelDetail { + title: string; + text: string; + image: string; + reverse: boolean; +} + +export interface ChannelBenefit { + title: string; + description: string; + icon: string; +} + +export interface ChannelAbout { + title: string; + description: string; + subTitle: string; + bulletPoints: { text: string; icon: string }[]; + mainImage: string; + subImage: string; +} + +export interface ChannelTestimonial { + quote: string; + author: string; + role: string; + rating: number; // 1-5 + image: string; +} + +export interface ChannelFAQ { + question: string; + answer: string; +} + +export interface Channel { + slug: string; + title: string; + subtitle: string; + heroImage: string; + description: string; + about: ChannelAbout; + benefits: ChannelBenefit[]; + testimonials: ChannelTestimonial[]; + faqs: ChannelFAQ[]; + details: ChannelDetail[]; +} + +export const channels: Channel[] = [ + { + slug: 'facebook', + title: 'Facebook', + subtitle: 'Master Your Facebook Presence', + heroImage: '/images/channels/facebook-hero.png', + description: 'Schedule posts, analyze performance, and engage with your Facebook community from one dashboard.', + about: { + title: 'Complete Facebook Management', + subTitle: 'Connect & Convert', + description: 'Maximize your Facebook impact. From scheduling regular posts and Stories to analyzing page performance, SocialBuddy gives you the tools to grow your audience and drive engagement on the world\'s largest social network.', + bulletPoints: [ + { text: 'Auto-Schedule Posts', icon: 'Calendar' }, + { text: 'Audience Insights', icon: 'BarChart' }, + { text: 'Community Management', icon: 'Inbox' }, + { text: 'Ad Performance', icon: 'Trophy' } + ], + mainImage: '/images/channels/facebook-about-main.jpg', + subImage: '/images/channels/facebook-about-sub.jpg' + }, + benefits: [ + { title: 'Reels & Stories', description: 'Schedule more than just posts. Plan your Reels and Stories in advance.', icon: 'Smartphone' }, + { title: 'First Comment', description: 'Automatically add the first comment to your posts to boost engagement.', icon: 'Inbox' }, + { title: 'Best Time to Post', description: 'AI-driven insights tell you exactly when your audience is most active.', icon: 'Zap' }, + { title: 'Bulk Upload', description: 'Upload hundreds of posts at once via CSV to fill your calendar instantly.', icon: 'Layout' } + ], + testimonials: [ + { quote: "SocialBuddy helped us double our Facebook reach in just three months. The scheduling tools are a game changer.", author: "Mark Stephens", role: "Social Media Manager", rating: 5, image: "/images/testimonials/mark.jpg" }, + { quote: "I love the analytics. It's so much easier to understand than Facebook's native insights.", author: "Lisa Wong", role: "Digital Marketer", rating: 5, image: "/images/testimonials/lisa.jpg" }, + { quote: "The ability to schedule Reels from my desktop is huge for our workflow.", author: "David Miller", role: "Content Creator", rating: 4, image: "/images/testimonials/david.jpg" }, + { quote: "Great support and solid features. It just works.", author: "Sarah Connor", role: "Small Business Owner", rating: 5, image: "/images/testimonials/sarah.jpg" }, + { quote: "Managing 50+ Facebook pages used to be impossible. Now it's easy.", author: "James Chen", role: "Agency Director", rating: 5, image: "/images/testimonials/james.jpg" } + ], + faqs: [ + { question: "Can I schedule Facebook Groups?", answer: "Yes, you can schedule posts to any Facebook Groups where you are an admin." }, + { question: "Does it support Facebook Reels?", answer: "Absolutely! You can schedule and auto-publish Reels directly." }, + { question: "Can I mention pages in posts?", answer: "Yes, user and page tagging is supported in the composer." } + ], + details: [] + }, + { + slug: 'instagram', + title: 'Instagram', + subtitle: 'Visually Plan Your Grid & Stories', + heroImage: '/images/channels/instagram-hero.png', + description: 'Grow your Instagram following with visual planning, auto-publishing, and detailed analytics.', + about: { + title: 'Your Instagram Aesthetic, Perfected', + subTitle: 'Curate & Create', + description: 'Take the guesswork out of Instagram. Visually plan your grid, schedule Carousels and Reels, and track your growth. SocialBuddy provides everything you need to build a stunning Instagram presence.', + bulletPoints: [ + { text: 'Visual Grid Planner', icon: 'Layout' }, + { text: 'Story Scheduling', icon: 'Smartphone' }, + { text: 'Hashtag Manager', icon: 'Repeat' }, + { text: 'Link in Bio', icon: 'Palette' } + ], + mainImage: '/images/channels/instagram-about-main.jpg', + subImage: '/images/channels/instagram-about-sub.jpg' + }, + benefits: [ + { title: 'Direct Publishing', description: 'Auto-publish images, carousels, and Reels without phone notifications.', icon: 'Zap' }, + { title: 'Grid Preview', description: 'See exactly how your feed will look before you post.', icon: 'Eye' }, + { title: 'Hashtag Suggestions', description: 'Get relevant hashtags to increase discoverability based on your image.', icon: 'ShieldCheck' }, + { title: 'Product Tagging', description: 'Tag products in your posts to drive e-commerce sales directly.', icon: 'Trophy' } + ], + testimonials: [ + { quote: "The visual planner is exactly what I needed. My feed looks so much better now.", author: "Chloe Adams", role: "Influencer", rating: 5, image: "/images/testimonials/chloe.jpg" }, + { quote: "Scheduling Stories has saved me so much time on weekends.", author: "Ryan Brooks", role: "Brand Manager", rating: 5, image: "/images/testimonials/ryan.jpg" }, + { quote: "The analytics for Stories are incredibly detailed.", author: "Emma Watson", role: "Marketing Lead", rating: 4, image: "/images/testimonials/emma.jpg" }, + { quote: "SocialBuddy allows our whole team to collaborate on our Instagram strategy.", author: "Lucas Gray", role: "Creative Director", rating: 5, image: "/images/testimonials/lucas.jpg" }, + { quote: "Best tool for managing multiple Instagram clients.", author: "Sophie Lee", role: "Agency Owner", rating: 5, image: "/images/testimonials/sophie.jpg" } + ], + faqs: [ + { question: "Do you support Collaboration posts?", answer: "Currently, we support scheduling standard posts, carousels, and Reels. Collab posts must be done natively." }, + { question: "Can I schedule the First Comment?", answer: "Yes, you can draft hashtags in your first comment to keep your caption clean." }, + { question: "Is it safe for my account?", answer: "Yes, we use the official Instagram Graph API, so your account is 100% safe." } + ], + details: [] + }, + { + slug: 'linkedin', + title: 'LinkedIn', + subtitle: 'Build Your Professional Brand', + heroImage: '/images/channels/linkedin-hero.png', + description: 'Establish thought leadership and engage with your professional network on LinkedIn.', + about: { + title: 'Professional Growth & Networking', + subTitle: 'Lead & Connect', + description: 'Optimize your LinkedIn strategy for personal branding or company pages. Schedule articles, posts, and PDF carousels to engage your professional network effectively.', + bulletPoints: [ + { text: 'PDF Carousels', icon: 'Layout' }, + { text: 'Company Page Management', icon: 'BarChart' }, + { text: 'Detailed Analytics', icon: 'Zap' }, + { text: 'Post Variations', icon: 'PenTool' } + ], + mainImage: '/images/channels/linkedin-about-main.jpg', + subImage: '/images/channels/linkedin-about-sub.jpg' + }, + benefits: [ + { title: 'PDF Carousel Uploads', description: 'Schedule document posts (PDFs) which perform exceptionally well on LinkedIn.', icon: 'Layout' }, + { title: 'Mention Companies', description: 'Tag other company pages in your posts to increase reach.', icon: 'Inbox' }, + { title: 'Employee Advocacy', description: 'Make it easy for employees to reshare your company content.', icon: 'CheckCircle' }, + { title: 'Targeting Options', description: 'Target specific audiences for your company page updates.', icon: 'ShieldCheck' } + ], + testimonials: [ + { quote: "Our LinkedIn engagement skyrocketed after we started using the PDF carousel scheduler.", author: "Brian K.", role: "B2B Marketer", rating: 5, image: "/images/testimonials/brian.jpg" }, + { quote: "Super reliable tool for managing our corporate LinkedIn page.", author: "Diane S.", role: "Comms Director", rating: 5, image: "/images/testimonials/diane.jpg" }, + { quote: "I schedule a week's worth of personal branding content in 30 minutes.", author: "Gary V.", role: "Entrepreneur", rating: 5, image: "/images/testimonials/gary.jpg" }, + { quote: "Simple, clean interface. Does exactly what it says.", author: "Tom H.", role: "Consultant", rating: 4, image: "/images/testimonials/tomH.jpg" }, + { quote: "The analytics reports are perfect for my monthly client meetings.", author: "Alice M.", role: "Social Manager", rating: 5, image: "/images/testimonials/alice.jpg" } + ], + faqs: [ + { question: "Can I post to personal profiles?", answer: "Yes, both personal profiles and Company Pages are supported." }, + { question: "Can I schedule LinkedIn Articles?", answer: "Currently, we support short-form posts, images, videos, and documents." }, + { question: "Does it support video?", answer: "Yes, you can upload and schedule native video to LinkedIn." } + ], + details: [] + }, + { + slug: 'twitter', + title: 'Twitter (X)', + subtitle: 'Join the Conversation in Real-Time', + heroImage: '/images/channels/twitter-hero.png', + description: 'Manage your Twitter presence with thread scheduling, social listening, and advanced analytics.', + about: { + title: 'Tweet Smarter, Not Harder', + subTitle: 'Engage & Influence', + description: 'Master the art of the tweet. Schedule entire threads, monitor keywords, and engage with trending conversations. SocialBuddy keeps you connected to what\'s happening now.', + bulletPoints: [ + { text: 'Thread Scheduling', icon: 'Repeat' }, + { text: 'Social Listening', icon: 'Inbox' }, + { text: 'Keyword Monitoring', icon: 'Eye' }, + { text: 'Auto-Retweet', icon: 'Repeat' } + ], + mainImage: '/images/channels/twitter-about-main.jpg', + subImage: '/images/channels/twitter-about-sub.jpg' + }, + benefits: [ + { title: 'Thread Creator', description: 'Compose and schedule long threads easily with our dedicated thread maker.', icon: 'PenTool' }, + { title: 'Asset Library', description: 'Save your best GIFs and images to use again and again.', icon: 'Layout' }, + { title: 'Smart Queues', description: 'Automatically recycle your best performing evergreen content.', icon: 'Repeat' }, + { title: 'Geo-Targeting', description: 'Add location tags to your tweets for local relevance.', icon: 'CheckCircle' } + ], + testimonials: [ + { quote: "The thread creator is the best I've used. So intuitive.", author: "Elon M.", role: "Tech Enthusiast", rating: 5, image: "/images/testimonials/elon.jpg" }, + { quote: "Social listening features help us catch customer support issues instantly.", author: "Jenny P.", role: "Support Lead", rating: 5, image: "/images/testimonials/jenny.jpg" }, + { quote: "I've grown my following by 50% just by being more consistent with SocialBuddy.", author: "Tim C.", role: "Influencer", rating: 5, image: "/images/testimonials/tim.jpg" }, + { quote: "Great for managing multiple handles without logging in and out.", author: "Rob S.", role: "Agency Owner", rating: 4, image: "/images/testimonials/rob.jpg" }, + { quote: "Love the dark mode interface!", author: "Anna K.", role: "Developer", rating: 5, image: "/images/testimonials/anna.jpg" } + ], + faqs: [ + { question: "Can I schedule threads?", answer: "Yes! Our thread composer makes it easy to write and schedule long threads." }, + { question: "Is there a limit to tweet length?", answer: "We support the standard 280 characters, plus long-form if you have Premium." }, + { question: "Can I manage DMs?", answer: "Yes, DMs are integrated into the unified Social Inbox." } + ], + details: [] + }, + { + slug: 'tiktok', + title: 'TikTok', + subtitle: 'Trend on TikTok', + heroImage: '/images/channels/tiktok-hero.png', + description: 'Plan, schedule, and analyze your short-form videos to go viral on TikTok.', + about: { + title: 'Dominate Short-Form Video', + subTitle: 'Create & Capture', + description: 'Streamline your TikTok workflow. Plan your content calendar, upload videos from your desktop, and get comprehensive analytics on your video performance.', + bulletPoints: [ + { text: 'Desktop Uploads', icon: 'Smartphone' }, + { text: 'Trend Alerts', icon: 'Zap' }, + { text: 'Engagement Tracking', icon: 'BarChart' }, + { text: 'Sound Sync', icon: 'Layout' } + ], + mainImage: '/images/channels/tiktok-about-main.jpg', + subImage: '/images/channels/tiktok-about-sub.jpg' + }, + benefits: [ + { title: 'Auto-Publishing', description: 'Schedule your TikToks to go live automaticallyβ€”no manual posting needed.', icon: 'Zap' }, + { title: 'Video Analytics', description: 'See which videos are retaining viewership and driving followers.', icon: 'Eye' }, + { title: 'Hashtag Sets', description: 'Save groups of hashtags to quickly add to your captions.', icon: 'Layout' }, + { title: 'Team Review', description: 'Send drafts to your manager for approval before scheduling.', icon: 'Inbox' } + ], + testimonials: [ + { quote: "Finally, I can schedule TikToks from my computer!", author: "Sarah J.", role: "Content Creator", rating: 5, image: "/images/testimonials/sarahj.jpg" }, + { quote: "The analytics are way better than what you get in the app.", author: "Mike T.", role: "Marketer", rating: 5, image: "/images/testimonials/mike.jpg" }, + { quote: "Helped us scale our TikTok production to 3 videos a day.", author: "Team Alpha", role: "Creative Agency", rating: 5, image: "/images/testimonials/alpha.jpg" }, + { quote: "Auto-publishing works seamlessly.", author: "Bella R.", role: "Influencer", rating: 4, image: "/images/testimonials/bella.jpg" }, + { quote: "A must-have for any brand serious about TikTok.", author: "Chris Evans", role: "Media Buyer", rating: 5, image: "/images/testimonials/chris.jpg" } + ], + faqs: [ + { question: "Can I use trending audio?", answer: "Yes, you can verify copyright and trending audio usage within the planner." }, + { question: "Does it support TikTok Stories?", answer: "Not yet, functionality is limited to feed videos currently." }, + { question: "Is there a file size limit?", answer: "We support files up to 1GB, following TikTok's platform guidelines." } + ], + details: [] + }, + { + slug: 'pinterest', + title: 'Pinterest', + subtitle: 'Inspire with Pinterest', + heroImage: '/images/channels/pinterest-hero.png', + description: 'Drive traffic and inspiration with planned Pins and boards.', + about: { + title: 'Visual Discovery Engine', + subTitle: 'Plan & Pin', + description: 'Maximize your Pinterest reach. Design pins, schedule to multiple boards, and analyze click-through rates to drive massive traffic to your site.', + bulletPoints: [ + { text: 'Pin Scheduling', icon: 'Calendar' }, + { text: 'Board Management', icon: 'Layout' }, + { text: 'Traffic Analytics', icon: 'BarChart' }, + { text: 'Visual Search', icon: 'Eye' } + ], + mainImage: '/images/channels/pinterest-about-main.jpg', + subImage: '/images/channels/pinterest-about-sub.jpg' + }, + benefits: [ + { title: 'Board Efficiency', description: 'Pin to multiple boards at once to maximize exposure for each content piece.', icon: 'Layout' }, + { title: 'Pin Creator', description: 'Built-in editor to create vertical graphics optimized for Pinterest.', icon: 'PenTool' }, + { title: 'Evergreen Recycling', description: 'Keep your best pins circulating to drive continuous traffic.', icon: 'Repeat' }, + { title: 'Video Pins', description: 'Schedule video pins to stand out in the feed.', icon: 'Smartphone' } + ], + testimonials: [ + { quote: "Pinterest is our #1 traffic source thanks to SocialBuddy.", author: "Martha S.", role: "Blogger", rating: 5, image: "/images/testimonials/martha.jpg" }, + { quote: "I can schedule a month of pins in an hour. Incredible.", author: "Julia Childs", role: "Chef", rating: 5, image: "/images/testimonials/julia.jpg" }, + { quote: "The best tool for Pinterest managment hands down.", author: "DesignCo", role: "Agency", rating: 5, image: "/images/testimonials/designco.jpg" }, + { quote: "Love the multiple board pinning feature.", author: "Karen", role: "DIY Expert", rating: 5, image: "/images/testimonials/karen.jpg" }, + { quote: "Analytics help me know exactly what my audience wants.", author: "Steve", role: "Woodworker", rating: 4, image: "/images/testimonials/steve.jpg" } + ], + faqs: [ + { question: "How many pins can I schedule?", answer: "Unlimited on the Pro plan!" }, + { question: "Can I edit pin titles?", answer: "Yes, full SEO customization for titles and descriptions." }, + { question: "Do you support Rich Pins?", answer: "Yes, fully compatible with Rich Pin metadata." } + ], + details: [] + } +]; diff --git a/data/features.ts b/data/features.ts new file mode 100644 index 0000000..4338dd5 --- /dev/null +++ b/data/features.ts @@ -0,0 +1,273 @@ +export interface FeatureDetail { + title: string; + text: string; + image: string; + reverse: boolean; +} + +export interface FeatureBenefit { + title: string; + description: string; + icon: string; +} + +export interface FeatureAbout { + title: string; + description: string; + subTitle: string; + bulletPoints: { text: string; icon: string }[]; + mainImage: string; + subImage: string; +} + +export interface FeatureTestimonial { + quote: string; + author: string; + role: string; + rating: number; // 1-5 + image: string; +} + +export interface FeatureFAQ { + question: string; + answer: string; +} + +export interface Feature { + slug: string; + title: string; + subtitle: string; + heroImage: string; + description: string; + about: FeatureAbout; + benefits: FeatureBenefit[]; + testimonials: FeatureTestimonial[]; + faqs: FeatureFAQ[]; + // Keeping details for legacy if needed, or repurposed + details: FeatureDetail[]; +} + +export const features: Feature[] = [ + { + slug: 'publish', + title: 'Publishing', + subtitle: 'Plan, Collaborate, and Publish Compelling Content', + heroImage: '/images/features/publish-hero.jpg', + description: 'Take control of your social media calendar with our powerful publishing tools. Schedule posts for all your channels in one place.', + about: { + title: 'Streamline Your Publishing Workflow', + subTitle: 'Efficiency at Scale', + description: 'Stop wasting time switching between platforms. SocialBuddy\'s publishing tools allow you to craft, schedule, and publish content to Instagram, Facebook, Twitter, LinkedIn, and more from a single dashboard. Collaborate with your team and approve posts with ease.', + bulletPoints: [ + { text: 'Unified Content Calendar', icon: 'Calendar' }, + { text: 'Visual Post Preview', icon: 'Eye' } + ], + mainImage: '/images/features/publish-about-main.jpg', + subImage: '/images/features/publish-about-sub.jpg' + }, + benefits: [ + { title: 'Multi-Channel Scheduling', description: 'Post to Instagram, Facebook, Twitter, LinkedIn, and more simultaneously.', icon: 'πŸ“…' }, + { title: 'Visual Calendar', description: 'Drag and drop your posts to organize your month at a glance.', icon: 'πŸ‘€' }, + { title: 'Best Time to Post', description: 'Our AI suggests the optimal times to tweet or post for maximum engagement.', icon: '⏰' }, + { title: 'Team Collaboration', description: 'Assign roles, leave comments, and approve posts before they go live.', icon: 'πŸ‘₯' } + ], + testimonials: [ + { quote: 'SocialBuddy has completely transformed how we manage our social media. We save at least 10 hours a week on scheduling alone.', author: 'Jessica Miller', role: 'Marketing Director, TechFlow', rating: 5, image: '/images/testimonials/jessica.jpg' }, + { quote: 'The visual calendar is a lifesaver. Being able to see our entire month at a glance makes planning so much easier.', author: 'Tom Harrison', role: 'Social Media Manager, BuzzMedia', rating: 5, image: '/images/testimonials/tom.jpg' }, + { quote: 'Posting to multiple platforms used to be a nightmare. Now it takes seconds.', author: 'Sarah Jenkins', role: 'Content Creator', rating: 4, image: '/images/testimonials/sarah-j.jpg' }, + { quote: 'Our engagement has gone up since we started using the "Best Time to Post" feature. Highly recommend!', author: 'Michael Brown', role: 'Small Business Owner', rating: 5, image: '/images/testimonials/michael.jpg' }, + { quote: 'The collaboration tools are fantastic. My team can review and approve posts without endless email chains.', author: 'Emily Davis', role: 'Agency Owner', rating: 5, image: '/images/testimonials/emily-d.jpg' } + ], + faqs: [ + { question: 'Which platforms do you support?', answer: 'We support Instagram, Facebook, Twitter (X), LinkedIn, Pinterest, and TikTok.' }, + { question: 'Can I schedule stories?', answer: 'Yes, you can schedule Instagram Stories and Facebook Stories directly from the dashboard.' }, + { question: 'Is there a limit to posts?', answer: 'The "Pro" plan includes unlimited scheduling. Standard plans have generous monthly limits.' } + ], + details: [] + }, + { + slug: 'analyze', + title: 'Analytics', + subtitle: 'Measure Your Performance and Grow Your Reach', + heroImage: '/images/features/analyze-hero.jpg', + description: 'Get deep insights into your social media performance. Understand what works and what doesn\'t to optimize your strategy.', + about: { + title: 'Data-Driven Decision Making', + subTitle: 'Unlock Your Potential', + description: 'Go beyond vanity metrics. Our deep analytics platform provides actionable insights into audience behavior, content performance, and ROI. Visualize your growth with custom reports.', + bulletPoints: [ + { text: 'Comprehensive Dashboards', icon: 'BarChart' }, + { text: 'Competitor Benchmarking', icon: 'Trophy' } + ], + mainImage: '/images/features/analyze-about-main.jpg', + subImage: '/images/features/analyze-about-sub.jpg' + }, + benefits: [ + { title: 'In-depth Reporting', description: 'Create beautiful reports to share with your team or clients.', icon: 'πŸ“Š' }, + { title: 'Engagement Metrics', description: 'Track likes, comments, shares, and clicks across all platforms.', icon: 'πŸ“ˆ' }, + { title: 'Audience Demographics', description: 'Know who your followers are and where they come from.', icon: '🌍' }, + { title: 'ROI Tracking', description: 'Connect your social efforts to real business results and revenue.', icon: 'πŸ’°' } + ], + testimonials: [ + { quote: 'The analytics reports are a game changer. I can finally prove the ROI of our social media campaigns to the stakeholders.', author: 'Mark Rutherford', role: 'Social Media Manager, EcoGoods', rating: 5, image: '/images/testimonials/mark.jpg' }, + { quote: 'I love how easy it is to customize the reports. My clients are always impressed.', author: 'Lisa Wong', role: 'Freelance Marketer', rating: 5, image: '/images/testimonials/lisa.jpg' }, + { quote: 'The competitor analysis tool helped us identify a gap in the market we didn\'t know existed.', author: 'James Smith', role: 'Growth Hacker', rating: 4, image: '/images/testimonials/james.jpg' }, + { quote: 'Being able to track conversions from social posts relies helps us budget better.', author: 'Rachel Green', role: 'E-commerce Manager', rating: 5, image: '/images/testimonials/rachel.jpg' }, + { quote: 'The audience insights are incredibly detailed. We refined our persona based on the data.', author: 'Kevin White', role: 'Brand Strategist', rating: 5, image: '/images/testimonials/kevin.jpg' } + ], + faqs: [ + { question: 'How far back does data go?', answer: 'We pull up to 12 months of historical data upon connection.' }, + { question: 'Can I export reports?', answer: 'Yes, you can export reports as PDF or CSV files.' }, + { question: 'Do you track competitors?', answer: 'Yes, you can track key metrics of your top competitors to see how you stack up.' } + ], + details: [] + }, + { + slug: 'engage', + title: 'Engagement', + subtitle: 'Build Stronger Relationships with Your Audience', + heroImage: '/images/features/engage-hero.jpg', + description: 'Never miss a comment or mention. Reply to your community from a single, unified inbox.', + about: { + title: 'Never Miss a Conversation', + subTitle: 'Unified Social Box', + description: 'Managing messages across multiple platforms is chaotic. SocialBuddy brings all your DMs, comments, and mentions into one specific stream, so you can respond faster and build better relationships.', + bulletPoints: [ + { text: 'Centralized Social Inbox', icon: 'Inbox' }, + { text: 'Automated Moderation', icon: 'ShieldCheck' } + ], + mainImage: '/images/features/engage-about-main.jpg', + subImage: '/images/features/engage-about-sub.jpg' + }, + benefits: [ + { title: 'Unified Inbox', description: 'All your conversations from every platform in one stream.', icon: 'πŸ“₯' }, + { title: 'Smart Filtering', description: 'Prioritize important messages and filter out the noise.', icon: 'πŸ”' }, + { title: 'Team Assignment', description: 'Assign conversations to specific team members for faster support.', icon: 'πŸ‘₯' }, + { title: 'Saved Replies', description: 'Respond to common questions instantly with pre-written templates.', icon: '⚑' } + ], + testimonials: [ + { quote: 'Our response time dropped by 60% since switching to SocialBuddy. The unified inbox is a lifesaver for our support team.', author: 'Sarah Chen', role: 'Customer Success Lead, Omni', rating: 5, image: '/images/testimonials/sarah.jpg' }, + { quote: 'I used to miss DMs on Instagram all the time. Now everything is in one place.', author: 'Alex Turner', role: 'Influencer', rating: 4, image: '/images/testimonials/alex.jpg' }, + { quote: 'The ability to assign conversations to different team members is perfect for our workflow.', author: 'Maria Rodriguez', role: 'Support Manager', rating: 5, image: '/images/testimonials/maria.jpg' }, + { quote: 'Saved replies save me so much typing. Support is faster than ever.', author: 'John Doe', role: 'Customer Service', rating: 5, image: '/images/testimonials/john.jpg' }, + { quote: 'It\'s great to see the context of previous conversations when replying to a user.', author: 'Emma Wilson', role: 'Community Manager', rating: 4, image: '/images/testimonials/emma-w.jpg' } + ], + faqs: [ + { question: 'Does it support DMs?', answer: 'Yes, we support Direct Messages for Instagram, Facebook, Twitter, and LinkedIn.' }, + { question: 'Can multiple people work in the inbox?', answer: 'Absolutely. You can see who is typing and assign conversations to avoid overlap.' }, + { question: 'Is it real-time?', answer: 'Yes, messages appear in your inbox instantly.' } + ], + details: [] + }, + { + slug: 'create', + title: 'Create', + subtitle: 'Turn Your Ideas into Eye-Catching Content', + heroImage: '/images/features/create-hero.jpg', + description: 'Design beautiful graphics and write compelling copy without leaving the platform. Your creative studio in the cloud.', + about: { + title: 'Design Made Simple', + subTitle: 'Creative Suite', + description: 'You don\'t need to be a professional designer to create stunning social media posts. With our built-in editor and templates, you can create on-brand content in seconds.', + bulletPoints: [ + { text: 'Drag-and-Drop Editor', icon: 'Palette' }, + { text: 'Thousands of Templates', icon: 'Layout' } + ], + mainImage: '/images/features/create-about-main.jpg', + subImage: '/images/features/create-about-sub.jpg' + }, + benefits: [ + { title: 'Template Library', description: 'Access thousands of professionally designed templates for every occasion.', icon: '🎨' }, + { title: 'Image Editor', description: 'Crop, resize, and filter your images to perfection.', icon: '✏️' }, + { title: 'Asset Manager', description: 'Store and organize your brand assets, logos, and images.', icon: 'πŸ“' }, + { title: 'Canva Integration', description: 'Connect your Canva account to access your designs seamlessly.', icon: 'πŸ–ŒοΈ' } + ], + testimonials: [ + { quote: 'I used to struggle with designing posts. The templates in SocialBuddy make it look like we hired a professional agency.', author: 'Mike Ross', role: 'Founder, StartupX', rating: 4, image: '/images/testimonials/mike.jpg' }, + { quote: 'The image editor is surprisingly powerful. I rarely need to open Photoshop anymore.', author: 'Jenny Lee', role: 'Graphic Designer', rating: 5, image: '/images/testimonials/jenny.jpg' }, + { quote: 'Having all our assets in one place makes brand consistency so much easier.', author: 'David Clark', role: 'Brand Manager', rating: 5, image: '/images/testimonials/david-c.jpg' }, + { quote: 'The Canva integration is seamless. Best of both worlds.', author: 'Sophie Turner', role: 'Social Media Intern', rating: 5, image: '/images/testimonials/sophie.jpg' }, + { quote: 'Great selection of templates for holidays and special events.', author: 'Chris Evans', role: 'Event Coordinator', rating: 4, image: '/images/testimonials/chris.jpg' } + ], + faqs: [ + { question: 'Can I upload my own fonts?', answer: 'Yes, Pro plans allow font uploads to keep your designs on-brand.' }, + { question: 'Are the stock photos free?', answer: 'We provide access to millions of royalty-free images via Unsplash and Pexels integration.' }, + { question: 'Can I save my brand colors?', answer: 'Yes, you can set up a Brand Kit with your colors and logos.' } + ], + details: [] + }, + { + slug: 'start-page', + title: 'Start Page', + subtitle: 'Your Link-in-Bio, Reimagined', + heroImage: '/images/features/start-page-hero.jpg', + description: 'Create a beautiful, mobile-friendly landing page for your social bio. Drive traffic to your most important links.', + about: { + title: 'One Link to Rule Them All', + subTitle: 'Link-in-Bio Solution', + description: 'Maximize the potential of your bio link. Create a micro-landing page that directs your followers to your latest content, products, and sign-up forms.', + bulletPoints: [ + { text: 'Mobile Optimized', icon: 'Smartphone' }, + { text: 'No Coding Required', icon: 'Zap' } + ], + mainImage: '/images/features/startpage-about-main.jpg', + subImage: '/images/features/startpage-about-sub.jpg' + }, + benefits: [ + { title: 'Customizable Design', description: 'Match your Start Page to your brand with custom colors and layouts.', icon: '✨' }, + { title: 'Track Clicks', description: 'See which links are getting the most attention with built-in analytics.', icon: 'πŸ‘†' }, + { title: 'Schedule Links', description: 'Schedule links to appear and disappear to match your campaigns.', icon: '⏲️' }, + { title: 'Email Capture', description: 'Collect emails directly from your bio link with integrated forms.', icon: 'πŸ“§' } + ], + testimonials: [ + { quote: 'Our click-through rate from Instagram doubled after setting up our Start Page. It is so easy to update.', author: 'Emily White', role: 'Blogger & Influencer', rating: 5, image: '/images/testimonials/emily.jpg' }, + { quote: 'It looks so much better than the other link-in-bio tools I\'ve tried. Very professional.', author: 'Ryan Reynolds', role: 'Actor & Entrepreneur', rating: 5, image: '/images/testimonials/ryan.jpg' }, + { quote: 'I love that I can capture emails directly from my bio link.', author: 'Sarah Connor', role: 'Newsletter Creator', rating: 4, image: '/images/testimonials/sarah-c.jpg' }, + { quote: 'The analytics help me understand what my audience is actually interested in.', author: 'Tom Hardy', role: 'Digital Marketer', rating: 5, image: '/images/testimonials/tom-h.jpg' }, + { quote: 'Super easy to set up. I was up and running in 5 minutes.', author: 'Anna Kendrick', role: 'Musician', rating: 5, image: '/images/testimonials/anna.jpg' } + ], + faqs: [ + { question: 'Can I use a custom domain?', answer: 'Yes, you can connect your own domain name to your Start Page.' }, + { question: 'Is it mobile responsive?', answer: '100%. It is designed specifically for mobile users.' }, + { question: 'How many links can I add?', answer: 'Unlimited! Add as many links, videos, and buttons as you need.' } + ], + details: [] + }, + { + slug: 'ai-assistant', + title: 'AI Assistant', + subtitle: 'Your Personal Social Media Copywriter', + heroImage: '/images/features/ai-assistant-hero.jpg', + description: 'Generate endless content ideas, write engaging captions, and repurpose content with the power of AI.', + about: { + title: 'Creativity on Demand', + subTitle: 'Powered by AI', + description: 'Writer\'s block is a thing of the past. Our AI Assistant helps you brainstorm ideas, write captions, and even repurpose long-form content into social posts in seconds.', + bulletPoints: [ + { text: 'Smart Caption Writer', icon: 'PenTool' }, + { text: 'Content Repurposing', icon: 'Repeat' } + ], + mainImage: '/images/features/ai-about-main.jpg', + subImage: '/images/features/ai-about-sub.jpg' + }, + benefits: [ + { title: 'Idea Generator', description: 'Never run out of things to post. Get fresh ideas tailored to your niche.', icon: 'πŸ’‘' }, + { title: 'Caption Writer', description: 'Instantly generate catchy captions with emojis and hashtags.', icon: '✍️' }, + { title: 'Content Repurposing', description: 'Turn a blog post into a thread or an Instagram caption in seconds.', icon: 'πŸ”„' }, + { title: 'Tone Adjustment', description: 'Rewrite content to sound professional, funny, or urgent.', icon: '🎭' } + ], + testimonials: [ + { quote: 'The AI Assistant is like having a copywriter on staff 24/7. It saves me so much time coming up with captions.', author: 'David Kim', role: 'Content Creator', rating: 5, image: '/images/testimonials/david.jpg' }, + { quote: 'I was skeptical at first, but the quality of the writing is shockingly good.', author: 'Jessica Alba', role: 'Business Owner', rating: 5, image: '/images/testimonials/jessica-a.jpg' }, + { quote: 'It helps me repurpose my blog posts into social content in seconds. Huge time saver.', author: 'Tim Cook', role: 'Tech Blogger', rating: 4, image: '/images/testimonials/tim.jpg' }, + { quote: 'The idea generator is great for when I\'m feeling stuck.', author: 'Lisa Su', role: 'CEO', rating: 5, image: '/images/testimonials/lisa-s.jpg' }, + { quote: 'A must-have tool for any social media manager handling multiple accounts.', author: 'Satya Nadella', role: 'Marketing Lead', rating: 5, image: '/images/testimonials/satya.jpg' } + ], + faqs: [ + { question: 'Is the content unique?', answer: 'Yes, the AI generates unique content based on your prompts.' }, + { question: 'Which languages are supported?', answer: 'We support over 25 languages including English, Spanish, French, and German.' }, + { question: 'Do I need a separate subscription?', answer: 'AI Assistant is included in all Pro and Business plans.' } + ], + details: [] + } +]; diff --git a/data/resources.ts b/data/resources.ts new file mode 100644 index 0000000..c0d6608 --- /dev/null +++ b/data/resources.ts @@ -0,0 +1,399 @@ + +export interface ResourcePost { + id: string; + slug: string; + featureSlug: string; + title: string; + excerpt: string; + image: string; + date: string; + author: string; + category: string; + content: string; // Added full content field +} + +export const resources: ResourcePost[] = [ + // Publish (1-3) + { + id: '1', + slug: 'mastering-social-media-scheduling', + featureSlug: 'publish', + title: 'Mastering Social Media Scheduling for 2025', + excerpt: 'Learn the secrets to efficient content planning and how to save hours every week.', + image: '/images/about/workspace.png', + date: 'Dec 15, 2025', + author: 'Sarah Johnson', + category: 'Strategy', + content: ` +

Why Scheduling Matters

+

In the fast-paced world of social media, consistency is key. Scheduling your posts ensures that your audience sees your content regularly, keeping your brand top-of-mind. It allows you to plan your content mix strategically, rather than posting reactively.

+

1. Plan Ahead

+

Start by creating a content calendar. Map out your key themes, holidays, and promotional events. This gives you a roadmap to follow and prevents the dreaded "what do I post today?" panic.

+

2. Batch Your Content Creation

+

Dedicate specific blocks of time to create content. Write captions, design graphics, and edit videos in batches. This is far more efficient than task-switching every day.

+

3. Use the Right Tools

+

Tools like SocialBuddy allow you to schedule posts across multiple platforms from a single dashboard. Utilize features like visual calendars and drag-and-drop scheduling to streamline your workflow.

+

Conclusion

+

Mastering scheduling is about working smarter, not harder. By planning ahead and using the right tools, you can maintain a consistent presence while freeing up time to engage with your community.

+ ` + }, + { + id: '2', + slug: 'best-times-to-post-instagram', + featureSlug: 'publish', + title: 'The Best Times to Post on Instagram', + excerpt: 'Data-backed insights on when your audience is most active and likely to engage.', + image: '/images/about/team-meeting.png', + date: 'Dec 12, 2025', + author: 'Mike Chen', + category: 'Guides', + content: ` +

Understanding Instagram's Algorithm

+

The Instagram algorithm favors recency. Posting when your followers are online increases the chances of your content being seen and engaged with early on, which signals to the algorithm that your post is high-quality.

+

General Best Times

+
    +
  • Weekdays: Early morning (6 AM - 9 AM) and evening (5 PM - 8 PM) tend to perform well as people commute or unwind.
  • +
  • Weekends: Engagement can be lower, but late mornings often see a spike.
  • +
+

Finding Your Unique Best Time

+

While general benchmarks are helpful, every audience is different. Use SocialBuddy's analytics to see exactly when your specific followers are active. Look for heatmaps in your insights dashboard.

+

Testing and Iterating

+

Don't set it and forget it. Consumer behaviors change. regularly review your analytics and adjust your posting schedule accordingly to maximize reach.

+ ` + }, + { + id: '3', + slug: 'content-calendar-templates', + featureSlug: 'publish', + title: '5 Content Calendar Templates You Need', + excerpt: 'Downloadable templates to help you organize your social media strategy effectively.', + image: '/images/about/app-dashboard.png', + date: 'Dec 10, 2025', + author: 'Emma Davis', + category: 'Resources', + content: ` +

Organize Your Strategy

+

A content calendar is more than just a schedule; it's a strategic tool. It helps you ensure a balanced mix of content types (educational, entertaining, promotional) and keeps your team aligned.

+

Template 1: Monthly Overview

+

Great for high-level planning. Map out big campaigns, holidays, and key dates.

+

Template 2: Weekly Detailed Grid

+

Drill down into specific copy, assets, and hashtags for each post. Perfect for approval workflows.

+

Template 3: Stories Planner

+

Don't forget Stories! Plan your daily narratives and engagement stickers to keep your audience hooked.

+

How to Use These Templates

+

Customize them to fit your workflow. Add columns for status (Draft, Approved, Scheduled) and platform-specific requirements. Consistent use is the secret to success.

+ ` + }, + + // Analyze (4-6) + { + id: '4', + slug: 'understanding-social-metrics', + featureSlug: 'analyze', + title: 'Understanding Key Social Media Metrics', + excerpt: 'Reach, impressions, engagement rate - what do they really mean for your business?', + image: '/images/about/workspace.png', + date: 'Dec 14, 2025', + author: 'David Wilson', + category: 'Analytics', + content: ` +

Metrics That Matter

+

It's easy to get lost in data. Focusing on the right metrics is crucial for understanding your true performance and ROI.

+

Reach vs. Impressions

+

Reach is the number of unique people who saw your content. Impressions is the total number of times your content was displayed. If impressions are much higher than reach, it means your audience is seeing your content multiple times.

+

Engagement Rate

+

This is often the most important metric. It measures interaction (likes, comments, shares) relative to your follower count or reach. A high engagement rate indicates highly relevant content.

+

Actionable Insights

+

Don't just track numbers; look for trends. Did a specific topic drive higher engagement? Did a certain time of day boost reach? Use these insights to refine your future content strategy.

+ ` + }, + { + id: '5', + slug: 'roi-social-media-marketing', + featureSlug: 'analyze', + title: 'How to Calculate ROI for Social Media', + excerpt: 'Prove the value of your social media efforts with these calculation methods.', + image: '/images/about/team-meeting.png', + date: 'Dec 08, 2025', + author: 'Sarah Johnson', + category: 'Business', + content: ` +

Defining Social ROI

+

Return on Investment (ROI) measures the efficiency of your social media marketing. It answers the question: "What are we getting back for the time and money we put in?"

+

The Formula

+

Basic ROI = (Value derived from social media - Cost of social media marketing) / Cost of social media marketing * 100.

+

Attribution Models

+

Tracking the "value" can be tricky. Use UTM parameters and conversion tracking pixels to attribute website sales or leads directly to your social posts. SocialBuddy's advanced analytics can help visualize this journey.

+

Beyond Monetary ROI

+

Not all value is immediate revenue. Brand awareness, customer loyalty, and sentiment are valuable long-term assets that should also be considered in your overall evaluation.

+ ` + }, + { + id: '6', + slug: 'creating-custom-reports', + featureSlug: 'analyze', + title: 'Creating Reports Clients Actually Read', + excerpt: 'Tips for designing clear, impactful social media reports that showcase your success.', + image: '/images/about/app-dashboard.png', + date: 'Dec 05, 2025', + author: 'Mike Chen', + category: 'Reporting', + content: ` +

The Art of Reporting

+

Data is useless if it's not communicated effectively. Your clients or stakeholders don't have time to wade through spreadsheets. They want the headline news.

+

1. Focus on Goals

+

Align your report with the initial business objectives. If the goal was brand awareness, highlight reach and impressions. If it was sales, focus on clicks and conversions.

+

2. Visualize the Data

+

Use charts and graphs to make trends instantly understandable. A line graph showing follower growth is far more impactful than a table of numbers.

+

3. Add Context

+

Numbers need narrative. Explain why a spike occurred (e.g., "Viral post on Tuesday") and what you're doing to replicate it. This adds expert value to your report.

+ ` + }, + + // Engage (7-9) + { + id: '7', + slug: 'community-management-best-practices', + featureSlug: 'engage', + title: 'Community Management Best Practices', + excerpt: 'How to build a loyal community by engaging authentically with your followers.', + image: '/images/about/workspace.png', + date: 'Dec 13, 2025', + author: 'Emma Davis', + category: 'Community', + content: ` +

Building Relationships

+

Community management is the human face of your brand. It's about two-way conversation, not just broadcasting messages.

+

Be Responsive

+

Speed matters. Acknowledge comments and questions quickly. Even a simple "like" shows that you are listening and value their input.

+

Authenticity Wins

+

Ditch the corporate robot speak. Use a conversational tone that matches your brand personality. People connect with people, not logos.

+

Encourage User-Generated Content (UGC)

+

Celebrate your community by sharing their content. It builds loyalty and provides you with authentic social proof. Always ask for permission and credit the creator!

+ ` + }, + { + id: '8', + slug: 'managing-negative-comments', + featureSlug: 'engage', + title: 'Handling Negative Comments Like a Pro', + excerpt: 'A guide to crisis management and turning unhappy customers into brand advocates.', + image: '/images/about/team-meeting.png', + date: 'Dec 09, 2025', + author: 'David Wilson', + category: 'Crisis Mgmt', + content: ` +

Keep Calm and Carry On

+

Negative feedback is inevitable. How you handle it defines your brand's reputation. Never delete negative comments (unless they are hate speech), as this can escalate the situation.

+

The 3 A's: Acknowledge, Apologize, Act

+
    +
  • Acknowledge: Let them know they've been heard immediately.
  • +
  • Apologize: If you messed up, own it sincerely.
  • +
  • Act: Move the conversation to a private channel (DM or email) to resolve the issue specific details.
  • +
+

Turning It Around

+

A resolved complaint can turn a critic into a fan. Showing that you care enough to fix a problem publicly demonstrates strong customer service to everyone else watching.

+ ` + }, + { + id: '9', + slug: 'social-listening-guide', + featureSlug: 'engage', + title: 'The Ultimate Guide to Social Listening', + excerpt: 'Monitor brand mentions and industry trends to stay ahead of the conversation.', + image: '/images/about/app-dashboard.png', + date: 'Dec 03, 2025', + author: 'Sarah Johnson', + category: 'Listening', + content: ` +

What is Social Listening?

+

Social monitoring looks at what people are saying to you. Social listening looks at what people are saying about you, your competitors, and your industry.

+

Why It's Critical

+

It helps you find un-tagged mentions of your brand (opportunities to surprise and delight), identify gaps in the market that competitors are missing, and spot potential PR crises before they blow up.

+

Tools of the Trade

+

Use SocialBuddy's listening features to track specific keywords and hashtags. Analyze sentiment to gauge how people feel about these topics, not just volume.

+ ` + }, + + // Create (10-12) + { + id: '10', + slug: 'design-tips-non-designers', + featureSlug: 'create', + title: 'Graphic Design Tips for Non-Designers', + excerpt: 'Create professional-looking graphics using simple principles and tools.', + image: '/images/about/workspace.png', + date: 'Dec 11, 2025', + author: 'Mike Chen', + category: 'Design', + content: ` +

Keep It Simple

+

You don't need a degree in art to create stunning visuals. The biggest mistake beginners make is overcrowding their designs.

+

Hierarchy and Contrast

+

Make sure the most important element (usually the headline) stands out. Use size and color contrast to guide the viewer's eye. Dark text on a light background (or vice-versa) ensures readability.

+

Consistency is Key

+

Stick to a defined color palette and 1-2 font families. This creates visual recognition for your brand over time. Use templates to ensure every post feels like "you".

+ ` + }, + { + id: '11', + slug: 'video-content-trends', + featureSlug: 'create', + title: 'Video Content Trends for 2025', + excerpt: 'Short-form video is king. Here is how to leverage Reels and TikToks.', + image: '/images/about/team-meeting.png', + date: 'Dec 07, 2025', + author: 'Emma Davis', + category: 'Video', + content: ` +

The Vertical Revolution

+

9:16 vertical video is now the dominant format across social media. TikTok, Instagram Reels, and YouTube Shorts are prioritizing this content.

+

Authenticity > Production Value

+

Audiences are tired of overly polished, TV-style ads. Raw, behind-the-scenes, and "lo-fi" content often performs better because it feels more genuine and relatable.

+

Short and Snappy

+

Hook your viewer in the first 3 seconds. Keep edits fast-paced. Use trending audio to piggyback on viral momentum, but always add your unique spin.

+ ` + }, + { + id: '12', + slug: 'writing-engaging-captions', + featureSlug: 'create', + title: 'Writing Captions That Drive Action', + excerpt: 'Copywriting formulas to boost engagement and click-through rates.', + image: '/images/about/app-dashboard.png', + date: 'Dec 02, 2025', + author: 'David Wilson', + category: 'Content', + content: ` +

The Hook

+

Captions are often an afterthought, but they are crucial for stopping the scroll. Your first sentence is your headlineβ€”make it intriguing.

+

The AIDA Formula

+
    +
  • Attention: Grab them with a question or bold statement.
  • +
  • Interest: Build curiosity or relate to a pain point.
  • +
  • Desire: Offer a solution or benefit.
  • +
  • Action: Tell them exactly what to do next (CTA).
  • +
+

Format for readability

+

Break up big blocks of text with line breaks and emojis. This makes your caption easier to scan and less intimidating to read.

+ ` + }, + + // Start Page (13-15) + { + id: '13', + slug: 'optimizing-link-in-bio', + featureSlug: 'start-page', + title: 'Optimizing Your Link-in-Bio', + excerpt: 'Make the most of that single link. Strategies to drive traffic where it matters.', + image: '/images/about/workspace.png', + date: 'Dec 14, 2025', + author: 'Sarah Johnson', + category: 'Growth', + content: ` +

One Link to Rule Them All

+

Platforms like Instagram and TikTok give you limited real estate for links. A "Start Page" or "Link in Bio" tool is essential to bridge the gap between social media and your conversion goals.

+

Prioritize Your Links

+

Don't overwhelm visitors with 50 options. Put your most important goal (Buy Now, Sign Up, Latest Blog) at the very top. Use visual cues or animations to highlight priority links.

+

Branding Matters

+

Your Link-in-Bio page should look like an extension of your website. Customize colors, fonts, and backgrounds to maintain a seamless brand experience.

+ ` + }, + { + id: '14', + slug: 'landing-page-conversion', + featureSlug: 'start-page', + title: 'Landing Page Conversion Hacks', + excerpt: 'Simple tweaks to your Start Page that can double your click-through rate.', + image: '/images/about/team-meeting.png', + date: 'Dec 06, 2025', + author: 'Mike Chen', + category: 'Conversion', + content: ` +

Speed Kills (Bounce Rates)

+

If your landing page loads slowly, users will leave. Ensure your Start Page is optimized for mobile speed, as the vast majority of traffic comes from phones.

+

Clear Value Proposition

+

Within seconds, a user should know exactly who you are and what you offer. Use a clear, concise bio description and professional profile picture.

+

Reduce Friction

+

Minimize the number of clicks required to take action. If you want email signups, embed the form directly on your Start Page rather than linking out to another page.

+ ` + }, + { + id: '15', + slug: 'personal-branding-tips', + featureSlug: 'start-page', + title: 'Personal Branding on Social Media', + excerpt: 'How a curated Start Page strengthens your personal brand identity.', + image: '/images/about/app-dashboard.png', + date: 'Dec 01, 2025', + author: 'Emma Davis', + category: 'Branding', + content: ` +

You Are the Brand

+

In the creator economy, your personal brand is your greatest asset. It's the unique combination of your skills, experience, and personality.

+

Curating Your Digital Home

+

Think of your Start Page as your digital business card. It organizes your various "side hustles," content channels, and contact info into one professional hub.

+

Consistency Across Channels

+

Ensure your Start Page aligns with the aesthetic of your social profiles. If your Instagram is minimalist and black/white, don't make your Start Page neon rainbow (unless that's the vibe!). Consistency builds trust.

+ ` + }, + + // AI Assistant (16-18) + { + id: '16', + slug: 'ai-for-content-creation', + featureSlug: 'ai-assistant', + title: 'AI for Content Creation: A Guide', + excerpt: 'How to use AI tools to brainstorm, draft, and refine your social media content.', + image: '/images/about/workspace.png', + date: 'Dec 13, 2025', + author: 'David Wilson', + category: 'AI', + content: ` +

The AI Assistant

+

AI isn't here to replace creativity; it's here to amplify it. It helps overcome the blank page syndrome that plagues every content creator.

+

Ideation and Brainstorming

+

Use AI to generate topic ideas, headlines, or campaign angles. Ask it: "Give me 10 tweet ideas about [Topic]" or "What are common pain points for [Audience]?" to jumpstart your process.

+

Repurposing Content

+

Feed an old blog post into an AI tool and ask it to summarize it into a Linkedin post, a Twitter thread, and an Instagram caption. This multiplies the value of your existing content effortlessly.

+ ` + }, + { + id: '17', + slug: 'future-of-marketing-ai', + featureSlug: 'ai-assistant', + title: 'The Future of Marketing with AI', + excerpt: 'Predictions on how artificial intelligence will shape the marketing landscape.', + image: '/images/about/team-meeting.png', + date: 'Dec 08, 2025', + author: 'Sarah Johnson', + category: 'Trends', + content: ` +

Hyper-Personalization

+

AI will enable marketing at a scale of one. Instead of broad segments, brands will be able to deliver unique messages, images, and offers tailored to individual user behavior in real-time.

+

Predictive Analytics

+

AI will get better at predicting what customers want before they know it themselves. By analyzing vast datasets, it can forecast trends and consumer shifts with uncanny accuracy.

+

Automated Optimization

+

Campaigns will self-correct in real-time. AI will adjust ad spend, creative elements, and targeting parameters 24/7 to maximize ROI, far faster than any human could.

+ ` + }, + { + id: '18', + slug: 'humanizing-ai-content', + featureSlug: 'ai-assistant', + title: 'Humanizing AI-Generated Content', + excerpt: 'Tips to ensure your AI-assisted posts still sound like you.', + image: '/images/about/app-dashboard.png', + date: 'Dec 04, 2025', + author: 'Mike Chen', + category: 'Strategy', + content: ` +

The Uncanny Valley

+

Generic AI copy reads... like AI. It's often flat, repetitive, and lacks nuance. To thrive, you must inject the "human element."

+

Edit ruthlessly

+

Treat AI output as a rough draft, never the final product. Add your own anecdotes, idioms, and unique tone of voice. Verify facts, as AI can "hallucinate" information.

+

Emotional Resonance

+

AI struggles with genuine emotion and empathy. Focus your editing on connecting with the reader's feelings. That specific, relatable detail is what makes content stick.

+ ` + } +]; diff --git a/package-lock.json b/package-lock.json index c2516c8..bfa8306 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "socialbuddy-temp", "version": "0.1.0", "dependencies": { + "lucide-react": "^0.561.0", "next": "16.0.8", "react": "19.2.1", "react-dom": "19.2.1" @@ -4834,6 +4835,15 @@ "yallist": "^3.0.2" } }, + "node_modules/lucide-react": { + "version": "0.561.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.561.0.tgz", + "integrity": "sha512-Y59gMY38tl4/i0qewcqohPdEbieBy7SovpBL9IFebhc2mDd8x4PZSOsiFRkpPcOq6bj1r/mjH/Rk73gSlIJP2A==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/magic-string": { "version": "0.30.21", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", diff --git a/package.json b/package.json index 5dc792d..b7600c4 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "lint": "eslint" }, "dependencies": { + "lucide-react": "^0.561.0", "next": "16.0.8", "react": "19.2.1", "react-dom": "19.2.1" diff --git a/public/about-image-2.png b/public/about-image-2.png new file mode 100644 index 0000000000000000000000000000000000000000..0bc78bfe25343c0305f50f437b24e8248065b524 GIT binary patch literal 768123 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

g zz!BxQUe)~Qoi()Bbmorf?j$Q3Trw$VX%*P9X$xcLkvL@8oG$$5EBzq<0Ko#F@a5me ze~P!-td~#Y3lD|%k@#8{Le|TnUF-HS_@Y*Pu{V+2MWDkPvxN}LctY*~FSnIYjXIS1 zTD6}0yG420`YjflA2Y;QiPgbZZY?(8ot@pKC?uuK?WU^hzfI5Tv|}f4KznjH$ic>c zKBF9W0qV*MfN}DH$;cQSa(Tu&ckj+Ys8niv* zBax2$^V0^to9?$wKd+Z#^XT@zmVcL4zE{47=a2jp@eBUUcOVVh{Bz+CQWqCDM|J?` z0C02dlfs{dzu=876XJ*MS#Ec6r+h1v0e~^T#pp0NCy}1Y0mgDpKJotmf|sa2vpvpm zKjOFWkKR2=y186uj$3gZ`kY|b!9VavKv&}j?NFfg(LNWj9PPlo@qowyKp5m>pg!5h z-(f8H8yl_P*KOx+d^hEFuT%33W99J=3w>`wovr@>UaBkU(@Ul2>W|;1Ac2eyaCsw) zk5F@r5yu>i=aLz?f%lJP`FP~;F@SP9VB;gUc>$}`bs6eZV09<`uXBz%e7s~C1~~_) z7$cs?H~{bo0Ar`F00%z-<@0TK)APTn`e#dY^G@xiudTQ1{{RB_XvqYUbAoVkIXU3x zfJbmZ!59RPb5`!c&rpI(d)r%U+i3>bV7h@WA(2jU9ywK!xFirk$n1Jm#sG#HCj+k; z8NdyUbR6LOdk`C(40h+=JQ8;GIQr+Q7z2u^xkaf)O*ON-O>EVzt9M#oyKE&&okht~ z5S&`O=1HqQTkf^e%jc>2Gyebu4E=+@XAg>h4Gy<+;0-6ko+Ucvlm}bzv`eAfTqV?Z zMpU}DvJqL{A2K-PR-OqYRzel_mJR$s{?tFQ#<}pv;;rU^pz3!ThLrbiEltP<;uxAj zsT86#V9$uYVYN>71OvT@{{Tdf+S4EKtL=f#8^wAu5PN1T?tiH{JY;=8l#kk1!`9k| z##_hnd&3?DS5uQIPlf+J?S5Cc1LUko6N->J2lIL#r zS9VRbuVtb5#}~?;SDejZBB;}yDsEJuxgmQy$wx@Vz1vpS_uZe(=ZicssrW<0Hd-a^ zypdeW(Pi9YaFLMcihfcUfstS6g?;dI;eUy|C8YRY#GV51uD7AtX?C`Dns%Y0 z*iQwOyf)E9vDp@cJ({8bv72cTkOkVn0bE(eVGOFTB;z@AR+J*)%kILTvu(86yL{;- z%)7VWyC%Y7vxuigRN$dTH7D&Hmo(=$6qhP?vZprW)85K1?Ee5Y9~XYlzqB91$C_P# zz}n%miI|;JMDq2WH(Nyq< z+s_VN9bZqr*EKBz#+Lf!gwa{7yH`!qbsZl_zP6R_m^!7+?8Ye2#?EA5PspDa{{Y~W z8h?kbE|X2vym9ceQ$sJ8qWnV8u5Wa3_$sLmsEcbTh!8ePt$If7+m7L%%Ri2Pvj@bF zfh`@!ie%9>Z4&Bcx3Sl}KdDD~Wg${SEYVLKSGLW!c2ZbyFm}jJ8oFuWa8a#G6+)CF zR-08RxTKddQC#UOMfZwNt5H0POS)U0kI zMh|&lvqc24$pzPwDgfWN@tlpssmHkIBaQ}f+w!mSW7B+3srY($XRy7y)35EB8ru5K z?&8Ms)<9L`n%45oqM9Z{mRCs`G`*r*YmfFk0{{SESU*Zi4&NYoZ zJMkgm_>-ZuOOlXB{{RV87uvOiJ9eu70A*^HECS&jAFqR&dLDatZj{Ee$<(&pbs%$Jq*KfdqU4?vRkZw_j) z%Al-wx?4oZNR6ct+$8IhwL*Z(?05&u9GnXI!qZE-v4zr1Oi4L)azGnLK)@&rS0gNN z6rG^pALhG3{{VxC{xNHM&Xp&|{{V#^7uNL42$B~++wbQnqZ=*}0^-CKHxppEx)kc*_&VJ5X z)P>S&?(atRc6PhBynPM(MBA*N4E$+?4nMOlT%7Ti2nqf!a~tuF3X%puVfexEh^&9H z&&38H#;d1zjwe>g1hu8m$snqX91=<82EmrvTlL4{@5LX79xnJz;@v~T-Y(JgOMAU0 zb7>`w{j||sBR1e*cxGgj6`njKMW;I?3mX(Q`9<-@(XKyYuZh<&l${#KUUXyyfrYJS z0oMxI!2{>o!5D399!KqXS+$qcO*Hu|uC061gYT-kYty;>`HxCi`ffJAw2s!_+AChm zbd%D}zUyQ8e*XZ1dCUjKrps(AV&oxoO~l-SzwPZMhUMH2+?C$Sp}ep5>$oy}b@Bd2 z);IBjj9GwF6d)4r6cPy--M|MKJAki8{{Vt~q^ILt_$xA{qbVECV*=+H0YPoZK>0}_ zSTke>Ao)M-%_9$v-w;Ew{{WDL05=Th_fdSfPnr9c1&J&H{J$GAER<-uNn%!-(JumiQ(=7hUXLuAdu(pH{LcDSl zxa|rUgi*Ax+&X2LDF(l!e}ex27$xw}!mT&Mwt9EkB5T;AmR6QS8zVOG$0Y}t$`wO~ zI0coFneu;~AK5r8))s*k-HX6VK6VhMAdIAv7`ZH}n9C9YBrXT;uftCd+}?aY(Pj`` zFglP{Xpw>-EyqPC1Cr{wJY*(A0r@^*RLj@y-=z zGm<4Ga=jeHr2laFXg#i5JU=IFNE%a06)wRh%j3ehx_+S0rY> zMe%`nZrbHbTe3>nEbey!BlSC%1$ZmYco-$J4mfN)eZMa)n@dKPt+>6ueQcke$Cr!5 zOW3-N#i+iUG`VBCUVPf$s#_xe0E@NzOKk#cb-04wd18_k3>Y2wRSd1h?b+likg5w3 zSpuGG!q$*@cj5lF*Sdwe-*|>}`zk3c@kB(%VQ1+lP+$_fVGND-|r; z!P&W)$!6LB-hqiw0qnp4Ltuhy>|YgWnp|H1ya_3?xBGfS88e7;Hdt;f@&X$TxU*wC z50&=;U#ak}SfPZ+Vib~{Dh_s+_qky0WUVBg@3rl*`2PSGWvg5x_t@yl?JP|=$|cEohr#ylqp4QlftTGWUB>cJ8;FYy9Np#0h39Sg9wKT(%et#ubhfWE~4U0)fFKi1C7X8B@CpyzC{4xdlmOS0%YE@s4tz z$0

JzJL6>hE;A{rewappuLtqZHI#mAP*DUwd+;WbfMQ_c}WZZSzLK01C13wV7Cl z80raR>Q5>ah$Iyvy>mpeV9>rWa0VA7spI94A^DEb10C#l9H!*J9($%l@=BOM8*-L# z8b)kvUI_qT5J-FwcBycnSGV|n)l^%mjDl3*f|gPha>F0RjEKfb3UDx+g=>=Vg2P^;qIxEkBi=leM(FvRnCU<)P_%1%d#esZbpNzzRrQaG{Ps%KXd=2?)SZ zAx!&chwR!z1|uM3A&@WMz>F0FM#x}KCm%L42w)WPJ{Z!3s~V_g2zM#lgv#KB`N_jG zHXCZ;iuK+BucACN;kU$CMkRuhTd5?j6fwb5lglV1@zOz&^q6Wcq+sHoMSE#$rK`HN zno8F1*68_)wNw9*Is^k$BOra3C1GNt%+EX=All0%X=E*AlnNm58r zyjP{!*ltA(0%11*Ni6)P&`aRqnN)(SwYcCo2BgxoO_9gA0kE&l)L<$A0dP1c1aLP6 zAnlWy>+P&TPzrt45rdW)1TR)SNFyL+MhGo}2|k=~{HZpz)1~yhU98p8ebT+WjtN$B zyG>h5HEmVn*2zCEo>pg^c)s1nhdhWj7_Kc_CoRIt5r{hh3VWWVN6m%|Pj{zl$TVvb z0Vpjk_u*YY3WSivw|%$_3jvZ2a;By64v!t~fvCdUc9;tjfKE_`01>&Hg(UI`&Q!2D z9hZat6EBH86{lavcHVKdF$nSkW;J!%8HoXa%X5*moPq%Z-^#N{Ws#{F-YTW7>+avG z-(Ovxw?2P3%cq!1lS=LyTh2;4TKZpqR`t2`r@~3%zwjHF8zIEV0_|3fnM$@kd<-4O zlaBZ}KsIZ@bLK?we}DK{{RYHX)t(t^H7!v=knx)s7EXd078HY8~`)O1bd3`t#kImZ3|dB zP2YxE)?}JU?popY`DGmZ#db3`V+5(s%mZ!ZSdLs$qnTH7i;R+!sI4TL)g<*=-v0n{ z*4rHzT8{yTg*i5)p%^sc+S8R?eVrP3CC|jvHUPu$?@kub&l8loEG7*K|olNdCpI)Xn*ia{{S7^U#$0DHqdRMj?t|mi%sy2gauTq0?RysnMOcm zQg(qR-kjIgnwRa1dut25m7Tem{Ju~Rv~U|B?HMP4a7IDk8sM(KY(E}O^G$1O62}^l z(THT;qn<-BE41wc=J}MiNH_wfSXBg)n$dNVvP+iD>Yj^BU$vHw`z&=QukRX7Y0G`o z8|i;G@1?i0vF0=X0KqS1ypj{Dd{5VvBeXV+9gUTRnv@`dPRItsf&c@8MnKvzQrQ0h z!7Y3RV-%67(S}70}yb+5eAb~>b{n<(Ip;>Yc-~uTdmrX5BMgpz$-@o0Ev{^{-zcb zw~$_Viut_6iItEti-0!*qX6fr0f7V_qTluu{h2i7k*4szop2r~;+3xNCY_o%fG8Vu zvSn33+{{26?j(HGpaP-IulcRmpKW#La1{{X^4;JYNVv%8TV=v&*YYYeWy zk+HBNOekM2H&rXg%Y`-ba?4#hvZ)%L(k@)-HL7<`&0XI2d--p4dT$pQLNJth8(gmP zzWj+dZ#^~H+tBqpO?z5}5<5#ag$i*pqo^FRbX+>9E(?Y&hAu>%1$I{cE7uazYfHu3 z8>2-d9kPcGb|SfHM&f}uBj(?PWys3;#NIU1qVoRFAMQ+Xf?{@6Dl)|Ek8uMlfg=pA zcI1QvU5mzAMDj)+(&Uv3u!kgNnRgGIs6+&vxx{2SC+2l!>5ekIEeNE!e$}4J-dc2R zJulk&^Sr)7zXV~2$}#eQz>E?&%+NeV zs90X_dkKs)tdTTgIX7Y1h#;yefOddG24JO>j1{cwT~6jZ?L;l4vq|Sl=&Q69b0U>h z3ZF8!8EghP1fD)@x+AA2)Pz5X2RcxKt~F zmM3Xpvmum_M%-OTPw`HtbnPCR&63iY8ZZGs%t77EU@k)=fz?4d02*8U1I3p*Y*5@- z%@K-5NaiY_tYkVy8Jq!&-$e`gXK;D8`HzpE zBX$8(y;(yp(z#IJ8iaf&A39B~z(Nr0R^e4RR>8pY0)5Yzla5OKr0y8YDy>pY^Hq1f z(oJ=ao$j>N{{X}E)6DSH;+u4=noTzp_E&B@JuQBV(Cw}KWnj8%O3ef;mnKMBLm5_x zF53#j z7&cx#!MAVRLY1hNM>(}ADw|uCUES%{{%>1tz3hgw%snf`PLqpmrF7c5k8L~4%F6zJ zt1riBBPp>Jj!-I&8CWwMe2P~D6O{%`l^AW9TIF?LjWaHxZG4eP+m#WdQy^7npCNEI z;0>Ee$z!x0UxSTl2g2KFmNvV%oP=ONnU4 zqP1x5nn|S6e5tG5G?uq_Ti;_~e0|iVNaPk*1wav_Mywm1y-$^lj>e{R}e`Sk95f)hs#ohKnwHaMyvB94gdPRGt4P#EciWwz}F(FX#$+4!CB#6?hNiJY2 ztgOWf*F8*zmok%#UXi?#lhL@nRo1J~-&0ClK{+MM3AfQ+QCD$J-wNO6ucfYJ*?5D+ zcOis!nythxqst3u%4JiS@XQ#nAsGsnQoBGc)B_HKu6U|FVr?z-?M~h~iIO;xLWu#D zNFa#vr(sa;2-xaS0s#y41in1eyfdWQ>KccI=CuC+Mn(zcv_T{RS&~OoK`XEYory zkTN4E!68&GGqJa9A27(kJmD-Z0tqNaa`%<})fAQ0lD(GNJ12hD+p?8>(yjjhbxu2L zDcbv4Z);x4>dh@)=7hfw^(zf>??rZNe>?Z^$0MLp3m=sVNCUHsWPkx1h|3VFr{NB* zJfnTuLl7r;5`mW731nps;Yf_OOpT0y!AKbLuM>EyiG?l%HwtdyqxmK zaSTI@VMye1xNw;R*q2jTxiKfTSnHqZ*K2f+jjdG93~+<&lySVtq8Ye?pdUwy4^nMw$<#< zYn$Qc!uS=0w-)YELkSDUq&NhDurjeBop*iZB$7ywk~zn*_(`R_p(eA+{EmG1*zd|I z0D>jJBbFeXXLjMp;FsVBh;9ID&lOKD09I9&Rs;ipShp#UD}%zLGO1|^B-pn7nQXkm z*V^Uuz$s?h&$A=t`B1PsNnTD^NW>L6s^-%E$yv0udas7|*V5ij&Gu^xJyh}2wXbCd zYw2rxC8uA$?;g)s@D_=#-p6#7lUhx_TV^IVA2ALN*Vq}DAWS9*8%YC-+MnWo!^=5B z!((V9Kt}Y8F%mBB92oL8u=$8$cYw>2f^?tuZt$ZzO*P&0#UCL|pLG8KcLhOSBEdp1 z5R$~4k+%oH4+X)u&Vp%J1~_R>a4<`evGATWQmx)2_&0 zR)W7hYK}T+mnyxZeJ-u8t>0dnXt){vHh66VLvN?R(VQvU5gUtVa-2oGXjj@s(l`S= zoOzws#bvY9R9I=ISS~JNc-12%VRyJphs;?R1mG4`3ZMg!#C=t3@MFO6GL_O&OaX%O zZUxRl?;H7i5%T@grzk@(t>``(cs|?*i$JkHUcv#4l_oL{>_}BYDd9*2hQ@FRB($CF z%CGBnepO{sz$X~)BfuHKC!PV$MnKz<^BjOZ4hK<<*?GwWxX&bVf4p*X zGmvwPV;wpg`#ag`s_Unk-CthsUWdh}ZklMW^}0$oTiN#3?)tq&2ka(nmAbAUm}&J^>5CjgRgbCJp5df)?&+4TG>HYIZ{St(Y1kr*zO~*I5@^gBEOy(q+5U5Q}#Q(0Dq%?(Vi7TKo}lp ziY=nXa7Z~k^MjLuGDUvP!!GJ@tgymitaX$NMdog;QA6zUYP)JGQD`gG`Rz5 zKf)7$JC!3Nk)FJR*VAb z1pq^HGF!zp#Dio|LnP8M4~2>)W|6*JwswL~Mo_rx#eO=)bM~EX?@_cKMXlzus9Yto z{KX@?x{~2R3Ql;9x5PYeaWlN!DjS+xPM=Xq| zh=PjuqbgHr*(9SicYCdMwU+nV*0)V8W)B5N8u3n1b+DCbQBjPg&pAfzK2+@VO*tzq zS2eAEXT^Zc;a?RlL35(&peO(iY~=gI;EmnO5xAbmk@-*X25fv;_+F<9U%|TEM4$wG zmuDb=!~?+2JLB5FSM|{w_-n+?w_`Sssbn!ZVAig4^D!H~Z2Ex1<;Vd3M*IX~zZSk2 zGO;304|tj^9mH;m_CPk{X!ZUOe=a|6${q07j-KpZ*4~=!+1v8dMt?YGi~X|*x^p+u z+SQ7+t*+^8)$IB-zXw0yxe&5`*7k(}%-;^J50+JO#Wg)h1AtT#atf342FV;{Yw?%i z5~%U*nNrN6_9Dd?f&iEm7)2|$J3uH73Z1MKK(E@*_%56(pS53yr7DB%9}W>W;BF-~ zYtRE0$YM(n!FkEZA+WXhr|_(@c>cg}9ACyg(#R9AmxJv#y4^UkH`-bI7e|HR?MtJ0uc4dXUQ%l()cMg=Xg`r&)#}BWVL!}dtd2zLQXjqD5t8eh)VHy)}xO7Zm+7o zmrn10qCaIT_+#;AnH1sw0Clff%epWXRT;iv^R_npyZAsELl#wR1N|O;$KE>8A^5AS zMIG#HsRhJW2&c`K-NSAw?5wPUMpYkpD2Sr6mN>8GgZ65YNPJCcBFK@0t=aZn%E!w& zz)~1(B(@6%VuuWytM#+?IQWmQcu)3|@o$IibgL~+9dlcPDO%&_du01ePE0O9U*03R z;gy+VXHa$=eovp}(8gnBcH5^HDIgQ?3~UU-O}j$JyXB31z(Yvoq|Q`}-Y@vS zrCWGD?ieifGPXC@7W#I!15rHBn;~9C@MC&0#l8o>}J4aa99GQvH7c9(&5yR;&~8ElDlqJ3-Yc`P61Pr zTWHBgVpQ$VHttgR$eYZr?{FCja;l10jK_p=6a zKnKe?2#wAPm28z|ZU{BiLkmw23UuRDrv#Ffl6^lP#V31eb56Z?Dav$HjHI@^c2@a% zXxd5lIR60bYkfXg+22>M_#&*@2X5n2_gbbU2!7PKg zWdLo%hqBtt|BUE#2=Wc@tz zT`s*<+IwAYdFPF1yn@D9!F7gfNo6M`w;hS{w#DNEEPh}{RFJ?j*U`VQ-I&@4Z@%f=@gu0)L3yY_eP)+{U0g_tBUx19 zWAi+Yg_*uU=_nuq3l+#4cWwUw;TP8+Xqw>ZTa~=1TN2x&F~BeLY+UbR11Jo?cP)}} z_4pRj>rhw~W!rspimM)F7?`uHxpD^ZHkDvhp)1w!-g!Lkq;5$AyDP{701=CAPz+}y zjxxN0Mn2%r6lCW&9*$Ribxmm3GTro7>2-72jR?k_IVUK|(}Hd5O?cYVE^|9RQ zUIx3c-zBxho~Im&pveJNZLS6v8A2I0o!HI>epW4m%4rrFj+3pSxk;juHr~n=!r>KM zC?OSaNWeuPX9PO%Pf4Rss2j^j-R21^BSw)D1Z?GbZJ=l6EXO0A!IWTtK7hQ@w9P^Y zC7KIkJZluPOh)IMBO6KiS9@*hGr34yVL)F-o+>mPRIeo@xth`6OC+AVB%S=$uWm<& zt6EZOYVdbXS~k**x4qLzU0coBz3upGUu|v;HX#(Dt))=%$fWs$%{Y5xi}6tJuZ(;g zNaO*XOn^Hcjm|J~2Vt80`2PTcI~;s*{iaZkTf#pM+>V3g)%;Ao@r(x`^PaW$xI6y< zsW{*J4R`Nr;h&cJFY4#!82vm$!1C#O5Z^_28n)9%dvCqJ1NZzA4;+2~MIiL(< zj>E59;~ullg=8 zwE+ArwkIGjinLZdciVcS13Bt=_Q*B-z<$uy;QVc|Qim_7#7R(iTtGqlz!Afqhny3f zSM>w?Srz{Pg;yIKoOq){Jv!yCM^Zsvxb{CO<2C%v{C9~T<9?dKM>nyyFkI)&eiSc3 zg*YIP8L$Z?SL{3ku3J?#r?#nkUfTOBeE0nOpNM#irfQ_N_B7kt`tw^|?bWS&Zhm6^ z)%M2I_PzK?vL#?OF9%9V3UU|37A=s)zVP6v#^KpWIA8QJvB%gf&#kN(_XZfr&u(&a z^)>!{-?n5p{jPovJ1Jc19uUA^QQ`|ONehhf1C0ILbAoIA1+?a4r`YlT04`S986fit zan5+pJqJC_e7_pSePRnn{k?1VUhNk2*6aQY(#O*He%z_oR=fJP9e34LulZkIy-S$R zbI|*A{{THj9F8zZ>5Py7<2;OHbnEkR!K5EB1dc)DAD`1aax!`nyM-ywY#x74%zb-$ zSHmq8*IvGswVu7apMCWGC0k4E+rFNif6H56xs$4BnohZCEsnFL>DslF!IoQ1O3L2$ z+C(|Zyf+ca8-@+YWdP$C$4|k(_$=4#LGV*t{h05(ZQ#!YX}%Eg?wR7f32d*tIIX5x z+{b-1@!i|sX;8?zY>OhQ801T2k~Tn8m1zO}`X?$u13cho@Xzwc`0_tIKj5bk`Jb~5 z^ki;V@t1{iNY4#-D8XJy9Oa1UaD4&xvKqBsXM>`u%~PvdFq}ExEYo&sO7?mu>8_VP zYl?8#f9z~_AyB35s8dsgR~Wg$sYl_JuG_WVwtA~H-TwfZ&-f)*{1Zc6`1kP7;+Ku} z&kp=L*7PWRO(%pcw7(r`vfbQjT858qB)xkJ^@8nm`*b%@Cj)z24dsv^Bhmgi{{X=a zv^_ju>NP?700wPzRv;z;>fB@v#Fpv}e!nZJQaAx{0NQvbj)&`jdS|W=72lfX zm9Y7hd^(I>IucNdO{qAj#kVJS7Tb5TkISj%WEnjyPF04*y0iAxl;<@y2|;`EjAEn9 z8T+w{*PiX`qCd?K3lE6H26$%Mg!&mxd{@lN_ z$HHHU+GmEfPZIb~No{6(twzdiYT5+T^*e}~+9^?PFKvWU+%z&NXpGGx0M8gZ7=ic^ z@u&U?jizgMx|IF}@nytsBvSc$UbSr&p=?0}h)jyBAXN;YlOE&*43ar0Vj+ukZOs`~ zmnSTf(pT>vHKo*VeQfkTmY!S5g|8`2E7++?q@~K^7^ycD)Svykd#AH&SNwe0{8;#h z;Y&N4e+u~X#M&*Ku?XbT?6s@mVKRmih~=?q9^I9k_JYy= z6zcx~2lahM!&=aFyIZSAyt)!wUaH-xhs=;fL^8jY&OtGub|=mABteg&{{U-m*i+({ z!Wp$)YgF)r2TZX*POIVZw%L|V-@bcnjhl$cEQ!E7_U>Bzckxz-sLd3Y32$&r`=*v3v9?Zp{W`MT8-{gT5}TJj2tmcGrOM%JJEWG4 z_r9-G&#?ahW*f=0%`VNNMQLP;IaQHJP{66fV4!6J79%XhvxNh3+x-LlGVz|HXYi9m zj@Bq4X)j{^@QE0);Z{X?ipH;+ zmSRMm2p=N?KKDP+2g09+I`@e_5BPdLEUnD;_X{h>8=}ZiN9LB^+nJdZ1|tZeR2Cp@ z4f(UJO;?hWi>+uOc}>{v=O`kgiJ!8&kBr|$DL7iD`{x1!NqC1cgT zFnG(xAMk)m@c55XwXwLuikY*=A`@Oj&6+3~i=J(_0fHjoy2BVbAiR6iqSSj7+F=As>7-j&H2qjAeEW?%Y zvpht7yc?+$l4>eDrF$jIt(^gi<5~(Qxi{y>L z)mH}ra?QIKA+n%=P60fA(ki4U3v)Termbz$+wbc3>bA;Mq~Ph)x3fv;V554B{*%Ho`s{JA zl}SZW!q%HmZ7E6$JiON3Hrs2v-pKr~jN=>yY!vCj5_PdODf84xxT>D)r59};mcF;u zJrlRcr&30{M!B{PlA%c3$@y?_eSshy*ucroMSi0G#eWVit{!h0N(5SXR}n-TYi}kq zld%aPa?GYp%p+64#y>0MMmO*)gS*U+7~7nN2yj?~xc%YA&g5<+*Y4NslWrmSV{L{J zhIeA1GL{UDh6Pj>1TZ_sMh+NbZhWlnQdmw@_o$P5Hkys}R?+Qus{H%%NXB@mzR>1Z zl1)1;_R`&V?WNDCAwjcpGHn4ApDb=-yD~z8+lfM|r*Tk5*#juWUeh8_+ZX~1hB+HR z+GBEEj#nE%1QEegA^-wlhAoOtz`NvNq=48N5BDR&n3o%zAL3u@AdvmmO1 zISMdUgoGd@ovZ*xIpY9qZ|vTY4b@3vN~b05C}GM)Fj)wv!~b!-8*B!V&k?~z|k_GaA~SW(yhV!tM{^5NajLw z&j2eZBMflBV`2?C%zS_d8*q6lFsE@WK;OHN!AK+JU^o@f+F1>XKtD0ZI42|~?~?~{ z0P-`Cqbf>+TJh=X3WB)8t_TCR(HfqLGm_X+a&kf54m~!Kx4Q1Pd$p`nPhQ=Yojb2N z){@hit7`YX-L?7Y(%Sbpv!?mh_Yq-;o*5#+J9%NX8vtP7l~owX0|X9($}|t!3rYBI z2BF}u5MBL-?#AY3hajnvHg+4-7GUE$Sf7=Kh2S1r-b4_gavLqU(+4wCHApGFAd14B3RJkLAAT`N~!bZI{ z7kj3fY1!XI)|!3Y_Uc_cON+d0o9Oku`BmGxX{MEx(!RIS$E3gQq2WCxWPobXTtw`| ztHxyvz%f*OsvPp9o}qyw2PM8%_>KEPd^_=8r#`6Gh|?Iqd{Gz)cZmsn?aHw&oy2;E ze*65VY+9V50<)fyd^l=Hu&9}l1|AhJKxUwZ(}Oe-0jZP ztt;D?nYPq!tiQ_ldN*}{7lY&HfOPnl+<1BJrg+?}jR-lDkQIq6pkQDS8zAq<9&C8ei?nn5<`mC^#gDc!lSs@+uJo=MxdrbgQLZx8$x@NS(b({ETt+txqce{GSF>!)Wp$n#yT$Ynb#b0f0r%l_ky_xVHub~3$Kbl7WIIzS!fqg`N5n?91@07 zz~(Rzs*t0f-H?C0rLY_BO=sbytalc=pNIS~686!+F+2sMx`{w6lA|cz<7mSXyJ_H- z7(R=nXt$DDM62MWg5{M&$LxQ3@FQTSV9zSp%M!iYYMkdBo`h!IO45?j>hkWiX{+kA z?W?|q(af<9Dk_w2o{yF>Qb|SXoxGLowOZ(r`A4e7@t4HN#_LYLiS5a{w~$0p;*vER ze71f+g#Q3~P|8lyz?$38d>!%6#dguXwdM4R0`J)}lEpBt3l;>H%C_EqT(&{Yey=x! zJVkpPhTp?6N9N&Mb+81gt6&n_Nb0K0djg|&OIItRd>{Cipz8Bn>2L^aE{^tyn{-H6 zJ3bOE%mG3XRfz{+*cC#I)5~ztaaNOElpix{%U8{^in6x5`3gAPTXvF!V)f?dT+3@| zZ58y_P5jaMhe`TK-=$E!v zny#R$Yk4BacK&k_6ZxuHq$)sAda9}%;~{{_uh}8+^T(HH1>DOEZ5bYXY7h*oWJaI@ zSdhc0Do)+N)<(1ND^l0(B(&7E2sXJS2A)|8Zd`9d0+wu!rvT>!511`H4HTCxDLXa3 znl4-3_jY#M<-P3ICbLaCi8k-e%&%{E;kMgp)jiTlpO$a?C)<6IE-rjQY@v`!jwOBp z`GUA5m4_U%?FT%Ql20Xj@E60HZN2S;+L~QYASj+%Na~DE1124I;HYepz_A~66JM$} zKeJr6kc)Zs?>Z>X)J=@csHBnsW1cn+3D^|ngACR6{hTyKV)r+t+=3N_ykjbIPT)s5 z10lQpk}_8o8WJ(n(@_U~0~FRxQMPOrMvS0}q#B=)n_THEfG+HCw@(0&VIi7K`WSxV=oRHX^nRm8&m>^ZU8t3X<=TCXYjwnEeJ?#=Wy5&vqZQpw>wYD zNf_8b85@{5Dsf+_*T1sQfv>KjyOw*n=Yen@4Y8>}Nl~-_y;lps#&{r=&sk;gAHa4> zh#$-6r*J*|D8$q)Uaqi@?v&1kNc zzUpc>wbx%Qm!ISoqwu!XbnA~I)@WWK=Ud4vTd?Rcu~iDT;;O)o0}>es$pZ zl1Xi4`%Sw9o*@Aw%BqqP7aZe9kq#Pq#mQ6*ewC|&e()xMnwVO|C{xsZcIt`t`fpk0BTZB-Wd$DG9 z;46eDXgR8oQ<1>^ z!cT|(3AZG{;hh;t&K%gl#Yr4)+=p`z!ysfFe7NGCbPWa&M0!4&gCHX{NwGcV%Z8Jc2EuA5d3l&Pm{d^MFV{GUcx|za?Uc z1~%apHspcOfCfHn4#ONAfkUknnvDo3t1C3!uWq~Teec^%ZFKTA?K$O+#XWAL%#yn0 zy0YonYkRA0clh&T;D6c*dt{2!z{zaIK4U1ALXD#jn9!2h5$*?hA31fyWYd@6SM5cs zZdA9^tRk7426wsr+8zN4>IUFf7(jM{4$+*S*hjj^AYn7pZrlZMG07oZ62yiIH<5$4 zZcR6yHY64UjIj(97W>%11dMJwz`+VYT#jouQrboljr%0-^jGY!qU)>KeKR3}^bk8vc8xRs7U5DLVNtAv{?g-!jw9H?I3T-FkeDrGCV}3G{={n{gl;cQ6DnIRk&1 z@&e^mbApYIK^yD5hxTgtQ*4Gaq%4YqXv)MDNF)u1%K3K|%8pPIzzzwoa(j|V$3VDa zobiMKLBIrL#3%*81A^zQ>$t{{RF&8EJsD9v^`VxCMbzAZ6W# z3W}^YoteR0I2*7ro|YenJ_?Q{i0F3nA_9@cCS(eyu2iuE50IRK6oBE5K(2;4ut7V? zU;tJQ3w_+M$p@Ak6P8`yF((UFBY85r17I#VSLg1HsuTsrcy3#1INVU0=9Nq7Dcen( zOSh)`>-e*>6zM@)5Q4u|8(-mCJ1uleXJ)$Y^I-6=g{>Aev(WU&x+ntPB3A{1LW!#$J=vbrXatiD#2ry&Hm+iL+*LCUboC4si>2HuycSl3Z7i}R5V932#2kQ1k-0 zAZ{zS1S{l_HnU)Y8MBZ&1dNc(pt#w{NMn$}M;wL0ToaPWSg~TNzyXd5DFBY#*q{X& zLh?bAmN`Wj1-EBu+C#Vlc*c3CzQeVYg(q^VsVm5A0fV@)Py=w8B=rS}=b0say83Nx zFVkh{eF8~aT^m|-**9*Me)ODm>(fJr{?CZ8`3M1qQ2AisH=!i5l1l8zA%`F^%_rEH zE_Uq;<8-lJ!Ie)yTaU|KwtDiy}n9$T{nDn9Wi1Tvv26e&_X z#Rj^#tjuc4$O~iyWmVip1_;9wvuXK81Fk>-=bH;^)$-e2Zo2O8 zvs$Y=bh2G8`nAiZ?)vKVv+};2Lg|GZp!1o&9!#?rSODpOcvi5OeBc}e z9Bsp~z#Ov{P>KL8xFRx?a!(oSg`h!&496>w+1BRc}iGi zzFeQ-Angp<+47B}AS+}kEdKy9FbU^K)&2m3xy;A3W1T5Lt}%;&JNsQ z`R z4<{7DRE5rRLCD5P;eb4FGuel^=o<(1`G3Ivm~U%eqrYu$e@{hz%c=Q`{{RI_k3R=K z98Z86-{S9wSy&8!UryE#5^@_SBZcTNbAWUF!8r3G)Z)ippFTLoF^;Ccn(r1m z+k9F5ovwIQxBaBN3`r*(9~kMx{XX__)88cH_Ffiu;TpGp4NO`}{*CR^-tX4^kHNUY zDm-6Rule(aeNw+9725Pp_Kw%`KeyZ#@5a^7Y@MVG3=`>$9-hFpNrEy-9OEY>bQ~OK zwoePsQ|n9wg*iVdRZuVwB}dSe1HM7+oE{zbxCH&;2;>ow?AiQ!o)>|N{Aup=eR{1m z>bCo~^gnf`-z7V}IbnBx>NdZgudTb;F%KMc{{VP4aB=_{&NH0$&m3V*L_h}{vw^of z@CPTaE1!IH!0A%pXSU)nFcf2w$F6=-FglF#PB$>9%BbKj2X26#0m;Ds0Bh9b8arQq z>tjI%G0#2o{Ey+s^v7o(PM9YgWBm3fudiNd4nNO7p!#v?(w75+-y<7<;NW!6ugr7l zpW&bcC#D86I30#b;N#Hq?Vc;~uf;a^R=zjaV4mXP#ixrkD`=KU-gEx|AM-2cEr85^ zW@354EtbuG%Y%)oLCGK-WPcYJBxjOI#{_!vp#C}d;^=Ar02Dl9ZGCS%6UpOkSjPnR z&a#Lk)TVeQMJkzsXv#?xfCX@4U|k5$rItm`t*P5iNnL2{rjxQ)c1hmu$u+A-P8zKW zQ?BdszI-KkN1ZQ;sJ$=N+iIJ?Yn%Qch#w62gUbMK(X|!A{G>P890BrzK>31^&Im1& z&3-$43X!7tt?-{X$g=Tl3g;&QFCQT8V}f!HIs#5Y<86M+YH^8lJ#8>@`fcKsW1ME$ z&QuIwoSu0+V;p4uFZ>u~i{k$P!sK1Jj_=0Mo(Lyx)Kec4<{g%8^ zOPNJ3`om3aeeJJHpU%1ZzA}W9vgVV0n^hpwwbIpE_fJJegO;vIR!glJ)_-6`F8Oa5J0F3jKUxR-Reor3QAtAuj zAt7Tp`Ag*BqPuMXrqEpc#T|0JK6?>mnLA%fwC~qWSUoMS+UnQh(e#)lAMB`IHk~S( zCYGwClHS(6uKfF4{bc>MkDc(B;OvKP)oB#6g6^&M6$dH;s9jEj|d1P z1XWxz;DA@fB0 zHCw$?X{}OrZKQs=kzlbE@U&${gsQkyP4c}oN;YeIt!$rFt*+0~{{R5$P~3QnTuE)@ ziuYkqXDS*ScVzoIOSp$n+qm4hAynsuHSOBX<(`G%+qo~VVuCfbb1$19Pc~4jLaRR5 ziv+>SE>HzU`GLopY2Fe|N8<*usP7iqWO@~~qFO}qtK3{gE5>Aa3*p;#5t%mSww^)A z+xVaGy!f9)O9?J6V=Z)&$sqekTXjbpK}K~Bm;nnCNI4|3iv0T>jLSW|+s8r6nZ+ol zds-=_Yb(C~uS50x1hbgoY158bQOA-inaM>v+Rpo~mfK6dwqJ^$wT`&_xbE`JuQz(ZH0SE7M*o7k)uhdVE zKLBBiT-9yo)MUT6ffie2c4*CA)|{+_ADmXJO9PWm6gg z#h4($JNFP79ZNYi#N6mpM3P5ywVF~wB%6XbW>t))_W4U~+{^|*z{xoTrzX^A2}Q-L zXzy*i-RXXx z8+Qzn2`!LM-oOkEboxDwu-0v$dF{j(hC?hHRZ|&KtGI?CS+GIrg1}^B8JC)5k=t2$ zG07~8AZZdLR|ADCM$y8qa*A+c?SL7NN2O_h@iNoaIX1f#4dyc}t%g!ch6|S`_hT6h z0SkZu8P{`+o7E@Y`n2OMHL~q}Eo)n~)0G*<%_pQ)+vRPpRPC$2_GwS)M9hjBGFeF>K*sEq4X~~;?|<-5{SGTzAB%R7NYdNOrf)`eXKl>R zq!2a{h1r3ga@YWz4r}5DhLQMw;mVlAkZw~bc1FiZP_hLfOO;Z2Du*W=A4~rLf_Dh- zFTO5Y#zXy^MK8HqC_s1ll~fQJa7cAtt&x@kKE6kZoRpQ@T(6nmM`W$DS9Wh#v$eI~ z;Ey03&~hg;OxTd<4!O5k}88c_M4e;@z=4Ux6R z;G~u#8*7*G4}&ex#c?qZm}3PaSc4NL8)R%512AU*Daj=8GH})H`n}wP#Cp;!l04tq zH-K&cLQqP?xEnw}bZx?o#fAuN)kgN*U1`((qBY*CyQi0S)R%DD!!l(~Wgy_?R4xxt zeAr_gYspF}E_*pe+4A$Nw!J=E*`Gr!x^lwPlqx=FP8~Y(!dAWPpL?a&&vtl!hoETg zVlvp0kd+EvEV~AgK$H~R1_;OuK+6$=GAr9<(qo+NvbtFsDAG}G%wu3#c8~)WI1H#` zTpSR@0=Xv+EgD;>(wGm9i_tV7PR9DgE5UC3ExuVkMOVPevQt53IZFPEUugq}_ z;adTT(?tZ-n$wwbwRf$q?6=jwk^Ovt2H*+EBj5O#amTk)z{ohqMcx4e1aJY#Vb?qy zbR-Vv@c@ce0A~PzNEtXMCzJFC10Bi8!59={zdo4f9Os-4{rUVr}V|pO?hG5pFV1 z{DxstJq~hn{tcS^*Z%;5Jvl$LU+oZ>z&{SWBFs8tXNk2n9Ah8y(2S0FzyxO>e}ZfM zN6a0z#kaMs@8Peno%+7I>tpi_%Im}&1OEW1dTltnrrN5nqv@uPYhKqsp+4?tew+DzK3}OK@;Mto0D;NQbGt2$4^zickU#`exabd0OmXY_=dbBVM*soo zz{Ux|&vVbOTppbC2n1~$km7X5#K zCI0{k)mHbfQQq5WORMhfe>bDOkHox2Yx`9uv{Yd2-p*I~?XRZi=I`yMLjKl&24sxx zQ-9%Ra^Ub2T(WWjEHi+=C>X;NlbmDy0<^~8rfH{~8!JKx$Oks*=s^GudXbI^$p*jA z*Y?-|{?%UvG6IpP_+$W>8UFx@-H_Z#8R$shayUp2 z7zaG`9qZ#dtabK)? zIKVx5_WJkdAD_~{DE|Q9kT@T+w~oik0QlYGfC7?NA{{HX2T_dU^v6G|Wk;tz{Qm$x zzfRqcJQ?@=jxqlL_5Jt$NO#x%4anhFejm%FcXvu}U4P~6PruOloA#TQ!fy`vdrY1; zd+VKES?r}pG5wk=dt#STHgHLAIwc%3soeckEqrSJ8-^V|=I%KQA1*>w+&3Em9EQkz zmBSIV>WVV&9)N0G;Dw2ykeV1fzLX`!8+@m{~1CZDNeA9WT*|wE% ztsoOR6-dzaBn1F~qiH!ih6w}}11BSk1B%7{dj*H5P5UQao4+pn(u$LET4>W>GM z0V^0^lx-vr>a+HhhtBwQ;)xnO;wyzv%r>@Qa6V8;-JI>tdnp5TeldJr(_)kMLimzp zK&Sf;#0(c8F6Op;f-vL|p^pOqFz6V)e(hR?EKUYWtP^zT)lq$7`C{&^Wuv{l74Ose z&Ymi^7as{ysNosbr*xb5mpWRtqv*c-E1$@}!o45+XT|YYpuNF<_JWe7Az#v{6VN$&d#rIAdIUP+;XaUW-6rRKv2U35xaA7Uak8pXy4lZ02Nl> zhl(Y4Xw(8*Z0dHX2uiR3WCOt*61B>H)RBuniJmC6MP>4Dwg;7Vxx%Ob?`CZBqvcQ? zfWsC5pUW|EYcGtS{QYsd>uX=nR;_;b=zhVMO+3bQ-mOumC$eoxEmxK8wXUw6^l$2) z*?L%`(e#t$vxF*IGmyK9Bjp4P1tChFNGi&qqvU@>-vxYMsQ7oldSCWqvZ7q0xL_R` zHH4kTa;O6#+rw>O!*Ug4U(H|a@2$ycqUog~42vW?*zX{Lg~&MU1A^=j0N8LrVt;sk z1o+cW)V>?U_dB<>$$}{3P{fxDZleIXjHqTV4it!v)4>PwTzxE5YF3nG%NbOZlTTlX zU9DZYmXBT6Tj~3zNr=HZSZGwH=Os=HmT|gn&`!x{)%Sbpq53zjc))9(1iY5|=u8&I zT*tWWNhFR&aK2vl0ae27V~FygZcsx1068BYZ)cmvdX(`<@t-<(MPkk{C6{T!wlK$N z8^OZv>5hM8JW+o=mxQh&u%1Zap4<@Sn2bL5Kx2fAkV>+vI+P2ZSA+O*@oM(+*Tq+@ zcC9iz@|>2-6Xu=R0I@DWX35*ZG6WfF`Kq+*x|gX@PWmL?uT`e5%_}#f>$R+puBlp# zAsEx8$sguXdoEO#iF8^eb>*d>%^oH&-Q3Cc`)J(80*MNv6=9f^5}^oi#4@%q)rc%q zkDfeNZs~AUP^4=h^00Z@OEyUxivkDAM+yKS1G^tZ_^SHf&GWXf+EG9Xh4~G*6eYJY z9Gtd7{K{K#Bf`8#99J_%Dt_)UX*Z< zwNck~rL5O$`52{2r52%OE8X2$@7*PPT{ZK&dfSxoypo@X7i5F-LIHs%D;H< zGJ9iTakyr?F9-{U{gE#Kwc8rsT(eBds-%6d0gy;{wg}ke9SC9bC{=bod*eMyRPbJ} zXS*uUg=X23R|o)SVgYgw2M2L1GPzM+r{GOSDL-UALr#WQSt6R}&r;ElS+5#GBUbsi zQV2LNh5!O`EA_7r+qP*bNk;e_Ls!=P%ANJr+Vxugzl!*erA(KQGy_#?0mG5oz zSGw1AuTO&RWFu9!+D72X^KyDNeshOy$8JtecJqURPwx-xmdrjGS+t`kC;&j`@g2LhUC51#kc?c=;&1?E7ikNZ(Jrc3n5Q^{&^pucrE6-O}APUD{i8Y4_R% zuxVo}#u*qARZicNnyl#gvTsm{F4vQN5P~ z3>#_2PlkAYAlI;zCwBD!2XPo^jo#l@w2+t_xfwVmdF}1 z6ddvn08n$0!nY&l6K>$BRe@K z=OkgWcHn|b0fT{|6^id&!v|==B~A_ysm^y0PI3n)hitGreQiEn{SuFPAWh7~87>gYpmu%ku70MgZIfPT}kx5b$q@-tt(au!Z7@ za5oa_2yd5g+;BMq8Blr7c_!$!C5crll?wPDcpoo3f(ZoY=RYvO9Awv3;X7tqnMw_y zqJS}iN6Mi5xEvnGB#e@9NEphTBKfq@tKI2mZ8ve#P5%Jlt}<@X($8;ScSPUFp5wvZ z7GNVfCZ6~i3}8oKz#WGqZpg^#%N@iJFj^?I9U9yPx6|z*L^x0)j4skf2n9j@E_fg| za5oS~c68Qb@-9JK0=;lp6Tt2=0VI+L8+a7t@a_EDJiBX&4mc6U?VeZW+yNkfcH*+qbVIe7z3`n$(Bj_rwdF8-EA*iIji=Z7${{BR!0(7{^?(InUlL z+Xs!or>-KE-&ZBwYkS*!Z{^m-#)WI?PNmxZOKa}7x@hlY@2767$ysrQ1cSqoxkd;l zjseaA9Bu%C@~8l22WG;M<0S3IM>)npEO#RkNyanBT=e%CJ^*}ExKIH%wH8Qh%KU8TPamj_MKl%R_MF4&CGrs~?=#aU}@`YX2eddCHcZZDB5H1(2S%I~^*U*6XGG^~;E`;q`Ea!vsl9fIec z`Q-D491^5tRYqI^)sOc_J5S0=w%!K=`^02$HWpg_1cUZ1X8_)K+7Q_Vj2aZp(C3dg zQe5Ypk_&P$Tb%9Ne#O2TQon5Rj;koZ;@?WMgCGStQzZ8am?WI+`FX&`LCxlr8oXgv zO*F4%4#_3WD8HSTpF?GWt<^z0rq%A7(*FQ;yZ$HUqbURpy*bX(49_A=k&MbQT*Z2E1oob4w8G}j}i z-2m<9r!~E8`y>1!w`FN9b?dT&{#)xZE^)V$_IMyYheM2v@IfO7nZuv3b$g$L84kjs_GlB;`hT5I$k|fPO&8 zB)3|UTHLb&(a0G<&J=)D?7+YdRgQ6%P^W;z3|H)Yf3sh}`w&{=!)YJ@Hv8RwSSm5M zB$KE{zrsI+WMGg(N`)CVnoGq_EYe6rN!;ybUfWs}(T7JsEAMbXE{u=Ahs{w|+n@q6-gyj9E_7)z4 zaLSDC&pUa)5P!kSKd{D}(k_$XpNksFj1sugygR4Hx)m=hxUcN`~DTvY{L+9dEzY! zGQ2Kww)a;IK*8W=7$gjp$5Cbf00jN`;dQs|H$Dy1vyH}mcItOr6yW`rO1j89daD9> zU;#DxUE(kJI+s9;a`<=lXtV?ZRke?ZH!=_IsdcjOyaNTZkR%5qjxa03HU9wkI;Y~q zi08xK0lpPjD`Y9Z)O=a1IOB}@I)<2pg(vt`M^*tr6$>-R&dwM-=CzibxNI#Id#&S% zoi?tu)vI^Df_QpSX-d8h7qe~FoYL9d`yPK+W!+nLe)Zb_0KqxFBuW?U{y6Yend5ho zn$_cN0Y?S2`&^%w2MoD5d`{J`t~0Pu8w?Q?QuT_?f62DEQ8<%`PjzOQ)8o#9(Lhl(yx^0`vrh6gwxWcZhe zKj7t$+w)WomOeG`MuwzvG@pll7Tko8HpeERXQ{Y2AgOHRmSR*6TyZ(QODC0Q8>>3i zvbZL#9dAn$DOq*0({-(b+2G@L@z^_bTkL!P02TP!{{Uup2&K_%k;elV z8a>nCl>~nCIpqAqHT)uYhyD%${{Vu9YlV!Tv<|;wvWNL}Z8O7KHZrV2gQw_Lq#Q2_ zualgHR0BQ_;$QeIr|r$+7Lj!y+FRn>ipOh14~+Gz7+qN5hTBW4NYzQk0gHgejs`N- z9P)Nh%OPtf{;`~5DakDpPuSt=C$F1U*J4z#5q|b2R_{v-8lAuANGZEK4!5#E)-Eq&riq7RG%yX;U{^~MeWI2@759VNHyyZbQcVPv@Qo`%5yB28Pw znzWi8XtB)W~|#^v%C_l#wdVhO_JF$FLS zjGVTZY@0m9)p4nY%cvzArz~D48uV#D;$i7+e*N^^@Hm5ta^4@KLT%$Q9@V_CN5z{{TvZ;J%r&snqpv4F(%e@f}L}*kGvp=eHo$3BD@+ z#r_;opBQ`tvJsPyvfg+?cK~A~eUT-Ri2mr$pw27!lAp!e^qDg1SB@BQx_JYRT#R{a zSb!OF9l~$J9qEx!j}ht&5H;1rjKNizrkG^59hK0^UAQ@r3?05%RdmR&QXDgyM$TBg zw%+ca+4GydqkBnWpsc#xdL!g#;(ijz)4*4r%{k)Yp0@iw$+c(EJ$JeNe*A0wr$6AG z`rm?e&kgwh0LFg~HQgfe#^xhoqxg33Qq+<|8!FADNv3G8HNE<=SGKu^Xq6>YGD;&3 z5Ak>L7fSHlzCQ6}-Vc{jpTZ5|9aX$HHn9v*YSU<6Z;)wHY8KG3iYwo+h|J{~ktA73 z`EnPwzrMJ*QyWbqf)t#w2!O5#*%=^~J3eAd?J9GQE5*Ji_>$kko*ciwcUbNuhEZ$3 z0rza&B_j+=fW&n`!MwAECcAL?Tyj^6%<))-IV?XU)jCn5LzWhlWZ>OK=Y15M+EHyK z+rY->_})9lWt=~Q!A6|w;_0eMIaaC7SCTTkxnmUsz2=ltO>b+p@_+3E@fmcuKj9Y8 zoC}$gWyG;?{Ee(nmVWMbu*-j~3NeIaUzmOx{7mt;!rgM;Tky8Abqg)ZOL=716Fr^d z24d?fs|ARVaAXA=oD+l2PPwRDYnq+rqjFwZrJ7faH&sI+Dy6@6LYCx_yLsM)6_l34 zF|4e9QmOKsoFIv ziWZidFN$T0Nbw@XsL@==k+ZmBT2yx0v&Xp!S5+hu%*X&Ne(zr*?lqp;Xl8}R@hn?R zZZZm-C}IkLRLPJ)z*4(_U*w9;;_FYjhVsr?tuEk_DJ`xonW+>8~Vq@M{tl5t!d_L36l+69gdnpe#-g&M?g5w*#DM z8hEDL(MGE3wD^;KZ`03LbI9Tj2yl%|R#DAuWh^$gO3}ZwcINNy-^%-=_Nn0qW>kV5 zKrFc=?c0ny5rXN?R0kh1K44K!NJ#^7hQQkD!H5NR0zn5G0XQyj-8T$iRX+&$r^DVi z(=D}a2KwIa8;DjwvB?Xt-?{e;GwxE@*fMtj2I1AaF=RnZ1vwiAV=cYDT&r#>Njbwe z0k)D?rF+YkX-YD>vT3bVw6ahB9?yMu{JyLz(VM4ME)$DtN@??HWo>uaUHqNyb4zEi ze59P<;|+%+VPc{-V59?qmcrl#C0OO_ZX0P`qyncbsu+M!ZD8c#cmYY>xB@c7p*=Kq zDn`wvS&FM}RUj!;2&;kyHykekm}CMD(8%_Ch}?yk6-7A*a2#@YFUiON098OgGj0yu z71PsJm6e=s?4Ql|==+hX`BGb1D_ytKuGX^ZuV>Wf4Y+LKLY>(JobFx2cwOoWsBOO} z4UvGw2pgDfw>Kb-!#xho$7Tjj;-HXD(f})r^NQTOdkYAf<4~SBBMZ2h8*52`qy$zh z=OZU_kXw!5kXU^4?e}i56CDFd0dfDFgamgx49)$k@5y1fC10#dZcs=+$MA##oV+XEAeohWO z2VQ$)93DZ8kO0m}1o6)toDui9<%jd(a1PzTu>gVJfH9oslgS&n=s$*<^uPQKe=pal ztiK!eeY$yQyDvlYfBp)C5pUVwMvyNs{8aEvn87$>aeRXw{Pq~YJb-gw%+JLA*4{Sw zF>+1~pY0Lgc?lT63*wzM@>?JbV|n!FuO`2zpZF=XerN2~u2(;2_>16aM+E->%u-Z2 z#yalXkWYR|1Rv%T<4|Zd&xe;BD7N_d;Aidvhu5^`2Z52h9Ag9J91oNq*!VrK^;Z!G z(!MF{yZzlad+M#xJF7cf{40%PZY_JZ@Yr^)`fYx#TGqekvHig*B_rgp!h7}vdiFdL zF^-uPUtM@;d?eqJ(o>(6nD{C0XuNn7G;UncMKwf=kTe&I^~#*2Mv({JXY)BCr-d)@VO z9lYR>J#sl9AC-nkBz7H#Obi&9<%!O6NgaA;81x%)jB$g|4Ag+Kj@cmp0Cbi(&m$eV zBOG?;kxeHA@sc<>#(BXX{d{&f;BY4T+xmU&{b`}F%zZQYdj9|~uYax=&}XUWeSiI5 z*YQ)1dL9AbAISIb&wiYP#U^cu;5V0}OL1(ITo9pTdD&UU=3t7^pg+6Ze?(UwdjoA z>(g|cqVALB_^r(yHv84Qwbbv+=+Uh@@vj(3Lk&`N@4A|CS6vjfcD?jxo@z_}hpxr| z0c|eOV`v13SYYHfdKMWt88{xFi2ncyS<~Y$!(OTr#9ljvLW7V6?7h$dlBAq+c*=}( zU$=UIR)<_DK~J;X;3v)sm|T_sU~&M+>^7fKUx!}}E)_mB{5nNP&>Qg0;XMm=O5X?T7$p56M3+33GxNHwW-5;o6b$15QD? zkK3Uk(aFgZZVFj~Dco>{h#>C3ReUXfKwt1)n1AB({3n@#%$^eQ8l8c6ZCmRX0md3m z3k~3G3(q-KujljO@CV`sn2t+g^#R%$zEL3Eh9e+k64EH|^D41Yes31i%_gk1t4SvG z)xw`$R>^fsrSA3mEFIQSO|9K3*6(FjTl%h@TV1UG0A9aq$aC;V;Vh(VG0cjgLErOP z?l1vBkYw;z*1r#D-O39S152+Od))IUt|KxT_6bt~vWH zWoY$k>d{RrCbhF$yW4A~&*(k~#89V~&DM5No4>lqYcvpwze}`$WhcFF-M0|ak-V9mE7Qn z*KimkrF_Nk^Try>cCO0h{W>+wz3g$5KIV48qx2{19r2NVinAf#@Me**v zX{25|X$C7BMJ7lPmb#p5aO#pN-XmtrWbI*}mv96T`9>#(vn4v!s@@i<&mZ3|SvI28 z(`wI`nb~c0-pMc5sc}|T-3nAWs#+0*q^Qot?s`uel6MSUuo47Q;JQ} zz1jOy<;uiXP>K*dps5VZ2w3)yo90zhUkjZsI33N!$!2NY;V-;}{o;a2Y#rnQm2t2R zKn0keu)Z{WMAdKOyt%UQ)!mnv!Z*CXc^qs3(a8PSBVjF#q+sANW0oHo+g+v6ou-ah z-5J^V8+R$(pERfD*mrq=HVMH(IyZ@l!&iqSV&bfqJ*1@m%J0>y-rcPAJ&ZPGg_Nf$ zIVCH~H-wVCqZHlN+HI!xT3H-d#Y=c28U)WLmp7X#v&D}rDOASrqXd$wH<5=dSP%%u zh3n+q+l04_DMrb3!pcH|rI&kULJ(LMz%1lpvJHC&#hpdx(6rmVJz8k2ZqJ-q;%9us zS7B4RnGk`HSa47&Qp;WsCbbMADXx}eo>f%&hB+tz4V436`Gb=nlPiY#g?ssOtqd&| z<0UBFJ4;<8p1bPTebxIO9yVB7xSFani&AM_zUmuYzPl|oyVI-my;kQ+k<4!l+wg%V zRG5}fftYVxhgmkh;xbAp$ikCW{{YLDad!7IMRF!dm&lb+HY8{HKw_u{e)f4d4!LTydZ;gG3terUl20HY@uY>~9* z0I*(_=qi$OSKZx7wQVkwNj+YTTU%*sX>*ErSaS0?rtNhut!Z~_>YD28v`cfd@&5qD zoi|zV-k0I2G^lN5^5cZxAVn_5H;e>3xOT=_$#n#*q(>lCZ%h9Gf@%*hUik8o%<~IB z4$B}BlEyVMpPL~;!+-(>IYNcNW49k9c&-mJ+QsCJqF7~&vnsabR#gCy0_{l%$s99e zw+*xpzdzuTT79OeehOJA99Z;#V~aYnoiKs|#ONmo#0Ilj*O2zQ@hlx5Rxq+r~QX znLWI#B5Jqr$u7in!MJ4%(t^OZAa4h0J5_*CG2GqjdTq~#uVc1i+hGy{6s+n8mc+0? z2n3-Ui5MdYN8TQP<4qRQ+s3{tw~Ro|2Z=RYmsrYSF76m08zXVF1_+^ofC1(51|_Db zAv45i<3BQd{TqTlVlmw68f+dcvbJcirAD?@XxnD^knKkiA1s0nN6HHjK*{-AE7gO7 zrCv2A*RxX5+s-QO_igWOcD~HR8HuY_jHxK6q<`(^xgO0V-!i@WtuLx6_!{O%*0k#{ zE6kLb*^$0*Krsa%oB-o#+wznOKh28R|Nev7uP4?7!h1y3^IJj@D&`@2;)kg~?QTq=^gf zWm@{oC1}ePhjgT+7bvMT(|Xx9x?0zI_3rlh4BilVW-ZiKD?_j1dV{6if{EJgt18<05O4$xavS1 zMhH3e$2b6-;($g$=ub@b=rPySbJ*mA)aJgk&qbrZuAlHv%+q>xx_xYu+gtUs(RSUX zbKx)eDAJbwm%L5}4$lyHN!uXs4!dj#2d;i@4tsaxSLQeT5$%Beq-mCqZ33{KS28>5jP>#xsWC3=%-e zC4}Vu93E8i8?FyQoPb8$_B`c6^Uh8NcIVK3okzLc+;Lw4zxDlC{XYKy*Y*8qNCD>^ z0`w&385zJCAo4jF`X036PDca}PCY$yz|Yj4oOLO;BkvsbJe-b40~~br^*jJF@JJXP z2jF{S>yJ~Mbn19C`M88H0^(yziO}>;XLCbj}d4LGmKuPq&0}&i?@0f;Er!p!gv)XcRsF z0Ede^0fG}*vSI;a)NLn`f=L7slV9J)jgRboD;t$B1-nw$%?oAqm0>QcxI6b=Y zfu5M;j(Zk8a`T?wnByR4)O61sGt|^sEJz1{$DqL+=g{Pw06`r804Z^hIqUj!#&S66 z->2(e3-{Xp0OkJx0_W-77pwg|zpl%v-#F-hm$&EBsIP)Q;G`t~0K+rt&A`WtJRovL z>;bFC&IU$$5yuA{oN@QL2R(2{xcxr4ACNrb74TR56oYB~nKh!^f#RZ#Vh_X?9&M+jem8j2JBj1{7e-@%Ks#_oI315%maSBlzRv1=>LX2h(&X2Luie(;#&Oo_|-*P&SN^aCqatY@P;s=O2#;5Nn*~7Ss3o zb=Q_Rzmxm-7Yk{SW!-;sD}Uh0`P=mT&yoKCYh79Gd_CcfDkB_oU+Q;PD>ErGAhEZJ zO2%+D30mcM6+4dA%Jnty9lhSGKBE*@5|at#qajrChYy7~+{bAL1dMa@0!QDUwQq(l zHJcv@YIgTgz-;d|8yO&#fM@%37V<|ld=_sg+m(}P8+XUh0$1ahd>?aZF};?77PH=hr`spB9k+0K+4E zMrC3Y=w2Ws5Oa?r-O4 z0F`Wt{AT#47`XkBz9VH<Wo`ceZ`O_O-U^kr>Fn0q+sSFR-F*-CZ)LmDEuj(b zo)`p(cJ07biH74LJC7YOO9D^;abL85v+}l|;38h!zBMR=Ga&NM&Vd*Mu;2~=0f#6E zY_)zk{>#xUI#sNJq698n1>VZOQacb4hIZisf>@B*$WnlQ^!xz0h98B_WVMdsM7U+* zJd#6#uE43uTrdRrY!Qy!t}F38?;8qpsRvh;w$-lfrM7AFUt6bc>iXRNiQ$aCb*a*- zsq-~WSv9WFT3u_Uo~dfBZjaVHV{qx z+zrHpL*?W;oP6OxSIZy9FN-o;$>SOAWVVf0&Ul9PM=Yx40suKx1(^UPi){b`bDx}5 z;M(Prn`-T*?yi-rtz@rnU6s-H7|b1IO>@CPS~{g=_dg`Gdu;mO;ja({V=h2t&Kn>F zQ-E?*s8A7k3RsXiLIzg6t68=~6mcuY&hN-V5tSmSvJ3t$!6Kv9+NUtjq5K(k05 zNMMdXF;&WKA1OSXM<2?=3V!i8>JOILKPc;3bXHSN>6MX~`Fq(0MpQ1)rEpGEo!k&H zz-sEFQA$Z_wrbkR-$!?%-6q;eHGWon{c19&cWbQ`RrmAg)vt5RylH1`AA@y~ zy(Ex8(gtQ$Z=F?uA1(;aKQ_>urVqg;&7^2kbkZ2a1<8Va7iGa zl-KkL`y`=13^cM_vaQM8g1})^h6E^Q+kgWT_gC(QL0q}&PY)L>we1q~)hByfne|W8 zSF&5=D)^as(^s|L&MwzYtJyCtZPw@4c5oK8P`e75i-5y(5VTYb}!A+S_e4(@l>50K<{7yo(B-E)1F z00U?Kd61+9&OkWGAP3=z3&+i$51~6P(1C)Hu-c$7JHXlkf<|&n0NEo4I3qt+cyb`( zJ*$Mm<0p;+a5rFMJ@&H!k&sBQ(=c&Srv$E-BwN2r@~3U>)$eA0afy?iSzUGX(KTnT zit5_i@wwkxTd$O=qdTxNdl9jYc8)fV<&R$Db~GcmWx&SlvX$ora#K0lHm^n?ZW-!0 z&Lpvjd1-)t>ZwpzD9+ubP5|0l=26c$8R!PAaFTJjp6W=*+kh7*AxZ9|2PBih&U;cx zU9C6Q(mrk3^|#%tPno`6vAxy#tktfsYhR`PEvtH&-)1>bxxoW?01lf@IOKezk+?C- zZ5vb(3AQ~k(<7!vS8h6hFbKvD6#S}6$S~akTLvdTdn0yE0b#cQ4^xxuIs=+;wM^u% zOn`D*lgQw(C+6;)YD8hbA5we-Kb^!3&LD%*mTSK3WmOFJifU$6CVljT~}NCx4s zhDSdF;JU=0+(6PfE*c7V>TyPZN65k-n`F4({ z2LRv_asVsI$-=cIUX>htYFkX1zzXm+lFW<`3<~ga2|Z1g_}B27%XgLH zOB^mhTU|F$W08!IW3dWGF^~>3?bGt#?J}ssk^l?O&72as04Q7lS%4iB;E+c|H!`+H z=H!fZAv-hp0t+vx|TiJT9-iys-)NMvPtzGm@ z$5kEITdmTwzKs1dx&5Sm7h9H8)O8z%P;#*8S3{;TfjEPMoDAcj!a?QvHBNt`(OB05`2#f>r;?8^KYze)PM)ggj^hS z{j~f*-|^+)O%5Kp`%TuNaj|oOlONeZC!oO`s0G&Z7p?6UzXYt{iTU%T5DT0)FQOHdR;g3{QCVR zd;4E}TbYQ5R@3c38D+Q8G~bkhMnRezfA&41mFaB=C4^-w+<4bBy7uoVv1h z<0m`0$vOTUuIKr)yPzGhlepI$@EB!x8WiDcHOmOb*0q(A*}p9=dT_+fQI9m+cDFAx z{_U^K?Q1o!U2k`DDYYxfNdezGwvqe53iE@J{5%X`XE+Up#d+VwPmF#N_&MQAzZ3Y& zRffh0pq6N1nskOqOiEasNw9f9+%gb;O0$dU@e~{@%&`J%&mM3-;^1(`|WnImOE~IikR+HF<4xAN~BAd~- z7`E+XlhaKWmeFn2$B8Ud+?=H;Hr~m#W|CIdO*Fmj)p~br<2&{Xo0(V@QPkkOZs{Wx z1-24ViUJoI`Gy4~$GVAl4Y#7c+U8R0w^C{iD<$!#O;@)-{`FHbzQ#s2r zwm}4)smTaVcHn|IBBR{MOLLq7wBd_+K!gl1`6TXPyaG=TWzoEV4UGGZzG~e4V7AJCKJYFm@#F z!3UuSDg`I;9nex*Ln0R2jqR2pRAHDf#Du8;NTUFfhW!9zM7=gy%d|X)4!W< zR$OZ7e|u%4*4lKtv+4Nxwb4GiFbVtJ;fUM=HbXI2W3@h2IL_5)+%Q>kn}LD#nR2eu zIADRp?*JU23$azgfs`hisKRxxos4RgLxl0o=Gy*+s}0bI2+SRT`e2z*F^Wd@2Rmapz;Raz+KCL z7@h|uw~@4NTo(s&uF%R~HT@2L#@gJzA^02NyNO&GVzG%;KJtyQ7>3j?S9me7D$RmN zQ^>F9I3vnj?LR0u+7~Qvp#0Jtk-$63;hPHMa8qB%2w0o2!43ZMH&Ew_aCcU#4)cW+HCbdr9*1>zLq@_JP++@pzuj;r01icap$ zY?5|*-t797t;m(gQb;ekcoDGWj1 z0CG-7K2UL8P0f|71ZN{yJnJe1rH5V!;c3-c&$7@gTkX|y)f!xsmB#>3=90QpYr z5%UwY2goHsBp*stWq0nYbZcj1uYS7rd-d%903MBJWbXD_Nx5t8-RrHpE4y#5iBLo& zU?FXw7u=u_M#5NvLYWUmBRhU>J%2twY5xEhweGJTfo&!&;Uygd9j9Ua;dM@-m}3FB z3%ei?N9b;-Q%}=xucXG?Ye{9?z$hd}yBUg?+}S@idV{$`0;azmJ|b!}Yd$X3?#r_$ z+T@K1AmtUu3O-S_n;;Xrg33c@1M`m&F_XgOl(3O}vc=R&d#`d9le&8;Y15X=b+P?H z^kd=JX53SY&T$Y@rIX=#sdL8h`o(ERF>B32>sO`Kx*l~RlZ>Jb#T0H(cPI);BtAgM z1)q+kQIxK_a$qSWqUxqb15a5I);fC2>w zyD}7l2Je&rFnMp3zF<{N>bNcsDp&*x6-K}cl3czDlYmPSR=*QkeD`*}lTq^ReLKH1 z`|?rN_O{B(R{mXdSG~UX-swEnN62QCw}sv1kfjMB0xPj$B#yyLVBuRi1PqeH8E$;A z#HMgUNdVHV_%I&*q<6;w*E6HF1zyt+ISwLir zv6pFNKPWN*9vE#QSAQz2v}9ytfN++HHFUe*(S4Ndzmi)kt2UfkO*rd&cWLOX*WIR? zU!~7__#694c=zC*sR!8au5}FrN_^caS!E(LA(`6MorlU1$L^f$Cno@%$M=)qAMH=z zAB@^$3l5=eXRInLbK1`78>FlVDI{#c(*!pkb=Z82`&&QFBHQjecrB5*wo0;%tM>x3 z6(oY8P8eVxx(Vp~H?Hg64b^S+zYgj*I&P(JG*TtR5|v3n#DXcJi{z0H@vDX?jJP~D zJq#XYR|zEfhSaZXcFjSO9{3h>%b`|E9OYb|;< z(y{$?EvR)<8O&|9k<_ou2G#&<7-idl*&#=l!r+oT_s1SO(7YF9^4?Dq-57{SHwSMq zRa7ddUon_EoM&$;Rooq^UzdLdKj5Jkt)VA}JYfpOt@%RQ-r%+^<$SvNk<9Eu1sjQp zfJG!KxB&?6bx#mpc*^JdUh4TTT43_TQI=R?jk0{bgMqb^U;q*^hQayI&`&p`Dp7QA zDw2)dUc8MYntk=rE{k0*es6~0%ym3ul7N56X?YVDsmwVak@;3Z=@k7KO zEV!8#X)Wwo+BJ;{S(zA}p|;>exLka=U^zx`4S58SJ4jfr&2nsR09MmUH1%mlOa>f2)q$@ts5N_B4 zlHYX|feH!{Avy3XR-I{c)Rg5b-tD_BBkri#+U?tYlI(r<6A4QRPBd`zqfRQ$(M>re z%dD=HpPtuB*J)VegigS#qXvzY5l%v|B(6lVA;WyEcWuD{?jlnA-j-}w5Ezvz=V(PS z{K>{n)$+kOP8$RI6&P9p?vKO+Pj?_eAqhYl1m!mb0UQslDeNXjQy4f8ev z6$OG49|S2Of{+n<;f6~3C#JDqCCjDu>CDx--tNrlQEE#1C2OlR()Uwa-pOy%rkbDV zus&0c*#HBQK*vspt9M=i0|ar09ASt!BhZpL<0JwJ&N^oRb{QCF1Lfo>P;-;UF^rOO zNEqb$d4DNr+P1oCyV*xq zZS=L@TeqgfWb=WM#(wA_P{i`1E4tPfJ*l3gPilu)6Po|sQiCEQJsXcoihjGGx>r@@IcuYH6ueT_- zb=OPVtLwiL?z8Y~)R(>CQb$y_65nIX`%F)1EMT?I2bgNgy_Ger$qsk_kO|$@B-mLHP}9 zds>Rm;%#YVbtS9&@4mLu`rr1fF1TtBy&8A_0KgUd^=y2D0GyCdJZ>BeU;&e!!M!tq znuz)y-oSeD26@ln#xe=TO2i!Hj#se*IP2fAILHU};-SYpoc%v9>C?FG1!lT$r+&Y4 z-_O^%zxDUEugG2q$j*H~!@e<}r*qRF5lMR{ew<_ z5G}j3a6Yi$u$6!t7I(51Lg9fM*@H0L%undHKM(Vs*z5g%weSzb&jfh4Son$KElW<& zbql*j)*=zgk?n$L(!$9WSlP;~h&B*N1P!1Z5J=k(E?V^D-ik|irm~Lh=(lgbW2*+J zx|5Y!v8JO&tfJi1RHl+jn{A}|lWx~<-P=t(r)W01s0S+6@~ZA6;CT&#Pe5`(uNi!sr+!M~Zb88ZAe;e%$o?P{x9_I}zHe>Ciy>ACrF z{{RK$R&R?x2qZ?rw}yO74(t^t?G_DzlA(zwp#qS@B0z3{fHlLWqKloOfc4^e2pM7akXLpi<$bUF7yDJBzwGt!@^w38H1_#gAPSCt zZ0*Z(Ln|n+$PW_B@;AzHoHOB@aQ^Ym4oe^{C^=wP3x;ApVE+JWbpHU1Z}@!s+hXe0 zV+ulrCc;d7(Wok0KX-6UoaY%M@$bZIvLg9b87dU2le6SF8w)vPTrVdnxB%W;5nc}x zS!R}!z3I~F%WV~{WusTJdfj!o^xPV+k;N@vx2&IQ^Q$Fft*YJVt$v#Hp9t=L&Ek7$ zFsMz|j>8It)cvwCle8SEQMvFyZKQxZe&c)`@x`Zre`x(YUtP-up0#JD>E3LLU0`ZL?ZiTA1Q}@v++LA!f)55lI^va^IHc(UZs0 ze)DekX>`0>>le+tyG>bXZojwil}d5TaW|9`O<8K3lfB*BNxLZ zkWlo923|(KN!v3G7Mr1@T|PhH-vTdum>@~`%VXSUKcSVRvCqB^2LsugxfRLE1a zWscHSlG<^^t}lE5{VM1c`zvoDdWn{3Tp1Ts=0WN=|7m zRVceAmX=LfF0YkYx2w|qFNspZb&5NCILuOnk)L~{LBf%+ZDtItBjA&`^Mm(5^DCbN zXctWKO>c6N&oP!a46ho3OCv9u2myFK6+1Qt3G~}I{M0s*sg+`IB4T$&r9!A1ox;eh zKrxIq4cFmZk_wTN^5q=DwjL@msZuuAnMt+w zbW6In&g;LHvdZw4Uo)i!n@axdZuHST+P1darIF&g_k(S0ZFIYBHc1v#yxn%}$j9vQ zjqSEWoQwn^Kp-vw*q|DLygg$*#6oCyxR4mg5ULOgkKO_}EL0uDjl>hlIjw&XOEh|_ z+leM72&F!AG1^Nz4cl98;J|jv00=qR#fv>M?Z_)}=A*`6c5*`$EJAK88nWQyCvt_# zVD;wI?AbDzB^^-A}bD^}|4mg!qmcsPu@oNClm)S#a(mu)R0brp2iuG;C@`G3SM zDn!%TOFK(B64(PX?E`8oVU<}!Im$Ar0Z!qP8zD|Um;V5QJEi)3TKMd@Ok!J~2+q+V zJEJ=uL6tiZK*Mbq;GL|bs)9Uw#E?ofeNWAb;TdhN7l&-h$e1z`zyLFxan9fl)$8(A=w$r_o zwDfkfw@p^JJ_C!g{{Ul36;$TE=*rjkTTVJFC8f5%=JomC;wGMw_|L|Xt4RL<@ltCW zb|;oYo5?@~0t+K@aJlClNdmm~??q_sV!3#vSBaFcJdjwD&fCEuA8^1q+nhF7oOcsqT_8e(=1Juyzf{X(N1_MsTFD1m{A-N50goRy&J0luU}zEUY}h zrFdY)xg??5TamPtB;;2eTvMl3O7T(ll3x||x=Pnh*Z%;wyIVuu!of=oMqG`zN}ZaH zjdI1>?k?8Xqq25g*MPo{Ilj~8nZ?91d0|nQx`$O$x1kHPGJWjrBw!u5uXOO72GSX= z<{U{9ji~2$`nB3)7(j3V0giK(Any4`J*oIdSeYEy#Ieh3At-lXV3r}4M^dN&17eNL zO0aRb;O}V4bjj=>zPo8JoPj&VmyS5VRRBH_7EQ>}63R=ujNyu!?x$1QD77ToR^*MRjtb?#`bPec3UgzwADQuT3!0}_I455POT)9##UYG8IA(Gf&m#L z<{ODE@|F47cY|NNfAB=l8>WN%P~3QZtYDk|6VCv6he}Jgg=D$0mq=?*5hKAr$RLLD z9X?xog;9w~h`7v3Yw(&~S4occJ7>8@EQ$~|S7|33i^wuIf&=`-f?TRVB9`zT&PIL8?rbn3($<37g+upDBf z7{}D)w^R79-Z{x5CnvXBgkS(O#~ty`HsiKQ;~jC+k(zqo@H*u4&rY55$JaOj6$5rF z^b70PRr24zpXum+JsaQNdh4^b(@9;~Yi;%I*F)lO_$XqR{g%9MgvtKW@Tui~_xx0P zaNz#{5ywN3*kIznDSzOQ@3;1{`11}v_rg6oLW3bmkH$7C3CO`DOOSK?O~+dOV*dbw zf~h~U-;PP(3;zHM5!~c>mrTdw*VuA->OUlZ;E@uK_-p?Fj%$(wd>nzWMn3P2bZn3_ z*XQRM&#AAy%l`o6ip-Vo{?gsn>s&kS(JxM(N9I||f9v*G?PTau-&OI?U!J?$s@u>9 zdgmYz4oLY(&m80se~}&XIW_QIwBKKzmcO6nZ$tF&pKt5>=safyiT)hm;5Si{N3YYS zKse-6loQk(`f=MMuWsFV$4+{nKb8UPI`rc``VKh5bImT{l^gjvIRN(r`}M&canysF zYyKa|ci+u*>l-iAt+l_JK5qT10B?jh=NZPi;r8J78jNZI>yg_WA53DunIGCmV|;4x zcgCF(?U2bFQ`!J>OAzghi~v4R76l~Z68cxq+x+JFcZN)h5_m@NIZ|=m-g$K2kiy$ zF6vwe;k?jgWh#Y2uBT?qNF??QcAmXS0Fz(d=ZEB0@b-f0pa#+O#vL*PS;D{$oPnI+ zjB|qADf!+tv&2*Com!Xb*Y4=O@26$izgBzRA3-SBceSw8pP%unTYdJrT`sj&Y}wEyr1Q@oE;HMvY2f6X`k(37 z*O83l+zxs8UY=b$Sp7EoTU{I1rm0)ZS+to>U#%oqJX^!pL%)B3re z3Tu#MuTS91Mbr1Q(e%>qefL`2`A7DZlu3Eut4Snvgs!i2(SpHCuh^9xxFD4U)E~To zhy;^^^33jHFBp?4waO;uISQaD!($_Iec%r*k`CNg)gQF=t%un>EqK>bL8+z1?Y*#4 zF(sU<3tTe>I8w5R5m~-byr=~9`3fr;rMde^xoK87m@@4+AVx+>QaB}m9CA+LGs9t) zN-GzJQ>hf4NULg_yyI)Gy>&@i`X5JLE_r4#MwI2rPOapVv$PXdcGX2R-nunw>2v09 z+9a!dHSut4j6#6q7AG>O$t+F*U_)g=``OE6pT$3kOvCm~_?EkxB0M**1>k@{R$e~f zQVI}2`9i1|!6bgu{?O8&_*VWgW0z&OEW30604&%z1gPv6cVWjTB(;7rd`pPQ`zCx! z-Q|EhJ>n3cx|SJdBLJ5GfZ6CySb>HhAKY-aSQ@KKdl}nTb?(N|+W!DAy=kZOrY%L| zD7)(M6w|Y^e)83{mF=&~?mwEJ*b)Yp%a9Nl!`ANZW3jE$d`)}D1@w>;4spT*BfDR78awCj!$RS;wn+zD10298yHOv!v z4Le@T6)n11JFBg9w|=bsLo0UTI?Bpl>@?Ebqo%KC*4B1Ube-&aAMB-V6~>kjn8wH# zagt03&cLNg1u8)p1$kT}0K{$2^egZO!VcdHEgBnXB$jK3brGmdJvwcBB)$8|w{@b{?dY$5w{F)=r{ix6Ut4@Od9F06;f^~74CxqY6tbufDf`3a z-y-2uu-Y~T89#$R7A&#jnW7NB(J65wZY{LT&Y%~MlE9ypNg$Rnfe z3YBhAS8yLG#|#C2hIs1A!%)!fr1Byc3llVDQ*S>w1TibTISN@wQV1mEfnT2~zJm~`4s(8aKF z(F`2mu{@dQ`?`BCYZbpsd0lI&OLy0EOoIOaT9R8TP1z@BcN?{S+WWtS^*+3^i9`c& zkYpWzfI-1rd1SKXi+|5RRTS+XH_Ugmtua|mDbwnwbk@pHq%9IpH*YK(ARCu0oBTuL}oz6n+z3X#^A-U z04h{541tGIev$BUmAkhf6=Ly?xch*pDlni8%n&dP-0s>pASS+f(3J($PFHbOP;#ut z?_f4b$sa2!oMi(7-znqh-v~w??%4nUf{n_eyJRb48EhQ6Jdc3=f+Cu?@lNcG=&h-M_=V_D`={{yt>g-tB7q#ELaI80To* zydHrG18K_O{H>PGM;IIlV}~jfsN8Vs*w3PYgi=|04Y|P>+qaS|#SkPAazId1u0Yxk z3$ShJhHi75;BY5IAKu-ZXE`B$Wguj5pd50<k zOWFOEwf;{30OV#hu*o4t2pfRFZgv5H4tE@JyF752P6ZhwAwu$gVUncrw16^p;~ZcC zoD+kBL9T(K10h(DNeV|?{G;Xo9{4IV$6z?cIbqI6A(Y@T0D=zQTYlmjoCe0$ImiTX z){SoUTdQ{btd_bq{I%?c(cadL@7l|Ieb3CpWI5fps30IGJGTwPq4|pZ!<=(i zFUx_#-~ch`7au6V7~l-xZRyCxY#3P>b!8YGK_HABt%069^}*#s4l22bGLjGgSoP-} z1`cuxf%kYh$8m#IZ8cjpuUp-9(QK`LzD-!GY1>Qstv{>vdTwJfll&wQMghU$h|UOH zk<^s~1RTB;5No_6F$OMo{X54Ynh6o@6oi^YHvo;m^OXc0pdJTMI+4KY00S&tEo_zaNm*X@?Copz@_jX>Ykk`-TU@qY zeQ$f-?X>kU-rYzXgOE;eH-87pN%@93Bm!^<3d&9@quVC#6kv>zlE8h=co-Z26|wT| zBRzA_v@7z4Lx2F_V2o|r2sqE)$z>dE$<7w4$!J@no!u810n`P`lH3*~fIeI}&T)ZC z?{29lcdEMO*3a>}^X^TowZE6G*Yy0i(BTuATa=775Q=nc_0A+ zAd-4uNTd)~9D|Yafw+T)IL_>Rt;ruU zrDxA&yq}kx95Fd3Dwr93WE084{KJC5)Dza+*@6fiLn#l9xEL86a53C-xv~KVILe{=lZKa=k>wDYgK3k_G?$(c3`?{`Ocebxj zvn~9*{^rOj8D0Yc{8=D{&m#@A91s9y&)(W=5_?iP*f38VHh+X*g$#F|cl^gcD8b#w zr_W{_91M-4I0LQ}fZXo+bJ*_ePCDgHrzwwxQI!R8$OIH1=L!LAXN6+C1v`c-o={f0 zvr6~xXKfdzx6^Izk*s9Xw?vb7(P_&3_3yQ`)upeQKAu@f3a11y4cIACdUW(qTPoYJ zlx}kF?5(ZglJe!2J9}s(mU)<}pn(xwmL-W8!(`_nPUD<$>8+*bkcP5%IDD?i!e;O?WM=@)VT0K#YDm|DY4wN@rUHPW(1>@s%85{WJ) z1Z2k+!}7i>FJsQqQNEVncc)u#rJmmHp7%!IT6Ch@mYQvKrQ>@&+I#JOo@?=6{tB)8 zWZe8h@nzS+e*$W)2ZuC|+<1oK+Exj0#fUZqkg_w(p;~pw{n%KT?sp^cAlbK)hQ^96!rO!Zxn>h`W z9!qQ$9uwwoU>TWs`CM>H02S~^I8Z|ji2=z3fw!i60&rBZKkE9h8%SKS+l9k7-TA&o zBP4;#KeG-UR|k?oZGeS4Km<1MSaGz1RE*`D0G&OJ`Yk%Az0!K_{zeL0Cq7TWpXR2YbQq-QHGFwuph5M=- zBob2~^55+3?SZvOzz1q7x{{klPCz7KzED)1xgpJCD5s)Jz4h{I$y&`?&duMYp2}A1 zqPCX5MWvf+{qNgnc3=x!;{>AQHd&VpFoOdsK+o}Dg=5DJP;5Jb?HM>gh>WGOR|P>* z*$05YZc&`&$Sd!^3VsOq%i|x2V9-1#VJx7sCFY=Gc`Yp03%LsgEhNQNwnPqiFDot# zmHTDzQ~n9p;12-US?V4wwi@=f(FrAz;Y5tDw>)o0NJ6rJQYBmk8D~3-YexxIyL_qg zu2kmMi{b0HOEj;px7oj%&bX&8$kL5^p4SrW)*h9eMw(9YwUSLF?DxIWXY z0EQ}e0qNE{G&WZ0XKf5tutcZJiWtmLsSN5A3?L&c0^wAS4p#(^Lkog*C+%F+ot#oj zqfu(@?{(8(T^c_y;yy9{-NVwt#|`Xh!m6m`>T_OJidTw?NhI&3?(ULy*OHpen2=au zSS~Y?Mt<>szRQ#$N}b0iaLXLh77QC|sdX6(xE!b@4$xC^RzQAT?99BC1xZ%)Mbl(1 z2vx{a%N!HRkQ7PFxFb0V0R)l>&LUkX2RQ(#11X##&dez*v=j3Ni~AZ7!)VcF8LrAsUL&R@J1guVp5c+r6)CZQUzvbLam6im&~X;4N}Q-mLHxViaM9 z#bzoO?u;l^ZM$0lV>k!#ruqRr%#*e^OLHWpzWHMEZaEK)#o3qTAgKy5hh|~>QTs#L zc^?gRHXBAGkSI(mE+N~=0IC(}6ksc1^S}r4DCvexrQ-mcZ2%S^{{RpN48>45BoMB+ zEsew|{3pcv&E|MIE?(>~&TcPj%1K?>E9kX)TW*&>&|ji<0ukX%;~izsh|FV3?kfDW z>8@1UZd|_e`Mn*^7+E`j8Ak9(`N-Ztz-1CJ0LhVowGRcEzH%9wY>p0DI&R9U>{FH6 zxdBmPsANeI_e^>i8srkCNC z)tGJ|BjrGM$qYVC#Iu9^K{q1c;fpy8rKwuUK2l>~LV$Tv%_696q$1}4C}IIt00fMH z@-uelOg|~dm`Dl=kQihjF}TPq#3^B&q~%Kzqaa-;Esg^62s=3+DEULGjmo!9R@1utQqkQzB%hz&k;SYM2V$r~BJESW zjqF$EDoZZZQ5y)z1eU-DBmx))(ej^{YOxIZGY$hnNXj@bZ>#C*XNl^JCtaVGtA zT{Y8Zt=_j*^XT7r_B~r`OFP-x*1eOmv(wM-(~lO}bt#hPYi0PZ^~6lg85<%Qj?3i z=+a%fJ)cYNyWZW7dbl-Ja>^;iz4dKuuN$kTo7a7;w@2$Ig1lX!_}0n`oi^qMpUMQl z(#Bn~$h;qzg(oevqZawuwzds+<4To=3YN&_@JJX70o(KJ3YY|-5AxUKmxX*$ z;tvJhrT&$3ENka0t+0{&w^j^YT_YbO$O`TmQgVba&ei=3_)+oy07mg#QR$lOpJCMF zQxi0%IRr$*9Iye*?z zS!ngW?QLyquFYzC<7pB&R4L`~7#2H$7>|}|211fEjip=yCEFu26kRG+kxA=-RI;-( zj3zn43=9&A*(G-~Fe4|@A+}l8DWSte$+=2^QbpmxU4)iJRXamC8-`hkYMAMz0u#Ij z848L9)AAMo<98Uugvo{>Ss17RZ8X~2*NRDh+pX^I*1la;wP@n@P;FhmIW*PYm(z6i z(f88pQ~T9YF@cb{1Ft;?sn6;g1b^$o*I{|_+2;k!xBLuDuqpt3QByo-i z@6mzhJm6y)91<`CX#j#oLBP*V{c+R)Nf_XB#tnYozjbE3yFd63=6@nDyG?dox9agUawuX}~V*7B~c)fCr&C>+S~w z+pQtn#@+@82LSK}asfR0`gH4>cI*9rUSjXrd2F=P&-zEmKes=HwSO7@&R#0eG$>Nz zQ@GUpGc*xNG;pH}O?t-aL%vYRyHX->12c30o-6rJ{jcobPVo1LAe#$uXXB3s$tRNO zJV5P<^0LSBI+X!|LPG`slg>Y>&-f@M&Bdqer|~LlTZ@ZH&}b4Q_R~pkJY{wLIkOaz zv~CILcDFe_MSm$DwJd;qJ@JVSt>k!%!LtIzpKjU$HK{cD2ZQdtH% zO~u7lukNJzllC-S`LAZ0R<*Cbr{f%VDpBGbJ)-@i!{M85)@z=nl2*EFTf5rM)<3o% z20xqN{{RWf8;LwMp~y-8E&64v6Zq$jbLrl?fJQol_1t}W06}hm`T#vS99P4cJnx78 z2aq3@PY3vE!Q+kkHIoiH_v_ythP!1720D^Bz&XwdIOGG^p1#%jRd3@|ir=0|EA;04 zHT-njQ}yf{Qo>=L{{XtA-IrcS{$5=P91Q0?k(1Yu2pGv?KOA8C4oyM^Pafy;ALplk z#-}*obk0c_LJEY2aNl4IL|rl{5dDM$l{QYKQGItKI6Uz=bovNk~zSWCIQvYIoO6H&AD0+EhI8n6&o%Jh#T%=O zuZX@N7c3@QN$spHRH!BkXzk&ZB2)!S6C{#5l34C?P<+O;q^Y`*b4|rG?W(`Ll1;9f z?X%YDqo)Uk`psEWlw&BWHD@Iz^s?nrNju*1(Kl;+k0N``Lsz}jwGBj>Z!eI%`$142 zYB5z-005u>tNbdtTmTe)7(zbH@x#NYoJOA+{B)lo&eF*%hHMTF2hHzwnr0yz97)bkI=jVU91EPot)T&yrbJFO*r5s`tCa0wuC zeTVK@1pfeV)KW|8^lcrKQiNT#y3spFeHTW5Kk+3VOhdc7jv~61?RM1Tt6lbMcP;fl zFn{2?(XjE)!G-}X=28G+;4#5sGICqyP0J?6KRu6pxwP#s`FTTEs@9b&Hr1@RU#oll z4qq1XSas66w%_vcq}Sl>v$eF){jL3_B1@mycfm8J@FUhV@`d?QuVm_^22}(C#9@_> z%He)xRX>g1AdIk=Zh0keNh{9q061Ks7z#je;dZtPhOgMq+9p#s?4jWI;Z-$VFTOE=x2{ z*M7p2^H;ymrIWX<+4S5I6)cuXZyZ&0_1{>_&daOQeXcLTm;v#spen)dY_>+pwmuo8 z10^s4*|cuufZ73USM=}u6WFei`$XJcLuU-X+FCxG(jW~XK(;o{4qGBJ(juYTfzLTo zas0~sAVnT3bA~br>`D||I5{Bga@cICJ4p&(tmqF6nPro6Z zTGAy53Xpj`j=9GNf-CYqE5uI^R*hImDLFwKY0NKcD;Ba%9fuM?IV&I;V5o4 zMvO^jEhY)?jHcBCa2Z_iabEXr1aNA5e$yX4#fzv2F~x4Z7kbD?s7Nt zgYkdb73UhQ)RoomeHM|2FWK3))t%eE`XlrTnNAWDqx+ugrd25tEz!gU$=JALVuPnTseneh2|q7$A+@5nmlsFqK-f_U&Fa zNx0oRNnJZG*6Dj)Dh)P~1Z)753MK`TbG!Vbh>WC3@UP*5m-K1_l)UDa*c z*%EF0CRK%A5?(|Ru*lk{CASbTHns`EU~^YIJ_@vH%|bV+1lvm1Yh7)kTHmGKk4345 zsgG4B53EfnO~x^Dx@(m**L7y3le2GiV>3J}?bm8sp5(ySy7&B$2 z7?US#j;s{na8!(OmQVp7C{a_%t}Kl#GN$M})iNxDC5q*D5@iL5+&CF#V~)#J>}g6o zstzjaYp#o5T{}H5Yg=8pv8gFarmI(U?C#S}O>VYNvPVA)hd-G2}((FsdFyrSzRl?C2czFd{-A@D^$Zm zm1rotrkdtSr7CxR^KD&OzWTk7G4Y67e;@e4B$zWli8Ulx9}(_Tc+4A}p_CDfr~yL~ za)jfdViQeLitz;t<*MUz0#%=O+>wql*&r@hl?R#rB3}3kFBo{uHCtUqEn*K4YWr?& zUCK;F#KlJErN~0fD-%3u z3xHS*F=EY@8@CVv+qXQgH|;!EVHLT8_8%fiRfK4)iM$q7b;r)-m~t2mxMd|rQ5KhF zVsFLVQXu)yOd=ctJx`8#__ZJlhriRw~{&P z&kI*)2GhQ-?)p7%%dNU-_0ys|El)_(B)`zodpmzF)8^W&Mm1j-xpPxBDfy{4@3Z zsoSz~lgPbs z-#rW6&Ah*G2&OkU}{{RW5h6YYZBhcXBj=1ak@B4g^e`T+UBq<;t z4jup*{{V`YNy#O!2_O-U2P9-16Zskc00fglpSCx~aLa(-1yJ%yB>w=yYoL?218Knn z1oO~vct3lVyKr7+o}cYfcfUlaX=``8Zu>tY^GxebJIeQe?DST))%#kjS8d+ikLc&q z{Qke^{2YhoCeUJXgT>cj@=H zYj6Jm54V~6U-kW5e>okpGmiNu1d>NPyOW#}FfurB;N)PAFaZM$a1MFuKD~J8b4^ys z0AM!&kH7nctOjqFcs=(lXZFqk_DQ*U*7bB;$XFP#`Mg@N_zqLf+J}qf%w~9Oq8AV0xdJ7SHF-aBKJ_{k~&Q_**{**zguBEC8f} zM7H?O4{QV11o4p7{p$EIm+)_e9D)mYb3`W@&Q6Bv;Szs$W@)TYE|A zwXX_Zy*u~W?)}~YyHy?ZSZGU4FZ=1GWY+IQ-o1MrIOGN(4u>EfR~g-m z)A7K^PBEUi=O30j^ZE3LdE{jBbF^e<86b|Ja#yAfFfuVxgMrhhvCaoU=-s_WbBg#! zrMo`9dTIFYwe(j%N$Gvp_4)okC1(ObFM-8O04_-M;QC>?f(Gw$an3rmkOo*ftMw> zvX!l)x3rgJy8Qk}#UHhO;I-BKCS?p@Z8K2_&4Ch1W{-Ieaq}u{ESY1okrm7#eAZLu#~r1- zA(A&z3h!z66~P3eoQ!kvmXRH^N4_h6vw#>x!)m7>0rK)bP**&XqdRaDXe9`mYO*Gy5U+kvw5y-Lfr%n!%rCRfD&FOhvTXlAoyK41Ef_~AmGW;^} zdj;G6hRj9@W4H{G7a(!N=OlI7NFu)+d~+Mz{>k4H)fItF1H@p4z&KSW8C54Na4<2r zDdlSO6uC8NuKy4jDl>^LqM!{1fytd~UmuS$wf1!GR>PR-AwUTovS~ z9SC8ydB%L(_S;r(jUGN=V;}J{1)FdzNrguY$_@!CPIxjY0Es!T&2h{A5a6!u^@@(^ zB=2ip%e|Ykx<6LRV87N%@4gC(Z*TebwCS$?T~AH@m9&F+Ne%4xd+PtjN_l@eE$G4sYa$EglY3~H!IrDc%+iHnlF>u?IZeYhVp87nBgnR zt6b5HTve5{R=w7Z+3nMNpF()c$2y$954S4YM3)vWiMFH39NUaIZccyEb( zO>Fv9%Exqu7Uv)b`BQdP$z%igv%?MtJ9F|5zT)Eje53))#hLuPF;d4QmLL`&Arb+H z;GiwH9<$>4OcMl+-wpe=+q|I#&&!ZgZ*d4{+HI-xe8w=q zu-}Z8IbiwD7XYJf$sb39r3y|i4@ucs>8{JRmTK*E>3v_%2~ViIEtV+(`pvn=!mUxKH zHspW-Ahzc$bB~+m7*cuz`>FdLBaekTdVruSt^x!eX)0K4S7JjkAUObTEXaf~-CSAR zo5DfeX*+axacfm&-s@}K_BF^;`rD5!{{VHZn(E@)cGcNCyRPj$E`66_ZidbfB_1;l>lwn!llpw@)82_0|E?W5b6QprAeu9RPE<03fHUQ=Ooa)6qY7DvmID{u9B1WL zw(X+szRG-0#ZTgXlZK}J>Dt`8^~n+J1a?=ye^ z1ds?J&(VGog#Q3(T82`aNW$~LDUf8^yK|A1Y>=aO1e~7-(PJWY2tW_B<;MlLD+SuW zICTU8f&eYS+DT8Md>;ybXj|QZdc@XX@Ytg`6&O1lmP04So zhfUv0-8I?YZx=C#xh*YybXRKXJr~JuW9^TJu^pDBa=Uf{Nc6^4fl>+iS3F^c1~&lJ z^>>G3ArSD`D7gUPfZ2nQv}ZZaMoHW|u&b7!YyJSPTM2 z;&XxBhw$>b#%kLu7}Rauv;rGwV}e%&K|gn%4hByn4awAn8~8}zAP13?mB7it+yEes zj5s48is{jAl3H)Az881o?_{s{JDyrj+ji2=OWC{K?XKIqy%wmFG-u-=94TI;o>1-F zMhPUG@N=|uAXSBhSZ5(|j#!Lyx28sTy3<4^-g^xI14=kY%%rWc82N}pDag1&Tw!D=mgMoq6 zatYh(la7E6P7Xl?@f$_B{KRzmR{#dUP#2O;PTnxN&T@$41Tp3&XSNPbImpd#d0^mR_YJ}MhEyJU_3!9#dXrJS0~jpFBpiXx4&E__J3-?)#xhSM z3NF`MC#roEdv5J_WX`Cj`BP5%b6=*4>rLM7%KBQ}PI2v&@wX>;QMZ;GMoD5b$RilR zA9(Kqp*Gnil}^);!)eJMC@gY8ILBS1AH|bh6T(3yhIW8PaCeXwB$gu}0@>h_KnE;E zGstNO!j%j-$@(u=U~$}>5x~wl0ByV5%U0}`k=JEyw070D^arP#mY36OMeN^2(Odhs zXDZNO5Em*jfsP6JPCD>cJ=+J2 zs?m1WszOOOZJn0)TlRXZyKVR*ayr(W1Ip9MmWwMp!++FWTE5& zIuN-7aonQ~pFmka!RcK)+5wZ24l)QMYO&aVgq0Wooupu#4Zz~78)DdE2@D2sNaU(> zoD7l%M>!lYC$rVtM$@(L=^MLtdfM8rU7edr+3dG^?7daBZu>26b2D0&93aTxZonDJ z;BFg&_W^c+(C}+EYXo94q`2gtx)+tfZQ0y2l1~MQ>{pJ=TM`K>4$-$ILtrk<-v){7J5yL z_p>|URES|_<)mU*lA{?JB&a_z&3_L+x97+0NA`*M`{I2;FJ9xrUK+l;(X>dJx7#$( zOe4Iyk1enSbX#a-%Y2aWmU0L63I6~ETKMSS2R~;$Z%)%LggXBKiV<|JJrRhQ&wR$- zCLELdr7~O`s5@=Q$pF{!mMq#r^3Ft#@)>2E?Rg$jb0LtsWVDRsq+p|S4XKA2ZSb`2 zxti*lc6a5n{%zZOd2=_h=i?^aqfReK>e909`78M?`W({P`DvY?qZK<&=WUr#K2TMZ z5Ew>KZ~*{hb4KFO%%B9u(z|2as@rmzEwwTfFkP4!1Q5xdM|1XAqzV{5RgftKS(TK7 zl~&y$QM*1~0V}nb1<6;*WC1}aAfkdMJhI zi`g`;t$)|4&kLo|TWecnlD>&=bhTRRt32>&j*8x9*J&{PjqCu~@|~;v19ss2mnF9j zO+@-gj35D!kf#jT$s2b!$OsF90Xvie20LfF`!*D?R@?{XiCa`{XI z6+Sns* z9C?9TXl(7qPs)C7NUuR_B@2>98GurDyXBTM!B86|4qGLeNi2#67}U71+@oh*_R&18QASoF@+56e3pH8<*Hg|7MUEb|!v|4===xG?YX8T#iJ*~@sJ0!KdZu)3& zvDmRpvXO!d9Gtj26uAXK10O3DUVtvu83qT_fZVaJ+z&AnfKCR?Yz%RNK2U@Xqdvc#ABgCu~&v2cJf4ii6Le!^c5pz(L@72#W3sEWa+THWef zBw)d$Ee*0cMjN;jF<%+`E~#5HqrrlDlqGjBcLSvfEu1``XrO_Atj{zM+@m@sC*0 zqf(@8-Y}0NZSNbUdq&s0*!{8nmA__>4ty8*b)yLM_@vh_Z4!CzXMujw42WcDSi0|N zrD9#!u`D*ADi;Ijo1G+*$IBlvU=syH424!k3{W4N10x7B3FKF^og_sBFsyiv7~+Wn z{Fn%(Km>LeC3AqM5BG9LbLh+q5~LXzI*=8eGEs`06KgbX?m7%H<7w4A90R~aE#WEB|586iDVx_)<8 zT_4SLchjzyW(pFGoLhQD?ROjU-)5WW?CiXo(DLZ?!;%C{z;Xe|Bw-hFu~I?Deo!)% z`J3erI!l#9wO1Iy!DmG*q?QCfDgZL?QM8jnyP;wW6yp96k z00}}L_Bf6P(o+CngOm3O&eBM5e&Aw3QJj&GC8VD-)qGCcEBmU~PS2*@{Ec9w+*Q^6 z&i?>v&il8u-$mzr7s;QrFNfNHhFY*#PW4F$IV?ypF&`+%4}~R|os1ZU01Etri%T&D zV-Weaf`t#v+yzzg$s_I(L*_x8lFN}_zyAObyeR%4@K(F0!*49cTPJkbh4~0RMNp+q z0a3u)yCZSW&G@URXg}Gvx3+Uz5iO!zEZ*KZFecgmidbiRvS7K=+g-^lXD(~i-Q z(S|&(K_O#M%^~v@Km@MTW+WgXNY3L?Nn)s>iuDQ=u)H#a!aHtaFsL_V0*nKz7}-kt zOuAqyq-QG1pn~tiD`$AxPS!7l_5LJgBvolNv>C*Ea^sZ+*ljyPJZgY3D8%qNKQZKH znyi;yU6SmQQC-?^s?mBfT`4OhmZ@l-pJzp9cYR)#R?)V3+gOD%t0w%7#m5c`t}b0{o?LGEd7?=F>0`JZf8VuK)r`U{tUHmyj|@!P)?H>;+mk*8LudCDFFu-+q=) zTVBJVJrY{kUqyejh89Q7r$aeVmbZ@k zX!mVht35j1cj>9g3lhV6rs4{bxRwksidbZ*2)Nn^1(fawk}#1$HLS}$tF%%ht4B0t zkgg5t2&elv1sdHwOx88Epne z;Gl5PZNSSQL%46;QAXT>ftOIEXK5p;8>E}PysWKjYpQM9?$5HneBB-5(ras3*=n0t zYR>O>cGdJ-pFn&i{i1bm3ca?M;-c5OVQAy~OoiC2PRzteTLLmM!ysd~aAhp~ev9~1 z#J(Q!ew!8Uje7;bXw}{|c*&3DPyytzi)jP{(T~h`Wk=%O)w4KV$;dlK6+zjz{bPd7 zkl6sql{^okafVDe&%_{a(fKH}MCzewYP3gO5A%d9jNgKZRDii|xLlI__ znrSc7A^s`n@*IrKd($+uH7r`I5U+jJH31R;L zgj@EB_+LD;un}5nJ|(m8{qvW`)HYrqI&IGWcphIMIDJ7iqqbSHLgVb)x>tD#PihtmV-?es#f8ted;m;646~^r=#2R6B zZ~A9#e{ZK8wmHm*H+;jUE5bDo_$Pnu%kZ{wf2DXE;%1g@0dKZ=TK4n@D!`+o_;XQ` zX#I2LOaR8x2o?Q5{f&c~{l;TTPehkAA4SngJ^EVu*#7`MW1nK_U)$lDNw12HT0hHX z+|-l3_1|UO{@(F`dYof!3BcfY0DBXR^vU^X11B9ZoS#g6abLsjuf*^8DKEjo*0x^~ ze`pU6i&K#fv#NNK^3fH1y|Ei_65HI{kN_%BqXy+c0AP1|SNs)|{t7|hH;x@g##(2I zpojp`c(dW=gLcjpbGA#Z9t|q(n1l0XQu*o01jFI%Q~n)VGuqd3j_oVGB({4m_YuXj#Cr>1@=R^C+2cr%wtma1T26OtNgS@! zB%QotCkv9_$_MR91c~5Jh>%Qn%N_p!gC+99k%s#;0gf3#+#5Tx0aMo)&32y>f8e*j zwV#T7AE@|C#(o9(TXAEkC`;SB9UsJcCG3$!B1)x|EENrb`LXdQ z_S^Aa#+z>u>6*`k^ouLM6yIt0dZwpkH0X@lVyeLuHmr(cKw=6DIV!RgXLbbF-SFLM zWqDR71Br`_>dvi5P8X7HQKuNDt#sckuJ+#N!0{durgNH5%rNq_AsSTOI<6eiP@8gU z(s9vGZ8cggkMunFNjIJFx8c0Jo&E#xjD+WL`ScAvk3AS34&m&3;=LV1G05O|BxLu< zCy)nXPutBbTvuFGkr}jOU;Wxw03*t5JjQj!OjSIrM27|9#-FQP$)^up~9V<<= z)8?ATQPBSYv?ZF(a~GcxlF~V&M)IXn>$$%1@NfJSd-fgi;e|9W+DGBly~W5=9jAzO zE1wHo?qZ-TMdE8+Cu;)1NZfG89k~3*6@|n`wOKkfQgf5$l@f=bBVv|GhMun<}+yNN-75v+`WMB*)aqnHW z5x!vHjI(75?IesG5P8VQPCKdRCy~Zc-ZED1pXz!Mt4e8dRHr3m*DRA(ds|(8R~yG4 zUNPJk^UOFWk~rXJxavXeo=+#g z*QEadU)I|iZ`Zcnzu~{&Sat^AUiswr^vK3X2d7SYSHpi2L@<0v@f*p7*{EB;?;I+q zlFHPUBLI!tfK!5}aOaVqxzq2nxNjh~R;+>tP6|L8rT6b;Q`}qhF$$5P>xmJ#6VjBZ#0DQZ4lYsmL`H2~3>Y!KP zw~2pq`$5GS04zTpb><2QW0~~XUm#=!IXvKCkVwxazj~mATU)$kU3Qrh1Qumn{Gbv^ zBmlW2=Om7dYw$0|T6U(Nv_7M#vNBj&e097i#grL5?G%OBp?4BXV;RX{pdH5p_P!sA zRJl}>PK_Q}J8F`GSLtNBThiy?TuVFRCn+y}Sc=WA-u>E2-5U6>*RF@=_xu-!Cs+6( zK6Zis00|6VGM2z=Yg3Y{RJQ$zoXTYz@v- zhdAUgCcmW*_%8IKMED;m2>Y*fv?ahLnAt>js4Sxg9C868uOmOrPlt*B0EF{RU@^Au zD4!`(T0#nk`EUuzP)^kYoHCF+4AStkxr*U;W6(Y${PrJbejo2OX$0p^JzV$(_yzE)B@)E-?EIBnueR<9eOL{b0zh)!+DZ9XxIzKAwFY8qWNt?Lxoy~8!+^?J`nsLOer1l#DdB75sZ*gzs#uA|b2&H5WbbR) z-L zxzeo^SZUVMB1bEb%+p*T+61hr44ag;H-&CCk@?%GTX?F*?QTwkG=e~&Kg}RkRzP=U z3orm;QpXzrP{82V>vzTf00_^fUhDdW)zq4c>Nk@)dDTm#2+|1QMlHQcgvP*js;Uu@ zfImAtU#?t5sM^?C+dEuOIfhj%&J_!V+SxxVum@-*Rf2+Ypx41y&)s}XlfqGwT5`tm z^;!RG{+H2^hwZ4JE+(1E43hvz5Cn((R zA(b*gQ^_^;b;g1vlGglP!oO)$`$>JQV{x^KL?n!1R0Ed6{Mg%y;CxA^+5N4OJ7k(U zBtvmBDv-saEr4TSI0txsSSdLKoT+m1#wsc=qfu{0o7bz+?V+2=v2;Yyw$qRRP|K2_4367Fj9{Ns*1RL5oem4@Sw7EpFCh}gw96q`b`}Q? z*i(#xFu{RRcK|Co=S$P$kXpn-%aNH%4=vYX6fLlZ^9wFX0TsHH9B0v3suGH+8jW)| zWxKlNO}+JgYh71VVE($N$?PK368EC?Z{6ti(QkEsHoeo%b$u&tjdMBjY8h$QDP)5@DUUXLhaV8#KO5<@kDo%ZI!xOjW zza5DowYE!fD_c)%a+eDdGoWRR>|76+mh#kL!FDPD+&*LNKk!H~c?ZW|iQ;8t520S6 zMPst+GR(4>Y{Zgf8*>Lck=b2}fL25*6@qh?*stcvN)>0L z(xlt9+eyhg-&?IMqJ4F>kEz1qu=B!UV*VvYl5f&5O*Ye3cI&O3+qTr6J0JK-JTeHC zLtiS-8#kF0iWIpH1C=|Aw-_V>r9zBj=;-uqD)pz0ts;kW0p}?ZI2%f2gyeDplB{rd zgUH2rKiTc!*7U2Ek`}kIxME$3`Frw0kT9okM9C$FI*>@(J*FLQCq#9gEsM2PayPOm zP)6k~o=IGHKnV&)L0+Y6(d2b47;2UDP3fv?%U#mC=({{79|JdE+A4g~nriJ{%_scZ zUw&1)=-anaz8KSdgk-o|b_y0bG9)7s0J%Lu$2n1kKQY5#57Yku_$1zu9iQ!^@QdxY z@yBlu{3Wk%EyDsXuMdRvn5`_9Nx&XtfHPb9L8NC@M8jaG<~%MnR*E}Tdvaopm7R%4 zP)iM^x!Q8LU8>knHv%(XqTldO8*vZqQTsl|WVqS?01FpMR+2Yu=3xx#p-Q^3hEfqG zTonOfz;gT_WrQ;hSDhMYj$>%apf z4C4m}I6ZoH7|ucG8)_l}Ia9SpNXB^z3Fkh%kOoImK|G(=Z*|(~ZQs7X@I4Q}I`{Se z03+l70NdOX`z(A;3IW>|g4}`p9wE}n91NUban}OBB){O4d0*Qb;_zXHZ-O9`_qiT1 z&<0TCp-{NJ9j)DYw|Dt304+A z+c)B{UO(c(e*f8j9j@#KND@y}cy;AbQ5vd4Z8%;VK!r!SL@1^F)hHa|4a6}aOm zZ<_L>ht*kH)vB)j_to}E?Ee6wug{+r49sq+-JEsz!@MDoDeIRq$fa=ZWrM(wrFFF&=^fc#F;kh^Y6 zs|*zw!1FRs2XW^ZCxQnVU~Bq|{it*Q01A6s1Cli@3q5jw;%jYzfs7N*dUAgQ{Jj3w zuz~SEOd%8~mcZn&$t9$~KX`$LDnLGiJB|hA4ip+()^_I|5t`Jat= zjFZf1t9(=`JKFZN=Dzj4y>HR4hJSBm&&3~u%)4A0dt%#;0NdpB+)j3dYz}?$TQ&XR z_$TJ@UxZ2(JG?cb6~R69t3#afFaa3GInN~Y{t$m}NXPsvPlM7P2)2abK_!S00iU`^ z$mfxT<2kSH>%b(pfjk)8<-9GR9u5f3lV^}Klh;1DIP|XrjW6|x>m_Qg*R#`-o&J7) zosVOHB$Q^fO=07{mi_fcmbSZImfy0!Tyii^%-H}CF^+qTjDwIHkU-DM4sfW$o&7Pm z9OP%FK*{+=KAFMitwo#+41wG69CaLa?bI$0VK6!4obAVafCyeXaB-aD)C>SY_(kh| zeE$Ge{{XEzAEtT=NZ{mhNj~F@eF4eO;07~a3V*>xxc!x~Sm%^hM$v^Qniyb}r z?~D$-n)|GP+!2oX@891UAFX^T{{RIS{{WL_*RlZv#9kF0I)B989Fx#?AO5Z@*T_}# zjJvni=wH*GCxyid{6Cst|eXI3P0A~m5_~+2)j(r9QJw<+1{{X=xNgo4#Bq41n#%&`CJua!yolEO`et_NVQJE@acZ6$CTLvB`C-GeCr@ z$s)mR8c1+D#2kph1cKy{0Vcjn(zJ+e?IV!M<~x#GEO&1)DHt3R$zo0k1;IF6XPYgZ zIO8yiR9vSjuzcy--uzbgduz3ww(kD2tvp3ck1$chs8VpMy_=4@!8faS)wcH0w6|LP z3?BS==As^oNkkAPrlk;b^Otbf>^q1 zSN_pWUEi$Yx9Z)$UZ?Zr`vbWD0EOWv?wkE>&&*t|)>(%qC(YopmH_0gS#sbta6h)g z2|hIV>vlwof0ZSe0;UM^3%ecJ!UQ1{Fv^f0Cc5v~O{a(BjHP7EUul&JuHs7lplt;a zRf6Xk3V0xuJ2ESe{kEB#<4=ykW&q#D#IvJrK0rbN+71X{Pt2jXRw~4>{LdREvN~?w z>%`3`d%m~2*S42lo`0?7QD5sFclMqRmoi#w`>nj2)wgT5^s+st_9}O=wuR2ykvqp4w4=F$E0|p}-L-jjO z<=9X!&HT@P$8kkIknx8Rq}HVii5-ZL76d9QhHc(zF(ii>V4#4ezo%c>Q%1DYz6IK) z+;KG0Yqu=PEO~JoJF0Hn*w4o|EHvwV8e$gF8tZKALvN5DDbS!{r5IlRH(1 zM)d_i>VKWzjdu5w_^(t+E}m9}?h%=Z5-!(bq>{}do-pjZ7QhN~mHwPOdtqTWf~O_R zZ_}kQ?G3eBOz>lfe-Xi4IA8(BSLPqiU&pN%Pt*Kwc){h5?J~1V6C{y>T0x!6>=km& zxr5_w^*})+*NbZJ<67$-ZML3G-r9Cw zo_;#JYh1k6#oj!uJC#Q1K?LW1Oo$3IZe6PFmLXX2;`+wBHQZM4PZFpSMTI?N`v>Y2#OIADi)9H2p#Coe%o`xhTPjXdC$B>blP1RMq+4l}fn4hX>@kJtDiDACMZRsR6k z>s@xzowmN}*8O!q2Jr??Sgf@z7uIOoXM48Y-R;%t_O|TtZyZ~!S{H^HlrH&g*np() zRRGBWKv%{_Gqtj$2FO3SAF*cxfd}G*iN-+*H1d6ptb_gW-D&Lgl562=HcMMwD{17` zi+{1~E%)2TBOo2PQrS{)6a`g%&5!SSWMru;`@kBuG|0gi`6T&(3-cG?#tW$4@++6|2Tg&9C76m{c zs%6PzxDk*?%R-~IuYR`E?6|AnvhAkLU0YwTx4hG~?&;p^;rCvt>%WtBTWi(m5CeV4 z+{bBPz?DBZTm<<(QUdKN836M@48MaCaKHe5itu%~`(?O1ZYkvgRA6q~yOakjg>Eu{ zvo=Fx9uJ~hvAKw!m4uP+bzGL?hTIsw@w8!p3jY8qk+&@0NO(Tn3+r}YpFUPt$&P+d zat{5f#IV?>EXqmw@GH{6O)8Y$?aep;0D&t#)3%RoRh7FhD>IGbCX;$<{SsQMCu=79 zecOGd;5bIeI2?pvaI8lJfxrZmI8%T!c`8rLex&g9ZSoup0HA!J9s*>ZgBc(LjI(4v zJ$`QR6f9ESMn5qKA8{c^3PuAd87vgxNo3rmi8v?e&ksTvs;)@@9(cjpybbs{CnR(X zaxe+W{XYpM?BTwVi`w_UD@y$=zHePRKg=2jx8AHz0$80017X8`j&arRcP_`)$)}Xs&rl zYimEhMew(6ZnbxA{{VR;NKVnPc0Cs)VE_Q`&Tuo4$iX9%SJD>3kP3l}=MnT#@RRPpxcsb4i zWB-)*(nQcJ#;i&nMuQM%E5URyPPH1IymM>|GN-U!J9027h8@Oa20 zAcD$yD+k#?Vglo)K>+6pgm9SZ2g-LGX9FC8(U?k-7~~Ka0QBJw(h~zGjonG%zV9_z zpeF@@1#ygV!6-*@mOKzboSfsP>X}Vz{uQF@Ygy~k?JN54)Jpp4s*H3?WRv;pqq=tM z)g0qmD`14q2mwc_+Di-pfs$}RC=VwGBA{zU;dulN%1Sijct9N?rM$Z9rI~6kO`k<&ZmUgiccT8C*EDS7cH}SvC!8Of34(WI?Z`haIqpN_ENemX zl|i=yA-?eYpy2RSalyt%d>pB@d#h<0YPZ`j?P1z7!Q>gh0QKpCh8tKY<2cT1oE|*z zbI1^DR)x<52_wKDfB+@3PX`BYMg)z(3goMp;OR|MtBavdOYjY;un$ha7 zZkIc0<@nmsbt&O%&M{VUjX6m*?yIXN{%!u3vn{6>BO`zc;2w5h4o*%EHjX(5f^ajQ z)UFt&6dlX}2cQJ}>~cUHxFDWE<2W5Xz22XwAd=GV8NqMel#zCj2si_g)Dl1kdV;_L zIl}R6%4mKY*EMM{i(#f+O}Us8y&-j0!vcB0!N)xgM_nU0RONKsWf?VYNhY3=YgKh` zB==s15~n&Tslrf_TS_f7^tZbF+g%cAMdgS#>MORzT5x zrdMk_F(3ieN-S4W0!o$h71wacKZ@qj9fz3CShn;5kboJHfPLW!1CXE%q!K_`4oB1f z0JWEnC-{r|Lwr*4D^6}9e-mD5R&3HXQrAmov;ja+apuK5n=(}zLRf7gzI9j&F$Ifm zDJcMk+I~{0jA2I711OLJ0Af(e5tm#yINlA?R0x4yxrf=O}dp_rPg|H zwwii(O6bo^d^wqbbCD8)cXA4T^OA?mVVB-XDi0?twIkZL5RA5V=p>JR z!N>;zS1tE`Qdd7V;vJNr8B%#Fde_lE1;1q9j2|5@t=GdI9=WvAW-Gs1)ZmsoMGcN^ z(_px{Ct+>jb~qrHM#dK_lS&@*c4@6Nv^U)=UtM&4wMH1sW)lHL*2UMQho+U>s!H6= z+u=)DJ6qj~ZMUaWMlDQRCEU?>xWRh6??edT# zY$~dajH`fHjAQQS=EwAH@QeNlGvIFz$7!kjO4lwmy+ILK?Bi5Ree9uvEDgE{z#|x! z?F>#=F&~(G3I6~E0{xftpMhR2(lvhx*uAfY^`iEsA1h=KPJlhMhvryR%CWHW&|u38 z5Ca?;t3sq9&eG&x6`kc~lC$XU(oMGX*IiGa%Xq&k%yT+v7DcQ;z+pBgzG2*juOO!^)0T*f=yd!RGgk+TbpaM%0c)$!qCd)0;A247^U;rE{ zvk*}5!A=`$6~OuMwbLcKv$|op&IxQ~!CU~%fw+@`%Ahd9sZtkYZxLX)Pr4Nd49v_v zOks&uKo81(P+08`fC)Zyu9w}a*Q9NuR@ZCnn^)<7v`H(bwo6@~OJ2*f*6RNNH?KCD zc$L+dsbE6JgeeT5#1yFmEh`WTmR>QI`0g7}T(kHr<67GKBzR134*4Nj1D=q?6G;R;_!zw7YuSSKP-L zg{O|e;;^%~E+T~KHubkO62AAeU7q@FvHg`;wYICKSn5`cvfEzT!*LsfxmZcH&kF2I z9-nldl;mJ$qH8g^qbhKAu-pRVk1r^42@HSP`9{%}Q`7Q`_9gwhbQyGO4~Bmh?~_c{ zER`VBbz6oJ#eADcNm53ArQB`vVBREI3p7h4ZGrm5YvYfHnuWUE+jz4@mKH^P#di|9 z$O9~xEFGCh&ISn}leiJ@LbNJDP7OQR+nFv_t-HEfKU?c=hx2}8l4CNwRZKP_jMI#t zB$Q>zIJTT63GCBdo7U;_>{T{FwtR{J3-fIxpSgl_o}7d7o&sQoP#UD#c|YqAC<7pU z&~vv06UfOwD)760@EGSde~P~j2Z=Nv2w3aZ7ux5D^(eHxGSMy}XM2Vl+hk#k&atFr zn_$Y2+eybipdJ+X2cyGpZK!J{uO3Kaki^4ssbRQgHv}#YK2k|e17(zv!Hdl3VQi{O z^5~+|moAoW_gmY&)t&b}?1zLiJo0T&rO61}p0#yqYW7xFP0M{P+4s}ojT^xl?}+YW zk4n?!m`dj|nA^!v3X*cl3k+qp?q=ua$#6%}-Vgnn;86wdiDweBpkr#Qwl!jYY^YMi za521rl72!qn)?RB!}>;z0zsx&+uNW76B;JxKf~!003_JiQAk`@Fo{0c79{r zbxbY*1Olso3w35ADnK7KjL-2kmn93*j*9!q>YHzEH1B@bX&J0L9$Rnl+rn0M7dmtrJ)v2x<+l$cQ8`lTV;Eh#03`j;q_!2g zY!m#{{?~sCCh!l&pAuSqkU?Xs%OMo%B-@mlR_96Yq+7DnWu=elj|VeM2MzHA zaE_fUE)z0>!#PGVgdU3tQY2N?FyiSAviyEMgbf<9ktyynIv+uv|Bc|*%OfH%ID=E0>Ppn zs9dm%6$W|Z?&ZUSy z>j`FXLa&$!4Zz%5tI4LB2mub=tCq;hlW=vs2U>syH4S)#wlB(BL();yMvUXQ) z?R3*!)vlEW+q^Z|G@Y)wRl4(cd!>6lJ})n8G}<>Sy0!wC!8=qG4%uu51A@wSHg@0) zsi?lfn-O*~{n#WO*dbX+kgz3P%Cdqmyn%s@!n^m=8)Gt{9RWrgi34s*88MtTb`YSc z>y-m-2eWAM#aXtvU7$ACKQ0VRsuTi703#tt1xO~UHKgK|xtC4b+9~Yqcj%W}5iCCX zbxU1ubsJx&Ud?H;TAW*HaO9QYM%<8@JDX|1So4M%`95O29Bu$se0pBp#mXEI7@eS^ zf}k-OO|IonDhiRD;j#~UY*ZH9!FG`9N-IVHA0mPRV7_*df)3rgm4@o4J+TCtBP8QN};mbJP zfB-dA4s{nyOQJU?(!-P?S zUB))&VOMRdgXIhemNv)@-z7%P*@Y|?IRkA!Gb@0|atks5tYOa704P);!MvUau?;uC5C#C3BzOpODk}B z#sEFWLBnuB03h0U;Qij5}IQU(Td z_gjjvvRjdrl^Zz8R|NZUlaHy#Qc0%@wdlLTrAmEMihTc3)*@KF!=ChzREfBQ6iQt_vRejDk22l0=EGzqo68(8r4nv6>f z_S4(>vB{>J$t4WRfsZZH7<06~RIWF5q@AWe=j>>UWF-~>oLcHTn zq}!CE6-u0vQg2kGF(V>XLP@JeiS{&}Q)TE%aiRj z+{X;^IV#f$aE!QP%lNbY2rcnC!HoVD_?h8dTt~ahj%oEhIiv%WB0HTr{39F<;M~YJ zasb9p^f~)1-i<@{ZTJ;>Sht<FI(2;EkbAxFGYK`-_moWcTMCv5aHs zj(XR`R?ach@fD)y2}U()LzYzIYesG;)H;MlM;E$iSmxQKkpAXnaedIey9R3~gEw`M^paj?;xznzL zWk%Lm-NrCcbDHz1ehYuWRelRjE;LUPe$c)jx3ntJrkSsJ!v4h;AipEqM?R-$z^V`l zh2z`R3CSPY=^X)XbBuNRA6}g^$2j7Kg&XfE!TZ3jd-K5<>HyAh$sVBSv)N5rwi6FE zt@&3kW!IT>>(s)0I{B|l8#wm%wA7xKXM(ZS$` zS)z3#9YX`xr&C^K;t$!=;4g{;uZTVm{5#c5ncml46w!;e*(ZB8dA6Vb00pc4i8b=kUwE^`J`}l` zoV0rPhIJcog#G1tt)jTMAr4o1%Z%g#00jIW<4@Y}_GA9!C{j@=wampXmM zpK)=3NKyooqOc^dR3Y~7$?5$0d~*GrynFD&$GV4tHEk+OOVyCb74h$C&zrM#`I0Y9N&a}0J}MvMBbDbti`#ZH{uuD#V4CY;i4*IR3@_D8^D z@~pox#nyAiR)uKPt0_{c2*uuQIoWc-w3}(G-?Dl$_80yOeXnSKCh-3Nz|CJk)U9

dXyofcRO5dAmbZ(1TQD~!qOx$c*9O@?u3~wZ$af%6P)Jrb`F7_x z_!`ZYKNo4m6-uqlWr-WJ`_efqo_(TL@KD9zRC>QG71H zWoaDU<11M$F1_1tdtEKvy;+s; zlTuAT#*SWd7VojFWVrw^l};GtbDx!4XebjbMsT(J)8K254fvztMuny8u|;-e@IACv zkgzVzb0(fb?b?jU;2rVdSSeC-jN|$J_<5%#@5BpRV=BQE#?>5T62HD(q%JpYRw2mT z8A9%3!&mfq`!o12L!aY^g081Qe3t$k((n~`p>YZj&RDWYpzx;--ev~eabK2kJxnz` zP8zj&xVxofuB^FtzgxR>PVc6N?pzHVO?nu*G*nbtNx3z3cDn1`>1C?6%TLkI*}CV% z-UIM|g0zi7+U5;H$5PehnJ{FygG-Y7X{^+wi4Y3Vt`){WI96gh{nf7c$^m3Gkh?TUzIAS*`D@7`k@LV!pi!j@1*ROM^)9Cix@m}0SYm0IwX zN|NSLNk+**IV){-71LF9>-yao;&3=@4H-g&ojP&ln@;T|9c0z-Z+6eFs`h8*N5^l8 zeiHL_2f4VpfWV$md18>kER35;CPW3x0>r6R3Qt07^4nGME|skKs{S>;{{TmY%(2e! zNg4TEuuw|nV<=k~T(a|#j92O(?Nw`~TUuUO+gL(YE07PF5(onBD6a`v!1HpThim{3 zJw|^puJr3gmgeMI+FMC0Y>`B09&{`hpxct{0V5{_78u+Gd_`;yT|*OE3RT>iadMMZ zTixjx-|X3~`EPdbf3TrbGK~sTOAO;E^C-T1ty*b2+1aSHp7woii_NITsU(*6m&p4N z$0EmZmcS$pzc0!=j1F6Zc?xKygqD`fAN?peIe7-=B;yhO@qr;Wk{AsA;<(&Y`A3Si z2z)=Q>2|hB6mshltQKhsu$anRN%J6Za-o1_Ah5|eI3#*Ti>$?Adu+P=Q{KfSMP4M6 zaf)&Z?l}k(1Y~0_d3+oavsWxsDbuM6-sME67|Th!TJM`)n|J%krJL2QDv_&&l%+;i zsOh_YRl7=zAHADB!|mr?bBe6O{PU5b{v2X zHipUs2N?`V-GS^M@JktlpR^Z`veCyM_9mnOizS_d0{&-1kV;^-2+j%lYr*yNs_B|! z!D21G3Du?^X4a4@l1eI~mnCw{!463z1=?%VKj4%1u%C}UI0`;_bWKETau|}%eq_Ko z+(rv+!3luPgI`m_l&1IWIZY|Fs?N_u zx;wX}wbj`*t(K{@WiJmrJs8eWZBV4tTUWYKyWhU)FDv(3O$y6UwPlhfS)<49-im48Rh_RIdsMX#wC@rcNM= z)ZJz>Koadku(mlMnDe=ad~iVo0>cLs+bigG3%hj@Y>E{UBQmedTN^=Rfwi0vI4VnX z&q>1KYb4rk$!e$3-E@0xef4%rMs(wFIC(Y6Xv$o=(`j$ZZJnLBzgF~0TePL)&BquX7Me`+7AlYYW^{@ zkIR4?-CIf1WrE(t48>#;X6>#eI~qc^tV1Iz75ty@qK5HqhN{UcFn00~VEn;VNh*F; z!l*oeTm|HTpW9FPCS*3&zqMz>*{%tOYmGm}K}@orE$%1KFO_0YSRXX1GAd(fJwZ4% z>t&eL{i~N#l{j+Fy(HU7JGsWsx6Ro%rkb=p^TkjiN znQgYm^%~ecH~{cHdUMm*b^H!#IvfMLj!&jXem(mS%RDcx26+DfIQHy0{CULybs*rQR(X9C#@HL${ zg4qP;*92q(oc8>N{{Vtmfz?Buk3aBA$ItDV@mLMOf5Mx&+#7J=d|~1I4uAj) zZ3B#Qqn*V4-c;|x8LHCD5htzov`9lCG`AXoC~`(b^dekJMZg!3+&midkp%6qObbGYrn$-rzL zpVU|FG;{EWS|E@HrJ*-`ll`l0&}3wco(CQC#~;i$?R36(#C<)K1|~8_T1F!s z4%~tdY@B4V82w*>+E@zh@9pZO^mb|#ot^qx{k*TS`0t2+@-d^;N&f(eMVLI2IOim{Jm$O}G`F{fwY5iQ(YH>YT`sMqn!3~F>u?U7+HZz>{{Y-> zopyUaBeKc$>CQOooO|y6ea8UPw*ixoc{#}gIN%=Nj|a9ooHT+#0DV9oOkjcaBc5$my;09$GQ005L^;eo&)as03{4?&!a zU}MzR!$0s*RWJK8_=I-<0ECCahrdy*Kt^zVao?tUX1?W9fO`D6Jp%R^@6SBvjGi&j zSHxfNP_e)EY4HFfAoz#Egzydm>o607GlF^p^~Wa_>||f^ILo?Q7eRdeq<6jTe3<~*z>RWWv zt}!HNL~pTFg(nCA3_fF=1M>1lcm$9S9tyQcVsMs(U8+SU;_r7f^_7y*wQiU5O!|tH zsn0IP%2ldHUe0flGqhJM6_Z+7Jw4r>{Lh2`0BFd|{4w!*bUSe55^@88MgYzZ2n1kZ zhf+wd!_OHKZ@IVy zotTJr%fBS3Vl#lC2H~<;l;m>1w$x1j02zFAcf6UtQ@jqDw@?FPb^$otP?b0ZKqS{u z`wWR8_}4bl9zV3o8zG1*=dKlS005FyfHA>PHnwY?{j-BV#m^kds>*`rGUy*+G?)pD2r02v*9?65SnwvD$~hw8Ej-{G9ya_en^qd8EzI*N+=8)X$+)|h(J)=SZ)5uzh>2HW#W@8ztFQ2Akw)1FtA1pe$-#O9T2!NGfE z-O_MUTH4QB+oIiQuJ5t-`CTe}ywam6#>kWToV;1EB3y?@8w44~&{nM2Ua1gg}MSO>^+Dez%o+rY-P!Mw4N`=Nezzzh5 zIA#0A$WRIPvbvPiDbC5t-u05ZYn5rIHmzMgi`BK~W^t=2N<7U$OWm_?-D*0!=%22- zXqAte{v+RAP2tPycae}JCwa5*X~*}NnKpR$IYBu4Vq?&xj7 zB$d5#8G+i1oN(F4L4rz^;r=4pSjpi%ZsAxZz9<2X{Djv`t`Q$dHsK7Zn3~fQ-)KJ z3vdGOSn-t#1_&g!HxRfeO0K@0ZWUr1OK#bWmdlVKC7B})hFk#M00gfCiY;L;ZSsS) zfQ*1jkGP}-AZM0L7i?@??o*td%|72_CN@aUgJ@Dp5CV`gxKtqU$A*yL3}+4Uaj34I zx6=31-nzZMds@kK_g24EC9U^MuF0g;uh!aM$yqe-XVYjl>bH>t^Pwsi3z7*S=Lkqb z0+Lj*+q)}~kzYsnIsx|EP{SZ?01PfULK`4$0f_}ya7=>AOL1Ngq1%dl14W4WE>oA3_&;~fZOG)Gln`JYYovzpB zIIrT$-CtGNCcbOsYwfw-TBCVtSaXne;1E=8Z2Y8dz~em>@zV-4)eaW~46>EM3yf{~ za7pK%yPi4>0xB3$@HYYm)htLOaQO%%k~;Iq0D*uroz{ z8R59D%lT;jUAyh`+vd)GNc*itU23iW0B-4b=C$6}w|gv6unIPf!xK_3 zUyL^)PU234F@4Yh$sqB76onW87k1z=oMeT@SG_vk1;}g@xB%k?n`qmffB;4g2{}(n z(}o?Rjz%(fW1!oQm3x8FmmnXQ4noy>?W4WzXQNiLwe z#Zhi>4hbOOW2p>Og<`~VN6bb(Y@S16r1Cf!&PW8GPrIJn1C!7)x5_XGV^`iI^6kbl zIs2q^&g^dI2cRJC!($u?glvP6mcZ-s?#|LkUis;gF~;7Rq}zJm&(o*L>G=&dmXCF7 zdHbtgoAfi53>8+pqRGr+;xLj$y&@(|na$IJ8W0CYJgX#j2+#zzDJmd5N7 zGpexQC?L5dPX`A$Ryn|9j^Huc8}61+Do-gu$WxqyjDL72`L>dBy)tvTMl*xNw(WGT z-@|sj<=tDpy8E=u83Nqn=E%m;i~?T@z0V`(%HW{{4oNx8 ze`n*8cJ3Ge@(2oX_i#Wx#ya5SWLC+DjlPEmcmsAu-g}ie0dt-g?t(EB!)J2pAtQ7|qSA_DMF@pUbyi_TPUY#cO?AyWjrZyX$A&bup!c1G!O&BcS<} zcwGFT3=Rq7la`7Z`~$ae`A8&zx?v=Im^kV)gU&PehE5K0 zLST`DgUF4o$jL3pARb8D&|nXkQZ_}u;;xtBrk`YgBQ zc1tRgwk0I4=^Gg*IAn~rP6l$v1M7bfF}2b43z7g4+Q`bs1n`F~oE9CkkGuwX;Me4@ ziA1`lzp39y+urK-W>QE!B*KjCR@=0K0V5$n1x`(VYvM-}V=_Dr9}j}5?D072l2WL& zlqp3=o0asFc1^okUsTo4(tJJP+%9j7uZYG&+R?$n581o8%B=nr)wM~fHx=o3(;rsx z2Z=TL9&Jlgx}BYih>}*0HC*F`<0=j?a@>uK2T{+9Idb2Ba~!EG*(=B{*&DNhKnlbi zypBbQ+kgjE1WqiOM?y#-0-%AMF9T^LGKL`ZE09}o zCm+t0aoC(hy{;n>TCGXzDbA#(?$Wxw-}!y#@04)3dJ$CUQKe3rNhrn(K1=%ossHRg@Et>^f=U-q-70ATMId=|gB@h^n!rq?_e@<||Aqj|0@A!gx5z#2%^0mvtE{G^6t-CxlhAL52v z#6HUbj#10=6%?ZxJ5jGK6ZUg1xl;sDmJH-Tn3iu^9mzrU1swsVd-bOE?U~oT=zMIpJ+@#rn;Uhx|9D zT>@qk@O3{owu^GMqf5P6v6HT^XH#9y%g0Ed1F_)kyqH;OFn^?w{{_RwA4Tu%sd zY|Ms1ZwHv0W;3GyJw17fb-qX#Ru3S{|(70k3Ay{LkK;cMnwE5r0 z0}h|?zs6TL2Wm&6U8=CdhCWG9qa%}($=lFi{Nxi8l9f3{t>W){E{k7O)3&z#bHGlu z3}za=C(BlyYI1{1?I}}fY`1nzUd}g4_icX>w;F8LS2tEu#v_`_=6hM$inhsZX8Syu zBYQ9|gPaU)-SH}f8(8JGjEQ{Csy7G5PYaL=la|_7Jf48sws6t_qCM!%v55Pd zJk8j0Sb_o*f^qW+1`SgTiK%3*oj0-SoZ((bhBWoy4n z=&j4v*3)IDTdSqp&!y9EXV<=(oTc@$oym zmMQX(2I4XvyU&IH01A9Z@n6SY82EkR8#%5u-xA-&XA603(b?J!uYIcAlqJQzjk3JV z>Om|cgaags4s|MfI7&`VHj8&saY=ix)$iYZ74FJZX;zd~T2QHGlIMhFqqVJdb+S&@ z?d1OeO+Vm}f3v5Eel7fVUyGh0{?ohg_kb2ybo=c}=H}`v&3f)1F6E(`;LIFp)-2I8 z4X&3Lkq|?psQ$l&x+G~7SPL46*O85?p>Ti%&j&kz!w;1*!=IM_0AsJ&!^8govwy+w z4R|X@wGmuHVF|sskyq_k7gAyihy-J^$6bI-}wuPT+LJGQn-w%S&Tvsb<3o7;QqW9e|zV@8@$ij120V-*#=c~e$a zR@Y4)t3wmXT#56P6kVQ^&>m500oT!0dTn_0NZ%}B`4(sm0{NezJl5(VW-b4 zWv)^*7!a|^lnjVpF2l-Z3-Dw*cmZ~%^6C|U2aIhPD!2q;+bCSHU|9}MPxa@o_+Loz zR+n+4YgRB`+1$j@6p;gj4g%+COl={LBmhAtpbCE>e`vqh15(nbzwt-H)DqfA@?2bK zM=KUs`Hn2Mf%a!A6bSf;?)iM83lGXTn}o3xYE;JMu$4?ao1ID!UiCRXTeP=v{_UI6 z%T|9=_;2FA4-<#Oc8w`*4a03Ri=&H({- zY(zK!Hg=J?fH6P> zwNDS@crSld*U?cDwP9JQjSN>Qm!aZ-$; z)Zr+~%~{7ud%p@#uF0#M1;v;O&QbDlxPc~Hpi;S3C5|$nGKL>Bfol}JEKFe zDI_s&3Yg0iC;>|b1gXgc_w*U8jDeIBvLM(Bz>rFnXE4*wu@%k z-pQub^hrB;`&zLdG-ZmFOaQ}ZZHH(qq!eMvWg{)g+Mwcu`f>AFj?QBFcMw5h6Lt^E zRfYpQf>@q6DGZg~&uO2KD*T|2Fbr-g%40j0Kt5*NT13Y8!tTjpxl>!KCeTL0r}%?o zB{BlzA~3}K!vu5BBpZyMbgylGN%gh0>e}eHcR1&T-p$)jb*JTao{rsi`K#;0NogD4 z721RDouT%Vv>n^<3LF%|gPaZ(_-ZD_x$@DNqY?A`#7FzIJHL5`LPyG*K?RQd5X5(F zXB+Xx)AOmuH{`1YW^RLXk$?eZVIU#!MxKM`e?V z9)w)#*ThtfDo}z^eA1NKiqi4j-K4d>*OfJxP^uJdW6t2iEEx_?-O9uQFfo;Llp8+x z(0>NMXDw^u1?{eQSRg7(71&6} zAyfqig##N0>)a{fz9zJ(WAoU13M-ay!MADDNyV>f)AwTScN^YH*Xp0~r;EQyth+9! zh{*U3tZ|t8N}X)wM)-U)O3&)il4`9*t*SrWq}xfWGy0w$Ud|UgvQ9DGvT`$yeGhI1 z5Q?EStQl8W)R!1Lcwi4470(KAexP%K%*H~Cv?&-2aezR{=ci=@x5@@~;O?u|vp`c4 z0IWuLFu*I7033{rZpQ<^VsL*>=9E3xAu2`IqaI1~k1Qx*<2Q~bCe%8`?-vTwugiycnZ+tl+ zE;$7tw_JR~pO|t%+t2$sKc(=LU-l+7t7%rO?zBqOps!`E^zD6iwa?4AvQb(74SUv= zJUx`;?{8?+weH@J;lD=jrH|{M{t3zP16J`b>`D7KYMO&B-PE59d_8X@#Yz&kcB0xm z4qN1oB~sZxF&V)dkJ}I8WsGFN9r6iMcQS#oh#OI{jQrU@AwBzkZ~p+nCvP76{t5p8 z`!!1@)(PMZIy1PjVzJ3IO2_6PjjF#h0fU@{2Q~U3C6pH@f)%lixGRH&`>3s)_Bg>H zagmJvd5)n%ILt>iJ?cBSwzrad-%GaNPr}FPIc<9X08zuJPe{^?BByPl;}n(pMJpuU ztFL~7%fuG9AQnfD7$Xa6u#?EW>zZAaF=KvQ%JjGv6HK@JT1-t4VDe$%&P5kCy;)dhyT9NyxxCJ+X{e1hDj5 zZY|qJlGVFg%KXmDM!x$U@Wj>SQFi9rShcT9J6WXr+e`W#L|WFHDFjV}o&zZdKBbO8 z&rD=zo;a)V+*?jhl_It=!nZy9VE+I-biwDIRV^)C5K(e4cWq*Nj2@u<4@JgJGCLUK zVq%&^&m(Icpd54~j!78X^747(CLJ19X*ohxPu^U~{3`n=ug_O*h`3@Zr|-rNH%jTa zwDh{!FLk%3x;LhWUnGd6;Eo1Lk}^HYpPRRSIUMpa`SJ0u#84;24QtAu%|(kvNg5_U zxtr{8t3*!qP!&#Hc_f~4!oJmLruqK>e9~k9Nn%FR{?|C0or!azIRDVvPK` z1xXkOsQ@t;VV~tg_N?$$nXZ1(UNAS-vCNYEe9_|C5gTlBY4*x~U8Dh?Sna^yIntC^8)wkF3XXp3)72m+NUJvls!Z*{POL%T|E6CevRYHHW%zWqvlGTP&WTb`wmMpHsGLx3TBd9<^fXC(q&-Cg400pBcdb`H>aKf*`z34X;qOKT$#%+AU{U!NPx4=q;(a;ykuW@1}8bzzSW zGrThzj?dzyZ#1I|TkcBNJ*=VoOscMzk2mm2L-oEo9`==$8GXi>)a0;_-$Zw2w*+_trSP}*l05+8Ywu}M@UP%C* zq=WYjeBTi!@ziCl{;x}SXJw_G`|W3^W8LAX#uysWO8)@uRU5tDzUKB%%cZrqk;nKl zJIC?q${@eQBZV2QU89I!I7!dX>R1}AY*F7P0YPLA%oL?QHx#d<0h7my}vXxVDIwo6FqH?&ZR)USh0-Gd9L1zMH%7 z55zg2RlUCP^!E{5BM9sg7>AdiFp$iOuYu8n)x=ziXs8Y|KEn#ZY!D6RQG@_iOm7BbDS82&~vVC-pjQsBXt-MDAUkwcs z7_Y-iJhBkZ=^2jzZ3;+c`I{NYFUbrDug^REJuc0=wbz$21uBdrOyIuJf)^?6Fq-31k~E50jA~fhDPl<4RoPL(g?@IwO86x-A0F81 z65KYkJ;l>BiR8()NLo#<6&Gk_A9Z(^2*V=-sjttm`FnV(lKS=+nYQ$8?PYglmDR4* zmE4}KCx5@fXD#9B!R7e12*xSCNWE3Bq*}J^w`AJWp~HM(u{Itq@Ghf^i3P5xu}Gvl zB$Bcy48UyzfTRt|Kv1J1Fb{cgbtLo6_Lx9)D#?%uQ-vrp7;h{~bB+rFO9RafTf@FR z*I~7})^ymehMvywx0DHrNJF1Iu_0V3$C!xQvKu8?u~j3|d{H!UYOv|EUR%V)T*C60 z+$){OXwDWK>`*dttB;$Cc$_@z;qb7HYEqpDN)ok1le zpPP9)k?WSX8qKnscUxG>wiIn6bAT~}ghVHWVptX+XEo2kcGhM&wM{bW-sSRu6;k_- z0+a-Kgq2cD0O7FcKp0_zeXA~=ev+-d%zNiml=(&0AW38g12`#+{J~dfT;yQ*{{U3Q z`__b&wD_;JnzQEDTXnUzJy>J%>XKKfPR*?vZb|8*QcGm)@3(W&yl<^0#0_0q=jHM{JTdb{{RG>wA5n#qdaT&nVam(qhAQrovni_s4Ixq za_v<6ulIp*mOGl)jJ5qKJS%?U;wF+!E>NrH0J$hYDH;cC{KOSwykLSyC9Z$LD6UfT zzwUU7g=*zjY-#+`LlPveYNKJl_vOPOf8SzhgK zetY5~!a8&%LR8$GC3Ob3ZaT?oq?c_I>$bfo#;=F^SBSnK_{uA|RwsWDYAhX4O(c%e zy5*FX-M1s=A=@Oe+UFyi(moYKrs>wg8mb&_Gs0k2%8&WQbOco0fya#8qCpr zKjI6Udt2xsG7_;(9Aj*5QNonUlrF@O+q$VIJ4+L{+`NCJTt9;EWu0VUJ4Es>)3P|# z)Vnr7{sJ44!H5dP3}-t^wwfRKM=z{h&5p<*bdP!6vtvFZ4UwFXLpKB#7*mS$uz94V zhK*@*%A=Ix`YWi#Ep_g#d%dpqJj`ZM1&f_3bteTC4py6Q-jYqE@1neK)jcj@=yqNv z)4WZmY697f<)SjIGRH80?p8$&wE{2-2$iHKoU-ADPwhAS66$SN#(%X>!~0!oIJ73v z^zRY)ohP=CtlEtFexC3qno?bi(A_Q5Jf=LimlT5-Adk;`EBJiagf{856h>60Weh^# zf)3yg{{WOREOEG!Nypj0vQNaDKZZXY{u%hsT)!GliKT0>CcS^RVnL!`!!?cEmkk`7 zjl5}a(#^P(*&8z3Kk~la$`W%0cH7He6&OiWPLh-iJ_D0+Z8B!I8D}Y7^ zsKG2Vs=7%Wia;QvD=7qZ1y0fkJx3Ve9ssZCNH-`#eJ2>nX}W8p+qT_r)t}7quSQaE zjY!H-c9c|?GHKggZjyIRJ)V|6T>Z3EH|)dlbc7_255m~$4&75vZb(s*ar0xIdB%DC zZ2tg)RZ9N=@Y%l<5x^#2g8GB*RU{D~i~Kji&Q5aKz}yKV9D|?RFWSz^-%$OYekR!5 zGo)8qBvG-6ce1F|EZneA8|4LeFe4ZTrfc!H{t1tz+v%US*Tlt~*Wvy{hH!dd z@P1>E3CB*{aM&MEcr@;d{?R3~#sZbwjOXP%W1s{adKwisWD<96B!S4zKpioh9-v?m z#{^SOK_HSr803tuI6Ve)fO$D=510XfR_S@$U7ohr{s+iie5~*Ib=$vFz`tpPM)*ap zDGUDqAq^0&?g1;R+OPoq6raPcGhfV4?POzz;ti8Zsu)~pg+>Ds1da*&!!3+$#z*lT z$BO=*e`#oBli@zDu`%4*mWV?9xH!~dJ9{3ZAObU-u10hG#s1gYXg?72;#?zb)8%5@ zRF+Gkn^!BwJluS(kWdg$0>4w>d2--uC2P9XHS6%x+fTo3FVUZm@#^QyXk9%hQ+K+( z?>D#PleW)W9~ge!zrOKL!c~nFD6tF+fq}LFPTUfA4yZ^cali+qe{o+7@O~Y55AQMm z0E9ckSz>yTqgnkqJ$G@}gUx>rKeu>|d`s||vJ0-CF~WeV2(}KaNWlPwCp(D%5V#y4 z?hD~-nLZkPK71}@@Lz?PFUQQ$Dj-+D*@^i*V z7(DIm*9Rw#ldc%^&QDB^I8oG|hZq$$00V>6V~~0f2cabXV;qJ*6@S4&0sjDoYw;d1NY^|s z`fCt#fs!%F!0XRS`&b2R_Bp`M9AR=o^dmhv8RO>eek%U}f`Tgl0K+zTj2!W<_+X6s z{{U;mMsvWg-}wVP`g%isuAAh@}bP*2@`u!L3^ATwjqzcVa6cYUgBjbpdVftlET@<#avG65}( zrB$#9IU{ob-!*=S{?^_X)O=0w;?`|0RcW+Ma@$ar2^=7~x0)HPB#j9i$gea^tGPEQ za1RP=^Mk|w5Y_DUF?V}xB8?hI)P_=Wz-Mp@NZJ{#$->U1A4u24QTDkq0ek=f+6ls1TQVDOHbY}!Ag*ZJ9I5_M^Yxei!`XBgL zo-R^Km4O&zaND)H$;MTQ!xEz$ka;<;#g7-;G5wdmE6C+{Hk;xNs>E;%L;^$ZDn|qi zjt(*V!(XvseasbGy{Ogy0McP=>+@IDw6)gj@M`gtv9zr8_Vk{%x5lljzh!^;2lIFP z52616h1AMXgEiI3-I4@svxdnE#Qy*YR`1AQ2n5zY?Vq@ORq?0Ex=*%|xF#22feR9H zcLEaufmS4Q!D4!k*m@<8<7~wovaQv|~4VAFSoNaUE9_ z^}y0ia@$MNdS6zS_jZ1#LHin9`N?x`vBth!WF)MByoYRM&~9Q01q%!YR4%H3wgCQ~ zKW3@pi{UNQx`>IRd(-84?Sj!U3xU517~_@$YaEgf%b(_(_8IWZnw8tMmkAU%BHk=* zZHSFAh24tmKmzR~fC>gi!6X&_v%U&^4Yj-YL#Lwa3X$AR9IEk@K#HnSK?vC-g~R0J zb;D$X_;z_(T-b^ftHPX`x`#5+>3i$vtLx{gf6!bp3Q>4`Mk5V5(}yZ@P`c5pU0YRa z-s!%*H0XS529DkZR*hjVHIs;hQGjA{42q$U5ULQ2?msaZIm!X}A^S&14Zn&mR|>2d zj^sHeMh}7s$$YWokP9D}62O-Jle}y2V%pEZ5Jd(1+&Wq9cEd>96f?U9-WD}G6_gOA zMhVV#*Wjn^4e+Z>hg`mSwRT(7l1GSqxFL6y1~axys7?XO@;D?BUzB37xXL)F&b@kW zEhdy^^4Mf#f3ei~{rFgX^e6^A*`m9#NptGt{s#zPD!Anh&4 z_+l9!_I9=(J2%>{89~n6x0#KZB~Qq}g;YDTFgIY2*mxGRojl7{+rw6ly)=dQUXI=F zo3Z$hh*Xp+Wp+t_v{8H6T~DiR>b2g^`e~{>bH$Kv({u+6B=W9plp+ua-?W^8ypXH2 za~v{|!vz^Y{)B&HSVMdp(DFB+Sg@;)l~yDp0ds&*av89$NdU)&ujjW_+}8Rnvb4>* z^4rYYkV^o#A(*1_8)^-#R0F}lL;Vqc#&-T!!F?Pk@&V4g+*aysQfKNl*EJvK{3 zmhS4>+x7Cdf3$F1v1z8|*4p&ZHPt8IO&?nwR)Yxh(Mn{Nh%V(NvUZKFBOGJo1UG!( zkVvnjJR1`IvezY$NgokdgAJ=OKwu0mvBu?Z)iq+RCbP%A1z%e5%d1_UWbW z(|T=xyXUi5r5P*U@#$+Prq)S2Hri<~OX_{A;E29RNg3z}3P=ERxP~BrpaMGW$mmWh z=*OK(1(nqp)7 z$ve02dHE~-%f6n6pjt=5U~L#2lhKI-I3%~q7@X}ObzB@{S{P3Rg2a#kJ%GkY8B*Ec z;DOU8VFNJQMe@ghIxiU+1Qq+CS06Cwdvpp84Q#}tfI5sX1Fry(Ks+$UGEd9L4bXSq z-9CF=X`=b9_w+ez?%$HvyZ3(=)2`i17VzYBQhr{F2*yDhvPmQ<1&%=^ZowNt&`1VA z8&oRfeb5f(R$T1_u{i$#X>tx%cLBDs90gEHup5c!dLQB8Nx?ZCM+3MTNe>4MqXZBM z!05Rk@Bv^zQU=k256pSaQrB0twch^#1F~sbU9EQZ*R$8tM80pAb@(@}yLYSPsOZ0V zC?FDkVib-z3xmq%=Entw2&tAe3Ktw>2P2b>r>_` zk`Eq(1e^lrc5^?L7YB`?V;nIDB$Kpb8O}jD!QgilpS9n4a_MWO?|Zhr{L^>axLLHX zwz}VyD>Y`Cx64lNW|2h1KZG#GHxN&@GNDM@z$@#6oG7Ol$iP)QNL=7>LhZ_x1bsm# z<=hBda4m%=CZk5<8KE-}c+4cb(K2cZLkFm`}( zf<95pbCZthKp8nnrj@l{@Gbp!?__9_TBm1qYq#XDdp_P)?(WI~3KH2XfItVfF^|VT zbxF$eyCjk#@_}H$5J85mp7*q69_MQ!q1$&jnS!j3SfI4i*5ZoofuV!tc3T_9TOx`nf;^C7*sjfn?w z9%_{!PrObPh6L{5{z2m2RbLU8;Ile0a*hgfr(Q9;YMo^Ur`FuA zF}>BS_wV|*h8d+CHa8cSRg#0oMiQkdG?S@KwaU4>#mTKNZ8hujv^sh!Z7RnE6~i7> zY{(l`@yX6k6o6C>rD}DvNb*@QUj=i5zcD}+a8+=<$jc0j5J45bkRbzcC75jrq>>8Y z0!k1D-J^Lp836JK4I2HT?9a7Mo7nUsk$B-=@m@ zYX1NO_Z_WwYjoDlG_CSa?)zO^z*`Zte7I=J_9vf}dbTo11mRZ%@sPk_>uA88s91rH zgdU0*oRPU(7{DBr8N(7Qqgz$lRaXpo&lz$VNC?D?l5h?N58cRMO*yTw0bCX;pztsW z+kuk6mfSE%$Rp**Clqr@{#xCyvu#&I_SrP=(!=*(M76(0o$R`4)jQfRwwFgZknU0t zWOdzu3Bg`D;F8B{6&rFffO)DK$A>h}6X`daF0*MB)|-12kV_n~i7;dUF^_QC2PEeJ zu<8pAdgg@#ZcrDM+`t^|1wc8@PB;wSg#!j`R_=?X{j%jpmI@#)%*sK=+$xci&&o=U zhX9PQ80yP#*qnZ0gTi1Oo2WMp$J zo@RH&f2=GN`=YuzQS^uPIQ#reE5?jp@IT6DdJ8xxA0@YEKuqlb*rr4=1) zlGUYUcHWvCxwIrMMgTdAQ6xOU=DwTaM=W4;GE#? z$8pB<+HN@LG8kYCfrSM1IW2;C1UTBw%7b1N@&5qhSB3rqcoS9ePQQB9f%d9tKU7n0+}u%BCaSsSG-k_Hc)8Hb@7twQm?3S$8OHfQ&gu+)+a+ zrqH|gl_fzSC~R^`nMZ3a++v#7RN=19+TT>$x2i_4nzC2B(_34!zgG3XUYD_e){3mV z6bQnoZJ~;hyOOv7WQg3E2{^$}#dtr`XZ#Vf_CU3>&@R7d9~SA6KC9wL{?Fm4u5GY% z?+#nce7PXVZ!S${SjFSI0Iz2SjykZf=l=l0J`iiA(f2I69_*>yG3u#u-+FNOwJ%y|Z9BCSet!+{W zlz=vnBaJ}>9ob=w=RO{5RmL!)n~R;?t-X_0T`sk4yM4#4meEt2sV8*?tdo1`zkRlC zuO+4X^|w&pBv=WJsy2YCrBBVYsQ_>`VUNB!=O$pOryfxb4>f;NxMz zAl95v7b*tf-1Cg&FH-w(#q2p4YoE+SyLQw1N-HGI!?yjDp940VgB^ z2;sWX2=)Zz4W}fW9D*=U-Np&d?9)~y=zwl*r#J)V!sh`w=rAxr>9+uiX|39`+Sb`< zo!*N_<+p1zXsy#rt+c+qZQsx2VlA;50|Xp5B(MkN%HV_7Zv&D#k~kG7k>&@D!n!!a zBdBE|g7DGdi6uD8^x2)k zNCSbv-=2UHODRq+-4*^NZS+e`_DiPr@2WMjvuXY*_qytyw_18`zH0cj`!D=5__=8; zTE>TI1^a?yy^1A{Xjy|0@y!~fv9KjT^4KXnDv`y0WBg110D^4z*GQV;=fGOJYIaKH zE(+VnQHQ^CKdV1D6Ux$N=R@UO~tKzr0itfI#`F>N0c4 z2P2$?BLD&k#sK~k$>FyX&3x8r!nsasc~qe3)qB;WdUM$|%#vKqZ+91Tyq&)HhkQ!n zo*7Z6gU8Pig^jI+#eV*pOOnxxm%kNlJ;^Qn^!{A@LHjFwZt(QZx`%;v3DzpvuzNI9-Qf37i!`6?bo31|Sd+ zoR8~LYa4rknQg7+1OQe@QS;9^`AO*59dLO(170=pZ%WWCyg79%>6Ss|S1bOGo3cg# zAps{PvA7YEG64dDu+$w{N}XzujGSVcyk*SQ+V8v5&-rO@h8{M$aU5P5)WU|s?}Z~L1$Sh&!UC~k zgaQsQ$_UBov_ILS;#Y_rANw%b$0H{9ogPmu2tl7M5djQyxl5kK)V4AEGZvL#ggkn6 zlCvDEi*z_vJmJ843wnz99>d60B%Oe|CT=a5y{_7|8>&l~Afx`u&a%!Ys0r zgt2*sBD!3>(TrhA{{Rbdce}o~(#yL)49-58+*OIEIAr`imSASnQLS2~OiPPxS;jY~ z9Tv7}rtfsqcl_q?U+i0BXwY2vw(;(Y{OtzzNQXjK$cqff4nA2KfjhXu0bg7AYvI?0 zyd7+ox+alpZX!%9!YEXZSSk5J1QwZTD;8t9 zfFuSPd~{Aj20U;=kVr#~;I35Ck}@M=Sf~g|XU-ID1e}#Q$45BB1CU5<)$|h9Jr=2@ zwb#45?zPcwt-j0ig(a@YVZ|QuH9CX7rK+hbWGIN~skVhnux1K7* zmf^rT3IG^51Fi_kB~)Z}$S1Y~n#zuNW$7p-NyBF+k~@;w8Dq%6ISdFRHK7}$jiPLW zoP|5RbMzTMFd$<+_gBj`C1$j1M|F2~*IVhQ#l7`yx1kO;^l1Rl5~9+>OK1~(2c0Kg;)(t``-TjgPr z3F>}ao^hNWKnEEowsL}I8$%3&MliV}fKGVs2N@@EJvNQOa^A_=-(7svTlMMRzMGbs zR=Qq)g_`MYujj8ueAWA7ysP^){9p?TxIPB)12Eu}Q>RXHFfhj;9)kpua83vDxBE|K z_x5?z+4wSiFwxxX?cAw$r7+&50W3FMuS)%kn>00d&WThI6> zhwSvjAVuN(xJ!)g1$A5HAbsLSa=>y2VUi7gqutpxz}$q5pz=9AfaKtu5COo$bRZL& z{QEGKvGuPsuRGmZ+Ngiz+Vt(!ZTcQt3+41}6#dq>w$e)X>9f1D^G?FVq$b9ZNCb?N zoSrxY@OjDL0C*>n&3WwPe3+&qjN}pya54zwjz5G2$;J*2O-Q4eKh`$lgyDJUGn|36 zl0e{sNEpc^;9j?#LmZMrbq%{6vItR*`CRS;=IW%1;#|>^l6SMeMxNJx_L?rQN4EQR z#$4%LbV=&2mDAsQtv9z$g*$0(;LLJKy99*J;>7%iCym3L9G;j2V1R1cTr`7glBAKz z`F>&iBoWt>jCJXdYSe-z8-k6;l0YK`hBJV9I19*N!~nP>Z9vc~1~In>B#aUnjyj#d zjN`94;EwdtPu}ITcE4LU%Krc!>q~U#YN05tCCrl9r*`g|dac!(^YyYKn&f~^3o?O@ zK*<1gcI)4To+ACInV;7Fp6MYFex+Br$g&vJrhxWNihmA0y~l>wDV zMlH|Z5yIgc%mjdPGt^*mcM=XbIV4~JGsqSBt?{}ECitb|HFuB*R>;GYU>R207D4im z+X2Q{f&gNt83bisUe27HF0UvzZ9UtkrL|VF^t$NJe}?ebdieJm@Ql=GRFq>q6P=+Q zn^$Q`+x`M&ohIg8M%^zi+{--2%w{SShROK|UIK**0bT-t2GT;;^TYd4#THwXF+@a)QT*p!A=QMdS%5*TLykV3NZdlor7 z@PD5V+O@=Av_Hi1iW_IduZJ@+a!FAoq$&@}GtW_wpzx=H1%9WH$Da*KO*ec!2A4#d zi+i-S*Kf@`{wKv8u*~t4t#=GwCO3-NDWsL{?yjoOu9vy;kNg(iF#iAvz7Wiu0pgox zJY`rmm39fo10<3;IKbM#g=1gKZQN?!BC|x30LVc*hDYx(6sS#tOyps50YGBf0;v9_ zzu>h%$?!wrY{;tSFBEBkbHfe#b=M1G+itzKBtjbGAc+qyX^=c`%Yu(1y+s^LVdwe|kvWhPHMb+D;sq4Dk z`t7%0)76Gg_-1M5#A7#h3%4Oo)o4NaLWT|9lLc|}vD{dniFK@is-G|+GrY4Q$Q%K} zh|VyFB$hbnNPoFviQo2TyH}Bk`)#9zF07+_!?Xfao%;yj95&)rw__g>YcVv04Dzg3 z<=gWrfTV^v9G-<#DFv4)G0lAU5U=*i4clBTE!M5wtNC90d9AGP^gJ}Lgs#=}##P?y zPFinniQd}i_1~wPX^kUz#>_%Qaz-N|_NioWOJ{1SA&F3|S0EN)@_+#ThDxhF+|K6T_l1t8A#VE0AnFmA=eEi)(k~_ z4tnRyMk}cz46rQ#Iz1sz>%~a3;Be*p^_?$igsGl6e9hsk8_AR4j(S9n9s6o?%%y&)K;o z=N@idqq}QKXtureyY2g)SyKy3F2i!VZfY$!yQdp+-L)vCb!D^PcD6q|e`)K+)9++> z=C`)HcX%#ikS6dp64J0{a%6JOR1<>BmS9FJ^Xk$Y+xw~ElGL-uDV1&tl3p}(z-BF+ zh9ye5JOO|Lll9;25#!wx#aVfvc;+olK+Q9_v6 z2^*9iFkcx`4mWeZLq)N*wzpkBPK?<%XQeWFHZl><2pK5dx*jO1r0Xc6f?D$sAO zBb)6?u485~GBC=H8{`4VU`7hD8Eyd!^HSPh>6a7zrYqEg%aMz!yC_sr3EPkgvFJeM zKp^b~ynb5orsCmJI@;W?e|6opeY>mRW<$nH41CPl z&3x+CaoEolwxFOmjao?V3JDTbRvVjYl1SQ4;N8A#0ned_mLXu_DY}trPAOhVweEGj z?DlH!cP%+uUV5X1o<3^S=NC>Ads~@m^m}w#Ug@^9TF>I24fuak@YUR}7ui}%OSr7c z6S76v;1H2x5-}VK69J@0PsqkGCd#T*NGYa(HjeE`)hG5B@EkkhTK9%42r4= z#_XWmyamYTym75+9v|?1?yaINuAzUYk#`Nep-MCeW13YX<|J)Vmuxt2xX2(MV*QA| zKKLKTzZdKz@Xv;I%* zohi<8bBDKul$GTRTep9m?2@}@<^Ce76f4lBMw5%37bhso+-?oRAlAb=+4^*Cx^hly};) zJ=9}lYbWmn!)lDE-Lr?>svKZpnYV(gUB||MiMATQi9B;{{h2+!r5>X)#~=Y*MlKx> zm{+5*8QQ}wBM+D5VP7=eFWNPoE*-M6$!`-lk-vC~SV&Jig2WuS+J0e>8oa9T`o(-i zYtg3|!mU*Xqwh{Jo3m=#-pTjs_C4$ew4sB+PY;Q#-0;*n*E3OsoMNrnB=yz1M$Yy= zgwuR}{x8$~N8v3((N@kV!bNp#%QW*y6@Ey8$sq0As)~HDr0ogH^u829qgq+PsEfOs zRLa^RwUd3it16>N84Cs~g_(g1^8kY?TD*VZuZnctC&%`heXYA)30G|3<76^M;vMdw zE`Cj*u_W!0`P{@Gyh2Y^=~7CW=@4+|fPrI)oq zVVr4HQK<_~&h}i*>1DE3SJQLb!Qt^(r|sj4jH*HM%JkHeNvR~(iKVYccdgsd@qY|> z$4kG|wR?GG5jCgCl3a-6*s7o`feGH~Kn%xd%8lTGkUp*WGvT4}PsZL8_XyX+v{oU(Bgn~d=hH=;B+%v&b_cszqJYe@3uj{-udEwy)ie+#$}jXWlEU8YlwwPvXxfSg}J9CC(9YaPCL8CEiH7l zk^F*w(Vi#&0D{hZ8~A0cAB%n<*L+Lx))Yt8@0Q!bej;e$f@s7>{`*O>wboMJM~t+x z>~#^V`OKh^U!VT~vWNT>ul9%d75ham#T_$6&^&vsYaSoH@P@D8`K@nYi&oJkxU$rw z`!u?Gz15xVrQM`AOEN`ps~SlY!0Ras{i}Z15ZP+~0JD$94L?)2Q4QCG^>|$+A&K)W z~ zHnf)>9`OyHprr;k6}8rEG+9r~7^-=NiNci`Vt$D5pZpiQ_AJ)?mGKNe6TB5Hm=3zn zf^ILNg}zl_^XPXvkZ=y-3ZWPo7|tv7Yh3-Bz6bb?SnEFw{3U<96=%57ES>oPWR|yP z`Fdn>xXHmBeC6YB_$J@%h2rIrbq|DI8iH91lO>&;c8`~DnC1YF)vz*hNW!oKm2B zjVoHai4fyE#Bv!Fk8A}5FdUp$i0j|*K<|X5%>EAet>cXf;xf+zyw+1Pu~r}kOL!(D zp<-p{ali($se#MWv@urMZ6uS^MS5>2ABOj^$En!5++XR&GM6yANXc-rkfmD=cmxf~bHE^xU(K)Won>b) z#BDueytf5xZDb0PDzVvk8M7V>EA7Dwc_alZ_f2u19{&K~lYg}L!JiIGtau0Zit%2% zrpIupZ>Ap+_?u0d-O2sju}2Q6acUVx?oGeS7$SkeujjA!q}TrdXupFVE;?_Id}ZSc z-x5J3zuE3J9b)fLSz?M{Rb!T8B#j>Q$lNyaRqz2P>T*0w%5e6KXNaRZj$YQ6BZ_n6 zi&EXDnzgih`kyzQ;p*pjmF-;|9cplbRHy9}nv7+8b3r7ZHSC;~mG9L3HT}M>!g!0} zSxE$#(ARuk+vA(x=$)=hAgFvkg+s`fpD;N&4!(C1*Nv4EpI$Oso43F zTSps6ZSR&glXJ2r@s3U*Q_QMLSZGdGoM&gzI6+EI+bgSEzf-4&+;VABo+?r0bZSz3 zjeJg|WfYX0ThnVR`>#Zq{ZfWwjer0M0AoA_7-r`@jC%m1IpY%raKz`5JLIl#0na0h zjE(_40V6f|N8tYe_%BE7^>Sf{;s?SnjNSv9Ly4sR#?tlcSa5c+X0z07Zy8jA0b3GC z1Qq8a>Msa?!D4@4FBTY4{xmOz=b2Y^zl(e=;(ZaKcK!)xmrIt=V~|)}6(Hmsb6+7m z7Ah7}p*7QIChcagYxmRA`tE(LEaxq$X0b4bMeP%&qja>q(vPFL`g9`bOA5Of_Jvq*6;-B~^6nnpB-x3UgjdQ~+Gn{|ORv-b#BaDoWa&k{neFMV3wukJY<7A2a zFZ)7#C)JF&5yc;j^jmwDE%!&+uP&{pQb!~hf&8n&zi(fN{{RoKe`lRa0plMJ$sVb# z=p#>iZCb+NFJ249xFQFRc1aOc3%FJ%VzXx>2e&4pRc5#w!g1xrQIqC_(J4i??zT%- z-oJstpJT9fGHk*$@iZ#AVdoVZbzvsltrV>pH+I^x-uiBN&-@aN3j84Wtl~vr{{R^^ zykO)4x+a1M#xkb|Cp)<~9c%R|fh&?mK-xIx@y|IPo}W`+k{|F$?Q2iez7G6Y{?ER( zyjZ?AYwF);nIs}M(7ZZhW>hC&kSpx@eq~ZYW(?K()UUgo0yxOdau22l(h$A1`Tqb&t`=$JI0f+X!fnRsKjO*R->X(yTgdr$_M+7lu!k&ZFbBP1~DSoh!& z*B^g=(RwAGtKmI3NMuX+b(jvG@vD#v!7^Nj01uI%?~Dct0WH_#n0z&VZWuC|9z23P zv(SO_0!Ke6Es#g32Lulj2`RkK15z~{X)2KBi)|}8rqf$=Y3XZeu7~Itdbl|7-fc#7 zAnVRGm$Y=({QHM1Qnl8*TF*z*Me=9u1lv9xc*u-`EM{e4mL!PJJ6DoR07p0k5`OJ| zFZiWg{>wiV3U2_}YoPB32Xsy_2VDMrGWh@_(ELFS)K%VRFT{bpVyxICJu;HHG_SzCI{;)m02=ZnlRC!IYSg>{JX$ zC(B~MoQ#G5gI||p+j$i$H*c*}SGv2p>*Shh-TU;udnEd9 zlk`1@_7?K|{W>-CB$8R+2W)_-5VJ}HHaPiN23T&~2Rl`9{fBQzy~u6G7Z z;Qs(gKLI>zt?IuHrL-NH%Y}mH>17NYir#7fbkxo zrQ7%>V=dj0+i4(WmU!5OV8?3iILN_VpO}>(J9%fOF2_-jV z3j8AYk#28%Ypclfu#N6!jZ`=9Bg3*0Cf)2n7#MO1CoFI?UlELSYhtPX^`}Y+d_NMh zS90ri)|#((Zl~W-!Q!yEImy$fDOIVe*6>Menn`~ux0CLC`SBZ1OtArOK1EOzsoF`- zNG43jfx&0V&Q$CAfqPK#dN1+9Pvh7}13cWut!F}4R$^94JI`ActS-a{cJ zNXh<+zhk&%KL@mQa>2wZ;xV`>3U&@gLXc8Ej1!&2WSahdFEnfWi8R-i+EW}?R#Gr9 zGblxEq4tGSyoLEmI}`;BLCLS^m-al4-Tn}15!<|Su!Q-i18|XuV4DfcDzvPncAPV8 zBWN|}@d|4P7MJ|J)md3vms|e;n^)HC(}$XPwwq1+E2pKjP}hG&rth)!#+?KGkSJlb zSO;bd+dx1_D7XoR10)^F2qPia8~S~$fzBNWAhMO(xEN9k?z9WRsGl0rIvZ18Ezp z;+3>%Zmsb2X>X;v`7gO2YSpZg{2iOTce1n7TfIJKNutI~@tuTiWXZ!ZVt(@|B~JXt za7f{D$7yVzpgbiJTkB2Vc$5Qa^b6HgkVY}{5&_(=f(aGk8cZy1Vj)QxUBd)3xY(u1 zE?8hYWmpXEV%gdV`UAo+kG0zc!6c&)&436IWQAUb1cg%ABLzz?N%pd|)k;^{REyCr zoT~P(|5JK53#%wg+v2r#ubTNFE{`Jft&yrjEt@s za84`fpAH}>oB($y%M25Zs;4iEoaAo2!y1o6gj3i^<9fv*fe<9FQ$#e;o^*4ogU$gMJmg^U$Oi;q zVCNbu87eSvzyPCg$ZiijWDEd14@{gIuL6_CGqkDPNj-2jjGW}0e-CmP?&RMq!t4a& z0D;(ye4t>3EC)@%uVJ^Qa(uS3*G)RvS$5XzMc1wL8d|G$v$mGj-E5OfzfJYH$m4U2 z;ajjL!>!2opwsp!}sj=wNDa*uDAU>3m0;YbgR zf=BTT;HbeQb5d+0YLUSJ=` zmzQ3ecKlZ9k*a4TvarV+K<~61HWvh(fWsW~ki#XV4@UV|a2p(81p!GT4b)?y89Boo znJ^oi@;wP}l}OJd5^{0@#tFc1coiX0#v1{NJn-1S&Oim5ZyhklIX@}QE4J+Q*GsPL zbXUFY(_22JS)`Sv()Uj9;p=N^^;>oBS1P2aRoXFu$I5YzgA0+K1^{092byO98$sm0 zm!8{>GDc50z{>Q%2d6pDVk+QOUdbecsw!|u> zfgEsgoRfu6Iu;!6BLTZ$1C{`uU&X!>)4W-w&8FTW9ntNL%JLX58%a}uq<{``IZ{qq zy6`#0JwJ9mWP`a9wWS)&S-pWf&thRPv zn;tg!eXIC8P?i~^cd}+aO~%s6u&^OyJSb%c<#I?Tl5xP}VTA2f+`o7+`EnGH4lo7* z8NeB1laEzShT={t+4gx6qqZ_g?z~EpL z!O31oQIoV}HW;b5+;9N^0g_J`8wmig9WX{fA+S{8z-sjy{{V#kFVkJT%L6oE5xx>h zDhi*Q3d9qGle?w>$vGZLtayjR+7;Z^8qTv}r{CKhvcYq3kxHyW^;sAnMt0#_8-Xp5 ze>KEp*|rYr6@bN3ceUq6R+N*CmD04Il6ot(qd!2y=GkT~r-jC0s=iyb3bDFQ*OZfY z>bKeUNm_GkO9tAcDFYZeAZ^&#Y!X0K+nzx`KRIFOS_O(*+A9^rj&~4L0tYz&4cG%K z!QmLTLC6*47Jm_Z2X(1hSx4f1Dr=jGQYfH~@;O=Dl>j2CB$fc}R{7bpxCS||plu;j z3OpnfU>pOC?O+HSKrC0L2tPJ3PbWXEcr(M5F?ro=-xWe|rIyohr0PMW>(ohJJnL5& zUu9)=>V5(AiQ>5B{5OWkFty|D^Ln?gsm(b@2|>llG@EHoZZWg9(rW6(St1<|UI$En zcaAau92}F8jOCQ=s12Z02Py{QPC&pUg4~dMV{y(-;eb#Y*eXt0RBg(uXLb+Dr2M?# z9)z|Tdjhj7?ZmJrfC~lV3y!0&^0)s01sDCHbuWv5 z74Li*r{6K~&xLM$tB9hMHNEDfkF_FVTV#uDjngcRBODFUf`6os+GoXsz@G(tbFc1H zcr;t@D6s?P7V@zx&T>c_bMq z3vS=A90DDCbvR-s)D%i4?ouABX@1?9By82RI?MNSw+6-_-?x2b=5 z>8pfQ(rH>!yS22&iUL#kbMpPwU}Oh4F{x9~VVCA47BVQv{uX8cADj+V zMjehY4%4>*Mi0zM+;|#_ve8-FZ4&o)vb%fVZFg5|m-W~+DBr8H-&T`LUoR(n^yt+{ z_X43KZmJo+eZa`TC}m!xg(%F-S8D_VA%$EKvo;xqN-5l|yB0#Lw;*m+QH3D<#jqsG zvhu}=$NsZ+lP zVq~^bgHNOBf0S*u&0f}NZ11*}X76^iSNyEfZ&#wXT^d(fssTYeoM0IM4nbmB7Yn=0 z+l6*0Fo5Bkb`^%vr2;YDSR**ft7Tcdr6{D5GF?VDe4tFtw15U!F`*%&Y%`aTI}^#| zE_SF4c5Y(Fl1rW0!(`rtW=vsKN!mdSq1iu( zqVm7y^%|41wwlK2EuEG0?_{^PMxMvB{>?MnSpLzU1MhFj3urzhcy%Rn8mwT=aJKPp zG7*9$nj-9{?*V{VSNETwLXV*7PYZ^O>DI*$OamCl2PH>sxF8I$Cxc(-vtfICq-uI@ zwWT?R{{TqTY&AOxRWj*$rrg7KZWW^gYezh456pgCl0u69=zn7mjao;?ui5_qz}_{} zZen|h^m}-<3ssa!C9UNM4+Q$URq%3k(WzoCexHV%#x1cm(t%y6sXr2E&q0kc5wv=N~Ch zFbO{?AOHv*alr)eMlra!N0l6BAPkV$$IH&v%MuCbc7QREMoFELYh4z)t6!GsDQm5k zo$sq`q_%fX$t9ypc=`Eleb(2xmS7z42?20VR{OX)Vy&F*4f0^%4qqxoi*O912Owl} z1~!q903!r?WDEdsH&&xWNl-w}1{?17MJ0w$0CmQ3oaBxvJh8#r2mwY&${)DEgO%t` zaz+;*2Hk)qYr1z!=Vi+6ZRDMkd%t^?*^WK#wY9Hw?)iJ#`zGC%{jT0&fCd;|eq0_h z3EP5t0gQ}v1FGOtJd)U45Z^8V9FjKhH)V+c5^T@sdJ-qXcKCQ@Hip zNjqzMJF7LjPTef-)~fpJaFbEIn@L@BHoGL(dwllQ-$Z6G@>Qmpl~osW5u9N{kVwgI z;oY2I=OlKojy^K@y)}(RbelN?!E9U317Si{imDz$hAww~<~e0h0%V_1__6UJEG?zc z^jTI*nWJQPToE4x7h<5WI0S?ou5+FhPsuwbnr3;+yv-v?B#yzE*_?6Gl~h07 z3JB-va(ucA;{LC8V< z=G<2qHvl5L$l^3nxXSDmReyF17j79zIqQNxX2T2~KjOE=-voRk(Jpnr7V6g4q8Q#$ zZ6whokFX&d%MetvaH>w?PSUJOf%s+nLjM54NxWO*2`;oRhEYD9q>}L+Qs@|=^2-$u zYi`W4%yy#~<(ZZ+S0x#1riL1=YjQ!gbh+M%HkVu5cXfYDU7c8L4lfx#N;KS((o=5G zNm}=A={~kv+oyll--}q_`(r?riotZn1fZq=>g3RpxWhTI>tOm<^yN@54*8+vE+JH);z z@gIuyDK#$>YWLdB^o{de-b&IePT2%S4*viu*#jzfxSZo3c#Z%d3fp~hBz8qPz`-Dc zy96ATQGk0A3uhS}>x!)zMp96UaZNon)7`$e(YvdziCac`)NxUjI7*^QUg~O2_kQj4 zdb{7#qU(Pm{imUZPk{db79b^d$>3iSuO|TR(ymDiIRy8?&fmNU93SH+<2$V1v-FUj zS^gB=A}VxY2yB9KbF_jFU=9We&3|M60JNpapWuhY(yGNI@Mnl)+1zf^XBpbOf*87{(+I@V{AB;DV+jK5z#o9RMVNK5hUx{TqYhDCIcyzcooGce`}b zds}yJpQfLhaeS2XybO}EP@?00{?pA~-E?bSmOrF__#zF^pZ*Em@IW-7nhR}WErb9g zDXU$Oq=I-Mv(9+WQVo8)88D{+h9CkyUJ3bJA zL3?|T5W@M!dlEWwamh9L{$+oz z)NM4Hr0;EQC{uU4zK-k9)ouDNQ7d4nM(cX1_kX;UY?6N`f4ahig@!z}Br#$L$3Qw` zkaL2kJa!-wLqt&y09-D4;c?Rg1ZRx#!RSZ?4l1mUvXtt%$mfHc06LAMwm~?-UP#4Q z58sdp1dhavamGLZ7UUd{n*{Z)D>bW5)>@~%-MrS<_1W6!^&=H)a@tq#uXNYTcYa%R z>fT`-H=sDk?EIFx>16EE+e@yyD{50p%GT3MUhUq`qOw-$ zd#7~z71<_`AIf-{aYgPf0uem?4Y1&@rQv3)IWwIs5)ySuuCpbZnW zfg_Z4E~pnIlkzHz4y*SckiALynD7R20mgU@jANlb#1Fg==MU`@0JQkCc&Pi@^GDMp z$00)g_9a|$q!7D^I0PJ=@~0}8he8sR99vepl2TlrmyqI{1$Hy`#$_Rk~Q3k z;=KnfK*nUWyIf!pPs&^7C!r%J13$|R$W`$^o}h4UNMZ{dA25;rty|~eask2G2n!g+ ze^fv4StRp6X8!;IN~99LEAaUvErJcT(wrYcOJFwyb?OCwE7wdH#JY5kor356UJQXi zkdgsSm|>B}%u%+L+^k9Y?D;S4Yj;#`x6xbP?|XZ@>$}?P-{HM-cqg)*Sn98<<+^=V zuSVL}Rk`}Xrdo#mne`?tcL%eSW>bj6OAgWzN;j5rn{Y?Z_dp1wd^fE_8zYQ_D~uMv z+}J=4UoLaG8Awo$S0`(bYwry+cl^Db2j0IJ7vRV|Xv1YL2ljeO@5rm=Wt)tkaodMh_+G_S4R&sV=)52WFH zJSHi2##Qv%7VT?kXSMvbIIjh1vEF=0(xY@qi$wbq<^>r+3d~43IV-)kg1bo|o@@FW z_)nt8cYp9JQ;K^VnXQ&f2DWu3Yjsl;jkOE2DT+2#EHkyspOqg2`S$Pxq7R8$6u?M) zw_pMi%^~OI1QU}XBq7P%zy<+H$Mik$Pep-W;SJ0VA#020k%PMjV#G=1#sLbUztyWL z0rFR7QFHkZ7uTyv(ByJStvPSLi&fW4t35T-O&{+59nzsu*Ht4)B`=C`ihQS z{yUA5S03@OG3!b{sJVxSP#6XYmJxnPMRtV#_SYF_!r@;BXyGk)JG{ z7%(bWU>{Z1yf>#9zTGTQL39;mSec5(>Vb(SKamM?>R1fqxeiDzpUg2ev697AY1QRz zUhVSU(P_u6(%SbRQq96EP8+ zHJGbJ%g(^e5V6KLGN3r#%9z8INobi$N9FB&@JoQfgEkxG zV(0FVs#N^(FT|f1Y4=juiR~q|xmJ)!@y1My-!g?Of&l|!F@eo|ld5US1>&l(c^BtgA2W6emBOy!fw;yP94H`@ zfJo}gaSm8&N^Q3hVtW|ABF>gl}<7CuslUmx=)jd6K zpKYW3Rn@fN_N%QkOPom}Kal95i^j)lCqF8;RZvL}^BfRGeD(3a_KCW&@qdP8)wHu? zrs|hQ((>xpFs;5@Y+`u{NY#oKE=c|6;gB%7^h?y#L=Xuqn3Ma}CME$wsU@3f{{UFo z${YclkO3zgAH**M_>b`F>rBaR?6<05=>Efx=bt%4QE@uZBILTevO(z#- z+H!8&+vp88UkcxNBKGwz<-Scy$-#&_GR7X<6)Hm>S9O!-__^;zX3|hw!)%4F0-$8j4v8-)0CgpHR4B0WNzSnV* zys>9xBZ2tUtlM}e{t<0@%H$$RsKaY^h=438?4{!*9IhQ)D#*kFS&n+I&)*xoQ!jvj zY7ZCqqQW6{YiZ(3s~ti(JjA-26FiF}geAPiIYMy3jBAxV=R5X+_@QOv4+H(4(iYS1 zA-uNKm^^H;Neh&cIbs`0{oo~=YZXtJj1X(Z#!;Ot#-}ejrz*2ex25GJ@VnV7Uh!_) zy%xuf<|6rKNWf9^ z5zY4+Zvu$sjwtl;bgR9YWC#N}3d^t|!!vNM8z2(Gzg4Wf zC#6lISli+V-E1vok=5Bm@}dG8Xv!0l^Dobkc8#Qb-aioG@M@kGt|E1#QK>;HX*ASY zeP1>1?3=pfwwj-H!dTqL9V|!HBSv&&=~lg2G}pDK7iigPm724@+BWQrABj48YFe*` zZtWy#?GoxonpoVC2yz&>DhjR(GU1sqw+s|ztJnM^saWWGmxgZa=Mzb#>%Jem3j;se z1lHPxtCj^ryGYwMswP+!W58jKPfXC#TS+Z9Np8r_AtjljiZlnGoDIZ-wQ{F-UD*b` zhu{sai{bB#UkvpR6It5o8b+VvjS}Nff=HHFuC30aZxLyrF0st2?uW`T?R}t-az$QA zUk5y1S%+0BL)qe}LNjnyT-BiCC)<@h_Ss!C(9W>gl?)DTh?Oc;6tH-SPMjw0)Mz!! z8?79z)oAkIOncg zlfWIZ+a%|j<}@jyn?=(lw^JN4TEfsGuE>%ifW{O64%JP#9FPDUfs?l1>VpH813VrN zL)RqW9Q5@$z&Nk#NkjLNX{~J9d)ad8mv*l7vf9s0KaS~5#tJU(N(<3FEoEe`wRd_w zbXRA}pSF|BXZtz)O}~I|dtVLeQv@7f8%b5ZRb1e!91cpA&JRldW`E$DH?rRU0Kr85 z6Nz>zKY_j?alk5C#?8u;xUgctci@uUP6zbc`(w`Xe$D>?6yhHqDkB zw*tiU`MQCVfTh2f-}om?DQW)z1sV7}s#r64KjH#_7b*w#Ohl@Jqdcxb13BdSkG#rx z<-+*=WA4|SUfSLi?%lLnHtlZxUC+$(=|S;U32N^~gtfKPRbH0UeSI3X_CK-6t;#4k z-H--PDljvQHa6hy&vX6mf~!w!4(9U|62P}72b>HpMltjN^NbEE&~_0i1)B^B1&%TT zlEiW`f=^-3BdIj68b?jTJg+%y3<5gs#!2o8;DC7RRHnBPISRy~ z>DN1e9Y{YZ1F-L$9GXov5fMUCaO5|Xy47>mA}thzV6M9D9W5)D~zpeA8uXlt>0}^(Vsc~(Z*5WLdA(AQMAhB zV+{BJu^)RLn}_4ge;!}(Q@@AWUy6PyX)?`i6HDaTgBezRE>A|U@VK?TyZoQrzcu2y&W>kJP?KKdJ{Mlil7GLy*)QSefM@-i zz7Bcb7SUvie}}#mnnjmQwU#W)q1eeL3q*cKkeA(%T%Vf_l^?}N?YE>yZ*k!XS{x(z zams*3OC`8*gTdpeP)NxGImxf>*Y-h^ckIXTQ0yza;opSHgP)Z~gJFOHCxf{AfO#bK z@wkJUgi$Fe~Q$YyJt3`y6Z6 zhVNDQQK3SoEX}7RnsYM~g8QtR9&!9YD8SlAK(D%2W3d?{gXkAIP)=KrGBN$!0C+uP zkjhl1Nm4LJB=zG3xW@qJ<>!u1Uz~<78x-QPb)0(h$;qc^t>mR{{{W7fGwJJPnQca; zEDjx8{(ZqgB&_VzZFO#quekiX@pt?YZ}uwjVoLgMm*US4w3!F{7sN(b<0k+RnvJ%j zji(zyIRI^7Mg@LM{{X>B{{Y~S{vP-N@B>%)tMFIir^IX9j|$w`z0ZVvQK?(rX_t0) zmnm&9(}te~fr9Q4BFc)%B0OQxfJi6$qPK!*W@(|7q9?H3w2%i?=-(6kYw#oXiN5$Brf53Nmxpy5E30FwY5ptmB5Cm7TuXVT zO0w9e*ln)uqZe{REzE{}k*G-I1NKWz@MruN2jT7om&Ct;9~U8oh*&&9pjm12T*R0P ztv!qyEQ;=-L1Q|$=F1+tx_|g0j+yo!hF>0RBS92#d}0!+U=6=&@Nb5t$Q_9RM?f0~ z2aF%v*yHkm&JR#YABGRUKR=+ZZ04+R*@b!@!i`5ymM(JVa(?V}ZAm8YwvNl^ZoHEM z^9;U@F=8v>rB-vaXt>34#(b+zTi@N)r>or`%ZKet`)7Z_V7?Tuhv)c>`zL%qy3p;U zoJDuwF|BJB`iC;fDDMsqt){GpZU0r2Z#VYmX2u7ofuHQUVZq(f6C(N2_nKZ1E z<>-GiUlPCIx?c=DOW_T3MDZ`dj~i%OmaPTU2*BE0TQsh|Sq|XGGora7KoxQKw&OMO z9+mrK{2=&^`#pR^(6pQB^zB~m&sLRm%fx7>Q8XkdV7VFj$N&&9rFNCYe!PC!-?6{I zj}!bg_=~Aq_!~#l^($*j>zhlPOGu!W86k>SMvbFPsZ)g?yAD8Hjz)i%tuOXrm%|?o ze0k$xa7221x{AUuLb4&*`^6aE9002B?Xdi(?u8$yM;DvnAgL!q6GC`t%1zVdaY`}j z?$gyh?B8wA$9|`iVIMfC5kpLeg?<@Bw@6(x6Xsnd#9=$sY*00#Q$ zrn{c;`w-b)+}cQ%vCT8Q=W3##D45Y)GceeI5{vTWl3#CgU($c<```_Ez8gK%b}}yQ zThAm!QM|au=3|x&0o#w4EX<@0t+zkV7wjpk8w*=lB3PE;=4MAJxk)jqF>kzBjDi7N zk&aiP{*--GpU#*Yn>IAAkD-RaV({{#`^h+d@jE2>UW(0gbd9ZR?Daj*;svIp zd;sw+xmnXnWChh(hsZuwEhz!XR^#UCNG!zX@LS?-oSHw2Z(8a6nQo?X!byogyq%jp zFh&Oe@EZt0UE6^`H!5|QRQbF1WEX4dSB~f)C=~AerCGkn8DWl z=joDIsMDLoRix>r(u@|0Nv(CYow--tt&>NI`0q!yzY)n5$|(hMWFc8gZv{?ED`XHA zaBy2H$_UTI-xYKV-8Sad_5kuCGBBTR5M%Ih?!R)1{f`u zRX$+fyKDRT4O)}08cq)JjqK%Q;JI4YRj_GiLz9Vk+y=god;MSHsH?PR>(m%nZM z{8i)ciry?uYQssowM&aQ+TBIG!Q4m`kVJ}IhGYa}6k-)udk|TNyy_njd_|%7FGzIo zos>4WA`g)eg>q2=V;pheK)~8~ZKYMoJ4pEh;*59NXN@f{yg>}MHcs$Lh7zVVj1c%t z0rwSK8OgzAY>p4J_^ac8gD-q3;r%yDx4fQ9Aql#boU~FEQssAVXtv{#<}x~l^7eAz ze*MEPg*>+vYS5)AP)-qwP0n1=x@{}zu8pfJ-)%pdc&a#x*{uuHomj@brsUnJ!E*A+ zE85ztU3yuwvDCgM>lc=ATTS7}ZA7u6q=ZShmMgKsY*u8zVi}24!8^ABkJL}tGsk`` zxW13WSCKS&YucHa43ZUCqV=BXc1m$l24-LTG?5r?%zbO zce`in)ubR>sbYYK!Br?SI6@8q8@7>*D2(yDYm6QH2#5fDt-lT!F(j(&&KXARC?7B< z9%7Tg=Biu3ObOh_As7r9h(M~jY~w6I;|#64<|Y1W+S8$84$w##+)q1??#5I;-lSmQ zVOJ~Hmi+N6Hucxf)BX8$pCFW6{M&7OnZROne#Ss z3acwC0>MBF%4Be%usI;t(0&X>Ysgq<>`w(k7C1)YS88q){F z9P$SzDh}VJygvdeMpR>PQghBm7pVjQ*dH!S0yDH@fOi0- zV1PE|fjPr4#eF5=_{PY|+Dd>p#x|X&frHh8x5_X;AmE&z)i8}XM$1lBW$PH)$##4C zSp3Hl*R*Q--So2Mv~6YCKl3}=SjU#20x+r%@hLf653j)kI3Z&w#vhGzrp?>h-PO1l)`G7*DaQbV$T%a83Xn6L z5J>}po`v&!&&d`cQZ|lmm8(YmiH z9iRp(2nUnjy5tZ!>@A{w)l-qjT!Hfu z!6X0%I+4_Y&r?}BYWl4gN7?Cn_A1(bHto~btKBcq6-XYu07ef&MtI%V2RJ+qJGU>` z8w?pvMsc2i;A0s3-0*Xi01ggCN+RTL#z+HzK3}<#3vO;YfKFGEGsO!T2W|%&Kx3bn zVMq#Fu1Gt{05NWGK&k%#f$FW+_PW=%r)%ny(YEgOy3zXxUKu8!zvjSC!+v|#5U zcWv6BDQx#WPf^Fpa%n=SJ#qlSP)-0Lc_RRv4yPf9KJ`Au0AK<_;kh{j<-t3%oQ!3O z4W6Wo8dO5Sk&F-nWCBhxf<{I-F~gUI6~ z)!nE7A(&thfI%5J=N$$)2Y?4S+H;l_C6tr{1B`OaI+8&dJ9*Dc4j4Bghi3J=T5aD) zvUa=ItJhSOtX}%|TYS>>?`!O>tI?F*PSAF3!94PP0K$XY2Lt$X&PNo$m{4#=?n>lj z1CE%$W0QgoFfu{pgJ)qR91YmW0D*=beE{Q+;y!?F$N(hZ^28oaMhM0S%rTs2jCIHH z0Y@&9+1XypTYNgbUg@`et)}ZkM*DxCZIaV%ZQZg3A$J3uo}3nD$UshT0l+FwFwOUm zPGlzvHh{Sp;|xmhIAPlZCvYdwk&w+GVDJeT3*R6WEJqw*pS*H%Gs(cHh+n!G*yJ@Y{Tcyjkt5s*`_>F0^cXm$QHDCA_T{Ks-yBcsANnk+= zM>r(pWRcJ>TycYpuK-kT*(WCh9dJP)-~e-+gTMoZJadzpaZ+7*1%b$7$B}`@AP!3K z2P9;6G{UE^0C#S!kVq$!!Nz&rl_QLhO>@?b+LiBU-pbl)t!*vx)!&M&0oa7 zwWq}P@c#gbb$eYaOP5U1zRjiT7j~A*c@3gmU2TfqL`~}@#>p6*mxz`CuG;>tKW@+3 zTS5JuJ`DJy#22?we`-yqO>L%GEW0jmH7lfOENtKahu?8IM0OZxqgiEOQ5e_o`Qja0 zQSpwut@xi^ovt;X5bBq@)}wSrJlp&Gm$;OMW*@s(n4$z6Bx;BQ0xQ+Za`;r|uU?EN zPRU2wLNnI!ZN6)yt!-~*be8Dwv#iFYDbb}yw4o?#Q<74PS4k+oSw{DL6S8Zrw)*$} z3D=-&-aY-L{52M#t?SqNeuJl9Yc~*2s@~jNy!nFG)6R-Zhe-mN%WY*~tsd@32EVPC zAxL0~BwsJejbj}`?NwC(F#hoXfE2DkQa)p!=QI8Y_2D$V_^0Eq5WFl_$4%1o_~a_g z0h#Wuf=mT&rlLo3eLXcGG{uIHwnh$7gtnSFKj8aMb8fr|l-^%gqSYnu?UI7Trg5w@U9@ zBRx?<8<;1UMKa zv6bDBM%>^iA1dT)L2_ z=W&iEn&j}g1Y!`wI8s8MIRp9A#?qJ}iNX*S@VkmJ8+#@LWl1cJyzeO7^Wrbf1olzZ z>h`|<_3gH{+R2}&@MR?&wyg9{t|o75HlqqrT{UV~v)1k3p!Gr&?7#q(#zsK-4jEK8 zML#A>mTY0U!pf`~mWMNy1@PS2$3?LXZNU0X1<@ zU^!L`un$r&z~Hi}Cz2GS6SQ-?s;kvia@Z`5$WgcjE;le%E73xcf&oq2wvZT9>l(<< z<|!yRCFR@0}L?CalpvjRhTFNm=LE0fdw#Fe5B^kF}f(sg;0EexJ)(`M&&L@ zK&ORWsz45)v#4BJS9)5_TTAa{*G~KI-QP-E_p(}9yIYYry6>i{{p?l|N4z^JcPoqr z3X19zlpiYNa3CWunAl)ACwJ;c{1Z#|*dMb;kC(unGt>+}4E$}W#r~CW>}@H3z zO>6Gj&Nhm&Nj)yN?YnKG{S7=d;te0gT1}ReMAN69C}x{Ozi?)b3wY*f8&9}d?b%ev40gmTSN4D4ZxdVi&%$~S ziLJJk)vPV<&;T)s<4Fe4Sp1|i6~X6#SRO0mt6{2Pr^z&){E|-hS}nItU2`_B(@$gR z@RikgxhUDiB-7daI;NGa_^&gf5tKLtka7t-fl>l;QAP)*3uKN))y_d1ZUut%(G*NLZ1l(lvd1GK1~~b0 zdiCr=o{FvV*skEb1{@44akO!?=V&K|z$$w3MlX47>TpNOakyiEF^r5i`#Br3I6R!| z{YuA7jitM}R0HO4%n2WNX&`_HRUok(9_^g98Ofy>sW#Qtt-pr;>bk#Ydnc!JIo5?3 zN~K9c5sXuFoRW%KT{i5NpL4s^8aE8tQ<4K`py;O?c*8Fsk_#zNa8Q6M&vR*Jrb~&E zB-jfFd=Nfd91nlH$ST0}W?>eP+CHO#q}FWK#*y|i{uWAfbNk2CDiN|Y+c1wvO|&kgR)t3_GV)=R3o-gdaBt1a$)#E!dI4;IZ2_ z(Wp^{0m7-ze3jf=YqnH^xWNPtpD6&i!-6*qCt#32o$&zXNH;Fh&9sxw1W&+X4X2 z0nZ`N$$*){g2Zjl&69=7<0A&YEWd6~0(?~X=Xa%iH}FPm{65ns_SO5WjT*rVBN)7- zK+;KZAzYVW1W1`-y@h%B+}kS3;H&0%>^=(*7M!PEqJpy3**#^Ve(FuVQe6+C;oca| zc$XVX0hM4eII5GBeWRmA$}oa)=ai(9QC{*|w6(kVRsR4Hzi7{oz9{(T;|)Vo)U^wN zp)J(IO4Fp4RD{H>AcpGVJQb2gEC5ZoL;xWUrJKmSDe$AmpAar1gTmey)pao|1zWYY zXze)K*z=@}M}Qra`DC-G5rqY_U$|cf{{Y~c{s{2f+3KD>o=tZC1dZMq$dWI*gpafB z@&c(UKyfmwV0I+_hWKaU?}PjuWo={O?E_A*hTb)bBNePZa0;qaWm6%BMpp`}%X(Mj z{8jXf;q0ML3By=PX4UDoqll`V94eaSvx>8v(zLGq)YY2NBl^>XevdhwdQ>HyVrk`g zSg8L1v(V+Kh@H~EG@ABtl(%m3*|)nt06ri80KqqYE_jwZd#!)S(IA*Cl19pP_ zrSjMwIAEvCQdp}11${-Jf59!hKW`i|_=m+eGRnJNRfc{@P_2aqDABUZg69M-^3jk& z*X&6^K@16Cz+*d90ki_75(12&M#s(2lf_nem;;5$WZlRaQWOkuN5~HggOX2B2I~Af zGx7fb#2m_}?s4?8`f_WQo)U~BWZl=jH74}6n|JN5r|ns9f*b{arxjZ-sg0>+dE#qM ze9a|$#Wf2)satoex&0Z#5-g0YqykAlcy0iWqa!39-h;COXq!c_l2JF67?grC2+82! zZg56MK{*Tv;E+vf+}kv5<|fn5aCkV$xHeD(| zEUZq!K;6a$IsPCH2ySvg=s5X>WC)^$R#};Iy9&*~>4H9DGsqbrVY7^G13fXkF&&aF z)f{8n<-qKE@JPb+9db@4sbv-Fl7t30aXN}XT>s;%&>Brvy3U)F5Iz7 ztG)D2*SphS$o=>K0D=ck1<(8wM%x=e7qY1ZRqo?Md2GEQ~S62Lz0aq1}^=~C@Zk@TTw0{qk_tUP{TLZ??0l8af0I}WI z1RRFWG1L-I9SH1h!W2eHAalqhWZ(>Zpy7IBo|rAtqLp37*J60adCoWh;P%fM89y<} z&MJdPK1f2xZ$J-xbjASyHhAX>at`7$nsbeul1rBFzKdOLrJAyTX4cnc-!92pOK8*4 zMLX~EyVLM5I0c+5V=7KJXP^X*0016B;BoaNAB?|fUxp)H@m7=K8!bodv%P?|y|<9= zSBBb8GC2?y1}&tzml3!J4U|$heP(W^fy&DhvVt=pIUR5hBX=YmcRA=!4f2=7e-x~L z5N<6cOMx7A7NXS1tk&gaKQqUSY-eIr5tE#P7-UzSnANF;!#O0Trzpj1@ZG64-JaHV zdR;p$&wGYwOBtC)G^XiFl{%Fg)wv}UoE_D*Qoh|APUp{WXD*v`*2TBHaVoxCu-v`F zU;+urBoCLM1lRMi`)3fpw1>tAC{88#VCB#SY$W3Vv2U0F2mk;%0|07Pe znN*S$J6K_rNgj=rBO@cKyPYyRC{dp%dm_P*bV@st!Z+{$!dJ} z{{RJnLoe*R;CWXnsp3x!$g*cAafVRY1ToH79s@Ic*yuC-sa~-jBh#C1NW5ILsUgUb z6#y>D##O#xpkR#VKtcYif8edt8NXz&1-mBTy7z_%1U5l1FeJCiKqGc?+eSbHv0-1z zZm^zayJm?Xa&8C?00b|ajew|j%5FXQ7y*j|j}M3+{3@%vb5f&c*+zRMd%LZ4_1gCK z_+dZnUrMz+^tCpf?5_5^T5hkVzptJhNTvOk{94g6$gx{kJ}@^c32m6GBx7kR*xFgh zz;a740Q?uKxG2mUImY4qBn^WA5UaI_#C#IY8Cz=)o9-V6G^6%d@q@TzVQXx^Ge{Jw z+*<%x{rm;m6aaRsMx?8OpMtfiS&>KG#?V{4C>UNtoRjhvz$L)|g=NY4{wiPX7$<9A z2TyIcZ*{%fcI>TneZAfjlKQ?mN!r-y-q(L-n{QUFrR=Y5JL+b5HtX!ZJ<_g4y4*Y} zc8*5Z!(r9H{uaP2BVrCPq+lQD3*h&RRqp-=Y4bt$R(t*D$imLi`A8X_GQ@(-hI98u zav0;E=ik7yM<2vp23dm@SpfmaVC4xc8_Yc994eHNk_XTK01^@f z)VvF;n4j$9Qz1N}N0yQx498$yg`XvNH*o4QYuhew6zP#mbi?e=0we+1NiCcqU=)nL z3k3VX6Oem+7I9jo3`>nVG^xQxEwxT9ySTL`+IIWzZk z?7R4>smrNh(sbD&^5kh9%f9e7vW8GrGRg@7k5E~P^Y=&X4Wrq^s9s*%-NE+TyJs`V zs940MWPHX;vLliea8wPzmIMF~=JocQ6}8pGu*@CgY_x1k70U*4Rd*f<2P@@+lBYg6FyGwO=m7;;9WsTGT8A0a0#_Hh_tG%gEl z^8R#?Y;C}*Zyc|f+e+3rsx;*&&NWhYw<5PL%S$BpZtrEbx}?5K6tTE^j;0?IRmRd% zrxdFxT`l8hWz6=yv{q}chFyF{x$xJC?x4`GXVUZyRh_PM>y%`Y%5tpEP)J!pEi(fd zWK$o=-10q#_I&u;qI@OzxohzwQ_+&i3fA(_0A_Pj2ica){(GVz>l`E1WfP&c0`bba7c^9BN^zDb8`cy`&q9wCS}dxb?DIHoVvK zR~%5xaJcH(o>@+<3iFhmbpr=FS$)wV1 zH`X$eZAB)!Z)3xs6GuPFA%ez5VY5sGV(|5qpsGp z@c#fu(7Z$N%i>OqlWN*rl4|}N)S?b$VHlLG4EqahR`R7Ey!)tCmmII?&x7x6d~f0X zH(&7m>H8hC3t26sa?+rQnR3yo-{h4!J56b*NZ$Q;yBcnyW3}YNgEq} zBiihKQ-&^765Rsha65kR_*L--Qt&>n;*Ap3VK&;8tnCH7gE6FztnkkeW!M-QK73$+ zyO$U^{Ns%HmYz|H!9uq*@U`UqrB}?|2}Qy(l8R38ZQfQ&*1KxQ>YNGU-F_YZ$--uo z=+wa0jPO{Bu#BE26=4-TJClk^aZdE_y_{NV*MD~D*AU)aPPSLDU0ea=Ok$ZIWTRm6 z-9qIbcH#2_$R_}h2c`Tz(5|HMzk{tKGJUG=#eN;~Rrl-;+NGE%WWx1q5s`up;tG;$ zT5Pu)gsP&5eV+mwGOt1=Nw;Slvcvm3BwD14%3}vdy>` zAS%DNd=b^WU9J3H_*LQCy?qqwzYshv3S0={2@=Vx*db2xFl9SjwOdo)1jJCB(d5-6tWz!W>itQ43a@^ zassg6V~neAwQD#pZM62012&BLD!u#gUBXpO_JYl1)P~0H|DTAHk253=DvN zT#RK$-Wbj>Nfh!NDwQ87#z!anq;Zd_Ah5vzV4Py4;kGkm@sdEou^Akac^K+FKZ^%$ zJ_;*a>AFi~)~iMH{Oo?Bn^8-mw^i2H)%Uk|e<31}tjx*-4CLTrJdZ#)Cm?4y;{afa zCYU^mp;!>S5C%>$kl8uMABi~NleabtwKIhz_XMdYt_IdSvz+H74tU*`C7RXD$|R3q zBoNua`@66(02m;H#t#@dIpVdlz1mHr(!19F?)@9Gev4IoSrD3%_hq&2llW7zZC$+@ zPWp7U&jJ0SA}7G@fJhhij9Ic&{N;E##~2wWkPkvKYx#QpyWvCeOT$D0GGIH1I8ZMF zs%`}JE%!(9Aq3_y5A_lILXdn5GZqAWw%2N&`D|?+vyPc#j!4PDKg-|k++{x$JS-81 zma;;dK+9w8XhM<*ZZKB>kTMkR1lQ=iEjF-o+R4k!-MFhXuDai@nl-(@G~&&1@xJ`A zdnJE&zjgPtwX)yh-`m(cE8r#hQC~us2LQ1j=&RHYa6VGNgMpj^4?o%`>}xYg`!9SG zX8X_Z>%u#-rB2hJ*b$$bp#%^H6@chQYxubRzhnyE4n9IRX%hkfJC1C}3KVr1Il;)t z&T>fp&Hn&m>z1GPTKFF0a_;zb;P9n@>U=+^;2eTEJ-7st!zZtY#Bu%hCf^sfqpq61 zM%(K2TUzaOYeUrGnytJO_gebCGAhc={__uKe%@UzweHWUum{cezG3o#jEr?8j-vyi zA9M~!G&oQ>BW_C&a0;A%76CZG$v6ij9Bl%ajKB@#0!Z4}9f0-g&VFJrNcpe^ON!;e z>NCoMI{dtFJ+evUoDeW^Unv*e*;(svO|915ch|0m+%4>%y6xM_)_3^5b<*~1K@^F~ z?&Oxq9AIIJmBvQV&)&xwKt^-<(frxf&Zacwtc%C4__w7T}cad5p# zpV>6y3CSqbsH4o3lv8)M+Us`g_ioo){G0ngYmcqp=wnW2fwb{AndhlOOxOs!SwK5X zWt0{m4q3`yPKmZBRLIUfF3K*EZg>B_>n3jBdxBhF#wVQ+FzZS zRV5pMaG)qS%3{BvZ`vl@FT-yfHWisP?L?_L+BaKDF~(F92>^^K80dJf!EX>KU)f*c zpk;_3v+95qW8N~IH#RYmk@s?O>0h`gMtFHW?}V$a_Wj&jX*+C}y6tbdpUu;&DtL-< zPW;%)d;b8A+VyR=*2!PK=ktZ|Cj0DP6e0zg-S1sQAh*m`Oypp$7~|z6autRMJoKNm zBdp#l)^}w`m{_O*N`C2nR$#;^>Qn|QNWcrbBcAvRW%iGXu&M=gOW7TR0l4B<04jxG z8|LZHISbTdYxaqVFN?M03*?yRV8dxpTgw0+n=TZWBLscyE_W#h^6X=i%2w_wyzI5V z!qZw==$+GcPWme!tzZ)V)|0j5@U+|6J1IwJt?r(yb$eOH%=%OIE{Zj{vkh|Uxs9GU z-PnXO#usV*jv897~sYZ++~{s=iXGX00Ifz%xn7o{f@M#tiBs8f$UA1#76%D|~O+y>+exTphmRapKdoZ(=xSc=l4&nND=Hq*1U?a`){otLHUW&8F) znc`!F!qBIQloCox39aL2cHeiZOKV+deQn~8+5N7*83P`qjO$^&P-AF2S1Q3|4tHP$ z3`&4V0hxDK^N;&Sd;`{`@y+NrvBwRhk~ERW`>!y@(rp3C9p*(DC$1lnxlq^itK&b2 z@acXBYd60bFf#60bGLb6hEPE#Jm8QpP@Mha__^_CU(!59uis4-#1gwR=5>}beD}y6 zVL}^!&cNURFb^Lsd@gs6r-zjY;V{&c(vLK`WhRnIN-FzG`e~zf-2E3P!{YHYYfBxC zt15GC!F#bvS~T{%(XMBu{O*1=c*Y65BX{;o$qV^JDzmfZLD0I8a8*?^^MSMzyQw4R zPl$JZ8oku4ZeB>_Ye53?Y6p%ii{i^Ji4RQ;sR}*=_#kMwc z%WqtcN`T5s46qxy!5mk>UNW}0idzQ&i2g=!7?;Q-{N)rJk@rC)D=@*vMS8hqSV}Z1 zD8>`19eHk=ZL4b4)$O(XthHy)=9Hy+w4B{YLQ9cL-c4OvN!z}b)uq1oUS<1C>AFU# z;TxOhwNUnulWi*o~P$`%>hmH|j= z{$0E{1MAj^>&mLe2vWs~h>WWd$t91^j4<4?XRUu!U$NXId>ZiDhTEGchs;313m8Vi z907*d&7M&LC>-a{;zrgIowQD}(QMV1PRh&D*IVh)!*RYcrS)oywe5XeQr%y(-(C72 zSzAIHEXW@wNBM~aZY&oHq_OLQ;{~`v0baME(07^-k%zc?oL^qg5w|^+YVHPj|_Jm#kUmz zsbQQCiN8yVfo|=I=Q~E?atKnOZ7+k5n1hUvq=MNaKE7KkRi*wo>$bOw z*8Qz}ZLaU9ftw_iNhf>3>3i*Gcea<++t*7o?9T-$DG@tYY0m6plg2lfeO&5WGzFg{c2 zIvS;HP6CA-fB@$i`A$d~Bh&)Ko(RuM(~TW*g&hDRZ&E-58+Zo*?I4gaFmM2__R_QK zr)S#My|wb+r*oHkJuPdeZM0f?zWw*^?Z%n=$AAVn!k&Y1%Wf=Gec~56VUloa+(-{O z<2+i0x?Nvk+jD_~fHE?Dm$?I>$ON7_ z0GymT6LI--oOJ4Qfq{;kb;j%yfJP~+$6SHO86*w|@Q$Pm{I~-LxX7u|K-zPHaB=}% z*~iLx0FrV(qiDfAtrF{g`uToaeC{`Nw@oy(Z<}VDyVq+r-jD7?Yr_+j$F>`uI2g_w zoG=8iA1E!(WQ;51;g1{)F9nI@a8p5W!J5ij+U{#wN}21R{3nL zdnwVa@+;R21#B3$3VNgoxk44%1ETsPqNqTZnjCa z>%Ny=P?NJyds*Js>9wuXz3u3g$Q+fzkC%2yEA4dB+V@w!mLB%mZ11(c6!x;yNBO&eJnc|P4ck0%&=3mr920=v1{MlTc&Pn>JbYn)GXu>?Of>BznY?bcstLomp z)$~3tt$Ej~>eOyhljfURB>mf~Zkle(qfI^Re)0bR!5VbvO_#*2M`(E;Sht9r5rGDs z5}@4J&eJ0h#~3^^lZHRL?-1O(Pe$$=DoGod00{&Rqa}d^;DdwsYySWQWocVL_>6WG zL9YN$&9&I+)_aELXWlb{2^cH4mD|tmn($A{o}6vK9XZDA9+?=!44%TVsb$OB)>_}K zy*JX^-+w>Lvll7mS&uT4{{U#R*=VWKQF=DJFD(|E6ik0M2n1tsQM4AxP&15>NEsO= zTLg@ZfgCVp^T1F>?B_iYk^uP-oRB#rp5UBTn2&hp9AxCE;EG%!>_Q2bE*-G-}SYp;CqtwMuXIiCs<*l9k#? z+1sX?oV-d3mJB{#Ol5*I1_`}>=H(>_D;PU?Vls+NOp!Z%%Efsr}s2?H;N{& z9v{tJt!A(om2G3K{hz9OHKpyWujB%7xl7a&a%PXOhHh9?-mHWWdQ~u9i z7Q|)c@U7A@Rspxf%mz^5fy-p|a^w~S=jXzo?a%fy_-&+kKlW(&Nujx=DI6Oul6)QI{WmXkj66II4WbEYLm*}3B zDqJs|V68mQFU4i_<;tnc6NjlqRF$L67<0uY)~(sQCwHSilCK2+0KqjsYrhw~Eg!?U zG#F$cwA%iw1Z<#f%A0*TFJ#A1qXe#Y6NbV1yTShe@I?=f+Q>;fOXF<|L`MOnhfUG% zFI@-9b|klVHVWzr;148@gaO7stg&Zp2-^%0#&`*`HC?#FdTISdEPK>*`+?DNo->IobZT(iewns=#f9hKWxyjpE9POI}rbvzCl zEk0YdZT5EEr0=_mU0c6X;C~MP0KqnYWgP-IBDeTY;OWc+IC2CTTN_|=yk${DpzodP3d(0C8tNa*4Jxx^<67R2v83MXKNhrF@P{W?gJ2T z%yzcmq@0Q*D-?U(kwP52gs$8SbHD>Q9OJeC!Npwii6ESYQaX|p1>2py2_R$xjkxMJ z8u|YK;+KtOw06<7$HcM%CvfDLm5EKtPeQ|mIL}fukOsJHH1Ty~MxO6kJuIVrT(9Ks z-($x&@we8G>3mia<%MQ{)p}`=?cY**vG380$)}V!*i<7Ey!b#2pll%xg^&pcK`tcI4p8c-CjX0oDSyz;1A;*{Z&wl5J&4^9bQb*e@& zQH`Db=DicqrS~rv2bE)UD$u2Y!s0P?rukt{4@OmGCfd@_joZ6htvA<1Wh5cD5C{Vp z&miC+0ZRaI2*%J3005HQmzdd#bm@$-BXP=x&PFz``&b2YyCnRzZgp!|SgJ|Azy}C2 zGNZfTkCcTu7!26R$Xe&FwVTO#hY+dA9a)%s#d?Fz01Pll$Rv>5{#(QzG;oGX&rXIa zS*3Vi_gFR03+R>VyFp#qK36AgZ0)D*953{F*Da#@=PS``SH@^s^a->)flHZ zy=@gG3vBhXIyn+3OL>l?l5kH00b3k_mH-Tv`q z2OxDIcNpd8dFKBBTO+v30Hua-c?-1x;Z%;f#(d0?l4~+x1S^&&H~@|YI_Gd80lk~$ z$;$z|2EP*G4t~p( zMsZnkxl&)b!#12-T&cOWeeTwZ_UK!>)~@B;un!_KfE5EL7$YDMii2xfMBsst(SdF6#py&tyfI4yx;z-&Qu_W+GVjCYh&lwr0(lAbT zfKMQ{SRPbl?!fDj$iV;umc@QInsFX;oz!)6Ov@9Dlh)O0%a$)sf*%ZTb*f1%bZ*G~ z_a)(sgNLaq89r5nz*A9-U$CPHN=YP=oYZ;b?vwYLzW%gaH^@jC1x^4X7+^_Y2?wr0 zW7KZJ2Q<+R=4M;~a6-30Fux#B#~EYyOE+c(hfM;JfLLcFY#@eh+$e2~paa3kB;`8s zfx0F}Ra5tdM+=b4ksdf3hDPj>l0m^wnK><`@xCjv4VF1PxQecgTTehOQ_~d zJFevb4C5z^o=MMM{m0AzAXoZGm6hVR(dp$C(O;u$b*sLt{tHu0r7J1hP49KferqnP zrkyPGEIqt3f@DQ845e#bI&7_Pnz&R zRIwy+mIrX#@{&nX0K(@SjyPaX2CHfjB9WRTyowWgxwWqYXV+FH9V-I~+N$Bz7Jv5meP_~JEI1-vz^s{`B{8S#J)N!@@6 z=EKkgM+6O$>_OtO;;@;!o{{V{= z1ZQs#YRV%VHd@L+1_n+(U_SOi&NhRZ{wFT(pZ*amMaV6Wh*r(JAV;$6P)si3LFv!} zxl-I53jH&JF7SBOB=l+PzOhS7?Q1T*b>7G2JZh9P9210-jH#r)O9uxu z-Rjm?*GKJ}R<-umwbIwQM@!V?w_$5?%&i-24A~rv5O*;ko`0@SqctxZ|Ff!6RuNeBlYFD7eN=YPR0V`d?f1O}@(BlBqgxlaf+`YST-XMv{Y)jk_f0xChYlj+pLw>5OrNRYe;$6t=q3_Ho|b zThjV=Hf=W>Jr?RuqqA{uweC0iQFzq@$#Zb>G+;`>PT1m&dX`mul(W?&{mS+V6XO$E{0mbE%2!$avn^ zb0URo4i3;V*uem0i5TUaup{~H{kx-B{{UzoiC$wi$$T;38Sy;m10<20 zjVA@qO!~T75I8kr^}B~@O-R* zw%{3|Lc|cK9N>-MV;IikU&>Cmv}>AU0yt9$#u0$^w(`tdN<_t^*C8KlT_DLUZUGa?ozu;(^sdh&(?1S$nyToUN%V(d4k$L z6#!;aEKFDs-9AJt#X>M8oqle92-R)z3ouf_ww7MufDFK@22wx@Q9&dS2;8|f_s_${ zE&DWh#X}%6*#^M_a*sA4w1gZs2n>uFPUIjH#e7Gq+ZTb+N}`n<3}j>>Qlo0{Ln&?! zHx*VHBD@|en^m&=rundt+qX59uC=z!ea*eSjudKCa|NnP8#b=D_hELeXMHTLl1~0? z^4$V8Q9@fMfxhfy&wYfl!e(X0_P zp+Jqc%4Jk=0b|Gj^U&^LkHHH~E?bWpX&+}SVpfsn0l4zmg2NH606D_v_;%s8@PDX3 z*n%B3JPY9ad-$#1SarA}wlhPyAxB*A4D1=V0tjpZz(zvg5 zZSCGOkCPlbU=(F+?o*JU;9v#MdE#G$-aEh1ZHI<*nO;dChJEiVG?KIkOU8l5*wS6f zL6E2zEtWXXv`^u^GVb?47REbwnr++ADUj|F0sss0YI99Duye%rck%gr;+jmj2*=-c|*I!ou06@UJ zRtFCV(Z*D#&fTLFn!B~NmE^5^Y@M6Z$)C@6#jk|l6{EMjy3{-)C8~hd^33x!!UWs5 z%?hF0C5G+CEK3l~I2HNzt$aH14TZ(~e`Vdta~nt*OGr?m;d3Uz&&odT;6_eKJ8Sw* z_~&>|k*Uc&vWs}~fg>smy9rijjSB+V$I1a4h8TMOU28Mx)7?xYj@lU|XB$;wECR4T zSsyxwEKda&KXe=}55nhsLF}anEDb9?Q;eKtb!D#h`zcv;YWp+pGHkyQh^0Ex%qzFn z6G_D-(O%bWSy?OD?(cK**ZV71&?ozDqh~B}Ib;iPkFZI(P$w#ph9N^L^5KunfB;PC zVd8yC;H`*?2xki)oQO%cR|K8Th~WL@8&Qf7m;j7}_LuDi;rl=MKvwcQcDE8w2}$C> zW|5>|A0RFiA#fM~LWs^W!T7M;YCajeh8S)plFv{OO6+ER;n)H;sAXgYfMsGb!G;qV zAz`s=6NZIfXBuvIPA#|AI;NjnC!(}no%Fb3u(c{wsY&7|E=H1)j*UB6G`3DjE}hf9 z++U9V7yMN4_05K(Z{mxqbkybDZ2oL(6}-wq`Avxfo$L1%Voj_zI&w>Sz1nwY>-T2E^j_TavD~IMeql_p(&M~~;zfx6#D)4YC zs*Va6o@vvmI3$(SuO!+^@=ED$`!v$g-6P{Mm@3!|Q%ZH_szq{6o+5FIo|lZN&HFpH zud`B%YfhVfC)70UUei!}>nZJZORGtj>=QGDNdVg7DHxR88+P5}4bFEG8oZD8ZuoPl z>s~mQPSlabp0Rl?gfhbrl4cUIb`ca;3QKKfVh-FA6f%QejeTL_YYPFYe`wk3qIhP8 zdmFS>lx;=|Q=tuj6p#Tq1C|3kf51Nxc&dMh)*5$$9(!$a*Hwz)H2bA8+p~*}lk9RO zDHv0caw`sNvrJBSJ7OT;%A2M{uy}ZUhuW0!(UqI_wN+GWUj3S^;ryVk^!*o zeWbGCj@`<{16*=Mw+|w;1jRQm7z$KmfWWM3N-~pxz~S-<>InL$;#=HZd|B}|&%|3> zYulUEfX_XRy8V{fk|^V7WI-AcEM*Eym5NXXN6qs;ns|%A)*4jt>pCQ|&0{b!tZ^ZK zDOp1jG4eEgVbd8T9u`#?`Fn6jJLqK_@|lHf88<8b@Tz!T5_FrfAFojL5T;!z^K zypqD`LYzk-L%}6ER{6I8M*wXggNmzpsNCC6p|g>`&iBYzk1Zk>1wl9&I8b^KleiOu zUzhQ|MJ&$)PJYd~(~U^Ya;MDdMLXKo(LZ+DzV=7KV)Fb=7*ka#Ny?RaH5KCD!B(4X z-RRUMB^}-RG_HLq{{RVIrKb4RlHT@kF%(wNnH;Pl;&c;vDZ6Yy2Fci0Ilv5hebMl@ z#-0}Vd+|TvPldAHFf=yZN7~P-gCHp@9(LW0R0BAo7U3i<} z7mKYtW#K&z;OQ5hA+Tp{J+&K4XeGL~j_KnGJeJ~A`$odZzG4u>hEelJ?6Lb!>7TWi z?L+%Y&EUyR=fh9g?(0bSL8R+2vb~pyd~YGT)ckFz+DHjWY_!*pOwlbTLdhhy_tM0C zxdXT3pTe(?wtuj%{1GR?cYYqdgHHIf@yf@<+INEEMO3_tS@D(rp!Z%PRVRB52SO(C zCSvHbEsQN74xs*vf58Pl1z&t9{fact6YI852DkBN#Tu`U=eV6Qb9rHQ@!07z+)7UA zUV9rzu7r$9W}TdF+)aOWWn58TGQ{N=IMAa@5s1jCXIZo@y}#N|{2kzcOma$oBH zE;m-3r!C#6$;LH;9&GQImawPAf7Xm zpL~;(lan3e-rw9J@g2Dl6%0Twc9MHwjGX%Cg(rdWN)G!gT{}OOpHD}1>a;&fl~owR zDYoXhRrl$4{{U|5v)4|IHp>_#X+!5o3caCjirWJpg7!X7X*Us#ZLc%u{{Y%D z+h@c1okkfiZ1%9pBzfL|atC$?oxJ_r*Yf52bUL@i4-PS69cP1*4_~zBJdB%1IQ{yf4h!39>2?%?bWhBiGChnKn*M(dv;VA z!5AcCjNk*2o`t?_{*A(F_!-@+skE%Sx@yh0ZSQMplk0STWySR(^BR1ur0GLTJ71Oc z(#h%B@ACNT_V#Gr zS+WWFfh3-p#s)s=_QyXbQU#KV%y#u14nWF*#sN755^;^dW1%E4fR>Ixj29b57?4JB z^5CAwCk>n_$R~AtweQhsx=zn!r=LY=-?pyJ{q$5)yH8tco3@s=ms?ue>FBJ8q+%51 zatI1B&}0LWap-ag``>ql&3eQIOd=;EtsAIN%Rckl!%;;Qs)Em8+lG>t6u!(%J_8Bm>P{9JuM-at;nUKO@=5 zG|h0S=)IzC_D`1UuTNY3=Y_=A{>H{TUGgh6)j30==3w*2g24rF*)P{7jOrV-zxxEAKwVvFxnK1U}v~I1B?PV!ReluBe?tv{{VtC zzRh#?h=j0KUle#~;A3_h!xo@$0OaAl0V*3ifi?T#6o&u;2S5){!yt0ox!`a@;0Ecx z8GK1;X1I$amo}HZz2>xbT`j)r(C6Vf{{X^GH08ZnX{yzMg$Xp7Xd)X zDU6exu0Ij+lC3yqn0jiIWl!4BN=`R#nZfG%`_1frse;4Nt&w7?yhN1!m3HE%rjW8+ zuU%42*);B%`SJTkl^+ZId4}aQ`~IuBm^3cGF+GNPCvZ6D=34v)*8y+YcjCZM$sgIZ z6SdTvYw(#ZtR{l;f*OJKopZQ~BTho1zc#axoGqBISdF7;2OPN}pQ3)umZiQggx&&uwsk5AJAs`_f{Fpy z4l-~EIl;g==znTkRfEQ!Bt#H|7ZJ8qHjTj(0|yuz8?NKL;@CI0|Wl-{?u*h<#!-JR~&YifEo>`s!$so6cb3nYy3v+f8~ zph**VCEI{F&R^#03mX2Wzh-|HU+JF@?rrX`?g};S;zq%n0h$A}i9SF_8;%N+;d6xq z59UYqB-0+|YY7%L^49J5lpB}<77Hm=D!JaIWRZfoAZ#`LEPNiYdoPFayii7BU2F+A zMjlX-sEn{wCp&`>t-E1jgtC%Cel4CXU3%D>IBir^UAcYNZdIuyeRVe zaKhBZtEncRS#)XalW$(Ft@cOMTGf@U$AV=3*S~wAa|_A6=h28yQN!GJ>D8Z%3?B);8A4`faW5 z_33YtzAX4s&s1~v`Cdkem&z>Qmd04Bvoj5<8E`_WB;j^974T2Q%?{4q?i&=8MiKVL z=`uvS((NGvPe{{U!cY#-p} zq^%}pHnHq*`Ew$e%LYKrz|P~)jjFp?0M+4M0Jn|4211hU-m>OAkPqGkLKbWW+(9R3 zRwVKWuiZEn%MF-CD|2D$-MuA$ar9PK-%HuI)g*sCasL23@wt5D)3s_o>T65Mt@OS3 zR!KHZ9h_&edScyzUlAs8D$ z8&K^a5Pnnv6c9GP+)I;R%CCmem&Eo80VSo3d1%KabGek2QgAnO^JPyVj|6{KU$RKg z!VeD?UCgj43JTr(29R_&BvKiwpd zxIi<`W5x>YLK~oWC9}9^3|77=J$_gDzFqWQUR{;$eUCd&rn<`gHI46dyQ{vsTSV`> zrXzXLhEw;^RDf6!g~#1IsN3?9v6)Jf)rj|h3??ou0a2AIcLdwG907t31`6PueB5Iv z0QlCC5*e^?R1uSaHskof86!E`qo`J34;zoT_*y;J7QuEd*HAdx&5gKKQ<4H@kKN~< z@GVBb?_s zT!I<1${IGYnjV@ih z(rLGJy!1aY#yi%Uv%U1Y?Co^Ay_NjDk4Looh!k#IC<7TFji)?xIUNZ(9SK8<)I&x>&JXbd198a7TdlU$Yo@Df_5T2abz@Gc+hyn3TdlNh zTF&dpd}L(cV}Npc?!x0~>4L+qNMZMI!zMtS436M!0guW8oFAbl)37)Inl|M^t~VSI zK;=Ozl1@22dK`h!;Hjst4~{rc$DHI~XO0+>e~+QY-{Iw7_5A+;FZcqz^-pE2b<);a zeC+<_04YCrAmf|@q^VFBCz4KcoE+eANd}Yv2+EH58NtRm;2e%m@f?hkoDu`EgN@lB z^Y=$gb=mUr4VZU+Gyj03fUa95HS?&L8U_aJ4PIRhg!Cv?B7Y_0O!<>X9dvyQtf zej563<}rZ4DhS+r62~KHAb>{%XB_$!BmzV-Ib0FT4uyLTK41nz9!Dhi1Po_06V5Y* z9OZx@5?2@*$6go$K{>_$ZQpBd?%$_Pb#LYK zch(YbPnGpsTd#e(+gt9D9F4{>25>_Gv!Prn5_sVH5_9Zo2RvhveZdEYQ^p2!o`)YP zBe3Q|$F?!ojFXdrx1k?*BLIcYJB~Sj6ZpSC@P?UntLyrOwx4HbZ!FTuJgE|diAymo z?5e7`B$g#W2XGwXlXA2iUaeUrth843do=E}>8dTtG~(qZqh#A|>dMN^w(V`wenOHy0q~8u#qM8#L8MG)Re8PAWAHZ(y+OU@J?97 z&m))2hC=Tn6=spk7G`-I26uL5F64a8l{kJ+(dF4IaaFNO*Ku&CX7u-6<=XwedR?C- zndhy|(!xo5J2g6~d(KU!)HO=V&h2;eI=_kk02BOs@qfg(-Zc1+;!FPk5bJkOArnsc zwz7ss+_w5LThWPd1=&TeCUk(FjEl`Ky1$Bm?dz%Er!%7Cy1 zP6o`VXA$9W>#&lMil&lE(Ml0*HnK*AMi%KHRAYl<6T2&DRbg$&910J zFpApJ5~BwNK^&Zr0nf+>AGT;XH~{p>I47_t1mut~bCKUU0PXyy{{VtR=&NV@IwkN0 zTT<0^i^grM^KR59i8Hid@PMA2fTUoW{bW@jg#chi zK*99@w$Mfw3JJjA6SxjI6_ft}E&W$-xqdnYIHvVZN$Gtqo#Nwb>wWuMqjx_%{{U>A zJ5QGX008Vj6Td}kn@ekn446iqC6R_=T;+zc|`h*T!hdyE4m$ z91aOq8wTCPu-pg$gTPQWkN~ga&l0gUf7blcF{w2e&Ww3^q@t3gOGK}2F8U>Y>woq; z=+}Xx4+pqbQl(Fttt?GT@2;tDm0fo_F7(F-Rs?@yVpkcKX~>O zlS$L2+ivMXH?rkdcUtyqt8UwC1=QuDl;GoNAwq)3J5Dpy72dc63~d4MIj`um;C-=A zg?EBVWOxsU?vM%4##D8;mBi? z{VMz+w=n!T@VtH3NwQvdWEHnTj2vzp9=JH|iv2UgNlvCSFmju2G%3YiPfN>n-R|_$ z=9@p6zLC+TOD^H)#t}|fyi}hmQIq9`6s@Ma>hHek>~&3V)NSL8`tWi_0X*Py(137< zk_0|L@YFO8OA`)I0WNpI4AZlZkpQb-qZWGU-tJkw!V(m(EdrXidS}fZ=9VYZ-n^*LCXbo~0{}Aeq4BW02%$`?<)*LXZbs;~u={;vW)+ zyVvz8U6>!Vx~nnHQa382aa@pi>wwtj7$AMka}a1`85m??l12~67X^+_%FH+;BjwIc z4SX%*Tg!bTTGZlsgCDg@R04MpSe&Tkh$L++K>*;dIj*ceZI|Sz<=H+Gwl=j~Oa09lxml>LSx=;68`;WMT06C4 z9#Dv&1B_rD#g5^}3dMSiF>|+oHn($Fw_1&*u_el}$J_@eBq`_ya0mc`csM-Z1?4Y% zL34D)A|^P_6fq3Xw>wD52LJ$|;Fbh}2+rrpMtKQxNqq9{midTW9Gn2dBod&3&>WCY z;@nx|)i_F~3x)99@?Pr9F<0ch9}N89M3HI63FkyOEU}% z?%Dvr9EMzutN_6T@hL!dlu?BvAma`9c7gYPPzKP)BmfmhT2Qz-IKvQAamF_l-~*Kh zJQeH!A;HK$&w1Y!@dpr9m0Z&@#bP<6-?H|yjTqmR+BD#~6|Zd)e>)%4TtC5lGs6@i zLng`acuquo03ZT6J2DOr4hK@jK*wBU4JmA1DklRQ$5ibHe3v z+%GNE0LK|DLuVLL2k`(;%t~D@+ID;2bd{v-wuyN?ws-oJ*GnZ8Yb4r_!=iSxeOBuF z_bM!V2T)Yw)L@OLYJdjZavM1+aC3rl44*Jjv~V_zF97hvfr3c@WHAMa$;@~aqE`SG zC5YM-1M=YP89afwj!KmTf^s)x2vQUyavT818EyzT!yZ5-NXBqVjuhhplIZ&A)$I9g zXKk+EGFNS{lPc=m&EIXdy0)8a_iZh0waNkjpsDrBk`=qDE=bSIjARqeL0+FS7*&`8 z2*AdEQ=hwrEx70E2`k19;H)mJd;-LC^D{D&fC}RPZC#nlhQTBr3XzJbC}2MEPmRd9OD4@+s-P}qp@MNLv9!(9>qZ< zH{D`#Naue}ILicX02mBT4&@tw!B9Zla>_^{Li8gU3xHxxJ85LB?E0n4eHPbx-)p@u zWLm#;y&dmluWu)>-@UbTb_Y8^B!B<};N)#=Wx2pVbaFueGZ_>bjzu^wNF*u2!+d~k z%M*req@S4JGm@l?D65jFAY+UW30#m!DnNX2`5D}J!5s)0s@40H;srd+mCB;Dd7!!6m?TE7zyWb{yk52b|>N zgH1?m5tPL;1t+wCkC^?_w~U`dk~<8V{(Cgv+MC9RlLywdh+QC7h1%Xpm8TMz%F83h zj7vBSBT&i}lslcrZq@hgi}52xNQ`>JDzq_3>2R$CpvdS7pk2h_SZ?ITGs-qHf7Q8g zZYnR9o+=XZ^0LvS_4R9J?DS{(oVeo+tg2w@M`v{;Au~6f8{pr7#Siv zR1wZcAbhxEkTMqp5;`gQvTC!Nbx=W47;PbW0Aadg2N)cdQMHbG5(nXne%D_X>}+hW zqP&9kJC;!3M&JGk1^W^1Za(ah?iIud7#5vRcJH*3~|$ z>%F(SO#Msvi3CH!9wrLRRrGyG6jPjL)=Z6yz)%iyxWa%`Z8iKzYPSe{f9mrEw04aBUGE85CI zAVwo#rB5i$v78NxtCRfFYV!+amNkDpQ^&s(p(`c{LfXyd>|kSp#d2^6&Opt5j}72) z8GS5ND#|kFNv>Aq?xkzBYu#^kWv!ocED?>QaoM$eLFcY1QMf@o^nNhLfbB6S4IlNkG-^D zC|%y*5uE2Epg9W1KgkFD8|V8?oW@0NUl6AnJo~DnM4w)))kZuYj+V zXz%(46FIH+aj;N5`iSP zxduWNPEds9PUOpE;E~m~frN5Q)usN)K4~qI)qFO$Z7%GZ(d*S6Z#~N+B_)fxi`r86 zb+xqDucPm?x7B)urRojPoT)iHs4JWw?+|))$>SK#a3Hn&Qt-r#0g>}^a;G4Ypl1gI zla4_IVE87H`&WE5)nmhJwh>LcYQ;OWM4Y;V^TsjCpO}nrdIkXPSboy~01EG~{{XY% z@kWSl&mKZv+xdea92I6v5FJY{0}TD%f}&YgX-#s=2T{1YHlXj)%S6{!x7};ham@1C zlZ{AYV6OfK(tQ$5-C1;Lub)NkmiKcEtHw#e1b_}bK5PMulAwiBI0q+#^B2Y|fW9oZ zl28&f(xM=^0SH+oBmZMI*q>yK;Etuugbv=fcf!IEY~- zIw8Kl1fUO=agd7w4Y>~S9eQRv`G1v z#52TiV3HEDBSPDXvJx=EI4U-PxeR)3A%{%Y^ZWaK0De7q*XJ#};pc_fV?|~xW7KbO z7^wpQ^vTF1fr3SUK%Ob^<)4J^tgNga;#g#X-B#j8c1*|!3gw6(1B0BC^Bu=E_zU}a z#GmlJ{8&ODSw0$Q&E^&g-zKGaK~aKE&~k7F4lsG=^$rw@Stb$M{{ZamIVSh#inaY- z_FC)d`Hve*n~5>^Qr8g~tE)A7F|>5j-tyh(x6@PRZ}=(#`MnHvSWLj_7 zPfU?EF35ZzAUPnq{i?+m=HTNe<|hS->N&6E+gx}4)39x%gLH+l_r86(2N^rFl0jt( zNI4|7JbopA@TWrhUX3Mf?fci(_SZ{YdTXlmI7(N^u^Kl1u|4%oxKexhUryUwO+Q?| z7C@9S=GA{LR=ZnfRkskd$D}&e5}LJ{Yi27`IS! zl7|}!UD*v^YkVne{>{ENW(-*9(*elbcHx*Ep`7G4UnGTAjg_|GABA;U*jq|T4f2oy zEJ}fP+j(kokh3e(b$)|&gX+MVY=(XsduGUx6*5McXti@YwYj$1S zV`XlaUDfs5OD=oEh+D=s#7L!tTrWa0;F1)OcK}B8$PM$A!8ot!ANEqcio?Oa3b)u+ z;kC;Zl76QF6-(t84p`s}WPleZf@}GPistS=6xa(kk~tlmaCU|yw`>qqj&_5_PS6NB zAG#j}J||!JL*b``b#oBAme*Udgh_KK*sjtA%b;WTlqh4ug&~6m+#B*NQ8og9k4PR zYwaU%p&b4iYo8IkLpHnc%U64g#kADz2OtP%RNEL`wb2fGorwZhapn}Cz za#sq~>z}l5#;tEhzq8T&D|}$nEExT<6e=r8a2!a^>e!J{k-qDV&w#~LV18wIo8xbY zq1PR4jB~=bMVePq`y4x$I2)NxTNrk7N!q(dC*yOxl8t%uQN*{(-!!EaYpz%B*}WU) zjoV!swwC(5pBInAK~k%Qj3XqPYNJnh-*%V0+f6QuRb+j0@%~tc!+32}sD@cB{DmJh zz=aGxKwO|wqj4pe4CD-!ugwn`c%EMdNn~|hJ5khRmL--bA%$ixL|KJZQ_NH)w+*3z zC4pWD$ExdJ8a!2hC9u@i8KH!%k=in_j#$VFgvXMF$Wmk^D}3I(9(z^zin`2^o2@%f znrMiQ6nMmq5`qIG5*Y0&%d{PVa;G`VS1uBSC_=a*Ar}M{RcU_f@r8-sY9* z<7MqCMM9kFCCZ!TNv>41vQGAPSKjy0rhI4PuZ>?3ZuIG5&^#8_mc``Tai}RXNgBQ~ zs(}>l0bO>2a(Z%BzE;#cY4KZ9yPD)Og8Mk1NRAW1c`mDRzLX!4$qfxyYX|}B5tlig5d%at;dVYJG;4zge z^WrlcOd7PgQ;Z=WhgB48TB(#fwo&F^%EP%+y@2;I5slmX~ea^=9|&01b!5FB#s!eQm5P_kX^z zX(E%%StCYSAt@}um4*to`5a`4esI;{5qN^_Vvb8hX0t*({WPMp!c~cKfU$K$yZfME z@`NbI*Pj!96?kQSD(Vi`%W0-O&XCO`Op#qYrHV+`3|B5+baJ{4jpd`MQdn0TK9;Rl2go%`bLb ziYiN6>2-H*iPl3 zyKLQ(*H@#nN&at-r5r{kF{y@xYEFE-&MFk@K4_%-Ep%<@wri=64y^^R#Jdu9d2ltO z+;9sM9414!9DKo%SfNl0071t!wXSMVc(ca3jm%{gCYCF7V%Ss)Lh?(N8pl@qAz?-cm^QG>&N0Qha;eH%j4bo)q>T}xHHwz7uHOwjaAISg{&YIpL+kwI?| z$;-_%q%p|p{5XHX9eg&vBmV$`gZvt8QsUMfFT=Xdy|3Ig%(1LfOQmR6!qHH<0J>et zYa*z_5t%mpnIBev!D2sYe-nP#pSH!1?Ee7ZjaL5u0Ki`dwR>-e{v6PBYm;-Q_?zNZ zt0XY%n$tyU%?;%CGESNmn{JhDqqM)0HwNxPe`??!BgN%hAD{7NE(;l*X4%CIqb$O^ zzi(3sgrSGPVPdYQ>?pdja*SZ6zwM%#>rm)09syt-2VW!Z~PRKQTTzXd?@gYKMDT;XHSPZCb6w+l9rPDTEBwY zDQ45`b-hLun%#9v%Uf}DG|L5sJ803G?&e6{8eIPX*pK7S#P1q@+J6AN6XMx)3+)3; z(|ld2+3HrBRCb!P-9zE$vl01_mR~1i%&i)L$9ucJ;z<2d_<7)egP*aV{1d0go)Ga3 z)|cSjS4!|Mw!SvhFCHsBPh9a%v81qRZW!WQnXa!c65i4=BgkV|p^OBKDgIvn0A)RA z; z$gU89`>s!z;y80B!cyWq#~Yb(Mr(M4kNYE`WZ2UQ-k03}9H0>hYVnBdzjBP(=X?jP6zh~cv*K^%p-L{>kqDNs3?aSO; zF$o+N8hxTl%w?8FF+&tlrst8sRW8}Dyi}mDP?OUUiIjOMy=NG!H+gNN(Yv_wCub#Q zeZ>rJGNw9G#M6!+4}qZFS$kDGN}`OSr|zZBpp$Ap%&giye^}LI)9l@1iRQnU7_A_W z8=gi4D_{)mQZmiZbm50Lyfdd=T4}NUxy-k-e){Ko24r_TijJHnK>MqXxol)|e+)D& zYV%HC7x=i(9<{8m+O0H+j@8iYCCkBSvNG%Tm5iyncKfn!jd(x@RdcONHT2p>h7x<2 z<8QRw0IvjGsBPzEBPuAx1ZiSlwuMj+$b$zPc_VQougZU#-`jgb@SI*G(FUs8zO}ARJU?R4d_Qc` z$`0b?uBAj^u_++P8KWa446X%!g~IWTJicvIQs$hlwl&h3x4RPDSr7=_&~t-;Move{ z0I%(<_92!j{{UqlfYKwA{{R-Zz~~78GZgUNnhEEp-8nhnjCUr#ioe@qNV>X@z*iRj z9=wn2`b6Ngs{3J6X^@g+ZQZwcB%I+6z)s^|*uU%ua`&~5yo{qYXxh%#v)@H`Ew^`jTcy^B&qyTac0m}x z``H|N_T!?DK*JLk z0o33CMgTmF6;s82ZGXW`S8wd?ujD30&5#F-l5PMX76gUsf^(dM*CM@aib>|UO|_{V z{{WW#p0?Ng_0;e67pAml154nQBiM%R> z3Hfq7EdkB}$j)(+NEpcLU%iVAX|t1nLk9cA;1QM|-WVAN*Pu9I_%r_i1Z@%>fA)jG zT>k*VLE%OKlk*1f%qf<^$MBB5i5&O+>X^7)%8Et?e!K!UJF8yjKMO`HDuYY@UP<&zOFOIDPU$OItJ>+a#6?XC;8o z3J!jw{jB^qcdTi;745FmHHGOSCn~DzGBTA`=W~n$v=A}KAP#;n(!4c)V|KUqFvf~Q ze8^CN@`4K-5>7Ys{31*#Bn&L(l3hB4Z%EaWil;1t4hmlp4|`EvgF=*Q+q5O8(r_EJKL}P9?yS8{fV_3*d>lD zd6>v9)q@h-V^mC(BX%2&qZ?asP)`AC`Xu;0t?SeH5t28X&3#(jMDDw{$lw#SXJ}Zn`fQ~;?fl6M&t5~N|603C3({XqOM_&xT| zhtNr<%q?Yx?%r7*Pu!xq5Q-5(sRXiz{riSpIux*zuY`4D%-1}Ul4;pS%dh10X=rhO6f`dsw}v-s8iIK*Vp${kTWN4e zQZpIKsoKYu8?l@NpU3YUiL~u{{s<(*%Orry6KxEko%u|z0AQo#WgvjW?KS(|@hjkm zjWvB9E4I|u;ux(8EJVl#TZxm`a;@pVV;#i6X zM`Aq2cLXeF<@?zfEw}&=&OrSC0648m75QEwo#zO&>P|OnOY-+muI(hcyC19IDnh*& zRE`>&QFfQIrxnWDTC|s*x3gBg-lxHT5Ij??SnJl2L3HS@aNwm zA9+}1ij-93Dux}@?OuZdzB2fS;S|z!J5eqAn3`}1Vm!ctMhe+r#fVh^5I`;m1HWEV zIC8_5aBV{F&imVaw_EGCM$$*mXHk@@%Jiogb4E6BdnE|9YpW*Kx+MFzYy9K!s?Sop z_<5@N!g*sh>mx)9Dn<*OAN5M5aLT1}PC|e&UTxtRnh%1uBO)TxI0?B_kj zv01Q4C1V_ba!5P4BrB){HZlWl2lkEvl%<8t9JOA`ruWlGcDmBmcYWQoyZj@>NX26^ z?p4a%={YNG)RJi}G~fOLNt~aBh#oPr3hLloTM~`AgD_Cx2Hl{m6$+a$P6#JqS-}_Zpds>#4vRCGhOSRqGRduDh{dHp)`!pdB8$dbePUJic zjIli63<9pG=K*VS);8M10lsCyh;|_+qSEy(A2fTB=V;K?QA{(9Ajt)I8t_SLa5vTGfADN= z_M}paow1CNq+=1_sa7O)IXNJ=%lC3C+RDfLtf-=W}Uipp;P0P^no zXu5jq*S`DeeNW*Siup_12ulz!PFDcrDCj^r1OQkeJSqAYLQu&c%&Woy^8u2(a0>y? zBRL92(}RZKcu$3)1Vyx;l~516pO}M^6%G^z$EI9~v-5Ub z_O;Snw*6XG`CoL^(W42$$sm$YfH^oM9P!3LU`ZU32WDehi@?f|c;_dv9k5Schdiz@ zIL&52IuZuajAxK}7+eAZk~-v)a6rMptLiWY7bS4Oaexn9n#PBpP4W`HS$; zJNE4LwYqwK1mKk;1RbY>Mn?*`Cmk|)1aLZIs?q{_jDeAZ)EtxmdXD2NFhDuMIHL|h zQUC*KU*X9+NGB&hFc<**z?>3D`H^ry+#4t53ZSv)0|cH3=uSFyz;33UQeL)p{WaO| zyWCdl?7Cmd>wdj^Z=$~Bho>YkBy-46K3;jp7*U1;E8Jk>ng}IFIKaUhdV;v=j4IgecAWgAF~-SDqf;VBRV&Q=Kum?~`IUE9Wxa1FG)Tv{-z6kxce{HV<{>vT-y1Bc%O-IGrl1*u# zXcm%3{iCU0d3o~GK13GqWhK15moZw$w|4m+7^U8Y8kMR>ohY|CIHZz#U8i?vqFQUS zUpq!3y*w>BRjV#V6?-ik+Q}}rR?_~xpQQfMzqOCT&)K8GH@+e9uDxq*aU60-W2d9} zx3|~6STNaG*~k8ocXu-ZwiwifQRdGiFrzsBQGaVs_$U{}&)R=fztbbUz3`92sU?*n z@YSWut?sXC3lx2N?%0%gn*olQZ?@SBZJDm5{q20y@!R9S#7~dDHN5e!j`cZj?ye@4 zbnP-JCT%Z5ww6HaWv9U|kVyC}*}{TC1tcq- z#fq^;z#Box!8^X^FUjcPBN^4TTK0==tElL-ifdbKd#l>XTF1j?ImLW*oFe5;f@vtl z^0u!OHM-MH;W zA9s0BzkK|`O5nH8lT9kXe7m-@VM`sZRFj?*oQ4u@+QR{eJfZnes}0*%%ot;W4-7~= ze88&|AxX<3;Em0e1Jjk0wu#y4rSEvRuj8^->D$R&6METN_Ux>hvTDy|eQf$7s}HX2naVxpP5H+ykw|xo~5ix;lA+m z7kLT+WZb)55Mv=W?mSM1RaccBphuj7bh2OZ7mY% zYiWDOe~D{uk9LzrvGRJgy0>Vxds@xtn|ctwN}Q=AHr?9^I3ZIE%uag{LS&WOxe9|> z(i6SoWgte2hETX5l-eES<-;~MGL5XnWaI`K8#nozw}L(QF>D|VS;+ZG{w3l03_}GE zPDN0%I*e^bBXb?3VHA)K&;iC1XghgU+87aoi%F}r+E#s4(zkCW_kSdOkG6}EI z6dB0_o;V<50I156MtRP7VVn%+zCZngwA9kSW>1DtFe)3vdO;@*kWGXK0F~T9W3ZON z8NtEBSJ)#hjFJF3KQgHxY(Fv1;f@9X0Q4kbN%N}dH>12`6}#RlH@8=9R-UV4@~BD9 zRc9^gVlfkIP3l&1?QgW2vRypMgl+PWR0Fpoj&rw?F}oecPDeestxI(17&45KK3oOP z&<7bia5Ib^STgWxq&Yvr7;rK{1PlR^2|m0wa;K;#HKzhT;0E2R$p-)~?WArig#>5s z5_@gHC2I!PUYhz^-!%2LyL#B|rFUlS_IZ}Q6jDuka<0AaZND=A0Bjk{_`^(vNF^ej zf)WmMSl_#8i<-h~xED*?}3&%S%f=<$^NF;76)w-29#z_PCvyZAO z+*_Q_bsSQLm-{s7!R@}+)vbCvAMI~|Sb1SQBjCDiS<5Spdt3f~)Rjc~Z_JzBuJ_cI zFh>2PlyQPNVZ9Xz!5d6qs*niiqy^~NNe~rWHyKt^O8meSBw&)Nt+Wyb)ocI?xdxR1 zBm;sN1#^&31z2D`sFkQ|+-Za`uJ?IdIYfXoWE9Fl%I+FI9g zvc2!GyUVTgTJDybSvSAy$y!=I%`VBP+gEM|Uw=NpbeO>Q;^u4>CG>8vUbKhuC4+8_xV0w%Y zLB?=IZ5iqT1dl_`Fg>%*6qAB-ckTq@+n@s_h-Us0dXa*71CECr<2VB;oWqVd91c$5 zfOhTLa(%J@0f8KI!LQgCe=A)pwR=4mMQeT9r)__ewrbBuYkawSuIYIq6+?{V3=9!~ zLuUhN`hm_yRPqMUX$)Xsf$5BO0Fi-##tt)raCsvNNHYPFKp9>L-PT4^ff3fSj?Xdur_Lwckf=-)%3`()Y2V zT=q+^EtRadTXpNEudTFKJh$SPj$!a_i94=Z^5INyBA!}D1SZpg$M>5&4ENi&^Vd_< zFExAl@9*R@O>rwZ%Qwlqs})7Z%eN|X{2+YU8DZ-G02=&9F0zoC6#$WdQy+D)fDUuP&-a&#{zmaHig6jvd5Fv5R#D5c z`mTg1!Scd&qSR{Cl22F6oKm&YT5BWvW5eDXp_S!San&hCS%x|atDBAG3RAS92s>R} zT2gCv+P;X7%0SFnlr{(e4WI&0lffr{KQFIPaCmTx5}XhQ3O5P}8$e!3Aa=mOCy}>| zpg7?{U|1X}JAuLieo=%t7{Ck$0A2>;EKD+6BW`x=34j{_X9^Aq<0NkRMhVCy56o?< z()#GSts||jteUpkznj14y4l&itk>MFZ7lk0zN^it1@_<{#O^1QT!O$HgZFXC+%xli z;fn2CqZ7$4q~y2CM%(~4mixnuoRUe#Br02J!NCCa9R}QG$zhO20a1bo9G;^NGmH#; zr#Rfo7nR(7a1J@az{_KFG`HJZ>#9#q)@^O7PowX7*R9)4tGi#P-)(l;z0)Z&zJ6?Q z4?95&tFcea2+F7jV`n6cvH6J*h{Avd26;kxARW8Q5E$^o=HxMMMn*Ak2H}Q2Zp5)A zGK7)PHcm2FX9MT?bCe237XWYIft|c<2RP0Kak%8?D%sdsYd<|Sf0p)XHGkFX)sE?D zyjxuoO5D3H>dyA{T?!7Qi~85zJCCzi$mA2A$) z3FKwEa(SyhTMQ^-aKMn?DcW|PMoNb1@~!|pFUml_Ue$ z0;~X{)_wH*ugm^hcWk@MZi&ZRzPz{7M%(-C_Z3)g3*2-A1aBEoPER4etAKj)Mr$-! zZMbFRw>TJ4vy-yPV3NWWQIK~gm zNm71QIT*(yJZI$vawz4!yq=x!rLNz5b$#Eco9lb7ws%+MzfEnv{{Ssa_5f`dK4Bb# zgN^`D0c;f<>?9IKN!)NMAfdS+f~&L>oD-EFeTc>w5x~J<0Xu*#Y^Xmd=Ym6R!5?sg zkTBbaObi@`TmUK;i*k(Q4l+6Ac+OacVsZumTo6Y5oEnC$eLAaJ+WafiR=>$Lpj|5~ zrM0^Bk85tZmbPmBN>Utwfq+05IOOq?18pl9@+uL+%XTUBM*u{_b)Zfym*umc~wN&2=w_J{i~iL2sr@diO~*ZtWAw z#{rZof<96P8Brw|no>?S*LgL)-L=)|x3}=#caUJ} z<<%F|aOzWWS8;-A-8Al^wYAgNR`k&yH+UQ2mxMJ-9XiT#Cs-jz5ah_E_$#+yU8E8i z4hrW4VTi8p#Ge85L8Uj9wg@uK8t*C>Ag~P>3P^k*VV%Dy%I@suj7U(ra%yc`IsHSLHTyMI3$t@QUJjt9lA03 z&MVuwQpD8d_KH_++m*QJ*Ho?U=((NMov!#Y?3*l9Ax^deoTbSaUy(NL%M{d>wz5~U zTHRTn2Y5%}C54TSp>p0!U0dn*Qrp}};#X7_s~A%5H<9;CoDAfa+{Y*Rc=37>scY83 z_6uK%e-fbQ1bo`H-vEqba3JIc&Idz`{{Uv1=YTYAJ5JTEEiW1{+I7;HgoUH#1_yHI zb0VF*a!KH1o_~#h7Fo0SkH(R+tg+jCYWRr)O4-XQYIk50jB?$3<%U5~&3)Gi3ysy{K^NusXQo-Xebm`Dkp(QrCZK~#nE$o$^uS@Lo(?jV` z_#lVF5BN>|2m44|o9S&D%i^}7W#x%B#~_hqB1a&Ca?DpCWOK+WbNlh(-+-2ntIrkH z_nMIh3-gf8yFcrgvnw~vyCqZ&_y7_!`8EFl2Icr9YQ78osjnL4qJ=&%-q{O$e1t4+ z``a5qBsc`{NdRY~SM+Cl@a61M>f+Y#WU>Zjc5Lh{Hvxda3?6ozf$#Tg;$xoTaPh5$ zjw!}4l;aqv*~VVc$+e=gZMV&PKC8Fg!-sP0Qo~~^VLhd4kc6ixH)$mZEAqc2y6d~q zGvRL={?1l$O44cfj^(9};zPZhs7FJE4I>03AUj!G4j7G~u&*=mFTy=SZCc49kV$Hg zd1Yl)VzMCx86!d#LZwtHk+hM7!h%oVP0%Mz+`#rx9hcW#Mu zG}_%=-8E}8Rc;Z>YSO7v6dgCu3&s-BIJ>PDmutGbneoIQ25;{*7}(6w5d#ApD5xbT za2tsWl0h4rC_%{^Mk|KaKWDvv!+P|-A%oLliLm2w+oMj5sr5R|`SJCpTS=*R_k6Z} zv{rW6y;8aPEwA`b;!VsNowQc4+(|rwJAd?>go-HSEzD6QjGzG99dyhm##v!r&@Dzf>B zl-$G<$;iPCw44S2wgVi3M`D^sio7>r1KZ%C0f8j4m7#I~4Tn}ZIQzNB%aX(}8?ZsI=Y#h9k)rt9;u$xp zgYd%3a)8^h9;0*tAxHxRfW(u7@{g1X{($^%f34~_8hF+&eCTaqkXtXyh=a(xmCA*G zFe)oC!T{J+2c>^MKk!gBLGiO!+!c5HDpS42LB^*j&I!rLJm6y)JQL5^aGWiYVW7R_ zsL9`(y<6_>duh?zXXp7h8_G|J@y>QlRivJ+d^Di6U3=SWcWpQGAN&+%V{`ig+DdmE zSa?m8fy%1hSe7MNw;y+tjBP8N<*WHU)iRo;n>k^N)FXCVjmxwV!sG+X3=*YTx{!aY zfA}amw4d-#_=@eqX#N*`CnEyp#AhqCah&i#=zd@hKa;&^fq!P;DI)SM>$PwWP?ZFg z1Du7y$T?OyARiZrf8=F{zx?{8zW)Flz1H5p@DEReT6sPzcWg|qte5<|r)z0zS#{R; zeUH|kgiJ^5?c)U3EBC8wdpgx6O>OC=>?-WM?M68P)(RBH$pv z1@O)oWEEgo?!YC6{iCvj<^!KEic;pwp11m<>(c)K@c#fOZ4YmRRhDLwcKXwH()Q(x zTJ+O@!q!IxrQ2Ii;{7dWonnuYBt1i@-k^or23Q4gmR-3h0Vcm@ejn+O-TWPfC3KZE z%~MUeghwM6bytKT`35nZF~YYX=MD{iFxv)S66x8FK&>{-senLpwXuXkaQnbh!X1pn zF($up{{UvK16J`r!u?$lcgJskrJ||>B)cPcky{ZVa#)2RsV9XeJXhtsNlH?V9!m1Q zx^&fQ?)p9S*S_ridxb3;m3G!qcTUzzmrLnqs{7}=s?TX<|SX#jO6k`EbUit^2C z;hm1Hru-_B^6qqfDi~DEi0GMk;tm@DLS*D2>9cf$EETKjj|%t)!jf;3Q`9e&?d;R+ zrO+^yyuG29dcIV)6(ZZTDEW8g2-|4f8WeB#j|? zK@qbI?mHXh9ZuX0$MX|bhT}`uC%3y+mQyhXB`#2~k$!#7d2Fi%1dZWK42COTydM|5 z0W@P$mg-2-)Z8pq6J8@T#R7SOTt-~RNd$saf@Byt$p`ZP0K~rr^mf&5?=^1|qlj*# zkgO;-oyQEoR?S8trexZ*(H6?mvwP$@jzvlYovSAhENUygbBdvz?_yPvIyy3e*n9W zSxc`w%#FbP*xiDmhV9`(Ef8_`k;|wJA|zn$O+T|_YMk- zrX8|Tfyo5a(moaVcTm%BWKDiJZ=tq#NoP`oI_}CUfPn5JdXdA7k&qiacvViKo2OEo z(^j+T%gXP}^s~3#)!x^~8;X@0i`wDq(@NT^ayN%OUUhe5%eNp3n8W3uJC$hGi zY%xY=x<&anmPktzfCBR9INg>Q$3->scf={y*I4lzOo`-2c=LH|L3c%GZPG3YWMwLV1zqtS9Ot}%T-~56}A9DU%b`rU}sMbl{rocz0#7m*;}Tz zZD_W&_DuNP?saiI)5GEF)R(igQjDzR?yt41n_4S-sjYWDMEF~!N8_&^K_$`^(`?pa zkeJTbD4-)8t0~Jm7E%Eq6*vbY>fhPB!dg-Nr!=iERT!{%Z!ZEuUNrM#0g%b_bMmZc z$ioN_YzJsljo`n9ll&v`9iQ9vZ8_q*jjf>sq))s^1Mfq$#?0d`3CeUi3Qct%3>NE2 z{jGd63^GSB)F8W(M}@z3B6KVxJc19;jBfdf!6R|cP7&3fYfY&yWi*^xe-+xgX?1p6 zE8g$1^K!w_rI1#5nq1hZ)^#d#!`_YBYAX7qmdR|Bdb93-8z+W*Pj#v3w|Z1p7TRsp zut9KQ0#Oppv~6Vj(kABI2^rpGQd@5CkA6OA8mEEn^lfXx_ga*87fzO!I!ezj+nA*w zw$>6bMZnqs0f{QiRIU%zzA^C*jo_VgU%%JyY&6Rl<(1@y@>GXwJ1Kbs$`^hE0gP_v z1B_S6pA>#7cpt|a9f<+Vn;V-5qd98%r$ZGS z>k}smlcVkCrOg)Uw&bsC-%Hxoch_X@dh^6!XOrQm`+78M&kasdQL6~lx{Nw=Cepjn z>Yk6W;SLaA+3K1t_3e*{n%Sh(^u0g}cDe;avMUg&G;i}MATed+>?b1{(^!8Ic#>P& z8$Ym5X(V?yc3{6Qge3CEkOH5Va*^|360Mdb^#1@7^}8)|N`m4j;$2cdCJQV342dmS z5C)Ci2+I7;^5lS+A2(X^nY9gPNuJkHyFqKK>9*x%F@LJnZCwY?CR=McAHq&a<2kRU zr9n>(DMl}yUrA|eTW4#y?(Mu@_qq9x5mNf4T62SqN-4&y>OrR&JHja1<69*U-KoLwOCutkT(=+gYNzu@V@= z1!iCnq_`KUgpaG0K^w)E#Jjjycc)6?~64_?QryV=QRP z_%Hipe$HMc{gk{v@Ha!c)c)J5d{6Kdr;K&YKH}N!pF`9qdwHa?g``z8+bmMW2$W$= zw)3wITx=h-CyP8Q@Zvv(ehKjot>Nt}#qnFGjcs&IPJ4STdfgk%Yh6Ydb_rr>9gL_; zZbewxTWM45<#Jpro8^_WtOY(ylMhz58v%!DD!GM9O0E{RCs|XKYJSq6HDr|I8gNol za7q3>h@mVz=whmSI`XABPI!8;bor$e+)|QG?h{a()82wgO((DI7yJ}+_T9eyw7+QG zU&3DtZnapx2a1YknTkfRG!8A7C7Y2NaL=S{*1INNn}&*)0i;(v#{WBWkd z-CX#GPPXu0!u<+D_a^Nlf^C0NK=%zU@QN1B&N8c$m3bckftut#AN*7B_w9S}-&nlU z?`@yp&%pg*thDJ`bQXR#@!UJoT|rcUw;E4}+jMsF9nsHx?K+3@A~o?p?G^BkQn0r0 zN5BsaU*5s-C*y9WUtiShT50Cdv>4%zPY~*|Nw_pfu(`9gd6C>a=&`wzHQIbd_$j7- z%U=vUJ>egRI-I(Hi8brpGs4~r)2*(a8?9qpl>{k!auzr9L}6yUxtvC^0UOIPC6_<1 zSIw}z*QA_dM+xlQ+rK4A*{IV>%bnky%GnyFqj?N*g6dd1@-7MHh^QT8}l zJ#7k6R9lQ!yzO_bkJMj?A09Mh@wSohXTW!M`oE5~sM6z5Ye`~~*TT9Akh1F9vqnl= zNg&KxWvdY_(VFS+dM{0{{R) z{ubw&{R<(LHG`EpbBj@WC|xD+XzsVyM)bRO)c9T^!_Ij1I<%ViW6kXvZM7TUMP#D( zO3OuSv*Rz@W5&9`wD@$F8kDMTbjF(CZU9RoSvGvZ9^8%2;DVeh3>;VXPx}MUqTc?; z-?QUeNp9j#g&qr$$Rl}?v@0_?AxmL|o5K;Gn>|i({6zlTl0M&tV+>Vv_;LeK!q$NMLI8J^Epo+~-L3!%wp18$Kaw{1Q$h&;j+C>*Hd zDZz{}CmvRLho_0hVxsG+JgSV7mE2vD_fy{5yQ^zvyQA62YSzMGvgy*pyh49ljFR3e z^je#`YfD*c*4DB6NGvST@{WtnNy`qr@J0p(0PBJGPTmb@tdJrAWk3MihB*fqBZ5ab z!r-r5k&%k{-roD-G-ac0MdUG(3$%C)ylo4(sA58pdXfm_F*wVYSoo@0#5ZcFfSkN} z01dg?zyX2t42KvhM+6F#-}!8< zx5aBGb=7R`rl;E9X^S`xq?Y@k$l6XaLVy<_V}aD;XaIpv1_S!~$9IFEgS%w;G5l(!wyNp}BnzgLbTfGu{ z{wIx`W9s5E{6#t8D^pG>K4oN*aeCR=?Y^3&(?gK|0D?6{=U@Gyq+)hQuJ}43yErWV z8_sc+W0e4BAm_GlPwzZ~*FCbhKQZHidBG%%labFLbRW%6{1RiuzAncUEez%VZL2D>IhX-jyJ-qxr;W{86f*4v$~ptlq9DZ zJH_=%?KJIXq;cQ0E2U~IK3=M@ zo_d!&oVOc@3{D6n{vX)L(tgX|7DIx+=oi2?Sg`^egN?h6Kp>vPgN_4N?Wf1~cKChc zcY*>mE_Azg))_Z#;v(-9;x{NxbW3Pv`L zyN>Gp_L{a8*(*FXUX49z$4=i9dUd}`qxovAxv_1w)B4RVch%He_0it{0CKatUxEJs zvawk{G{huAOqbVKC*=x6omu{NQ}=Sf0fD%N#zyz;MG}9)!|^!Zc5Lh?x++P(-SN+Jd-G5`QFp$&k=xFZ{D z`j_}$;w6{BmodZ^BC|l|KtN^lQ5>iU2``dEl|L(Fnataovv zI9xj=!m50(8#~WM$RsIdA1K{lzMca3vw7h^3u>2-Ztr0;*g7dM<)--KK#UoqKq3W7 z58h?TEEte0@eF=TkH_M%vctM=HkUGbH5Q}2*Q!aLaF`h4BUbIlTPa3g z4@+pTx5H=mpR4{P)`h2l!`#dy4W~%Rh|RbkFBl*OcG^B%Fv7M@++ZKb4;tP5v&5Iu z%#owXEV5vt{Py`Qs50BPl+QpmHTZtmDaQ1mY+|ym95`TAR@Q!kTSaz8v`r1 zmN)G(?o9llw_?8`{CDv;#O>mHx!{>1vP*}COHk~@D!YE~3zuN3FiSH0++!nid=`De zxZ0Jd)TvsG6*$FwPn%v_?RM>C`e@&GZ_sj1DZxUOSka|kQmHGpqOEI3erBGRx?g4A zeQf^#j?Zq_k;xoK$V4v6SybfY?nMU*tU(KmsOSLQn*6u;v3~Mv1r|nyVpU~E!YK$2 z+>wCHNmGJUFv#s+Zu~>|i8QiU$$t@_g$;-K&}6QBwq|X_Dcr2gfB--lEIvH=n`fhI zI)dNF9FT8R69Ax>CvYG|BfB6hpaP@=o;LudjH3lt2`)!Ea`bxYwY}`p+Um;M-uho$ z&mB({Mlw`plWDf%no7xP)wJzq_ImEmnEox_hxlu&M#cU?w3l{h$Sk2o7^x&K&={)_ zM>q$cG|-rT!kDo;06t;bLhdXS<#U7boZ~qojl^Mr$D#aqO*c*Wb$=L^SCk;yz-;-L z#x^i*ps&tws6?ArX)Ksy=3W+iS-uL|w3h%%l5RlQD?h^Isr}=C z>A2xB_p)w{Mzva5Q)?2cc; z@&@sJjD(+-NU%WpSRf3o<}n0@Ve;gB`$90@dH%Kk0A#3w{2B1Z)bfF}Qp#Iv6<}3Q zC>R`J0V57SbifRn{zyD8a3t|vgCcZvjU1pPkbJORnX+y3D$t-W(|3jO7U#C3c3$iMC)d1fM^NWZeo4#c5UQx+^Q+S#@ibrF%a2D~9d$ znybAv)$h$4?7BXm<#+YXgh6eg3P1#W!H#$ZS&r1>01&-?Rv}4b+gf(900tOgi#XT; zagv0F+8+Qe2~6!$5dG7GR>}qz$QhlCilE@XA1akjHejd&a3HgDj-;KNBqO5WC;*d| z2OD`DAjW=B=PEc}q-WyQo3re#r(G?rn(1wC>2`gdx@+0p+3jxkPuER)KD`Ew8!g7t zgfVs6+1$!7n_1ls?Sv1R_Hua~93P-O7=!K641ji^1hVqqC=J4Zqkuph5zv0Q;ek01iVCM&&0y_u$BO-KRe=36fhmA1@s60cKU&0|9~n2Z8S8 z4LQ@hv-Xi)*1WFn`&~Y#&*vIOQd{y{duY^edpmmQ*6jMj!pdD@EC9#_M#J2w7|9uB z!jdpD0L~jZ_iYV817XHg9twcC+l&LZx!?nkPs@{$ULE0l1dOOtg&TS|8;5ovIXg(n z7}^NV;t2O05acPsk^%xo267Yv4toFzz~_PYvtOxUoV}bDmT+2WcG6b<_S)g9&wzIKp{!#fCf)} zybn?adLA?2`CWcsN#kfE9IEvI{G$Vo<^{;~TsD*x+Q2M$&Q(86zA52sk@W zQ@3y~M>xiDoRiCZ)WAs~Dcq&Mh~)11au@&r9aw>!{{RTc%{XHrNKn`W9&lLTjf9hu zNF??3;khUE{eND9wXc0I_`Nszck(0J`8gnt7?Xk&oMUd@H+9D(8~_I4ii0HQoB+T9 zlhEzK$;NTW&Ib*K^r@fJHc1)5!h_L38E$z1_RmA}a&t9JLf=WSyVS2F5nI~9B=S2q zRgF&>axljqDC>;z!4+2Kaf)i~@~c@pyIS|(dwj31qjpzve5pq7rj||FJ80IsTh#f- z_No1&JT3b;d@a}fY2rJ`;+ERRPq5jeuiEb~WlmdH!*n#jab+5 zU-8@HSB$B$@CYz?LuQjHJr5PRI)2yR%HtgK3d3131H!UpFh5#gg zVE+KYN`GqW{{Y$x<5s8PtrJp`UjTeR)Gl=URJM_t*H!Tqv1l*v-v?xn>DZS}v~jx( zm$OD&&W|6Pfqc!xk&we6u-wY5OpS>KcJFL$P(#WR-tmi3 zX)EmB`(IBcdB>4jeWKESScdM#?e>A)9Cz3?fiNZ7QXJ z0i0zRa!UN;qO@!zoM7W0H{5f!Gr0*U1C#eL+l4>EeTTE@r`@8}-}?D)I1GBPE-;{u1LyOZ9O_(No#L*?XJD7{MP!bOKEMU@n7Ndy3*GD80MU}Bb*Yf6gq`w z3SIYbbDV*|2-yU51&E}-nSetsNCc9rl**8$KwzVX>N2H4I28$H3`32fSO#!a!5}8m z+pu=9$!5V00R&`Xq*n|^aHnnqfBTX@~w-renQE$p1@9%E(sK|)w(oyfaE8`vL_h+Ug<3oh2!*cD!A{OF}j zu`WzefVg+bL?MGIXLFSxDCcP`0oZCrn3WF8lD{b*Hs;!)j<+4t;|VJ@BU1L4)Ai?!nL{+y&`l;tg>Ku9ED5C9;y z;4-6=Uq~YEb!J>(00$dJcKqDuuNYCg1MYxuYs`KNY0IVjFYsl6Uo1nS+3>qm4Y0C_^0NgWx00V!@IRKN8!py89w78eOL2Q9s^%_ueeLAEdQC@aKZb00UNg!k@;ZSbI z3pN152E#F6afLYk9pXygS>g=dw(5C?Cf%&6$tAC)uKV>z`=Q~s0p+|0!Z;?JT?~gU zR%s{B@YGvR-F8jA_1QIYP}`JlQZT?|bGb$o0$YaXZ^{>QfHFg#9(mkI1dYdlPYbk` zEW?Hb1G^Z;Lk-(%GNc@^&sG@0Jy5fM5!%Xg$t34!ImRVLB#ev@F~74Cs=qGcHn3BY zaB?!E<`v>eYOcFKRP6d%$=>N*HDuM#w@Gw;Rjt03T3+p|XuOk8dos}pztfaqi{IFf zmj~}%TZRW{`{#C86Oh_8Aoe7Z~z?@QAgbw<2(V5c*r2} z`lp5T(yf`vrFBk?{T7?-()G5zPvuXfypo3u#lLr-9{P1yMbpi_ud=dlZSXVqz#*`^ zKp7dqIUmFiUNO(8z@;doA+eE;ha_NNa0eqC&P`N0RSK{@DHf^aZM1RT>r$0HfeagcM4nBxP2Kp&AS)M9b` zJaPW;&lvy=;1P~`5Wtlg5tbPk%8dM@(;YeFalqu{kGsGyXugt=uGt*)C|yR~NQ_p`gcy6@(GWPC@pn%Bm9)N^G^+p62A~j>cZn$RtBaye|1E437fY}F?;f_A8`1#;T49nt6II=eF zxDlpHAvxT3{{V2Fr-RoZD_6=O71*J^T!E6I!y%wkSj|XOyb4-f^I&w~QDO1DMrmf9RRN|v% zuXv}ry{~oGK^b>A+5l0EoQQI~+FL zjo2iLj1BlCs;I{x1CP6caC3sdo`B?!n<^?r0EAPyTrkGpyufVQ3o$HDp#W}72JA=2 z+W!FEe|p(o{nni|^Rid^i>of$TGzhowfE}o*UM`GTn=zo0}p@{5EKuXjA20I0Oz5> z>0F0=vl33=xERg?sK!7fl>;EK$mezr4Nd?9B;;qIz{vqXz{@b`2TYt}ELC!`<UR9UGj#`yGieFAQ}1AvJd(p{!Bsd1kCO~=6a~t+7QkF6>$`8w zk3y_Q7Xx~Z7y@|67{?sHiF{$<&j?vfsCb7|w9_DhBIM69ER3oF3=rd-k%kyhPJ8CI zp@hU@s>X&IgzMI+B^cAEPE{&N-7j`AO}Bo@ty*hS3b>j$dUB~+tSQr`o1IFMQH)Ya zxi;+|TRV2Tv98GFl&B#%=(r?dF`OK3QZURHBO_;Dnyti^_R$Bsnj2(L2zlm6@}mcq zknTC!c>oM^#G{|f{{W5O@KWCfcus50AHY`4uj+C6k(sU9H-#NR1e>B-D6xUU8CVcO z!5eGx^WsPCr}5X~9Fr?}f=vd(S8cZ1X)iyP&G#PaR$>CGwtTfh5V0$h&+gnK^mXHo zC51drE{!~o2R>OUnA^s*qSAL%Bm2!$ddWpAy;9rp{weX>g7|Wz@YHcL&9Ri*PL2Z8 zjAWWkPOEB~X||ueCw{E{iab;Czu||3R#w&gU8Y9y1HB=*j(6ao#zDX%1oA?;Icyf= z=M8`M{`d)@%Opcyis+^gg`P6NgX+cdC4#xfycAAPO+ZHslq^{qHCG zDR8|Cae2mXkH=L?Jj#lN3U~K(jnzq6Uq;&7YgqhGHTq8HRVp==WY|0{HLN9ysVcK+ zxZ9c#P)XZ+H>$b)7wP{1@KLXTH`NnVu@@ny`WE52`g(LtokUKWu%*3l^1HKoT{{?MKS`b=qgpF8%5Ye^5|Zb1B{~&U zF0SC)oMq&lmF%zE`yE*#nIo1dQgn3%WQoJZ;Oxd4Fu-)-fyr*90&1+oXdrqMyKe6+ z;0&-KLH-H!f@w(`2_-S!XG{G2J_o&A>V9gV>*+AP@#Xsn_8) zmt(0NLfPi~LZfVBB!^~6CvHf|1bm=mXB>>2`X__$mg>?65HoI!5}*u%yI2yrDt$7z z=kD#sYqF8U5@fSsh9iCl%G?DzPBZtpY?j7wHvkXzRjW{_++}8yTlCSUpJ%6Ay|j0~ z^K->g#M6u?9(cBzPj`K=H-pO)Z4bH zC8uSrwAX!}t<5>%=t=UeZKCD2uGVjr-$!S@ueF>GI&wqf3ycc>Bz__)NAVNlut2Pd@$1In21roS-dxFr zQS$H{j1|iqU>BiO>UR|=beTnOWIudq(d0;^0PBFT^2OTL>#Mf#x)Kyx# zwRtqEwI=V@URy1Fe@V*aPwIGR$}*qsDJHFG{{RjaYfJaHR_xl@Kbdup4fyWOWNQsp zLFN+15&OUiEO5n+I0PmexXR>?Ftp2GidIgsOD_1!nF|(^a>ff|lG|`Lj+sz$56p32 zTix46jO0hZ1Yv^Y1za7c0aWCHf(n(-Ibuy=po(dXFBrq= zK%$lP%dPF#x5nJ!k7i@w*pdOJOAwX(bJs^F;3nsZ88rrz6kOIM<4J6YC4d=FL0sUjdEJmPg&83A^&N;|P~B-!$Q(Q?fsz<1@YsB9c4CkH<- z1RQ+}2AY1>LqxbzKZSV;Kp10y81w`Ha=TB=Ys&s9*t%+(TgMEIY_LeuNe~+l??S+k z7ib`SyRb>`k#mpLOPfIJdP{J`KGSM%fl00kJ4lj9}( z1~K`+3T7lLC?uw(k`=MMfsjI~o=y%J3jTyVTQIn~fg>4c(*ej}4hU1ro_QfuE(UT2 zNx}YmKj5YV%J{cq0Jw{q z{jF^_(%Y*ajPdms{)@h7(C!&zmsivsk^k~s;$f<5=YIzPw?yyLMy~Yz zS@;^wFTk%HBOjUcJH`VbZ3_v?wiGeKg&+(Q$-uy`iuGmt+lR_sKz}YqB$B6a=Q09A ze8&Yy&Oy%KvpxWpZ-V|hjXcIDK)=Y5iY^2ax5{@h!Q9w8SZ@TD2W@W?+LqqYDY^fQhd6rMa5|J zzsX+q)4Ao-$oBf)n=p-xi*kiV%#*;{#O@`DCkHqIPdsM7qd)j2SBrc-rbKK!U!}eF zo2=V!iYAOTym!b7M5ZFR8~5TfmLQ)nC{@~joZUbu)pYq8@D}nm+PvWIQ?vvdh++d4 z#_aS3MSk{v!;wRG;hQVHB5TvA!6Y-sm|Mw$c%=d(D-{ZhleiGTADr^5llgBERh<`w zohUkuNv9PaYu!gqR`q(nU6q;p9|%#xR(R-QD#DVKEe9zmK6asIq}qB)*Gp8ici8>P z@g2;Pc$Y%({Q3miC5uegx^TFKf<3F@ZRU?476vt7pet-aA1WAu?hx49$o7y4Vu|2Y zX&negWgB@8K_RdP)*pBgw;&MSFX1g0;y=WlXGzz*RjJ$D$EVmwZKlV$B90|ryXJ`1 zb0exFI959yl$IG~A5>fXH`U;V+UjMug4n22GtAgvgCW@MZL5%XZeO}_xHnJ8c#|&8 zv6$+$aJXDWTs)k48;2~k<>p6=jDbred4wzJ5iF6ZvL;5W;-h6Eh4kU=U|zcj6a z#?!`BRp?ZNp)DMs`C9jH8}^FQ_UQYjeXR_~FP0jdu=VLq6XkYNT-vC#?6po^+WRT> zR`9JGNVl6t)~~M}A)W}C;6g_P#>BFtki&6JppD?Da0tLB=RH%!*AdHnmhJX=9yUPA z2I)5C2r57dyN2zpz+wX6fJf1OCP~vt)E3!1=~artu{s4|5GMr}C4p6MoGP&;RRVA; z{}OeJ<>LzF~}^EJIxI_->r9*+pHea_H@3@2&OJ==5I{YA75@AcuRhm%t8@hQk-? zUo6D*C72xX*SlS5XO_`OION zwiMlrVSp^a43Ck%1o&1zj{g9)7lpKc5oxo{;i$C-x=VSHo;$^}mB`+KPWa0J&c`XW zcI1YyuE^-hrFs%^X;FgKOGf0>VzqaAxW0{V*!SpM!1?I<&4S{VPsOOpa7+q z3fJ&Q!fycD>3YY8n@DAv5DC;Gmu1?$?|pZzOOcUcca$bUdPYn85ROKd_F4@qlm3u znw46$nrTK>T#$^LP^TV=TFYDYK6}=_9C(w$7O6jnd{EbVTguKXHAxGY$$TOUf=N;s zu<8#RiQ$EFw?7hfO(qF!e0kx^`zuSR{>^8oy}6f9myN3S*GRZkIozrxB}d%=00-T^ zA^1zHYC3+OZ8T!WJx1K&W&{YED9m4cDTxM3fUFMI`AY(Gl_!8#Pw-Rey4IC1i1ceo zOiyidYLmq69L!kTNWkGlZg#Trs~CP1SDzeY;Rfm{yF1!2)uy77wz?$mdvAWnkHk3+ z9yIDy%QFQ@$`^Qgvvp`xQH*(_pzkOu+y((I zA(??T(r;oa;F>wW0X?34)~ejZFchC zL0dbC?lmXPrRJor(c53F&Z`2!F$$o+nT6a@c9uJt)GK+}mK|g1s??%c-?$5`oN)>Q5u$anr#L}v&QnP9jN}`L3lV0>vh1KlTbmnqNzuPa^ z1L0qWzu>2T82%!7@Akj(J5BK4;HSfQZ7k(m_R|8#6jv#ygD`NhT4@&6*BYeokr}$W zcv?vvR7O8Jzi01(zYRVze%Q8u46OWC`hUSIpNi7>UN0Q#(zFbo15I}3($`XwhC zwzi&2Q2KqtHTIk3+*;}Gmo~z7ym`_WiPk|kh5RZL{3Fw}{R33eZY_1aO8(vra^F<5 zn#SVTK{t}0Sfsf(vpbm~)~ zIdZ^G^1^PCpf1XRDGl+POR@KNowUjXH9a+rxnW>?A7G%zXN_D-J#QTjZ*$iW5r$`(|kUbR}m(isRJY3_*Ydj!6moa znn#9zJ~(Ca8a0o|KVt}dC-9@=&%^%!iC-C@k4Ny&hP)+ps%hGSMwb>(GFumi`$kb4 z1dQE+sq)}clfC+#GZ zZAsLWoElMFiKd#eK36QwYfnGJ*TPbjFKX$=jup+-qeW7TZ3)g&gH*1iQWkMhypnA# zKW6+1@pr)5MuqWz{t6}WwmCdM;O#=nO)KFXccNc0JOQP%+v$>7S-EKjrQ;1zh1I>f zDVAlH$|WpVRz8jK%fd4JIh*$G{iW@0yd05fx8va_fHg@ATXr_u@nnUHDH+B0V$W zi14nXC6NK?KAN=L~jm$ z$-fFOi+nKnXEc`!r0W{)n;HY+8^{thvDBonnOUS|4{H>OZ)gOj8I5a(bm~;Kv~ZF7Zdt@M@pZnXK{~jpIQz1q zsp@wOVUEf-hSVqJkx z-!HjUQ|~_tNX|gYlg@t0{{XcI!cW>R=i-iy@aFE;MEFJHYtI7ecEm*knd~8q3+qUi z4Ek-uE5mPe6eOnJQU*a4@vr<8^Y)82UM2Vg`yzNZT$@VqH|-DcL&ADLh&6o@?c&w+ zUj!z#X(q5BctcAR`kW~xsA5!@7UhDD1AVLFTozNq{{Y%lF)+ta_OYQHML9xG8;-4s zh80CgT{%k=E=6YJ6q-pSeKci(!eG`T+bXe?o2gYzIaaSJMhzzK?>XKvin>Xq>-VpS zJ{eA*3}DvowFo}iE#cLtdF~4-^OZ=9i#&OTiuv@U?~3r!-Mq*x4ez^~3q_ zT0j76pk&=EFi>RkOB0-s7_L8_@7pWjM~!|q{Auu|kB8i7z8=%rE<8o9&o_{^I&HMe zB+U$L3rj06%L)Lil3my;yARtqXPXa{%N164i;|V*?37Z4DIe zG+Te{zY^*`9+9mswO2Nc47M@qmdOijltxYcz>!Ku{z!bgtA42d#(x>o{{Y~>z|Yx_ z;P-{KJC7J>{uI+Re;n&eY36A@2GZ={VRftPSJIY>T}JkCiyIWUS*|W*X*h-{EAw2# z#0-l!&NC`mZF-oBSW1+zb#YYFsfWd5Q-mHD2Pj=tsYR(qw4&OCleMIWt^b+&)BB@GO$b#6@izHql<`@UK$QyiMVK zJH&c!n|o!Z>TrvT2(>E-^y}GeU;RzQmN!wwaR;3qB~-YIDYi0~KuH6lmSaX!_A@vM0l5EP>7N^OBmTeL^CR(IpMRw z3!dp8+r!gl#cx(jq1oEdi7#~I%0FW!-Z}=#Vmude14AtXVqlHpP;GW#Za;!i$o& z&Bev_Nov0zz5Y`F0Kp~iZZzMB-yc*MTupi5BZfGT2(){xzbg^7STkd`^#=rVU%OWk z+}y@4S~#D2ZX*Nb9JBQVXXeXp$Qwu`@n4Z&@JLSvX_r1G{i5~j*f-tU_>;mKbS1Z7 zL_9s`$=HHOom6LQZTgd6yJJhSDdl~cHj$1L1q+M}WOIOc$m2YE*166ijB%CHgt^q_ zn|8Ovn&r1oM|nbE0J5l(OG6y~DiB`#Lt(!ST(b+Xq>tA3*leCcEr`Eb*XC5Nd^%bGTGi1%4qUr%wHs{w{|N z8ZMu9O1|P5S|&S)3V;Gm2?cmyHtk&3?*9PCIG6qv=Z_>CFm##~CgyaG;6K^X^<0jw|DwmB2xcZ->o)R|DA2jw`o#z`YBmD+j?whqwC&*j*} zmO~c*0O%%qx1(IGuggvCudDrQEx-2ktlhq;M^0NsuXAVDZWN+h^KxnKg| zWl_ce>9)U_{{Y!O;%W7Gt!9;!HT|a3^Bf>xKp^A|vF$sGk^ss1vTOQ^_(`hR=>8qi zQqs;Fy+Zct-W7=% z$jDh4Rame9HpNC#Q0L5MQW3cPnfQZc;vFl*x}#ocx{CRd%+bdswDF)~ONHelA%c9_ z!3ly1BQ^aH$W^@^S$rrVcih#eO~fT%9#7e^X0~ zD_pFS{Kh3xtc*lqi>X%61b`G57%j%r`F9aUA4bU zpQ~g%DU0?MDtme}af(w`l5NI1r0><+_1OG}@uAc%4U@@ZaMFN0kAgJL`v^V*4its=|6evW}~Ky zkx6dnN7rHwavFrjh*0kY~X^PlQ%Xa6V~ReA_oD4Z?r{ z0hIJ73`XqkMJLvNI$hsf{4&4$Qn4(lu!PA9N|3JPBOU4v7;;Zi7#-eQ;m!?JGWyRk4fV6Tih;cnkBb!T?yW%**p8=^Sn$m~p_}v~C60EB%B1 z$dUg5#g*`BWmL_gD2oNK6z&{?4)~D~NpcKiupxsIe~(WIKbhl8B-lea-KkZ;0a)$A z=V(q#a&UIB3)L@gusSLVSqO8`29K&!yYyxAMaprNIh~FZ% z7dgoK7vP8d6m#IGjeJ>Q;cL71(e({Qk}EmyR7GnnvMBQ6Tav~t_~8Lz8IiK1vG-`; zv3X`96tR@t8mSp`-87fFl6JaD-E7v*_C9+Ri=mlNom?dSq+EU*K4+@Fj`z1My;n_- z+s_U#DG^oxDchb=i39`3E%M_n(B+6dcUQLPa%B}s>#$_ML4_l>@<$whFqd%J0tTWLZ|6Qg{E9ZM(*x%@dHN#uY=eu2>0u#5;f0N|Fv#?z3ak(>YaA;fS*tCzy0bkh2?z*5QH%no zB=NKWag*5O@qwPW&1gjA6P|mL0m6@zfESOuj!Nh8$pZ@7Z@O{v)=(fxrvM!N@1n`sDHl0QC)=bV@BfHhO=<{Qm&0j1yMXU*x>H@3MC`Atwq( zLHSM&PDm?)aCY)X47l1l0CFnox5%Zjz#lUbIVF4NXe5#I9FE&muQ|}LBoo&>d+pnt z6ONm>;9+sQn!croBMXDHo&h<)=zETwo*0bq2NJxsZr17Y>DNpD0GUe7rkc^~(#cx? z0DqqM?{df^J9d$@6Ov92IpE-t&IWnglb@K-*y?h`Z~~kYyBXsEjzHk?j!4MGGb~Qv zKse6OF`NK8f?EU(mggDC+_-97><0i9CzUEuWNHF->cKo`&f*E#N|j}6o3v+c8#MP?(L6KazX09nV;}fFWN2s1pd!{ zAR1lg*}PNYTXyjGht(Tw!&23QTSagb0?aI+Gv2r%mu<1!KqkLUnSv`cmHF&!=T^NR3 zNC)?h6_!S2^9wie$Tuh?WMquhWQ)p)2ve7As^o%MiX1AaZ;?k_50@l>Rq$;_6;+NJ zLEw1CU^vZQml&O!YNTSaXy8tTSeCoMEP81ge1C|?sZUM@JoSb!9yQ@7~ z?HyNFZ8=g;OSOGX64LtbX1#4~cW+Is($(%$3eH0_WChy0a8@#QDa!^{X9af>+?4=< zxTaDyR}04NxcNg2u0jGj5~Kck=j9EY@tms|^1$yUdF53=ATAdS#Dzb^Mpc`IIjYSz zSUQrKk9J9B^B8=foz4y$VirON3OU^PWV>svx;^f<((2!T%HXcFeoyjgwzd44)mwYq zl~BjI89@wAK?J!9pCKfYTaXyA0q}PWZ7b9KF|ut};%~$4Giy6uc+&OWj6zxib({{Ne6Aa#s{*9`>dK_7`EKo^)$=WFrjJj%uDdJajj8PLIJw`I z(!*AiueZBR>h@N(lfKVO>0|p`@I|1s@Rx_Jl|rmKU8pOZ50*6pfE0oW0PV^C_Hs)0 zmg6jOfEWw|oL~hw=N(U6V;q2Y92{*D4xVy)xTqdX&w$0c$5Yz&Tvx4a<{}(DhM* zJ5}`?dF}$7jDmBwo{V|H1(*UmgSRJx_@}9^kKk=;<>c4}oXjxT+qNRWE)|9|fsM?k z@gRBmjdh2>;_(t{F{6j6R!!-oV5I#T5R^!VAoDIZ;9PJ>CfED^+Mt3V6 zxz5m3j0XFM3I|?tPWA+J8H|u5nnQ7MJmiwnO)Sh;f=rTc`N&lvNp3+0JdjG_nHXUC z8Ds#RjJ-w^X~)W-kfBuk++b%MFYvA|ueHS2s@L&q&ZB+#FBCu(+n_4?NHPQ0BS>Df8d#!J)cRL)KX(y|*Y1!zUZ=>^8 z*L}9t+tW_XV@N+M71cE6EHZvoy0*sV8D?NP;g@orasV~`GI%KG!kRG+fYxx6p1?+= zbvVyIbQ}y2I5;27t%=5=r;->dUs<^rEL&~V1h`y`6Q21vAONHq{+PT6AU+V#&U2d> zIXP4FAUvK(032ZOpc8;`U#s|D+pC(U+kBKPp6b$)vc9&{W%*eCQ2I=--0;)wJbYSy zm`1Po-Rs@6sCPNT41h8fMpPUPtWE|%&U$gqNT^wu=V`zh80P?-WA2a+ah^fOGsw+3 z$Rsh&?0w!iQ;s^Z7{}f$+p(T=nqb;G=R9x*M;v5l1Fqf(`A1e9lluj=UoX$5y5I5i z)c#CPOV;VGzsuWaqT6phZqw!l1;*@-oZu-d&mS&8=L$jNac#L2h1F0HK_p|5-{kwF zJY$^Ws3#o`M{)*KsUQ!Rjs`{n0Oao7gMta?oEnLVz{tTM00ugoWB@k}yaG=d$vlh` zGlwM^-bCyIriIAfft!NQY}F`NYlXaPXyAe@35iVJl) z3Z+Ku?Cc= zXr!4TF3ZGcKQe=jryG=>-lILK@q z41zI?fs6tM0^~mjk-PX);Jc<~I&26|GqC^}z`*$jZw>!*WgsKPiti~_FBh@tq5xvC5*Il!>79OeQ=-@X;=Lk1Gom6_c-jxK99Uno#SZX z;fTXVipLx@6MJ@>lSA4U%4Y+*DScV{`a)1m9t}qlww~(8am}i_uOpUqt z3O|glNzVa*$M%0DwK|RIb#)6hWZthc?1LEx?#KhK@*Jw}Qoxu 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 Yi%51mfe~# zr^^U_(KKwyzBG;^tkWnzfZq{5AnSfHwYX=P!5+DMEn&L5eb+JQP`gbn%P0gwlR!97 zpd3LV~SYfWZFwZY!=Z}Mx3kXY+$MRs`#0> zSv&LVD_hpjeN=V2TKBrK`-WYCrGvv$qZp*%l6zg*E4SUZt?koWJDB<|sS4^kuZ-H& z;j+;I)4VHhAV8NbZo8zsJBsB(c9~s^8qP6JJjAYTAUDGc}AO ze9+pDy$n*$R^A}P=Lo6>)B>+~uUfdcbkQtgDW_R%g53}RWgs+5jk{L>qaT#8X&AB2 z2^{U+&Ykuv>r1zXWu=&sqdH3)uq#AYpZp&`a8SZRinMEj~Uc;DP@-9RaQZ@7~zYsNATHm6^zt zMhP)P89%#MVyud&7?n%`f>>mcoXM6e0`_`(7Pygzn{=y|+zwq)fLtOU;vAfX>&1Ds z72h*@SvTagY4*EmJKuJZq!VpMJLzQI+joyet8FWKtv0gsX1>$y(%RC(=gie$Rr92U zB9S1NkOVNGEAy8M3y8^3j9e3n`+wk{?8oCTi8>l{{Xshn~5YH*i|Y& zq>tIV_J7cP8=~p*z>Rk7s!y0BAyPNa^BRQ_uTkYFLD0F%u0JZ{Za1NmP@NnlYvPkh zr3Gv0)>>ZoTHklBhwT0z_B-|wxX!6M}TUp-P>%a6xUJJ{RN75m7} z&eOe;lCxHg`@iL5_8j=}FTjmk<6ep5{{RiPwR5R>M)SiqYj z;XqYNJ@ejlQa8saA2OVIufyLK-{^YLw31dy>~$d4P^ME`!;wd<9?ZI6xy%DEne2=RJw^o zvMz(I#Ravw2W9m`qI^DsqK&)4(c;g7`_-@~Tv-%f&)En{=E06Hfr08RM7<78|Mb{8`*7bBxC()>q}X zARw_&YtZl?i)&_C20JIlRh>+BQHrfBN3@*fE7z}5w=?HX?xdS;S6932ewE?B63(<~ zRhA}ot6?g8@|2%6Y1Ws#uG4#6bh_0oZhsPg2Yh*ZW2{HKF|v(>R}2dPEu`eUVk< zh~e>4&m0*xGAm_j+X3}dNa z@s1Npb!c8Qn~j>1bor-EH>0$nvFdS;4nvPKNM|`#Ek_-c)TM>RCYLpO4s_+s87n)% zN^w`+JuTDsi}oS$*M|NV{0KUJk98V&pT)i_)jUD1JWj}Dc`lhPZRS;PkR%bHi##Sq z!;@dVzp|(8HEXNeSa@^ADHoM+3deNBV+ozAkJBbtVIJitBnbjEn?LqxG z@TctQ`wMuJ_I-aBe$Kuk(lqz*<*1iFCcl;~Q&YaQUCC*yX?GWqGqm$%2ihWan2?GH z$gd}aIFmQx?jo$Xe~I$UKMv(JoTZac#8Up!%oQhT)vTijRv3BISJH9!Ef=hukMj$Q zvkH06dznszYSqDEr8*dTux&zcqc3F|iK}0o-lfyOD@$9mxA@QdZD07Ed^z9`haU|5 zRq?k^v$|V<68N^;NWFgw+eHxl?9X=uso=SRT5x97#L zgLgK64!lS3SHp35FHw{GGf23zQE4`(ve?HJ)B)mXWVDt*yOgwKgN9;`4S!ajvA>7s z@$c-v;4c>H_Txys@xFl;zh`Mh2= zOEIsCtx6WHmes)2!ov)u6$tw`QYv+0C$ybODYoTgcko^d8HcW`Rl?O!t4XzA>kY!J zsW@6PkF;s1sKv#&!t!qKYkZfiYhDPk@ZHv#Z)~WVOxHG6*4Gd;mlBAb&^VFzODPH$ z22493Qtiki;|~&PGiuuHsnT@kv(uVw_a`C`Gh+h8g$01Y$tlx34B*$hd~(*lBzzk2 z)}^NWPVly$b>Icnrnb@kAb4`dSxud-&SbMbB-0#7)>4Kd7rT$lwRRzdiRJ|!N8&q8 zVtB`ld@e1ghKv|tjw zGqv%z05Ld2!@#SnUk20fT~gqY9081v+V^hDzv$UMQt85VD^`_NQcdzzT->d_QgXWAPla06k4Aog z_&4KAUD`!us33PSw0oS$+j;`n+m+pb0m#T9u(`_jF?fpJaMRgbv})NTD+OE-a=2C` z54r&>fr5VNrRpVn$Qs75L>=3LQQSvzZ|TfKK$s~KW)d^>XXF;H@M zX)DFGZTfR{)hoWt`oH1Nj;=J18rYL_EF$W3x4Ds}W`am$Vh5Rmq;TKIyOleDHTnhO zw@2{x#EN2Mmer*a2038K$On?d?jt+#o^!zi@fuBAQG)h6=qD)4A{Ge55Wus2)Eohx zyN(zJQUK%i7vZmr{{Z1U_*G|i^Y6Q|vwJ(Czb=x%3S@}E&hP;PI3TMHq>TRnRCoo( z(ab8>;oMB$wWT=X@Tzl7N)AwsRUT{J&QX&}&hAgl{GY@gA9y+oF{YBGQkZH`6wwoE)4(KLv$-vJz1lQ@s z#iW|Ahi15t0<+tr36yRv=3AlRi*g49vB~Mi2S1aawRvk#hh8hxcJ7wNTToH~IBQFo zt`+)%Ifyco!2|ekMSj0{UPaV?8F*t*g>x38q-l390XPC{3u(C8GRF<`9=wm4M_=x| z!lY^8vg)z7GnXT4dnE}kCu=s6Zp}O2WBAi9!^*a2ol=~eg2Tq5jr4NosSCBQ^G5gH z%Gz!D>G5a7mYPki)!U)Q`B}WeNqyz9j1#*cbzznVJgZm2`pgS^H1R^~x98sU_i#!&c(?9oDfJE1M70iy!dFj-O9oSvN>o$)0L-dq@(b)b-Hafma1FZn(xWB{a;XPs~7T&O3JVEZ3aO90K>p6 zyMbf4k%c5XU}T>H@df3?QOO(5+ul>q;D8w9F6IhCl?+H3B!vYJPRXw>;}4!uoIm9;tz5M7{z&*it03_W}9}p zSKCJ$Ufmk`+3tIIdM;9oq?M9aTH5!DzV>gW`dEhA+CE|<7WN74DIU!Y6ICXz8umwokg+l|#+*cd6jE_RSy19j9 zjoG}S;9(EWV-50<+j2lF#t%X_U}mXl{tkZ~+3KDjk~L{>Az4Ih3rJQxv1S17I|G&q zMhkM-Es^o~**Npfw{)+2=#sVVXR1rl-s$bH-SG7oOCN)$D|_`J7k6#kEp^uVCAU`9 zkHX8J0c+n8{7G=rNG$AaCoMEEzmoE|o(n9jq~VldNh1-E$_C+G_lSN9YC0{9Q(9Y# z*zHOYE3>eRYN0va7?HnjLdSqeDqF37>HIDIh`c#Jh-16Gu#v2wFx*{7ZjT{fCxT{u zqY4>tQ0EKs?QQ#phsSS*KMWAv_;$xmv$C29qm4EoisDv9*cBioH~_krIm3*QxXG`| zGma<2VJga;s$OlRl9N(tTJ1*KHKNgUa#la7@?H?cVsOg8vvH+p^3-vXi@RIPk*Cb8 zwbfZZw?CV;_#u7bjdJH$)Gh6<)uU^5h{QawP!&kk5H<-_%MNz2BjzNE`+N2y_%q?} zg+Cm$4;1T~ToMm2$kWrx1udR*Aj<0?F_NUo^AFx3Y$h^IeRbi#fZ9qO;p=;BHEB_)&2;I` zaD6*9ZQq(#=&XNDQ_Jv}yfi3c=t8UvzNtB6Z|I8<#VNdwY4oW zMhve$m#Ggj*UfV0&5|9)269=Lp(BL`zp$_EO;YSB2*KeEgMv6v0V8%va7P#ig~khU zU(1jD7Sh=@FWM*J!izy2=B?rTM4Ib@*E=snKyV3SipK?u1q6|tu&>)Z65{;UzIlww zaTtoVY2$EnY1DI@Q>Q3NHG8P(%$vH>`s{x_`0v5lMjMClxxN<-N{w6=GMrztgkqd4 zD@ipSG?I<4X04`;--`G>pj&uv;8lY>k;f(7lHE%)0p_*E!nB4Y8CC@EMQ7*l1zh8G ze1-8BQBSnUib2?9LK-(OBW@~WKg2;KscqS8;9*M>^}e;OE{pL00724K3rhv1nj|ra z1Y$>vVwMQ38)B#`iktSSAy}|#@XrJM5b@W>eMbKPP|)o(`1Fk@SJEu?ePdt0x6^Db z=hg2VTgM%}%qII;lHM3@F0S)gey@LV~hTr3<&C(lOT8 zwfZErweQgWD9WKZ<0{tvdXjs8d08u~CvBFuUb^@Wo#Af~YZ}&t;rkm0I=_fxwS6N_ z4I5owt>8lejtJqBNX*fnJI$0Oybuu5%Nhb}_sjkX>;C`*qqO*&@Sox@#UF}(BGUzw z+7_9p*jQ-#-l1<}7L}lCV^Gxeh1ImDx3}>{-m!OWX&T#Tw=o?*>;cB8(qBUa{I~3n z`wr-u{JQVNJ$F{tG@pV#4e>k;<6nq6_JMn%Yu-LfF=ISl8Sqt|ot2KYYoUFFOC`sL zEH#^Jx!yQ0wfo;7Y1(7`)$zmj-0+r%;H&S0zXJ4IUkUg|&sCJiVX1hE=F?u)FB%(N zE+<_!(oq$qjr1vRVwyw--p10&ZS?DFdwW>nNPjuSx2f21t1Xg(ZitmM)}H+P0pb!4#5`?Ga$*K))q82TTNHDB7+>gU8? z6t$li=-L#PB02S0EM9FtThy)ZR0n#Lt_Q9-9_cy+p&r}Yq;l{D~Y3;CiDLQ zfuFO_io9d3Ui@?Tw|_m~h1BXdhT45DIAzmqCJKJXb9Hm3U)fw;Fq-MDw@)>-gs8U@ zT(tAs+fCJcPW`11gCV!@evKWikAiKiW3$umEUciG>Fk8>CB25Q+HL!XWwarLzCn@= zjuGZhFv;PsYlv}`NjTD1cH5chb;^>zS9bb7wzt$Oba0WfQFE2jl(n+7R9cno3t9WA z*=xI6^S(3Hv@eI6vpb7zDOK8x^1h-mrl1PmSmfS-Xz07Gp zmlca{fyRL~k;#rZ{E6aaCRpZ; zJhJbBs(eJU)h(|r;J%hkBUD9ejW&C~wb-Z0wj{TbH~UO0C!Y(%@~dpa{iWO(w)iKA zE@QXUWd6+)E3_mCuNfNOP`8MdSmuaGVR_^7LJ4h%6Rssw9_NmfnoZMMXtjFm*896H z)wI5 zw-Lc15ZyC0Z4sP>La2q1A&bH_9Y%M$oixj(hVabN8)@Zuoe?C7q-{3-NQ{ywBqVSu zNURxHjm(l(l)BT{sFm#IpGKLCcO&my>61P~skN2ZTv=^|n8{u02_``58eS(_S)O5e zWwQ)X7C;fMgeq7=cC*DQJ3YFq#H*`;-&(kjh)Y`V0LwmoLsUbT)LWme^|(WU*lcr}e{tq2JWF2F!x!3g;qB&wQPZYWmNj_ew~te{RUuWaTH7CJRP%hWlNJThcWqeX zJgt?=+=sQ*oTm9M=Cn(73v-hya_GNn|5dO zoA%i;e3#EE=aY`0Ngm^EuAfD2H5qKj|ni3%UCDU9(;%@|9+z4UQH6^)UI`-Pw$*1aHym{?W zSj`vpdH(b}yieiitp`$oNkQPXu#66iAvGfQR^D7mwqYk;>liRObFB#}Vt zIE;R}{{X=|{{U~#7yis&5p>@Sc>4N5@c#hCH+B*Dp44LNO}3Koy}qB~T|Lkn%X?`= zj-uw;S>m_5`%ayA7T>a%etRRqU^st^aJl=X>{9l$aj>MV%^L7f_SVw;ji)I^sW>fE znn%#_4rQ5V{2_|SJ*;Z;OAlWKDzDyB!_hVlvI>cZYoyMUEBL$LR)F+jC2F$ z&d@MUdG{F3Ffwu~`bolj)9_`nGF`@Mns2Ul{mvPVqN}@8i_8y+#=B zE$3HO$dWa6Suoo~o>4{yHuA0zq|h-(LtQ|Tn+|XW0LbSj1Lnumka;*9kjFLs8$%OE z7fPLa6(LrYN@{fKLR`tgsI=2sS+}=F{_p16l&6NPDm9@hHEGSlr8!5IP@G+wX{+Bx zwMpG=wf7>Q3$>Io5LByU3>%HCPw<|ZJwXA<>tB)o0Jqn`+lX#q_@&|dM|hD08thO; zSiP3*(Or>-ryTo70~uqw*TG04xA#2Ga#^DVD~sFysKJsH~WooH(b zEA6h5S}8@e-sjnH9~WY{H;AxV#vRI3sm>I!bZ=l#4U`httmg5A4ZZVDEdoS%3 z@FP|DFXJnfiq=N(wx@GDX%`_FMPn;Dlk5`Bw}lzqYR*GE8C}Lmn4b%^xH&=?vu#kv zEZD(Jp)A8E3VF}WFiuEX{%6N!_?!kRt`8SU)2l{pNi}QPt2n;WS8;l2>h1oGZb?u| zgB~&SGmW+1%EzrI zE>_mMUg>iuq<+)txp{QeySLT9#UJ=8F0*+X_;&so=ldOmHzG7D1To1fFi8(8ytvAM zSOs0mxl^CPpA%|q)_QW!d9^L)Yq_=%1g{}yCAMRE!jQxOc7g}YLl51b_$dv+)V?0y z2Dp#yFwUkG+nEBxD{f7r4V{b?c)$UQu>fQF`qzn{N(!+#ISZed<;Ybe3>MlB;m!bJ zK_IJV_Ff;HBa~s_xl)Qzf8K7-U2oAnba&eATlibVH(IY1=5=bfIn=Fqrrer@6k}(r z*+p4e%dL)+!Io{}y;|c?z1bud<(wk|S=Dx~@0d2=>GF_NDJlRsT#nCGhU>%^Hl7{P zER2hDa21hZATHvH2PdcpCAlro0tO8a25C3iUYl!i3?4_Akr|d!z|5}56a@+ylz>45 zo=IJRo_|a~W#58Ye~tA!KM`uS*0FgkjF3hZHzwkxh#=r&Xf41B2w*bHUQZI|5z6p# z#5Ebp3C0ml&Am0(OD!AIS8r1IM=M#DA~;zm8BN2QR!J&+(dN5%epb8YZ?*6DkL)x1 zGx%@9{{RoIbwtxFlf@S{>g_!6ERNGM2M2S3oDdZAw2m7q)7<<=;eQnBdhO4LJZ<5v zCT|Z&Bv`db!BxVmY*K|8kcCh~p!rEIqa2Rk!#6A7y9--O3@ld2sUMe-^5Im0w;w12 zAe`XfaC2H7GVx5h?vE)qFzN4XvPjcOCzQa)&@(KBlrcXu9)$ed9G~Y{W3kw*#-=7} zRccqPoM$H|DqPZyxn2IszSmAVS#|!QhEJE_a1^lAWT?`iLJ^fX@~Bl&j8v4?&zW8G zCf&L_JASaHiZrkIC&aonv`Q^>KY$kr3W37JZEj==GB*&hTOn+Nw`*r4n*LxQm0m5w zV{S$BcPiyZ)W%paRmjK~ImvC=Bmw1GpTmx zpV5+X(`AUH?zCSOC%xNSHr}7WA52-(mS@3KX~iXn%kh-7_r2Li0bN;M%{5m2uc@k0 zm6vzVys0}z#Uzj&@|(y^A!E3yT#y)K*F|M&^O)mQ2M7p|1tEb8wM&*@!N@0YAG{-I z0IImlh6x`GiM*Ymfb$OE%ow=ikXSHQz&JZt1srvpiu?ki>sj=2@I@v}ZRolp@=0trAN2ll*nnE48WoqmgBE#^Pa3LQ+$bvq`qw zaY-f1XLY`}(^Yq*dPj#|?8cr}SU3QcIg$4+F}YZ~F#|hCDnjiiB!65Vu#dr=TmBh) z;ii+Vy{sBmzoQ6SO4FjA9dgPW>xpJ_bT1*#pXHx5RW0BOv&QZUfNR6QVgCTwGsE8s zJQJh*Z1}z5NOdn3YEeO{X?9xGx=Ul>Yg@pwSct6dRqf=~og|J~Cb$6ENMp9ND>68f z_5bh=@%cG({ksZW_G$KHoUMRs3946olX`R_;EKY0qx5X|$!0~2rf#En{ zv3RO$5$)wtlq*%0N-|!?t#v|`IZ9YwNz_WDnpHPR**E>6;pYtFxGO2eXY{eOFxZ;( zAw!Y6apb8PLbNG5vy^#pUeXbpj8vsg%bBl*es=!RKd|PPs_JvwcxPYMbVzUX>x-#h zRMSSLlj;!LG!XeSTcj@(MZBXpD&&tep<%aY@*CqH2HR2sU?@iRSeP2_s zytKQrxw4U@wY+#m#A_-npJ$y@%t;V1Xrx9AQi>XOf5+&H&C4_Rb-s$ z#m;w1DWvZd+T}irjj|li#SDih#p82WV)GoDH6a+zq-(~attw7&t5PoNq@zw2lTA0H zX#NO4X?x4vXIf1jD_JEmx~uhKs2r<>INEqrX%5^69*F=Y%;_h zP6!N63J|0qY~&INEuF(TAbyv8a`h<^*WUU*?HxbCUxmx7-0R*wzOuN~;P5iqOQ%{xADEA>%(Glt z++QMv2E$K|(plv~!A#$04(_{@$MF+Q@sEu)e>V2c>PfXY+GUl)$n!|jDG{rOxtGXd zL~9xVIN^~C0sWGG!{4z#fPZCw*)`Dv}jcor^M`qJfcJSXLDdG z{>uKscr_HsZBlLHx5vx$_a@`ZbL~SV4hj|6;fnU=;-(o^U%f0rJRyY=;OYr#cs4} z`#bGz8{3y1f`%S*jAhLWt4UjB%X_81$vv97+hybydPS|-y|=4$Lr*M}tdB*i4kg<(oSpo&JjyDm`k=v|tO8#7cg)N13Ly$=$le*RJbop7d{Yma4 znNk_rSRz(tBr|2C%Z=qxUE?Qd$v99}yHuM=EnBs&w%bd)TYXnIr(5~5QRR!3m%O%a z??}7bMzyuw-tyTSXfzqM!+47?*=*gN?4^|@GTg~>e)MfANiCd=NTJlZQH`0!WnIIi z8@uyysjam4E$7%;SwZH&XP;xnvyj1KXqj0Gm2`DcxNZt7mY#LBaQ4$8OjLQ1#0Esn z>~_T_<^@Sy0hW-0?87Wr;kD3bl6h6yRNaDnvKmx7nnzZ^RZve%e53^gfmIkgrln+; zF1C86pW^KHUp}jzD@!M$*G+Va**o2BuDUx}Xm!HQ`pQemFWM;Ml*lbJByE{c#_1$T zgazYj9nun+E0)10cEeFHEGsl-+E}7XiCs1!xJ4yHd7?qJ%zJW1Rf2?Y0403HU%ZmW zQt{)Nm`a9p#B0FFM?gSA8I-GIe?}ubUwvL^)+CiAX%bD$-fsAuWyS)CFvV=i>8m*zInJ9R$W5PZ!8ODNVb2W zuZA`KFT|P_jp7{w`VCJ-*R;zWV@lMmBof=+>AIDgUD@71;4yfvEu@M_`W>tZRV9Ug zl0J{EUaLVXZG~6MYZ&d31ksNyfX#^uF#<9Sd@%$CA+cZR-TwdtS^cBO?GO6~{5!nV z*$;`n5gYG>-X>)so^#=wSZ;hhdo+8Uvv=W(?JSpNQ!MaYy7YW;N1F|ZQRY#hTbfQb z(luhEE3W?0T{Wt_R+nwJUJA81%}4i?rp71 zj^1fwzEOo;;CV%rw#Uz&rI`w|G7_k`jgPIThdeFfJ27pkY4-Pa<7+}#=W7IM5=e>- zs~`>lD0Vi_oad+H?}dIL>XFGE)Cw4eaJvy$u#z!w%OatZa>pvhSQlNZ8mJ)#`uh{X zUlz3nvle%;Z8481J{^Vv#R@XC#Wxd^wSdf-D!@pfo{Y1Iu=x16SBhNGR&F;^SC6{& zX>PUB_FAi-rDnW0i@`Y03nv8>lS+1$jyr387oP6>s~<^fp9_2=Hk{VCc5&(&Kv0UM zl}sQFs7pptM%f#ME@XDV!vX-W6xRM8=-v-4sd#M}Et$*9X!k#9L`Eco36gMP++vKb z4)tUiECEih>F;$D@kGV53FUil@yLq>_whABNi5yKU7iTW@B0 z_zX50I_FwZbXkIPwbq;DW83NQ|SU9!a{cH<|*7fCmWEDJNmw(>kml6hzp zGN5H*sO-!gqh{I(R*^VmRl1A(U73*$iP21?sDu0U73G*<)dGDJp8DD!t<7S1pMC$IGt3$R=jBLMTqH~{2i4hSba zV~&}~ufESQk;mp0@lf}pTauz&*N^WZN~2m^XDwCi_vxqLm|P$Bb{38ir+Nx>n%C@A zlw$iP)~ebzv}(o%t1O1sP##fYwznh}0}QJKxWLFfkVbG0K__VetNGseX>P;zlKrMF z@B_*4i&282)?c)pxKg|R3u?|lA2#LFG^HSNy!^$17|6y*&3+T(T_0=17%EbHu&J71 zn%eD0mQu3P``KvpUnl#wg1E0?Ux_O#$Zx~gc^#B+$8B?WEWuSn zVi$86c@N3~WGXNQRWhd}wSLzB0Kr8*7wNto@!y0s4FV`_ZGItqCGanZFJVP!@qKNg z+i92bsov^jyZaPVON^POb}iDs6ufDqn`^0KgcWF`DI1OKs>&FU8vrvnRwQ%*ju_+$ z{{Tz)UVmBO9v7`iCl`}oAmwdb>EUS7scxIomsRgeq5iyZ4tr0FJUij;Aj3ubEN)we zQ>7~@(Wycap;ivb^G-FXREw3`w0E_e`NPB#+uBPb8J0;IvWh>}@7|32nFFk9P667$ zrZ^x2nRMR~-XumeK1^|vyxgyv$^4Qm-c)rrwKNG?Kf$ot67pJ709!==y%6CCu?kQ2=ag2%s{8 z+e^3`$t#jVoE(r9iENJU89vi)u?5*CPtF_5GO-{o8JVQq#H+E!B+1Ug0k0Lcoox2B zW!d*CzSFerZKn;hYVBfJf#z={u2*QTiXRZiX9}4n0nyhF=6&tk0g60t+H!G#P-iL+ zD~?r*jBe^rmrFF7d-Cafy=?CM*81J@D$zMCd(tzqpzTm_aAwvaXfD^bY zFbS2&ubGFAStj#Kmt|)eS36ZyAS?*Vkk|}_ zoT=(-__yg7jg~JDj>OGtd@Z$dX~uuF zEt0@j(qFeSMJMd}szaFCOMi}fdPbyyv`e7)lK}8Q1O^N?fI|{0Sf8gcGBOVG{fgJkO?Wx`@3z-ti$Rq7_4fk42&RFG6!bu8n zJ&)~B;Y6zOqN15ts_xF^Bn&q2$_UPPF8k}L94_OSSgb7%2K#F~w;TYEnY_+HmY zvAL0+Gxp2Gd9ECuz(%ZD3EUAvpS^?T=2*7XH5oRlO<$&-?3-FE`_@lYuFB`saAsWP zi>W!L<3^NZow=7YaZ3Aa_SGfROS9!~kNz{#yj$aKYgBubZ7ahuNj>_>AtL&FVLUcA zk&`01h87JZfb9lpBr3bPKb$Qww6r&k`@4-s=Hm8Tl3AYM$jCt?VM2p|#Hd~YA1FS< z@h4kk@U_*-ZjCi7%Sc?AAAQ`HDiwDU56BtJfkPH`3V!2mZz%Bvq(*yNC>>PV+FKb| zU~EKEBpidcF5_unxi~DRV&~0sd$zPn%e!qi-%DwC)k~{CMoP~`ZmWG;dL*`8o4RVx zMSC2D;f6DFsYw$@7L#edRv`}QNXs!}oHo+oF@jqd!REea)%;3#!)+t7ORV2Xsot?> z%vQ+eJ1B|+%8(vyfRI64@CAFPjqi=GhD;I4;(cc3SGZPYKrNtLjBX(8BY+zq{KNRM zUp4sS!Tu=l=ZY=HzoyHl$E{jgU+Apttp(1Q@y4(iqyu4Pj0Ku3Zbv0Z!>K%#E7FBX zQ=H=(vrWP+q~xQ@5@!Z{C^0C!~ytA}ufzEmH)_|7omYFs~- z)~=)ND!B5(3E5qx%G=kMR(#JRl+EvhslE^5q7LRADc!XS8vPS{3vv~H&BQjwnk|4WOFy&*x2r?M65^MFh!@9?SeinFo zEmz0hCer*jrgk=u)nsjP6v^v*h*x# zgaD^%#}AmqVc4!p{{SmuF*W#?A3FG_S<{@GRA|}ByQx_=?3J5b)^^{O?0;h6uvmT_ z%c^p}V~Z(rGKNxqieTi+7NW@K1~t~@n-G{$nu zg_dTCSb$g+%J0W2s=I}K8{kihKMejSXwhqa2G=b0s|dWccDHfnB!vF}tGI!bNehJs zab+9@+BM&RH0vqn(3@1(^%(6f^m#0;Vv_j|T2<3+mNcE(6$5jqjYl}j z?a#LU&z=i|z<&b1Ciurj(Pz^&OD_vwYY%4(Y8|DBNV45Leq>0AX%UjSQNMY;oenC30Wa!LLs zA%@~W=Naa@58Ly{E8;JU-wxA4xrb1&@Xv$oCAyD9i}w*-YZ`^c_0nCuVWg7n<1tTj zG>lQEmv(+&&%)U0*1B`)_x3Wx`gX3cT?H;0NN#>dbXFveesP11%p7&vE9`UJgAawu za{BP4IMw=tqbthuoEmD<(?r+33*SbPwx{riiIIjgiZiTTIYLsYij$LyP7X_#nX5_d zB_$_)UF6ccOZ3;_CyA%C&~Ko2+cXj&P(WpMkfB@*5WO-<7;V@f5>0n`zZHyyt zx(ja&oP499>TCAP{t1ooqr`p~d%pu2TU60?D76Q)u*$pI-V`@dTtOPEWhX5fNQ$J1 z74o3JAI_W+#aVv@@s@2@9OX{~n@$)S{>~0+o+_$?!_G=7PTtd+5^C)^-L6#G@jL;W zJi9-sm)1>F#?zD|wUt;+IO(7#Np*3p={8Ws3@W~2$*5})BCBNYWLDk)EO!v3j42iQ z--H}xjKg^QpXGAI&E**Uzc$RO(Uh%1RB1w{G83r>EBi>vD@pt@x_VtN(>Pl^{?FoS z@|{`2jOt?^BAlP@?@pVQKXy*(^Ce}b&qbp=yW$s!W$?ej&w+YUO#c9G*0k%rYU^_T z@&3}v%I9{|yAp$z$m5*joSzPO+BZe7 zN-pUtbs=SSqD?y{e??()ENuKG#zP4?%Nd*D@pN#pi=R8KnPMeIl8a5XrBw83B(&1# z_wNe$cf`LDd_kgkN5a}m>erW(W_yWJNvt%RVIgO^yp-;Y2voF;S%W;eB%`ZVdX2@T8nxTqnC`8OrM$33_EnE*T&ore@v@v` z{Nwv6c>784WES?eZog@nr(4U0F+Ii0N%yeQ4dOL&%2PSPAxPw()-MX_cHb5J6RG%f zQ4vcsi+xK*RdW$Z(oN_c0=O(Nj^GRdlEj9{{UgC{49j>Ly*ySvYZIDgbiIZutli^< zbsZ-d(r=pflCzb)?NYYq#bdsY_&y)-*BOh9o+pY`3Rv3HPW0*0r3gx<5|mPIPSDJOyp3+{0rZhgdxEyWm`iU?a#` z7-KKxGUt=Ll^o<(_8UZve&?A?3EVK{4DTdTkRxAmDd$HW#A>G!tN#InI5P^!D5kxFDEj27*KkOoKN zCy71{YQGLVK-zYfcK-nIkF2uIYh?jscwl);n^q=YomEH5O5_Gp$Uiskzs4IWHBA6X zW>ns3vx}uw*xS`p1qO1Uux0C>P8eptExsoF3;3_%{{Rs;iZo4r3oSX~TV>PkAZGIN zx$}5UhYCuMkdd4mVTFGac>BYc^_kY511!a2s$=6yynTcssq%8AUCvM4a#dl?qfg)M zbbmtle~QcT6zEjOVkuFc2CZ6AsV3DJ zVeq~`hdvsf`&QMZ)-`pFpUH~@Y^qs=X&%QR11aF(mTVAl&&J*>_@LK%)V8(KT%+O++np-D#c@5=8|aOYRkYu#I8 z_YAWcPaV(oPHEAm?CQ?%nqKaazc-!RO7|MKl6|+yR#^lrs#v~v09A518+sC>1-@>1 z;BHHD%^vS0WR(H1GEd9U5?dL-IsPWjatII6buS3t#D?EZxih+wWFh+CmSdj3I61~o zI2+W4s@j^wvh9sziXol5z$D~hLlO%W$Qa-Q%I*XZIpJP(=r7*Jt9ItHdS8~;Z7a3s zf5h#T1v&EaN-1j7c28LKzV}b2{ZW+DJd$m7kPX|I#hEM2@*I8=n!Q=jlcjab`^srb zJ#VYE)w=l|_wAQ&6dwotcCMo`=-R4-l5*Zdkfl`eaHQ@G0~OEkiv0@xmwat&@dNf^ z_*Jf063chs-3}2UTyB!zOSZS4?-Ptk9H0^l5Sy~UFh8CD0JT(C9x?b|uiNPR9&KMp zx)$pss(`)31~ty&F@q)s;xHQ-Y?dEa{{X=}7V1CP@8O1zbLE@e7e%?z?&OWck*&s` zeR*v+%pHp|v}I263t>pYu1EV5Rnf(8_Fa#qQB|cm(Wy?PT9jm}MOw{iC2PB@r|Qr1 zRuid*;@r;zH7Gx-*QHXNpyK(d)q`5Lxp`gsb3aSo@5cQ{P0@56WZm7Rysc|-h5(6~ zc{K$N7vayF>x?NXW*KP&m@?OT57q^&_87^jJMT;aLUC5^& ze*r)}PxS-w2f; z@m`5;MVHzx^xMxZNQD)p^I;nl@Bvm#0o((^*Iin(cnWf(Qft{tJnlDK%3QHm*JSOh zR!Lg-TJq$Pq_~mL#nHpcmMVoxbfZyoPBmiVD9Y`7u1P(*?ytAT-w*slq4-E<^t9)H<-p$#0lo zmL!ljZUE=;eNs5UPQdJMbJ}IbN(=9G}u}h5Dp^G4MZ!wO9ym zHqIDaM&EW=m7{&w+)maRBLi<4!y4$JjGDr8RBxUQE8nG-?f!e)M{69MSCdkso71U6 z5mc+f_KNpoG~%qRlCzG#F846*mhu+5F)Of;v!+hqp-XibR0JyRWF(gBxOA^5)lJeq z)>j^DE=Jto=V=&RfO_q6!-Mk;tC97^-hpb6FPaq`jo&tM#j&{j_$#=wf>a%#722#p zJ|*J&C?UC2i329@oRz`=Hvq#0dj=}lJ3|hoK(9UHBPhxCV$Htn(xZD%WX4|=6I1Ea$+@PEQc~BVSjE%#A=zj<- ze$V6m8Z*6OxH7{w0+`rIY{gY_03Z>ZVB~;EIW?K6rM<0}oUGY6V8CIwfExfN2vBpL zcpw!aPaUto^19E&e+gN~3pDd;Y7sW!q#`CV7G({BxFy(N6$f@lBg4i`HCocLbmi5) zo9VAzm&qp2r^&GLrH#wxwEqBVp!7{>ryVYx@48O>soQOjt-N)u_^ZPH8PGgA;K`uV zu6$uF{pPi<$r_2Y{U+2mow3}VtT`aDUWY780zWzYS7D_5UhxLA;Cn9>+~4ckWyP}} z6zNFIabjfxAsgL9L^Cr?e|ijZeB>x|jm!F*`$PB}TfFd{gc?n=?n_-mMwVN1AZsPK zJCbHGe86O3$N)0A7|1MtK7IrIEY!Ri@hikyH;Qayv$4^v^vQJF{Wv?@>r=}<`54Yf zGqh+yU_ir18oLY?AH&>Th|DPQMmn>tRZ5*`JS=Y|O~>6)ic)q__?wN}a!;m@{bS)8 zSwd zzR_oQi!Ew6(Xv2bJeQU-Kp!e@PzDNqjJ~XB zLk&h1Cpf~L8T(0H^1!+ww9HwH@s#6R1VYWrLU5mt-$J^n{d(o^0svT5n8nzCA5ep%xu z8ACDQ$ngDY9>X%l%7sRpr0K>{nv(W%lzr>j-Pv;8Uu&PAUlF`5scO2WkKlg<==U1V zzQ)?qQMpS~eFlpZt1J>va3BT?DI-^oYpb1JOB+~Pdw81eCb)=?zQ1B0*@MM5lE>oD z7s29B3;ZqcwYIV0%}ZL;gl(i=>6*JmB)1WGeCqnFTF$kp3){G*f*m+pSlLeny2&-v zu|Ph@{hj;)r~E9{ul^%=YVkZx;k|cAvDUm(X=9*VXx10eOf;=V+rTq<+P$U5w3b&I zTo>0jH*0Y`)?)fQW-!e?)p(!nU;9;R*Ke!X+1^Ls=#~j#k4Q~g@if~@SWNI*!=}Bx z_SU(HB#t=UZQ-@Hfnv9^Xdr}nzq@DrNA;XUl_&e9%LpYW&g`O;lePNm7Mn``R{nX& zcxhp%Q>$Jp+Dn>J{#UFUQc{k#>NRB>7jspIdV4)xKA2YP-8=j~n>6`%GK-XHK8t z*TdPygW$^~OG`^Bq=~>&8rreu%Q zu|qzya^7?g9Lo)+v1z$oW`bpsF>kBFpt*@)jw_tb3@ay`jTgk97RuV%>Uu_#r)hVN zWO=3X_kFd4A(}bhx}FJbgM?EYL_0W<(L_iRLF1R&^@gq`ys=mlRfZC7>@DRD8zgFT zd1Es&G!m?Y{^%o1Zpc)OD>HXWq-?LMTUyOV$|+k%+SW?fc1q1(&v%=A*Kc(8(c1g1 zUe{c`G|{IjPk*T0-KEWulG9SPVZJjPK_QI-vs>KTMH`tSEaVAo(nXob^X>eCbF(hB zbrP4=ttYc-pp9fi$+5kOf|t0nl&pfzMLe`jLR;-&B+9`NxoP}QE!1&|<4cD#Bb`Ia zj^^$e7j%MHWRJ_rsd4s*E&`QxE*oh=l&<_&FuF^7&Js+t}2!S9YZ&c#`Ha;Z9kfF*DO|wB&eWxhf-x z;`43RDG(`@mRTa57$PZ-KnQXi1y&%9$OUJ3V^M<7?JuUeNM1P_?@79rFD2v0mvH)A zj0BV0&akRaYavI-#Eg^06UEld%V`Cq5E#yvs58f5G`9&dAzS<1mY zz`Ct@jw-+6=G=k~` zUq0puBfqh_1>?Q74KaCDOGJx%XC@>DAjaY_v7-So3u{QdxJ&P_?nSz^cDd3Oqe8lZ zKnh)GZ!1V+@~`ys=D{ky*OzH@iRWYqZns8hE!+M+ZSJIvV{;s0^2AFdo1-EzGTlJ& zNer1t<&1^4AiQygiaU!ZziVsOiXgKgvDK~7L5@jbL#IJ|`@F#AU79Hv1S9Pb$QT?R zd1~(`%#za9ZCytFn@L{jC8mvTZyThQtU0trP+T-yw7mo&)b#od@ zV6=N%$6*`Y*xso+Rr{g|qPUhh8T9Qyva4>AL_iWoRK~NO&264MJR)f&v{@#KdwYb1QR12s z^G7joz{r+UMq!XJfcA;3%WS4YZw8`{@h$zM7?L}Pi<_$n?a{-DL=E(1rn_(B z`v8UuM%BL4Ew!1Ln4r`?){&VkZalTyWvIxj_M0tI&>LIJ+Xp3C)uJC7>%VH3MUAhd z4XfJ6VJ@G26inAP_cjT4HMv`rc%Ex}`zWJ^3x+EyT={7MmB@N)u~2l$*X_|CZ{X5v|P~O|Ydu=RI z#dB>9%o0Yy~C{v>!#3z=iG@ZXPZ(QU7zv4BLdS$K2C*4Fa)pFsh>&uMY?>nNMbOL!~Y z;Jn`xmF5((n(~!gyD^mIhEjKy4;2{mRG^#Mm1y3iBJ_;8lvSEh`OY!QXk+j*&FIBL zAA?X>rxdwySa&Ewoo8+8!M;h!tz&EKnfh;SHdGUw<2lX%91Jeu$>5RqbAgZ&ua>t z@8z+`{8RW<;lGO>7ryZJzhwo=-9YiIj-Wa>9$b;gFww~ig=pkb8aD&WCuy(2pN?O% z?~A?%Ym+7Iy~Xc^W}TN#)|Mi{6{Oo8zNA!s;!r?Elwv!TUBQw}rGG^bNXvj&42{Q? z&UnI%{n8KdE>j0+KQ=3q@wbC?4<2Z@IzGQ)YkO^V43My%80JS-;g!}wwUF-RTLAVU zuusSFKMP^=+EScUDPt+e_f^tKJv4<)HBGG>vsb#a-}R3Ud``^x8yOlh=f&jMiO1_$ z8B3dyHyhQ%-P#or(XWPSa5!cmv^{hijvFe@fD{ zO+LmIw~8BEXdq3&KqZ+}Gr2itcO}mxl3Kqs%RD;FaTTgO(xSoP=+(91Y1FQjo#3vN zVDF@)ucJ;oGx{ruevv#mmu2{P@ZJ)pZJ1)Hs*{!>N`@Z?DWzytiudYNgp+cFIbzkH zw0fodwf@kb@JLS*c*npxw~2lw_^4@;%WEvqcxy;Sbg`4l4I58#`B~jrR5*$~xHwlh z=lNRr>-!}5$Kc0_p|I98%h@y*zm_WvTkNbX=YlEND#*yLq1kqo+^ld)l1C@~IesOt zhkSQqeWTpmtZ8!;kVLz}f=DVEdmX!vA$bEFfyd!b?NR$PN2I*kUx~D9eS5<963Z>6 z<68-u0_<59R>9ipPImwa;3?#a_wz~NvRV}II2ux&DskkMSx)nFPAc+!8`)YaI^S*o z0G=u4_}(VW@fogbDp15?YPyPzC@OT4ZY{+bfudZyd6XYw!LZ-%pYlTp(xKFIdg zP(=@z>ZGg3w<80bl7Nww10aSVXIr35UPLWJxj9lVAciOzQq#%(+H z#qk}_#G6eM!8R#z4xy>rX?F757uz+>)Zz%9APQsmq-B8LhES&%4f?h514;O&;7Ghb zqI^iVlF)0~G+M2kk|u4gB6NaAiDh7=+AZXg!vM0pod)l$;J*zq`Mz(4P*f>Gla3;? zsN$rk#U|2&QoNm=qLSBFrruW;c(;^f`Bp8|saCC7##n4DsZ-{Qt1ehUxl7?nQcmj1 z%T3Y!8vGoC?7#3$kBH`A*n{?Jolu{gqOXIs#|l_-%o_urx~+vc;eV7}K0p!}+=W#| zea@<_z+5Q|M(D`^X8~M;8iamN^?l(Pmrefwf@Sk^A!hdo($H8)hBl! zz2N7m@5mp?Ol((Ut1v}nTzsdN$z{w#aLxhw@DPP9knC6XucEFVRH=B46yLeTGlKYR z+;O>|DoH-hF4ohVc9oCif2B?#*UUIFq?1mjTBh52H7v6v*3Y!Bc9y&As$Q+7UH0T`6-`U(VoJy81oh(|x)s!JAsML~4bMmXEc{kd z7VzdfBEeCV@e`?l#p7yMp+&|~RBAeEGHtfvdFHCW? zUxBG~EaVRPc0D^$|&u31pead)Ko7Zy^M zEUeD9SAI{J7D8i{{RG@x|7A9wBN*g_@Itg(mo37D+@EPodat=G4PF| zfLOjviyKC&TN^?7ih>&-59#JEj$ZLq6;&$Jc4^vBg;_Neth;jQr)%9M_8ebVFR4Q7?@+=XXwWk|~q<<8ZQa)Y0g zoyP#V2OthBHMY@w3#w_>_fT8jYB0PKO(PeY9nqN`)v>fmGa!vY`35%bO{Lqo z_`mjl2uTdP)$e4tGAp?_i)=;1vlV6p5sc(3Du6cdN9RAqkBQd$j-7F5KI^uYXD$m! z$8lMsMMArB5s56aGXSBGuq^3cs^*!DDLRm;E?S(jv{lmO<&BoUPg`w$UYd9q9JAU` zp(`P!xJkYDgbb<(T%FuVB3eoUM;zb3%RZDV467~SyBlg zSlc^+8`d;p?8FCi5RufMF^VjVcYMAF9P3uRSG@@}(P_-BzjdvXYT8-7UKze#=qt9Z zIIUfqx_c>WZ8hH7ty_)HpD!%l;bfHDn7p{yFPkHgI96T6o)9)zs>a2G;IIrgI^q4C zbs1=p3653ru+l_ZJ5`vr(o_>09l^1JakO@txqHiRv=~(tW-+vWS}Ao%_B5_{Wroz+ zB?u8)%u)ygXDJ-71k4rJ$!QunGDC3eHz{1I@D$;fIVW~X?ysw*SDFpA9%RyzyS4qx zCDP5i{Q6w@iqxYS*|zV?t4~{U>u>vaZT7!Z=-k^#VHYWHF^w23vIdl^N=W62kL7$j z2Q9Ug@TcV3;{sU~NhW`lgGix3EZO-?Wl9GCfI)l$cqbrn=z5*bl9o>d0^zsBvam8F zQ6|X8&$by6WDOzQ%-DaFZ6ynB^I4IeKuR&*sF1BZ$^72TLS$BmI-p?&B|k1QOO z*|om#8RD&>Hta%41dSr0bpHTY+u4g{0;&zppaHWUN%=`&PHn+ucK~+Y7(8UNhRkeT zRfq(|w{u~cb`W_5Njz0AGAM2%X(LxeAsq~bi%1)$Sd8r;kXeaV$jKQ|qMB~kOT@-B z2HbY{lTD;INp{;kSegT5baX3jR)0+Rp7QG;8fSJYJfF1?}ygDHzDeM4=c19EC{$h9fT6 z*xR4)fTb&xzt``g611^Azq}wTO3XF~3>2vWSn()V`PUp_u*iH%PuFgt81u+Pd=PWF zfRL)T*uLu(G7ak41s7>4g*`+Xx7*=SEa;?_;n1s+%Zz2q0fv;iZUhW&B|`D;OFgTI zr^_mwvhSi#MSZ)zZkw$iL&kcN>#4l^Gz7z#` z@=CPm3`PO)!ygR zKMC|{G!OVGC+zd_7UjwC=Z?M@c-O=B^X)?&zle0rJ~`yIF05Dy?Aj?2aM^gIBXA{$ z^g4BYJw^ifXRnB-g&NG0`fOz~h_z!Ju;y)jJ5qTss-gsBXvR+%WLL@(B z)OQlU#u4Sw*~XPL^;$R6UYlD(`FD#jwJ;gQY&;^AB&9W_n@*&yEgxm8M;Wir z7`D`>jz(2$TdYU7ZV83RVnXDSNDKi785tk|KLx%E%Pr^aqx(caSyg2CJF23`!zf>{ zXuytg0W8=H%KW$-3=iM`01{f;$);*5BT`z<;3|$s&2HcfWbNE?KqL+cBLIs05dEI? z`9I;f{y4_L$+-AQsFw_^I@|blKng)P$>o5-<;NaJq8MsmA(U*;A6W z_tFo)PUq=<3`$X@#&VY{EU%!leD8sylk|)ajRtQvhz&;07(9dJVPws!wgnSDRR}}?Ee5a z%9}|y7*7}V>U`0%y`ze8OK*40pB8FY@J#YaaSVgYi0wr}2IVNEKGz7d`GX1Qy^=FH;uMcVZdc$`NX>}-RB#tj8 zJjhNN%!6wkp_mQZLj_eJqh`D&^4~%c}nHoxt(R@5yCR@*RtlwRd1-3hd4B ze#WGf>e8EQnWcEoTQs`erDf44v(Wv!Gr+huXCJ|0rG(u2(q6!KJ(!0#l08CY$rwt{HVP56|^6+*c#NOc7O zU=|?ERPH&za1@e2TDGya4&)NNh`0L{f*_jnj!%O&N-eZ9kCGjtZWl+Vi4#a@7?JN;PoCHIU-!Ix8 zco*Zp#AR8ckz&!j5M(iY>xp!YG@sreC`ay>mT)$O+(Qy8@jw0v3-B6WiodmYg*7Yv z7gW|fBkoLU*?Z~&11E^{jQ^JNM4GC#2 z<2!TZykW8YW1RRonDG7zgzE7gTV9qiP0DnkD9VbfDsxgv&Ptx z9gF4RtbG~b++d?pvX`}V;_2QNqZI`7eA=aZtDnsu?WHf7@IS=C@O;0Hz8jelol%T8 zS|5*~5(t>2yH%}Y-o`S375(STp!|pM0(H93uC(#6NojiIwl^1s;w|I=8+PogbFio@ zk&oj2y#D}#^!zTg@h5}60e;XP6|$1n!%v#`;dhMUw~I`+w31ufQQ|)aUQY#_FnR3= zgT#7$z3hfeM=gXRMrjMl_?P=PX`(0AqmVlXHqDkV8f?qui7T@KWKzwX7Wr@w&tKPm z9%Xd04jaJWX=4^XF`u+pm_brg_K}6X&UxC~Uzyt5>U>v=c-mZN;YMehtQ|}w@c5cF zzO6Ya%7uCu$WW;lH5fLf2Pr1w7ULzSf3bWg8HC7ULzf$)3^9a8U8jQ?Ioed99I;YN zWT78R_&wJMUuVe?X#*e(TLdc{v0~T*4hY(Lz&wuvu&_mVS+?#V#8y43K4xIewDJlP zqYS_oEXp&1UccdkEDWm?&6L?01h2~(+N1>~QOM&RN`~NWAXn)$F$qhR+DSCJ+eDq8 ze^+$&dmrbuTsxM_U9?N3wRc)+eSKDn_VsJDcx`8&3XrIg)mk+wf;jhwf0XUmLIQ=x z)qU9+3O@jUYi(_{ZEM6jb(DxB*0tH@miQGU*=dE1%&RE?6)d7O0ZM>@6qVh(_cP)i zqjhcIEqv+n54T@hn+RLxU>fi&Zz4NoQB_QgtP32j4p^YC=b!d~x>N2~jSS zMuy>(<)MQ!>X!>55@hqIEY9egLaM8A^3udrRdE!e+U1N}f6A|AqP>${EY+Q!=hyJo z4Po$=>o~q@l2D7$t4Eczx^I0yn^mG`%pM@q(^|Ul-jj25KF6ZPCx~?vLJsLzvT3&N z&H}Ltid_%RV_YFnRcp&UL4UJW@@83D>h|g@NYF731oJcIOb`&PN~mzafLn0mHR--6 z)a^Vyqv~4B!ci^sq(ZxxNj<%qFt>;kf{|>5iC;T16#oFLIB%IP^*Qgg9UD^A%dGcT z*P5iQxPo>gExbw`6Sa2mxg+K{0FoPvx_E z+Ud0JtoPpcG`v%%op;2#Zj)mhHpYt7BB&)>&MPOExA=^4$+?$qM*fG2`YXh~71F*Z zX__a1=NB!m=+m$E74Md;_V5@Z^Q?(|T;$j4Pk??8c*9uH?)*=n-e^#2`bGVn*wSw8Bu!gV zvS}J}EM+dS{`w{|ylw!P2vjyBWr$nNrFb{&qPe2g+LigaoOxHoqsx0Ve23uw0DvAS@aC~) zX+5l?WQ8WU>J%$-$7h)*F(DyK5LE71!8otpKiOBqdWVIy6l>kKse84cjYBSAjxbQa z%N|*XjI;2{FaTC8Yv<1fctCi$ql$Tw!bv2C>gVK7-N^vNkZ)Dm8Z`wQ3<)G|B`|~U zEehFmJ4MaSs}KV5z{w$-@m?w)=H<0X=Qh?iCGG63kNmS$x$>Sh zG2{1`VS$weSb{%czu=}{w3oq8ieIu#hx{f!8J5q*P2&#@>c0zDRkm$A#E@U5>_c04 zE$$XO*fe|349Prqs2O9G-p|fm(Z#po&xJp<4uj$EhFV;o40Me?U4F{SR7-nA5#7Nw zkUWLF_}NOkN>z@)*db$5#qnRhaNad%nI#9FC5Da>Iu+dD<5Ih#sif)3OIbL(O81JI zl3O$U{PCM0TsOt|${9si;^}4<$5W#TxvVsCGgF-^wry$4DZ(vXQj}Y})%1(|GJJ3S zopgOOO8AAOCHA4>8wn(_e-6tgth*6Ro>jnwJji5EFrx;DhG0N;2j=Mi0A>%`4)6AO z_?M)3w^-A!C0!!!@_XG9_BkzPlF{L0W-v~u_(s~w$~R{iBm=k6zh+O{{{Z8^?DygC z9(bGLPr~!@XG}}GJApThUPshCFfKg7XKb_I+sZ$)C0{741ry6>k#`&|et!PfpB?@t z{?OhypW=3_r}%5a`fdHGx6`zL2}KpZ*zI3?Tm7;ASGb+yP_hyNvlSswg-ZO#i2N(z z40UW)b(Lqcr-{U4sA46RVlb*x!&JjgEmT;pXj77IDoQGoUi*uBH2(k$SZv!1n^48P z9I*1EI9G-%o+=HlM+TuJocX608Ap{xd)L_~`n~XL_O8+XHh$FizAn>rn@tewzA27r zEFoyudPfPghV9U8D(uD~DwPamX%0wW7oYvQd^rCA5&r<-rQfsWjpaPHw)z&4sL!0T zd3HBfm(no+V6W~$8Np(D@yFul>|^mF_ria)XMnEn=V)x?@eP%o-4Y zD^z^aR!zJ_d0UKhwvFhw<$g_mD1X5~JX|$j+DpeN2HB$09@9q!STumz+sByWP%{`) z_p!iGN6OruC&D_iY5o_|EhL1;s_RlT>lA|?U8<;#CI!NUETphtMsiO$1bHvV9}qW; zKWRT5-YA~%>Rvq6BTIBfl38Jj`bfe<7zcYgDk3NxeclUXevJ4B_CnQlO-{?l-xRKo zhP*i)m7&o*Gi-^w>;th01tdU;V5aFI0sh;Dh0O>#$ztF?s za9C_iaH`Y9Vlfn{Q*_}*lv9+XrsnlZ5otL!bjkh=Slvaa*1uDS8)h33X;r6WANAF19Bj3pIiPF?My z;&{p2GniPCJ90t51%6QYdH(*gt|!D{@Kh4O;-ym?gp0gk7-AeHIInhV_jMsHw!C-P{{TWgUTYcJ;7@x3Bd*=8 zFe3-9;@kt*k>4ce10FxA*)*m*I|&snB@*wJHx7kVu>}cX#?}Oo0o+DOIM48R6p9EE9fxoSapWGA{Z0P>!7%>-X_$X%f7#o? zdi(3IbFcV182l;XxF^0B7tOBeFsxTs7m_oyyLAAGcNmyZSy|n;Wb{{UTjqFY5mJUSv}#H;)ZnI}tLBn%ZG0-tN21kT zrRDT5#d|i;U+mv$j!ExYMvWyVX@>P+%7{tBdZ_!Pu1Qmo^8DTe@U5qrscO1Bx3@P0 zzWa+*3JZ_m*!a7o+DWWw*Yd1DLad1I8N;{?0SL@+11gXKB;{Bg zqn{e_UaM}pW5*r3Tug{nRTZ#uqyVEkN$b}g^VDbfKaBGFG_!oo*Yd?ZjL1aRMZb(o=0JuO45DM{*M*}&@ z0>2)`)|}n0p$o29@^UF!*V@Y0(IsTG(#@ZvVPj4zFItn)IbWK}%FDBE+FfaFEZxjC z47*Mk3=P0xk4`xOj&XnsFvfW`Z7u)+ZU8FfiQ24JfH1EOs=;C6+ZbYL<%>+c%n5lL1$T{Losk)W<}myCXw81W{{X=QJ|yd35x?M_ zeiGKaSFEc>&npq3oBf;WLLE?&VFy3Ldn%$H#f?#AA=Ds`l(cya^iysF* zBX|w1p}vz}@Xo7kZ5+X5M7wKO`!tGvQ_)9X3|dB)(bYkF$8lE2g+qc0d@ z__u&@86H0wR<&e7#g+ppmN03G;m4Z{3mgU|4I zC`N{FLcMHMsY23?N>p0JO|@vK`_v^UyFO<5RGyFZ98m#f=PQ#PPqI9^OF;R5&g+oDG=ytLm?g zU$no7F0EzLw2d)hxtu(2aTU_2MLendp(n9<=2R`y9TyvyL2ftnF}Zi<&WC?__z4oM61e9ETlWY9R z<&Yn8bbNweV_j}m-Q)+6xmfV?@bc)MD5Dwo=N{ z&oiU}PUdluUk-85Snys!er^Bk6C1ymd;X-LQz%7e6SCj<4T_G|r`d^_+e z$Kmh9FN~<^<6nxJJ@mc?(VjM2Uk=W;k>A@}-Ua|JwQ;A0l=*}t0%>hRv!gY4zq5Dz z6E|6d#C{U^i}AMh(km?%<{f@d1lh#18E>qeUc%Q^yllmB1X9Mg7k2O~!#>1?rC{=){V`L*ZQMYh;MyOdJegZB-TZcf&u4kK(TY>MP5y_woHKbhtb|bw#ubJ0ilap`-$5M+`w2 zLaH`_o#e7*e*J$k=2&btZJpDGBAmUw&a3 zB9NPxc?`Z@;)I>33i3*W&2jOc4^E~MolGnmsfLA=Ri88>qU9Ygwyj-juPaHNdFdd~P2y zvGVrr3<86+f~4c){R>O*O^yAwfuZkwlWeThmm5i^;#&M87 zjK28U;LR_>2VB3`EOgx!ZL{ZH&lG6H_C|BHx#tSZ7>|{CCcim6Tl-;n2jS<8rTC4d zUf6hrEghhPNXogA+2beAg^(~=n|4vzK?(}4HynO-li~9^>Ueq>TtwpAR*YJYI^{_> zXvXf>SF=`KFMrlC_^gJU;fclK@U*6*d&*SY)E&L+JGB7n)CO>NL_$YUVJ~4Qk z!@slN!mS?VJS5&ZvAfsfw~pINo_jkTN*fsLbi1pv>%L3qjFL{#Mv%h|z2k!bQ2xE* zPxvbrz~2>oF4kq#0{C}Tp4veskX_#9>5&^`YZPi?l_fh-fMs@91(6krufp$wGwB{Y z_}yWv>KaIBd~M>5UtNwJJ=t{&tuo(P)8&o}lf&5Q7S|$AwuEK5y%yruAhEVb?|vHB z&T`DNh_LwV4QwVA#+6uBuTD^xv{9F}jXBOMnmmd!cD!!4v)B34#tK|NnPz-1Un|UT znA}%2YBj0hYsR95A8SHXU06rppEI0e&Xd2AR{h5DU&cQU>An|-!#ZRZ8hY4SY2F*t z64h?}FX8)Jn_Vo~-n4fUwDua5J0df)mobKrhiOsL1^63G_&ck7b@+!DgZv8~r{W!A z_U`WX^%Kgq({u|+3rHlD?Btquc})Inf7&Z4StqrQSdGQhagR6n{{Z_+!J&BfK=3Vw ziM)%*?{uwaR@N@%wX?X@Z}$ya%S^bQ&c-`4Zxr&Igpq`>7c&dXg}0W~<#vupEusv!VFKJoGq8%^ z^Q+^phIJiBQq?TqPhC4xM3Pfyc{R+p1W6;9q_epS<)j8e%M*F8=1D3_tG$(fwXcm| z4D`KA&b89)W3`UnTuAXp1XnXd7}z!p6eb3@^9<;MMP>y8unxb7zqJ?a)u(D6CcL_u z*6ww^(c+En5#hIvEn3x{M8n4Mq%+78SmBsCf@yZoaKmwUysXC;EUtdeQ&Qz?-uGj7 z?zvx@+cdSk-m64?)(a)V=D1k8FyxzqQl{1Jl21moPS)Azeo)4WM*eQ=tM#O)i) zhmTWP8pcwrrR`^V?Nx1&5Jwu#9K<^an{q_Yx5%|^H%_^@lIKol({I6;reu=h$)^OD zTYH%bi(8Gwqmdl>OscHlh8urRemwjg*E~OWsaWb7Ec&*d?F^P0+%}lh0tlEScUDN{ zu2ecaQWxE|*>}j~tWEjF;*AM3`}?_VOmO_9+}g-mJ6oZVj6rZWMy@c6BD|s}CM9T< zl-9UR;bPMFqT7v^D@|^dn)6Fr+3J_C$Y!|=@HHg~!bvUDi@Hhly|!BEC4KDeXXQ7t z-P_D=FO||=%Esjd$+4DIbt)xQ-6gfg*$&y_-5%ZUxkn7rLpGf(GC``ewzp{L&;{8n zBq$+dw3_K7-j3k3k%F)oOZhUSijhg8@EIYIY^99L8)E9lacc8`OJu+cqTE{HPn1q2 zjhN$T-mi;3jdd)l1G32+VnGl~mVlg+SL|hWfJtP3EUaK0EG0+F=>1|gT-rM=_O+94 z_r8tkqq|DhdY%NZ(n&b3WZF$y&A)c{*6mvQHLF`#-&_4hOGLP}A8d*dj0O7o`FxY;739=AgAPL*?Ssp;2WXf`*YWz{s;rB+KeM)~#47Dxz^ zDPj*BUE3lnL|@GUAdMOF29oyCe5)y9WKzvFtFy&#BM??kBIrNbY>a>e%z!{nW8Ta1 z7^S$kmfi<;n@qn)byv9Djc~bjbvL$SWzx3kqe)AlwpR%%%&z`XXwKJnx>l4{yGKbY z>XOylM3(l@(wyX*R6`#q)Q`&~*b7UxRVtxQNYa}MDT z+7MtvtXe2AUB>%izJ!N}Lni1TCoQVl!>U+WteU-{Yb)I*Sp;zFQ9@dK+X*99FBSX_ z4x^<{6sq`=SmI_dxVG_KFUGRy^TnoXK+mL0Ac_gx#yq{*Sm3!T#i5?v5ALpmNPK}B zOXk5Hv)g)Ap0jUrI$RlE*@UJ`N!Y+7OSnXmS{DRjNTeH3%+CBo;SbKsCnZ`{BGctu ztzItAmde*nbX(hNSvA>o(W?n7N=-FrwD(Q5*(B`RNxd3+nO7GtWh~l;opEt5hwtxW z`+P(qUuZXuCXsKTi^*9nrwb%=xo63atzYe@@ zYolsw;f;PPs5~v=!2}XcvLb(H%E-;7Ya3K0yGds-@^7b%l#;+C(x62EaX%8g8+oJa zk7IK>+evN>#+vE`TQ1T=6^xee8$=S$--PPH}c(>@9)v67{*uYcxcmBY5AY&De$Mp+JB3@GotvPPrQpz z(sj!lNu$)@pUk$rk^I=L^*9~elW%wAnBRG3iP|{J$e3a5dx#3d0AK<9K<6399mphL zWM?3bwfxI}!7G2@puP~${tjMv7vi1Xq2_p6;qPp3K$iB>O&0jvt@JA#CH$zYFOjY- zUIju$+(|S^FmWg7hloGmtUm&DTWKw!gIK@6wUSsBA=BmwIzk*rEKeXow{96pE4VRW z0va9mfFRKVfu;xUvdRh1~Z)ZCMuIj&VS;IAd`UzPP%dffB!KLI>S;@Z{c!kjaY z&G0eAI#ls=Ar(RMH7Le)T$EIznr$|$?3%IqxVIz~10;-R87H7QI2;`O-G&1aatW(Z ziDzJo{9d5obmW#93yksH?LAF?2>6Ho3n8XOG?Dmsz_(W@psY=CBykcKI4r(#Wf%mK zs@VlV!t!`KU-&HNkF9k}IS<24GEFD#Dfalrtt#G|GE>caWb%BWDxqSi%vG=kgF0G6a_L zZjMyvYYdP}Vzd4_-CX|wX6QO)h7M*{oUbDoP@rJ)2^~%KE-TRD%dIFaMd~K zN|Yr^QQAsQD}I(;EUvDsmD~PY#$@@1Pn=fDGdw)-c>KQ+Qwxj2){UysuR>gvAtdb6 zi{@7Qv^;CY-ZPcsSFpJ;+}jT^85?6Vq81>J?|KqI+}Sw?HOEil{X615gLR?!m+aRj zOLV2+V7*nN9M`Ysrwea7~byx0^^!Nkg*MM}r3&on9j;U*FK9_Y2=>trmgiNOyM=Hfi zfUF9YV7p1f44>!E_UP9az&cy$ki=R&c4vadWd+q@-1|_-vK(z)p?Z~BKI;&rf2Tj% zhr`kMk4%eGnnnUS;#vSAQ7tf=nu=#tA(SF!^0KJ?^IBVYp=Uzx8Hr$?$=Z5 z<5Ly&I?=+;OPU`0=Dc}VEM;|d(Y^NQerfy*i2ne>b>O{4M3B#6;w>iaRRZONSFp&x zIZ_MA*Z`6S=fiNIkMEE6iTEL<{?UK2{{Vr!d7#=Po+$8thwOD5c~%uOyfIotm)1@d zGO@f$PTo{Vsk;rD{ttc@1+u!+F5_rYOBwC_$Jz*gEtQALd0*bCR%3#NiOC};`}6+* zf@OS8w)maA0@=u8q6|P3agqfQB9@H8r}*ka0eLcB z0#4lJIl#dFPodRU%}wge4iz!xF4ZPBILn+e zX1!rDJAAix7ctDSyC?_AxJ59`6y?@JjJrv%tv)`Y>OKIuV=8Y%Y!a$=nHLOKmck9d zk-Q8I%aLD}-W>4?*(gStS`QHIA+A*z`Og%&E}Guyce|Yf-5ArD(r;5{pxPcTZbA^n0J^+508_*4_a9 zral~acgDJ2qXXT^X9{Zei0Ie42Cd~H-s#uSmNLZ9&Sa7qwuGJnuAr_n`nTX8irV*t zG@E$ddwoYvxLn#S(ryd52US-=xp>QAw|d%@l~)Bl;8ll>Y$WwjMV4iQ<0?d^GVl z!mD}pU0Po%ZDYgQ>#c}_+8;W5x6*Gd-dN)ig6@fPH(V*n82$v#JTl{)hlppJaCS2m z@fGB$;cDUQ!j)=HrAU6~5l*e4ilt{|=V?8xe_$>o;XWhDDPXh8bf`KBPZ0{VrBaPY z7_Z+^oG&^RAH?l-yjG6u`yi9!2DhtQNDOwC7Ly|bBqjXZ6&x$O@DI!tf{dI2obmFf z#!ro22KZ;8>s~3>^?OTeZ9dvom8F>$S?0rRf(V_Dopm#)LW#M??W5)(kBNLo`&Q~F zOp!EwA5?3owBd6+B;_?VdnV;S*~pCQM}?e(neAxn}_Qi;Z+K9BYcH%Lu0DiK_|MvvKB* z9)%y>Q;xQk(zcp6W8qe7!WacwISYk(N=-(U3Uh@uXC7Hst5rEp+CEgD^aO)1dRqPP)QH($smC<5(^xY@#pMe`$F3O z%|8`>Cu^((nxBmP2Xo;K7B-DO&;74&;%zHkOLVw%5Q=+?D;t%yZ0vipZxaO)f;{{7 ztN5FDWusYGG?2-6B0`ZOG5IRr#FE@tX_|=)KL zg^sH&%Y4#3%rn|czYUj15$_}%or(d-Mhp6u8v!i3G$VyhoG8XL;cH!4N8Z)i?cVy` z-({)ub#ZaT)Tr?vyp-Rxl6F^eX|&pFRnuD~(_0_Y{{WBw0BJu4_`||p8nV}KZ0tNm zf2Ud9ODf4S?t=2#8DhE0w2_CCe34FxEBOazH>`PognWMumZ|pJ{Wj(aVz%EJ$g;-k zHVGpM=C;QNX#^6alIwuPAAS9()8Vd@@cZHX=5Gn<+SRXt{40GbnP7_M)wL}u+TpAw zw^!clYa!VaAPW{ez|xW=Z;HGtr)&D0LgLQSR?}|cXIqyLnOLqwY80xnsU?~~xR)t~R>$b)i!EDDn&LUst-}yEv;4*Kau_cKcYs$QXNGP` zHS!n4eF_<_CDbRm2|12Hs?5ML3^3ciL{Rx{s-WQjbpV3Zoi17lRD@O1YHBLiozuRJ zw9{HH-Ow ze+ex99mViZUe^3Qt!p3Ko)nKyyjyKj$?UalHKc?VSrtGRF;4MZ29*r^1Y$-Iz|4d5 zE93Wq?DfAMc$3814U*X1Ts^J!u?Q@o=eV`4D8j87OWJcq#{SY0*78mo z#>rcvvGR2Kvqftx3Ar0~;@~o=WMHZle9emFD+7$K2z4mL7U$!V=H<^U&dkijh8sX( zkOOg^aJa)0l-;`(((1Nx+fEQ80T>G=5ko7Xa;2MQ^y964?HNK*=7RW=mz||;e3iBI^gkxA8Nzp3L15qa7_hT&M%;C2AKa%wl%=yoxTJO>+JIsSMMNpUKfV+7|mR9-C_67Sd_)K^Q_I&s?;jw78a#{ErLA<<#E3E$j+8WF$tX|7-q$?TT z>rj)-E*u#)f^maiPs6mi@xIfg3Nn{pifL0$$*oeomde&itxw6kRm^^=kx;wA;Oz4wlx$twRUwW|!bd<>Lnhev zxcQ{EK?}*UE(^1jDxe~ys7VgN6a$6(HbCK=$`l=^D#H0DWM_EUKvqX82 zDI_w6003M_#Hex_x?4NA9J8bWNG_ltb?9(U3OG4Ta7qc59 zquH*h@3xoIZ7z)EMmE{&qrKLaOIDk=ODk(@dg_aXVxW(ZM1V6fAhQ)woy?%H7zvM+ z&O~Q<1ZruprOT-h08|Dz-HZj=azJe4V0I6UtQaV2$MVAja6V-S015#La^E%sg;VmJ z3p-ZvdkT#v$P>g_nZ9~S;+(E!O zHT$Rb)(F`9zJt_}k_JiYPDXL^lN3C?d3A8Qo9ybP>KrYDmQJx3P~8pJmVP~tMgO#b+e5>Z?B0F1XL6J7kN(^Vp~?y z)$@Uj$9tVrKH9Q{;(x|NJXEAA8q$$Tnx3!(V>)G$@_(zTZ0Ab^)#kn|S zF-_?0daC+cRF;pm-S%wz7ftY*_`miexA44?3Exxr9yXL zAJ|I}WB&jMfA)SDU=@sB+7L?vjK-mGFan-97$3?%?I)`E<4M=GeHTyCNz<$~ZBEGS zApfX#w(gmQ^WE}q^|T)g7V#8 zWBWVkVV%^cp7^7YN}^PwoME#Xac<2@rCenS?lFC2sL@hsY_ENp@K?nBCMoWxFi9wc zF<~z_*p5`GMSO%`nYm0W0nf^Se3z^0nv55#XB2WtZh?W9YRQPvfB+wn!nVZ?oussY z0l29@M0nfc74?p;G<`!wxVV}~$szzQAr9eCA!JhiSS&M~5X2LZpdM80l2p98&>9%z zRAdsu0RwAo2Qd~|yuX+`f-tziR@^?zKTyO}oT=569A#?F!ljnii*0C^y=2;Z>!JOv zobuvo%}}oC$}&-?`Dbfsz16L46}GkXN0CJBa>y={Wy#3ggauUEzc6CW$Qy}GrNBII z493jRLdvC>;B8SM7#JZkT)!-bA1P1>0Fnz4x46{rbjagL1)a1^NjP1bqhLcauGr2A z+@<$@-M!UFt}c71r)2?EI0rdjm=|KInK*3cnAJ*Pa047yS{^F80RXSN{OPHU9wMojx)BwtR6WrKn4F;SYk|5V(cBdE>@_ zGs@~j$HM*_l6clDop$yRWVo4(uxVEAx0h<{*0$Gw*ssHn3VbR3pL`Kz@W0?UgmiBR zct1gp%9ib6U+qnAP+uV@)h_3me%-6;mravCtEovOrAnkJ1Tn&k`R;GT7)-j1u^5W+ zr%zUtouw!4=^MLUHLkC-wx{zSiT*X=xNjFzhqz}C4Bv>_Us;r-<$%ihlzAR5P<+#^ zZB`najJaPmNz+a$Up{}qJwIXH8}=0VVXSHT-lL-UkK#{_X0pBUhNod`ES4}srrSt# z?+j?~aSC7GY4*1>TwKj_a+c!q=HcAiMv=uD`<w2Dn2BG%7K;PZAp`*v< z35y1aQLYLPE(0ME5CATv*@{Jj)ZGC;F)B9Fgy8j&g`UxXPD&&ATZ-%w>cye zP(v1{t(YLd%9~izHd@}LNEXm;8 zYkfvC@?Brr#5AY61qukRUd~7zl#{u4EA2ew6S)0N;k`Z1m>`kLo!f9)P|Tz)S+f70lZ6}%;KbijkiXZSzFODCw2Z}Y@yPY;~9Q-Me{hvzs zlc8Bku-lO`q&9vr(b&&_;T>BBIOP{Y<43x615VWLS=uQ70Isnq)2EK^#^BrDra%Z) z7_%~xVQ`rYHxspoB#=iXk8CwNPZnvKlF4arbK)x-3615Q-MUL-;@un}7dAJRQY?va zFo?(+GYq8VqbO96x^O2H)1!i+mO82!ygfI|Nw(=@DbtK(-8;L}#PX*lPVN;Nv{I8% ze_xztnZz=z-zk+(tz;S6<;2se1nS_c)RZk=Gf7$;(SmbJ-B$LT$#cW_k%G$MDun|ENw3aBB7aK!E*LmoK=RhRXr z_SgM{yghTE>VF-7XKguPv$GT5c<14bjAljBA&8l^4P(Og>O9EpElYi({{TY6MGdnx z-kBO(MAxN`+WS)0CgHsVFquZyg<*wBnj_N>8Mdl4;AK z_?jcL_?O1!WP9z!Y!2mOswl#7jxFUl?Bt4?A>I zzLjcG2@iXyOw#IC4DW)%($vZWu?#Y$u-kF_gZoT)j$1zsTIujz`EcEN(yh2)fQdQ%)=qA&_V zDySLBuV)WY)u}p5dAH}#_z(7z z)otysZ9F}vM})O7+igIlFf$j~ynhr`gl;xgcByRXEoRhtY89CkO z9wLh5>N-Iim&z8!&=M9B><9{=ou!sAr*;7gtJ|fXwifP7sn=ST)<=%$t-*#!a*{{oxO8QZ5<{0_%E^J1JGSj4{n7g@ z{@%Y4{vK%Z=+fz0M~S>gVP=+^KE11=O*N`R1dyb6w(k>prXes-u5{)XcgZC;X;~iktxubVx)$W^Cj)(LY`!D$B=f*lTT9&hPgIjyMsc&S2`9ewV zrIKkQ2&5_i?i41^nQ#|5Bz}o$o>aCfvAK45(Oxx`+0c>(NeCDs`J^5c0>@}1fnSFI z00DekKY(?2wzN+X9Dc&h2qL;g+^;%se(WTt}#^KD$l<;(8R&n;c zu=a`C@|EJQ+^*Y}k4t_B(GuFdsApGc2_!iVapi))!l7^xa4>ca$BYHzXF>6_IxO)o zoP}dz%;SFbZJ>pJFLB&PaseO=fJkC%&a6C92BKs$I6J^TNoEVRkOcwR&f=f~0Lecv zA+ReN+V;cyTa_;Zf=E^}ZDu4pZQQ&PHpjV1A1(&cK>6BOIZmUEST_}B)%!TzY1&He z)@s|IQ&SYFr6@@zmWy_-lY2ci==HnTL+(uv;}3@~A+v*3c$q^Tut*N~AcfuwaLibp zhiJ=_^5o!go+KQakABGlJcG1|~i2$pe)UI@@IP!u1Ne`8M) zt)GZamvRE3V#n zk3!S*EgdaCv}YGuj+ByHq|@m)GXOq&W_e{QQGB(zSlE25=fnO7=sJd%6@f>fQPICBj8PQ9fO(@dkrDWCPWT36fdp#Pl`?K*|$GR89O+(_3gFHC~lP`yL zuZH?v)Nf)U4{hQbYblJD?%@zD%AQn&e+;mUmLqk3E9)AC{43$8?q{9S2bR*}38Zk! zVws~c$_sIV50+W>sbaq`Abkz+JH(e72gMH^+u!OF9T;lxt-zg~LJNpwMNz+>DmIX; zkrKHX8Dh$7s`$`dYucKupe5;sUBvvP=3d(@zl^G|3MSoErvTnO| z<8KRmPx$+LGS8{U@TSkhk@;vOm`i7EGlbk5A)M?4Mn(%0lY&?Iq49r)F6?HvyAiZf zMi2%V11Omf&r(i90!B`7NUzhM*)!v=t>9mRJ}>airQ=CAh+5Xh-o#3qjKm%iHVkD} zX50{C3=}9QXs^XQW6ReN@YY?7!$sn;6sJc4Xna$pQneYl&RYAN^l3^-+eIsMPw~us zdbnJ58LPT*mptOt)SPVKt-bYeNvm2-bZ24kBj8_yeinFw>*A-6EwtYhd`H&xOWj*X z(%MMc*FcKqTZz@KB9V5r+6Ub%&%eoG@`B-s>i#}_bia#Dmh$H2QF(GDhRaX4X(N{4 zv1M4{UoE_w6;cl2vF0GL`AXx>>~-B(OQ~Gxw(@wN#n!f08jSiqyoN-xw;N`TORxa| zCh0(rlbBr<16~Mk5=YA$<^z;5M#m=TpltzU*7+Kz&YWo!!#|?(0{n~g~sHHlsUQX#= zP04<{;olA7yhP8V#2jmxP8l9vskMS_T2$!rxX`5q{5m#^_L5Oo zb$NAj6^v6{?{o}Rgk|!oKmmwcgMe4(;fZb4`dj-p_(pv)!fi(OX|Gk+2<{xPDjR!l zZh(`8V7@14{vdp-T^i zqX^Q4Dpb;pVF;+jMMWiKxnknpt*5eQ`ZdFNtcMGM!$&5mMp#-jAsjUwo{mP`po4AR3Ql?udRbA#DWJ=Ux7X` z@LTwA#Cpz^dEz}j-fc5fySFf5gz&0QlvWB@j41(dN|wnEK+S&8_+S1Iodd)+nr4mT ze-ZeS{`UGCWz%%{{Y~Le;58Q_>$|#GRNWH z4O#e$%DnRRLw9|sfh=gkYlxu<2$j?iGYp`xEMv(a`aBJY#^Gz?DbvgAVqrK_Zqasx zlTwO%sHb@@Ze@0~KP&n{Q_Ax^qaeo4ymIWqmLk1BXNcuhYGGwgpERQgxk^eCf?p51 zm9zK<`%bUJ!Qw4m zZwdTZv3q;1I#k)Fr--!JWw^7vM36@mQr+7dn>h;YG8Tmx;xrZdqoDr)!Mu{m3=(*g z;+?&b1NZ5p_<9s1G38QAnPzO@6T5DDbHJ}#@PGUeAK(vxyg{V+u78LgJG<9(OW3s= z8<@34)5X2)QY4DerL+qmh_qldMZ&t4QVOxJ((@?eb3B_LgPsDO8R9VRG-_0w9I4hy zGNm-5H)jc`$?11(cd`7JMur;;j>BRhi>-*2I$ z#+GyGFltwq33QgrxuCaZ^9IxmNmMPuf?de@03$30Yvw&i;=saCZ*P8{5=B?&h<*aq$`ZR{Vi{O> zc3fl-M%;?{cj70+tusoJ`QK2EIMt*IjXYtK=3=bDdV*7uG6*Dr$Oq=1i9Z3q;G@@f zm)Bky)BG_ESDB4slKyzo+7h5KK#-^;!2ZF zSKV}5H@WsNi88z-W%YMc5jj2isYW+iUhYp#Z}MwKk@ao=0LKj`D~YF;{@O@TI*Hms z$Tl$K5HeVV$X%H9#qpDop+(86r^GLunj3e2&=Wae+FHGYYL=4Wv#2V8(QhR8YofN%8qrFLO=FzdJt+2<-T zg(?nk0KpvfJORet>9Q$iYq`h_NKw3P8R^bQ1f1aTI%IQSrEx|hG0Y^LY;HDiQc~rG zX9aYU(MHPJ>Xz>P&(HXCA;|K$+Xj_ zefX#1!*8K{XVEOQs|^7ylT+0++xxv%{{A@e8eJu=+C(6bV{t@OfVnH?24i2I*Prl1 zFWWo9dY$F|r>}fHx;ka-Qp0&3p{OLUZydXXr9RJvl0-#d5t>DPq&5L@{i<5r$)wyo z@Low9G6j-HUD+A!oGBQ=z{frEF+@gAe9%cemxT@5uaC5F>dkpT)P zg$NICkT=G|Y>J@t&hGvl&+&9=(7;o|eQt41H7Zw{wJLt=Q<%}A%R+}qY`#lfm)An!w0D?7qPVx4Ir|Ul#JX>$z>ljIT2@&6G2_!*~qxPfrZvBpa5q`)vTCCn3zrWPAZEVDE zb-xl^TTgh)3KfP6V3zSiXKanRmKYKNm9?d;HkQyuZEFN#I3iFLVniEN z5q|2bfCBAMa0WoYHRS#?vC?mCB!g6f8KTKh&UxK~oE@NU4S+GgInM;=>#1SzajdZm z3x|b!$*QUi$~@XhMYhy^*5aH~e7orGc~He-so}n(PQ2rWl8k2vD8kLck>6X+vVE>! z^vyWPLt8%f3=DZEX#fq_IU9lC6H<8JOFA>8S~j6^1TQA&V0(jw!xO>8j_S%+ZufTm zkAQfA=6OydgtKa~r&TLpF%y3D(n+c}((W(dTB#e`AnsPmD%%acWd5Df4`;C=H^c_$g9eX z)ZuBR3e?n`W|NMWN%HKp`?fz!G>;X(?H8x$z83K=w|C*63+T4)Wcw`79G6nY03qS? z2H>Cq$8I(rGD$V=N8z`@PYHNqP}CCt0K?k$hojl7+NPs>G_9$aV2z1b!83s?0CC0w zlEedoJ_qn;FwRN)mEO7?P>GP37()w|tn($xAqCmUh%+zm`#F9ky~#ZHTYt6jO& zg!vR{!p`wfQnxZuyNZ>ZU77d`@k_@39Mt?#uFv6{K^BcJrFObZTcckp+1qPM2w2|| z4o2a?0b@DMdf)7;;_I>Tv*DZu{!0rx!~XyX%uRP8eL54a4M$HOXpxE7)9Tk&w@iV7 zd71-~&_-*Bo5c$Z-jMiOT;>Dv==X7ccb`+!utM{ZY;0llT^J+_-tab(_Yl9?Rah^ zx4g1~2n3e`%25im?d3n}Ii4D%vRb%UQhv&w714`?Zzi2JOP$GUE{;v#OSYcp<9IA} z7o0;GImOnij8){DQH)%xMx%@)bd*-9MOh_fZil}A0Kq^!KAs!+zLtdVx&7{Y8!CVZ2l8n0V>Z(3rhOhK`{{Vth#c%L;{t37HC+SnEOl6->WuJ| znoUE-x>ESA_FIPDOGsN)jSP}WCSg(>vVxWVeLwJ1eLXLJH+Y)*HI)!Y;iZBlNXa(; z0Pu~&aAfmhSz$7Ha>&EWk)V)9&NhHjKkk423G4AXFN$CAPS4o;#WoVGi*xV`z&;?a%WJNZ zvU^?Ieb3r3nSC67afzWhIKs1`R>^4Ko!h$6q}pqJHCvx=c$3DdJIt!lxRs_Mf(8Xx zo#2EFUCOZ=gRV;>08zJ(m%LS_!LHA74aJZ!$j`iOQxn4@Nf-$mM>q_@-9srpVv;bQ zI6aNbcZH7EcLmtKP?gINz$!9Ev9l{}-mUVt%aU*gbTJfyc3?qVusC@9y`e*F`N9$c zm2#wmji7>Xe>csu9A-9rwN$MZ<)iGQcGkC6x>nZv-pB0uZU+s3roD$NlTnOP-)JR! zH+|NtTcx@1_r(7IfqnzkwEMd~Q^UG+*761mH<7*-lm{`h+oQz7ag|n@G+7xu#Vg9~ z{B`}Lzh!R%$raViei4e;!4%0Rp<#1%4a^HGnB$n++!*33<){wDipV*Y+C~pwzJ4yf z-fk9kc1*IBV(g4bXxniGGVGw>fI_wpApE}={9o{U>zZBPksq3^Zz_2#U0rftYM1kY zWZ0xJ3dI2uBFHkW^SDgvcv{hnXUL-~Uh-X6MW>o=JFeQEmS>VIb{bNZDAk;ztn8b5 zC8M?Xy`H*lsr-t3R`@9=hII?J(d3d#2)yQsLa=$Uo!Ro=%V^|761yvrks^s02-rIx zo7-Kv(&lSByRmN8^169fOLHVHH<=5?d1}`(+q1Uy0z`D!avZKzzi_@e`~~r#xzs$Z z9(_vO1~E?#+gqq(b;ijP&3LZTHI0x=H!J7neW6r-U3@|KSK@5~>Av6Lb0jIf)=BMR zl@<4~beqfa7TuM1F2`mOw)X)9QP=8OW^;zb(~N3Vg-JCPbvUVATG6xDU9H((_jW%J z&iH>Bf~z@GqUoh1({$wGtz~zmt-I0LX?ELbcr>0d&~Detzn&Q79Om}I^43wwP;Ipv zSTQbDO01GupgV}c3SFp6ec?N@%WdMAp_XI^?7FqQ^IJPH+q7Q!BrwSeT3BI`Km^IW zsBK+SP17tBb?vs9YVxT?grpHljl(-LLiY^AX~U~R4CNI-5dpK$?-Rn1vHL^Ea3;er zhT7OkAIw>|O6&GyQSyLHpC)&10DwM{glW{)o2wfr^4TXJvXzrfJGXb|cc!TL>dvh; z{jacgdi+XC=_|c&v)O37Su%ZBN{Z?yOKnR@y9*dH3k^XewwRo42?VOacSipJx@6h8 z&d-(C0uKpzo+vd4d_Au2wMHLju$Z`wUP%KKwwhSjv!I?~_G_5pe=YNrVkC}TjRQ@y z)&g1R+B6UYwli{6UEI!QFf3?QpX~6pT2pA*!M*W&T8ve>(u=m2>hF&7p zz7pyG02x1PKZ~|6sIIB6>3V*(55s7g;f@_YLW5DYzti*xbmY0WiswQTecrqZ0J6r|@VtEfRm`|`83)}2?;aK{Sb_?r~o z7OgBM9}c4|Rw8On3KD53MhebzmHpW1cK5r9_@kyap`pfaR7)hy2)T))3h-*Wa|u%9 zO%_pw+!nIJ_fde3{!&cpJiB)sZ^TU|EjhIB5@@1nY;GVgaA3r-su{)VMA0(_7>CYj zAa+-`mL?YSeV$#F`n~&Ecz0IuT#4fibHln8f||Siy4wE$!s;N=;=7dFsz)uXaYY@w znC=?h`Z6}mkwTfpx6k=yVS4cDI`@J6LkYK89&hab05r6T1=1N_-XV|~?Iw!V*#o;n zB1+cs07)(937Ls5U^sPyhTaZ)C zicdNjz?3@8?J0Rb#9s$RYkzI!c*DVu2A!yB(uq>_n%{UZ$g#V~W7JeEmeR&ZH&IO- zZ?;Q1@cnyumGexux??tZ@|jJ=oY5u>OeBs%*>&_S4_Y_o z)8by1qFqlxHo7;&4K_9+YySWb$0RU8tw|I-i`_8oS>{N>x|F(CfvpT<-NZ-QQ;k^N zIN7GUO3CWd(Ny`RHl5Yk@|b3$DN~wB%JG_a);l>x@}(ySs#m*=t$mJLMe-~)*P7tO z+77vHmRhRF#U-@X9tmTyy?9v0A~#Q)S?;1jk0jq|F-0RZW9d(YUM6ii_HPdA(-enO zH;Z>~FxdypO`YL}U6HCYD?zC+3KCedg=Bq|=06g&U+kNkZDQ6auKYi&rHR!bbQ>my zVI;OU*6gcpW0rUT+bEH9dan$kGdAkS(Zdtwc^ot8M>MR9Ndn7I9n@RjiKkA*xx zt=SJdZJcRyJR9P9NYpcalacaVlk2c8JQUAc|Q2D;VX3uNK;HsTQ2BnvCOZ zUa2)DeHERbc7JsJ6L|7?4BH*Ub#W@49CRay!a=^f1_}%JWOLQbguT0!=i2bYwD;Kq#shx190rLzH5AGQZ zXa20=d6SncB)0c?RP?p)c9OQXX)cK*zrgRL&KjNv$Id;&(n>LwY^&NjE^I~@4PH%j zyrogSwYxk^#bF*L+EzmnC~+P*IKU;@k19wcXN(M|BEC5Iyu$wgM!$P_@u=x|bdgi$ zRYeNeBMvwZkUs7+j!7QF;>({E+1}iXIGW*$ z`d;eC#AWo~)wyK#Y3{Dw)LOIo-%icm_q{I<>RKm=JTGMjiJ^vg zvZV`S2XHu64Ue1hC;kef@KZ?Cz7gE`i^6(ky@WbAH(wP=s}X`&tOaZ>Cl6`wF3*~qU6!qBqSJR}vi`IG0Bzrf{wess`!;-H z@Na@+ORak6!TNTqX>QCwyBbyedc5|^M&svPc~Zv^Y$=taRv;49{B=QnEv?+Pmsag> zeQi9Jw^p-6W0u=p*3Ikqf6|L3$6~SEJBo}P{{XT0V=2PagjMZAbd`5eC3f6u)v0^7lx+5kzvD-b zEx)zABdc1b=iP5BZr&FR5I9k=6(k-GNZPsbi5Xh_W7KYro8oOw%!Wg6e!)XzoEJMr zUl_(04YUz~lbl!WCzjXRZR9e1=_C?>g^H+LE&`CD9f&REgTnMBPILJ0@smn@3*t7Q zjSkhgnVm_)lA=wZZa*V17#JMrjyZWuCDjLU6cIV z!i>h)OimK_bm}R^H__QUK9*YVs^3kwt^7rGh}h2C<5=VjA1ZhW%Mw8?&@fUQs8ScG z`}6(@&*R9gKWg8G)|!Bhcr`!m%MFsdD#tXMWaVX#%;YK-V_%a>v+)kJ>;QQ-S!oi)xKY1z z?zsRX4XwBW!*=TYa+X^O;&9T8S2SzVac(NKPaXdd`=GlbQtnaJ@x9}<`ctYAcGO3Z6jp2Zd##u@+!xGBF z@zeH;*R<_&?(R6QBcc^MiZfPi`yIxrs%Nb%MP^6HXa;x(x8-o+}Tvvl}_B^tSiln)kUiUY-@vU3Fx@w!zJEJ^< z7NE@gKxHZ94VlHuhIb0cFR`_WuAcL$wXeTlGa}zdRFv0xB4$7yDhZ|Xl8-8x%75ztl z!4|wF@T(#ARofyik zN|KCY80&9_H*Z&Ed;B_ReW&pk_8a&e@ovw@5JjLJPsSf&iftEOztwLV>%*|aa+eV4 zT4a%2G)-r3KgjL}PMeBYGe$+a?ukq8y-W$2S)1%WL!y2}yqswk%DDY|biwmLx z;51CK`Kz@_Rz+n6cMne zAo*FgahKP^#2`N->mDZ7a#UU8e7QtKX;F<=j7v!(%E^uUe#OLY*qS zl6Q-g;S1Y)INH`}Cid9*PvV}WkFQ*+Op+@$K~NSrl#zuhTns9?Rs@nyDh@_|B>0V} z+}z&FXB5S);{kz*qr)%^6`jDxK2&N|caXpWLlIt$i)#Fzm#;h1f!(ovrg9nx|1zOWk_y zWcJZ7mAmv-wuh~WUeDc4xW|itZEvqkZ9HjVR&G)y12gq zp@Jw@OPTJ0MJS6K1}zy{!|-;jQX8012;vcyX}2?xgpE+B!j%AmzG{QKb;~g$=)Z%% z82%OfEwKS(uLlR}Bs8y-#>B&XPT*?>aoFyf8?3B56eJ=C(pd93SZ^aLa`nSbRa`NND z8hz%8qTZrf%X5D`lj^sYaP32H63dZo1ex5*o?K&;&cU^~Ek8#4Izo*RLK$OsVxdZ@ zA1Y@AeA|@Cw{a{^&_!_3p(+j3nu@Jb&ezf!rrX!uZM4*NX)R8S#~B<kj^6jKK}rh z<^+B60sy}@dRNBt=uZvwh_T5TX{C&e71$a@+(yDlARm|zLlUH6PHXh6gEEFE56dkl zOLZpSGPG>dYo~Ac2jg5xl~luGy`&d4Dvk1`%$j?peLD5kcSf&=bfvx3G^<#qK`q_& zotSBk;Tz8^QHNJ8A_XS}REAKh+krLxpy@VErf9k)g1VpV-4jT%-KeC>JO!s4XPI@66!><}XeV-u&0f+H&Z>pOIzD6s1BEXT zCk#KXeMm5#Bu%RfWg=fKn6Jpe1~!Gm4W&AamIQ(YexJfFHI_DUmo=RzUHz81o9OP< zlD574-}3(ejgqNCw+~_FlDfv#3ZE12edFj&u)r8cTcRK8gr1%xS8Bju6U z97iEjyB)Qaz>$yc-G?%|?^cxnP!E_fu)ODg$P#fF7WgrU%l`nft>%qbNa%L1z+JLb zE(lWLL3upD(?urJ8mxY65ULyb607BMR!MaAve&Cu^409yvq$=zpx3&urL<`_z82D2 z?$xfJYhAR-v}U?sv6U?dVnmO;vxSirR}K+cVX{In04TT$z-GFHv}1zI1_F>vZW!|) z2WVZO5c`4*h9fFRdbXCr+iD=dAZ|rj3dgX>K-_SAwF$Kj&|_9S1pC_lcEtpv1q3J= zecp~#f^tDeDUpJwdFzVCQ>Z%uaP+4S{qRlVJv-IJ!1FWQT_0eYw z4ZM-Zw`eT51Lh%4G4nHU2p(INWgAM3je>A=ZD9!Ul_htwmqN@6l`$L`)1WF)6#LPb zyu}4_X^=@I%O{zIC^qMDRv-jjxndh>EyD%<;Q31KT$$hjU0jAx+jfk%FXk&SQb)>E z6~=O7UZIeb6$+^}X7sYzUe{f0^yzI9)6mLPWY@jf^IJ{rW#6+`>YDOB8^aphx*oBk z>ek?ibnQag?lnasM=%)V$Y|Rkg03VA=p6|=z}ipl*N3hxHSZ4S`s90zTArC}dmA`) z$+?AP)g=_=8ZsmVC(H>@#O*mAb^C9B z!D;?2e!{nZ4*nQ;XW)l|yj^Xs_%Sc^&lvcJT-D)%OPUbnr9Mtp)S9}Cm9)Rbv%6>XTI(3QF{~03ziT?i%%yS$GC|2CgUMWDoB%7~ z?|{NPfA}a*jIBzt%O}B0lyJZfVAbtG86<5Oh!KKwgOPz>%k{tf9Ao=wc9-r!BpvsjAspPvw7YU%X|ODVuBUExlCiB<&y52f^)JFZ>j* z#E`KCu6_s0Bj9pgai-rAQ(z1Jv5CL|NjpFU8r#My@PxQhGE!E}?|q{sC{uR6y8F8B zwC;JH66DytE>*|Qqk~i7y0TW5x2GiE%F|mvDD`LEUj<$Xeh~O20)QgZuPw~HsNHX> z>M<}XRPmK%;3y-I#Qekg$^QU?gr)a@J}&sfK+^3dzn@&ypHa0?fg#zeLYGQnbUTa2 zWpK-p*PP&2;m7*X13Xv!*`ej3YaRD!dY zH0fcS9C?$njoQ1@-o3Ryr~ZmrMmsI>kBz4B5S|KHY{6Hd4reDdnA3QAjXNdm?>N~e zzj>y%XPL*~?OhT*LtF6evOhD6i=n6QW`=7G42uXUv;*-13*rmuGF zj}N>1T-Q@GT{{dh2&V|6_&~{xN)WkX0Nu(QJ9F!Qv**E|7JPpAzwrM6;U|OAOPzPd z-XgNm;B}5)Cdvn3+J>ocPs}Yes};Jwx^mz}1*D`YAOYtW9v{{6B)Yen9mX+&g(0av!$tQ!fyDtQIMeYZfVAecC4A=V2 z=kTQCVa4`%~i&$l5&gXYB60UD?Kdlf13Vg z@gIpRaL)~9nWTB1BAqW~g;gAyc$`GzOApN#t)o(La!X!Y_CKUAf?o!_EATtvFM|I7 zXYYkNVq187!dg@|*Y{|P6xy}(sFzytCbcwUeEN>Ls5F-nw55W==!vo~vquwR(V=U* zsaj^4(rKYUqyfB1vv5RZ0A;YMt+ZgdW&{fNzYWi2;lB&Ettoq(y;R{849|N!?6BI~ zpeK1*Hg7m?Rf~|JYt3xnRlK`N!llyOkPxzLM&6{Iq^hqc%|1r=o}Sv%iXF4j%|0G>HEYg)cLIj=c7wH-%Rt|hlB_?%Sg z%2=ASo7T=!(P?F6rpn)jd>;+?3pDXtW?z;Tb2Px94UMGj186ubdi=l!10K6!;C(vR zktD471fP{u@}r{Q^Mkvn#sSDVsQfRdM8CZ#hCMHI``*{SEa%nFO^RP99AO*PIYXYYRYnz(@S1mBDK||t)kZHpEaK6*!kir zQ>Tin8fxjmS}N_Wn!9^9E4_acI@eFPwo742~HOv77jrKp8V$+CmB*mKBV;dbHo<$M{RYz^@A>bi4-jGTR&ZVB36?=LI8 zrPHfFUg0eJ6PV$pLlZSw#W=XQsdH%-m9MS)C9g#GJP*UyTE>IpOFV|B!lGb1+1EAZ>~;{BWx;LpX4KgM1SvP(~gzZ0jQQLwj7 zrrX25C5@uE*K`=;5tNF})>PIsn8L=tW}4>GCGzy*^kB=M96OZMd158pB3l{ z97XP5Sn#|PUd03(O3dk~X)mbh95`u~bdi~YZ9hA~{9lR5^LSER)5>aQSj;cCt5I5X zJ*6cXMQWU>s*$SNZt;_fTDE;37x4WI+byL!ijv1i4TP+rN-av2XAgSvicglOEUDSG zs!i&V{CfV;_j<30JX3L|T0<&ZXsc}<&C;=W*hGxiQoHRD`D?ugma3vj2vz}9BYrdf z)P6pXL53d#=?~>kJ?kylj5M;CLl~kxkZF|2PcXn!8tJ&SzEp$sw zH$NWCDf<}4lr1KdV3c)g&hmCiwBMrH-p!mgln014Xe^?NRkF32y!l&^3|8tHnUBr2 zWMIJVCwq`SbV0YB@mAP%8SWW4`%SuALUPIFG`o?;;06S04h9Atf#kJ%MwWE%4@SBj zmBe#OW0q}J^|k?Va1rA2qID|%L34mk3j)D@azgVyEP~4KO?^V$)dO8xlxYX=Br(Jb zuzZCG(sGL#$ot^0%txmTP3EHRlf9)a9i5-1?#Z{;vE$UDl{W6VxvtY!vgM0QPd8+` zea-O}q(iCPp+PZc`$S-Tr!itiQ-j9j`A0a*ZUkc$n`?1*r}&ojqb50R{H;dM%LFQw zlg|=v2-sGI`6|OCoys^PLKkTD+Zo;<$Zuhch8#Rn7}2+=Di{#oF$V(*Kp^1gYxXBk z)s}1+?;yE*Ig|xHWsJl3I6}lR8@#@A_k!)m6@_;hxzm!msZL40>DfD^w0hdtd$jc0 z=sDB&by8{4s~K}Cb#C^0KYOazef2*|d>HHE?+@r+AZQgXFYO|?ylBc8h1Zg-CRPm1 zwnf8a1BERUuJkzc3q5mJ@Rj=cl01+j5&>hAk(I^>BLE$zDmf$^X1rJSD7d@VY_-o1 zU1mshTdR4XfsRxq$!J+nzDObBX@Ck@7|0|5eAV}6z3`~auC9vBG<$;<2WJGh&fE}r zWd{mDTwrb^`TIP=(!pk!oE=o9PBU%_OK8s0hc26>-^o7b^$!kXWsk~mc*~^rMtrf@4uOpQNlY#Rqv0%V-{uWTg1A$)Y;NKM4 z-fK}b*AZjo1j#1llkTWtxT30;8}%k3O9+1CKFwkC@0wE3}RY z&f-HbL&!UEx6ZY1+9SZ94t!I0;V%$)f$h9OqZm^0ZS7^A-Z>>jkyc5fjznh(D0fZd zg228A72`)Cc9T%{N%AA6Q6_Ph9+-K`U~zJ`2DM=yjWnb)U6oTQ@) zwPv9SO4qV&+hujCZ6@~6{onA8o1plRn|Yl9xJ3dckQ4!xK#`B#0kYe8z&QRQD~kBl z@aw{U2>5aF7svM33ns7O?+R--wh~Bz<4sOGXM(~qB2dK3buyZM0gpy2|+{BTd4RKy2{k}Y5`$frl@Z(L> z+rs`AzLwVF{?6if?lm20V4fC>&1k};R-)-vY2x|Ih~tr@3KdVcmGG`}h5rC(uZNu~ z6k450)c0=)xbGJ3-PdHU)|<2D^KLfCD^jb6!sZdLjjb6{ps@0C_H`z$8M(#s$Cdls z*N&HKS7-AVjs6(xcbYBl#QjTHTkUK6T0iYgI`(rur#QWe9hX2cGBiLoV@BT4#5WcP z39 z@vp{~J^=9z;5OQ|t>dCeF3~KuQ0w} zWSX*fadv9*yS4n=cG&s{;~&E2xA9H)f;5QkFK?~&OPwiUf;N&zc$_pFQFm=)8R!oL z^2B`A_fPy2hG$W`Kr=YlkrQyBpLslW`_ zBWY!bY}ieBXT;CibH^ILgMZ;6xRdR7de)&1fi$wJgpMfW26eZL0I{zjRmm%`(J zMmJG%a#D-4wK+woC{F3>z2@3ly)M&Tq4?9|O#}9U@&5qDy#q*1FTwu+5WGvS%^!wV zAojLe7NvC~Sn25#1`xHZEf&R60SM}#AvyTF#@-RvyhrgnS=KaLd7=K-)n?T#rhrJ0 z+dPvA8PK3o97?Ub1mpk!Adz2UcxnZoMbfo<;x6Mb!>QfcFy)zCG>`-4CetDpP%?Q^ z0L5VV`{Dxlo5XV6cn`uuM~>d!8%vo=@AI887@1WUVk!f&G>ib`3E3-uPgjVa2cl;wzoAeA^qn~PkrX|(xmqrcK{wr`2asn^4%EK_<9AEnyaS;^wdO+BI4+8i(z z+aZ@wd#k@D5><@*t_w(y1Zu&%A07Ng_{H(3!TPp@zp?d)gZxo>x;;O{-V(U}%Xp>= z5*zu1FvBCFDhE$BOhCz!S%Q=C=j=c6yWqdR#$z^mXLtNFZVz2y8Berd^4tv zUrCEgxPsakS|mR%5+wwu-NKd)h1}o)!60V8nJqK^3*YdMO@eu>eggQ4C}1kX$(v2Y zsgt?XrqQr)cPSu|v}XlJ)t?Ig0N}mf0enT_>y1Oi-U0EyhGn-3W44P=hV^8C1p-By z8A9V}T!0lL#@*YpgXyvi=ZCVFTiWLI`Kt29YE&mi3z6w-!uD5oSJwTTJ&qvEGoC7* z9#V~LYr`ow*Re72;kc z%iYM4#pS5U$vMx=**vfu`iybdfC>DgfA}uv?2jqiCAW`YD&IK&0EBgzfEb(;_N+Gp zZWq_?{K17c{{Vu~{>fUO`a;L!gSeaq@YLB1I5}Y^IKjcm+D3Nu&(dOepN4T1T{&ks zSSh8wMw{B|$yq1e>fY|jGr_~;nfxn8aLRF#YR>-3R#vmdBfnz1qL%UP zEFoq*p(W;bP)dQqWCBlMweon(--ED~8@7RQ7_U^5H7jx=xSx*$= zxxI#4iB2s>PH9q0RP84@L0ZpVmuKn(z8tlf5ccbUNhf0NBdG&+0UWaffs#frd93rH z>F|=~1pu6Kv5q+)x=x{*|!OeW` zBZ_!cE^ICn8;zaXkFvt@E}!%BlFMhcw`%WG=@-VcOuBQxPXeBIv5@Bgh>gp{!d^#sN!v1=E?9c7{Uj3r} z1Ndc~^)HB?7l&XzVvS1GoOC1vM=nnd_ja7|jDe3i)<58(f3rS`W_+I-9ZpD&!5*2X z-d>W*q!6YnY#vA6=s7FNCBKAyYyJxJ@Z9;U;h%?^_OCZD9MWmiVVLLmre+`#cV}xk z&f|io9s}a<_$t@M{aH*t5BN!aX$x-HUebJ%f>nq}8G%1B`B-vE>&<)FZg0lXb66f9 zp@;U1mzxpH`E`!Al}c}QqHD5uR=<;t%D6TvKU>f0;v8CPICP&g(?!cprM&&+qp|(u z_>=w$qwsdw3_34{d{?W=GqOXbrKCp(05Q6jHc)UzK;Ynf#0vR$$G`AZ?MMm#0O23_ zZf(#8RFhQItzh9nJBq1x+6Dvjz$XNgU&23#e{b*GKVJ$#HXa;(c~D{{Tp{g6+0KEHuEOZzYXi&AD$OSxj<~`&RxS(==FNvyWgX ziir$L50<+~P{d>?Ty*QS^lmG|{ssIb@K3;RgWe7JW#COd9Vf#c4DkJykzk4mxw;n6 zMkc+zoq>Cc>&c9lH<&l+ zY2fGf4jtjT8Ab-47IkW3@e7sWu~Sc<5nf!p@{jUTjqM2O?&{N%x%qZ^pG!5yOBAV6 z!QtBd#vU#_n0isNN=o|Fm9J7)ZOZ98MJ2VWc+_0Hu)(M*HVbS>*nxsZ-Q#KMKx~`? z!6Se?uf#qjyMzY2A83q%s$-RhautX!SLIx@6M&NKGZn~gOD^s+j)J}VxJIMPPL!Y;%EhX}h|WMkzO;(EWvf7x3{)aTYD z@!iI$doVFvN2dv8hC<7gESB&|6EW%Ld7xxukXF855yP0umE7Rz(}S~@wVx%nX{N8M z)2CZK4!`(_oH2u>lg9mGqSeNPWj5BAPWFpdTV1zpnn%gWF0#Z7iJj9+-ZLgjD z!veY69@5)3g$f48Wg++&d}dD)TIk;t{2!?JKg8j+D=k_UvAbEKEK!jeR(Kepf8COS zWZbVCC?J&|FRXZn_No1tE$$j?9{}EXj^J)}p7zbo3tCVID+k=t7BO|F&0})=2_B}U+bTQbPGlc27bA%%5 z#&MEK#qF$}DN6pmnUo54GRkG|JE>$VG&J%4>YH7iyoMO^e>e{umzKH&M{yqM~ zzY_c*<4Ls72z)v5m&6@6QikT|K)LY8hIK7oS)x`lrJdQcww5@jQo$LVuI2lrGZ4Jr z!v6sHBscAS@hznB2C48We+x8|SsMtvW2otR8cATq8g{&~Yl$w={I%I6Qo@n~3T?}C z{Q_zqwy(wAQ2zj+9UDf4)P**7Q5Sr8&z<85Ed z68S|fZa&W&jEs%8$$_2%sU#50-2lhT<(wtM`931GT2*m)g;l?2O>)wO2)j1~pW5GPvVpDS$c?RnK^(=l+dZq3>2zMbt<*$H62q{j9QKL(QWXnYJ5&Bj(D3B7{WNJ6lu!WjVds1SF_$x zyjpjD?Vb19<{!sj_$J@{6JO(x#t#zwY519{_}j$(Eb$~zN2*z9I+f0mqg)F(mNhMF zWp0^}Mk7-%+Cvbak-U<6F9ZI_fACE&g*RG#?|?sL?KfH0G^kSE%USVE`j)dgI<#+X zIg3`*ZlEs|!Yi0h*+a!FYcwt;i5P8KLV<=ANh$LJ19jRMugX4r7QoK{DZ?oSw&F!N z3NnmLyOb*7wN*s+0S@{{RN@d|OW(e!&{w!t2YZ zhNqBq;>4X%;%oyP08AaJG6R_sZ|OIZI7D+>28l;$#s+1Ag&u(P<=d~dE=o4XrmU@kQ1 z6h@-v;4-^P%;U+1Au^LD$8#9wzEt=*@#FTf{i1aFJ|by;Jhk|Dq20`6(sb_-{{W>+ zcN{p5IU&;Qqqc-vNX{G2n3IU|f<Id#;oebF`VNFx5}R@yq)5bdUd_6b!V^X*Nr10;!OVKe(xmFnRO-T{T(#tStF>ojlT9?9i* z)g{D6MKW9~2++q4@NhF0H^|GCP{gPJ0;7S=YLG)TGQlJX$Gko=8a0s^m3Y9(R{ZMm z55sdE@YAj5Na0ySOCm=#zSz{L+7*?Al4UXFDj5;JPzfvt^*Q@O{2J1{TdUpLPb3RG z%IR#gsbGMT4YN%g!O?J{XiD`h@(hw2;hUe>+A9rNZZ1~JX+v*ME6Qk|Hg7M@Q{dD!{{Rp8vr5+dKY3$sbEREtdPU}+bf0Qhx1SKcop*2m zl51GZf>?xenRnO0=6UsO?>K^ThqHvIWjQ!0Qi|rO1vT)_an>?cT=sWqAE)rg4#S7C z*G8OVt5tDxlwzj+qvTZEjjZDpt6dVh(Xy3~ihdaW)_)E)p9J`4N7Z~Wtp5PQH6`V? zm#y0Z(@AR&oeJ7rt2|dG3DKk9Y-5<)C<`?pwR1>sO%`ur4A^64na7|~Uc-!HniJm97_<+7H z)RM`SAVkvjFB9Ee>9AZQ1S@XH@yj0JxmMw}qZbKY_X^`>h0Y!hg-K48OU=`hQj`=S zDa|=6Y0DL6mutHt9zV(O_|6@vjI5MvVO1onD_feaSkqj$d#O$`acNn1zMqH!t9y66 z(Y0xXrnz85lH2M!cB&m@1`wte`$P`$JWNUp=y&d71FGEV7d{w=ThZfISiCu`Nv-&L z;kTEH!s6;{d)VX(2zYF+l_a~jB?*e+@z)?JZr?_^(zRPleKPXeDD=%%3x~Ez-ZHkg z=t|$|8_8n;x41uP)7U7+_&!i1SqJP&NkKUK^lDu`TehOoY5xF;UzuC&CiXv>rAYwu zKn%b8OHJ}ti%o8<(~Nbsmn&;c?w!|j*L0gLFT}nS)I1|^cqf+2OP5sez1_ibx{rpg z%gbd1jWbGQpG&z>WpY>vqLL{&P|YKFVX&SNZFOoM-hDO2t=wiuSp@ci;7@NMSi|8F z^9vAj15F+zD!aNL3~D!C61+N0uPaHVo16U%pDC5?=aJjQ+8e@5TjP}$O+wLGOmVyi z%E`HMHhfs|wxxeU+gj#kv0Mk>3{6i<8SPH zi@ySESFzejG}kNTkQOUz@QdZm2v-|zZzJ7xV{rjk-U)6jW`&enB;SrYR==|T#z=&S z@jb1@pozx+05k_{e>N3x7+%7L(smhFogtBxaPe2(-VVFC)lEnT(WDL5tMHSYjY-*ovxadtl9cq;`>=(bZJo|jUklARgs~N zUqv$VJ8dy{cL22`B)xB~hZD>K2fyNf(%H?v*^5P`Q=|jwwKHOU0Teknc6M zyJplWn#Br8_KIefQ9ZMnC6aq4jY-_mlO9_kbA;u}aSBnV2}ac-+Lnzb;?>emOFr*= z?wYy&!1!gy7%ng2+y-SvY0h-x3ek&A(!?mm)TLATWzTC$O3vwDRG;pb{1K5A{3-Dr znF(1n-926R2F7erI30Q2@|O9I(0Z09_8Z4b6f*5tORfOipl;6A3Kg@CFsG76dSDVO z@R$AxE#v8YF{|o67kg)x-^90Y%+p(zl_R^c@?kN!R1v6iJZgKc8z7cozqg+fJWHd& zsoLom8l9ECrFy7r>>BDguP!o*!^?obn&1Y>*sMNA!z&8@gW=iHd^3kiYVmcUE4}9G zd$HB(+LGD3-%Gs@@pI`%c({{G$?{=H=J|_U& z@O13m)GV#h*;(HEHKw<TB=mZzB+|C7>E7+Xz(4pYuYx4-kH>pGdq$94F1ewZbvdF?$t=)0%+fSq zkXaux2Ly-yB2)q8zp^im+eG-M;U{TD#4qAKHXq(T#95}hj6&csRNRh%NCzN3!H>`xICeTkin_i?aAP|W?nh!pn^!j_i*&-&m+J&q^m~{2;KZiB%D)Q-6yV{ z)$eviI<;Y&ViX$oa;ogpNhNru)~@%x?`>b3x&DJu{7Ja*1=qvol{nnc z$)&?|UunU^eW_3bkD4~!zyZHNJZ0do3x3f5012zC zjAp*l{ggjwj}G{yF8nbEnP+KcPuMOlTWVb>2mpkinBZ*v-ZD4t$T-J$gV~NF2ZhE; zrBzN9Gpu!7GUjSF#FG{6lb?g|wvNSf&w#l4~1;1Uf6_SSz6{HlM{k8~zR4)3qNQ=)N@l zrM@ERzAf<9gK)P}_#?wscUonZwLC#tBhNW~_fQ@HdCqz8{KlRB&|EGOSAd z)+W5;PL&wWO7!J-&i$R;xm25vEt7Y*@hZ0=A&yjq*talL0$ts}W zvo=TQ2mBK9@*5x8%RsxD<)QMtE#f$Xl|EmcFtm&-4g#)0KX?G4aBKRq{i}cAmwy7j zEqF^!@D_pL4Ku)+4~5||XwTtYI>y50G>vf+dE(V%lpzWTk)$%H`HA7H@%O^t@Je5b zzq2RB%MXcO0`VXGB;Fpdhfs#=OS-j+-&adH#9_R zN{R~wmNLOSMdR&C`rAO$ZevSpyIIY>#hh@ox3*GvnS4etkGb}+z^Yyw z&^{yF-fC0n{t@w3vm*(mvelnXzG#--NbV#MN#@10eDlZhmSz$X0ScfG*f@n@E6G%y zc*dKATx9CTDMm^gYU+U~S(^6nnQ;_1cVb(1nS?}T9kJmXgZCwaaqH2GmY|Fw!s<~MnqWKYwlS91%WGpsrau_@UMw< zy<*qlo|)ol^t77F-%8c3E$(5}EHyzjt;#Qy<&xkf#9$PTalMNuLWDoTV(>U>m}tpP zo+g9VX>!k1YgtC=^}X9~Wv++U;49)V*xqP5_#92{r90DBX=>b~%@r$IZtr~)Ja_hY z_#=Cw-dy})zWAjtjAM(#I;NSY17&S#b#VH%g{+rtdn_ztf3ud6Ahd`?(W)%T<&1~< zgW|5f@#?ywO)F02q$J8ERuP}N2KEDRDsh5FOKm%T@6aC>wVxk+9PxgyuRp^-7JN1E zCyFAq*0j$C>J~Sq%FYQksJzhR5T&G6n&P4X@tT4?ie~soj6KOsJ5>rK_F#`>T8--zOcd<`rBrhW=DCQA(v|t@|~m&>ls{}7vRf!uM}?X ztlnW@#Y660;PAyz6XmEZ(Xr);3)csYn&D5Lg?B_+Wd({5`DoYVWs_n_k`x48g>xc? zYzpM1hIWm%QHn{nmh1Ub^3wO}t~$7g$+x_ouJ^KD>q+Tm?DxK!FCzDcrTaCod1j4+ z`GI#j%8@A%mH9#|G5fd!YQ%u-2bEc6TMPTOYnyatVs=Q&87C!zt{GQ`%7tYcxCNaE z8RVAn;m+ANDNU{jV5)}!OnZF1oHCVvnb$vbGbk$-s=`IvB9>e!A-?M7GD9vJOksgx zy>_u26=Fv&Cl4t#DJxCuqqd&zy6p6JO)YMdxmbKsgcKW#i~eSw_SW87+S;qV_dOml zX=iTH+uEW6N|i)X0VYF}CPwDuG7xa*0kGI=&YJW(kr`huGJ)^{w$)MclB&c3yO{PX%CnN8Xj=Uvbs?P9}k2^|sYgF7)y8i&ct-iV|JDy%Lhu35K*rzDF z#!l_uMA}!;^x3U!yt==GI!%_D;?D$X?$N{jjpA<(>J2R8d@!3`PTJy9;Nma>ppYPK zss>a5Yx)|wo>jXp;IeP|2nCggm_A@b;AL=Bk_g-ZIW_$A_-=Hyx44BPB*P?N?hHZL z${I!7z>X-YSX-}{K{8PcdGbb=6@vpBJ!sioI9A(i?umo@U?84 zj;@7RJFRw&PS>@P-5;Qq+LoU*z%(TtiX$$^W=TUhiZ7eyk~m@wGOC!S3aaW9v>@)o z2;x|k$in$A)J+E03eFTr?ip7%Ic44iMHFGm*J~tpX4x4ND|u!uuG1pC&66VqL3JdN zs3juvCs8oksTfGLEhc!3s?m+7B1KTeOB}1bI1z;|u`D+27|OdmL>2%K<$ARh``@zF zy&n3lZmzdYt+c=TWloz(>2J%YW|jAP_1jGy_#$R1N`?80Gs(9OsA3Mqn6_QEl26=` z6z#_El4;Z^`O#FLm6K=#G5JNdfw_rQC5v&fv$(Wu4M7#uX|Sg3<|QF^qOd!*02P2G z7?j)#F8qOz`CQwZ=!E|Oc(4f*IrAKj50pS7ZV-ptkY8a^pfKXGQ|4*kbk>(iJEwM% z*VCt0X3=tsy1&i!*?)IkmwQ{Tx7rN~0p>_Bd#fnR$PlvyP0VntqX2>#QHLDVmeWMi z51V^7?VMzit`q{GvDyGrAY;5>GUSjeh&ug*j`2r_WePv#pez24(r`vF-Esm9oDO&u zde2#h&CUkXBbEda@~cMdcVv9ULo$*H!jxg0=U8iP5^C0Zc8%i16rDi^sSPv5tds?{M6LcCx4`j4gga{{X>u^c8Q0 z{{XY+i~j(#9sa?t>$)VG!dn)O6uhv8;w?H`jmlz4q_%mj)5%ir6r+O}WBSFR>Vb@I zuF@zmfB-vwT(aOJ5Wtr}NpMlmKPLyyKWCQBR5PgBygL*nfKSlG*b zs9I`%8hEt`E-j+Bk!6((5Kj}Bj`oI0mBS;EU!d?NEnzc!HCF7UIMce;-qFSv)g^U% zyI)P4J{OH}bH!yCs&TdB2~XbB;Bk_+tt;Bf+IQ6-#dpKKcgy&X;3Cl@s(91Fq~%BO z>)LU~7>=7y2ZPQBLVwYF;e78G{1nqt0N_pV9?5`Ea7?-ei6$~mI&+2T*CQ4FdtM0m zWuwR9&kbL{h#BRw@fMA96dqVoXM<9-c-GJ2r)K{Ef|nO1 zgURp;$(S5%P&_lD#&D+xJGT#*A3znD*VFjZ8jB6XH5ylrZ5bzY^yG?@Y3pRBnzPgI zzs2}o)Ucds3#ZM)c-S@CSEDQTYut9WmReh5_&)ytg0T32X}`Dk?JZ(hAx{~^3Kb!n zcAKZRbA!=X0D2b7o&c}YU)TfonD|z|v$uwH4-wjGxBemU-KFlGt39j}-D(#4R2LFY zZE+u#yT+d_y~J@weAIa5L-M*Qaq_?X6sJb;Py9R^_Jg&(_<8>T33rM$KZv$=kV^B) zu+22~T6|WPzDk{@SpkX_Ty7+;?2O~|`@mlh^bgsC;gmiK_<7+U3ETWn@n(-@ed7&! z_Rx!cF{g}69)oI^D=M39HD)mdjewfsIW7!m%^QEGd@Ysql!qVZ41aWbl zDb)96grO=_p%mbyR#SrIT+z`s+DGr-N9sBE{6+34$K{l0*UI56#*S?&p4CDWs^Yz+ z1x`_L=B+A}RFqZMDwc}o^^TwWF??0In)^taE1SudNp9?}P0Y6ztdTTe#&o&~qo(KMe1o39ZDn(M^6956+773gPf|Q3)f?QE}mqwAj#c;)VI zW3o^kAv-rXh=gDY5*jk9s;&zuD$E$~8;X$M*C+fDX3tO3e`4!xO=eFs#y=DMYpC5x zwN_XD&4)|SE#YDmGkITOJ4qy*xlk+kbBo8X=CaPojAzYt^BIpo3mh>4gYt`mld+YF z2m4I_0D>xbl{|0z3V3c?GaAd`?})zc#j`X0X#zItfz>l89^rH?CzyFrFC|r8!O)Z8hRhio-yL+=Q$lZQp6<}m{XkA zuF+Jgs&}@wjZbH1b*ft3Y5UzKxnps!XnHe%Z1gKBwOM2Y7#dqROmSqLu`yPKodSdN zOMuHJ6!Q85MfnCs6yb&l!Olq_ zw&KJLSLEDJ;tp5Dc&wWXhm}ubhpRbaY1F4ExXYH6Dp0zba!Zy?>&te&f5|v*5XWR# zTzz_uE_JEJQmYAbT{%jnS+?%ucQ~Y)dPmCV)V>%ldBFM;*PQc^dS|CX4oO^a2>Eg|&s<;}b??r5`(reqk^mh+KTbjF zdvbjbPjG2Y2-5QQHFXE!8pba?D9w_fC=m?=C2e*YSGRm>Vd#!2P{Fr!3S{%0B#uMWl0J# z^p3k2HgX-s2u9nUGt(m&=eQ&e<0l6-^GAwoWt7O<#a~GDxM};WP7^4n{#o9&8`kkeiyplGRwnowJ-gdG%0Ti|a3%^Ljkv^NG+DSFs-)e=t@b^z_ zUPl?4Fcn7`;osPM_Exc1xz_x3r~Fyh8D)E$>2)}4w0I_VW>I0H*v+-jG=5q|HQO@< z$XMU+e{R4`S-DBmrK4}ZcGpAshcl~6ILuu*N;8+%Dno0fX{C7C z=&cofwbJ{a%U+{#exgZYidhxbV)CXyz$9!AK#|+7X;qk?FiMbsm9_ke9xaKT1%h@55IDJ5&& z!sGDRi2JXSblQ_rX+BlS(@UhUYj@D`B~GH08kONF*;&2pwb^fJSzms-ob+=o%r=^f zY~61ntkL|T)<}XCCnd=&QCMy~t8HxL*QxwS)9s|R(Y!$nY9Q3~_+3m5hB7EDtn0XP zHnOtrz#dbE1OhSjKLFflNfee&Z*;9*&2D6vZQE&nfR?wD%63)Bjf`!uGjIq4ZENXT zPl-HVWoe~pko}@7G>FF%vTu?^eWoach{eQ)WeXa{z&o6RcBm@UgZ6lZRxyP&HBqnNlnH z@`&VYwpEx{c>6`YipRw!Lwj}M>yI`Fg_uev~O(T zKxZoo~qjlvR|X>8Qr(eWdqIU#_a!{{TbqL~GzO>NpI23Y2tng+`N% zqf$yyi)m>qw|KR5`yQu#@cTsY?}s%lX69A$t?e%Er{2N*m5K(Kx}y*j#1!S53a0^f zs04o?9}xUN{xkTO#`+_ObA{!M=QKblHiZKfyeSg7VAA|8-P|wXC;6m zY_Le`a#>rF5t+Aqp_Htb!Bgc z@p~J5Mp=NOnuH-dMOM?ZolaVCPR*;@Gk!_*xzcGiudZ4&(2`yVnPtHz_p9?TAx8m} zvnv92us8uo$GZG9v(+^1U&CG?(aTS$4O%TSTTh$LkpWeXHHk*&604L_*)01`7${@p zJ{Mu4c(zM90shaumE$p}$uZoaXk@@YFh^~q421-)N}BfH3EdqcYmX}7t*-2~J4=g0 zfM!7)`vb;FKfDSQ#@%0pWXl|Wk&Wh^I<&c0EaKIjouegZ?!Q&u{Wd=@%cliel-=V} zGTPR(p~&LXa$D@K-o3TI(LWk~27GAoZ;A9@6L=5dkB;@o-rPrY`d)#kPLWM!;o?#}p{39BnND86`+*aFRBW?zB zBN4SpJ9hs7MnCXRPumQ5%i%VO;q7BU(sf@J_;SMEPM+gYwSbGgIwdJ>cmu}j!^uTS zWR&@v)xKbrfa@crj?o;r>rmX;x^j&rF9r6i+-^Ea#V3 z(C#(l)Q_2OrzNW1B1n$15YXYlDYwks9@yJ)A-dP|(eO4&X7NvrZKPZRj>(odW)sND zSdYBB-12&Tup{^5}ay745`gHPfVvOtqO2SM3WK zWGYD~CDt++{G@^xJF#Cgc)P@Z*+qv1Js{X$h%Z z+d}y`nppB>3ZMm*3n^Azz&XPyOp5pN+|w$`vl>oVYW46^t%7vDm7JTSgq9joi)}q> zRda1UIbN+Rub!)njH*F6-ZocjOWiJGB4*4J!r1Ad%#vKd88s(pXJQrggt>T-@xWv-HRqdgcOfX^>_?P7? zoD~^nJmS7`x7SzUr+~H36PO+=iDtR9(xV}i8E!X3j;=b8Hl4t+Dy38?QWui_oRP0} z{YS@o;{B#ynJwCOStU1j8E27v!cI^!4cwI(Cj&VB3nk#}1x!X^omT$7F9}tu4Gs<4+4|ka^K~Yr~>JX+EPM4ua|!E-fUU7>EjDGa|^?Su%l?{>y29wvYT0 zUQH)Y@N{1bbngsmMiFgqZK`+yi|V6T&cM^ zb8{Th;W_ahG8l|TFEGN8-Z6=JYXsC_ju95V2wU!AopA21{so>>7&zYrnC_iT<7kKLw?5@^_)8t$!o@G@fEEX?2N)1K|P_17NR+KHu z;IGX|>Xe@|Yil)Yd54QXX|LLUz?#*?zleM`x>#9WCWhlom_}uZfRa4KvLIz3ous1? z^KE6pJ9 zcY7(f(XEfMrH;?=v}(?Io+}Stg{?-es%diGOPH{fshC||_upB3qs zE2HSmcN=7RWTsf03>*TxiCx*w>>RP+9{b0C@KLYYdtcU}@b`tZ%OCAMM(W#6)2uZ6 zd#mgF+xy7`cD8m_mgLWMad9lM#{>~8ywWnNh1>!BrTBGn$HmqvujP%v?<5m|+zfp{ zz$0k(ImhU4?1%9bd@231{t$dgk51FITdxOrw#!+vhf;r5Hv|Da)0U*E{(jgk+q`^Hl8O|@Hg!Hq{kxoyW^k4?~3~5au_F% zOq%Y~N_P3TY?5Y8=v$R4N*oQW$C}>%0D_4A(f&X9^ZQ14*Tz0D@eS^=J@oc%W2eb9 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