fix: add les 11
This commit is contained in:
109
v2-klasB/Curriculum-Overzicht-KlasB.md
Normal file
109
v2-klasB/Curriculum-Overzicht-KlasB.md
Normal file
@@ -0,0 +1,109 @@
|
||||
# Curriculum Klas B — 18 Lessen
|
||||
|
||||
**Versie:** 1.1 (concept)
|
||||
**Doelgroep:** Studenten met al kennis van terminal/git, JS/TS, React/Next.js en AI tools.
|
||||
**Focus:** Code kwaliteit · Veiligheid · Mooie ontwerpen
|
||||
**Eindopdracht:** ongewijzigd (Next.js 14 + Supabase + Vercel AI SDK + externe API)
|
||||
**Lesvorm:** Online, 2 uur per les
|
||||
|
||||
---
|
||||
|
||||
## Lesformat (elke les)
|
||||
|
||||
| Tijd | Onderdeel |
|
||||
|------|-----------|
|
||||
| 0:00 – 1:00 | Uitleg / live demo (60 min) |
|
||||
| 1:00 – 1:15 | Pauze (15 min) |
|
||||
| 1:15 – 2:00 | Praktijk / hands-on (45 min) |
|
||||
|
||||
Plus: **kleine huiswerkopdracht** elke week (~30–60 min) — reinforced wat in de les is behandeld en bereidt voor op volgende les.
|
||||
|
||||
---
|
||||
|
||||
## Filosofie
|
||||
|
||||
Klas A had veel tijd nodig voor setup, basics en klassikaal volgen. Klas B niet. Daarom:
|
||||
|
||||
- **Geen setup-tijd:** terminal, git, npm, Cursor staan al. Controle in Les 2 in 10 min.
|
||||
- **Theorie kort, demo-driven:** binnen de 60 min talk zo veel mogelijk live coden.
|
||||
- **Standaarden vanaf dag 1:** elke les bevat één "professional habit" (types, validatie, a11y, security).
|
||||
- **Huiswerk is verplicht klein:** geen weekend-projecten — wel iedere week een concrete oefening.
|
||||
- **Eindopdracht parallel** vanaf Les 4 (eigen project naast lessen, niet pas na les 18).
|
||||
|
||||
---
|
||||
|
||||
## Roadmap — 4 Blokken
|
||||
|
||||
### Blok 1 — Solid Foundation (Les 1–4)
|
||||
|
||||
| Les | Titel | Kern-leerdoel | Huiswerk |
|
||||
|-----|-------|---------------|----------|
|
||||
| 1 | Introductie AI & LLMs | (Reeds gegeven 2026-05-12) | — |
|
||||
| 2 | AI-Dev Workflow Mastery | Cursor + Skills.sh + .cursorrules + MCPs effectief inzetten | Maak een eigen .cursorrules voor je stack |
|
||||
| 3 | Next.js 14 Architectuur | App Router, Server vs Client Components, folder conventies | Bouw een mini-app skeleton met juiste structuur |
|
||||
| 4 | TypeScript voor Professionals | Generics, discriminated unions, Zod schemas, type-safe contracts | Refactor 1 functie naar volledig type-safe + Zod |
|
||||
|
||||
### Blok 2 — Design & Craft (Les 5–9)
|
||||
|
||||
| Les | Titel | Kern-leerdoel | Huiswerk |
|
||||
|-----|-------|---------------|----------|
|
||||
| 5 | Design Systems met Tailwind + Shadcn | Design tokens, theming, dark mode, componenten library | Setup eigen design tokens + 3 componenten |
|
||||
| 6 | Mooie UI in de Praktijk | Smaak ontwikkelen: typografie, spacing, kleur, hiërarchie | Herontwerp 1 bestaande pagina, screenshot voor/na |
|
||||
| 7 | Motion & Micro-interactions | Framer Motion, loading states, transitions, feedback patterns | Voeg 3 micro-interactions toe aan je app |
|
||||
| 8 | Accessibility & Responsive | ARIA, keyboard nav, contrast, mobile-first | a11y audit op eigen project + 3 fixes |
|
||||
| 9 | Clean Code & Refactor met AI | Naming, code smells, AI-assisted refactoring | Refactor 1 component van "werkt" naar "mooi" |
|
||||
|
||||
### Blok 3 — Data & Security (Les 10–13)
|
||||
|
||||
| Les | Titel | Kern-leerdoel | Huiswerk |
|
||||
|-----|-------|---------------|----------|
|
||||
| 10 | Supabase + Database Design | Schema modelleren, relaties, indexes, migraties | ERD + schema voor je eindopdracht |
|
||||
| 11 | Auth & RLS vanaf de Grond | Auth flow, sessions, JWT, RLS policies (vanaf dag 1!) | RLS policies schrijven + testen met 2 users |
|
||||
| 12 | Server Actions & Validatie | Zod, sanitization, error handling, never-trust-client | Alle forms in je app valideren met Zod |
|
||||
| 13 | Web Security in de Praktijk | OWASP Top 10, XSS, CSRF, secrets management, .env hygiene | Security audit eigen project + fix top-3 issues |
|
||||
|
||||
### Blok 4 — AI Features & Production (Les 14–18)
|
||||
|
||||
| Les | Titel | Kern-leerdoel | Huiswerk |
|
||||
|-----|-------|---------------|----------|
|
||||
| 14 | Vercel AI SDK Basics | Streaming, useChat, generateText, structured outputs | Bouw een streaming chat in eigen project |
|
||||
| 15 | Tool Calling & Externe APIs | Function calling, API integratie, error states | 1 AI tool koppelen aan een gratis externe API |
|
||||
| 16 | AI Agents & maxSteps | Multi-step autonome agents, planning, tool orchestration | Agent maken die 2+ tools chained gebruikt |
|
||||
| 17 | Testing & Deployment | Vitest + Playwright (AI-assisted), Vercel deploy, Lighthouse | Tests schrijven + deployen naar productie |
|
||||
| 18 | Code Review & Pitch | Peer review, refactor sessie, eindopdracht presentatie | Pitch-deck voorbereiden (5 min) |
|
||||
|
||||
---
|
||||
|
||||
## Mapping naar eindopdracht-leeruitkomsten
|
||||
|
||||
| Leeruitkomst | Lessen die dit dekken |
|
||||
|---|---|
|
||||
| 1. TypeScript & Next.js Development | 3, 4, 5, 9 |
|
||||
| 2. Database Design & Supabase | 10, 11, 12 |
|
||||
| 3. AI-Assisted Development met Cursor | 2, 9, 17 |
|
||||
| 4. Skills.sh voor Consistente Output | 2 (intro), terugkerend |
|
||||
| 5. Prompt Engineering & Iteratief Werken | 2, 14, 16 |
|
||||
| 6. AI Agents Bouwen met Vercel AI SDK | 14, 15, 16 |
|
||||
|
||||
Bovenop eindopdracht-eisen (kwaliteit/security/design): 6, 7, 8, 13, 17, 18.
|
||||
|
||||
---
|
||||
|
||||
## Verschillen met Klas A curriculum
|
||||
|
||||
- Geen losse "Cursor Basics" — Klas B start direct op niveau (Les 2 = workflow mastery).
|
||||
- Geen "TypeScript Fundamentals" als beginnersles — vervangen door pro-versie (Les 4).
|
||||
- Design krijgt **5 lessen** i.p.v. impliciet meeliften.
|
||||
- Security krijgt eigen volwaardige les (13) bovenop Auth/RLS (11, 12).
|
||||
- AI Agents krijgt 3 lessen i.p.v. 2 (14–16).
|
||||
- Testing + Deployment samengevoegd in 1 les (17) — past in 2-uur format.
|
||||
- Eindopdracht-werk parallel vanaf Les 4.
|
||||
|
||||
---
|
||||
|
||||
## Open vragen voor jou
|
||||
|
||||
1. **Eindopdracht parallel vanaf Les 4:** akkoord, of pas later?
|
||||
2. **Pair programming online:** breakout rooms in Zoom/Teams of laten studenten zelf afspreken?
|
||||
3. **Huiswerk inleveren:** GitHub PR, Discord/Slack channel, of niet centraal verzamelen?
|
||||
4. **Die ene gevorderde leerling** (recruitment-app): aparte uitdaging in huiswerk of normaal meeloopen?
|
||||
@@ -60,8 +60,18 @@ npm install gsap @gsap/react lenis
|
||||
git init
|
||||
git add .
|
||||
git commit -m "init: next 16 + gsap + lenis"
|
||||
|
||||
# GitHub remote (maak repo eerst via gh CLI of dashboard)
|
||||
gh repo create scroll-demo --public --source=. --remote=origin --push
|
||||
|
||||
# Vercel CLI + koppelen + eerste deploy
|
||||
npm i -g vercel
|
||||
vercel link # koppelt repo aan een Vercel project
|
||||
vercel # eerste deploy naar productie URL
|
||||
```
|
||||
|
||||
**Check:** open Vercel dashboard → project bestaat → productie-URL werkt. Open GitHub → repo staat er → Vercel preview comment in PR werkt.
|
||||
|
||||
### 4. Test je setup
|
||||
|
||||
- Open OpenCode Desktop → File → Open Folder → `~/scroll-demo`
|
||||
@@ -228,7 +238,7 @@ Dat was de theorie. Nu zien jullie het live."
|
||||
|
||||
---
|
||||
|
||||
### Blok 4 — THEORIE 2: AGENTS.md + opencode.json + plugin + stack (15 min)
|
||||
### Blok 4 — THEORIE 2: AGENTS.md + config + plugin + stack + Vercel (17 min)
|
||||
|
||||
**Slides 8, 9, 10, 11, 12. Achter elkaar, zonder switchen.**
|
||||
|
||||
@@ -290,10 +300,11 @@ Framer Motion is uitstekend — voor app UI. Modals, page transitions, micro-int
|
||||
|
||||
Daarom staat in onze AGENTS.md: 'Geen Framer Motion'. Het is geen anti-Framer, het is pro-GSAP voor dit type werk."
|
||||
|
||||
#### Slide 12 — Onze AGENTS.md — 3 min
|
||||
#### Slide 12 — Onze AGENTS.md — 2 min
|
||||
|
||||
**Vertel:**
|
||||
"Hier zie je onze concrete regels voor dit project. Let op de structuur:
|
||||
- Why this stack — context voor de agent
|
||||
- Stack — versies expliciet
|
||||
- Hard rules — niet onderhandelbaar
|
||||
- Patterns — hoe we organiseren
|
||||
@@ -307,9 +318,35 @@ Regels die opvallen:
|
||||
|
||||
Deze regels heb ik uit ervaring. In de volgende demo zet ik dit in, en zie je dat de AI ze volgt."
|
||||
|
||||
#### Slide 13 — Vercel + Preview Deployments — 3 min
|
||||
|
||||
**Vertel:**
|
||||
"Laatste theorie-stuk voor we gaan demoen. Hoe sluiten we onze worktree-workflow goed af? Met **Vercel preview deployments**.
|
||||
|
||||
Het idee: je hoeft niet handmatig te deployen. Elke `git push` triggert Vercel om automatisch een deploy te maken. En het mooie — voor élke branch krijg je een eigen unieke URL.
|
||||
|
||||
- Push naar `main` → productie URL (`jouw-app.vercel.app`)
|
||||
- Push naar `feature-hero` → preview URL (`jouw-app-git-feature-hero-jij.vercel.app`)
|
||||
- Push naar `feature-gallery` → andere preview URL
|
||||
|
||||
Stel je voor: je werkt aan een hero-sectie. Je pusht naar je feature-branch. Twee minuten later heb je een live URL die je naar je designer kunt sturen voor feedback. Geen 'het werkt op mijn machine'. Geen screenshots. Live.
|
||||
|
||||
**Voor scroll-storytelling is dit goud** — animaties moet je zien om over te oordelen. Preview URLs maken die feedback-loop razend snel."
|
||||
|
||||
**Setup (kort uitleggen — komt zo in demo):**
|
||||
- `npx vercel link` koppelt je repo aan een Vercel project
|
||||
- Vercel installeert eigen GitHub app
|
||||
- Vanaf nu: elke push = deploy
|
||||
|
||||
**Combinatie met onze workflow:**
|
||||
"En hier komt 't mooi samen: 1 worktree = 1 branch = 1 Vercel preview. Drie features parallel? Drie live preview URLs. Verschillende stakeholders kunnen verschillende features tegelijk reviewen."
|
||||
|
||||
**Demo aankondiging:**
|
||||
"In Live Demo 2 ga ik niet alleen onze SmoothScroll bouwen, maar ook pushen naar de feature-branch en zien dat Vercel automatisch een preview URL maakt."
|
||||
|
||||
---
|
||||
|
||||
### Blok 5 — LIVE DEMO 2: Setup + Worktree + SmoothScroll (15 min)
|
||||
### Blok 5 — LIVE DEMO 2: Setup + Worktree + SmoothScroll + Vercel preview (20 min)
|
||||
|
||||
**Slide 13.**
|
||||
|
||||
@@ -411,6 +448,45 @@ scroll storytelling. Kies GSAP voor timing-precisie + GPU-perf.
|
||||
|
||||
**Zeg:** "Zie je? Met goede AGENTS.md krijg je consistente output. Zonder zou de AI waarschijnlijk Framer Motion pakken of useEffect gebruiken. Schrijf je regels op, krijg je betrouwbare resultaten."
|
||||
|
||||
#### Stap 6 — Push naar feature-branch + Vercel preview (4 min)
|
||||
|
||||
**Pre-setup check:** repo is al gekoppeld aan Vercel (deed je vóór de les). Open Vercel dashboard naast OpenCode op je scherm.
|
||||
|
||||
**In de feature-hero Session:**
|
||||
- Type in chat: `Commit deze wijzigingen en push naar de feature-hero branch.`
|
||||
- Of typ zelf in ingebouwde terminal:
|
||||
```bash
|
||||
git add .
|
||||
git commit -m "feat: SmoothScroll wrapper"
|
||||
git push origin feature-hero
|
||||
```
|
||||
- Wacht 5-10 seconden
|
||||
|
||||
**Switch naar Vercel dashboard:**
|
||||
- Refresh — zie je nieuwe deploy verschijnen voor `feature-hero` branch
|
||||
- Status: "Building" → "Ready" (duurt ~30-60 sec)
|
||||
- Klik op de deploy → toon **preview URL** (iets als `jouw-app-git-feature-hero-jij.vercel.app`)
|
||||
|
||||
**Open de preview URL:**
|
||||
- Laat zien: ja, het werkt live
|
||||
- Scroll erdoorheen — smooth scroll werkt
|
||||
- "Deze URL is publiek, je kunt 'm nu doorsturen naar een designer of stakeholder."
|
||||
|
||||
**Vertel:**
|
||||
"Zie wat hier gebeurde:
|
||||
- Lokaal: ik bouwde een feature met OpenCode
|
||||
- Push: één commando
|
||||
- Vercel: automatische deploy, eigen URL voor deze branch
|
||||
- Designer/PM: kan reviewen zonder Git of localhost
|
||||
- Iedere nieuwe push naar deze branch overschrijft deze URL
|
||||
|
||||
En als ik nu een tweede worktree maak voor 'feature-gallery'? Krijgt die zijn eigen preview URL. Drie features parallel = drie live previews. Dat is professionele scroll-storytelling workflow."
|
||||
|
||||
**Optioneel — toon git workflow visueel:**
|
||||
- Open GitHub in browser
|
||||
- Toon de feature-hero branch op repo
|
||||
- Toon Vercel comment in PR (als er een PR is) met preview URL
|
||||
|
||||
---
|
||||
|
||||
### Blok 6 — Pauze (15 min)
|
||||
|
||||
@@ -10,15 +10,21 @@
|
||||
|
||||
## Doel
|
||||
|
||||
Bouw een **kleine scroll-animatie landing page** met OpenCode, gebruikmakend van AGENTS.md, opencode.json en worktrees. Deploy hem op Vercel.
|
||||
Bouw **verder in de repo van de les**. Maak van je eerste sectie een complete kleine landing page met 3-4 secties. Deploy + previews lopen al via Vercel.
|
||||
|
||||
Dit is geen design-opdracht — focus is op de **workflow** en de **technologie**. Een simpele maar werkende site is genoeg.
|
||||
|
||||
> **Doorbouwen, niet herstarten.** Je werkt verder in dezelfde fork als in de les.
|
||||
> AGENTS.md, opencode.json, Vercel — staat allemaal al. Je voegt secties toe.
|
||||
|
||||
---
|
||||
|
||||
## Voorbeeld-thema (kies zelf!)
|
||||
## Vertrek vanuit je les-werk
|
||||
|
||||
Suggesties:
|
||||
Je begint **niet opnieuw**. Open je laptop, ga naar je `scroll-demo` fork, en bouw verder.
|
||||
|
||||
### Thema kiezen (als nog niet gedaan)
|
||||
Heb je in de les een type sectie gekozen? Bouw daaromheen je thema. Of kies nu:
|
||||
- **Mini portfolio** (over jou — projects, contact)
|
||||
- **Restaurant landing** (menu, story, reserveer)
|
||||
- **Product launch** (features, prijs, signup)
|
||||
@@ -31,24 +37,26 @@ Eigen idee mag ook — even checken met Tim als 't iets totaal anders is.
|
||||
|
||||
## Eisen (verplicht)
|
||||
|
||||
### Code
|
||||
- [ ] Next.js 16 (App Router, TypeScript, Turbopack)
|
||||
- [ ] Eigen **`AGENTS.md`** (mag onze als basis)
|
||||
- [ ] Eigen **`opencode.json`** met permissions + (optioneel) plugin config
|
||||
- [ ] **Minimaal 3 secties** met scroll-animaties
|
||||
- [ ] **Minimaal 3 verschillende animatie-technieken** (bv. fade-in, parallax, SplitText, horizontaal, stagger)
|
||||
- [ ] **Lenis** smooth scroll werkt (geen "harde" scroll)
|
||||
- [ ] TailwindCSS voor styling
|
||||
### Code (bouwt voort op les)
|
||||
- [ ] **Doorgewerkt in dezelfde fork** als in de les (Next.js 16, TS, Tailwind)
|
||||
- [ ] `AGENTS.md` aanwezig — uitgebreid waar nodig (regels die je tijdens werk leerde)
|
||||
- [ ] `opencode.json` aanwezig (uit starter, mag aangepast)
|
||||
- [ ] **Eerste sectie afgemaakt** (uit lesopdracht) + **2-3 extra secties** = totaal **3-4 scroll-secties**
|
||||
- [ ] **Minimaal 3 verschillende animatie-technieken** (fade-in, parallax, SplitText, horizontaal, stagger…)
|
||||
- [ ] **Lenis** smooth scroll werkt
|
||||
- [ ] Werkt zonder console-errors of hydration warnings
|
||||
|
||||
### Workflow
|
||||
- [ ] **Minstens 2 worktrees** gebruikt (mag via plugin of handmatig)
|
||||
- [ ] **Totaal minstens 2 worktrees gebruikt** (de lesopdracht-worktree telt mee)
|
||||
- [ ] Elke feature-branch gepushed → Vercel preview URL bekeken
|
||||
- [ ] Branches gemerged naar `main`
|
||||
- [ ] Worktrees opgeruimd
|
||||
- [ ] Worktrees opgeruimd na merge
|
||||
- [ ] Code op GitHub gepushed
|
||||
|
||||
### Deployment
|
||||
- [ ] **Vercel deploy** werkend, URL in README
|
||||
### Deployment & previews
|
||||
- [ ] **Vercel gekoppeld** aan repo (`vercel link` of via dashboard)
|
||||
- [ ] **Production URL** werkt (deploy van `main`)
|
||||
- [ ] **Minstens 2 preview URLs** (van twee feature-branches) — Vercel maakt deze automatisch bij elke push
|
||||
- [ ] Geen broken pages / 500's
|
||||
|
||||
### Documentatie
|
||||
@@ -57,6 +65,7 @@ Eigen idee mag ook — even checken met Tim als 't iets totaal anders is.
|
||||
- Welke regels heb je later toegevoegd aan AGENTS.md (en waarom)?
|
||||
- Hoe heb je worktrees georganiseerd?
|
||||
- Wat zou je anders doen volgende keer?
|
||||
- **Screenshots van minstens 2 preview URLs** (Vercel dashboard view + browser view)
|
||||
- Screenshot van `git worktree list` tijdens het werk
|
||||
- Max 400 woorden — concreet, geen fluff
|
||||
|
||||
@@ -76,13 +85,15 @@ Eigen idee mag ook — even checken met Tim als 't iets totaal anders is.
|
||||
|
||||
## Tijd-indicatie
|
||||
|
||||
- Setup (Next.js + deps + AGENTS.md + opencode.json): 30 min
|
||||
- 3 scroll-secties bouwen via opencode (3× ~30 min): ~90 min
|
||||
- Polish + responsiveness: 30 min
|
||||
- Deploy op Vercel: 15 min
|
||||
Setup is al klaar (gedaan in de les). Je begint bij sectie 2.
|
||||
|
||||
- Sectie 1 afmaken (als niet klaar in les): 15-30 min
|
||||
- 2 extra secties bouwen via opencode (2× ~30 min): ~60 min
|
||||
- Polish + responsiveness: 20 min
|
||||
- Vercel previews checken + screenshots: 10 min
|
||||
- `WORKFLOW.md`: 15 min
|
||||
|
||||
**Totaal: ~3 uur.** Loop je vast? Vraag in Brightspace of plan een korte 1-op-1 met Tim.
|
||||
**Totaal: ~2 uur.** Loop je vast? Vraag in Brightspace of plan een korte 1-op-1 met Tim.
|
||||
|
||||
---
|
||||
|
||||
@@ -114,11 +125,12 @@ Eigen idee mag ook — even checken met Tim als 't iets totaal anders is.
|
||||
## Inleveren
|
||||
|
||||
1. **GitHub repo** — push alle code naar `main`
|
||||
2. **Vercel deploy URL** in README van je repo
|
||||
3. **`WORKFLOW.md`** in root
|
||||
2. **Vercel production URL** in README van je repo
|
||||
3. **`WORKFLOW.md`** in root met preview URL screenshots
|
||||
4. **Brightspace inlevering**:
|
||||
- GitHub URL
|
||||
- Vercel URL
|
||||
- Production URL
|
||||
- Minstens **2 preview URLs** (van feature-branches)
|
||||
- Korte note (1-2 zinnen): wat is je trots-punt?
|
||||
|
||||
---
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document (opensource)
|
||||
1 0 obj
|
||||
<<
|
||||
/F1 2 0 R /F2 3 0 R /F3 5 0 R /F4 6 0 R
|
||||
/F1 2 0 R /F2 3 0 R /F3 4 0 R /F4 6 0 R
|
||||
>>
|
||||
endobj
|
||||
2 0 obj
|
||||
@@ -17,6 +17,11 @@ endobj
|
||||
endobj
|
||||
4 0 obj
|
||||
<<
|
||||
/BaseFont /Courier /Encoding /WinAnsiEncoding /Name /F3 /Subtype /Type1 /Type /Font
|
||||
>>
|
||||
endobj
|
||||
5 0 obj
|
||||
<<
|
||||
/Contents 13 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
@@ -25,14 +30,9 @@ endobj
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
5 0 obj
|
||||
<<
|
||||
/BaseFont /Helvetica-Oblique /Encoding /WinAnsiEncoding /Name /F3 /Subtype /Type1 /Type /Font
|
||||
>>
|
||||
endobj
|
||||
6 0 obj
|
||||
<<
|
||||
/BaseFont /Courier /Encoding /WinAnsiEncoding /Name /F4 /Subtype /Type1 /Type /Font
|
||||
/BaseFont /Symbol /Name /F4 /Subtype /Type1 /Type /Font
|
||||
>>
|
||||
endobj
|
||||
7 0 obj
|
||||
@@ -72,42 +72,42 @@ endobj
|
||||
endobj
|
||||
11 0 obj
|
||||
<<
|
||||
/Author (NOVI Hogeschool Utrecht) /CreationDate (D:20260518122502+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260518122502+00'00') /Producer (ReportLab PDF Library - \(opensource\))
|
||||
/Author (NOVI Hogeschool Utrecht) /CreationDate (D:20260518125917+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260518125917+00'00') /Producer (ReportLab PDF Library - \(opensource\))
|
||||
/Subject (\(unspecified\)) /Title (Les 2 Huiswerk) /Trapped /False
|
||||
>>
|
||||
endobj
|
||||
12 0 obj
|
||||
<<
|
||||
/Count 4 /Kids [ 4 0 R 7 0 R 8 0 R 9 0 R ] /Type /Pages
|
||||
/Count 4 /Kids [ 5 0 R 7 0 R 8 0 R 9 0 R ] /Type /Pages
|
||||
>>
|
||||
endobj
|
||||
13 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1631
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1980
|
||||
>>
|
||||
stream
|
||||
GauHL939k-']/^ggg+VAW0[@EB@iG>3FtfU;n?Dt3_CT*>HTQql+`i@^Crp>9Gs"W+BeR/rU(UQf_D36B:K%9T>K=r$C&AK%b)dW9[D[BCAkFDo3(!t5TFZ'+Ti?<jp-ctQ%A*35@bo@D?kh"0"@Dac9i'Mmf`_$TF`f,@o4A"D[5&$_Pu^>s5&0Zpl(n[Q[$4dDVf=)j$p_DpoS_<B(JJG4@*1L4f[NTRsKVjdhE9U?X0/<8$rn>]MpA3n%')#;StA%!PCKUHrlW>e7&VPi`7<S:IV-f_t4/1DiCb0^?^GCQ3ZaNkFr(`+"LLNM.5#NIYegqMh$h,^7n=`+J6'!q@4f;kW.jbSHcQN]U)f>i&+QD+i-T<R-g@j,O>6^@DgfSf]j9;3lL_SC@2RY5&gWB6B=TMfUV5\ofKE9HCS*>Y^XV6d-O&#CtYaVJtMH+p<2f3$sH:3h+T6[bX(Y*6cH$WL8-X**-^NfU_E5PG8:aZgE%HHZ`lUC$gW!FpO:M2ms"+!boVQ:BC5uJ,9E\O%`DVh4;q\3F=Cg.9d[M95oIC.((;bFB$2TS0uI_`0F%YYdC+[H'Z"qMG%&%T!-O-kFbt'\_M0=He0ojGmo=K82ZeY;L^_G9:e>[EAMT7P'Tb`99P+[RUP3qL9+X<A<<fd?I%\f0cXm'+?^=t^mL4^$fsTtD05]Nn)\JMh8?-s=(DMf\6cE08"f^hJ_,[l=HVNb0<Zq[2Z,+0,F<18KMR5"]#)>F$`'p7'BmfD0Q$jrp:jJ`)m\%G`B2LZ%d4CEJGaumi!]HEN.94/W^o^3_R.6LG;s(Yd*2cAuZV20M<lHDo5?((NMX/m+Ld$a[=dEG`'I):akd,N*9)Z$k$/[D^i@h\R74aUFn`/X"e&hF)&!G6+ao8lF6_Ck02G1uo[V[;XDucqCGMrJ!E-[>1GBFXB+U-I.gB%WeI+o.pnurAS3Q%p9_sa^5%iVO/.OC5_m6!r3S2H-6f\7Ne0mHtL"kL^/-=\BGQ:XW$L5T;I*u%3&OXO:7jV(aPT1(&-BsbauK\Io-GGiKRVr,j"P>;&YL"BeH7W(h`!Qr#Q`<t'kPQ[->7/_k:83u@>f?#)P)''=H6FNRI:`e9oN@Qm-&sYsmAtkNJlqlfM,3gP^\VdH9*'p-WDQV6H&-k])H(s`\rD(?5e9L_JCFhT99%61bbo6eG9n/=?/eYO2'GY":TLnb3I&5>e;)_E_Z%m<=mesCM1r\XU&BX98UQ;-Njb)RiL<+Tn'#/WXjO!SHI5TkfVlj_F4K'N#-I"g)agr#871S&f3WI/o6EUYY=,BoNr-s-fYXH?fWgYoi$[!\'>tuMCR>taiUFu.8dscTASZF40^D*N)WZoT-<una%!(VcY!i8r:mg79rV'p58f[Z/[W6)e:ohO'OWIJVc/FosLGe&P%>XZ.i\eB1t]YQ7"=K6`rmpRJdH/>*n-h@80ZFO]HVB`_W*!+c=E1MBE$g[nJ@3%#?X@e.crPFMV]04L>7ftl3s,#6n-qfBe*"+USB"^@mQ_I:i(kP"_WlS.N1.o\@(3je9@=G^^:Z"?'*S5f0aI+a,A-#<1rt@)("*@4qXefps;jd\:#-Y6E$=/6a3f4QcS44l8\(PRR@/UJlcQC[~>endstream
|
||||
GauHLfll+.&:N_CbY(a&<(7.4moq[tDOib,'^*Fg0Ek%T8:oeETChG2+MgdAAN+>i,FT<#1O!g$c7fr+r1WdrQiOdf_M^2WPehGOe0[(I0Au6IphgZ*1=(,o=MAJQ$qOd*Iul=B'HEIL!=L=NVFQ$[#2?&opB)KSmdiR+5qZREgn6npfCXG0Lef&CGIR9M`+9?_gVe*f?us)CcWB'/`7<7DR*@9&_\H.'lE"/I0ra1n0MUKdj5oqo]U'"'KM*b(pfcf(>aB?HQj5:j:L=l+<0UhrDo>ht1.t#=5(i)?9V3hB"8fMA+B[M?gV4:'0R-qn`P'>oNS.*T&Z$K2^s6T:Bkte$3`+G&`![Omcf/?L%2\abL@$uqQ;*2*-6UNSeMi-I]=u8\HP]#D]:m^uVW1L\[t!NQbG,)[egLur<LpJa8SAOHNXbBWHXc^"bhcK9Ql&;OT6e2bW2I^&@qjjU'C,J=6L5,[@b%:E0cN=f41!;0jnV:1bTj!'3e!-\"aX23XF$\GG;gQ9mYTV$1OEd7)7qZd&;O/Up:tL]*#`4eZmDSuRS%gEL-AjB/4_=hX(B(SXDmH-bQ8;B1efV?0XrHI9B1!me.P&_M6IJY%7n:5$373BP1;^s76VAF6n-mtLdc<PMbHI[Gn*0:&BZ8V7>YCAF;C\\aS8(a=>]6e;ken51L/:l^LOTf_0<eu^M`Xq_4!4megXn:ha@js(<"l'NqERtVN@c&CEp5lSm:m;T;/'7;$G#mQ',Woe$8:q"`!DL"Nu9-LeBjd8=dT7:lb4Q!G.<'++V5P-UE#&pahG'nM$,9*Gck/Q845`J@1=P,+[9.L7>c7XJV$'dk[8r.P)eFYH,<tq9?655bE`$4H5I8\O_b]qBVU"U@N_T$X^(ii"*=5Gpm-MoBl,6n$@qqD^:`fq>S#=6W^c-p.a\Ee85n;^Au6U?*HIP>eS%1pU)F'OFZ^&=q;d20=q\IIaArp37<bKiHEnWk74@l,t5I*cb2ih)L*6i<RqeRg-4&>,LMr_46[:QUt8FR>-4E4?N6"ddq`/t-NlVP^8`!Bi!PUAE'PR]*f^AIL"2cTFVbZfJoth;+A\GS"[V+h@eg+e4j1f*'))R&%&#O"_`HeG).[Z+qROfl-KhjBJQ!2Gr&.Tc_@j^Fb1(O3)F!k&[qkb]Mfp,a+#eRZ\c"*`*Ai8G2Ka5D+ks[BD"X?Ar&_j1G_riIHE>It9P#YPXT?0pon)>TXQ'^t$/_=ACA`fQY_@c6B&K.L@;Li3G&.dJbgX8]*JAp"2bcY(\mZbI.,.$E*$PSTA%HgOB><H7b\rVj,+Ut;+Us`p3BSr`g+gh.A?.cW!VQF)TI,F,L4&qi`,fJS>iK;<j$Jqh<ht';md8'Z(DMr;-o-Ks-HKI90`nI6[?+i3]YpqW83#%WpG>eYf2=.lc0k^+.CMgX=,eccqe=c7&S!Vtl`Q,fG1P=`V"Vb^&A@No<;E1p?k2HO.^rBP5":t!V7PPbM+^j_.SQG!17Q(22a\HHdYk5NE=q=gN_a:3OdgOZF.E<"]'Y9drAr:kB#,ngZq9rQFak(+WMg:,;a4P31LLq@ePbbMMI`\k1b;sh)<^78cJ'c]1[-$VUFX]HG02q55J'#Q%J@BI6/j<M]E,CRp2boSilHm'N?FF13L=`mI>0[.&e>K?ACXXaQHM?@W+(A'+t\(B*lss<(i+Uarmo[GnQuS:OXfNr,eDh!a8le$eHFDlk!(2k_hH1`fKBa3n&O?n&&%Z/8Ec\7+V\otBt2q!HS0PG+l!AFHZY%0,$LdBFqAj^2#hmWXfk7SIP'$Z)N<5!o)`l%eo+5ln3n]!$6("[%[UX*`BkUD6G71U5'cid-K%Jjc_<0070,No+Q<,gPe1(ZD-fu1-UETc&g];m:e#Y>?uI]pUVZA\D]*I<I#3Gg-?'%J$]n9d-^m(S^k2qpGZD*71eR$ViqF'^h,V3Cl^7b1^iCDHMTsEK`kRuQj\>~>endstream
|
||||
endobj
|
||||
14 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1724
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 2005
|
||||
>>
|
||||
stream
|
||||
Gb"/'>BA7S&:XAWfXFeHe6);?]UUEI-prPQ)sBq$<*QW`.$B^XQLa@fg5b!r\M.I;\9*HPPGGLkg2AX:G"'3_(MQ's3P`fm]Qceo:`)uZGd[k;;`Gh&h^k6$2"Z1"h8jSG$?kdeJ"SSjJfiW29Oe-d'A?=IJJSn[MW+miXp[T0K'"b8D@s+j^^24rm"kF&'WeE\m=8*ig9^`#L``d,l5/"9`HJK8%b5CQ-k'aM-)b.Mle)d<6Qa<h3;E:5lT7(')6]3..03e7k"0Gu6>6]qmgbDYWi->%iAJC46BuUEbqg2D_>&;hf8=t%N=ft@hNr`7/"gje.&n5hB<Bg9=]S&tF@FJfZtUm9TM%^@-aI%0$.0PN%;r^iR)nq%07^T%ICoI2NsU`![c;V[ar$,(ZTO_1!F6`9]/b_uO5UT^&Q4PPLCgU-qp<N08NWhOTGpEu_="e:#X0PY&"R$ge*iH%cCG^Ps65eR0(*/L+A])oC1=2l[B>#LVN.2oGQU$2L<#1pLh"ni:_sD[FX'+c>Xhcl@[#Be&&23,#EAZ6VX*e9CAT9r\@j9i\>ZoR,N4n[q3EGm_po:14po#,:@l!M^4t!N:]&B&ejh\:[;0s(cAJo@j]]>%;_,4HpO`bY_g=GIC5H9h$2SI\1MGZMUm(](5P"9_^8bp(:(E<,'$f"DE'8gCD9:*;?'GPC0D)(j=YcI/gStS>--h$c]?SnQ[W:etY#qKCIYQ-djPT?PE:il!j7qE$Voo>$dK;>KS7SAS%h;94E643%g=Rib,4&'fgF]qVDo(KoV_Vqh2/s@,9YkqA&IgXc't_0Y(F,rCb6/Ic_b%s-jE#43jEb,TTds:50E<.rK,L?:CV'W2-3JWDA2.^j+TJhjXZ#1@'!6gHAG,#4dUpjT0HB:oY?qN_br)*EKb.LdQl&JDLB`fW=n!;9GQ6`3b#3[ja:XY11EkEF&Y,2^0OnXd&`cP#5EmuQIoPT+Q>o']Nk[AMg]7_igM9T[ST7l7#=gXQb2gb@J@[Kj4(-J;H1c'Y]oJ40/&Y.*doY_qE35?o(Z($9B"LkK#jRa1^#_e*$$):Dr/b]rF9QCdq/*,dg6I=1VBo\V:[?=;'^7,?T4/sM(Kc.oaoMlB3a=srU%E.NeBQ<s9$`F-5hN-7HlC$.2Jf[:]5Gt6f["Co*A`/D(WFTLl`3o7YU+(jMoi=i9X6$6r#9FIQ^Z#Aa6kbDF07=c?mT<o/"4,r&p%*pVbR++SWc@)G\AafAJP/3=heh\&IH*%bfSiW]iQhdS?G<6b42&:gA((7+o+DqhAqX;?h70ogBTZ7)en.<8KS=enbcnXrLQ.OQ0X)28/l'?&U[m5@WO5T05%38.`9s0dH_=`:RN&gEpusWKS;!OL4&^sI)l%uO7LW9<,&L2s%pUpeDLd,%4YN1`)*q\5J(6F;;3]Ap<LC1:M9.RS:8'%FD$<lVKo-N2)^lq4iH5^;kbWh&k=I`lp4U3EEfhhJ\oBb6`JVK1f`:HUUr;#dslhQ>Gtm1VKp0M"Za>N.h7.KY/)M+]Z-!H(mE<RDdp9%lb8XX0db4i_1.D5@o)kIMKc#r7K_s6V)'GQ,Iu[qhoBCRp@U'pn3\dBJCkTV>sYL;IFh)%c+Vj?1%'YgHPI,3];5$$]dBd"M<^PO[I,Fn9^c0s7:k&[c4j>oh/)6/1o^G<.uY#*4*D,E,$$bl:6\/gg.#\-ToEP\Z'\:q<#f<E#COFtk5~>endstream
|
||||
Gb"/(968fX&AI`dqQu.o;"U(+Wi`C6j2@p>SgNu]b9/ZOCe6u`"!mm=gS5Q%0F9b$:_dIB*bfr3^Zk"^\n-Fa0<9J]14X")Gk/]QbD+sY/D"iLGR<QNcKC3rqf^nD?oXkE$u@U%NrB'IFE6ku_]RM5$UQX'_S?=6[#?[YKOE9A+Ktp/#a7b!$]Mk[K?scHZogSF\)oc,DqhY+CO!QXfUQ=7(M`UIL0n^dC0&(pN:*obUKXXWCRCD(GVI@7qr[:D=)];q/>B*T.=>)-UT&j-D$TS&<W?c1n3UOlcZ+N8Qt;Yc1Dnuan<%$m9top%aOi2V0E2XmYi0':M^?O#9'eX*n=5'C-KdO#g'I9:>1(+o%EC1*g5EXpG8pZ2FBm_r+m[dP;13<%dZ,=bVWihN@s1u3jVh1XgZp(jF&1;"a68Er>*]rS%["<I^k5[r@o`91$8_hs.G0#D3u2,0<Ys"]OP-cLFj-*d.K.^F=\iq[=L1-T9KT(HkuY:c:L7_l.@o'L_V.0([`gK941&f//<]=P?<D*5[C.`C<Pc?D\L-2ejUVcH>J=klSi%Y*]dNiM(RS9qn?7W[7bt>:0,6$kO:&o7;Ck:M%ld)F`Em5ecLJGTQBrPmZt6(7G'dVdq'#!3<cduEe=$gL^=KkP[1ZY4JaUSdJpTP]CIt#]=gXHp`O7'nE`R2e_!4uJd!\Yk,cHc_!hMc<GF2,2X,2qIjf0gU]>2jh\k+,:E5'.Ab.&m6CO.\IU-HZH--tT\:uC/_K`F(N.a;-%K(AQqq4$?.Oi?&\Y^D:O4K5u.c;fI+M*-M=@hNeolUtN?#ng2l8%:i]r$KFrJ2/aRLbcu`!)X_#)F2PN#6H/_Qq)7oB_+[,#G`sq"GL;_U$P(b&q)@J)(X3C#X&-3&2\/C#f/Mn8lnhsUhH7N,f,GE>I=W(K`R_\0oI?QN&NeMa&([E8FG2[#O!j5<XUIejSTHZ.)s];WD;?),*F-Eqs/<I"7(W\"1D@u5[[sjS7gPP#8Vu42!&G/3Q2u8a2u'0,3"]*]Z"a>)g*MZ`]h^q0Op9B.JqPGX'*TqOPoNB<(MHcEXcPT4(aYK*8.3uf,O*%`c:mr_Y>G>I+r:k9F*MX]q^NNC7gna['Ei72.<D!lb;_P8Ei5LGp-)PUQe(\+=8f@8dA"/O])gW3R<oV"7Ub,Od>fgRS.B>oUGUrOndVM,C\7_@j\0WIZ*<uDX.Q5Oh;>uf#&tUA3?cCQ0To68YAoU73#(OQT<rk[ORTpA?C;:#8F$B1>L2aIRXB'0UeN0[mY;"WO]tH=L(&X&fe6'0r6)$`l$WZa7fE?V!9K"$"\c=bTnf#0&biG9,LT^C3%fQA7KDAo/nOS.6StEWYAp`2:J[)E#O5J(uJuiccDaa]#/Z;-H(j6_45/l<%*_ijeQ$[^/XF4jQ^2<DE[pp;l"15#(8PIF6$2>UiX0gq&F%Hpo59Nn-?V,,$=B;K]tI&lP9_:bS-rBl<p4AXdI?eh:Vu4M).G3E\e=\WjsS)\,.O@<Yq8lb_kXe0Y+qonnTP,SN+<H,+_:NoqmDOAT$$udS*")(G#j!#P5sh]Ml#Q?E]19)BIJ5c:2*!Lg&db%FJJ'l=@32'"[5%.N$2'##K@V*PbH2,F)iq=:4%W<2:n+EM%boRXZAT[b1c;-m)7_c:Q(#8a[13P)/6],O's/[iXGRp:&mtn7fRbqr,:+QZ''OFaJBKjnhp]?1Or/*]t'P>1??p<kA5":C@XYa]/>(,+GR3ThU(J&qTR;^KAPVLCC6\p/;ss^4"-<8l1*D(\AK0=hfAA5iE[RZL'<NdFg_TIn#@S5k?W32HI$U#)#ZP:1k4$hYfTg@fMlG\.`q#+Nn8Z"iQ#$D^!Q)ln.+XNVcC3!A\g5dB;TM<7&b:`$5(r)H,&?QBoBtU9=qURi&e3e]S$U$.6&LSW":I4.0d!<U9NmI^.]ACS'Q\;3djDPW@B3p4Wj#P:RJ)DK9V?EfH4HdF"ks8NNJ;*oLSUq&b7^j<X~>endstream
|
||||
endobj
|
||||
15 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1334
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1415
|
||||
>>
|
||||
stream
|
||||
GauHK9j?@A&AJ$CbgB#B79Y,AEbHOcJ>@==J4_H.#\blo.r1DUaj;+(m@BMQ@r,Z,Zk"!-fJE!?]^ohV/:?*pmplWA'#Dt`%5roR%(8f6Lk]jeomZN=okE?15TFAr+U&K>jpP/>/&:b5+4AL?Ad*hk0"B+PN.hZgl32_ZJDr83hm7k:^(i=<#dZ[dq&B/?nL6oU0(F<R>hAHBA&c3DpmlWmB)@Qq-t.<c/Q!OT=LK#j&C$ktEI%Er^;u9!A0PRpIoM:QP6sdD#&sK_E3-Io'i3dETCZ<R1L=&L+IYXhhUl#JGF]:tA\iHc+kK!<9.fd!=+@Z_=)fRE(n;>2Doh/EaJYT(!VHcj//NB4S+7:I/F\YTUGHG_iIs0]l^u7mehHC4Z4aJ$4<M7`Aq&9],u\,@<ueH5[p*oJ=]eC$ct-'*oGQ;iFdUYGdchOSFa@R'_2DV\2XtUQfh]UG&R1bQ>XH&@PsPFLA@qnJh[SR]Ok$A>qN19Q.)a3s*//F-JB&mtaC6^+,?aR]OXWM@d5qOLm@-tWY]V&j^ONfrc./>bNSl>/kE6d97fBqZ!=ZX#%oiUN.2C@oTTXpaXuN44d5u*"6#^61rYHUk[LVBWr9!b]icH4X#u<d'E&!JIr/L6e3<u*'RHH9a'pMf55FE>Q]+6%)E)YnnMNFXr?!YEPee,Nb(sd[n@MZB^,j&%-.li5*08,('FQa0[pd</g0S>LgVI";Gaq'Tb.Q.VqMo/tAa2,XDJK,(e2Q8%/egC2jnW!<nL<r8-+O75U>a'O]'"oN'qM)nM^2>i8o<cMDJ=/5C`-&+RSi$9!#_1>W'd%Ln#HCcBZq<FOre@cLFec3I%Pi<[19Y\'DhO,EJeHOX8'%\8hpsnmmW6_Os7U^`VWg>[WCX88q#4:]>40/3>o5_Kj^oI)`PoB"*X`jeX=Z1Q1j>Glld),&kjJZbkUUUX[MP:uNi>$Rkk\/_OpN4;A^*qnS5`rM.P>&;"J#P=<TJ;%E,Mi%\AE)c@G4bHek`;bLN0@X-uX?1Qe6Br\7ir_is&,$BqC@2:G8F]1/%0+p.Tb_JQr*=0HCO5U=_*b"85P9eEsu$`^q<BXM'hj4ncs%`3?b,p=S\m*lFQB]V(CuP.ApQ%)r\tgcGRaNGH5J7&R[Z,-5l2oU2&Vr6(&e>HSU1mt'o6Ci:,3fZ8HT]`.;7Gkp0+A)![/"s7_Q2nf,>r_.[WArJe'ZkP_Z3R)1aL2@@Nk<7h@rN[qd:N^RSc/IgHOlV0ZEEqBW@puu7^m5$,&(*pKEL_N37gJ<_Oc:5>PfWff_`ZN#06!uO3&>dPM)$S_QZ9mag15im59UqYmJ~>endstream
|
||||
GauHK>Bf'r%"@A@k`O[R'75*GmmDH-gV#L^Z3edin1rVtL,C#r`[3]oaD\80JZqD4CjUcE*'hq"IF:Zl$P$H[o:@K5h@/B0]aHHJi<3DXq(TI3GJi9E4iTi1q#N0F3*sg[`ErKC1[X98KIi(-m"01#-6aOZiA)Qc!M&eVaGmtX9O@Et?r?,U_?VFC+;Edp^;iRc$/0#X(rk>,SU[AW04nYU*P'ieaV[UZ>u5=;T$JB8L]SDGT`<'om3h\-VeD9^ef"Bg)GF`hN&ZmVr6sTZ>%L?#iE'8nVMbW?jU2pN@JI.Jg9C$m0a0)%n*OJT"V)V)AadunCX$2-WQHN3)g8q,V^k+Xmi7=3a@+t]P`*GDDg:5+=Q?!d-e92BGa#N6)kC%G7X\R,9';#`kf%c8RguNf$=^a.JCFGP_DPo`1hFMT7Bt8Wi4@3J:A\h)>GJ=L,<(LOo[7e`i4?dR"P^?:g3L'KGkX$nkeC%pbe[??JXimKqA<9U;Oj[jNP*%_,c>[-3+Ifj-Ydt)$d99Tin9OP$(tt(NIhnrM%'=]p'N@>-(:C_98uT(2*n#:GfbI;0Ccc8@&^PbWYgtHONJ1ZeVQFc9*1h$lhA0`YeiG`LCZ?,=!5tgbS*ZWmr1#17f?'Ob7)367V<SiY_7U#ihuX.CA\G2"E')jPsZapq:CpQ3phaZ:J;<`+#,:I'8_!=fhsK]!cqqHD&meT*kX/QW4F^XC$I!3;nR^h19sq?=<*oW4q:Uq-ZX1"VR(<?.pFB.)r-;MB8@QP#@p<siRc11.^951k0M["q2b3gCJ66>$aA!#$>J;L!g=tG45l7sKu"'64#!ebTN+%?pLiiP5Lpb-iLlB].'e`MohO/H0,QQRG(a[Xn7Be,ofNb:s)4J>eN=kN4B2\.1457=7r6mO2R1l-mNpTcT'.+EWrf4'a:,do;Ar1('N6HMZ'Z_G82Ge4B7quP=XB$WS0glqY0kO<I*qH%^LS[pp&'f/E^5#RQHAu,a\^g^O^W7CAU:TZfkJFa;8X"G!P?'*C6p$&WEHe,p<'e*\r_@Uc,P$(X=mS1lA7[SMeJM*?IoN+lJ5O-1s8NAWXYflKeGUim^2<J9q-2?jCBFK2:Fg&(32hWZ)nuqR&4&I3S,-jK7W4$6KS++6_G*!bAeFfV3,'2=W$JiNo66r_J348K%Lre#S4cU;'U4[1M(2Urp.j#6W$]*5\lEGFNXM(!Yp#5FGhK^%&gWf(#E(aAsh)$2B)m1DJ-OCL=_i6&)tQfbh(&(hqh^FIV"FZDen*?54125A\C:bTBS6%0inYKd6Zo:O68BEH\.89>^ttB!:JDcFn&T2p"'UiSo19/,adbM6/=$a$\Zf/i8h=2e>8D_CO"c6<JKm_r<l>PIZCXs[ep;HNKho'U>M>a8[*nBE4ajjmiTA1R=G~>endstream
|
||||
endobj
|
||||
16 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1876
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1916
|
||||
>>
|
||||
stream
|
||||
Gatm;=``=U&:W67fU%Pf___DNSa!M)i](YCUQ,u%p][C"$8Mo9+D'+!oj**D7+#K*]!8>h_o9+Z[n?cT^52_]$\6\\*5<db.#`(ppl5mF$TK)d^5j6Pd`;s7nRC*C-od&rr]k*@#smd.#u(]DDWJ`u%t73B3)3qUGV4kE"Id6QM\,t;$Jd-(_21_p`o2RASeG"ZWdQ6#_k_drYqJ#t,u3)pLM#-;#_itfEGCKuq2S+"."H:<LEAa/HOoRE`liJ$<"<7cc-of!f9AaDo)@jK/4E_3.D4V`4BIGmbN_*Hk:h?nFER)$00s72BH-u'QU'Nc;Nr]7Den"O//+1thnf*rA(h!<ZnXD3Tb@[6O1G&[OE[dF+Z+M+hdY)O>c:BNi@.i#:O+R'[\^F5GTEKnV2nP+nJik6-G`3NY0F(o2)5;qm>u<#PB7?3hsIBshN.%#:I1lG?K>Xp>C1mqSUPJ8qE(8%K1gE7\]2%:J/NQJUXH"O3b8m)F^845YI1==(<^0[MVHXint28Sij'fq>00eoJRhk1M'@l:]nA/k.aO0C'EtN?042O9f@Y-gcafR_pEbG!)c$fi]>q-5k\`E1)L,<@jS\B)pkr'EJMF^p5=>]/+]U;JS7@0n$CU#d>g;\t8tMbOf?a2*DLfj%Asug&[GWf?;sqk&-)!S@$a'kg<2*oK]Z?Gls8-mq:rBm"RUA;bM>SV.bH-rB7J]?janS7W`NA\$LHmni0W%-,a@$3Bb4^29J.HCUM7rqKl]gQdjbmC"K4285Ebpl-K7gs*S_U8AQ[c`_piL)Q[n`?n,*'C_e35`!$lr7+eX8Ni1kT/8S-.AHkn9"bG!FMZUmS_.dh3P)gnW-K;\sR+a/WT"hZMD>h<g"9K)Pl0o8uE"R!Qil'PF:UVe:tD%%$-%-\0a9C5WO(R*-J`=Jjt9AGjAi4?j5_fC'K2_R4n3##P?oa,XMf*R^*I4a+Q=I&aEe3W'6C9*\4W>aF%,H%g+O@3Xi1Xi1-lk8D$EL'sNfn[,PL,`_1[8`/URKVuXii;;`kKO_b_`?ps_SF.,f\QG4^"&BZ_58u'g"6E%_7g*-,mafhGF_1XYU(^kW6JfEJ0IQi(L7"1,!csL`H1RRcYi`F,53H+b'Yaa7E#Y5Ae$\nH0S?DB+@j`dD>&CpP"6c8p^&QPVG];SYNs#e\Z.#JT?MWqA.r0V.&i6i<n`CG)nJeRSO(1:32GCCqVO=iUquXagdZ0]@4MHOI_-;]H=X'&&esN=W1\F(<ZHt'+Y.&nDkT*)#c:?TAfk?Kfs%1Kb$_QW?FgUb:;fD;At"1k%r0)c*'0>eY:\!u-Cbt"97*io8#)tO+!W,d%kB`OC?PtqdbmDS7Z`$5mYb"C'#BOg2gpL_2,3*D=E'gNa;Il8PfO@EUfsFn(nOgE0LWuSl&;UIO*&47.+(NkC5ILHYk45)ROAqDUIhS9Xlfr"O[&')/5(G8F(8t+A-L8nS:%d(ffk?mp5[PoHWIGkZ0!U>qHtE@h\D/7gtdLGpG,141b20Sm5&(V(9tLbF.CE(-6=:3:>R$C'fR?Im]O7M1N/73fG&P_`^Za@R,NQDg0$s#r0]FMice#`@[05GoE[X&KS_WYLbt"?!rmHrIkPkjY0^A\f"b0YihW@Cd>])4p`D*\f9UTJS.$(;mkt\=Xepkm*I_u)9mh1<WcuVmp>&';>J9:b3kpSa3<M&XlFN3lRjj^A%N;M&5K.@5#cIX!3PA_W?S=&R\;iB2o'GG^LGN/UF1qt-DO9T`ES5\lbOfL$GF#gGc>'bpf(Ikr.Gjl]nEt#9SSF;3WY.</$+TEgp0##fk:b0r4!sl*bB!;8nf'T`n3]a'57^er!p"OKHDM@ni`"KJ#6Q4UUON9L,Y1Q~>endstream
|
||||
Gatm;>?BQ=&:Vs/R$Sk-!Fs7G4_N(n[$8!l02'db_MdCZ8&:Khfh%M/qAm\$ie4gM]-TC`4Sn4>c'X$>04M]F!oSG3VlpC<$H"qJ^>m-#$8.'cDZbcL2"C`f]\)li$;TTK5LA(K64c1d65'F*)`_p!K-(aSNft;.Sr4d*J`^qG@R._c68sdME+0H5EVSb1kCf(oC>T?70\JYIfG>Lu&gqLs6Sn$eJtW<]S6DV4^>kA!$=HuOiJ3J$hng=tnM6X`Q,Aq\o5mmH/Ys&L]feA+92S`;%'TGXkA"%:=ZqQ!'S\9"Xq&27-0T.bD;npm&h(D\MfQr4I1?(1AO80A4#h_"9O"0O2MO[XFQ1+/0c*%aH,g7.6DO;I2+Gj1L"`=CSo^b#R--eJ)f!!B<tPdEqD?/(cVY=X'7>Dsg>&,u,=CtQ%N-WK8bZWi[lkJGqiQ=,B99+)(HL15efNa_Vk4p<r_BBbi6n0&Y&J5&@)cL,W3g8l:0E68?.TkQ9._Wr`OtE6i\pJ3r27*,\EjL5<jG^t+R.KLU<$eg7o6'djnT4HU0s8EjY8<r`h!ihcK,nWbo'L5GZ+&.4bg((GKZ]2^p=)TQPU`uT:KF"N6*CG/i#D<<68*\NX^FcA=>T!1O1r/H&=N952W9K!@GLKBjq7qN6>1[\MGh&KEAR+\1Rn^M3?ub/>$GPn'ffPp$6X6JpB!pnrkm]ZW-cBkmJ@Vj!-]'pVtDF!pOO>Qj+]W',BRXg[AhYhQ&ddpAS-r;kCmocZ8[YL>i!MYsiO?p&YJAEc4-Js7Q6Rj,M1;.V6&G3;P[5qp[GVZqlZ_BCZ\_%">0r%U<eG9/qXI_cUE2@d97Q94Z7eO#CoP?.>hnWf"'/%oea8[j,JjqAk$^",FfLooP"Zc:lPZcPX21XtL#T!6Z,-(2L30QT9H%9YYYipkeHaIM`p)h^oCn.fhF7TRLg?*PWXWUa;^\m!Mh/=CHi'p`73r#L8U)Qe:PJKl+Y7,c4Bi`Uo2R).,)8"]"N2>$D[Ra*".fgZ8$\Vnl!`gYgb@A%t=K7[R_VmM2P.R$g)>:DMGF)_)X+j[ZgN"C;N)`mWjhAcW+1'4/mLhS&P8-iP$=R$4WRF-5I-o:%\Ck'qStcF&0OrWXe02DXs7C[Fi)!]Mbt%\=Qlh"D%I,)L!k-b*!@8m)\;Xp6?:Wh(?fAA0oef!-NUP3R:0Un,$(U$HgT)+4mb6g>\#qc@Eb1jHaMD<,"<[PBQ*pN(nb8%+j26#hpC$C[;q`K<\1Z81#,(4'8;@-V9>p>N-A%;X\$$oZ;oV<af56jscBVWl/!TOoajTi3u@daCg#_O9r,[.i9p1jWp/+_%2EYdB%`L*#;&%3F#/"PHl8^,SS.&PQ;U[gd>`U1mj6$a)8q3C=./')A5P<&:lr_fH4p6\MP*:7*N?Ofl2.-2K#UbqY;9QJODc'?*XZ1o[mdp&#pknd!nto9*J9h3f0:=b4cBB:j!b2@lRI]jnGJR?_T3W]<_QD6OQKT*iU[mV]h_#FV;`RMDZep)1&;Mca;B.F.$$'9<\U-Z9K\MOP1_Md%k,bX^\&2TB%2Yn8Dh-9*-*Fqt]!IqDEWpd44NXO9at*l3Vl0_'GqO[d_ji;]tADe4sT'maB+l<28$'Qhhg\T),pR/SI+rKX3b-7Ac1m(:LE:TN_7>_aEVm3Y$0'\/]K#lAM:<it5#FIh=B]UXM?%Wu&LZcs1XoEQs+$c"E7RQeRPi9-VJ.X\,DGb3W#j3.,G,PQ1q?!j,8H@K@]H-4`)g?l?C9AK64i3rB$DKcl.?-[2]Wd8+)Hm/:5"JrHtPs95Yr"@W[VmsHV%`Wj$5M%*K<$eh,;KUahmF-;-$GSmU%d<`Y<d>Ye4mGK@T;'C5L$q?#UrS*6WrV>!Pd`7b<Z5I+_^DrY%XJBl#6+`5@9j$~>endstream
|
||||
endobj
|
||||
xref
|
||||
0 17
|
||||
@@ -116,22 +116,22 @@ xref
|
||||
0000000122 00000 n
|
||||
0000000229 00000 n
|
||||
0000000341 00000 n
|
||||
0000000546 00000 n
|
||||
0000000661 00000 n
|
||||
0000000766 00000 n
|
||||
0000000971 00000 n
|
||||
0000001176 00000 n
|
||||
0000001381 00000 n
|
||||
0000001451 00000 n
|
||||
0000001743 00000 n
|
||||
0000001821 00000 n
|
||||
0000003544 00000 n
|
||||
0000005360 00000 n
|
||||
0000006786 00000 n
|
||||
0000000446 00000 n
|
||||
0000000651 00000 n
|
||||
0000000728 00000 n
|
||||
0000000933 00000 n
|
||||
0000001138 00000 n
|
||||
0000001343 00000 n
|
||||
0000001413 00000 n
|
||||
0000001705 00000 n
|
||||
0000001783 00000 n
|
||||
0000003855 00000 n
|
||||
0000005952 00000 n
|
||||
0000007459 00000 n
|
||||
trailer
|
||||
<<
|
||||
/ID
|
||||
[<51c9ef4a08589d21f13f527085c33787><51c9ef4a08589d21f13f527085c33787>]
|
||||
[<095815a8cc0df89fff07917977950c37><095815a8cc0df89fff07917977950c37>]
|
||||
% ReportLab generated PDF document -- digest (opensource)
|
||||
|
||||
/Info 11 0 R
|
||||
@@ -139,5 +139,5 @@ trailer
|
||||
/Size 17
|
||||
>>
|
||||
startxref
|
||||
8754
|
||||
9467
|
||||
%%EOF
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
|
||||
**Vak:** AI-Assisted Development
|
||||
**Opleiding:** NOVI Hogeschool Utrecht
|
||||
**Duur:** 35 minuten (in de les)
|
||||
**Inleveren:** niet — je code uit deze opdracht is je basis voor het huiswerk
|
||||
**Duur:** 28 minuten (in de les)
|
||||
**Inleveren:** preview URL in chat — code is basis voor het huiswerk
|
||||
|
||||
---
|
||||
|
||||
@@ -19,6 +19,10 @@ Bouw één scroll-animatie sectie in een Next.js 16 project, met:
|
||||
|
||||
Het hoeft niet groot — een werkende sectie van 1-2 schermen is genoeg.
|
||||
|
||||
> **Belangrijk:** dit project is **jouw repo** vanaf nu. In het huiswerk
|
||||
> bouw je in deze zelfde repo verder met meer secties. Niet klaar in de les?
|
||||
> Geen probleem — thuis ga je verder waar je bleef.
|
||||
|
||||
---
|
||||
|
||||
## Vereisten (al opgezet vóór de les)
|
||||
@@ -46,6 +50,26 @@ Geen scroll-demo repo? Vraag in chat, of clone: `git clone <link uit Brightspace
|
||||
|
||||
## Stappenplan
|
||||
|
||||
### Stap 0 — Starter forken naar jouw GitHub (3 min)
|
||||
|
||||
Dit doe je **eenmalig** aan het begin. Daarna werk je in jouw eigen repo — ook thuis voor het huiswerk.
|
||||
|
||||
1. Ga naar de starter repo (link in Brightspace) → klik **Fork** → kies jouw account
|
||||
2. Clone naar je laptop:
|
||||
```bash
|
||||
gh repo clone <jouw-username>/scroll-demo
|
||||
cd scroll-demo
|
||||
npm install
|
||||
```
|
||||
3. Koppel Vercel (eenmalig):
|
||||
```bash
|
||||
vercel link # kiest of maakt Vercel project
|
||||
vercel --prod # eerste productie deploy
|
||||
```
|
||||
4. Open in OpenCode Desktop: **File → Open Folder → scroll-demo**
|
||||
|
||||
Klaar. Productie-URL staat live. Vanaf nu = elke push = automatische preview.
|
||||
|
||||
### Stap 1 — Worktree aanmaken (3 min)
|
||||
|
||||
**Met opencode-worktree plugin** (in main Session):
|
||||
@@ -120,6 +144,14 @@ git commit -m "feat: [jouw sectie]"
|
||||
git push origin [jouw branch]
|
||||
```
|
||||
|
||||
### Stap 7 — Vercel preview ophalen (2 min)
|
||||
|
||||
- Open Vercel dashboard (link in Brightspace)
|
||||
- Vind de deploy voor `[jouw branch]` — status "Building" → "Ready" (~30-60 sec)
|
||||
- Klik → preview URL openen
|
||||
- Test scroll-animatie op de live URL
|
||||
- **Plak de preview URL in chat** zodat anderen 'm kunnen zien
|
||||
|
||||
### Stap 7 — (Optioneel) Cleanup
|
||||
|
||||
Klaar met deze worktree? In de main Session:
|
||||
@@ -156,12 +188,18 @@ Sluit ook de feature-Session in Desktop (right-click → Close).
|
||||
|
||||
## Klaar zijn = je hebt:
|
||||
|
||||
1. Een werkende **scroll-animatie sectie** in je app
|
||||
2. Gebruik gemaakt van **OpenCode + worktrees**
|
||||
3. De **regels uit AGENTS.md** gevolgd
|
||||
4. **Smooth scroll** werkend via Lenis
|
||||
1. Een **eigen fork** op GitHub + Vercel gekoppeld
|
||||
2. Een werkende **scroll-animatie sectie** in jouw app
|
||||
3. Gebruik gemaakt van **OpenCode + worktrees**
|
||||
4. De **regels uit AGENTS.md** gevolgd
|
||||
5. **Smooth scroll** werkend via Lenis
|
||||
6. Minstens 1 **preview URL** live op Vercel
|
||||
|
||||
Deze code is je basis voor het huiswerk — daar bouw je 'm uit naar een complete landing page.
|
||||
## Aansluiting op het huiswerk
|
||||
|
||||
**Niet helemaal klaar in de les?** Geen stress. Je staat al goed — Vercel is gekoppeld, AGENTS.md staat klaar, één sectie werkt (of bijna). In het huiswerk maak je de eerste sectie af én voeg je 2-3 secties toe naar een complete landing page.
|
||||
|
||||
**Wel klaar?** Stop hier en zet je laptop dicht. Thuis bouw je gewoon door in dezelfde repo.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document (opensource)
|
||||
1 0 obj
|
||||
<<
|
||||
/F1 2 0 R /F2 3 0 R /F3 4 0 R /F4 6 0 R /F5 7 0 R
|
||||
/F1 2 0 R /F2 3 0 R /F3 4 0 R /F4 5 0 R /F5 7 0 R
|
||||
>>
|
||||
endobj
|
||||
2 0 obj
|
||||
@@ -17,12 +17,17 @@ endobj
|
||||
endobj
|
||||
4 0 obj
|
||||
<<
|
||||
/BaseFont /Courier /Encoding /WinAnsiEncoding /Name /F3 /Subtype /Type1 /Type /Font
|
||||
/BaseFont /Symbol /Name /F3 /Subtype /Type1 /Type /Font
|
||||
>>
|
||||
endobj
|
||||
5 0 obj
|
||||
<<
|
||||
/Contents 14 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 13 0 R /Resources <<
|
||||
/BaseFont /Courier /Encoding /WinAnsiEncoding /Name /F4 /Subtype /Type1 /Type /Font
|
||||
>>
|
||||
endobj
|
||||
6 0 obj
|
||||
<<
|
||||
/Contents 16 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 15 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
@@ -30,11 +35,6 @@ endobj
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
6 0 obj
|
||||
<<
|
||||
/BaseFont /Symbol /Name /F4 /Subtype /Type1 /Type /Font
|
||||
>>
|
||||
endobj
|
||||
7 0 obj
|
||||
<<
|
||||
/BaseFont /ZapfDingbats /Name /F5 /Subtype /Type1 /Type /Font
|
||||
@@ -42,7 +42,7 @@ endobj
|
||||
endobj
|
||||
8 0 obj
|
||||
<<
|
||||
/Contents 15 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 13 0 R /Resources <<
|
||||
/Contents 17 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 15 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
@@ -52,7 +52,7 @@ endobj
|
||||
endobj
|
||||
9 0 obj
|
||||
<<
|
||||
/Contents 16 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 13 0 R /Resources <<
|
||||
/Contents 18 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 15 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
@@ -62,7 +62,7 @@ endobj
|
||||
endobj
|
||||
10 0 obj
|
||||
<<
|
||||
/Contents 17 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 13 0 R /Resources <<
|
||||
/Contents 19 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 15 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
@@ -72,78 +72,116 @@ endobj
|
||||
endobj
|
||||
11 0 obj
|
||||
<<
|
||||
/PageMode /UseNone /Pages 13 0 R /Type /Catalog
|
||||
/Contents 20 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 15 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
12 0 obj
|
||||
<<
|
||||
/Author (NOVI Hogeschool Utrecht) /CreationDate (D:20260518122502+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260518122502+00'00') /Producer (ReportLab PDF Library - \(opensource\))
|
||||
/Subject (\(unspecified\)) /Title (Les 2 Lesopdracht) /Trapped /False
|
||||
/Contents 21 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 15 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
13 0 obj
|
||||
<<
|
||||
/Count 4 /Kids [ 5 0 R 8 0 R 9 0 R 10 0 R ] /Type /Pages
|
||||
/PageMode /UseNone /Pages 15 0 R /Type /Catalog
|
||||
>>
|
||||
endobj
|
||||
14 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1679
|
||||
/Author (NOVI Hogeschool Utrecht) /CreationDate (D:20260518125917+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260518125917+00'00') /Producer (ReportLab PDF Library - \(opensource\))
|
||||
/Subject (\(unspecified\)) /Title (Les 2 Lesopdracht) /Trapped /False
|
||||
>>
|
||||
stream
|
||||
Gb!;c>BcPr&:WeDbbNq&$5,;FQeaKb2Wo2:[.^@MISm>,M#gJhFgo,77t:V%[c;VemV2%GK90^-S'*_m"VX,-\crJVX"g,N;4n?;T7P_7L@JKX*#i5n_Hc6V%M4PfQHt*VQMuM!1fA9tiqgls^eKl/cN]k;_R\!DiAo5Z*omqt5;su%cS[k'"6%aL\bk<t79mi/[7qXmof(2Up2Or@:Y`rN1pd1U0\er5:p!^?-73jt#K@&YhS$\;L,UTH75.XiL;1o:#."phN-TAcrSjn,U8!lN\<('/XKk6kjYIb2_t^dneWXo-:-9IkXiZ&C$XeKdPtc>I9"kmGPR='H;'4/e.p4K?Ciq=%4Q!Ct*.**O\9KV\CsT($D*j1?5%1=hTC`3CEf5)7/d+Xj6`ELJa.`?G\)n=HUHZ'5..un3Xg3*r0RAdiUJ]UFR%6(?;\g2sRM"Sfg#)_k<D5biAmhD@jd]J0SRJs/<Sh]e`fJ$_//2fD]T8V/`8mf547(10G.#KH'ofo?BsG,tAgbjiPl57]>*qYs8ic9hfn;B8a)Y<_RJt^TE-d4!>[9"M=KEs=?4pb1;pSngG\EgcH@@N(X2OC:np20Q6pW>tYkC]_M9i-/!<p59M^:o^64r9.NaEJU-mK$q=tM@,50%].Ntr&Ep,(*'On:T>(%9eVh=/B;X2c`?TOh_H2/C<NFl#Lmoaq=+J(H+QP=rg?:2PY`$otg4o9X5^pT=!@QSe\/A^beTO)ra\3YO&n'SuKd/>HpDL6"\^<5Sp)*Se73$8[`pEj8a-O/"[6p]_),bTods,pqthJ=/Ka&BePRC`eV2:gBnQ`]KOO!Dnf77jOStF>"e6#UCnX:11BD=/Br)iT&T8.[Di^5;;'6L+-t^3nOr\7k\^YB=@mZCpi6\7.B_(/hSZOZQTA(oc''H(e36`g>$TMmN#<YI,_S0YN?/BUlLW.:3Un#*G\C0%_$5q>Pqg4i5BZ7rbo>DUer<m)m5Ca48H!(pB=A0Z<Z5G1Is2Pmk^B'l]>Dn@U?'N=Da@$f]1B<$HPIs9-^uL8f1-1'9s>0MRt%E*hD-&$*nps'dt8[Z&%CNPYTOp,BA;V/E[R/Ceqf)3k^dU>\__[#]li2FKCo3-Cmi.XZO7S'^,pZhO;P+),TKGJlOQg^eW)QE>`eT-)p-2QbS>BAYK$^k$toY;WO[upJ=.7PFAjkd(p`[_lB[VMIATS9W7.A1_M0iHGJ`d4cNLRN,:\/SiY%Mpo'93o-'(malFkkUT>HDq6n=X][o2o53QM2o]s\Eit4k[<HY>6]>SD7P]<r5<nBfj5-,u5[R-G1SH7cMdL'04eJHaMZ3ORb>CSiD,Q%7q#j)2$Od?Up!r;F`rH"E#&R\e^RLo5Pqh=NS<=e3A;GOEs7VWGu$j)]).`F]Y3#s;9XKtdSAOosOX&O91(r.mC=]SPe4;Jdf\NjI/jW1e/D0<Cqo/#"o@4_:I@%UAbDeKrmLe.PjS5cKRrB@$g4.^Ou4>3b\hLodCGd-n]e.:dMguT^hB([9jY6U*!O8duegJ0p,7Ok.4ktZ4V=LeGg\3Jj:m4&&?q*$OqT2m2`B%XRgN5%:lhl8XeS"9ooN,@0D-\G5kKNG]TO:D1e,mJT"MaH^nFbg\SG,`0[rq1++7.B@h8J(G!A;an$W=ZUh-*'[`#QKDG0=[&<XT~>endstream
|
||||
endobj
|
||||
15 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1751
|
||||
/Count 6 /Kids [ 6 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R ] /Type /Pages
|
||||
>>
|
||||
stream
|
||||
Gb"/'94Q^7%)2%/i95=t6W0.:mFJC4gTB^Mn^^>cN'uEXp$a4QC&@3$l9WO8&uAmC;rbfZ-j';HHj%5=T_Ms_GFSd5]S)JI#)pH?"\]I.bLc7LdeVW@4Q)q&JU!?(&I/qojp.oo;h,sO+Q<t88OF[h!CAOcAL)i%>SsaX.LiGV%Kd=J1mA&tA:>YR,C,=QSE&%Lpd#H3b4k\,JJXHA7u&e1?W;b9=DsGSl3TeF+8W4c@I`LI?a&C!\^ko9.E`/!CapHD)S"]fKP.LDB6BcrNDAEB^<p)obB;2pJ`RUtT:3/7q?<32'I^Aes0]"\"+HTKUf(7b41.fk"am'04h>d_(%<8[81!dg)IbZIoXX"UDkn`^&O>c'T6.Pc/9?&,-l$bXL3U<L6!+unl%hRJM&e[42bYu=<8!rNk=%R:h&bnE=9-6(Mu\Y1b[L:4NA%827-uJ/6Uqh.5$3o[YVfp"H0f@;Q<*.s7K;Gud&5uD5\/3&8^nS'>Vb^J6bT)`AK*KbM$ma_Rh)\9rB[JK,5bQXi5B7?;Kkq:LU,VXd537OjD(`RNYNVrBe`,7+JP/7Ag9Y:]2*VBQW^9C]sQP-#2A-22c/pa&XS>tD[-ugll,*o(CU/`'n2]hUjZBN4S`\%c/!V45]@6X'P.u<`GKIq*E?=$@NHZ)F%5SR0^M\h*QoEGW=^,*Cu2rB":_7REgRM%G0K!KP2Q_t0MGc)<Y($N/F"+U#]h_2%&IcqW0O&GQ_C&ldErOp0/DN,DssKp#>lEBH5?Z.&oknnHSt^\;ec[YBjjAN;jJ0"Ztc`omH3Y5iRU&-;GCcfJid]QcPP'l>t9hniA;=.].1-T<s5*F<FHNX$.!b-D9C]5CpD+6&&\S\D-mfkZAWd.B*NX'[Pq<-D\g"/+MMb*,POM=ZqoGo9#p3X,pUcn2du6'Q>WDH5-DKl!T*%p@6=-8#O)D&BsFcnb8UjH3\f%"`#@ntd?glE(G(m#DrM<,#_2?IoLFe8n'E.p1&&ItbF^"toE/PEi<At.K;neg.+Cu&f"/^;<>kNO0_>D7I1tdhO)U]b<Vu2YWip=m*SQJ.5`WBZUVR,P)qDH<=Z#tbEs1J#I>Q[u=u=>(&!jU8TP$u3'7b"&YYdiPX!V+^h,%6;'TjS.R(!t9nYk^r,#$*@OPd+Z\#US9FA18YOou%NWT1#&1,mU+l#(TCJpV4TM0Y[C,JqKeNeZnI,Po/5UAR5n7*jU7!k,*-4>`c0JL5J$6Q%I=*G/'!e/[AcXlj_5:Og'%g,Y\[22=T^=GXC,>^NFuQrP-sYL"f\XBtn19g_>B)k'>\O?^C9_=H&MhgM;2!@&3LI67+S]'&SI"oY-&R!D`t1eY$\)kA;hOi)o(H2o#R:9ZBG[P5,PI$^\S&k`_gHD=IuLUiaYl>>?BJh5)ee*+q3XfU:5_i:hgi/R-jXBhC*P>csgGu9MpeR\GG9`U?a?r"=u=2VUA';ukX?LROnG8\heHLA5cb.JDd&K<WPV6K.HFm*AUJ549"r^Xj"_qp`&PNHG=RY&.#X7S2+!GXM,^%BK6+@Fde4m3@fD0TPj-2!3/SYG-e4OsqEm3WT%<0le6;nMBk<VW@RcBusO5$M<-SL%uYg*";46/9HBbOhgDCW6e/qc@$[]%#E3VM;Un`\qXn6Cl%Jl.$.:hVp/3NCG;R#u;:il!^i>C/(1K*doJXPIuC_^FQB-;K<;S1_6GPgAeiXbhMX-$]"LrCX[5d-8tI__0Op:K(BLp>aIM~>endstream
|
||||
endobj
|
||||
16 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1729
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 2059
|
||||
>>
|
||||
stream
|
||||
Gb"/'968iG&AIa;m,V%lD'6IsK"c>s1i_<m,gKNZ--h&g@>Qm6-m\1:rUjHX,"O/+ChG*;Toh/U\H)=(I/%kN"r+hRqbKk8B60HRAAC1Kc[eY3@K%0Ob_(rWiJL,\"<oZ;0aA=!pORW&<"LOR@NI>P1a4uD+>kBI`u6ptM]rp&D;b=`^jnh17Tol@/6#f$0jYF13LZ6Z<%?`G^\1GbpL9lJhP$G;&!^Q6[LUGq'p;B/7NouKfR*5`mj!'g(T'cjee[aV>FT`f_C=X[*#q+)BUZSJ9a6*7CK&kcBr^k]bV*B'`7^UCQX#_Fii!=bY>#*=nDCCS3q8Z"P=8e(+==,FiNs*+'OU_U;,)_:&MD+*k<';82d/`u'pJ_08Up&;7DL-7WRMS!qV0mu_BQssP&TWK#%!$C9Jbg1Gu9P!iXib?_>6@PJO,BlK>W*L0Pk<1,P?qm[upr;oV0,+n)Sf!%q?5t)D$LN<pn_Grp6J6:PW:GoGSm:<F_84c+!b.HA)iO[qaB7+fq<umH[0TlL`,MJ#Qdq'!`@J]:o878?/SabtO1Q&B_Ys$OSA\*XZce6N>dC3R3gEd-Y#jmono'hGFH"AZE*n\_"2[h*PGab55Vn@@j!?/YP&k.;p,'R-O>6re=K5qo/G<fg1j"$l6=[^\1Lk+Gr9HGX!'W+JYm5">;8,WMpgrMEGf*67%Vg&j>kY""t#o0T8lcW>]<9:lZV7P_\e?PP;jc:t>@!:`=%2Br7X\3neU>eRK#0oQ<<GN+T`9&Z>cjDT1g63/pMR)+V%A&dciR(kFCV]Pg$<$oB;JF7TE1>HVdr6j6_2i7\s72(^*+(DjY@$WAl@;qPK2j5b>UlAQiZ%LujYR@fQr,;?U8K$qFI2*1Br_^AAf+rf\K10p:nQZ-A^l\/\)10gB0_io^_3&j*RKfQ3;nm9Ab@S!,l'Hb\2M^2Kfc0ojo'.Q-b+1t<S)[p0]NPJ,$$Fm7&"]"RrI5C&*DG55>UmL01N=gmW-3X:2\p$d&niKeEZ`Ca[-JZl67Ga_o#:qtSP`D(lrNhi2ZfRF,C>H0Q#0ra.":cGaOUoU1b3V:4>\ZRAR&V6(k#.;.L*<%L\Q"5:'erMH10Sl?4W#H)bl*/AF"a5^1-4.C0putLlna"]aV"0^3:b/q3[]G/T<sWE8schH\Ml;uebppTa'j++9^S&iX4;$?Zprd3+8FH"$!%.pn4STE"3]R;/hpG7#4(-'gkBPn)5.Y%J(!+IBeK>/1cOl(rrM5\U^2+?iucSe@\WqAdhl_6XT*qla[2qd-A39D!q3*16_1A#F2E%F<iZku.p'/bh_k@!F$KUFDoaDV?5W:P,R;0B><Ef4.7UC#ln-t8[6L,q2GK(*D;'D(.G`-)HWVMh[4M^ec^,ul]KO/kVf/R^Nmb(UQlr$>\:;m[N5mta%GC>RP.<$0nu\.uU?GW*EP$u72tt8AK/3*kBl1J8VOJ4"Ja5rkmdG:@lfmG6XWm!$mQqTE<eUD8Z;XZ_AV)oKg,`Rl9PlOI<He'+`KbdC!i=_!5I):YVn7k/[.U(_&)Ddd[8g]E"/`5<h0^fI*QI^<i@I3+2(kC\]&aAR@ClBRgq2<56EZF#igBa>n2jA6l8pBgkBJDr>PJq6=3\%soAVrZSn"AT6Lc.ikPob0HPX+t8X9C&^tTee-LI/rBaKjG:"&IIq[:I,ldnRdmXKt1au[%7jF99]oQngJUe6sq2LknGJ#`<@$3~>endstream
|
||||
Gb!;d96\iE']/^gg^WEL86&<3ZXF3;V<;qm+e`_XE?-?FCJ2Zj)MVT`=10>8Bp+2Z0S_i^b*MJmIeRn4R.sCVCQnn5)8bn]"j144!GW8eL6qCIBRDZCF.$Z&5V1g"!X9pSe/.1E6\+202dcXiht2`nfjO]ApjV-'_fMD>4ifWW?5OB4kF.u\"7`ANqX1-M(3(3ZeM_DP2cr<%f]OdV!oc,hTpbQa$H!mkECrm3Cgp;_F'tA%n*7g8"h^1#?:6Ru'DPhp4IVNh@a'IgMkcK1Ll7FWiKQRr6tRkaj`;9q_=30,eWFc+T6N8c>*4<V$XeKdR>pf79>1n6Ym>o(7"*"X/nMSpZ.661nH-bJFR4ssiSqDtYW\loZj@$k!l@W44m=6-oe"at?&/p&T[Y0_j%sm,^#p$OUB,%BPQpe5X\@W/N6^J%BU%aCAh2,BPspFaAgDV<p,=)Y/s`1c1GI:2qED74GD=XW<H[>31k)%bbX.GXkBD>e*\i)lnQXmRd-T3'oH!&*?>/6h*OD#C[`\TUmn/s7*(kY53bB&fciDg3fk'H\DMI1-eD[EV_89YU_fUbQS"+d?ZbSpA:"'J279gRFVik-9TE5I(!JRp[E^0[qPmo/:9]l(GaZ2PkerKJob]0+bl_8a1^m!ENr34X=Pfk=4.X4q4#E$TCrXeZ)I/\6`A.ta,T#*d0ipI#18<1seL9H>74^R7Y24KkCVSRJ%hF%\C&N$Ne=bSshIMHI[oL;B*i4YWLrmcnR?)n%.Fd8SIA^aZ4:LiOe3YO(E+=B?`$'3-3Qp0o[^)GR-feOLi\AHIB>WJA$o;B:S=884#b_J"jo9'IuojRr3%LFdXcZcp>O;A]W_0kENm,?)QSm8`V#O"]8$_(iK8TZF7i&8NjK*NiHR.1f$o=.olr;Mg=+4n`bSa,/"Aj0\k>,SeJ&8daQ*j_2/kBM&FTs>+VfP]%91*eR+/C=(m/T<)>>)A<@'2WZjes)<Xak"hJ)BET^j-CB-aW#9i7a;f(Z5fln`=b^/&Z;=SdKWQ'3umSRMLR.u>liGD\<M44$rY<mLQ%/#.V5Nj\1_FEY;YusMUs/WpQpp4e2%^.q1?M7,I0j;5T/GPiI#Tb%52]FM7>e_!et-R/7L>_3uF&Bia=eD`*m^9^/sDBq4puePq^IZChch8X,;pqYn"fA."E?nN7NsNLk_p1d94Shg[/hAWnXrQfe#_VVui'"SF7<B.#B`KRM?,q?K,]4<7)K5Z2@T7`%8B'U=9YrU?[hH.?\/L6BM1[l1fIUBCR3\,Z[mF3FXI0OW%$jfPEIq=0o1gJf/r]!Q')9;0q:2$-^1DZ)`s6365Q":cCbZGMJ5S8%>KhcJCo%'1a);=iiH4.nk&UhQ!o^H,%$9<P-BN(>FCuIU*,EgnG3u6s@hRlro4J/PruqmH^=_V/?_nMEB?oFX'Qo28[3:-QqOS0#S*mJPlo#<MtiPG7NMU1)[,@AeGZ.a#pP//`f+HSQ&[#6/Y@<H_5t"%XK81L3$A+BFJL*Vfa_\8fp_oV5]Tg:oA93G"j$EmoF,0fZsZ2)k8[@@5JY"%XPj!V!2K#MY:d8p+@7*QK2jh_`*Xt&bWf=7\XTSO`,C@(gUk'[YY9Ek9S7/PJl^XpL3hm`Wo?^B4YF[jc6#0*=DT-SN`9UT"hlU%S/X`b$BnnWX#C`.<`5Od_T;Zeq)=LieUR8#4j94j][D&,Hf)E%bFmEq!23IOH3_'d=$h@q@u\^&82#MlJjke@>&3[W+!E`^Ye83L*9uLB8#)3mD=3'P%c6H^@2iWK+pnnCeui3;AS0D=32BX@?H=J<coj#0rFY.$kq\*$JIH3j]6&kJb.?`oa>g*<+<P7?&0\uGl9It#+e_2]70s^DU0]dPg=R(0Q'dt<8:]`e41s9$+G1.U07F-;N:9olMfHbWu:do%n!-DMDZN[ec1:?ot&Y#k=k\9_"S(Trae[Yf@.J0D<K6"iu=C[b@YA'*-9k0e5:.a.,e;MVMGG+b7YKDLO$_dRo^]hAoLB0bk:EplQ:6JX\;Z8q'BSC@Kp:5D6"H/K"k^k$P^\1_Z~>endstream
|
||||
endobj
|
||||
17 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 2366
|
||||
>>
|
||||
stream
|
||||
Gb"/(>BAOW(4Ol=3&<YFELIL`!+*Ibm`qWQ3pAOodooIQncG#:7#N<iP-USVqE5rlOHs]UG+ItmI$$r*pi(+1k;s@]++J#!R[*s2cf*P+"j15e!#gq!k&90Bo@Y3A_BKa#+V68RShM8n2a:+lB,-(3M%Z+N&:R;@*'bVp&L%h&E*XI4(hs54DeBbT*;QiFJ-[&_,2-8I8]2H`*KVt4P25fEI):]+OJnKU`O(+#L,3MHPXFO5nS&hq0JDDGh9R0lK\(OLRWPBK!Pc%M8lmTlA1WHO5C+uO-?!(Q_+SpM$G@lgeNSQ["jF_=HVNu3-:f-7Wb_BJ<!*Qu<H#0H3op$UR9($R"R6d[l[T_T?ImaFKQB@IGMHp()+WEe*^i9sjc"o3?FmCN`a[s)JXDCi]_3Nl1lg41,TPsB1H1%)<)@>&ge`UoOq8TkVfn(6?l2F3^u;kl;>cZ=+8QJgGIsY,J!?\C)^f12fVpUQ4IrTd?!*M%lhtIo-@EE"NJQdCAE#K3'.,-f5S9?@:ip%8-[m5gRX+XUJff.1$"<`+!@&a^0QaMWT=(tB<=K=AY>kakPVl_0m1m:VgXk2$)^??F]K-`L;<#1fq.$uj>0LeO]//34@c'_51>9Kh#q%Ct(,E#M6:&(VVbB&:7&d2N7DA-/LZKm+AHaU7_R[Mh-L_X:a$@@:p"I4BQ.87`9@U"C)f9`FH4B7VRl>;cFkm(c40slN;fSh540ani9pG:^NsG7eP#:A)e$*.D`9i^LNm>A\7OqU$S^?+[%/g++%m/Ur"0\MCI\re&A&9/OUr]UE1$A:R^0J(j7],J2PJKuk\ptl*)!s;_rrgnA^><r!.>HZMA+'r!@rCVF/^m[;YN<ah<Y>s+MBgacNYlt\B"ek'8"1S-?)dfG.OaATeJiaj%R@K;Ki5oZ)c^IL8l=t;1hD`B.6g-tp99YU8T-MeJ.JYT<UkHUHSECSAN()Gr:WJ<l#!aiDc>ug%]_^L;1^$OnhBP4N35$nc+O(LnM%[Vbo.hb3Lo5c])U1An4n+gWHqA$?Znh]WBB7/apm/][@[4s238ojGAFFceg$k4bZ:!L(<!K><c5"+"i<2+a!!sg,2riV4<5$OS9-[7MFgL:0^,0aZ%OARm`:n%O(gi#8`3&LC:l:_4r.VuYs3j9j'JVBMbs_/PdOj_C,92Q=RcJa3bS4H'n!>DAOq,6'(OV?j5nEqh6]fVs"la\gGTBH>H.W#X@[25'OIY/I5CI6+?:f(B?Xh^),(g_2r?m..>N:k2\&3=)kPgC9[4mT5QBqFD[UjlV3L;S5KeRin3Wt\d*i#CGb8BudlUrIY!^'A^p7h2k/ns`6@V$a6pf%$o\TKCrD[1a-1HB9e,/Oa2l7_?()=S`"?sn!/tgq8^H`NLP]#6Wn60^6?-5&qnno^RQas]=4\7V9K*\Gf^r!:VqMVXoqO(LZmmq5uI8blqQI6?1j*>_X`%E>'*PQHSc>$&K.@(J4C62n'ClondQ,Aqdildb,Al;\PT0,=^7'ZCo'0l?n(B_s[AH83(7ZhHsW&u!i5EED"c_E5Xj0e@,p]g$lVtk&<H],uYdp!"$79q^T:pSp.at*(Ab%m6`5NGYN@*CY*gcJctgVC&(H]Z3NFEG?A<&e;/+bq!^N[80Lk8k)\j7)VL)Pl;BD"X\)jXIi@=2T%3A#Z>)2Wsqb;E?(ErPSo/4B(E`T9;>qHU"B'Gpn"u:"QO2G3S/HC?m?pM9S+?4@<Vi';;%fjWDtJ4H/C:bLQ=/KgV33>:;4MgSYeN9"&'+X&f20hoafug0'S41VoVnD%r'ne`jFM=hmX1R:.pFX;eHYL*BOW.&M8ndN2CO=;[L<ppGE1@eEjcA$Q<,AO+>D2=OYHf&3+2EanGIPn=-HJr8V>&cJFlP^R-fHIe2ae#!"#OAL**$$BfA)5H0+="Lk?q;]Tg=Q$nkl&B38,gf=b87K;J5tuR[qaE5$L`;-Ti3M99gqhXp\]Vk?(`Ijif2(P$2X9EOQU[2bIMfYq^WTj8@35*fc%h^*[E=F*@_G\8oKh%\QV)-3:XBU8[E/NJWgmp`]U`Oe5ufS']VXk:,59:DC5o?DL>c(0[T0_J33$Vp!?62uFciRCd`R/)3t8(hT2[%<RLJYY@"PW/*_pQ%CLC<.RH_bYbA6eN-8kXrgfs)2QZhV;8Ar/pZk'\VL<:"IDc-5h5>lmSHW)h>?Ks"!Klj0Wr%BVhnt76(eZX`3Kc6QDf]JiJDCXtR3M6N<2`ou#23L^p=6B="rMeOo,AXrUIictP/pso`=/s@4b)dPU:r@#Yn'CT`?E40#,kh`nPLoelrth&+KjYlV(lLhu].\L7jtul+eVo0#25I0kbR8Ys^faIA@.lfeKE,N~>endstream
|
||||
endobj
|
||||
18 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 550
|
||||
>>
|
||||
stream
|
||||
GasIda`c,u&A7<Zl59(u-F5AGYQVfNCBRnP#chgca<Mo9o()O6j9:YWXHr"u<E!2"(>u11Gg=mUdi@P;!^\*'6YN?Z?fOSHrQ(A5dV/f\4BFh#"Z8DU(KlErbQ\pf4Eo"2%IF>j5'Y/%F&"^%K_]=/^msN3CG7E#p%ADm0e6hH=u0Z*\<#P3o7O]klqUiL\U>,ol4CS$%]i8Y/rVU-f/S'Qmdh0"2%/\]bGM9/WGcLZm."(JLPr4>Mls+lSk;,C?W8tR29#P$neL`EiN<L%QC^+-:k/"B;[8/$2Oh!(%a=C"7263/$.XfAlN=8L9BH]8.?7o@o47G7VpD/&Qorm$7I'o]N.r[oq&$Ws)*/Y`6HO5Mr,+n%p-Dfs!]O`Kq5&>S0P*7CMS";sRtdrS>('aU<DF*QCu:-a#`ia/,L9(koGqPgce)0C7,o'QXBNlJm8-i:B%'[a;oEMb,>j@KiYta#*Z8Et3kmLMI4$b0W-bhZ,X^:he$mJen6W+/X%]Re`hi/RBRG2q0n\5/E9kUeC"0Xa^W]NqIKMBAg4]~>endstream
|
||||
endobj
|
||||
19 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1956
|
||||
>>
|
||||
stream
|
||||
Gb"/(968iG&AIa;m.=a7XW[ZI6-tsYSL1=?:ZB;b/o_@X$&c/]66U'Tm\.D/$W;B)nOo:T12/=S,SC7RKb*&n+9iP;XSIlsJDDYJ?85h-VC0.^&MW$rQW*(*6b)3kn:8$+\cE$K\Fp*fbUL>k6j>b]TVtYN00gpTPR8+D*9[4CLJl%3F,'ed-2!N'U6m<nr+`l;,j2+0&5UI,qY6n8b*j+X\[2jkCd0<VHa'>F]i8&EaunR6Bb$VNhL=74hp"hr;.<3'+6l`o8I\1[qlmE9[8U(><U1KNe)rbJMd.(k1ROcNoXWL0OtX<h^;*TIjR;CA38h8K`+@Ro4pYe8&V:jVHA>qrA4aMBeYe;70(j3FmYn^:@Vh8ZUl^["g`u2thj-:X-^4rqC.!@&$UL.5q7+E0qF"*9L)3N<AjuAe!VQm`k[hB-mF*$$2+2+cGF^`&T<dE!m01mD9B=I9M@=EL,F=%02b'B/:?"+7ZL;u1-a,(K)Z34%Q3\AQ)P_s9`a)t#f2\DWB$D@@$Xmn>YQ'XDb=6qGpt,'?-QWX,\l[r7A7;a.Rom.5n/tMbqk,&6g-`\/5\NA`6&orj$CXsfgJr$+g>"3o/9DI].Q=Ch/8Ica=S-d(':=Np?ui2'>bkAr1L1t`gV..Ic$&W#<AkD"'V33Sh>ao[D'4]u5^46,g_%9X;F99,3C6S)E+nN^6P:lI5Aj>(T?-9O49Q(&PW,>J2FT%7(NdO-@+hNgTPm+n_i7*aYLMbj*JDg+QNaB-I%Z+obOL3D_rZkC'bE2X7W6.X5Q]4jU>7-0bP;,_d(4a'p#SM-V5$*%T-5uc_A#O?&>pGl9bn[R6\p/1U.[Yu=`lNSF\4UtYF/:h"C\V-qW442+j"3q;e$0U2'aTtU1YDtF>cWI:,?Fl4:LClWde_%moIm8=rjdWG7J$D?k6lG\3*Dg)2UYG/rL!R:h,J1>,9]PpF[+/H8r(?9_L>)dCDa)Ygs\^Qf/??4@.`o$(PZL+,A76gqPO*cc:^3Su@"<e1D`0\p)KK/08diHOtILDU;g#APcQ:DWFT"\Q>CCEDJ3Z>T3dcek?.K/S:+Uo!!qp"3=^qQZrOrhk/,H9*4C(CeWtX'#p`nH86<9ZI<2If4)k7^ZikQDkVe;3p9a'R:"q+?#t0t$$rI#q8=;E'0qioCJ.=2:"_\?<tis"_^RL_@:cQ`Bn_4u`FOP,7dB7lptN_1<WdEqa>%+2q-1`VF%*49mOcM.a;0@>lI4[Jk13.GhBUM)[$gk-b#:S<l:_B=T/k[W"X*6Q3+G>SkK8?,>hRJW.gL[ACYFiC<n<^"@D$3171SFI/_eS>$br`e+9!oPA<f&+%!c<HK4+:&D@O/k,F0?.PIb(::F;Kd_CREA^$S]iY@X1tXHB7*A/Tq7M2p`-B:*-%:$'Gmg-"d)e0d!-+#J*"Yn!++p:QZ$DG$f(>0:BiJ#e^Agc^CMH_bGR9RW9I;^YC!+i,),SE"dBZ`./iT&$C]6)W;sRepqja<*<%KghGcR$40qe(IE]3lYH:;_Oc7fi&O)c*d/*l^i..5#2Dh.s_!FDQ"aX<$p(ebL2X*>n4!aT5Sp$\Vs1O34j<+/"FI)q+BJTgIadbOk#&65:-*4-@#@-$2t*G$ITiAL;d;\[!CMV8=o"3kIE,=pWrI2]AoJ#c;tk'5ZTkXZ"'MOWjd$DksU="2LIQnCq`"aqWZsc#V3!-Ma@?_D+#o;\."9Dq0X9'QotpfdX0u9[IT.Ra?9#jQ]]R$;<maP?XQ$YKNYd(i-,aTn0a:K^d@r8$c8dF?:H=QX5qodAW.pDQ54PR&)Y?KPgn5-N:`0;+F["BfH+D<HBFUg3&d_A#Ic9FZuDu/YWf*qUH(Y6MqQ,8a''GNFVnJ'?jQdPl'A-2`9rT>%o@6ERAKN*,LJ*Q&+B7^^NO_h,?Ll<\7)pdg?Nl"\@4^gAa-b6?J\SbK(CXbhmm+~>endstream
|
||||
endobj
|
||||
20 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 470
|
||||
>>
|
||||
stream
|
||||
Gas2E:QO3`&B4,6'^o)6;?r9CIlVDsY.>6\GH9((Q\ZJL(E>?T;Me1VP5ktZC2@%=SG/L3o,&Z(ma(\5pmbjl^gN"H!EQ"X:[g5;?5&Jk>,=Na'58dZ=aKki/<^'NaCI&93+9p3"m),Ab8b'B=j%S?a5S^[O>Xm9"`g](1H5/pN0LTS,&L$IYQ!b3*UI?JNp`Xd@7OGtK9&`tWMq)Xg1o[fN5#>eon[PZd^SgJ?*?!M)F%SOQq;"3s7kimD6(,:-,0/F?e=%l&)Bb:^QICoC0g=oFC\BN?1B;VKg\&hD:oV9nl)fp632LcHB)LKnS1uo:(%fsLsMfF*non3&UcA(*6Unq-TrmWPLG5.!Hg(XIZPpfTCcg:em:ALoU%CJB#gfI\%I:_:*k2@bn?eLFn((3A)$cajo8`bF+PlL^++m5^@sS'^+P<R74<TE"$UPjneOR)m408rr&sc^a^5iIV;h~>endstream
|
||||
endobj
|
||||
21 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1412
|
||||
>>
|
||||
stream
|
||||
Gat=*gN)%,&:N/3lsqG!Ei+Qtn-2'&DX0:(A8F2*m2*H$'L^=Q!=#@$\6n+s8DS)RmaRCGP/<eR]@]7S$3@l>s3*!Dha_YZR0$qRRK8C="JbF)0cKs0&=0OWMLgFC#VuZ1$f)oW@\=l>8<U6:!Y82Gdg.-m$0N02L3@9';m6mH*sNEMRKP(#J8cDS4F(K[P(YQ3*K`<QZBt8J5OR`H,jEu*c0gR!\:XE?X\lul">ik`(f`9&]"\%K?VDW4Hu=mp^KW5[Gme-%;E4]&HJUJie&j-;.A*CkFX;0W!i#u;I;lp/n0>qE)PP[krcd#q"8k"Ke;?-SN@7CN+PMGD$e)](8m'CsAI7=8&E.dPch\E>!#"Jkln^!6VhY"q)r=/cSrBq8#(r:8W3)I9M:Xg7[V;gA(B7GSg=bG[oo>Z=o@7Hbf4n$spT5U,X+CmhI]oiIk\XiGr"%j>GnW0n)q>n;dG?R$E7scKI#[/]#/1=F?fPAFSH)C_L(A5#L<=7\IF9Yh/8"4uf<mA9gq)-A*r*,nY8"8e:?0^=//ieZH[Z'."5:+)@(+F->8mGEMr%^j'pQ:DKi7E>BLI8\V8s1S(j]b]2uE0)h;l46<Ap+Uo/S@Ue[s5qF5,Ha6e[X&'"dt1K4r*F!2!Q@Ahn:uXIl-rll_L"e_h?50<<gZ(8S@X^;6JO]..A"T:0pX/^<P(b-IDDB?GjPKdc$#0$6]RNt.<1e77=segND]APku+\pQVJYi=$!\TAK8$R]oe7P.H"`k,@5':>.7A8kp8'8TQtFXa/AVD>$>6fSc=1[*)$]g_)sQ<)Kmo(Um9C;@G;-(`AU-#N8>&:q'dUO1KJP\td#3YaT"+s0\CNg&[$]>u^D\06Q*@Z$je2-ea2s'\_Or=<s`Yt48u_X,G1]Qr'geA@*Cl&#MEjKB?\mPpE3:L^fp@O]I.8(k1h])3$;*sRC=c9`4QL9i].;j=%&_iMtAM.*qqfP704mT.0+(\k\--Dl$QU<'%Hn!sJV\68<Bn9uQedTV3ZK9CpOKABM=iJgn%2bc?J!IB`'*6rQF+kSd]KNjla6b^+IdAaSB;@G54JFHs!Nn6;FEp'8djGnA$&ic[,^DpS,0BbS%cSL>:gj];eG`T9'.Me0N)98.815:RJ%)9DofBY?PShkW?l1RaRIA,Db][FkaosrkGh3"$/l:89!Id-nCO'EP$O>DTd9DN*eJ[IQ\;X>S*>?A>2<d8Yi;NFV$/NH^+#MHj(_c>?Dm;PbJ'^d8je><TV*Z8brQ"q!Wn\P%_`RX1<<)].k%K@:>qa^+lTlh2r7OiW1:dUdT%]-'7Xn'o29ZAVYf&V"'J]XWc;j]#?">/?H_Q*1cn[5-=+Y7Y9^k7;O0*Ont=I5+U8mPZQD?4K(?K:S=!Rpc4e`iuI&K(ER,O`Gq~>endstream
|
||||
Gat=*gN)%,&:N/3lsqG!Ei+Qtn-2'&DX0:(A8F2*m2*H$'L^=Q!=#@$\6n+s8DS)RmaRCGP/<eR]@]7S$3@l>s3*!Dha_YZR0$qRRK8C="JbF)0cKs0&=0OWMLgFC#VuZ1$f)oW@\=l>8<U6:!Y82Gdg.-m$0N02L3@9';m6mH*sNEMRKP(#J8cDS4F(K[P(YQ3*K`<QZBt8J5OR`H,jEu*c0gR!\:XE?X\lul">ik`(f`9&]"\%K?VDW4Hu=mp^KW5[Gme-%;E4]&HJUJie&j-;.A*CkFX;0W!i#u;I;lp/n0>qE)PP[krcd#q"8k"Ke;?-SN@7CN+PDAC$e)](8m'CsAI7=8&E.dPch\E>!#"Jkln^!6VhY"q)r=/cSrBq8#(r:8W3)I9M:Xg7[V;gA(B7GSg=bG[oo>Z=o@7Hbf4n$spT5U,X+CmhI]oiIk\XiGr"%j>GnW0n)q>n;dG?R$E7scKI#[/]#/1=F?fPAFSH)C_L(A5#L<=7\IF9Yh/8"4uf<mA9gq)-A*r*,nY8"8e:?0^=//ieZH[Z'."5:+)@(+F->8mGEMr%^j'pQ:DKi7E>BLI8\V8s1S(j]b]2uE0)h;l46<Ap+Uo/S@Ue[s5qF5,Ha6e[X&'"dt1K4r*F!2!Q@Ahn:uXIl-rll_L"e_h?50<<gZ(8S@X^;6JO]..A"T:0pX/^<P(b-IDDB?GjPKdc$#0$6]RNt.<1e77=segND]APku+\pQVJYi=$!\TAK8$R]oe7P.H"`k,@5':>.7A8kp8'8TQtFXa/AVD>$>6fSc=1[*)$]g_)sQ<)Kmo(Um9C;@G;-(`AU-#N8>&:q'dUO1KJP\td#3YaT"+s0\CNg&[$]>u^D\06Q*@Z$je2-ea2s'\_Or=<s`Yt48u_X,G1]Qr'geA@*Cl&#MEjKB?\mPpE3:L^fp@O]I.8(k1h])3$;*sRC=c9`4QL9i].;j=%&_iMtAM.*qqfP704mT.0+(\k\--Dl$QU<'%Hn!sJV\68<Bn9uQedTV3ZK9CpOKABM=iJgn%2bc?J!IB`'*6rQF+kSd]KNjla6b^+IdAaSB;@G54JFHs!Nn6;FEp'8djGnA$&ic[,^DpS,0BbS%cSL>:gj];eG`T9'.Me0N)98.815:RJ%)9DofBY?PShkW?l1RaRIA,Db][FkaosrkGh3"$/l:89!Id-nCO'EP$O>DTd9DN*eJ[IQ\;X>S*>?A>2<d8Yi;NFV$/NH^+#MHj(_c>?Dm;PbJ'^d8je><TV*Z8brQ"q!Wn\P%_`RX1<<)].k%K@:>qa^+lTlh2r7OiW1:dUdT%]-'7Y4C#39ZAVYf&V"'J]XWc;j]#?">/?H_Q*1cn[5-=+Y7Y9^k7;O0*Ont=I5+U8mPZQD?4K(?K:S=!Rpc4e`iuI&K(ER2MAmo~>endstream
|
||||
endobj
|
||||
xref
|
||||
0 18
|
||||
0 22
|
||||
0000000000 65535 f
|
||||
0000000061 00000 n
|
||||
0000000132 00000 n
|
||||
0000000239 00000 n
|
||||
0000000351 00000 n
|
||||
0000000456 00000 n
|
||||
0000000661 00000 n
|
||||
0000000428 00000 n
|
||||
0000000533 00000 n
|
||||
0000000738 00000 n
|
||||
0000000821 00000 n
|
||||
0000001026 00000 n
|
||||
0000001231 00000 n
|
||||
0000001437 00000 n
|
||||
0000001507 00000 n
|
||||
0000001802 00000 n
|
||||
0000001881 00000 n
|
||||
0000003652 00000 n
|
||||
0000005495 00000 n
|
||||
0000007316 00000 n
|
||||
0000001643 00000 n
|
||||
0000001849 00000 n
|
||||
0000001919 00000 n
|
||||
0000002214 00000 n
|
||||
0000002307 00000 n
|
||||
0000004458 00000 n
|
||||
0000006916 00000 n
|
||||
0000007557 00000 n
|
||||
0000009605 00000 n
|
||||
0000010166 00000 n
|
||||
trailer
|
||||
<<
|
||||
/ID
|
||||
[<de44488731e8e5bd8c7e304038250f1a><de44488731e8e5bd8c7e304038250f1a>]
|
||||
[<9ede7c3cd6e0a19e0d40b08da394d3dc><9ede7c3cd6e0a19e0d40b08da394d3dc>]
|
||||
% ReportLab generated PDF document -- digest (opensource)
|
||||
|
||||
/Info 12 0 R
|
||||
/Root 11 0 R
|
||||
/Size 18
|
||||
/Info 14 0 R
|
||||
/Root 13 0 R
|
||||
/Size 22
|
||||
>>
|
||||
startxref
|
||||
8820
|
||||
11670
|
||||
%%EOF
|
||||
|
||||
@@ -16,9 +16,10 @@
|
||||
5. [`opencode.json` — config & permissies](#5-opencodejson--config--permissies)
|
||||
6. [Plugins & `opencode-worktree`](#6-plugins--opencode-worktree)
|
||||
7. [De scroll-animatie stack (Next.js 16)](#7-de-scroll-animatie-stack)
|
||||
8. [Project setup van A tot Z](#8-project-setup-van-a-tot-z)
|
||||
9. [Workflow patterns](#9-workflow-patterns)
|
||||
10. [Bronnen](#10-bronnen)
|
||||
8. [Vercel & Preview Deployments](#8-vercel--preview-deployments)
|
||||
9. [Project setup van A tot Z](#9-project-setup-van-a-tot-z)
|
||||
10. [Workflow patterns](#10-workflow-patterns)
|
||||
11. [Bronnen](#11-bronnen)
|
||||
|
||||
---
|
||||
|
||||
@@ -479,7 +480,88 @@ export default function RootLayout({ children }: { children: React.ReactNode })
|
||||
|
||||
---
|
||||
|
||||
## 8. Project setup van A tot Z
|
||||
## 8. Vercel & Preview Deployments
|
||||
|
||||
Vercel maakt **automatisch een unieke URL** voor elke branch die je naar GitHub pusht. Voor scroll-storytelling is dit goud — animaties moet je *zien* om over te oordelen.
|
||||
|
||||
### Hoe het werkt
|
||||
|
||||
| Branch | Type deploy | URL pattern |
|
||||
|--------|-------------|-------------|
|
||||
| `main` | Production | `jouw-app.vercel.app` |
|
||||
| `feature-hero` | Preview | `jouw-app-git-feature-hero-jij.vercel.app` |
|
||||
| `feature-gallery` | Preview | `jouw-app-git-feature-gallery-jij.vercel.app` |
|
||||
| Pull request | Preview met PR-comment | Unieke URL per PR |
|
||||
|
||||
Iedere nieuwe push naar dezelfde branch overschrijft de bestaande preview deploy.
|
||||
|
||||
### Setup (eenmalig)
|
||||
|
||||
```bash
|
||||
# 1. Vercel CLI installeren
|
||||
npm i -g vercel
|
||||
|
||||
# 2. Inloggen
|
||||
vercel login
|
||||
|
||||
# 3. Koppel project (in repo root)
|
||||
vercel link
|
||||
|
||||
# 4. Eerste productie deploy
|
||||
vercel --prod
|
||||
```
|
||||
|
||||
Of via dashboard: vercel.com → New Project → Import van GitHub.
|
||||
|
||||
Vercel installeert een eigen GitHub App. Vanaf nu detecteert het automatisch elke push.
|
||||
|
||||
### Combinatie met worktrees
|
||||
|
||||
Je worktree-workflow + Vercel preview deployments past perfect samen:
|
||||
|
||||
```
|
||||
1 worktree = 1 branch = 1 preview URL
|
||||
```
|
||||
|
||||
Drie features parallel ontwikkelen?
|
||||
- `feature-hero` worktree → eigen preview URL
|
||||
- `feature-gallery` worktree → eigen preview URL
|
||||
- `feature-footer` worktree → eigen preview URL
|
||||
|
||||
Drie verschillende stakeholders kunnen tegelijk reviewen.
|
||||
|
||||
### Pull request flow
|
||||
|
||||
```
|
||||
1. Push feature-branch
|
||||
2. Vercel deploy (preview URL)
|
||||
3. Open PR op GitHub
|
||||
4. Vercel bot plakt preview URL in PR comment
|
||||
5. Reviewer klikt URL, ziet live versie, geeft feedback
|
||||
6. Merge naar main → automatische productie deploy
|
||||
```
|
||||
|
||||
Voor je eindopdracht: gebruik deze flow. Het scheelt enorm in feedback-rondes.
|
||||
|
||||
### Environment variables
|
||||
|
||||
Heeft je app secrets nodig (API keys etc.)?
|
||||
- Vercel dashboard → Project → Settings → Environment Variables
|
||||
- Voor scroll-animatie sites meestal niet nodig
|
||||
- Maar handig om te weten voor latere lessen
|
||||
|
||||
### Wat NIET commiten
|
||||
|
||||
```gitignore
|
||||
.env*.local
|
||||
.vercel
|
||||
```
|
||||
|
||||
`.vercel` folder bevat link-info — staat al standaard in `.gitignore` van Next.js starter.
|
||||
|
||||
---
|
||||
|
||||
## 9. Project setup van A tot Z
|
||||
|
||||
### Stap 1 — Next.js 16 project aanmaken
|
||||
|
||||
@@ -545,7 +627,7 @@ Plugin maakt worktree → open nieuwe Sessions tab op die folder → agent bouwt
|
||||
|
||||
---
|
||||
|
||||
## 9. Workflow patterns
|
||||
## 10. Workflow patterns
|
||||
|
||||
### Pattern 1 — Plan eerst, dan Build
|
||||
|
||||
@@ -573,7 +655,7 @@ Eén Session = orchestrator (in main). Worktrees met aparte Sessions = workers.
|
||||
|
||||
---
|
||||
|
||||
## 10. Bronnen
|
||||
## 11. Bronnen
|
||||
|
||||
### OpenCode officieel
|
||||
- Hoofdsite: https://opencode.ai
|
||||
@@ -611,6 +693,11 @@ Eén Session = orchestrator (in main). Worktrees met aparte Sessions = workers.
|
||||
- React README: https://github.com/darkroomengineering/lenis/blob/main/packages/react/README.md
|
||||
- Homepage: https://lenis.darkroom.engineering/
|
||||
|
||||
### Vercel
|
||||
- Preview Deployments: https://vercel.com/docs/deployments/preview-deployments
|
||||
- Git Integration: https://vercel.com/docs/git
|
||||
- Vercel CLI docs: https://vercel.com/docs/cli
|
||||
|
||||
### Combinaties / patterns
|
||||
- GSAP forum: Next 15/16 best practices: https://gsap.com/community/forums/topic/43831-what-are-the-best-practices-for-using-gsap-with-next-15-clientserver-components/
|
||||
- Tutorial: Next.js + Lenis + GSAP: https://devdreaming.com/blogs/nextjs-smooth-scrolling-with-lenis-gsap
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document (opensource)
|
||||
1 0 obj
|
||||
<<
|
||||
/F1 2 0 R /F2 3 0 R /F3 5 0 R /F4 8 0 R
|
||||
/F1 2 0 R /F2 3 0 R /F3 5 0 R /F4 8 0 R /F5 14 0 R
|
||||
>>
|
||||
endobj
|
||||
2 0 obj
|
||||
@@ -17,7 +17,7 @@ endobj
|
||||
endobj
|
||||
4 0 obj
|
||||
<<
|
||||
/Contents 20 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 19 0 R /Resources <<
|
||||
/Contents 24 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 23 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
@@ -32,7 +32,7 @@ endobj
|
||||
endobj
|
||||
6 0 obj
|
||||
<<
|
||||
/Contents 21 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 19 0 R /Resources <<
|
||||
/Contents 25 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 23 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
@@ -42,7 +42,7 @@ endobj
|
||||
endobj
|
||||
7 0 obj
|
||||
<<
|
||||
/Contents 22 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 19 0 R /Resources <<
|
||||
/Contents 26 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 23 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
@@ -57,7 +57,7 @@ endobj
|
||||
endobj
|
||||
9 0 obj
|
||||
<<
|
||||
/Contents 23 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 19 0 R /Resources <<
|
||||
/Contents 27 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 23 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
@@ -67,7 +67,7 @@ endobj
|
||||
endobj
|
||||
10 0 obj
|
||||
<<
|
||||
/Contents 24 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 19 0 R /Resources <<
|
||||
/Contents 28 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 23 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
@@ -77,7 +77,7 @@ endobj
|
||||
endobj
|
||||
11 0 obj
|
||||
<<
|
||||
/Contents 25 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 19 0 R /Resources <<
|
||||
/Contents 29 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 23 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
@@ -87,7 +87,7 @@ endobj
|
||||
endobj
|
||||
12 0 obj
|
||||
<<
|
||||
/Contents 26 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 19 0 R /Resources <<
|
||||
/Contents 30 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 23 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
@@ -97,7 +97,7 @@ endobj
|
||||
endobj
|
||||
13 0 obj
|
||||
<<
|
||||
/Contents 27 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 19 0 R /Resources <<
|
||||
/Contents 31 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 23 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
@@ -107,17 +107,12 @@ endobj
|
||||
endobj
|
||||
14 0 obj
|
||||
<<
|
||||
/Contents 28 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 19 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
/BaseFont /Helvetica-Oblique /Encoding /WinAnsiEncoding /Name /F5 /Subtype /Type1 /Type /Font
|
||||
>>
|
||||
endobj
|
||||
15 0 obj
|
||||
<<
|
||||
/Contents 29 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 19 0 R /Resources <<
|
||||
/Contents 32 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 23 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
@@ -127,7 +122,7 @@ endobj
|
||||
endobj
|
||||
16 0 obj
|
||||
<<
|
||||
/Contents 30 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 19 0 R /Resources <<
|
||||
/Contents 33 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 23 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
@@ -137,141 +132,209 @@ endobj
|
||||
endobj
|
||||
17 0 obj
|
||||
<<
|
||||
/PageMode /UseNone /Pages 19 0 R /Type /Catalog
|
||||
/Contents 34 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 23 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
18 0 obj
|
||||
<<
|
||||
/Author (NOVI Hogeschool Utrecht) /CreationDate (D:20260518122502+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260518122502+00'00') /Producer (ReportLab PDF Library - \(opensource\))
|
||||
/Subject (\(unspecified\)) /Title (Les 2 Lesstof) /Trapped /False
|
||||
/Contents 35 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 23 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
19 0 obj
|
||||
<<
|
||||
/Count 11 /Kids [ 4 0 R 6 0 R 7 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R
|
||||
16 0 R ] /Type /Pages
|
||||
/Contents 36 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 23 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
20 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1817
|
||||
/Contents 37 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 23 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
stream
|
||||
Gatm<>B?8n'Ro4HS<rZ>m7,J,K\2XIUt<h6g9bkSR@Uu%/3>+4EWF.Nrq\bZ$okC1f'>;J,GB2S`;.+l_LUX$<S(acE&N<3[gX+/d0,h4Hl.9^2^@eJ,@'fd%tFpS7DsaF_Yl_`oeHduOV*Wk-lN^5qVWknP_p/oZjT5:6EXbf_IGht8OMSA;(Rf$DV,=@3QKK1$)EM$gGepWQX3'jP9$N's.V;S_&?.P=5ah8JhV`&%$!N#qK<A;m8OnDNO8u)QFTb.9"<kCK[]PQe"TBk;NKeEIaH*[B0%Q8_rqk*03kTMJ)?S<$N4r"rs)g0#J:hKS^^t!ib=k#^j9l^j-HkG8D`DV"X@Fi#^d=JpY1mF2tQr$W&L,r_*LIKQ0qCco;*)4)bW`7G/0If1^KJTmH,Z++cE#d``Q3DC4ioMM:]@V]I$`B6T]4n$^Q#OdkH#`ei-rR(/*#dnaIt@VA'i&SR\LPWb)t5`o4.CJM'BiqUg'aW1nk.Yk+ereHTf%*;4R&@W,mmkDaZ$r\o#`/0Ft'MKQ^^_?1Ps<E9NLT:-$5D_Zug>f";:%9[u\N!*dehuZ5=OjYrK'l[0_TB81]A]G]AEkBVJ8gRT9&n7d)Ld[cD,gc.LKgFTtaCt?do/e5SCA:82:aES/juCZ7=^7gBMR:lPD&5j94\6V%(HUA<iq+%o$5!!F?#]8[lLntR0NhQ[iN:b7lm[7Z9b:h5].Pg?E"8;jkf-2jQq-&n]0Fl0mUm8CICUpIlC4pQITiMt_bgt[0+ac<7]59'Rm%9mBS8lP[V51@.%K]/j_keK:SSclS8C<B1UoKOR7T4540iM(aKM3(K!F28ai6AKl?kbqb$IVB^;&7<?"rIZ3D\PGq)Gr2ZZ/-5Y#G)Njlsb+#G%^17T,j#-.h]F^lHMOWn\i5Fph.0<XUh3$t%lMjKd3$"Z,XZ<(eB,0jO]]!/-55L\KZ3CQ0>Pb4s\(eBOeB`2%Hu&95quoj5)OV.p5j&8JnhE$;h:HL1nF7GIHi:B(4;%<Ii9!,dmk^&'^I>PC'nm:bT8EDhH?BX=SMdOO,WDW(C"aLl.H)fK+.&WILD]gEYIYY1(V5#4$6K_9=)]2@BR#"p4B%Vpr=XhYcbY/KVBW[bRE(>Fm-Y4:_'Cpe!LhM(W<S$n-heQ8*`d1m$V37H>=]uAERAK9lV##!cpY.I[5`&fE9P6V/m(3s?[b.[CGgL$=-4#pN@AdgJ.K$42B5N]uF<YUJXG`(bnC%bJlAWp;1gMm<A%'t1D@haO:,Y_1=%8:Suh5o"UcHKaD$-"0uL!:aFfd*-*9U@Hbq(+sW[oouTjESX.R%&f1i\W1.fGL/hk_Cu!S,@L>0[AJU!u7&p>'6h1.+i.PqDs)<-Qi#B&sEDEiFPGtr2N<%C=?1,[e&@Q$t?pV6PB3D[$CI(BC1;AD]NWD-<n0b?4D-2BBRs-?&Z7-ALe7NCL,0#V2t7KikOUNCL(R`CQ:Sq?7gJsp60U"'Mbnh<!U$H>[jgF^"mF6$U2Bk[q:.=jZu`6+XlH$-q@XjiM#JC/Vd2m]8HUlU>1UO56sG-"J<FN^.tCt>%r9h-Y\la5:ds3ILood&7BlM@/[D85-l1Za]^g16m/L!2V$qnUV^TsM2Y!i6'):<OKLoeqHGhh'uk^_3a.mJ$>lR8^U:)F2pY;@`kuJL)urk'L[_&'7g7o*kZ']P*Ca;N!O2:IQIgHSe[1:!47)QEQeZT7a&hnc5Z@h.mOKs$]lb^B6C3Tj4N&,-6>9*fB*YBQBM1/^e=P+Jrl$QGFp[aWcR=(IMd(sNj)b9grNMgR2TrP#ZbZGSrgWN;~>endstream
|
||||
endobj
|
||||
21 0 obj
|
||||
<<
|
||||
/PageMode /UseNone /Pages 23 0 R /Type /Catalog
|
||||
>>
|
||||
endobj
|
||||
22 0 obj
|
||||
<<
|
||||
/Author (NOVI Hogeschool Utrecht) /CreationDate (D:20260518125917+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260518125917+00'00') /Producer (ReportLab PDF Library - \(opensource\))
|
||||
/Subject (\(unspecified\)) /Title (Les 2 Lesstof) /Trapped /False
|
||||
>>
|
||||
endobj
|
||||
23 0 obj
|
||||
<<
|
||||
/Count 14 /Kids [ 4 0 R 6 0 R 7 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 15 0 R 16 0 R
|
||||
17 0 R 18 0 R 19 0 R 20 0 R ] /Type /Pages
|
||||
>>
|
||||
endobj
|
||||
24 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1862
|
||||
>>
|
||||
stream
|
||||
Gatm<gN&cS&:N^lqB[R<=c__I_ltf+G&HX"<8thg;RPU&N(,Q\RSa&ffmNbl!!6\"1==6b+V454b]KIpb^e].<S(acE&N<32[gOYd0,h4Hl0PLf-BaR8%@WR*rln1MMM@kK_p=Jl59jQOV*Wk-lN^5qVWknP_p/oe-eVZ6EXbfgg`T98OMSA;(Rf$DWhHP3Ch[b$)EM$l8S5^(LBL?'-2g1s.V64?k''cWpg=+5o@CN#"S,HHoZtslr4eCNO9XO/p!T=P]4Te#cHk+VaZ^`V&mN)IBPFgT4q4fK@)90Si^:Bqn=^T'`-e"rHGgQ%X9Qt4/o>g`7*5S^j9TVig-b68D_96"X@Fi#X"!8qs?u)RsBH"e=0,T_aQsQQ0q4^o;*)4>>%N"G/9Og1^KJtmI!Oi65Dk&NNoFJC7VbV'!M$ho,;9/*SOYkS[680(e0837_\\=G;097)\5`40Vu9Ell7fM<&p^m2\(V6$T';!e]5s&659r/LRgqp<9pX!j06"N(41C`G1L?im!iMh`W?c,VH=)I-TkcKQHH5EgnucXP;h\m\luqgi_?]M&f;"HKn9[<0gnXOW0b;"idR81o?rXV>i^(A"tGpH'ha@RVBZ^nk(5kAT,&<u^;>b^Y;X/5_HSU!CBI"ggFPFH9fe3U<'ue6)QrI:WQh2lKC2(H4'4IjJX-<<T=4mZ4BamSm1BOq.j2JN]9PQK$ag=NXFJhN"r#9*EuWpPW>P6j976L2>1!5H,0V^L,suOUFk_sue@I^K6L=s9_`ZE43&T1*Ta^V`!6Q'0h>r>Z]qG:o`PpjcL)O]o`o.?/Ni^?#UOU2H=Y0-EB=hR<G9CM!o;0aq"/,"7UojAm]!s9X]IqLY\$+\M0$.p70:2"$qtBUQioHXgBsA9"`s9Ggobq5Yj9f&X6+qFCaE&k_c'dP>>J.MJpe\d8Hl:I6Lf=eL5:6H)U=S6]n&_uWNXTKHSS@00UkC!dkACiNbm!oL[`tX`#;Qj*]t&)*]-UYJ((<brlRs:WqjeVe1fk1B,!gYOSMb$8hmCq/Q,1C9&PCD>VS:J.h?7`SlZ4c:'5b`.Qq0Ui7<.dXL'-cT,c^$aVOt(VNaoPugW3c[`6;XaZE5DiUWfQ:SQJl==5@?_=Q:<\cGrsu%Gs7VI]_'G0t@/Hi]4SZ@0gLlR]!W^]!..Rgs0<,]?YPcl6#dH-$+*&i8l.9CgNNRQ>6AV/2ekgM_lBjbc.91TDJFIZa^ahi]<YT]0^7]kd#"klZBbm5RPCWmSOjY?nt<;<9jr>2TK^dE'^C60t[X;Ok[_k8?A5T;jce^juT-2aR7Un>?$Vao`t))iNbF#72]a+cI)<5)M:bu56Mhd:*>/r8l8/clIlWSfs/8O+7@6trOp/-J4Xu_PrO4m7D<Nc<HknChPL^]HkD)Yo)36;jU7]g!^#:#f!8#YHs+-$n=%YJc&H"f[rQ%Q%W4>pHk&o"j8g`Z/^C![3[7j=oP*o3d;u];V.6BAMOgFZm$;XJ\W6K/X0Gjt"TR*m!Kr[.#YI8\A^Am[TcAJEL\mgt[N%c-h,X,T+Ng8Mj?`9l+o(,Ipc=9nBrU>#S>7Lf4tIj2ruf,T+i+$SJG!O_4L5u#adP>q6m/L!2V$Kg7YW_R$Q5)tK-1VX+C2P3['sdn.uaGHFgOp>(#"E:T=1i)2eT'1`l!mt*.j=@L[h,(8-L3kkZ0cq*JRn;!P%i6QWJM)jg9u147)TFTA20i.l[sTVu[IkIOFkYk6VV(:[q.dhktdW</N6uYC!P0Q'6tHQtQK&4o+1`\$p5j/p+Xk_gQ@Z'M;TH5<D+NL.`@(dae(Zjo0T^am9Z&0ofVOfl]]<!Ae7Sfal8/DN3=16A"qR$SNd8~>endstream
|
||||
endobj
|
||||
25 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1814
|
||||
>>
|
||||
stream
|
||||
Gb!;d>>s99'Roe[3;^(i9nXhMj?>.'D932bg*,k/m-l2=`JDT5C-,k5^OD71fJ-*nd+Mh387Gf3Nm@ImSXV)'peRC:X8r$:$A\(!:^5B/d#`o74bIrWn!cgLb`XX]&o^'+)3?[oIo,:!JLDjbb#/T%:C'`_#WX3$V]6Q!9+m[Y.:N50UHk!p:O!.udjXAKcMW42N8`2.M;gMnEW/ElmaOm$][75>Cd0<VT:d-uHDs2$Hl=:C9FEiTGlDgeV`'lAG&=@906J_MlP_An9AjJ=5,p)4eT(jAE\4\)(=L^9@!Vq(f5@^Ar%O($RY8dgq.Hu7#5DEQG2>ji,][H!Y^r1f#\bY6AfElHT9CDe'ASHMnb*%&Ka2$+`_^n2,40)/VEL4Vh[fNjN:G.k+e_KOL*KRi9]l"XGX=Ee:/jHBicAf:^$L9Xch%Qd!uWT@SSO;G?+R`6pO`<lQ-Aj/>%kS4Q/#($bnsQSH.Q@i.JM`fr8DumSVFa2i>ZqKG)Z9NEQS?U-o^&rDg%'Lp4^j/jr]Wdq/IWD-#?Y3a@J]tV!T2uk=]NLm7`*e^jHptN!=87pG?iL#OU\,\aeEFDqrl]h:3r2=KMWR%9U7a=*@SU''TjnSLKb`-R\?g`'3UbrrtZcqK-i`<@u@N^^"!JZ)D)CD$_!p;psoWn>Wd123[-(jMk6.64[f;IOe']:rjR1l:7$M*1?Z7ZqH[Di.JGJQ?XtJ[h3;c&6_DO)JY8sXd+EXX[OC&J<ttS-+O-)IY]3I(l6&B#^qtL0"&8n>R=7O+=<;q)MG9OGZ@dX2#?UE(+[>M!BC5"UO7El;LOph3#a:-2n(m*oI@(/U3?,g9'GWOfB;mr`U91;8X&4A-.2T6MS@ZF[4AHrZP>Pe[:L)[/8Ebg>'/+h+Eq'p9/As5[*9@rAaWQQ6bo>?ibkkG>25<i+]mRi1"n%Or*!(@*b!t^LoC1hQU\.=XAh.M#;BQbo3p"JogB3@Z;N:?n[_]0Z&Qrna'gF?\]bTl(G`q/[Y:ZF2'Y)P*$1`2@&[4p!NV!kGXa65$&[uLPY`*(+jJa^&5HcDW9k3M&&(^i?b&-SrA)3i>*]>(IXV$,8$1,3KsiB:LS=+OI'aEG2Z5MTn"A.qB^'VC$SrG?#A_%HBNVr<Y?cR.nCL%p8*%KiK#%$uDA49V^DOdo$KK'A21dVq<rW^jZ+!2,0l+(G93@RX,SB<\[^kpaPRu54A^11"Sr%sa$>[G0>[,DZ\7(GSpEBFQG`N%!Za%2Jl\T_5Y:rOXA\8uWZndQ>Fo*\G,m+>U")hRb2$Q_/dSf2Yof1DM>AW:b<\+!-n%XDFGG=5@,cARIB*XMbbo?iq,&:2\UstKm<gpqSg0%>h/[S]?7HWlo_c#?!W-m:/nb?;;YS9Rl*Af><U"j14dMC$;!oqES/>bga\!;8r#nboQ9PbGC=;kG$>qui$_j.N`Kg_S+J[I+ZTQ9Y/6,[0t>iXCEh2G*0rUrK%IK@Q1@WHa*=1>]]?-:o/-oC;+>%rXehGji%_k9M2`ZY6[1?21%oBtm0N(n$5!(<cHD'"DuZ/(P>3=iBAASiAgG[ZcB01,Lim=j>>'=U@-gQIs!Tq;``GkXnooj_Dq;Ep%P,H;\Mj_10Wcq\hkH"a6E2j-09P?nG>$0Qrqr`5E$?-BY>Hu"ALe[:n(>I-KKgS+q72B1WDld/Rn1<Qi[8%[QGT;I/tb5rB:o=d$u$h]8j25[#EDe;$Zh9cPnk5MIZ%Ogf?q8mcthbqeJ$)GCX(E:E`m:Bmf!qW5d^$:A2'esmd<mKD]H#[gbJuYf[X%h^RA(^t@Ig>D0OT~>endstream
|
||||
endobj
|
||||
22 0 obj
|
||||
26 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1690
|
||||
>>
|
||||
stream
|
||||
GauHK>BcPr&:WeDbfcTAp=+sF,UAt)HeE;ce'lL[:%oea(s<Bu"q'!sqs/HZ!+X'&[L\?<DP$[d)pL&m@R0J$RU`u2GW(?KQOF^dq$NK3!p4FZn%&23,<XmV80GXDI`R(n^AW\)m:@CB&qiAXTW',=#nWO;X[<O;oornm8cu-7*Wr,<WjDc#R1+1V:Z!N#k@e$1)$Jp'I`kMkH6ESuG"C)1&I]sflVrr1$UU7\'':,mHi*6r!aau(;oL\@T#/OZ2"=9Lf:4@9H80bM<Cp2[-+konPNKj(AG%17Itmc/CMSGR6pO'be04f1;ZR+c<cu,sW:-L(P"":>?p<M3FuTM@Gq,hNmo+q6G]:>Z+4isY+qOck4>)K&m%:*q=+jJF#LBntV$(3Vi56qJPDR!P).##AR"afIKd[a0kcoQuA9n=5K,=o<f;Zg[=18-kp-?!o&pn`H,/p%CA?4Lt1%7=!DS.<mm)MQor2!,Y-?fQdg[#bFN)@GLj$#08osN:D`:tH-KXkYX4qI.8#!XC25/,rCZ4PLY!.Y"<!d5=@;fu=-`CLX6aXWF!QNRu**U;UYr`u"5dD';\RPZdN4s`Q_qu3:E8*<W?LhUBpIfVP<-@s]=Y9n5-8N.0!q85C=&Z/9U:W+(@;$BZfT2pZ&8*U/NP&SG8_O(>$-+Q@aOSQTNr>_MjBLe(Kp]*8;[hZuKn[@5@.=/,oASmU[Pce%UBo3(1QUGe.^+JoS>Y\.7;6J@2p9m?A-.US6oX$)Ok+QiT=fj@`]>WK!EG[SiVbrUCD8+S_A8.3dppatgl<ROZWIZ@!S6:39*$n*\+b,p4Pus:H?"L;jHEGI-Y1m<id]?,VZIi,Tlis<eqiHBt$21)^'TKEIbf("f97lenW3d-U=m;MbX#8dN^VW!!W)]TY;f8fmV,Jq#-M+<j.Tr4Z3('[8puO"_F^q-l0&qbESmSPi3gu_ib.TYWEQ8:BZLLk"hDP`[D<lRM("(i:#[>8>$EY:GJEsP2-sLS`3a(KX7Z6S&A#roJ?H-PSf[8[gfr\.GX9hY\O&9q,cV.col%,r'0!FgF1U]0C\W:T\j6Ykd;jbSE!rr8[&IEZ0T@iMrUV0C\&t@C+e'j2]ZQ;UcCfDbcKU0<eQ\j#A.8soG[jf5=%AC5[SUHC$%*KRER1ulqrcujZ:\IXO_h%L@13up[p\Gd?-<op>@F5ac"2`Y`WDSg<$V?)::N,P_TS(q8ijds]jgo`HApK\kK?@Si03oL`h)]UGG\p+Ys5>_Fq(c*6P0r4RhreullR+iEIW>Ab"VaO:Csa>E\E_qS,hqE8^6T!-pt0@WJ"P>`Xe56sWRn1!)tCCn.bb0d1KGSJ=daS?4QQ$NFSM4#mAkDm@tU@iX3o^?b'M[T>^_B5PeduTdk,IHmSQ*LA,G)U<.dO-a24qFKFof?-0*:TL,_m7]15:A/<;9"jcO"l'FOT-dap_p2SB#s^m,K"DfDbE%dlZb_I=$"q&UQ[A(8Irg*5N&m8U#QMX_t^BA*^&,Ah\FE!)^R6g">UZK45VYl'969+g/1gieC#JsO<Z)fOMVr55?E6d&6DSZ/C"2hc[m+2HRAm(:+0F,S(ESsL9o]X$!'(,V4cbIgrC&IqE]DM[=PZCr?c9flDi\BIW]BAM;$iJdKKNN.7%";V1Tar0QcWYq\m/K2%gnF?ED7T'Z-rrLYKr6>~>endstream
|
||||
endobj
|
||||
23 0 obj
|
||||
27 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1726
|
||||
>>
|
||||
stream
|
||||
Gatm;bBDVu&Dcq.As6^`[:'%<5qneXDA"<[3I+b%]#Y)M+Ghuu$45C&^V0g>+\J&poX'oX'&[0[%WLSS"r';G?df)7C'#3T(bcG`3A<`%9]!Y08an;S>k1ub5XIoWKEFe4pBU@8-m=aA-9P_0BM;AV5U]*d8ec5L(WS(]g;*W#^js@d`_$5./<WUh=s"C!3LU^/Ott]rhr.KD?:&1X%UleQ</)$eF)'&?$:7l07kcCMo\KDjDr>cG0MT-[WZ6Js[7Q]#^2b:4jdYkbVTB`lB(3[mS%Mo>VR/S(j;'(<SZS$'+XBWg&T?ubCDu,]f>^k_<pL"(a@ZnNUuin>Bs1%t%VJHM#t#Wk;1*T&K+RcGKgH+Q7DL.r4q;XZ^gf^1:np%R3[m?s/GXN;l=JCOR)90+(iu^3W<D=G#R9*.CLm\MrBuMCqr^(Lpm,c'dQnHcXJ>mQTZD+,JF"$^DN$\RK4WsijZ`(R?bCF/n_BBtFmKs9(o)a7`^=.42cPq1-Ph`fKs5`iGOHdTdd'[7J#m!r'!VRR];>NpY02a(FdC?+IPH>Tnd;r*1L+I%AreZ5.QT9CgC\C@Lh5PhNqU?YKSKU&%<s-p<&:jlID:3@AKPXM^BY1Y%;li72u%i5b$WO)/<-'%YRe`uZV;AR'0V&L!,LL9CDrD+P5G;&Y"!rM5VTt-X_mO>a"kNeD8G0+#4O'P%;$G?40Qg)0*2e\%*^RmEs@QVXRMZ[dkc5&e%)aJP/+I[-(%hI)gph?S#+5JS?FVhgfIJbdopB1-@m)EVK_D!hUHbH/@0Be,L/&jaB<N4f:?F.EHYsVHC\7AQ[*Ja3e'H]P/'f'XKu+nXqXs/TdQ^\cUFPN=Te!6*l^A(gF*[ZgeXdOdiV[T78'"`;-fcq>h6qq"c-9hV1M$o"3g%-kQ^&['$AHQJoifajI;3"$!%kI;%iDYG'm&)/`-%n,<jP)$$D\7]LDUaFoq&rHCQE8iQG.JK.!Od4n=:P1f4r[:r9K;-$X?l[P)OJj6/4hj.NMce8JQ`=GGJe6cg@SQ>j0W#TrMsJ@-X^<&fsQVQmA*F_\7)6OU0B*I#(>^0LL*e%*_@B7Nc.N1tA`/-9at[M[lP&L05m"ieAG2fl0,8S"<OQ9!0KR8%gM8$F*["7_XL!?DTRSNFRV8FGuUHNR2:m)L[TGUSFn0)rC#HF'37C\6%5a.kn=Z'@Dcdm$]#7LVNE@VD+>g?(e4^/'D-Y)Pb4G4+01ToSF"ik$C_g"U-%BWi\)D/Ep^Fg8\[8f0jl_ml'2U(=V14QOGiH\5^/)H2]MGG?KF$nLo=ESB%",LAL9:ONt.9r^C/[9IqI7I(j1lU'Tlk9kdilVhY4T:bIOJc/9p@RNtZ>3AC0G1'I"_5`BImTM@e_:Pf8dAHiM38s_N?oDt=d*"fGOqq>e<pKig#&LF*[AbtKV@EH/RCd2k_d'N1L9Fm.ni=V3Wa.X%[%V?sF,@%++lhC"JbC&^hdRi]`C#S4NkZr.s3!`;N5;FXJ4/nRa%WaHGO1Lmc/D>>(cJ'm.Mo@:"[Wq7!rk-Cq#7J#XOZiQ+I$BjLRS=QY8MR`\e@l+g-4g9DV3.kiULTgN?X=+,5e`@O*X&EJYC2$;I*J9F_,PmSREKTa0jV5oF14?4i9"?mDXB/e&W(7]tAgiDK8+%4mDmLs&c9kHiNP<d2/'fEJX7%!&6Ii]-:on3A^IOPaPZ=?tHEWZ)6uAJ`%X4Z'"D~>endstream
|
||||
endobj
|
||||
24 0 obj
|
||||
28 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 2485
|
||||
>>
|
||||
stream
|
||||
Gau`T>BAQ-&q8H9fGRJ_:*RLS#_JjbEi*a6>WQTYA*Gg'IXt']U.pb$8QenOm;MFp]ZQA5SE\6XQ6h,*G-T]up-o6#5Ks+].tF7)E;#"ej"Qr)'1BY&"'j,@^Q/Yeg_2:Oa/;\JJHV#/K46Q-_3ICm4CI)GO8,:HiA9KjJI`ab4HFbaBUD"+0d*'`ShGWhba#p?L>F):F50q1=3BGUI3YA&`!_B;UdHm&Iq49a=ECF$X!7m]Y33Z<"fEG,rUq;hAIDdub:H<E5?4DpAHb#_HZ8M(E`&-B=m62ulN`tkq+@R81RR"7m((eb^g@@=!`+'Qr'0BX38e^XAb2AVQ!2,*!dDHBhl+thO5u:j*qbBM:_-9?:u<K&p#8&"$43aFG=asak)p>N#c5B[b]1C#,ma)f+3qC`RW-d$iIL`_)-5QmJEm7Q3o1@If5q)$'-R_8Nft'mVlYA=4%?U3,ok<=M?IiY+WKG/(k\$-UZKQ`b'[sIT=lu+Z.P>[DpU5C(o)c]N'"h:YN*7/[?qf`Ks4b*O08ZbdddnSs-CFX`+8tdG)-+:gWPYa.9T(s)O@sdCd*otpr7<E6mK&T3k<dPV:+QE7&21lL`!%CqL9=VppE1f=/NAU)dru7`$MKaE?Ab]']Khp1uq)KVo*7IA6B(5XPm*\doT\J6*72(V5b@Q`iR_4]nS46/,c;r7&d+/nB%7ll_KgGFIj4<6f@N.SsW"_4QljmWUI7N&c"n!Lf3/p=6lU)MB>J6TcFm67$hFS(&O7>r1PkUR]b8%W)_:i`T#s#[a?"V/AuVpo#\#GOQ(S.`sr?+,6a/&!HGtF(CM2?RO,i.[tFl27cI8d>oOt?%e=H;>9dMd>g`5@7Hg"op4kV&0aDZa[gPF$1tB/S/>dT%],QC\l-3$JL'Ka)@!H52L>YZ?/NVkQ'X:U#4<)0>j)\);R1UjYH+'?31]eh]^Wm*OFri<^15'e+Yl8MhC'JU?lrL(g*jVjIPpDp<k]B(.OR`d.mgtJmcQ.ZAa)'qk]]UM1i;2hs\?K\,^?R;+G6pqpi:`o$Q+2oKh`u)Z!lsO@r)7gLr)2c'D.6G#Qan_FD```&6;A[E4KN&3+H0bl`7&q^g-KNj6hD!ta33"(G[@/"FtOX=T,PRqWmd4Y<)@Kmj0rg@;)dZI:19*%bGq-)$0Cpe/TWja(3L731WZT20o=-GrP<!t1SanT-C=Q,)/([=6f4N5+7@Bb:?,#i?RcFS^_o(+76H@s3n'V7Zr5jGfDrK)eh%oO@.HEQpQHm_/$!M"Vi)p.U8;_16W/o;40H$([/9A:g^YD2;OH++_7HFQ'+\];Y@dQP$P0LoY<Sn'X]73W9OVRtD6?L`e3OI.SEL3C<o9$B"S7@'rZbM@%3rkEVT,Qp*G&>`8MX.WCiX8,7ZP[1:iD_@f`0j438u!sUGqfq/h%CV%6D8@PZTU(,j8j!?Ze;u?Ze03B1Dd3rl9K,*D'FnT>4HjI]gH'YrM0sWGMhL\K<1/X#l'"'DT5q6FFb+X>Kp'A-7_3Tn*C%l+;2FSEMeE@"n5UZ)r+Wr"tXZ`FcGR79#klq0W3Wr1MU:jr$2'*toH1&P[E%RpK@9$Z'HR'^hdu/(cm_+kNT&b4A#^1%5lsN`Y86([oC7[_OBD%K-&.(L`#L_/-)JoJ(a7_JGL*WA2'*&f'`['jRWg6(ngYk]DKc'\6V$X.QpB60!f&s3p"CB*.V_ZW\popk[HR\LUB9J83AN\B`Zm1<2*'k'@r?1+F9IMq]dQek_PY*HUS#!`+].q+ScL-;L=;djZbLH=5"U&E^^*mq[8XPO[W<?]8LEUW9`-?,EDlC#ba=mW[`R^d12#brC9`)GBrdKj%odr=poOV.5Ip$@@Xc2jPE#`M_s/NYkJ1=#>'W"P0D--bh[\cSKhA0DOSR1&QT)a!0s,'IE5rc<D-_=Vb(ni,V$=%B"Q]OT?$qla(2m>+=V3%F8H[Wgm%.GcqLLU<*$UV?+8/o5g;"Ust0&],i[3?iuc=7a=;:'Zuam<)5Mlm_UNea)8d7mP%Rur6k-5_cGQp"A[l4<lXY"^Sh2P$SJncToAXuE>C"Wm2-07e\D<b2@duhGd0LCU594_0!4qI"jo5./(7!H%:iX*;(Qg;Q5>pYLB+c>pkN(5E<%J2CYNG0aC,_EjolAq@4@1E`F^$GQ*`eSkrQP\Zhq4/NpL[i#R@>i)5?QEe?GZ[,%](@a!&mj-##?uOL?FaE!f<.LlZ8VT`1cgc4H<2q)P7G+&(I=Hkm@A^o%6m;I.LS,j7%riB7a%Ji@hqpUCNVeFN9Y`PMajXY+fIQQ!&MNF`J7Af*Ydf#$ZeD3EHQlTS7cT_jD]3fL=2Z5,;aLmgb6hHB(9dUDFh`<r+&10(laj?P:.&-t<s@)Usd]"#B(l`]$TX>')PC/6cA'2/Y.%72Rs-""2X.]'.d=N5QPT6*ssQ?TMVFM+jH*9&G+("XEea2``<h&OJ455VcJX;`o3r=-(@%0u~>endstream
|
||||
endobj
|
||||
25 0 obj
|
||||
29 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1620
|
||||
>>
|
||||
stream
|
||||
Gau`T95iQS&AIa;%#goWK4q[]?2Bj0:"ge.h+#X<(Rh(03M\'eXFm6<IsYgpjH>fTYtb:#OsP**o?I.u1SFMRr]Mh5?7o[VRK;HQ]E0F:K]QG5IMps2KPPJ$![9010aA=!pOI!!D*_m1@idG1e.?C@8BZgsYm$/8`\7Kp#$9+p#/k1iX9<"#dT/Tj(IW>)U*WZ?a8>e*Ib(J7'A[AXC:5bu6OMB^'i9T0PUWA8=hsBj?f1kh5EtK8:9VhrLHh4W9<T<0^q#"45L*WcoqlW4'th]WZFns-fs^\dQ8c$qk%'J@V:6bKdbMlmS(5:Ths7/PC/HXIok'\D*l7c/0(!X8n+8Hd&g=3i:n70%,g\2F81c\5&Qbe,)U@o0)a^O2UGHdL.S6#TI!hZ7RPY@apk;kj*)nnTOY0ZGYQ\fVJcbm:M@0(7o8)A/D"s+s+<%&O&KS7"nKKC70aBL(QD`,QjAX2agW2$S]@?A]X,65L@h^Xe$+Gj$@#->7Z9D`4'GnVi2t)6Vn?p;t$%Iaa3Dh?I[(V6%m]p\5Xtk#rQeODCdW0]B=i7_QbGo$()4/lPae:9qa`0D9-OXK;SH^=JGc/dBQ>+e6b8a.aV5#I]90Lf.-l>,^rg_/.o3HkdM6r%/8F1X'>-[hT0l_IO[gro?(*3_hVRZ>^\4BYU9:8`FF^4I.n6Lo;)j+#of?7V7*uBY!E!Tuo0C0?]4/Rq;JmDC5AEf5BURbp@r+A=L'FI_Z-*@DsPF%V-P)j9^!rR_$2jdt'Ee0A8fW9dFgD490^V>V]JkpeGM]jd!Q,>\U7gJWe`I_3pXimNX"Bkt\Y>+MQ#rZe5/'I35bOX324:f<*7I?<S^@a7=7>s-[cSjO+lbugK]Ii[uP/_U`pLeasYtgF$3!p_TKM$"!-aopEUOgQ!_mGRJW]uD5b`/6q/\#40;:$GU+OkAh]!&A^oJ7N'kTJ&+?p!"+#@0Fj_4'?K_$2I%g7X5tYER0ic6,Q_0Pu%3qf&_3Ud>V;3,`L3cG%-"SJB9"3LjA6c)s6;%%3`((2[(H)E<(m)OWCJDT;=i"[_8[fARn&HIpAP3A3;Fc.Qg,rmLmrT'G@aV0SDA[g-rAq45]I@D8GoS7u?\)J22q*T=$"MBlo]_96j_Db4To475#-XBKjQk*o@@cst<+]^KV[gR_3MIpqB"ZMRpHYN$,jf(IFiM/f>M>>4L=f`u-5;'g4U:^ks2Of[K?KAc)[pqnd-'kPc):M7urlc\ZU@1&o.B?D@_;5PVnk.3$dRrjeTae,VMNodpud&p;Z4eYk_ACS1?D\m\j'ZjSk0fS`FI[=%l/n0,"5j$HK.Pr)EjO[,JMo3a$6+NNGqWVnBrq?H8n-4P=ai4FGiB;lo8q[5e0NanpBFmqoJ.*6&5_]q5JC-[6'+[W'(%HqP5>4W'X14%hm,qK#97[cG*%#pXImV7pqZM;:>pf7;1`u,s;W<EJplP*8S"3.LEGFnk6_$\*k$;mDB_h84r%s*]?6;4YWbD3JXSk"2XnO^\JBs;1'.0Y"[0pqtGL[GYUN_8jeL#q(rKErcRm>lVB&8UGe,T52ZMNT<On7hT7DdkD^b0>iXP1+`2RqOn%mmNQ>[^R3a^/2&k[-:j#h/~>endstream
|
||||
endobj
|
||||
26 0 obj
|
||||
30 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 2009
|
||||
>>
|
||||
stream
|
||||
GauHK=c_;q&:W67(na.S,W./O'M0m6(296pS#2[u8RE5]'U_/9ZKOib2Z\g8p'u4lII;Zh]p;%qLNCd#'O:R_i\t$@r%`rA$OW-7E"%sE%`?ofI->rt#STmP+,Hh"047$Hci-3kE>%aE&HN7f-s%$-3H.ED;Lnn(qkU##;@VY6%L"&1.hr;`W%XCfg@#Wi(`pqY019c#IjL_miWV_Ld\3&i(RZEMXd!S1HCVLpQTbfod(=Poko=#uM9_ip0en(";]SSR\7A:MZh+1&/=U4]*l2c@X^e\BkTkWd_^cQfZ"J4SF"U!+\_Q9G>%bVNJ$[ph9<N3NaXd`aG1aGpPLb*aX5oMJ,+dsiFN$Om4!**EH!G:h$]"PR]PZ5/LIpL:>]nVbWi.nN;R#SH?dhD<Z\CD<;/05k9**HE4uBo8>1,5/e-ciq=Pq./`OE4&kr+LUk*3r,>:F$/BS<HF2emFkO.<1JKTuG"SfbVLTi8n4+KC<ZNlS(kR%he,ML7SKX28A@itk$T1Z,igpks`R5hIuEcA56u%,26jDrVT/5D/F@/9MSnOmZSGFH1@=O%"^-ga45ZFAG4:=l-MVcm!%,.i&IlIa^l:0!)qnMK9-h$aSW:'UcL,P&Jm/H@HGXH]_G^<llom#)dH'diZAm3J<bD3X$1F"eBJpOY+IA?ToeU]'S!;W/`ck:#.;a=[`_OBj$_&b.YR,*(EE\0\-!FH]N&:J7.3.h;WSEdoq%>RVGpm`rbC(ddGH%D7?m<Y,&b,;XP841W-,X#L-EKrQKH\\IPLOUK!#ZhKGm#6&RFekE*p[l<;*g1eaVm4GA)sIr+,,:A9X%G5*0(E'Gk3FKG4>_8c1"LM.SQfDs7u;67ZG[G2D[h;0!GpW1FjC3.EB$M0ZLWtWs_`VapFm(7M(9uBp@l9lT@g'roK]cYG@1,W,o.bdnjVt.,b;0mNn_8/P4'tZi-[QZ?;E)D.4k=LtpEGX0ZodmHrjL>1p.DgL1G!bJ'9h"-i>g(JE3[$g!_TJ=ZE4D,Yl=eaXLF^toCmQ&R,)FEJfj.H4:#n-H19c;Ioa=eX*F:miq+rkK?:E@7d&\@jp;&XSWDr&ggG3j)ZYVj*XU]5!CULq-VS1g=%m:1*?b!`%@6al`)$0e0I-u9ekZ6TWF.Fl!GW%Q4b5JF6T2'O7)[=ht\5.c*bE`sHdMVi@m)*V+k4pbo)[pQ++X=ZA+O`WqP[m_f#I<T&`h#\ra&p0'58?OI>-(gT;)Q,DkdAg%A$X]f]@SMQN^dC[DXn;6rGcQfNAdc-+A,>BO]nksSX`?^M.g*_S#W\KLZi@+I':q&Bb#'c*;k]U!"_lU-9NH>&=.Eu^/m4BdOF2<=cDQ(S*+AilO8Lic]:"mO)O<5@%)$X&8b>=)/k7b.^CX_A@kB'@##(glGg6c`77`!N#s=E6/X(tkSR(Q$r_i,ZNr)<m\lmcg5,H;dS0ge#T6X\%rb^P#V2ZoLi4K*@)#rqR2S$2!eb!F)SOpm+cWSRp/g2b;30)WF=useb"[^_!0Q@E#G`3f)M<><L?t)!@W5;0MXEh"EJ(LHZ32I%MG03!YB^.dO'3cAF>tI48bb&77LO$`'?&KEE&=(&S-Q@Q8:M,ubJtV=2KN3`rtX[q;U!#m@5old`SdgOC#JsY%e8Mh:4bnRY4r^KL],R'.m2qreko,Wh#o]cf*(h"'Gftm@rmWP$F[iq:Q[nefFd$W.%Rs+6f:nS^RAX-.VJ\AW*<`Go)tr1N(<ihs(>P'fqUbDUP$S^Wp)Q[@o=.RSutuITBapf7gC`ZH4V=*'9(;0FK7T+2<Aio3IUT4&#,D7JmRGS^AT:Jc*uL('JB#8<8QIM8'hZErZ=t,5D\=s"NC16`HMet(6H=iepgs7Ws*r^"D#6V6!Crf:pZ`fCeIC;0Ejj)\!To4`)-F>L15@br/2:`ok1e_38J1),]NTbL8b@-EBTt)83G^!p&bXdLq_jOIIF%NOV%=<b:l%nFV-d3Dm*f`(iT&um_fR[It$K5?i~>endstream
|
||||
endobj
|
||||
27 0 obj
|
||||
31 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1975
|
||||
>>
|
||||
stream
|
||||
Gb!;d>BA7Q'Roe[3%m@hd&<+TPBh^5"h$3`b*$XLqP)\YU;f-.VZD8F*r-R!Bj/Y5h4a)cQ>D!4IZYIDr3?):-3.t]E:f.kj"S.Njq%cp+5lP9qJ$W1ESkbefRhfX#85\O%uQd?K'O"%huNpGI3O%D*5RFBJH1_rI%U42.(F_D0d+2#IGk/<bk6XuZed#Mk=F;MY3,uClWa@A@4ra0b8mnAr$*&-_-3OY<8/R\\\8I#"@f;]r]PhIZ^E;\H'ZEg?54r[=)c9l&!N4IUb$XkW<eO7XbsGI;/(.Qdi4Z<2m`eaNoQ8;GPk25&#oaBGV,u_\j8KC1S%,L".7E5dLO=X/Y>3A`3uY+VRT^bQAp2&[c9@h,SkSqo@VC.(AA-3NYou[d=10gk'MJ8j*'=5<^2?M9JC(OqPaJ0$XDo#D:X*`1XJjLaC+`^>7BDpoh4!@d@NsDd5;^p%XKJV`P!)ja[9i]eLkE^NTH5X):tj9f-@$_Ne,.d-!W-A"%-<t\>$F!5HkN(NLI?F"+7;l%g_(3G;sSFJ8VuMJ#o:OM_'n/1=_5_1la((/fo$<:XIr=^-9=MlN>fp1^Ao:eM'$ah^WYF)X]7KM:00gpFZt7=Lah,DhA@<`;4ro<MSP#FjsC:FZ!*U$pt<+7?q/X_U*E3]IB(Mk]@$f>c&?q:mk,M*uZA$_6$C^\M*\4f*A`7S,m]<Ibe/,B8-(?XBR=hTp',-PjM?5:qTH`qg4`!Is2cVG>DujY^orp%^ZV=8bkLY@<-P^XFseXjK[*,UQ`*),7(VlTiH@u\i_s*\WW()g-I>!R?WJ'.TqGrZ[)a=oM#\W&nHu.B."QuqBc9SP.K?tN<!0FS]WusO&XeS=^5Mu7M\DW=t\iM7pEH*<oD/*5^0hDl8Z@F?r!=hi&.Y6j(f#bd8:UYPq3WK8nb&D[M[r*f=opA%=+(aqi32q;o045i0S8/RRP@E2GQj5@b9J::fttdLk"9JmTdsf^FSJR86KI0]`0`IK,</PUq1sHE5Ha7n(/6@Z*$?Y&7+!BCPkgGnkK)!RB60iWAlf82p70_N)P/*jH@<X<Y[_q.Xd%i9T?'96WD[;1dY%`ne95'nHe9dguJNncI>k!e;FYX?0t]o?N;)FMZj*-e0f>(Nn.\J5b?#2a.mFNT\Z>R=CI(G[51+d[1,TV4faOHGn%*eg2($',Pr!"JR>EDkBg/^a0*:8D_h-C3r\IYp*j)-jCCdA6l$/1RAbO)`rDfK4k?l>.kFh##tOLQ@KJ'NVO1]4]BsuMkaRip].V&Jdm'X5Z+FO2.l'esb=H:-9@t`;UIeQr15>$u@@BB5%p>8GR@-*hIoMgW_D/VfO^Ut0S)TH+W<,6B_:gg""qQpZ?WRRhTTWB]_VI)(:DiEQCrUHp!fl_,4*V)e%WJcAg1E%og"YA0kX)d#i)VfYN-sFQ4)5BnfBDuLi`]ch1l0"fh(GB*.E%^lU[8<2Q.C>;0SbSLOBR.51tn(GU#CFf3WU?XDS,:M"g'fK\/XJ$3F)@DnpqQgGFIFFnpOQnIr?"J[g8t4^$i0k`spHe[!7nNlD)2Kp*!r46'uI>1W=jCX0PV2UQE(\b<1ROP9u`]/<VaU$*$=hV)BjHVQ(T^d7<80J%r591#+1UFFp9-Nb[.AY4M,ZZh&1>MX(;mE@ohd9qcl^`[b%?%\(aW5d-d9m5"AnCGu'<c.X'/9)#46SgsI`TtY28Bc+hf55JE3D\>fn8qS`lG]Opf=:Voam;Mr.CcT#Aa+`iYhC1TS*U4/J7/'DholE$p6+RZF0_ENueO4%?e2G>nNk(SL(gi)FMY:ha_(qoB@a,p!F3uUCo=9=_o+]3!TN3YXlOYBc!GC3Rn)fEObnJGQG+.W:ZVorTg0B[G,r(]qdlBX7=MeA#>NO6Il&CR33l=Rrf\KruEe1&'\(5e<?eX>Z2.mkNCK/>qK)'\)`TnlHO0<P117M?8G9U95C^0uCrrIjK#,_~>endstream
|
||||
endobj
|
||||
28 0 obj
|
||||
32 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1636
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 2229
|
||||
>>
|
||||
stream
|
||||
Gb!#[gMYb*&:N/3%#dX&D.B"nO]7q+7@S1GU@"]3I9>Q!OVqA_DO$GmYirjj:m*7fbsi!NUh^p4392&#EXkTL"r+hR]-]PRDeiIG0OPmOkJ/@*Y^Q[-f>4A8E5f3nJI"V3`.:=nIA#F$"b_c3Ldqj^e\l,-dP,-(A:UGIekAGJiVZ9_J7qBZO['<_Pu0d@$_fW$W?hk9MQZddr/@Be&N-d[Rf*c5E!.*qj\^^WP_D/OFUjJi^AI4Rr*F8XPO-FIK0S,E-G($g3S3cup%!CWUePV`nA9X_=]sjpBRba/7p%uqF%u/#<$]mi+6(&?%<0*ue!B/[lMGgq(,82jQp5O_pGe$@4>eua#c]Tn2stl4E*nQc8h.ma*g6NMgTl?F6E)dT)`PY_8XNP+C'jWEP/,iAJJlHIPW)#j/dfF)$eCC/"SRQQ$1=FlJ71)M4/iIZI[27P,DusLT&ehrQSDWg''t3F;XW:0IWaYGdqMkq1T4dr0h)I.N!j$L.njWfLm^h>#j\tql@"8f3rFg'+7UX)+cB1*#PdcRntSo_BP`#u_<8=YkKoMHr&pq_AZ44uV\s6nT4I15Sa8bR&!&r^EJ<5>*oG\T/c"&/V,TUe"")W@EI3I2Z-t%p\4Sm,rn_Ftdj?,b_Y[W["0$F8#J;Vr,d%Ip8!?^aMGQn;e7/,]P/,g=<!m-"G>NXU+dD!lp>B@9%.Xh>"eiqjPG^<NdS34c3mQh$C;r-XOmCpiY%E'o<hTSh/hHWUJOUpEN2+T#d=Usr5=P5[P1mpX>o"9fAR&6]12JfrWMD/QCtYVdL""N:e'oG&j'Hj?FI3'OAc&UH,ZpsElPac3I7]>+4sE0sD3LfMlRBtf;^]a_>.\40oiYG:ai2MGmI+qmA2C&BVtn\YYHrT'4RY0-_H++tfHNn(1U$LKW%OqHI'nk7S`?2o1H*B\W);J>Fj_%?'K&'QmmA,H"7(33K;-L3/XeTC1>"K%R:ks!6=FAAb\WD"ZeE4hj$"seU(,Lcj&OeWZh,#9:eFCpTb0Lr(K-?NL*<%d"7$Q=P\+5C;@eCL#()8lMJmaUGRGP.kW%/rX61U8D1;uBN8U3r]\*:97utGCOttAR[`i1=OH./R;th&Tg'dIc0>kc!%](C.W8M!(.#7*Ze]YGf%j^$t*#EmJ@>e><OreSY6F$Fda5jB+l:_"lo(Q:7!B]&QkH_28XN`YBM&V+jnbK%r0/([(/LIj/;3tiek%P,RmWXT+IZ$hBi^p\c=MC$/fH&6dOeMUnjDcLj_ITI>kESUi',<D(]J;T`h&t%Z>MOMs%=_]tKoTP_SEkaP.qAA+5guYnIK/)M:`0]K;kY22Oi9!KGKf4>iYWHC[]Q"Ye]Pon:01"iS>Y*olAMF*'Hh?@On$LQ6=^SXi??^ZC6u52k*Q54TJ01dPUP#^Wj6c=ir;@kE==W2<"Y8@(d@_hpK?;<k5@V@gm$%[U$!(Z5Ai(h8$HrhXD_`Sq.4FI1*fJ*1Bhjgi@+aXlG8#4dC7*>GR&r%KDU+qU2sr=1ja_EbJGgirbUIbMG\eZH&".pRI5cG0&!TlK)2d'ea;W(V@PZB/K:=XR>#O=eVQET3p!%RHEK7#FAL%qA*^`g:C;.EY7!mE0tnF8`El:0&GupW-3P[~>endstream
|
||||
Gatm<>B?;m'Ro4HS=*-@D*"^g63r^A:+'mrDDR-=39a(B0IuUt#"4!L-iN^$![4e]lZFkpm".3`:HIZd3e@CO?e0^=-,;0HnFRFt`o67cQllIUhSRIBi+kTfjKXMkKSkKj#Ejc6#F]d35pV:\Geu_nR&F,;:lHff.,_$?a"2s7_o7gi!Jr+^PlRO\,aH$;*tl[U\eZQS1:aOUn0n_u+k!&OR):!a6ODm%jfO8h:_q"^S<^='p\saj]J43XAfG4eps_/^gN;q=o,+'k/>'CghKF2K0D(M^9O6q`qZ5!NE;%6HRb8KDOsCh5:&AjO$QSZBmEEOWoe]t;<=6jlbTF?jUE.GscBp'oL,?nHgq2E/M!Ld%+bbS)i"6hZrE'[$Qr#9^ClBkl,m]DTT8uC89G[CX]O6UOCW[/6.$m?[D22qhnGpR[$iuC?7DSCARiYIGLjC^W5UR6LhKY,WfhZ*9o.8MsI7i2M+nAE9g!o8-<taW#@hpdg$!3(@^sHtt,1T1Wc/M(BYfsSkBD,nT59]s-IDJLn&kq%!p-7jidfk+0ViAF5oeg>^?'oOgZ.`\:+_0b8ip5A7rqFuH?_Vtr;@<nA%=cXVHS3e>Z@d8NR54/Mb^7^JJmFZ-9+@LW]S.kG)UJZESMt8:cW@Z3XbJ<")gIotDg(;?n(LK+i%p7NTGMIrR%d\lVDmBn>nhRlL:ftB%b>7$)R;T0EpFLaU,9HfApaKSY9F3snQ2kD2`=E@!N$!@V&SVTTZ`TQF@C)Kf)G=TC:7IC7rqj+@97K84FQKGhA?\@7!u,+bO2$=cS?*qF4^0V-0fJ2OlVZ5c]9]HX\9r5M3,[H-I1`([o81[;7f0n$bK[!CNh=i5'Um>Bj`C=I[M"eoI75@;A2N=[DLQ(T7*atXSR7rYJD[U;EWrF_rc$2G+ENNR0N&t8"f)00M]T54(Xj^7mK,We&JJ4=dPT[nfFNhhjWBo19G>4eX%Z"bPd;hc#Kq,U!mo2kiG8mjp3<3iMblE+=B8Q>-@I73VTr:k1^-6`3c,2>c1#aRfi3O5b6?@J3)Z&5b5Ll@SI'1];!(TrjpSGJ^*$29]e%f7l^IObY3;l/+Ao2`D7/jf#VI$+(e]B7"3&R/J==H4@HX9fGfNmQ_]^-i5=l26uY<;5rmI<hA,ObkG#XX(pT/N/sU"C]`LMh?JrRRj[\.oCA>*MD5BpaI/W/^j%LJ6C,a>0fjPT(9q8Zl*_<VUG*$qS+1B]T&90hVhiAM':t-si6[k.CTn:;U&N.^AJKJA6`]AuZDp",paP]U=UN%&<K9/U]8'ob-A,Dg!WS(cB)5EBKg[_:W%WoSQoV^A9Q[;r.d#f4%fC:+3iJ]#W@]Pd4EhLMBcj.);i7GFcOB6;N(Qgo"GbZ".]jFHgbc^4DE`fJQ.(UXl1a5U_^&PuJ$*I3kW"C='E)IE_]fq/YUD?>9Oi.5);"#NX4#NE;+gCJ(#8P4rg1Cgo8Dn\jfBAoGbZ8A$E`hB;P"BM`0rDRFqg6PDLr_8N2k]<`jo%e[8E,_PF[&dLCdlCL6RiASe.&!\/CK!&\pl7';/kDKKZg2LENE=)9)4XY*K]_XpGK*PY;`hmMt\$,Q)CiYgWd9#S(0<]=9Rl3C`12dPqP7_[i.d2"Pt;)T=P%$A*&o[2GFEXC#up5?S5ifBRFWcBUrXR3[*Ar5KCJ93!"%kkH"9J#l%J"T&UF37_#fGX20h(dCO`+$:,aH1U/lL^M3.OBeM(GA%,"<<jg[<=4;-o40uB%)rZL19:Or!Zf@T6Mrtp!SSP<CkgK&hA(dQHXN52S('1g^LVsj)cd*:a8.d4;7\Km0j-<"ll`;>PAfCr\9)]=$%OojGO`Iaff,<jG]+#8dnWJn^e6:#a/&K?V#n3H5a-jaJrd4cIn46W]4*)PO9bd<-[La\EI?I;$Ts[$J(uWZcMr/DlDtW,=\mk/Jo^79NTXaMWM&F<f"6H5/$nRbV5Q$0]gu6XeNj6X=a4H]gI6P&9T,m`61ml"[X0\5BfKq+(<8D\GH"de>5=7)V]RYdi*1p7^4a5G>5lb]m;K#766:&-:<>F(uVq8N$\"77LK,Qr<:T8,6c&_gC%nmFD^9-nkN1MNt)!adQGH:RJs2B_:!WPf8cb!2]20QWC''\7@o^3fk)H\$=dIZZ)`,fBqL\VJVAp@H:H2:%$F1Q-GA!S[lDkA=oqGQgtb_A>i2ZIYMN[Y3f`("4%bBnR!+k\"5)\X\D&-~>endstream
|
||||
endobj
|
||||
29 0 obj
|
||||
33 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1324
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1044
|
||||
>>
|
||||
stream
|
||||
Gatm:gN)%,&:N_Cm%`Ul0EL%Gb]MQ`C+#Eh*Of)/(V`5r8qKJD$33YgIXRP!1UQ163/K5H%"dEsm+J]Mj:Kap\%fldi+rUq(EBr8f`HEB@[LH<q(2:\0Th5D:4PbgN,eqMO.&;;bFjS8ASEc;%Pl7qb[QASB2[k)"?i)_49LMG3"@pP/.FBQ"-Yi=AbssK&PIhNX^dZmC&[c#*hR9,jXffH&^9Z9_.X#@P8^/b0ai8i,r")hdFF"Jn)9g?U+99a<:J:>/63h[KZN)rqi`taC$2aS5B2aLfl"%fY@)MaZf>Z$;>`Bh/0T8!j'SM_!VG]j=`dNEePb!+GW:TP2f\[*-l"nl/<h]C_Mi7"9u;O=LlkQ)`[P^*Og&^_bZ058=;]%u1achK.V:e9`HW_T=Ao@?*"BF=]EpGhjg6X9@#,inDTr1>@A4lp&*#.tFI.Kf)%M57@@&/D^S%Oh@K>(G4JX^S]EhP(X/Y71Q2^EMd7u4KPf[5QUQY//$->U=SDm!nO_r52;-b%-BR]f-'L-Hpk=g7D^JP-[8[jc?h\s+5<9=0bjZV>OI8:*t(kW;^Ig6T.=u^7TCD$-?I2dQ(fA3%*U=3SJC-]/OrsC%]cZZlL+5qJd;%ep%OW<-E;[?WO(`K8A(s\3]!*&(QI0haa&r;a2.?VHC;BAF5[A6!=Sb<dNBa=s4?D3.flB['G%,N0\@"DG*<O$/c=0BeVVWQ7&E-`*\hY9hkBn,;#,YIcDhPAFDj;s-oYD28@EIJ]MS<>1LO:<@Ld8GG9mjq5L`@'1]I^UN2B\-'r@TZVF=Vb"KUNFc=SB1.B^i-$5&\@CNDH0uD)#U5]CTR1,RUg9)+;Of@2SI^eTN-?@i;0&PlmDPOZQ&RTrq?8)G/H3ai8.Ep;SA]Q-i7ma:I<&i(cE083XLbu_EELk7aOQ2"%?rV8_J4$@-M&p73GPU/?'#+LJJ,@i!m-<#4N&X;3eM(afjo)W_4a7Z"jiHJ`!]bnJb%G02HWDOo,I`]<)KuAT*Op19,+q0./G*_Op=^.uh.C6:!4Z<t9ck>M=I]^,6F442RP,R2nPQS8V'g6#Qa]ntbju?2o\E)7@9)QC]1oEo[\+j<dDXcK0tjSFj7LG,+<H`70hDe/'XXP,)ZsdtO3?9MV>YH)kW7]-cOGf%aco?NUnS@`Lb)<j(t$CW]rA24bedr3'<p+ae0cKjJFte#St;8dYQ#C9Qb7:*DE=Gr!j/bT#o:FLi'F-"@lFXN=iO\G.HHlqP5b6(8fdolT%?:E=P$e6DJ!.gEJrof?:,fJ%<di59fMo=LP>7JD"7DQ#)NVu/mN5Mb5ei;~>endstream
|
||||
Gatm99lo&K%)(t.i0_bG$qX;A[C:>5Cbh2KgPjn#oHHr4UKA:;M/bb/rBc\?@AiO*1U0'*"se`noKYYAVb=DkF:I_O#3Qd(KS8"[KOP:#fC3YnHjuImd\mFRBR(Ff?uaisTNVOG7%3@B`W@\MbSgZ-$>+-k6'@ip_E`gZ3"6!EUUdW:QkbalqN69K[$6eYYt43Ud!phs2Xk1QGN]<EpSVE+6gR>Q;+&=4LeIrX24WI7s*P!:DM`L^k?J%[I"ggULG)ODG^X`.\utYY@g6jkMhToeZ1NO]llKc:9s.'8V'Ls)hL>B<X?cpDC[W$Ee.9YV0,"nE''CKfdml[2iQObrOVY=JgZ=GoWsWcFOb5!o^BGX$0#(7t!h=mXTUoN35%^ke8]^T*:*D+$UGuk;mXHLhfFRq0K-boT"h0&tEe!m=5FT]GH4_pt$"VQWaF(uW`<,2I_kot*FK]YQj#?aTHOY8<o.5%MK>KWZ.:7a>oE:KNGq<l<:0>?4aGD-]HNcWToMFUQKIp5INiuiI\F?^fbiVL.q@2<uTrXeNpN^TT`bL?,-:nC,KJ[N:S6r5n?!h-<G:NptO?@cs:4,fR"fWVLp5o+j+i@%5IQTsqnGp7gI1(klU]p\R_K;r4HN_R9b\aX8TuQdR8MmUlneFId8PQR2h\]U]N"&T74CIERF]5`^LhDu'1TZXel4L*s;m<![o'gp0>1I)k/bXZ,%l[SYB$_Ngggg0;l"NJkDbYO)\;3#eQf6WJ=#41b)G!OkA<1.>-tBjA1t[[N=l),uVI>!h`YCF2Ms^87_-g1bMg6"n2H4VD9F,J`BHQ$r2N7ug9A2Wf6O^ei[?G/c#303rPU;&(3UdVrmm"#o?dmpcBErNuos5rt\5e-XcYg6d"H-D6L"%6%=#5fi.EA[JT!H508b)-*fR*;;enNksc6H8,PZ?C&euuh:SZ^Tae6VT?%`s0[nU-kB_A*s]Z8lfdVLt/7Zb0PQDEcZ9+X>gdN6ZnWj72S:S?QSmo-KqAHk^jqP]2944hIne(mW/,nE<.,0+b36Z2~>endstream
|
||||
endobj
|
||||
30 0 obj
|
||||
34 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1582
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1740
|
||||
>>
|
||||
stream
|
||||
Gb!;d8T3?E&AII3bbYhFdEj-b;,g=E9imuY2n/7=MaGgO&t*i13D'8L)c=$h-ZM$Y!Gi^@\BW5V)i%rhn]UjFRKL3j_"^%p`aLV+(6JkLTAeTOp`0nuGS7t\6:o(Z"%gDm"4\qV&.9[[ShcBa+YnlsP)Mr"9&R338QZ%ZL?Zm3!D*DgA-><+=@dFAI7OM(a>tNM&F&l\/,<^#?:r..3Y\q!+YfM'<hMLR@72N%P8GWf(`e&#oa*h9R<IlFg(JkcPuae?*-7^e_5I56k6b;V*8]rg?/!8&RsGSlB/"Van/BZ7,#2S]Dj105m=5<<]@p"aWaE)8@5;5,5j'*OFA5<qQ(SGK,ReC=[^]8p6&:D\@3d#to74lWII6mRJ1$#u8.PL+>g8-39*?@1`9TE5kkae&8]DZH>uupTdMP%!+`$7_!j"Ht$FkO<",<SP+/Bo#g2TsjmA259d0[?egqagM=2AV/IB*+OVB<QkI)e=P+EHQb"-X&@B$.YP>G.^%/A9.B*>jO8<mTBi!sZUu8.!&QTQ(:(U>p,FGZ.aT[(4N\6IO0W^[DbfFcdV#/-`mQm*V/R2MX3BE'1GTBqYm9bN$8F$&13WZ%>h3OFd8e20@>(odk?S(=qdtTSp6fDti!<@^e1BWYlh`,hXXmH;Mi4?O"09rG<_'2Mo2Vb.S";RSg"$Oqm!sHcB:c8\e=!CnQ)\Ns'T>8t4qoJ[N18@#N"q@I&2%$JY;dM:qNGFR\8FdGtP#kJqqYfWT%%h.=Q%4s/4Ef;"EK=u.aB[t%D+i%B,A4s.A-f;$]@/XNsLhA1HrG2uDGcNru2kWT^Ra5tEYQkf;Ynq8DQ+62KJ?=U[bp=hIu?2fmPq:G1eX)cS0\j'<BbjWmU;'MWuq0*sof!a5G[+./PI!W\6kIIn]g6b+b)tS57m]<u$I8t(C$>X%@R;Ab$D:$h`/dL?ijkM%Y%l1D^q!\9CikJQf*MHo_RDWe1!MN)W(n*PEUMib_qjp)jS2k&Zg%Y\3`_Cg[%b9or8,cc;WXK:)fs8]l#"$)rAW+O[&%V5YcRd:VI%dSf<,Y.<eLACq;o;>G>(>l:DnFc`<qbS3/,Y$t=&ZX+h(kf(Bl:H`V5Mp5mLK^^QS!RtnTMMMGJ)GtaM-t6eQ>s-SSm.U?/<>u['RqJTk!q%4'm8[\=X._Rp^:S`^m-<#Hfbk6]sRgJF;^HjB7c:QgKB1c9FLK2`<riG$\<5f*4l8XfEf/PdcDDojlO*4:d5!"#!Dk;e4J48ZAE3kY\?2(<qOSY*rih.G@uk$7.T.,-\q$j;m"cL8&V+T_aCNc(_?UP!h]$&KuJcpo\Qf50=U/I&6-T[%X;b&`YQN9kaR+QW(^Lr:^gtn3WWB"r<BM<72'>b#p8nI("4lpQj=PZ'KAO)soNEK2Wq^MXam`GK>0oNk3HZI-0;NCG>Trb8JI+TfFh\.Xb1X95iC9J"-1ZpOU?:]jUib140P'9O6>!WTlgfiNdL4C@<g<._<r2=/sWGS6@/8e')2O8_3M2)&t7KF@Z"*E+nDBlZDf7m9ZQ;pFADW'c(32]n4GO1gUHS\i`K_es9j),=:la%t-!i~>endstream
|
||||
Gb!ksD3*1)&H88.1"oZa!pfG^*9SRmW$j;3!\1X+W;)P!qKBb'ECdA?W8bR9S7J0A>VCkS!i0F0M*8*cO(Y%%:Dcq+Z0n2!!5G_qj=pbV@<E&R&dbW%nAd#'*tYT",XW\@;\='nZ#CN/S"PF2&Jao)JYj%,OT_X$d5ojoEF'?a#\jJ)G6.so;Dcf7Lh<@/lDs`4.*cgH8OB950BWlBBr>92e=[h^g&DWm8$HE#*`Y`t=Vujs.cC#YQZ&J3;nFbY]!XGO^Y7D;gD8Xd*l5a,bD/fU26C$!,BI:6>8=#OItQ95=P[t4:%5"?,Xh<cnXl9T38hJam<Och.bS?D!fTimr^<4sJ.s(>NMn0jcj5&>V837bL=&=;WLsNA8G]3MjT1DJV,C*">S!ST@?KPJ8U))9#%!#nVAXGO?52G03!>9o=?jeUE"JhDi1Z\H%,\A\-1sOQYEB*3e0;qn=)s\p[kZQ])Jk%d;sr8LroC?E:.JVZoK\Iob8;O11G7#jBP8FOc=QOa080"1rpi(c<ul``pt,;$&M-E.*oXl6m5pN?d$Su`_*q8=6YL<EJ'[XNC$PN`IRZ3W6Wpuh-^Nu_E;OdI<;=$Lj9tRa-1;b]Q)`I'8<_5>EONbem't.cmLk0*5C8E6gr/D(]XL3>a=-<eJX>JL`*M??;<5';,#m!(.aa#+C#EPG15.I*4/dd*'?]is"*bXnK=hCpJl#std503snsYSHFBm!D<0)C!UTVN4EAqD!;MGO741ES[#TAno1QF:.,SHXAr$e\-OObamc*Ba`/X*2\OCPI[8u8r?o4=,n#2[)-4AQtO3SLM)TYgn70&'/:B#-O/>1Z?Or'OMfZ&/7#2bfm/mS.D^9q<og=m^t2lSD`kl0diE%SsQ5\t5o^a8&PQca+SL4RY<1aAf$ARki5^1XGbkW%P"JGd`MTT&W\c)&m9Be4=PP3bf$[OrE*)c_1j747d^>K<csL/"8H=F4`>5R0W//K#G[aR%#jHB"<KUj2!6)_@=n6j%7grB%]&ITTkfj67mXK0;K^F%7<$bLK&p]'erJp)%D3f%1X"@(#SP7nIdm7d;c;WbatSg[JANJ1PBg*P4]_!gq!ZlPM2bHa0L5L6TPC;:>I@D[jU7mSq`.`*_N?_^k*NaTcD5$-\&d2]dC]:P,'XlSLLbY8:%'>(5grJ58JGh:g_t$MndDu*GeFX(Y7/M`oLpfUOfX'5$p89IYZCXEhX=mC27$/YEk!_c'g'I9k5u:Vflp]I'M;-%d0(t;#LNBS;EUe)67Ja15TS:U>!X<_as(tGn%F)`N/J&GkD\1K$eS?mi8NiiMSt0j"C3-\N3P)%1,t,*3,.?YP:7mMI^]6Mf%3Lc0<?,pN;XiUp`D32P&G9pL[<R^n&Et,8UWJ4'[Pr:n+Ij9"QW."jB9+UI6MmVup"1l6=+V6r`.[Ai?Ss,,Nk<R#A;sP%Hd?08t]kP50A_o8Za6Bm,D]Y],H#n)q7[0Xh-%&g\_b"`rkr'EApA+MdR3e)G,TUVbNsIK$+<F(Y&$H[hX1_CXh5[VmG1-smEGh4NY7nA`tWa^Jh_b2h0r`Jej^@dt+BS,_;'dUilpWU0,FFS&kG>ZUa.4A2s,fKHh<5/CiJ$JV$H[a$dUWjsk/p)BrXd;oCSO`iE`^C3eMHVNu8*uK*Jc4?kP9l8Je<+G1t\)BaP[*9#\9pOI/F5[^(cc$i[Ni8#!Q^C0H*Uq-,]@L$WT\c#SE_5p4_7sGmL$o~>endstream
|
||||
endobj
|
||||
35 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 414
|
||||
>>
|
||||
stream
|
||||
Gat$ra_nsL&A@6WhN9!:fT*H57b'ss6D[4e:L$^MO=DM4M>I0nQ<&[1C0P`s^Lc8@0Rn@LdkgKT?ljB.J`He`8Kq<r.1&0?&m?-O5bVat,X>5Z*`U1QJC:5<&TLoba;PA!3E[;(#`gcr)cR<&Bu!#(1Lh`PEi#o;K+CN]iM@hLXeT+ui6Sk*,1;**DmOqbbl?V=:qs**,fZ*H8C!U8XP]@h/s!/1:M#sSXf5QOC9SGi@'Q4Rl8ksb\&Y9@Ed;pj]:ui'npt?*C0g@&.7e`2A,_ao+lI.lP_Yk'Fa)&eSPSp9BB(fH+jsgRC-kWq1$No07?7A,a't.4:q%h'n#=Q?&neaBV_F1n\@!&D&"OXNee_C10(ZcWrXZ0\Wm(';SMcG3/<HHHbrt2lOYntaFV>nm"s:46#l~>endstream
|
||||
endobj
|
||||
36 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1326
|
||||
>>
|
||||
stream
|
||||
Gatm:gN)%,&:N_Cm%`Ul0EL%Gb]MQ`C+#Eh*Of)/(V`5r8qKJD$33YgIXRP!1UQ163/K5H%"c[YZY.T:a<@>iDh!ZS^tB,k00!nOZN]ic`A"oWo3(QC?m6=gS,eIX)!(g$*]8FTQU)'Pb0jPU*+YEkRDf_1cD8Z1#^S,HGQnplE?&q*=W1m-"t"VYb4Mat,F/[&TjsCaC&[c#*hR9,jXffH&^9Z9cH(V38I]"$R"[ZE&t!Ookj$'`p[HHZd1n0A.er3Z(+To>6=fTJrQ-#A[.@D:T=DqaCc>Jn="q7Afl7[@j?JY.9*jBas-Mq7!<"rs(7j&m[FDSc*f^*q9q4C,8js7I$RL_*0V_g!POK\=@Up1NE=/1#,ck2[HW;1D(5B(6m0VHM`JeH/)"/^\2FT=dd=P$:)cspX:3LmaKC=V?2?SJbNIh-oXK-m#?2iqt3&h8#-q+\r5uH%K!4%*!87Rm0&ZgRb;pD3jrTQbGSQ<BPPJ'(J,tj*>>R1Y+r'iH(D97#^.Lb>XcVOS%!i0[`S;FEO1m6cW$27;I>@Z9CarFfi]LQ2<mg4P+@h?N?mm,l"%nB?u(*W/C\&!91h8LXt:5kI<!RWt./!RD'gZb_cK]dVK8N]I1H>L>l+`Q+CTTXsQ$ti*O!35Vd^'%VV$,js*PfVc\.1[_V>#M-3:AYBb["JNuYL(0nFlo>;K=?XE=<NoN<NI&qQ>:Q/WB%=7S6j-p"5eq\mI*/l7*-LpS(-,Eg`u@KeIZ"DcL7K\;mIY[RR7?b[$73R4,XbknOYTpT.S/:g,7BK(fjX*1Q/9=;7^@Y:?;-\i&=QV#[MX7\#M&]%/s/j2-0R&9sV3eP6uc43PF$h+KN1VE;e)cG*Djcfo>iJrq?8)G/H3ai8.Ep;SA]Q-i7ma:I<&i(cE083XUi!_EELk7aOQ2"%?rV8_J4&@-M&p73GPU/?'#+LJJ,@i!m,,"*b%=W(PdOjB$FQeKpHWfJP&*^i.jnr'jT+bEEoi,l`GqDC\(`fc+G5N9XTub6^k#n0_hjQ,_V\TqEhi<t9dV>7/)4h[U0.42RP,R2nPQ-Jt,d#JC0ib*-`:kk[N>bbt\_[e0J?Pp:2q,r\-4E@tUgjeO!QBK)Ad9harQ:OTLB/4j#G4'e3[aQ+VHT-"g8oWF%\XYoiTpt%caYLkRk]Tm9pYVkOFn/>(4<;tM:6m6qqMhPJN>gp<SWCh12=DG&%'i#o.H$M0oNm&I/R<6"PO/9ZNN3FX]$/jg8i3OO%4UMO6/Ci3pX#tOOh,-Comp7`Ym74?)X(DbRLC?A*c(3bZ/1J0F$Ze[@;*X.YK)Ykgp$s7~>endstream
|
||||
endobj
|
||||
37 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1681
|
||||
>>
|
||||
stream
|
||||
Gb!Sm>B?8p&:WeDlq>[#SQ[-:6KIC,kq+]Z2Jq9AQb3kQ4#C&[!@R9Lmn25_j#FNiAB)[`(j+NgDf8e[K`Jm;rQ?(oRka^,.8U6/$.+Jr0Kt58A+,aS(hZDS!sqC-V@6!6g(..]:IE>4:K^:U":5Z3"Hf?FLf=AlF\+n5W"_p3Gn`fdK1&*m"HBtM)s]l.)+2seM)eA8Y@#F"XEZ2Q9Bf9sp4pS*#$liGW.kljBUm!pT#'9]cTdHJURA,cSf:VFpSLjZ]Ra#$&i_ih*Ro4/2_'Tll;EmZ5#]%<$0.X3IV!d6kXQ400oEG8s&dge!<;B)9NnGDfsK*DJf<#3Ji[0LibU&W&dT,)6%ZPT<T.8?M@j:8,7ZMj`MC37qFZep,R>SKk[S'^.j?h/CtKE)k")]A_]('R[A:C:'^);IFL4EhcKPI6F\!3cF^KG/7qk1)FG,7+MtDU-M@pl!ONYT`Mudt`SU8Y[m'ejcs5*U4F'_V[dQId]j/C4e0``!QL*@DYA<[Q46YNO`ldl.>mMMaQD)/=J5uVm\2$RtKUUANoR@fD11]OX?"JK,^7[D!n\:_KhH*6e5aVC?6RE;7dKi7$sb;BT\13BdQ;)aR[E5O3iW9:t$?sQr<XVZL?g5<T"DmtPYdWDI#n!#0@<[#kC@Z(.?i!&Ld$ZWaQr2l+S4rDe.7*Ugpn8msd\+12_WU/;'ot2=Ol:RBibHD"`HZ-_9oB4$Bo6LtVYDX%"l07'@LNfB1hoI?5I<gJD.QcrS.u*'ZOS6=.K_3XT8MRmZS9+kBTjtq1U$Hte#i/(_^`DpAfUK>p\)Ma(G`P2cTkHVBcLt[M2!9cQ,0e?Pc/2l:h-g-A)Z)/ea.[a`r84LoPVi%T/8&R=BDs:kO3@G_&7-kkN35isJH_ZLZdqPtc%XUBO2!Df\)YcThk5EW9%SdE0["Pr<Rj"ko(OaAiL8lnGp_uk@Q3iV!?/pQ=.jt._iUKJ<g37`c/=_X\H>%lVDPgOC"1/KR[@jTT4*LngS7tPZND9EI6Obg/AS0A,$/Och9MA3kIqn8rIp_Dkc''2.N>BH+lDRLiS(8>;m=j1HN2af[^_TN4#he@nFW`=qJNbN"84^`gk!o&Bd.a+L2!4'>nV.#]*rnre9&dGW_><Q=YFN$gU=9Q?rj9cMb9^R\lh+$HTJ[WKu?^4*elDtR\GPJd!:Tr=hFsPDDIbq<B_ne"hU:S>S+)UJr&cf11mC?QA/"32WL#\LAKJ3K34a^#Q1:Bai_6E%&;5M[P0kDe7G>Vi2rH7k)XrALaK`UMWn&7h@KJSG/7k=\)[!]1iT60jT<op:%[Yb],ZR-Qc%ePd3^\Q(3bL>(Bu]7(4e-aPWdn]fib;I;OG[jf\AY`a&OoXbjkB-HiPHN;SqsCBk88HQk+K"N'[.H:@4dY'p=5?4V>tdl?Ft%/RHRG7D'(19*.aXi[)V'?oaqZ&"K.&cJcN>TY2.6k8RMo)PeR5d$BX14N2)O>PH8_E,r$j*+>Uj6ZDMdJEEQlL70QeY%W^(U5?IUBrc`WKhXQrq%_P;<Qk/ZB!qQkP,idEYf?)7F0>tgI2`3PaVV63'HAa*g/RI?"/Lh21./f*'Ij@*7-X;:j"ZRqk./N>E*5R&PjC7IRb?KGWd;@!YJ#EUQ("WYcT\@X%9Jt+)ZX-BncGd/;j&_m#i8nqD>@H~>endstream
|
||||
endobj
|
||||
xref
|
||||
0 31
|
||||
0 38
|
||||
0000000000 65535 f
|
||||
0000000061 00000 n
|
||||
0000000122 00000 n
|
||||
0000000229 00000 n
|
||||
0000000341 00000 n
|
||||
0000000546 00000 n
|
||||
0000000651 00000 n
|
||||
0000000856 00000 n
|
||||
0000001061 00000 n
|
||||
0000001138 00000 n
|
||||
0000001343 00000 n
|
||||
0000001549 00000 n
|
||||
0000001755 00000 n
|
||||
0000001961 00000 n
|
||||
0000002167 00000 n
|
||||
0000002373 00000 n
|
||||
0000002579 00000 n
|
||||
0000002785 00000 n
|
||||
0000002855 00000 n
|
||||
0000003146 00000 n
|
||||
0000003277 00000 n
|
||||
0000005186 00000 n
|
||||
0000007092 00000 n
|
||||
0000008874 00000 n
|
||||
0000010692 00000 n
|
||||
0000013269 00000 n
|
||||
0000014981 00000 n
|
||||
0000017082 00000 n
|
||||
0000019149 00000 n
|
||||
0000020877 00000 n
|
||||
0000022293 00000 n
|
||||
0000000133 00000 n
|
||||
0000000240 00000 n
|
||||
0000000352 00000 n
|
||||
0000000557 00000 n
|
||||
0000000662 00000 n
|
||||
0000000867 00000 n
|
||||
0000001072 00000 n
|
||||
0000001149 00000 n
|
||||
0000001354 00000 n
|
||||
0000001560 00000 n
|
||||
0000001766 00000 n
|
||||
0000001972 00000 n
|
||||
0000002178 00000 n
|
||||
0000002294 00000 n
|
||||
0000002500 00000 n
|
||||
0000002706 00000 n
|
||||
0000002912 00000 n
|
||||
0000003118 00000 n
|
||||
0000003324 00000 n
|
||||
0000003530 00000 n
|
||||
0000003600 00000 n
|
||||
0000003891 00000 n
|
||||
0000004043 00000 n
|
||||
0000005997 00000 n
|
||||
0000007903 00000 n
|
||||
0000009685 00000 n
|
||||
0000011503 00000 n
|
||||
0000014080 00000 n
|
||||
0000015792 00000 n
|
||||
0000017893 00000 n
|
||||
0000019960 00000 n
|
||||
0000022281 00000 n
|
||||
0000023417 00000 n
|
||||
0000025249 00000 n
|
||||
0000025754 00000 n
|
||||
0000027172 00000 n
|
||||
trailer
|
||||
<<
|
||||
/ID
|
||||
[<a6147630729a0aa699ee753548d84bc4><a6147630729a0aa699ee753548d84bc4>]
|
||||
[<a03f72edec5402346255e0fe29756f08><a03f72edec5402346255e0fe29756f08>]
|
||||
% ReportLab generated PDF document -- digest (opensource)
|
||||
|
||||
/Info 18 0 R
|
||||
/Root 17 0 R
|
||||
/Size 31
|
||||
/Info 22 0 R
|
||||
/Root 21 0 R
|
||||
/Size 38
|
||||
>>
|
||||
startxref
|
||||
23967
|
||||
28945
|
||||
%%EOF
|
||||
|
||||
@@ -43,10 +43,10 @@
|
||||
| Welkom + Terugblik | 10 min |
|
||||
| **Theorie 1** — Waarom OpenCode + kern features | 20 min |
|
||||
| **Live Demo 1** — Desktop tour | 10 min |
|
||||
| **Theorie 2** — AGENTS.md + opencode.json + plugin + stack | 15 min |
|
||||
| **Live Demo 2** — Setup + worktree + bouw SmoothScroll | 15 min |
|
||||
| **Theorie 2** — AGENTS.md + config + plugin + stack + Vercel | 17 min |
|
||||
| **Live Demo 2** — Setup + worktree + bouw + Vercel preview | 20 min |
|
||||
| **Pauze** | 15 min |
|
||||
| Lesopdracht: bouw scroll-sectie | 35 min |
|
||||
| Lesopdracht: bouw scroll-sectie + preview | 28 min |
|
||||
| Huiswerk + Afsluiting | (eind) |
|
||||
|
||||
**Visual:** Timeline met YELLOW pauze-rij + PINK demo-rijen
|
||||
@@ -298,32 +298,66 @@ scroll storytelling. Kies GSAP voor timing-precisie + GPU-perf.
|
||||
|
||||
---
|
||||
|
||||
## Slide 13: LIVE DEMO 2 — Setup + Worktree + SmoothScroll
|
||||
### Wat je nu gaat zien (~15 min)
|
||||
## Slide 13: Vercel + Preview Deployments
|
||||
### Feature branches = automatische preview URLs
|
||||
|
||||
**Het idee:**
|
||||
Elke push naar GitHub → Vercel maakt automatisch een **unieke preview URL** voor die branch. Geen handmatige deploys, geen "stuur me een screenshot".
|
||||
|
||||
**Setup (eenmalig per project):**
|
||||
1. `npx vercel link` — koppelt repo aan Vercel project (of via dashboard)
|
||||
2. Git remote staat → Vercel installeert eigen GitHub App
|
||||
3. Klaar — elke `git push` triggert deploy
|
||||
|
||||
**Hoe het werkt:**
|
||||
| Branch | Wat krijgt Vercel? | URL |
|
||||
|--------|-------------------|-----|
|
||||
| `main` | Production deploy | `jouw-app.vercel.app` |
|
||||
| `feature-hero` | Preview deploy | `jouw-app-git-feature-hero-jij.vercel.app` |
|
||||
| `feature-gallery` | Preview deploy | `jouw-app-git-feature-gallery-jij.vercel.app` |
|
||||
|
||||
**Waarom dit goud is voor scroll-storytelling:**
|
||||
- Stuur preview URL naar designers/stakeholders per feature
|
||||
- Vergelijk verschillende secties side-by-side
|
||||
- Geen "het werkt op mijn machine"
|
||||
- Comment in PR direct met working URL
|
||||
|
||||
**Combinatie met onze worktrees:**
|
||||
- 1 worktree = 1 branch = 1 Vercel preview
|
||||
- 3 features parallel = 3 live previews
|
||||
|
||||
**Bronnen:** [20] [21]
|
||||
|
||||
---
|
||||
|
||||
## Slide 14: LIVE DEMO 2 — Setup + Worktree + Vercel preview
|
||||
### Wat je nu gaat zien (~20 min)
|
||||
|
||||
**Wat ik laat zien:**
|
||||
1. **AGENTS.md** invullen met onze projectregels
|
||||
2. **opencode.json** maken met permissions
|
||||
3. Tonen dat `rm -rf` geblokkeerd wordt
|
||||
4. **`ocx` + worktree plugin** installeren (was al klaar — kort tonen)
|
||||
4. **`ocx` + worktree plugin** verifiëren (was al klaar)
|
||||
5. Via prompt: **worktree feature-hero** aanmaken
|
||||
6. **+ New Session** → openen op worktree-folder
|
||||
7. In feature-hero: **SmoothScroll wrapper** laten bouwen
|
||||
8. Bewijs dat **AGENTS.md regels gevolgd worden** (useGSAP, geen Framer Motion, etc.)
|
||||
7. **SmoothScroll wrapper** laten bouwen — agent volgt AGENTS.md
|
||||
8. **`git push origin feature-hero`** vanuit worktree
|
||||
9. Open Vercel dashboard → toon **preview URL** verschijnt automatisch
|
||||
10. Open preview URL → scroll-animatie werkt live
|
||||
|
||||
**Visual:** Mockup Sessions sidebar + diff-viewer. PINK badge "LIVE DEMO".
|
||||
**Visual:** Mockup Sessions sidebar + Vercel preview URL. PINK badge "LIVE DEMO".
|
||||
|
||||
---
|
||||
|
||||
## Slide 14: Pauze
|
||||
## Slide 15: Pauze
|
||||
### Pauze!
|
||||
|
||||
**Visual:** "Pauze" groot, "15 minuten"
|
||||
|
||||
---
|
||||
|
||||
## Slide 15: Lesopdracht
|
||||
### Bouw een scroll-sectie — 35 minuten
|
||||
## Slide 16: Lesopdracht
|
||||
### Bouw een scroll-sectie + preview — 28 minuten
|
||||
|
||||
**Setup (al klaar in starter):**
|
||||
- Next.js 16 starter
|
||||
@@ -332,22 +366,27 @@ scroll storytelling. Kies GSAP voor timing-precisie + GPU-perf.
|
||||
- SmoothScroll wrapper bestaat al
|
||||
|
||||
**Jouw taak:**
|
||||
0. Fork starter naar **jouw** GitHub + `vercel link`
|
||||
1. `/init` runnen — check AGENTS.md
|
||||
2. Vraag agent: maak worktree voor jouw feature
|
||||
3. Open de worktree in nieuwe Sessions tab
|
||||
4. Plan-mode → review → Tab → Build
|
||||
5. Test op `npm run dev`
|
||||
6. Commit + push
|
||||
5. Test lokaal op `npm run dev`
|
||||
6. `git push origin <jouw-branch>` — Vercel deployt automatisch
|
||||
7. Open preview URL → animatie werkt live → plak in chat
|
||||
|
||||
> **Niet klaar in de les?** Geen probleem — je werkt thuis in dezelfde fork
|
||||
> verder. Het huiswerk bouwt voort op dit punt.
|
||||
|
||||
**Sectie keuze:** hero (SplitText) · features-grid (stagger) · testimonials (horizontaal) · gallery (parallax)
|
||||
|
||||
---
|
||||
|
||||
## Slide 16: Huiswerk
|
||||
### Bouw je eigen scroll-animatie site
|
||||
## Slide 17: Huiswerk
|
||||
### Bouw verder in je les-repo
|
||||
|
||||
**Voor volgende week:**
|
||||
Bouw een **kleine landing page** met 3-4 scroll secties.
|
||||
Doorbouwen in dezelfde fork als in de les — eerst sectie 1 afmaken (indien nog niet), dan 2-3 extra secties tot een **kleine landing page** met 3-4 scroll secties.
|
||||
|
||||
**Eisen:**
|
||||
- [ ] Eigen `AGENTS.md` (onze mag als basis)
|
||||
@@ -355,16 +394,16 @@ Bouw een **kleine landing page** met 3-4 scroll secties.
|
||||
- [ ] **2+ worktrees** gebruikt (Sessions sidebar)
|
||||
- [ ] **3 verschillende scroll-animaties**
|
||||
- [ ] Lenis smooth scroll
|
||||
- [ ] Deploy op Vercel
|
||||
- [ ] `WORKFLOW.md` reflectie (max 400 woorden)
|
||||
- [ ] **Vercel gekoppeld** — main = productie, branches = previews
|
||||
- [ ] `WORKFLOW.md` reflectie (max 400 woorden) met **screenshots van preview URLs per feature**
|
||||
|
||||
**Lever in:** GitHub URL + Vercel URL + screenshot van `git worktree list`
|
||||
**Lever in:** GitHub URL + Production URL + minstens **2 preview URLs** (per worktree-branch) + screenshot `git worktree list`
|
||||
|
||||
**Bonus:** Eigen sub-agent · MCP server (context7) · Lighthouse 90+
|
||||
|
||||
---
|
||||
|
||||
## Slide 17: Afsluiting
|
||||
## Slide 18: Afsluiting
|
||||
### Volgende les — Introductie Cursor
|
||||
|
||||
**Vandaag gedaan:**
|
||||
@@ -374,6 +413,7 @@ Bouw een **kleine landing page** met 3-4 scroll secties.
|
||||
- opencode-worktree plugin via ocx
|
||||
- Live: Next.js 16 + GSAP + Lenis scroll-site
|
||||
- Parallel agents via Sessions sidebar
|
||||
- Vercel preview deployments per branch
|
||||
|
||||
**Volgende keer — Cursor:**
|
||||
- De commerciele tegenhanger van OpenCode
|
||||
@@ -401,11 +441,12 @@ Bouw een **kleine landing page** met 3-4 scroll secties.
|
||||
| 10 | Worktree plugin | Theorie | [12] [13] |
|
||||
| 11 | Demo stack | Theorie | [14]–[18] |
|
||||
| 12 | Onze AGENTS.md | Theorie | [14] [15] [19] |
|
||||
| 13 | **LIVE DEMO 2** | Demo | — |
|
||||
| 14 | Pauze | Break | — |
|
||||
| 15 | Lesopdracht | Praktijk | alle |
|
||||
| 16 | Huiswerk | Praktijk | alle |
|
||||
| 17 | Afsluiting | Closing | — |
|
||||
| 13 | Vercel preview deployments | Theorie | [20] [21] |
|
||||
| 14 | **LIVE DEMO 2** | Demo | — |
|
||||
| 15 | Pauze | Break | — |
|
||||
| 16 | Lesopdracht | Praktijk | alle |
|
||||
| 17 | Huiswerk | Praktijk | alle |
|
||||
| 18 | Afsluiting | Closing | — |
|
||||
|
||||
---
|
||||
|
||||
@@ -439,3 +480,7 @@ Bouw een **kleine landing page** met 3-4 scroll secties.
|
||||
|
||||
**Lenis:**
|
||||
- [19] Lenis GitHub — https://github.com/darkroomengineering/lenis
|
||||
|
||||
**Vercel:**
|
||||
- [20] Vercel Preview Deployments — https://vercel.com/docs/deployments/preview-deployments
|
||||
- [21] Vercel + Git Integration — https://vercel.com/docs/git
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user