Tea Egg: raise a pet egg that slowly marinates while you code

Raise an egg soaking in tea broth inside Claude Code while you code. Every task you finish lets the flavor sink in a little more; in about a week it's done marinating.
🥚(•ᴗ•) Eggy #3 | Flavor ██████░░░░ 62% | Broth ███░░ | Smells of tea…
In Claude Code, run:
/plugin marketplace add helenlin0621/tea-egg
/plugin install tea-egg@tea-egg
Requires Claude Code 2.1.289 or later (update with claude update).
/plugin marketplace update tea-egg
/plugin update tea-egg@tea-egg
Then restart Claude Code.
| Command | What it does |
|---|---|
/egg | Open/close the panel |
/egg refill | Top up the broth |
/egg flip | Flip the egg |
/egg dex | Show the Eggdex |
/egg band | Hide/show the band above the prompt (stays that way until you run it again; the × on the band hides it too) |
/egg name <name> | Name the current egg |
/egg help | Help |
How your egg turns out depends on your coding habits. Collect them all!
The UI follows your system language: Chinese locales get Traditional Chinese, everything else gets English. To choose one yourself, set TEA_EGG_LANG to en or zh-TW before starting Claude Code:
| Shell | Command |
|---|---|
| macOS / Linux | TEA_EGG_LANG=en claude |
| Windows cmd | set TEA_EGG_LANG=en then claude |
| Windows PowerShell | $env:TEA_EGG_LANG = "en" then claude |
The language is picked when a session starts. Eggs you already have keep their names.
| Network | Runs programs | Reads/writes files | Calls AI | Sends data | Blocks or changes commands |
|---|---|---|---|---|---|
| No | No | No | No | No | No |
hooks/detect.ts.hooks/spoilers.ts.MIT. See LICENSE.
hooks/register.tsx 376 lines1import { update, type EngineInterface, type Register, type Timer } from 'claude-code'
2import { localTime, parseFakeDate, systemOffset, type ClockConfig, type LocalTime } from './clock'
3import { observe, OBSERVED_TOOLS } from './detect'
4import { dexTitle, onCommand, onObserved, onSessionOpen, onTick, onTurn } from './flow'
5import { BAND_STORE_KEY, FAKE_STORE_KEY, STORE_KEY } from './model'
6import { dexArt, eggArt, nextPreview, panelLines, PREVIEW_KEYS, PREVIEW_LABELS, previewArt, SVG_PX, type Art } from './panel'
7import { dexCaption, dexHeader } from './rules'
8import { decodeSpoilers } from './spoilers'
9import { mutate, type StoreIo } from './store'
10import { detectLang, setLang } from './i18n'
11import { T, fill } from './text'
12import { RASTER_ROWS, SIZE } from './pixels'
13import { bandSegments, fitSegments, strWidth } from './view'
14
15// state refs' plugin / key must be literals, written in this file (the one that uses $.state)
16const SAVE_REF = { plugin: 'tea-egg', key: 'save' } as const
17const SHOW_DEX_REF = { plugin: 'tea-egg', key: 'showDex' } as const
18const COUNTED_REF = { plugin: 'tea-egg', key: 'sessionCounted' } as const
19const PREVIEW_REF = { plugin: 'tea-egg', key: 'preview' } as const
20const BAND_REF = { plugin: 'tea-egg', key: 'bandHidden' } as const
21
22export const PANE = 'tea-egg'
23const TICK_MS = 60_000
24const rng = Math.random
25
26let clock: ClockConfig = { offsetMinutes: systemOffset, fake: null, loadedAt: 0 }
27export const localNow = (now: number): LocalTime => localTime(now, clock)
28// Sessions nobody is watching (claude -p, SDK scripts, schedules) don't raise the egg; becomes true once a surface attaches
29let interactive = false
30// Read and write a separate save while a fake date is in effect
31const storeKey = () => (clock.fake ? FAKE_STORE_KEY : STORE_KEY)
32
33// "Preview n/total: label" in the current language
34function previewText(template: string, key: string): string {
35 const n = PREVIEW_KEYS.indexOf(key as (typeof PREVIEW_KEYS)[number]) + 1
36 return fill(template, { n: String(n), total: String(PREVIEW_KEYS.length), label: PREVIEW_LABELS[key] ?? key })
37}
38
39function commandOf(e: { tool: string }): string {
40 const command = (e as { command?: unknown }).command
41 return typeof command === 'string' ? command : ''
42}
43
44// The loader doesn't follow $ across imports: every $.xxx call is written in this file
45const ioOf = ($: EngineInterface): StoreIo => ({
46 now: () => $.clock.now(),
47 read: () => $.store.get(storeKey()),
48 write: async save => {
49 await $.store.set(storeKey(), save)
50 await $.state.set(SAVE_REF, save)
51 },
52 toast: text => {
53 $.ui.toast(text)
54 },
55})
56
57// Toggle the side pane: shared by /egg and the band button; returns the state after toggling
58async function togglePane($: EngineInterface): Promise<boolean> {
59 if ((await $.ui.panes()).some(p => p.id === PANE)) {
60 await $.ui.close({ id: PANE })
61 return false
62 }
63 await $.ui.open({ id: PANE, title: T().title })
64 return true
65}
66
67// The band's hidden flag lives in the store (kept across sessions); state mirrors it so render can read it
68async function loadBand($: EngineInterface): Promise<void> {
69 try {
70 await $.state.set(BAND_REF, (await $.store.get(BAND_STORE_KEY)) === true)
71 } catch {
72 // Show the band when the flag can't be read
73 }
74}
75
76// Flip the band's hidden flag; returns whether it is hidden now
77async function toggleBand($: EngineInterface): Promise<boolean> {
78 const hidden = (await $.state.get(BAND_REF)).value !== true
79 await $.store.set(BAND_STORE_KEY, hidden)
80 await $.state.set(BAND_REF, hidden)
81 return hidden
82}
83
84// Activate only once per load; keep the timer handle and cancel it before registering again
85let tick: Timer | null = null
86
87// On desktop a new session's surface often attaches after the Mod loads, so the attach signal is missed:
88// if session.start sees no surface, poll every 3 seconds for up to 10 minutes and activate once one shows up
89const WATCH_MS = 3_000
90const WATCH_LIMIT = 200
91let watch: Timer | null = null
92
93async function hasSurface($: EngineInterface): Promise<boolean> {
94 try {
95 return (await $.session.surfaces()).length > 0
96 } catch {
97 return false
98 }
99}
100
101function watchForSurface($: EngineInterface): void {
102 watch?.cancel()
103 let tries = 0
104 watch = $.clock.every(WATCH_MS, () => {
105 void (async () => {
106 tries++
107 if (interactive || tries > WATCH_LIMIT) {
108 watch?.cancel()
109 watch = null
110 return
111 }
112 if (await hasSurface($)) {
113 watch?.cancel()
114 watch = null
115 await activate($)
116 }
117 })().catch(() => undefined)
118 })
119}
120
121async function activate($: EngineInterface): Promise<void> {
122 // Claim the slot synchronously so start and attach arriving together don't activate twice
123 if (interactive) return
124 interactive = true
125 try {
126 // Also decided here in case this load never saw session.start
127 setLang(detectLang(await $.env.get('TEA_EGG_LANG')))
128 const now = await $.clock.now()
129 clock = {
130 offsetMinutes: systemOffset,
131 fake: parseFakeDate(await $.env.get('TEA_EGG_FAKE_DATE')),
132 loadedAt: now,
133 }
134 const counted = (await $.state.get(COUNTED_REF)).value === true
135 await mutate(ioOf($), (s, at) => onSessionOpen(s, at, localNow(at), !counted))
136 if (!counted) await $.state.set(COUNTED_REF, true)
137 tick?.cancel()
138 tick = $.clock.every(TICK_MS, () => {
139 void mutate(ioOf($), (s, at) => onTick(s, at, localNow(at), rng)).catch(() => undefined)
140 })
141 } catch {
142 // An egg error must never affect the user
143 }
144}
145
146export const register: Register = on => {
147 on('session.start', async ($, e, next) => {
148 try {
149 // Pick the language first: the command description below is already localized.
150 // A failed env read must not stop /egg from being registered, so fall back to the locale.
151 let envLang: string | undefined
152 try {
153 envLang = await $.env.get('TEA_EGG_LANG')
154 } catch {
155 envLang = undefined
156 }
157 setLang(detectLang(envLang))
158 await $.command.register({ name: 'egg', description: T().commandDescription })
159 await loadBand($)
160 // Activate only if someone is watching: an interactive session, or a surface already attached (a desktop hot reload sends no new attach)
161 const seen = e.isInteractive === true || (await hasSurface($))
162 if (seen) await activate($)
163 else watchForSurface($)
164 } catch {
165 // An egg error must never affect the user
166 }
167 return next(e)
168 })
169
170 // Desktop (SDK host): no surface at session.start; it connects later
171 on('session.attach', async ($, e, next) => {
172 try {
173 await activate($)
174 } catch {
175 // Ignore silently
176 }
177 return next(e)
178 })
179
180 // If a surface is attached when the user submits a message, activate here even if earlier signals were missed (so this turn's flavor counts)
181 on('prompt.submit', async ($, e, next) => {
182 try {
183 if (!interactive && (await hasSurface($))) await activate($)
184 } catch {
185 // Ignore silently
186 }
187 return next(e)
188 })
189
190 on('turn.complete', async ($, e, next) => {
191 const ran = await next(e)
192 try {
193 if (interactive && e.agentId === undefined && e.reason !== 'error') {
194 await mutate(ioOf($), (s, at) => onTurn(s, at, localNow(at), rng))
195 }
196 } catch {
197 // Ignore silently
198 }
199 return ran
200 })
201
202 // Observe only: always call next(e) and return its result unchanged
203 on('tool.call', async ($, e, next) => {
204 const ran = await next(e)
205 try {
206 if (!interactive) return ran
207 const tool = String(e.tool)
208 const command = (OBSERVED_TOOLS as readonly string[]).includes(tool) ? commandOf(e) : ''
209 const obs = observe(tool, command, ran)
210 if (obs !== null) await mutate(ioOf($), (s, at) => onObserved(s, at, localNow(at), obs, rng))
211 } catch {
212 // Ignore silently
213 }
214 return ran
215 })
216
217 // The band above the prompt; always steps aside on errors or when a survey is showing
218 on('ui.render', { component: 'AbovePrompt' }, async ($, e, next) => {
219 try {
220 // The prompt being drawn means a surface is attached; state can't be written during render, so activate on the next tick
221 if (!interactive) $.clock.after(0, () => void activate($))
222 if (e.props.hasSurvey) return next(e)
223 if ((await $.state.get(BAND_REF)).value === true) return next(e)
224 const save = (await $.state.get(SAVE_REF)).value
225 if (!save) return next(e)
226 const now = await $.clock.now()
227 const columns = e.props.bodyColumns ?? e.viewport?.columns ?? 80
228 // Reserve room on the right for the panel and × buttons (1 space + label + 1 space + × + 1 column of margin)
229 const reserve = strWidth(T().buttons.panel) + 4
230 const segs = fitSegments(bandSegments(save, localNow(now), now), Math.max(10, columns - reserve))
231 const { Box, Text, Button } = $.ui.resolve(e)
232 const onPanel = async () => {
233 try {
234 await togglePane($)
235 } catch {
236 // A button error must never affect the user
237 }
238 }
239 const onHide = async () => {
240 try {
241 if (await toggleBand($)) $.ui.toast(T().bandHidden)
242 } catch {
243 // A button error must never affect the user
244 }
245 }
246 return (
247 // Stats on the left; the panel and × buttons pinned to the right edge
248 <Box justifyContent="space-between" width="100%">
249 <Box key="stats">
250 {segs.map((seg, i) => (
251 <Text key={String(i)} color={seg.color} dimColor={seg.dim}>{seg.text}</Text>
252 ))}
253 </Box>
254 <Box key="actions">
255 <Text key="gap"> </Text>
256 <Button key="panel" label={T().buttons.panel} plain dimColor onPress={onPanel} />
257 <Text key="gap2"> </Text>
258 <Button key="hide" label="×" plain dimColor onPress={onHide} />
259 </Box>
260 </Box>
261 )
262 } catch {
263 return next(e)
264 }
265 })
266
267 on('ui.render', { component: 'Pane', requestId: PANE }, async ($, e, next) => {
268 try {
269 const { Box, Text, Button } = $.ui.resolve(e)
270 const save = (await $.state.get(SAVE_REF)).value
271 const showDex = (await $.state.get(SHOW_DEX_REF)).value === true
272 const bandHidden = (await $.state.get(BAND_REF)).value === true
273 if (!save) return <Text dimColor>{T().waiting}</Text>
274 const now = await $.clock.now()
275 const t = localNow(now)
276 const columns = e.props.bodyColumns ?? e.viewport?.columns ?? SIZE
277 // Only terminal has Raster; other surfaces only have Svg
278 const draw = (art: Art | null, key: string) => {
279 if (art === null) return null
280 if (art.kind === 'raster' && e.surface === 'terminal') {
281 const { Raster } = $.ui.resolve(e)
282 return <Raster key={key} columns={SIZE} rows={RASTER_ROWS} cells={art.cells} />
283 }
284 if (art.kind === 'svg' && e.surface !== 'terminal') {
285 const { Svg } = $.ui.resolve(e)
286 return <Svg key={key} source={art.source} alt={T().eggAlt} width={SVG_PX} height={SVG_PX} />
287 }
288 return art.kind === 'ascii' ? (
289 <Box key={key} flexDirection="column">{art.lines.map((l, i) => <Text key={String(i)}>{l}</Text>)}</Box>
290 ) : null
291 }
292 const press = (args: string) => async () => {
293 try {
294 const step = await mutate(ioOf($), (s, at) => onCommand(s, at, localNow(at), args, rng))
295 if (step.reply) $.ui.toast(step.reply)
296 } catch {
297 // A button error must never affect the user
298 }
299 }
300 const slots = decodeSpoilers().dexSlots
301 const preview = (await $.state.get(PREVIEW_REF)).value ?? null
302 const art = preview !== null ? previewArt(preview, e.surface, columns) : eggArt(save, t, now, e.surface, columns)
303 return (
304 <Box flexDirection="column">
305 {preview !== null && (
306 <Text key="preview" dimColor>
307 {previewText(T().previewBanner, preview)}
308 </Text>
309 )}
310 {draw(art, 'egg')}
311 {panelLines(save, t, now).map((line, i) => <Text key={String(i)}>{line}</Text>)}
312 <Box>
313 <Button key="refill" label={T().buttons.refill} onPress={press('refill')} />
314 <Button key="flip" label={T().buttons.flip} onPress={press('flip')} />
315 <Button key="dex" label={T().buttons.dex} onPress={() => update($, SHOW_DEX_REF, v => !v)} />
316 <Button
317 key="band"
318 label={bandHidden ? T().buttons.showBand : T().buttons.hideBand}
319 onPress={async () => {
320 try {
321 await toggleBand($)
322 } catch {
323 // A button error must never affect the user
324 }
325 }}
326 />
327 </Box>
328 {showDex && <Text>{dexHeader(save, dexTitle(t))}</Text>}
329 {showDex && (
330 <Box flexWrap="wrap">
331 {slots.map(id => {
332 const cap = dexCaption(save, id)
333 const owned = (save.dex[id] ?? 0) > 0
334 return (
335 <Box key={`dex-${id}`} flexDirection="column" alignItems="center" marginRight={1}>
336 {draw(dexArt(id, owned, e.surface), `dex-art-${id}`)}
337 <Text key={`dex-name-${id}`} dimColor={!owned}>{cap.name}</Text>
338 <Text key={`dex-count-${id}`} dimColor>{cap.count}</Text>
339 </Box>
340 )
341 })}
342 </Box>
343 )}
344 </Box>
345 )
346 } catch {
347 return next(e)
348 }
349 })
350
351 on('command.run', { command: 'egg' }, async ($, e) => {
352 try {
353 // Someone typed /egg by hand, so someone is watching (on desktop the attach signal may come before the Mod loads and be missed)
354 if (!interactive && e.origin.kind !== 'plugin') await activate($)
355 if (!interactive) return { text: T().help }
356 const args = e.args.trim()
357 if (args === '') return { text: (await togglePane($)) ? T().paneOpened : T().paneClosed }
358 if (args === 'band') return { text: (await toggleBand($)) ? T().bandHidden : T().bandShown }
359 // Dev preview: only switches the displayed sprite; never reads or changes the save
360 if (args === 'preview' || args.startsWith('preview ')) {
361 const current = (await $.state.get(PREVIEW_REF)).value ?? null
362 const chosen = nextPreview(current, args.slice('preview'.length))
363 if (chosen === undefined) return { text: fill(T().previewUsage, { total: String(PREVIEW_KEYS.length) }) }
364 await $.state.set(PREVIEW_REF, chosen)
365 if (chosen === null) return { text: T().previewOff }
366 if (!(await $.ui.panes()).some(p => p.id === PANE)) await $.ui.open({ id: PANE, title: T().title })
367 return { text: previewText(T().previewReply, chosen) }
368 }
369 const step = await mutate(ioOf($), (s, at) => onCommand(s, at, localNow(at), args, rng))
370 return { text: step.reply ?? '' }
371 } catch {
372 return { text: T().error }
373 }
374 })
375}
376hooks/clock.ts 45 lines1import type { DateKey } from '../types'
2
3export type LocalTime = { date: DateKey; year: number; month: number; day: number; hour: number; minute: number }
4export type FakeDate = { wallMs: number; keepTimeOfDay: boolean }
5export type ClockConfig = { offsetMinutes: (nowMs: number) => number; fake: FakeDate | null; loadedAt: number }
6
7const DAY_MS = 86_400_000
8const pad = (n: number) => String(n).padStart(2, '0')
9
10// TEA_EGG_FAKE_DATE: 'YYYY-MM-DD' or 'YYYY-MM-DDTHH:mm' (for development and testing)
11export function parseFakeDate(raw: string | undefined): FakeDate | null {
12 const m = /^(\d{4})-(\d{2})-(\d{2})(?:T(\d{2}):(\d{2}))?$/.exec((raw ?? '').trim())
13 if (!m) return null
14 const [, y, mo, d, h, mi] = m
15 return {
16 wallMs: Date.UTC(Number(y), Number(mo) - 1, Number(d), Number(h ?? 0), Number(mi ?? 0)),
17 keepTimeOfDay: h === undefined,
18 }
19}
20
21// Always use the time zone of the Claude Code runtime itself (user's decision; not configurable)
22export function systemOffset(nowMs: number): number {
23 return -new Date(nowMs).getTimezoneOffset()
24}
25
26// "Wall time" is kept in the UTC fields so the runtime time zone doesn't convert it a second time
27export function localTime(nowMs: number, cfg: ClockConfig): LocalTime {
28 const realWall = nowMs + cfg.offsetMinutes(nowMs) * 60_000
29 let wall = realWall
30 if (cfg.fake) {
31 wall = cfg.fake.keepTimeOfDay
32 ? cfg.fake.wallMs + (((realWall % DAY_MS) + DAY_MS) % DAY_MS)
33 : cfg.fake.wallMs + (nowMs - cfg.loadedAt)
34 }
35 const d = new Date(wall)
36 const year = d.getUTCFullYear()
37 const month = d.getUTCMonth() + 1
38 const day = d.getUTCDate()
39 return { date: `${year}-${pad(month)}-${pad(day)}`, year, month, day, hour: d.getUTCHours(), minute: d.getUTCMinutes() }
40}
41
42export function daysBetween(a: DateKey, b: DateKey): number {
43 return Math.round((Date.parse(`${b}T00:00:00Z`) - Date.parse(`${a}T00:00:00Z`)) / DAY_MS)
44}
45hooks/detect.ts 269 lines1// Which of your commands this Mod looks at: only the text and success/failure of Bash / PowerShell commands,
2// used to tell "ran tests" and "ran a dangerous command". It only observes; it never blocks or modifies anything.
3// Only real execution counts: quoted strings, heredoc bodies and grep patterns are just "mentions" and don't count.
4
5export const OBSERVED_TOOLS = ['Bash', 'PowerShell'] as const
6
7// Test commands: the test runner must be the command word (first word) of a segment, or directly follow one of these launchers
8// - npm / pnpm / yarn [run] test (including test:unit and the like)
9// - npx jest, npx vitest
10// - vitest, jest, pytest, rspec, phpunit
11// - python -m pytest, python3 -m pytest, py -m pytest
12// - go / cargo / mvn / gradle / dotnet test
13// - gradlew test (including ./gradlew, .\gradlew, gradlew.bat)
14export const TEST_COMMANDS: readonly RegExp[] = [
15 /^(?:npm|pnpm|yarn)\s+(?:run\s+)?test\b/,
16 /^npx\s+(?:jest|vitest)\b/,
17 /^(?:vitest|jest|pytest|rspec|phpunit)(?=\s|$)/,
18 /^(?:python3?|py)\s+-m\s+pytest\b/,
19 /^(?:go|cargo|mvn|gradle|dotnet)\s+test\b/,
20 /^(?:\.(?:\/|\\))?gradlew(?:\.bat)?\s+test\b/,
21]
22
23export function isTestCommand(cmd: string): boolean {
24 return segments(cmd).some(words => {
25 const line = words.join(' ')
26 return TEST_COMMANDS.some(re => re.test(line))
27 })
28}
29
30// Strip heredoc bodies: from the line after <<WORD up to a line containing only WORD
31function withoutHeredocs(cmd: string): string {
32 const out: string[] = []
33 let end: string | null = null
34 for (const line of cmd.split('\n')) {
35 if (end !== null) {
36 if (line.trim() === end) end = null
37 continue
38 }
39 out.push(line)
40 const m = /<<-?\s*['"]?([A-Za-z_][A-Za-z0-9_]*)['"]?/.exec(line)
41 if (m) end = m[1]!
42 }
43 return out.join('\n')
44}
45
46// Strip quoted strings: merely "mentioning" a dangerous command (commit messages, grep patterns) doesn't count
47function unquoted(cmd: string): string {
48 return cmd.replace(/'[^']*'|"(?:\\.|[^"\\])*"/g, '""')
49}
50
51// Split on ; & | ( ) and newlines; drop a leading sudo and VAR=value
52function segments(cmd: string): string[][] {
53 return unquoted(withoutHeredocs(cmd))
54 .split(/[;&|()\n]+/)
55 .map(seg => seg.trim().split(/\s+/).filter(Boolean))
56 .map(words => {
57 let i = 0
58 while (i < words.length && (words[i] === 'sudo' || /^[A-Za-z_][A-Za-z0-9_]*=/.test(words[i]!))) i++
59 return words.slice(i)
60 })
61 .filter(words => words.length > 0)
62}
63
64function shortFlags(words: string[]): string {
65 return words.filter(w => /^-[A-Za-z]+$/.test(w)).map(w => w.slice(1)).join('')
66}
67
68// Split into segments of words like segments(), but keep what's inside quotes (rm targets are often quoted paths).
69// $(...) stays inside its word. Unquoted backslash escapes the next character, as in bash.
70function quotedSegments(cmd: string): string[][] {
71 const segs: string[][] = []
72 let words: string[] = []
73 let word: string | null = null
74 const endWord = () => { if (word !== null) words.push(word); word = null }
75 const endSeg = () => { endWord(); if (words.length > 0) segs.push(words); words = [] }
76 const text = withoutHeredocs(cmd)
77 for (let i = 0; i < text.length; i++) {
78 const ch = text[i]!
79 if (ch === "'") {
80 const end = text.indexOf("'", i + 1)
81 const stop = end === -1 ? text.length : end
82 word = (word ?? '') + text.slice(i + 1, stop)
83 i = stop
84 } else if (ch === '"') {
85 let j = i + 1
86 let s = ''
87 while (j < text.length && text[j] !== '"') {
88 if (text[j] === '\\' && j + 1 < text.length && '"\\$`'.includes(text[j + 1]!)) j++
89 s += text[j]
90 j++
91 }
92 word = (word ?? '') + s
93 i = j
94 } else if (ch === '$' && text[i + 1] === '(') {
95 let depth = 0
96 let j = i + 1
97 for (; j < text.length; j++) {
98 if (text[j] === '(') depth++
99 else if (text[j] === ')' && --depth === 0) break
100 }
101 word = (word ?? '') + text.slice(i, j + 1)
102 i = j
103 } else if (ch === '\\' && i + 1 < text.length) {
104 word = (word ?? '') + text[++i]
105 } else if (';&|()\n'.includes(ch)) {
106 endSeg()
107 } else if (/\s/.test(ch)) {
108 endWord()
109 } else {
110 word = (word ?? '') + ch
111 }
112 }
113 endSeg()
114 return segs
115}
116
117// rm -rf only counts when some target lies outside a temp location. Temp locations:
118// - a path segment named tmp / temp / scratchpad with something below it (the folder itself still counts)
119// - anything under node_modules / bin / obj / build / .superpowers (including the folder itself), unless it sits
120// under a system folder such as /usr or C:/Program Files
121// Paths are resolved with VAR=value / export / cd from earlier in the same command; $TEMP / $TMP / $TMPDIR and
122// $(mktemp ...) count as temp. Anything we can't resolve (unknown variables, ~, $(...) other than mktemp) counts.
123
124const TEMP_VARS: Record<string, string> = { TEMP: '/tmp', TMP: '/tmp', TMPDIR: '/tmp', LOCALAPPDATA: '/AppData/Local' }
125
126type Env = Map<string, string | null>
127
128function expand(word: string, env: Env): string | null {
129 if (/^\$\(\s*mktemp\b[^)]*\)$/.test(word)) return '/tmp/mktemp'
130 if (word.includes('$(') || word.includes('`') || word.startsWith('~')) return null
131 let unresolved = false
132 const out = word.replace(/\$\{([A-Za-z_][A-Za-z0-9_]*)\}|\$([A-Za-z_][A-Za-z0-9_]*)/g, (_, a: string | undefined, b: string | undefined) => {
133 const name = (a ?? b)!
134 const value = env.has(name) ? env.get(name)! : TEMP_VARS[name] ?? null
135 if (value === null) unresolved = true
136 return value ?? ''
137 })
138 return unresolved ? null : out
139}
140
141const isAbsolute = (p: string) => /^(?:\/|[A-Za-z]:)/.test(p)
142
143function resolvePath(word: string, env: Env, cwd: string | null): string | null {
144 const p = expand(word, env)
145 if (p === null) return null
146 const path = p.replace(/\\/g, '/')
147 if (isAbsolute(path)) return path
148 return cwd === null ? path : `${cwd}/${path}`
149}
150
151const OUTPUT_DIRS = new Set(['node_modules', 'bin', 'obj', 'build', '.superpowers'])
152const SYSTEM_ROOT = /^(?:usr|bin|sbin|etc|opt|lib|lib64|var|boot|system|library|windows|program files|program files \(x86\)|programdata)$/i
153
154// /usr/bin, C:/Program Files/App/bin and the like are system folders, not build output
155function underSystemRoot(path: string, parts: string[]): boolean {
156 if (!isAbsolute(path)) return false
157 const drive = /^[A-Za-z]:$/.test(parts[0]!) || (path.startsWith('/') && /^[A-Za-z]$/.test(parts[0]!))
158 const first = drive ? parts[1] : parts[0]
159 return first !== undefined && SYSTEM_ROOT.test(first)
160}
161
162function isTempPath(path: string): boolean {
163 const parts = path.split('/').filter(part => part !== '' && part !== '.')
164 if (parts.includes('..')) return false
165 if (parts.some(part => OUTPUT_DIRS.has(part)) && !underSystemRoot(path, parts)) return true
166 const i = parts.findIndex(part => /^(?:tmp|temp|scratchpad)$/i.test(part))
167 return i !== -1 && i < parts.length - 1
168}
169
170const isRedirect = (w: string) => /^\d*[<>]/.test(w)
171
172function unsafeRm(cmd: string): boolean {
173 const env: Env = new Map()
174 let cwd: string | null = null
175 for (const segment of quotedSegments(cmd)) {
176 let words = segment
177 if (words[0] === 'export') words = words.slice(1)
178 let i = 0
179 while (i < words.length && (words[i] === 'sudo' || /^[A-Za-z_][A-Za-z0-9_]*=/.test(words[i]!))) {
180 const m = /^([A-Za-z_][A-Za-z0-9_]*)=(.*)$/s.exec(words[i]!)
181 if (m) env.set(m[1]!, expand(m[2]!, env))
182 i++
183 }
184 words = words.slice(i).filter(w => !isRedirect(w))
185 const [head, ...args] = words
186 if (head === 'cd') {
187 const dest = args[0]
188 cwd = dest === undefined ? null : resolvePath(dest, env, cwd)
189 continue
190 }
191 if (head !== 'rm') continue
192 const flags = shortFlags(words)
193 const recursive = /[rR]/.test(flags) || words.includes('--recursive')
194 const force = flags.includes('f') || words.includes('--force')
195 if (!recursive || !force) continue
196 const targets = args.filter(w => !w.startsWith('-'))
197 if (targets.length === 0) continue
198 for (const t of targets) {
199 const path = resolvePath(t, env, cwd)
200 if (path === null || !isTempPath(path)) return true
201 }
202 }
203 return false
204}
205
206// Dangerous commands we watch for:
207// - rm -rf (recursive + forced delete), unless every target is in a temp location (see unsafeRm)
208// - git push --force / -f / --force-with-lease (force push)
209// - git reset --hard
210// - git clean -fd (not with -n / --dry-run)
211// - chmod -R 777
212// - SQL DROP TABLE / DROP DATABASE / TRUNCATE: only when the command word of some segment is an SQL client
213// (psql, mysql, mariadb, sqlite3, sqlcmd, duckdb, sqlplus, clickhouse-client, Invoke-Sqlcmd)
214
215const SQL_CLIENTS = new Set([
216 'psql', 'mysql', 'mariadb', 'sqlite3', 'sqlcmd', 'duckdb', 'sqlplus', 'clickhouse-client', 'invoke-sqlcmd',
217])
218
219const SQL: readonly [RegExp, string][] = [
220 [/\bDROP\s+TABLE\b/i, 'DROP TABLE'],
221 [/\bDROP\s+DATABASE\b/i, 'DROP DATABASE'],
222 [/\bTRUNCATE\s+TABLE\s+[A-Za-z_]/i, 'TRUNCATE'],
223 [/\bTRUNCATE\s+[A-Za-z_][A-Za-z0-9_]*\b/, 'TRUNCATE'],
224]
225
226const isSqlClient = (word: string) => SQL_CLIENTS.has(word.toLowerCase().replace(/\.exe$/, ''))
227
228export function dangerKeyword(cmd: string): string | null {
229 const segs = segments(cmd)
230 for (const words of segs) {
231 const [head, sub] = words
232 const flags = shortFlags(words)
233 if (head === 'rm') {
234 const recursive = /[rR]/.test(flags) || words.includes('--recursive')
235 const force = flags.includes('f') || words.includes('--force')
236 if (recursive && force && unsafeRm(cmd)) return 'rm -rf'
237 }
238 if (head === 'git' && sub === 'push') {
239 if (words.some(w => w === '--force' || w === '--force-with-lease' || w.startsWith('--force-with-lease=')) || flags.includes('f')) {
240 return 'git push --force'
241 }
242 }
243 if (head === 'git' && sub === 'reset' && words.includes('--hard')) return 'git reset --hard'
244 if (head === 'git' && sub === 'clean' && flags.includes('f') && flags.includes('d') && !flags.includes('n') && !words.includes('--dry-run')) return 'git clean -fd'
245 if (head === 'chmod' && (flags.includes('R') || words.includes('--recursive')) && words.some(w => w === '777' || w === '0777')) {
246 return 'chmod -R 777'
247 }
248 }
249 // SQL usually sits inside quotes or a heredoc, so when an SQL client is present we match against the raw text
250 if (segs.some(words => isSqlClient(words[0]!))) {
251 for (const [re, keyword] of SQL) if (re.test(cmd)) return keyword
252 }
253 return null
254}
255
256export type Observation = { failed: boolean; test: 'pass' | 'fail' | null; danger: string | null }
257
258export function observe(tool: string, command: string, ran: { deny?: string; isError?: boolean }): Observation | null {
259 if (ran.deny !== undefined) return null
260 const failed = ran.isError === true
261 const isShell = (OBSERVED_TOOLS as readonly string[]).includes(tool)
262 const cmd = typeof command === 'string' ? command : ''
263 const test = isShell && isTestCommand(cmd) ? (failed ? 'fail' : 'pass') : null
264 // Dangerous commands only count when they actually ran successfully (denied or failed calls don't)
265 const danger = isShell && !failed ? dangerKeyword(cmd) : null
266 if (!failed && test === null && danger === null) return null
267 return { failed, test, danger }
268}
269hooks/flow.ts 88 lines1import type { Save } from '../types'
2import type { LocalTime } from './clock'
3import { isSpecialDay, specialEvent, specialMakeup, specialSeen, specialTurn } from './datemode'
4import type { Observation } from './detect'
5import { addActiveDay, flip, pauseClocks, refill, testObserved, tick, toolFailed, turnDone, type Step } from './engine'
6import { crack, dexText, settle } from './rules'
7import { decodeSpoilers } from './spoilers'
8import { T, fill } from './text'
9
10const NAME_MAX = 12
11
12// Run the second step on the first step's result: keep the second step's save and accumulate the effects
13function then(first: Step, second: (s: Save) => Step): Step {
14 const next = second(first.save)
15 return { save: next.save, effects: [...first.effects, ...next.effects], reply: next.reply ?? first.reply }
16}
17
18export function dexTitle(t: LocalTime): string {
19 return isSpecialDay(t) ? decodeSpoilers().dateMode.dexTitle : T().dexTitle
20}
21
22export function onSessionOpen(prev: Save, now: number, t: LocalTime, isNewSession: boolean): Step {
23 const save = structuredClone(prev)
24 const step: Step = { save, effects: [] }
25 if (!save.welcomed) {
26 save.welcomed = true
27 step.effects.push({ kind: 'toast', text: T().welcome })
28 }
29 save.clocks.lastTickAt = now // no catching up on time while closed
30 save.clocks.bucketStart = now
31 save.clocks.bucketActive = false
32 const made = then(step, s => specialMakeup(s, t))
33 if (isSpecialDay(t)) return then(made, s => specialSeen(s, t))
34 if (isNewSession) {
35 made.save.egg.record.sessionCount += 1
36 addActiveDay(made.save, t)
37 }
38 return made
39}
40
41export function onTick(prev: Save, now: number, t: LocalTime, rng: () => number): Step {
42 if (isSpecialDay(t)) return then(pauseClocks(prev, now), s => specialSeen(s, t))
43 return settle(tick(prev, now, t), now, rng)
44}
45
46export function onTurn(prev: Save, now: number, t: LocalTime, rng: () => number): Step {
47 if (isSpecialDay(t)) return then(pauseClocks(prev, now), s => specialTurn(s, now, t, rng))
48 const made = specialMakeup(prev, t)
49 return settle(then(made, s => turnDone(s, now, t, rng)), now, rng)
50}
51
52export function onObserved(prev: Save, now: number, t: LocalTime, obs: Observation, rng: () => number): Step {
53 if (isSpecialDay(t)) {
54 const kind = obs.danger !== null ? 'danger' : obs.test === 'fail' ? 'testFail' : obs.test === 'pass' ? 'testPass' : null
55 return kind === null ? { save: prev, effects: [] } : specialEvent(prev, now, t, kind, rng)
56 }
57 if (obs.danger !== null) return crack(prev, obs.danger, now, rng)
58 let step: Step = { save: prev, effects: [] }
59 if (obs.test !== null) step = then(step, s => testObserved(s, obs.test === 'pass'))
60 if (obs.failed) step = then(step, s => toolFailed(s))
61 return step
62}
63
64export function onCommand(prev: Save, now: number, t: LocalTime, args: string, rng: () => number): Step {
65 const [sub = '', ...rest] = args.split(/\s+/)
66 const special = isSpecialDay(t)
67 const replies = decodeSpoilers().dateMode.replies
68 switch (sub) {
69 case 'refill':
70 return special ? { save: prev, effects: [], reply: replies.refill } : refill(prev)
71 case 'flip':
72 return special ? { save: prev, effects: [], reply: replies.flip } : settle(flip(prev, now, t), now, rng)
73 case 'dex':
74 return { save: prev, effects: [], reply: dexText(prev, dexTitle(t)) }
75 case 'help':
76 return { save: prev, effects: [], reply: T().help }
77 case 'name': {
78 const name = rest.join(' ').trim()
79 if (name === '' || [...name].length > NAME_MAX) return { save: prev, effects: [], reply: T().nameUsage }
80 const save = structuredClone(prev)
81 save.egg.name = name
82 return { save, effects: [], reply: fill(T().nameReply, { name }) }
83 }
84 default:
85 return { save: prev, effects: [], reply: T().unknown }
86 }
87}
88hooks/model.ts 82 lines1import type { Egg, EggRecord, Save } from '../types'
2import { T } from './text'
3
4export const STORE_KEY = 'tea-egg/v1'
5// Used instead while TEA_EGG_FAKE_DATE is in effect, so fake test dates never touch the real egg
6export const FAKE_STORE_KEY = 'tea-egg/v1-fake'
7// Whether the band above the prompt is hidden; kept apart from the save so it survives fake dates and egg resets
8export const BAND_STORE_KEY = 'tea-egg/band-hidden'
9
10export function newRecord(now: number): EggRecord {
11 return {
12 startedAt: now,
13 activeDays: [],
14 maxGapDays: 0,
15 sessionCount: 0,
16 sessionMinutes: 0,
17 testRuns: 0,
18 testFails: 0,
19 cracked: null,
20 }
21}
22
23export function newEgg(no: number, now: number): Egg {
24 return {
25 no,
26 name: T().defaultName, // picked in the current language; existing saves keep their name
27 progress: 0,
28 broth: 100,
29 mood: 70,
30 flipWantedAt: null,
31 activeMinutes: 0,
32 record: newRecord(now),
33 }
34}
35
36export function newSave(now: number): Save {
37 return {
38 version: 1,
39 egg: newEgg(1, now),
40 dex: {},
41 daily: { date: '', gained: 0 },
42 clocks: { lastTickAt: now, brothMs: 0, moodMs: 0, bucketStart: now, bucketActive: false },
43 nightToastFor: null,
44 harvestedAt: null,
45 dateMode: {},
46 welcomed: false,
47 }
48}
49
50const isObj = (v: unknown): v is Record<string, unknown> => typeof v === 'object' && v !== null && !Array.isArray(v)
51const isNum = (v: unknown): v is number => typeof v === 'number' && Number.isFinite(v)
52
53function isSave(v: unknown): v is Save {
54 if (!isObj(v) || v.version !== 1) return false
55 const { egg, dex, daily, clocks, dateMode } = v
56 if (!isObj(egg) || !isObj(egg.record) || !isObj(dex) || !isObj(daily) || !isObj(clocks) || !isObj(dateMode)) return false
57 const r = egg.record
58 return (
59 isNum(egg.no) && typeof egg.name === 'string' && isNum(egg.progress) && isNum(egg.broth) && isNum(egg.mood) &&
60 isNum(egg.activeMinutes) && (egg.flipWantedAt === null || isNum(egg.flipWantedAt)) &&
61 isNum(r.startedAt) && Array.isArray(r.activeDays) && isNum(r.maxGapDays) && isNum(r.sessionCount) &&
62 isNum(r.sessionMinutes) && isNum(r.testRuns) && isNum(r.testFails) &&
63 (r.cracked === null || typeof r.cracked === 'string') &&
64 typeof daily.date === 'string' && isNum(daily.gained) &&
65 isNum(clocks.lastTickAt) && isNum(clocks.brothMs) && isNum(clocks.moodMs) && isNum(clocks.bucketStart) &&
66 typeof clocks.bucketActive === 'boolean' && typeof v.welcomed === 'boolean'
67 )
68}
69
70function salvageDex(raw: unknown): Record<string, number> {
71 if (!isObj(raw) || !isObj(raw.dex)) return {}
72 const dex: Record<string, number> = {}
73 for (const [id, n] of Object.entries(raw.dex)) if (isNum(n) && n > 0) dex[id] = Math.floor(n)
74 return dex
75}
76
77export function parseSave(raw: unknown, now: number): Save {
78 if (isSave(raw)) return raw
79 const dex = salvageDex(raw)
80 return { ...newSave(now), dex, welcomed: Object.keys(dex).length > 0 }
81}
82hooks/panel.ts 143 lines1import type { Save } from '../types'
2import type { LocalTime } from './clock'
3import { compose, rasterCells, svgSource, SIZE, type Layer } from './pixels'
4import { decodeSpoilers } from './spoilers'
5import { FACE_BOX, ICON_PALETTE, PALETTE, SPRITES } from './sprites'
6import { SPRITES_HD } from './sprites-hd'
7import { T } from './text'
8import { FACE_TEXT, bar, faceOf, hintOf, stageOf, strWidth } from './view'
9
10// The bigger the pixel art, the coarser it looks; 3x (144px) looks the most refined
11const SVG_SCALE = 3
12export const SVG_PX = SIZE * SVG_SCALE
13// Dark brown backing card: without it the white steam is invisible on light themes
14const SVG_BACKGROUND = '#3b2f2a'
15
16export const ASCII_EGG: readonly string[][] = [
17 [' .-""-. ', ' / \\ ', '| FACE |', ' \\ / ', " '-..-' "],
18 [' .-""-. ', ' / ╱ \\ ', '| FACE |', ' \\ ╲ / ', " '-..-' "],
19 [' .-""-. ', ' /▓╱▓▓▓▓\\ ', '|▓ FACE ▓|', ' \\▓▓▓╲▓▓/ ', " '-..-' "],
20 [' .-""-. ', ' /█╱████\\ ', '|█ FACE █|', ' \\███╲██/ ', " '-..-' "],
21]
22
23export type Art = { kind: 'raster'; cells: string } | { kind: 'svg'; source: string } | { kind: 'ascii'; lines: string[] }
24
25// The stage sprites already have a smiling face: happy/normal use the stage sprite, other faces use the full face_<face> sprite.
26// No face overlay (FACE_BOX is null); still returns a layer array so growth-hint layers can be appended later
27function eggSpriteKey(s: Save, t: LocalTime, now: number): string {
28 const face = faceOf(s, t, now)
29 return face === 'happy' || face === 'normal' ? `stage${stageOf(s.egg.progress)}` : `face_${face}`
30}
31
32export function eggLayers(s: Save, t: LocalTime, now: number): Layer[] {
33 const key = eggSpriteKey(s, t, now)
34 const base = SPRITES[key]
35 const layers: Layer[] = []
36 // The FACE_BOX branch is unused for now; kept for future overlay layers
37 if (base) layers.push(FACE_BOX && key.startsWith('face_') ? { pixels: base, box: FACE_BOX } : { pixels: base })
38 return layers
39}
40
41function artOf(pixels: string, surface: string, palette: readonly number[] = PALETTE): Art {
42 return surface === 'terminal'
43 ? { kind: 'raster', cells: rasterCells(pixels, palette) }
44 : { kind: 'svg', source: svgSource(pixels, palette, SVG_SCALE, SVG_BACKGROUND) }
45}
46
47// Desktop: embed the original high-res PNG in an SVG when available (dark brown card + <image>), else fall back to the pixel SVG
48function hdArt(b64: string | undefined): Art | null {
49 if (!b64) return null
50 const href = `data:image/png;base64,${b64}`
51 const px = SVG_PX
52 return {
53 kind: 'svg',
54 source:
55 `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 ${px} ${px}" width="${px}" height="${px}">` +
56 `<rect width="${px}" height="${px}" rx="9" fill="${SVG_BACKGROUND}"/>` +
57 `<image width="${px}" height="${px}" href="${href}" xlink:href="${href}"/></svg>`,
58 }
59}
60
61const FACE_COLS = 4
62
63// Truncate by display width, then pad with spaces (full-width chars take 2 columns, combining marks 0)
64function fitWidth(text: string, cols: number): string {
65 let out = ''
66 for (const ch of text) {
67 if (strWidth(out + ch) > cols) break
68 out += ch
69 }
70 return out + ' '.repeat(cols - strWidth(out))
71}
72
73export function eggArt(s: Save, t: LocalTime, now: number, surface: string, columns: number): Art {
74 const layers = eggLayers(s, t, now)
75 const tooNarrow = surface === 'terminal' && columns < SIZE
76 if (layers.length === 0 || tooNarrow) {
77 const stage = stageOf(s.egg.progress)
78 // Only a 4-column face goes inside the frame (parentheses removed) to keep alignment
79 const face = fitWidth(FACE_TEXT[faceOf(s, t, now)].replace(/[()]/g, ''), FACE_COLS)
80 return { kind: 'ascii', lines: [...ASCII_EGG[stage]!.map(l => l.replace('FACE', face)), ` ${T().stageNames[stage]}`] }
81 }
82 if (surface !== 'terminal') {
83 const hd = hdArt(SPRITES_HD[eggSpriteKey(s, t, now)])
84 if (hd) return hd
85 }
86 return artOf(compose(layers), surface)
87}
88
89// Dev preview: step through each public sprite without reading or changing the save
90export const PREVIEW_KEYS = [
91 'stage0', 'stage1', 'stage2', 'stage3',
92 'face_happy', 'face_normal', 'face_bored', 'face_dry', 'face_sleep', 'face_flip', 'face_done',
93] as const
94
95// Each label is read in the current language when accessed
96export const PREVIEW_LABELS: Readonly<Record<string, string>> = Object.defineProperties(
97 {},
98 Object.fromEntries(PREVIEW_KEYS.map(key => [key, { enumerable: true, get: () => T().previewLabels[key] }])),
99)
100
101// Pick the preview from the command argument: empty = next, number = nth (1-based), or a sprite name; off = stop
102export function nextPreview(current: string | null, arg: string): string | null | undefined {
103 const a = arg.trim()
104 if (a === 'off') return null
105 if (a === '') {
106 const i = current === null ? -1 : PREVIEW_KEYS.indexOf(current as (typeof PREVIEW_KEYS)[number])
107 return PREVIEW_KEYS[(i + 1) % PREVIEW_KEYS.length]
108 }
109 const n = Number(a)
110 if (Number.isInteger(n) && n >= 1 && n <= PREVIEW_KEYS.length) return PREVIEW_KEYS[n - 1]
111 return (PREVIEW_KEYS as readonly string[]).includes(a) ? a : undefined
112}
113
114export function previewArt(key: string, surface: string, columns: number): Art | null {
115 if (surface !== 'terminal') {
116 const hd = hdArt(SPRITES_HD[key])
117 if (hd) return hd
118 } else if (columns < SIZE) {
119 return null
120 }
121 const pixels = SPRITES[key]
122 return pixels ? artOf(pixels, surface) : null
123}
124
125// Dex sprites (art sets C/D/E) use their own ICON_PALETTE; return null when one is missing and the dex shows text only.
126// Always the pixel SVG on desktop: 9 HD icons made the pane too big and desktop drew nothing at all
127export function dexArt(id: string, owned: boolean, surface: string): Art | null {
128 const pixels = owned ? decodeSpoilers().sprites[id] : SPRITES.locked
129 if (!pixels) return null
130 return artOf(pixels, surface, ICON_PALETTE)
131}
132
133export function panelLines(s: Save, t: LocalTime, now: number): string[] {
134 const hint = hintOf(s, now)
135 return [
136 `${s.egg.name} #${s.egg.no} ${FACE_TEXT[faceOf(s, t, now)]}`,
137 `${T().flavor} ${bar(s.egg.progress, 10)} ${Math.floor(s.egg.progress)}%`,
138 `${T().broth} ${bar(s.egg.broth, 10)} ${Math.round(s.egg.broth)}`,
139 `${T().mood} ${bar(s.egg.mood, 10)} ${Math.round(s.egg.mood)}`,
140 ...(hint ? [hint] : []),
141 ]
142}
143hooks/rules.ts 124 lines1import type { Egg, Save } from '../types'
2import { newEgg } from './model'
3import type { Effect, Step } from './engine'
4import { decodeSpoilers } from './spoilers'
5import type { Rule, Spoilers } from './spoiler-types'
6import { T, fill } from './text'
7
8const DAY = 86_400_000
9const HINT_FROM = 50
10
11export type Stats = {
12 cracked: boolean
13 maxGapDays: number
14 testRuns: number
15 failRate: number
16 ageDays: number
17 sessionCount: number
18 avgSessionMinutes: number
19}
20
21export function statsOf(egg: Egg, now: number): Stats {
22 const r = egg.record
23 return {
24 cracked: r.cracked !== null,
25 maxGapDays: r.maxGapDays,
26 testRuns: r.testRuns,
27 failRate: r.testRuns > 0 ? r.testFails / r.testRuns : 0,
28 ageDays: (now - r.startedAt) / DAY,
29 sessionCount: r.sessionCount,
30 avgSessionMinutes: r.sessionCount > 0 ? r.sessionMinutes / r.sessionCount : 0,
31 }
32}
33
34// Rule kinds and how they're evaluated are public; thresholds and which egg each yields are in SPOILERS
35export function matches(rule: Rule, st: Stats, roll: number): boolean {
36 switch (rule.when) {
37 case 'cracked': return st.cracked
38 case 'chance': return roll < rule.p
39 case 'gapAtLeast': return st.maxGapDays >= rule.days
40 case 'failRateAbove': return st.testRuns >= rule.minRuns && st.failRate > rule.rate
41 case 'ageAtLeast': return st.ageDays >= rule.days
42 case 'avgSessionAbove': return st.sessionCount > 0 && st.avgSessionMinutes > rule.minutes
43 case 'avgSessionBelow': return st.sessionCount > 0 && st.avgSessionMinutes < rule.minutes
44 case 'always': return true
45 }
46}
47
48export function outcome(egg: Egg, now: number, rng: () => number): string {
49 const st = statsOf(egg, now)
50 const roll = rng()
51 const rules = decodeSpoilers().rules
52 return (rules.find(rule => matches(rule, st, roll)) ?? rules[rules.length - 1]!).egg
53}
54
55export function predictHint(egg: Egg, now: number): string | null {
56 if (egg.progress < HINT_FROM) return null
57 const st = statsOf(egg, now)
58 const { rules, hints } = decodeSpoilers()
59 const guess = rules.find(rule => rule.when !== 'cracked' && rule.when !== 'chance' && matches(rule, st, 1))
60 return guess ? hints[guess.egg] ?? null : null
61}
62
63function harvest(s: Save, now: number, rng: () => number): Effect {
64 const { eggs, crackToast } = decodeSpoilers()
65 const id = outcome(s.egg, now, rng)
66 const info = eggs[id] ?? { name: id, icon: '🥚' }
67 const isNew = (s.dex[id] ?? 0) === 0
68 s.dex[id] = (s.dex[id] ?? 0) + 1
69 const keyword = s.egg.record.cracked
70 const text = keyword !== null
71 ? fill(crackToast, { kw: keyword, name: info.name, icon: info.icon })
72 : fill(T().harvest, { name: info.name })
73 const next = newEgg(s.egg.no + 1, now)
74 next.record.sessionCount = 1 // the current session counts toward the new egg too
75 s.egg = next
76 s.daily.gained = 0 // the daily cap is per egg: a new egg gets a fresh cap even if the last one used today's up
77 s.harvestedAt = now
78 return { kind: 'toast', text: isNew ? text + T().newDex : text }
79}
80
81export function settle(step: Step, now: number, rng: () => number): Step {
82 const s = step.save
83 if (s.egg.record.cracked === null && s.egg.progress < 100) return step
84 const save = structuredClone(s)
85 const effect = harvest(save, now, rng)
86 return { ...step, save, effects: [...step.effects, effect] }
87}
88
89export function crack(prev: Save, keyword: string, now: number, rng: () => number): Step {
90 const save = structuredClone(prev)
91 save.egg.record.cracked = keyword
92 return settle({ save, effects: [] }, now, rng)
93}
94
95// The special-date-mode prize egg hides even its icon until collected. Decided by "is it the prize", not by slot position,
96// so egg kinds added later (regular or special) can sit in any slot without being mistaken for it
97export function isPrizeEgg(id: string, sp: Spoilers = decodeSpoilers()): boolean {
98 return id === sp.dateMode.prize
99}
100
101// Pane header: the pictures carry the rest
102export function dexHeader(save: Save, title: string, sp: Spoilers = decodeSpoilers()): string {
103 const owned = sp.dexSlots.filter(id => (save.dex[id] ?? 0) > 0)
104 return ` ${title} ${owned.length}/${sp.dexSlots.length}`
105}
106
107// Caption under one pane cell: name and count once collected, ??? before
108export function dexCaption(save: Save, id: string, sp: Spoilers = decodeSpoilers()): { name: string; count: string } {
109 const n = save.dex[id] ?? 0
110 return n > 0 ? { name: sp.eggs[id]!.name, count: `×${n}` } : { name: '???', count: ' ' }
111}
112
113// Text-only dex (the /egg dex reply)
114export function dexText(save: Save, title: string, sp: Spoilers = decodeSpoilers()): string {
115 const { eggs, dexSlots } = sp
116 const owned = dexSlots.filter(id => (save.dex[id] ?? 0) > 0)
117 const missing = dexSlots.filter(id => (save.dex[id] ?? 0) === 0)
118 const ownedText = owned.map(id => `${eggs[id]!.icon} ${eggs[id]!.name} ×${save.dex[id]}`)
119 const missingText = missing.map(id => (isPrizeEgg(id, sp) ? '❓ ???' : `${eggs[id]!.icon} ???`))
120 return [dexHeader(save, title, sp), ` ${ownedText.join(' ')}`, ` ${missingText.join(' ')}`]
121 .filter(line => line.trim() !== '')
122 .join('\n')
123}
124hooks/spoilers.ts 3970 lines1// Unlock conditions and easter-egg content are base64-encoded so they don't spoil the fun of collecting.
2// This is text and numbers only: no program logic, network or file access.
3// Want to peek? Call decodeSpoilers(), or paste the string into any base64 decoder.
4// Generated by scripts/encode-spoilers.ts. Do not edit by hand.
5import { lang, overlay, type Lang } from './i18n'
6import type { Spoilers } from './spoiler-types'
7
8export const SPOILERS =
9 "eyJjcmFja1RvYXN0Ijoi8J+SpSDllarvvIHom4vooqsgYHtrd31gIOWah+egtOS6huKApuKApuiuiuaIkHtuYW1lfSB7aWNv" +
10 "bn0iLCJkYXRlTW9kZSI6eyJiYW5kIjp7ImJhciI6IuS6uumhnuWFpeWRsyIsImZhY2UiOiIowqzigL/CrCkiLCJoaW50cyI6" +
11 "WyLkvaDogZ7otbfkvobpgoTlvojnlJ/igKYiLCLkvaDnnIvotbfkvobmnInpu57pubnigKYiLCLkvaDplovlp4vmnInmu7fl" +
12 "kbPkuobigKYiLCLkvaDlv6vooqvmu7fpgI/kuobigKYiXSwiaWNvbiI6IvCfkKMiLCJ0aXRsZSI6IuWwj+mbnuato+WcqOa7" +
13 "t+S9oCJ9LCJkYXkiOjEsImRleFRpdGxlIjoi5Lq66aGe5ZyW6ZGRIiwiaHVtYW5TdGVwIjoyLCJsaW5lcyI6eyJkYW5nZXIi" +
14 "Olsi5Lq66aGe5Y+I5Zyo546p5Y2x6Zqq55qE5p2x6KW/5LqG77yM5bCP6Zue6KaB6Lef5L2g5aq96KybIl0sIm1ha2V1cCI6" +
15 "IuaYqOWkqeaYr+aEmuS6uuevgOWWlCDwn4OPIOS9oOmMr+mBjuS6huWwj+mbnu+8jOS9huaEmuS6uuibi+mChOaYr+e1puS9" +
16 "oCIsInJldmVhbCI6IvCfjokg5oSa5Lq656+A5b+r5qiC77yB5bCP6Zue5piO5aSp5pyD57iu5Zue6JuL5q686KOh44CC6YCB" +
17 "5L2g5LiA6aGG57SA5b+15ZOBIOKGkiIsInRlc3RGYWlsIjpbIuaykumXnOS/gu+8jOS6uumhnuacrOS+huWwseaYr+mAmeao" +
18 "oyIsIuWwj+mbnuW3sue2k+e/kuaFo+S6hiJdLCJ0ZXN0UGFzcyI6WyLpm6PlvpfllpTvvIzntabkvaDkuIDpoYbpo7zmlpki" +
19 "XSwidHVybiI6WyLmiJHnmoTkurrpoZ7ku4rlpKnlvojkuZbvvIzlj6rlr6vkuoYgMyDlgIsgYnVnIPCfjawiLCLkurrpoZ7l" +
20 "j4jlrozmiJDkuIDku7bkuovkuobvvIzlpb3mo5Lmo5IiLCLmu7fkuobkvaDkuIDmlbTlpKnvvIzpgoTmmK/mspLku4Dpurzl" +
21 "kbPpgZMiXX0sIm1vbnRoIjo0LCJwcml6ZSI6Ing5IiwicmVwbGllcyI6eyJmbGlwIjoi5bCP6Zue6Kmm5ZyW5oqK5L2g57+7" +
22 "6Z2i77yM5aSx5pWX5LqGIiwicmVmaWxsIjoi5bCP6Zue5bmr5L2g5YCS5LqG5LiA5p2v5rC044CC5Lq66aGe6KaB5aSa5Zad" +
23 "5rC0IPCfkqcifSwicmV2ZWFsSG91ciI6MTcsInRocm90dGxlTXMiOjYwMDAwMH0sImRleFNsb3RzIjpbImU4IiwiZTYiLCJl" +
24 "NCIsImUxIiwiZTciLCJlMyIsImU1IiwiZTIiLCJ4OSJdLCJlZ2dzIjp7ImUxIjp7Imljb24iOiLwn42zIiwibmFtZSI6IuiN" +
25 "t+WMheibiyJ9LCJlMiI6eyJpY29uIjoi4pyoIiwibmFtZSI6IumHkeibiyJ9LCJlMyI6eyJpY29uIjoi8J+WpCIsIm5hbWUi" +
26 "OiLnmq7om4sifSwiZTQiOnsiaWNvbiI6IvCfp4IiLCJuYW1lIjoi6bm56JuLIn0sImU1Ijp7Imljb24iOiLwn5SpIiwibmFt" +
27 "ZSI6IumQteibiyJ9LCJlNiI6eyJpY29uIjoi8J+NsiIsIm5hbWUiOiLmu7fom4sifSwiZTciOnsiaWNvbiI6IuKZqO+4jyIs" +
28 "Im5hbWUiOiLmuqvms4nom4sifSwiZTgiOnsiaWNvbiI6IvCfpZoiLCJuYW1lIjoi6Iy26JGJ6JuLIn0sIng5Ijp7Imljb24i" +
29 "OiLwn4OPIiwibmFtZSI6IuaEmuS6uuibiyJ9fSwiaGludHMiOnsiZTMiOiLom4vmrrzlpb3lg4/mnInpu57nmbzntqDigKYi" +
30 "LCJlNCI6Iuibi+auvOWGkuWHuuS6hum5veiKseKApiIsImU1Ijoi6YCZ6aGG6JuL6LaK5L6G6LaK56Gs5LqG4oCmIiwiZTYi" +
31 "OiLogZ7otbfkvobmnInmv4Pmv4PnmoTmu7flkbPigKYiLCJlNyI6IuaRuOi1t+S+hua6q+a6q+i7n+i7n+eahOKApiIsImU4" +
32 "Ijoi6Iy26aaZ6LaK5L6G6LaK5r+D5LqG4oCmIn0sImkxOG4iOnsiZW4iOnsiY3JhY2tUb2FzdCI6IvCfkqUgQ3JhY2shIGB7" +
33 "a3d9YCBzdGFydGxlZCB0aGUgZWdn4oCmIGl0IHR1cm5lZCBpbnRvOiB7bmFtZX0ge2ljb259IiwiZGF0ZU1vZGUiOnsiYmFu" +
34 "ZCI6eyJiYXIiOiJIdW1hbiBmbGF2b3IiLCJoaW50cyI6WyJZb3Ugc3RpbGwgc21lbGwgcmF34oCmIiwiWW91IHRhc3RlIGEg" +
35 "Yml0IHNhbHR54oCmIiwiWW91J3JlIHBpY2tpbmcgdXAgZmxhdm9y4oCmIiwiWW91J3JlIGFsbW9zdCBmdWxseSBtYXJpbmF0" +
36 "ZWTigKYiXSwidGl0bGUiOiJUaGUgY2hpY2sgaXMgbWFyaW5hdGluZyB5b3UifSwiZGV4VGl0bGUiOiJIdW1hbiBEZXgiLCJs" +
37 "aW5lcyI6eyJkYW5nZXIiOlsiVGhlIGh1bWFuIGlzIHBsYXlpbmcgd2l0aCBkYW5nZXJvdXMgc3R1ZmYgYWdhaW4uIFRoZSBj" +
38 "aGljayBpcyB0ZWxsaW5nIHlvdXIgbW9tIl0sIm1ha2V1cCI6Illlc3RlcmRheSB3YXMgQXByaWwgRm9vbHMnIERheSDwn4OP" +
39 "IFlvdSBtaXNzZWQgdGhlIGNoaWNrLCBidXQgeW91IHN0aWxsIGdldCB0aGUgRm9vbCdzIEVnZyIsInJldmVhbCI6IvCfjokg" +
40 "SGFwcHkgQXByaWwgRm9vbHMnIERheSEgVGhlIGNoaWNrIGNyYXdscyBiYWNrIGludG8gaXRzIHNoZWxsIHRvbW9ycm93LiBI" +
41 "ZXJlJ3MgYSBzb3V2ZW5pciDihpIiLCJ0ZXN0RmFpbCI6WyJJdCdzIG9rYXksIGh1bWFucyBhcmUganVzdCBsaWtlIHRoYXQi" +
42 "LCJUaGUgY2hpY2sgaXMgdXNlZCB0byBpdCBieSBub3ciXSwidGVzdFBhc3MiOlsiV293LCB0aGF0J3MgcmFyZS4gSGF2ZSBz" +
43 "b21lIGNoaWNrIGZlZWQiXSwidHVybiI6WyJNeSBodW1hbiB3YXMgZ29vZCB0b2RheSwgb25seSAzIGJ1Z3Mg8J+NrCIsIk15" +
44 "IGh1bWFuIGZpbmlzaGVkIGFub3RoZXIgdGhpbmcuIEdvb2Qgam9iISIsIk1hcmluYXRlZCB5b3UgYWxsIGRheSBhbmQgeW91" +
45 "IHN0aWxsIHRhc3RlIGxpa2Ugbm90aGluZyJdfSwicmVwbGllcyI6eyJmbGlwIjoiVGhlIGNoaWNrIHRyaWVkIHRvIGZsaXAg" +
46 "eW91IG92ZXIuIEl0IGZhaWxlZCIsInJlZmlsbCI6IlRoZSBjaGljayBwb3VyZWQgeW91IGEgZ2xhc3Mgb2Ygd2F0ZXIuIEh1" +
47 "bWFucyBuZWVkIHRvIHN0YXkgaHlkcmF0ZWQg8J+SpyJ9fSwiZWdncyI6eyJlMSI6eyJuYW1lIjoiRnJpZWQgRWdnIn0sImUy" +
48 "Ijp7Im5hbWUiOiJHb2xkZW4gRWdnIn0sImUzIjp7Im5hbWUiOiJDZW50dXJ5IEVnZyJ9LCJlNCI6eyJuYW1lIjoiU2FsdGVk" +
49 "IEVnZyJ9LCJlNSI6eyJuYW1lIjoiSXJvbiBFZ2cifSwiZTYiOnsibmFtZSI6IlNveS1CcmFpc2VkIEVnZyJ9LCJlNyI6eyJu" +
50 "YW1lIjoiT25zZW4gRWdnIn0sImU4Ijp7Im5hbWUiOiJUZWEgRWdnIn0sIng5Ijp7Im5hbWUiOiJGb29sJ3MgRWdnIn19LCJo" +
51 "aW50cyI6eyJlMyI6IlRoZSBzaGVsbCBsb29rcyBhIGxpdHRsZSBncmVlbuKApiIsImU0IjoiU2FsdCBjcnlzdGFscyBvbiB0" +
52 "aGUgc2hlbGzigKYiLCJlNSI6IlRoaXMgZWdnIGtlZXBzIGdldHRpbmcgdG91Z2hlcuKApiIsImU2IjoiU21lbGxzIHJpY2hs" +
53 "eSBvZiBzb3kgc2F1Y2XigKYiLCJlNyI6IkZlZWxzIHdhcm0gYW5kIHNvZnTigKYiLCJlOCI6IlNtZWxscyBvZiB0ZWHigKYi" +
54 "fX19LCJydWxlcyI6W3siZWdnIjoiZTEiLCJ3aGVuIjoiY3JhY2tlZCJ9LHsiZWdnIjoiZTIiLCJwIjowLjAxLCJ3aGVuIjoi" +
55 "Y2hhbmNlIn0seyJkYXlzIjozLCJlZ2ciOiJlMyIsIndoZW4iOiJnYXBBdExlYXN0In0seyJlZ2ciOiJlNCIsIm1pblJ1bnMi" +
56 "OjUsInJhdGUiOjAuNSwid2hlbiI6ImZhaWxSYXRlQWJvdmUifSx7ImRheXMiOjIxLCJlZ2ciOiJlNSIsIndoZW4iOiJhZ2VB" +
57 "dExlYXN0In0seyJlZ2ciOiJlNiIsIm1pbnV0ZXMiOjEyMCwid2hlbiI6ImF2Z1Nlc3Npb25BYm92ZSJ9LHsiZWdnIjoiZTci" +
58 "LCJtaW51dGVzIjoyMCwid2hlbiI6ImF2Z1Nlc3Npb25CZWxvdyJ9LHsiZWdnIjoiZTgiLCJ3aGVuIjoiYWx3YXlzIn1dLCJz" +
59 "cHJpdGVzIjp7ImUxIjoiLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
60 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
61 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
62 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
63 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
64 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
65 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
66 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
67 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
68 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
69 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
70 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
71 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
72 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
73 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMDAwMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
74 "Li4uLi4uLi4uLi4wdW9taTAwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjAwMDAzb29vb21oMDAwMC4u" +
75 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMGkzc2lvb29vbW9taG1vdTAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
76 "Li4uLi4waW9vbW1vb29vbW9vb29vbzMwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjB1b29vb21vb29vb29vb29tb28z" +
77 "MC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMGlvb29vb29vb29vb29vb29vbW8zMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
78 "Li4uMG9vb21vb29vb2hoaGhob29vbW9vdTAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMG1vbW9vb29oaGhoaGhoaG9vb29v" +
79 "b3UwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMHVvb29vb2hob29oaGhoaGhvb29vb29pMC4uLi4uLi4uLi4uLi4uLi4uLi4u" +
80 "Li4wdW9vb29vaGlvb2hoaGhoaGhob29vbW9tMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi5pb29vb29oaG9vaGhoaGhoaGhoaG9v" +
81 "b21oMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi5tb29vb29oaW9oaGhoaGhoaGhoaG9vb28zMC4uLi4uLi4uLi4uLi4uLi4uLi4u" +
82 "Li5vb21vb2hob2hvMGhoaGhvMGhoaGhvb29vdS4uLi4uLi4uLi4uLi4uLi4uLi4uLi5tb21vb2hoaGgwMGhoaGgwMGhoaGhv" +
83 "b29vbS4uLi4uLi4uLi4uLi4uLi4uLi4uLi51b29vb2hoaHBoaDBoaDBoaHBoaGhvb29vby4uLi4uLi4uLi4uLi4uLi4uLi4u" +
84 "Li4wbW9vb29ocHBwaGgwMGhocHBwaG1vb21vbS4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wZ29vb29oaGhoaGhoaGhoaGhoaG9v" +
85 "bW9vbS4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wM29tb29vaGhoaGhoaGhoaGhob29vb29taC4uLi4uLi4uLi4uLi4uLi4uLi4u" +
86 "Li4wM29tb29vb2hoaGhoaGhoaGhtb29vb29tMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uYm1vb29vb29oaGhoaGhoaG9vb29v" +
87 "b211MC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMGlvb29vb29vb29vb29vb29vb21vb2cwLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
88 "Li4uLjBob29vbW9vb29vb29vb29vb29tZzAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wMG1tb29vb29vb29vb21vb21p" +
89 "MC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjAwaG1tb21vb29vbWhtaTAwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
90 "Li4uLi4uLi4uMDBobW9tbW0zaDAwMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wMDAwMDAwMC4uLi4u" +
91 "Li4uLi4uLi4uLi4uLi4uIiwiZTIiOiIuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
92 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
93 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
94 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
95 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
96 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
97 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
98 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
99 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
100 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
101 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
102 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
103 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
104 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
105 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMy4uLi4uLi4uLi4uLi4uLi4u" +
106 "Li4uLi4uLi4uLi4uLi4uLi5wLi4uMDAwMC4uLi4ubS4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4zLi4uLjAwaWlo" +
107 "aDAwLi4zbW1tLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjMzMy4uMGhoaWloaGhoMC4ubS4uLi4uLi4uLi4uLi4uLi4u" +
108 "Li4uLi4uLi4uLi4uLi4zLi4waGhvb2hoaHNzczAuMy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4zLjBpaG9vb2ho" +
109 "aGhzczAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMGhob29vaGhoaGhoc2gwLi4uLi4uLi4uLi4uLi4uLi4u" +
110 "Li4uLi4uLi4uLi4uLi4uMGhpb29vaWloaGhoc3MwLi4uMy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4ubS4waWlpb2lpaWho" +
111 "aGhoc3NzMC4zMy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4waWlpaWltaGhoaGhoaHNzMC4uMy4uLi4uLi4uLi4uLi4u" +
112 "Li4uLi4uLi4uLi4uLjBoaWlvaW1oaGloaGhoaHNzczAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjBpaWlpaWloaGho" +
113 "aGhoaHNzczAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMGhoaWlpaWlpaGhoaGhoaGhzc3MwLi4uLi4uLi4uLi4uLi4u" +
114 "Li4uLi4uLi4uLi4uMGhoaWlpaWlpaWhoaGhoaGhzc3MwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMGhoaWlpbzBpaWlo" +
115 "aG8waGhzc3MwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMGhoaWlpMDBoaWlpaDAwaGhzc3MwLi4uLi4uLi4uLi4uLi4u" +
116 "Li4uLi4uLi4uLi4uMGhoaXBwcGhoMDAwaGh1cHBzc3MwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMGhzbXVwaGhoaGho" +
117 "aGh1cHBzc3MwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMGhzaGloaGhpaGhoaGhoc3NzaHMwLi4uLi4uLi4uLi4uLi4u" +
118 "Li4uLi4uLi4uLi4uMGhzaGloaGhoaGhoaGhoc3NzaHMwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjBoc2hoaGhoaGho" +
119 "aGhzc3NpaDAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLm5ic3NoaWhoaGhoc3NzczNoNm4uLi4uLi4uLi4uLi4uLi4u" +
120 "Li4uLi4uLi4uLi4uLi4waHNzc2hoaGhzc3MzM2lzMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMy4uMGhzc3Nzc3Nz" +
121 "czMzaWgwLi4zLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMzMuLjBoaHNzc3NpMzNoczAuLjMzMy4uLi4uLi4uLi4uLi4u" +
122 "Li4uLi4uLi4uLi4uMy4uLi4wMGhoaGhoaHMwMC4uLi4zLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjAwMDAw" +
123 "MDAuLi4uLi4uLi4uLi4uLi4uLi4uLi4iLCJlMyI6Ii4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
124 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
125 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
126 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
127 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
128 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
129 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
130 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
131 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
132 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
133 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
134 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
135 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
136 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
137 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjAwMDAwMC4uLi4uLi4uLi4uLi4u" +
138 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wMDY2NjY2NjAwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
139 "LjA2NjY2NjY2NjY2MC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMDY2bTY2NjY2NjY2NjAuLi4uLi4uLi4u" +
140 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wNjZvbTY2NjY2NjY2NjYwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjA2" +
141 "Nm1tNjY2NjY2NjY2NjY2MC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjA2NjY2NjI3Nzc3MjI2NjY2MC4uLi4uLi4u" +
142 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uMDZtNjYyNzc3MjIyNzcyNjY2NjAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMDY2" +
143 "NjI0NzIyMjIyMjc3MjY2NjAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wNjY2MjQ3MjIyMjIyMjI3NzI2bjYwLi4uLi4u" +
144 "Li4uLi4uLi4uLi4uLi4uLi4uLi4wNjYyNzQyMjIyMjIyMjIyNzcyNjYwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wNjYy" +
145 "NzIyMjIyMjIyMjIyMjcyNjYwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjA2NjY3NzIyMjIyMjIyMjIyMjI3NjY2MC4uLi4u" +
146 "Li4uLi4uLi4uLi4uLi4uLi4uLjA2NjI3MjIyMjIyMjIyMjIyMjI3MjY2MC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjA2NjI3" +
147 "MjIwMDIyMjIyMjAwMjI3MjY2MC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjA2NjI3MnAwMDIwMjIwMjAwcDI3MjY2MC4uLi4u" +
148 "Li4uLi4uLi4uLi4uLi4uLi4uLjA2NjI3cHBwMjIyMDAyMjJwcHA3MjY2MC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjA2NjI3" +
149 "MnAyMjIyMjIyMjIycDI3MjY2MC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjA2NjYyNzIyMjIyMjIyMjIyMjcybjY2MC4uLi4u" +
150 "Li4uLi4uLi4uLi4uLi4uLi4uLjA2NjYyNzIyMjIyMjIyMjIyMjcyNjY2MC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wYjY2" +
151 "MjcyMjIyMjIyMjIyNzI2NjYwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wYjY2Mjc3MjIyMjIyMjc3NzJuNjYwLi4uLi4u" +
152 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uMGI2NjIyMjcyMjIyMjIyMm42NjAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjBi" +
153 "NjY2NjAyMjIybm42NmI2MC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wMDZiNjY2NjY2NjY2NjAwLi4uLi4uLi4u" +
154 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjAwNjY2NjY2NjYwMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
155 "Li4uMDAwMDAwMDAuLi4uLi4uLi4uLi4uLi4uLi4uLiIsImU0IjoiLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
156 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
157 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
158 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
159 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
160 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
161 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
162 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
163 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
164 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
165 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
166 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
167 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
168 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
169 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
170 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
171 "Li4uLi4uLi4uLi4uLi4wMDAwMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMDBvb29vbTAwLi4u" +
172 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjAwb29vb29vb29sMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
173 "Li4uLi4uLi4uMG9vb29vb29vb29vbTAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wb29vb29vb29vb29vbTAu" +
174 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjBtb29vb29vb29vb29vb20wLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
175 "Li4uLi4uLjBvb29vbTg4ODhtb29vb28wLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMG9vb284ODhoODg4OG9vb29t" +
176 "MC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMG9vbzg4bW04ODg4ODhvb29vMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
177 "Li4uLi4wb29vODhtbTg4ODg4ODg4b29vMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wb284ODNtODg4ODg4ODg4b29v" +
178 "bDAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjBvb284ODM4ODg4ODg4ODg4OG9vbTAuLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
179 "Li4uLjBvb204Mzg4ODg4ODg4ODg4OG9vbTAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjBvbzhoOG8wODg4ODhvMDg4OG9v" +
180 "bDAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjBvbzhoODAwODg4ODgwMDg4OG9vbDAuLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
181 "Li4uLjBvbzg4OHA4ODA4MDg4OHA4OG9vbDAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjBvbzg4cHA4ODgwODg4cHA4dW9v" +
182 "bDAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjBvb284ODg4ODg4ODg4ODg4b29sbDAuLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
183 "Li4uLjBvb284ODg4ODg4ODg4ODg4b29sMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wb29vODg4ODg4ODg4ODhvb29s" +
184 "MC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMG9vb204ODg4ODh1dW9vbW0wLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
185 "Li4uLi4uMG9vb29vb29vb29vb29tbTcwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjBvb29vb29vb29vb21tbDAu" +
186 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wb29vb29vb29tbW1sMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
187 "Li4uLi4uLi4uMDBtbW1tbW1tdDAwLi4uLi4uLi4uLi4uLi4uLi4uIiwiZTUiOiIuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
188 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
189 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
190 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
191 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
192 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
193 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
194 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
195 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
196 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
197 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
198 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
199 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
200 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
201 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wMDAw" +
202 "MDAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMDAyMjIyMjIwMC4uLi4uLi4uLi4uLi4uLi4uLi4u" +
203 "Li4uLi4uLi4uLi4uLi4uLi4wMjIyNDIyMjIyMDAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjAyNDQwNTUy" +
204 "MDAwMjIwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMDI0MDQ1MjIwMDIyMjIwLi4uLi4uLi4uLi4uLi4uLi4u" +
205 "Li4uLi4uLi4uLi4uLi4wMjV0MjA0NDA1NTUwMDIwMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjAyMnQyMjIwMjIy" +
206 "MDAyMjIyMDAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjAyNDIyMjI0MDQyMjIyMDIwMjAuLi4uLi4uLi4uLi4uLi4u" +
207 "Li4uLi4uLi4uLi4uMDIwMjIydHQyMDA0MjIyMjAyMDAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMDUyMDJ0NTAwMjIw" +
208 "NTIyMjIwNTAwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMDIyNDUwMDAyMjIyMDQyMDA1MDAwLi4uLi4uLi4uLi4uLi4u" +
209 "Li4uLi4uLi4uLi4wMjIyNDAyMjIyMjIyMjA1MjUwMjAwZi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wMjI0MDIyMjIyMjIy" +
210 "MjIwMjIyMjIyMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wMDQyMjIybDAyMjIyMjJsMDIyMDIyMC4uLi4uLi4uLi4uLi4u" +
211 "Li4uLi4uLi4uLi4wMjUwMjIyMDAyMjIyMjIwMDIyMDIwMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wNDAwMjJwMDAyMDIy" +
212 "MDIwMHAyMDAyMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wMjAyMnBwcDIyMjAwMjIycHBwMDAwMC4uLi4uLi4uLi4uLi4u" +
213 "Li4uLi4uLi4uLi4wMDQyMjJwMjIyMjIyMjIyMnAwMDIwMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wMjA0MjIyMjIyMjIy" +
214 "MjIyMjIwMjAyMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wMjIwNDAyMjIyMjIyMjIyMDA1MDAyMC4uLi4uLi4uLi4uLi4u" +
215 "Li4uLi4uLi4uLi4uMDIyMDUwNTIyMjIyMjAwMjUwMDAwZi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMDIyMDIyMDQyMjIw" +
216 "MDI1NTAwMDIwZi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjAyMDIyMjA1MjIwMjUyMDIwMjAuLi4uLi4uLi4uLi4uLi4u" +
217 "Li4uLi4uLi4uLi4uLi4wMjIwMjIwNTIwMDAwMDIyMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMDAyMDAyMDIy" +
218 "MDAwMjIwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wMDIyMDAwMjAwMDAuLi4uLi4uLi4uLi4uLi4uLi4u" +
219 "Li4uLi4uLi4uLi4uLi4uLi4uLjAwMDAwMDAwLi4uLi4uLi4uLi4uLi4uLi4uLi4iLCJlNiI6Ii4uLi4uLi4uLi4uLi4uLi4u" +
220 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
221 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
222 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
223 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
224 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
225 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
226 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
227 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
228 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
229 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
230 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
231 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
232 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjAwMDAwMC4uLi4uLi4uLi4uLi4u" +
233 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wMDY2NjY2NjAwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
234 "LjA2NjY2NjY2NjY2MC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMDY2bW02NjY2NjY2NjAuLi4uLi4uLi4u" +
235 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wNjZtbW02NjY2NjY2NjAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjA2" +
236 "Nm1tbTY2NjY2NjY2NjYwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjA2Nm1tNjY2NjY2NjY2NjY2MC4uLi4uLi4u" +
237 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uMDY2Nm1tNjY2NjY2NjY2NjY2MC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMDY2" +
238 "NjY2NjY2NjY2NjY2NjY2MC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wNjZtbTY2NjY2NjY2NjY2NjY2NjAuLi4uLi4u" +
239 "Li4uLi4uLi4uLi4uLi4uLi4uLi4wNjZvbTY2NjY2NjY2NjY2NjY2NjAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wNjY2" +
240 "NjY2NjY2NjY2NjY2NjY2NjAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjA2NjY2NjY2NjY2NjY2NjY2NjY2NjYwLi4uLi4u" +
241 "Li4uLi4uLi4uLi4uLi4uLi4uLjA2NjY2NjY2NjY2NjY2NjY2NjY2NjYwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjA2NjY2" +
242 "NjYwMDY2NjY2NjAwNjY2NjYwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjA2NjY2NjYwMDY2NjY2NjAwNjY2NjYwLi4uLi4u" +
243 "Li4uLi4uLi4uLi4uLi4uLi4uLjA2NjY2cDYwMDYwNjYwNjAwNnA2NjYwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjA2NjZw" +
244 "cHA2NjY2MDA2NjY2cHBwNjYwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjA2NjY2cDY2NjY2NjY2NjY2NnA2NjYwLi4uLi4u" +
245 "Li4uLi4uLi4uLi4uLi4uLi4uLjA2NjY2NjY2NjY2NjY2NjY2NjY2NjYwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjA2NjY2" +
246 "NjY2NjY2NjY2NjY2NjY2NjYwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wNjY2NjY2NjY2NjY2NjY2NjY2NjAuLi4uLi4u" +
247 "Li4uLi4uLi4uLi4uLi4uLi4uLi4wNjY2NjY2NjY2NjY2NjY2NjY2NjAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMDY2" +
248 "NjY2NjY2NjY2NjY2NjY2MC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMDY2NjY2NjY2NjY2NjY2NjY2MC4uLi4uLi4u" +
249 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLjA2NjY2NjY2NjY2NjY2NjYwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4w" +
250 "MDY2NjY2NjY2NjY2NjAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjAwNjY2NjY2NjYwMC4uLi4uLi4uLi4u" +
251 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMDAwMDAwMDAuLi4uLi4uLi4uLi4uLi4uLi4uLiIsImU3IjoiLi4uLi4uLi4u" +
252 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
253 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
254 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
255 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
256 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
257 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
258 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
259 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
260 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
261 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
262 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
263 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
264 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
265 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
266 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wMDAwMDAwMC4uLi4u" +
267 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wMDBvb29vb29vbzAwMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
268 "Li4uLi4uMDBvb29sbGxqamxsbG9vbzAwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wb29sbGpsbGxsbGxsbGpsbG9v" +
269 "MC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjBvbGpsbGxzc2JzYmJzc2xsbGptbzAuLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
270 "Li4uMG9sbGxsc2Jzc29vb29vc3NibGxsbG8wLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wb21sbHNzcWJvb29vb29vb21ic3Nt" +
271 "bGxvMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi5tb2xiYnFib29vbW1tbW1vb29vYmhzc2xvbC4uLi4uLi4uLi4uLi4uLi4uLi4u" +
272 "LjBvbWJiaGJvb21vb29tbW1tbW1vb2Jxc2JsbzAuLi4uLi4uLi4uLi4uLi4uLi4uLjBvbHM5OW9vbW9vb21tbW1tbW1tb205" +
273 "c3NsbzAuLi4uLi4uLi4uLi4uLi4uLi4uLjBvYnNzc29vbW9tbW1tbW1tbW1tbW11bXNibzAuLi4uLi4uLi4uLi4uLi4uLi4u" +
274 "LjBvYm1zbW9tb21vMG1tbW8wbW1tbW1tYnE5bzAuLi4uLi4uLi4uLi4uLi4uLi4uLjBvc2hzb29tbXAwMDBtbTAwMHBtbW1t" +
275 "czlibzAuLi4uLi4uLi4uLi4uLi4uLi4uLjBvb3MzOW9tcHBwbW0wMG1tcHBwbW1zcXNvbTAuLi4uLi4uLi4uLi4uLi4uLi4u" +
276 "Li4wb285OTlvbXBtbW1tbW1tbXBtbXNxYm9vMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wa29vc2Jtb21tbW1tbW1tbW05MTli" +
277 "b29rMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMGtvb3NzZ21vbW1tbW1tdXM5OWJvb2owLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
278 "Li4uMG9rb29vb29zZ2dnZ2dzYjNtb29tamwwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjBtampvb29vb29vb29vb29vb2pq" +
279 "bDAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjBtb2xqamptbW1tbW1tbGpqamxsbDAuLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
280 "Li4uLi4wbW9vb21qampqampqamxtbGxsMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMGxvam1tb21tbW1tbWxqbGww" +
281 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjBtbW1tam1qam1qbW1sbTAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
282 "Li4uLi4uLi4wMHRsbGxsbGxsbHQwMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjA0bW1tbW1tNzAuLi4u" +
283 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wMDAwMDAwMC4uLi4uLi4uLi4uLi4uLi4uLi4uIiwiZTgiOiIu" +
284 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
285 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
286 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
287 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
288 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
289 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
290 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
291 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
292 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
293 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
294 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
295 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
296 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
297 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
298 "Li4uLi4uLi4uLi4uLi4uLi4uLi4wMDAwMDAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMDA2Z2dn" +
299 "Z2IwMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wYmc2Z2dnZzZnYjAwLi4uLi4uLi4uLi4uLi4uLi4u" +
300 "Li4uLi4uLi4uLi4uLi4uMDBnZ2d1NmdnNjZiYmJiMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMGdndXV1NjY2" +
301 "YmdnZ2JiMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wZ2J1dXU2Z3ViNmdnZ2diYjAuLi4uLi4uLi4uLi4uLi4u" +
302 "Li4uLi4uLi4uLi4uLi4wZzZ1dTZ1Z3VnNmJnYmdiYmIwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjBnZ3U2NnV1dWd1" +
303 "YjY2Z2dnYmIwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjBnZ3V1NnV1dXVnYmdnNmdnYmIwLi4uLi4uLi4uLi4uLi4u" +
304 "Li4uLi4uLi4uLi4uMGdiZ2dnNmd1dWdiZ3VnZzY2YjZiMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMGdnZ2I2NjY2Z2Jn" +
305 "Z2dnZ2JiNmJiMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMGdnZzY2Z2d1YmdnYmdnYmdnNmJiMC4uLi4uLi4uLi4uLi4u" +
306 "Li4uLi4uLi4uLi4wZ2c2NmdnZ3VnZ2dnZ2I2Z2dnYjZiNjAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wYjY2Z3VnMDBnZ2dn" +
307 "Z2cwMGdnYjY2NjAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wYmdidWdnMDBnZ2dnZ2cwMGdnYjZiYjAuLi4uLi4uLi4uLi4u" +
308 "Li4uLi4uLi4uLi4wZ2didXV1MDBnMGdnMGcwMHJyYmJiYjAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wZ2dnYnBwcGdnZzAw" +
309 "Z2dncHBwYmJiYjAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wZ2dnNnBwZ2dnZ2dnZ2dnZ3BwYmI2NjAuLi4uLi4uLi4uLi4u" +
310 "Li4uLi4uLi4uLi4wYmdnNjZnZ2dnZ2dnZ2diNjZiYjZiYjAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wYmdnZzZnZ2dnZ2di" +
311 "ZzY2Z2c2NjZiYjAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMGdnZzY2NjZnZ2dnNjZnZ2diNmJiMC4uLi4uLi4uLi4uLi4u" +
312 "Li4uLi4uLi4uLi4uMGJiYmc2ZzY2Z2diZ2c2Z2JiNmJiMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjBiZ2c2YmdnNjZn" +
313 "Z2dnNmJiNmIwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjBiYmJnZ2dnZzZiZ2diYjY2YmIwLi4uLi4uLi4uLi4uLi4u" +
314 "Li4uLi4uLi4uLi4uLi4wZ2JiYmJiYmI2YmJiYmJiYjAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMDBiYmJiYmJi" +
315 "NmJiYmIwMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wMGJiYmJiNmJiMDAuLi4uLi4uLi4uLi4uLi4uLi4i" +
316 "LCJ4MCI6Ii4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
317 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
318 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
319 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
320 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
321 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
322 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
323 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
324 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
325 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
326 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
327 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
328 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
329 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjAwMDAwMC4uLi4uLi4uLi4uLi4u" +
330 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wMG9vb29tbzAwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
331 "LjBvb29vb29tb29tMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMG9vb29vb29vb29vbzAuLi4uLi4uLi4u" +
332 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wb29vb29vb29vb29vb28wLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5v" +
333 "b29vb29vb29tb29vb28wLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjBvb21vb29vb29vb29vb29vMC4uLi4uLi4u" +
334 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLjBvMG8wMG9vMDAwb29vb29vMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjAw" +
335 "MDAzaTAwaTNpMDBpaTBvMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wMzNpM2lpM2lpaTNpaTAwMC4uLi4uLi4u" +
336 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wM2lpaWkzM2lpaWlpaWkwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5p" +
337 "MzAwMDBpaWlpMDAwMGlpLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5paTNvMDNpaWlpaW8wM2lpLi4uLi4uLi4u" +
338 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi5paXBpaTNpMDAzaWlpcHBpLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4w" +
339 "MzNpaTMzM2kzaWlpaTMwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wMDAzaWlpaWlpaWlpMDAwMC4uLi4uLi4u" +
340 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uMGlpaTBpaWlpaWlpaWlpaWlpaTAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMGlp" +
341 "MGlpaWlpaWlpaWkwaWkwaTAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMGkwbzBpaTAwMGlpMG8wMDBvMzAuLi4uLi4u" +
342 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLjBvb28wMG9vbzAwMG9vb29vMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjBv" +
343 "b29vb29vb29vb29vb29vMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjBvb29vbW9vb29vb29vb29vLi4uLi4uLi4u" +
344 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wbW9vb29vb29vb29tb28wLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
345 "MG1tbW9vb29vb29vbDAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjBvb2xvb29vb2xvMC4uLi4uLi4uLi4u" +
346 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wMGxvb29vbzAwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
347 "LjBoaDAwMDAwaGgwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wMDAuLi4uMDAwLi4uLi4uLi4uLi4u" +
348 "Li4uLi4uLiIsIng5IjoiLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
349 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
350 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
351 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
352 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
353 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
354 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
355 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
356 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
357 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
358 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
359 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
360 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
361 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjAwMC4uLi4uLi4uMDAwMDAu" +
362 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wMGVlZTAwMC4uLjAwYWFhYTAwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
363 "Li4uLjBlZWVlZWVlMC4uLmFhYWFhYWFhMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMGVlZWVlZWVlZTAuMGFhYWFhYWNh" +
364 "YTAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMGVkMGRlZWVlZTAwMGFhYWFjMDBjYTAuLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
365 "Li4wMDAwLi4wZWVlMDAwMDBhYWMwLi4wMDAwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjBpaTAuLi4wZGUwMGlpaTAwYWMwLi4u" +
366 "MGlpMC4uLi4uLi4uLi4uLi4uLi4uLi4uLjBoaTAuLi4wMDBpaWlpaWlpMDAwLi4uMGloMC4uLi4uLi4uLi4uLi4uLi4uLi4u" +
367 "Li4wMDAuLi4waWlpMDAwMDBpaWkwLi4uLjAwMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4waDAwMGFlYTAwMGgwLi4u" +
368 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wMDBkYWVlZWFlMDAwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
369 "Li4uLi4uLjBhYWFhZWVlZWVhYWFhMC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjBhYWFtbWVlZW1tYWFhMC4u" +
370 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMGVlYW1tbW1tbW1tbWFlZS4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
371 "Li4uLi4uMGVlbW1tbW1tbW1tbW1lZTAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMGVlbW1tbW1tbW1tbW1tZTAu" +
372 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wZWVtbTAwbW1tbW0wMG1tbWUwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
373 "Li4uLi4wYW9tbTAwbW0wbW0wMG1tbWEwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wYWFtcHBtbTBwMG1tcHBtYWEw" +
374 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wYWFtbW1tbW0wbW1tbW1hYWEwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
375 "Li4uLi4wYWFhZW9tbW1tbW1tbWVhYWEwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wYWFlZWVtbWVlZW1tZWVlYWEw" +
376 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uMGVlZWVlbWVlZWVlZWVlZTAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
377 "Li4uLi4uMGFlZWVhYWVlZWFhZWVlZTAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjBlZWVhYWVlZWFhZWVhMC4u" +
378 "Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wZWFhYWFlYWFhYWUwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u" +
379 "Li4uLi4uLi4uMGFhYWFlYWFhYTAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4wMDAwMDAwLi4uLi4u" +
380 "Li4uLi4uLi4uLi4uLi4uIn0sInNwcml0ZXNIZCI6eyJlMSI6ImlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFKQUFBQUNRQ0FZ" +
381 "QUFBRG5SdUs0QUFCUHJrbEVRVlI0QWV6QmE2eTJlMklYNU92M3YrOW5yZmV3Wng5bTd6MHpIWmxwTzIySEZxYVYwTXE1VTBy" +
382 "QkF4U0lFUlNxRW1sS2lkR0FRZzFvL0tEQmhBOWdTSWhpWXBxZ0lHamlGeUxWRDJyRnFDQk1DQ1dVdEVxbHBkUFR0SjNUUHI1" +
383 "cnJlZSsveitmWjYyOTk4endaY3BtOW5Ub3ZOZmxzY2NlZSt5eHh4NTc3TEhISG52c3NjY2VlK3l4eHg1NzdMSEhIbnZzQzFk" +
384 "OEVmalhsNi85RDEvSXovNnh2Y05SVGJzRlM0YkZ0SWdwZHJ0amR6dDJVVVVzamRVUTdJbVh1di9FMzVnZi9VVWVzL29pTUhO" +
385 "ODZwUEx6enFLclR0aFNSeHdRRlRGeE5hYW1KaGxobUlwUWEydVo1a2VPMWw5RVRqMkZUZDFVa2xFalZiRWRHZTI5akJMblpR" +
386 "bHJFNkNNQ2NicHVteE82c3ZBbGQ1MlJFalVUVVNIVEV6Rkh2WmNWU3pCRXM1cUZVdHFtWEhMcTRUajkxWi9RTHpyZm5LTDMy" +
387 "UUY3NW10M25WalJmbjBWTmZQci9pUzk3eHJFTWlvNWJVdmVmZTUvTHByeUREYkczNzV2anFDMjRldldBWnd6cGlNZVhSUjR6" +
388 "akp5Vnh0bWR4SEhucW94OTYrRzBmZnVGakgzOWw3aTQ4ODlMLzZjZitxaTlDcTE5ZzdsMHUvOXFqOGZKL3duUU1jOWI3dnZh" +
389 "aDcvcDk3NWNkZzJSYTN2OGQ4aVcvbFJZYmJ2U1ZEK3ZWUnlVTDQwTEhoZjBqLzRQOXB6L2tMSFBTM1N2eitvbnYvSDAvK0Jl" +
390 "Mis1UFc5ZnpJOFZmczR5TUh3NXJoa0lQTzhlTDNIbC82Z0YvZ1ZyL1FiSy8rYk5iTnpMU0Urd3YzeDJwWWRGVGpKTkxkNm1W" +
391 "RzZZYmRubzFNeGtLS2FXdk5EaEVaQTR0MThtQ3BMVWNMYnBMRHZ1UTlWYzAwN1M3YVQvb2lzUG9GWnRZek41bEdwb3k0V09y" +
392 "ZXVySWVhSnlsVTBiVUxpMHFpSmdaa2lHaDJXVnVVcEpvU1laa1dNT2F1R2hWamRSczdZMkpMZlhGWVBVTHpMWGx5VTgyN21l" +
393 "aHRldzE1NDVKVnNuQ3JGZ2xLeWFpS29sME1qZXlHNGxzaitUNFNKWUxScHlOMWpialVSZXoxVlphd2Q3WWNPejB4U0QrQ2Zj" +
394 "cmw3ZjloWFo3NldaMDE3Mi85dXZmOHkyLzdmZDg3VmMvdkxjNlhNUmhYVHovcFYvblhlLy9KbTBrdzlsNDhBNDVQRTAzTmJH" +
395 "elhlczhFaWVSTE9iTkovVG1WUktDdVpzdi9BMC84UDBmOWVqVjNlelJmcnh5OHdOLzJkeVljem9lcDQ5dHgrT2YvM1A5cng5" +
396 "dDgrVmRYVGg0NE1LaVJxYVV4cTAyQ0dxcWlacGlFUXpEMGVYODN2bmpmOWdYbU5VL3dYN1BzNzk5L0owWC8vTHZXTWU0Mk1k" +
397 "Z1ZwNmV2dkZYdkpjTVdROHlMaTNQZjhEeTlsOU9qNGkycUhhU0JVTU4xdFhyNGlSaGZadnhZSkFobmN5ajQ4cy80YXMrOEx5" +
398 "TVZjYkNmTUVybC84N3gxMzN6YjdkK1BqVmN2alB4c2UrWXg0cWlabHJtMXJDaWlVRXhWNTJkK0pPa1NLRExzeGxjKzBQK3dL" +
399 "eitnTHd1eTUvMmE5MXNmeHpMOTI4OUZQSGVYeHBqZjNDdWg3R2Vta2tIV05VN3UzN3RvdzVIbHp0MjhzMysvSEZuMzdsNzcr" +
400 "cnVuYnVWcnVKekNFcVk2cHAyS1Niemh1eGFZbVRSRVViRWhwVTRsYUxraGFsRzNhNnFhRnhza3N4cXhaR05FeTdqTTNGWUo4" +
401 "VmxVYUNVa3dNRkNsQlF0eEpTcGlkWm9MZEY2TFZGNENmM24vc04zOXl1L29QeHRpTXdjWGdRaXh4YStMWTJ0Vk1qRFhHRXR2" +
402 "Y1hDN01ZakRFRXNaWUNWR1pSNW5YdU5GT09qU0R1cFVFMVlSNlExQm54YVJUT3pISk1MSklpR0tYdWFrd2htVzVjSC9kM1F1" +
403 "UFVHZEZURFNzSWU0RXE0aVNhS3JZeTU2WWs2WFRGNkxWRjRCSDg4cmNqcVpwSkRKSm9ndEZ5NXlrcktrbEdCUFRPTVEyMlJQ" +
404 "QllSMGMzaWFxM1hWdXRIU25JUkZERTFwVWxSYlJrb1NVVG5yVXVXTUtxaXFTRmFHNzdtVk94bUNza3VGaXZYSC9mblNMVGV4" +
405 "bEpqSVdRNHhsdUJqRFdJWmtVU2V0dlRWbmJWZXZHTTZHeGNLTVAvRGtiNzcvcHovNmx4NzVBaEtmWjcvRCs5OS9tZXUvV0Qz" +
406 "Y2pIbnh5TmcvK0pzdTMvazF2L0tKNTVocVl3d3UzMmRabm1Jd2UrUG1lUFRKRC8zUHNuRHZncGhlM2hhLzRWdS95dkhJYkVV" +
407 "OWZOZFhlOCszL0hIdHJuT25VNVpMbHZ1U29WYko0dnJxVmR2MUs5cHFTN2k4OThEaDhwNjIwbDNWQ3ovekUvYnRTR285SER4" +
408 "NDhsbGpUQmtyRGQzTjdWVTNILzE3WkdVTTZjYTg4cEh2L1dQMmVXMmFwczM2cmw5bGZmczNHT05nSEM0czY2VTg4WlVzejdo" +
409 "VGMyNTYvSVNydi9VbmRXNHlkbGtYaitiTC9zQjNmdjhQMDVzMmRqSG5ZdHY2a3gvYVgvb1dQMDlXbjJjamgzZjg5UExqWDcr" +
410 "TW80NDZodmQrMWZ2OHhsL3p0UFlSS2N1bFB2MStPVHhQRmh6TjQ0dCthbjR2bWNiZ3NDekc0ZExUejE0Nk5xVGFhWG5xUXBl" +
411 "SGRHT2QwbUNRQlF1R1poRjAzN1JWVTRMdWRJcGlkN2J2Ui90MkpMRnZ1OFBGSS9lZmVsYXlJcWlPUy9QZU8xUWxpNHhJcDJl" +
412 "ZmUyanUxTWFNeStjZld0LzFyT1JDbDFXeVdKNTZodlZadDdwcGIvUzR1SDdYSlEzaklHTjQ5ZnJDY1BPK1pld3EwdGdOVGUv" +
413 "N2ViVDZQTHZxNWxVMU9xMHRnM1VabURwV1VySnFvbmJKa0t6R2NtRlpoKzQxNTdBSHBRYWluVHJMM0hRZUNUclVrQXdNdDFL" +
414 "NmEzZXpPNjJ6b29yU3FyT2liaFZobnhNRFFWRkJaMUhHemh5cXBrMnpJRHFHclBka1hDQXlqK1JhNXN2aUFVVjM3ZEcwTXda" +
415 "V1NjZ1F1OUhxVnB1Nk50eVlqdG45ZkZwOW5pWFRFVW5NVkJJNUxKcFZFekpGc1pPSmtqQVdDZTAwRzF2SXBHTklCNU4yaUFW" +
416 "QkVYRldWSU1XdTg2anpoMlJST0prWUJBaXpwSkZNdDFLekgxSFVGVFU2eUxTSVluV1NjWFVUbHE2YVRkcHNkRk50eXZXYStr" +
417 "Z2RaWXhMTXZRT2NnaWhyWFRKb3poR3RlR2E3SHR1NTlQcTdmUTcxNitLZS9ZOTNkamNCekhzWGoxYlI5NTk0dHJ4T3F3MUJ5" +
418 "MXJCZHkvM25wVG0rTVRPNC9wOHRUNUtBWnNsM0lrKysxem10TEt4bld3Nlh4OE12TVBjekp2dW5sdThncWRoVzNTbFdVRmlX" +
419 "Vk1TUkRFakprTEdxSWtKV0VyREttRnFsdE8ycW5ZV2hveVJqRzRiNklPNVZ1bHFlK0JqZGE3RWZyRTE5aFBIaTNPMVBubE1O" +
420 "VHN0ekg0bGFJT3J6bk4ydW56cW56NlBEcVM3NytOL3lJT1k5dVptMHpqbk8zN2RkUGY5MWZmL2JiRHRmYnhUWnkvV2haSHUw" +
421 "ei84Zi90SDNmeDMwZXhGdm85eDYrK2F0K2R2dkJ2M1hJZHEvbWVsd1dYL04xdzNmOTRYZnBjY2pZSkxzSFgvZXZldmkrMzA1" +
422 "TGoyUXpEOC9KdU1CS0RzeWovZU0vb0wxUms2eWFTOWZIeWx4MGJ0ck5jdm5RdytkK01ZcHFVTkpxU0pGcVMrdFdnaUVaYm1W" +
423 "Z3lGaDg3Q2YrbnYxNHJhMDZTVHozVDczUE1sYUN1dFh1ZE5kTzVtN09vLzNxRlhVUzJqcmNmOUp5dUM5eE1pamlKQ0xxSk1G" +
424 "Q0JsbEZuTFhYamovOFg3RzlUS2RwMGRSSGYrYnYramUrOVM4WngrcHljRE1QbnBydit2Yi84ZmovL0ZtZkI2dTMwSEhPSno2" +
425 "K3ZuaDVXTFoxN0VkN29oY1BQSHdRMno2MXBiR09NSjFjYUE1dTlaS3VaRkNVclpmYXVOV0J4ZHcyN09Zc0RSM0V5WUxTU29w" +
426 "SW9pbEZpcUlFcFowazBvblNtcTA1Nnl3SmhoZ1lvaHAwdWpQY1N1bHczQkd2R2RZNXhPSk9DRVZFM1dtZEZMdVk2cVNUSHMy" +
427 "YmE2TVZyRGxLcHJIZmMxaW03cHZkeEhSUnovczhXYjJGTHVkODlsSDJzYzlhbEhBWUJFblV5U3lkMmcxRExaSkJGalZvQkJX" +
428 "eTRFQkxvclBtbk03YWttQWdpTE9FMWtrRUVWS3RrNUtJazFSTFcwUlU1MkJPVmNRYkVrS2QxS2VFWkRESm1KcUJpaUNNUVlh" +
429 "emlqdDFWZ1JCVFNucXBHcGlsKzZJamtWQ1RUVkpUTU9jc1hjeTUzMmZKNnUzMEVOOTdoSEwwWERJMERFY0p4VVp3eEM2R1dO" +
430 "MWxsUkNFMFJFRlpOdWRFZmRhaVhvUkNRaFE4WWdnL3BNb1Nxb29vaTBtb3FJMTVVZ2d6SGNxU0tLMHFMTzZqVVpGR05JSzRL" +
431 "NEV4R2ZVaEszV3VsVWRTY3FFdHBLcG5ZYTNSbXJqSlVNNlliWVd6Zmx5bkNWZWtVUFBrOVdueVAvN1BqZ3VQVDN2L1hLOFV0" +
432 "ZTdxdGVIRWNmZnZyRDMvQWJ2dllwWXh2R3VsdVcrdkwzUGlmUGY0TjF1WkFSM2FmeDhFczVQSVhoVmdZSmltS2l4dUZTVzhS" +
433 "Wko3TkhHY0VnUXcxM2ltcUxDdXFrRlhjNlF0R291aFZpVUlSbFBYaGR4YTNTRlBXR0RMY1N0OFppdmJ6dnJIVXJ5NkxxZGVt" +
434 "a2RUeGU2YjRya3BCaFBkd1RnemdKaVR6NWxTd0hjcURVZE8vK2ovbVczL3BMdmZMcWpldGpiWWZwNWIrMy9wcGYvUU5QL2Y1" +
435 "cjErU2VqL2I2K3o3Y1J4L3lGbGg5anJ6emNIandvOTIvKzhYMTVlYzdqL1lsWG5uN0MvNzRILzFuSExxemJJUTg5NDB1UHZC" +
436 "SEphdGtxS2lkN3FoMllzcmNuY1ZaR0t2MXlYZUwxMlNZZTgxWGI0d1JHc0kwNks2ZFBrT0pzNm83YVZVWWtWSm5SVWpwOU13" +
437 "NzNvMkJlRU9udHBLcU9JdVF1TlhLV04xNytEU0MwcUtxenVLazA1eWJSeTk4M0hhOFFZeGxNWmFESjU1OXdGam9KRTR1TGIv" +
438 "b244ZENWbkUyUEhYMWsvN1F2LzgwamxybXN2aVAvdVB2K2ViOVI2NitlV25OWHJ0LzNQKzQzWWU4QlZhZkk1ZTRKN2t4c1R0" +
439 "TTNyYlVhTXd1NWd5cDdOTmh2aXFKWnNXZ1hoTlJUVWhvQ1VwRU8waEV0SkZVc3JoVFd1YlVib0tLczRpcXN5Q2lxaUtKVzRr" +
440 "NEMwcWRWRXRNQlBHR0JCRzBOSlZTSkdoOFNnaXRXMmtKZGFlZDJrcWlvczRHRmdsdHhFbWNUR3kwaU5ucWppNWF4cnh3c2Ey" +
441 "ZW1Kdk9tcWExdzF0bDlUbnl0am1YUS9LazFFZ3RJOWFCYnRyb3JLUVNnbmJTRFVNTkVyZUMwaEtoUlNpQ1J1Tlc1OVI5Wi9o" +
442 "TXBlNGtVUkZWMUZsRm5CVVJkNEpxSzZyaWRWVnZTSHk2cUR0MTFrYVVSa01TNmpYUlZFeHhGa1U3UlhUdW1xQUVqY1NkT3Bs" +
443 "MHFtS2hWUU9EUk1kcW9rRksyQk52bGRYbnlKeGJ0dEYxdzFLMmNyM1h2aDh0VGthd2tJVWM2RVJSVkp4VkdoVnhrdEJCNmxh" +
444 "OXBwamF6YjdkV0paRk1oaERzcERGV1p6VldRVjFKNG9rTk9xc29zU3RpanQxSjVKUWxEcUpPNG5XYStxc1hsZnFEUWtWR2pK" +
445 "SWpTeVVtU210dVZmbnpyS1NnZEtKMHBKaTBvcVRCbEVSdGJkdVZFdHhZL2RXV2IxSnY4cVh2SGU0K3NDTmE5YzUrcHVIdi92" +
446 "MEwvdmF5L0UxOTU5eHVWUU91N2MvKzRURHU3N0J3TXhLTHF6UC9GSU1FcFJPTWJVUlRCRW5vZXBPUkVsOGhzVGxFMDhhd2hn" +
447 "eUZvZUwrMlFSUldsRXZhNCtVMUlhUmVPa3hKMGlVYVJPcWs0UzZrNkxTT0tzRFNwQktkb1NFcmZpTElpa0R2Y2ZNS0p6a29y" +
448 "aDV1b1Z5M1pERnBUVzRmS2V4RWxwU1owbFVZdGtHT0c0VDFlTnZkWHlxTHUzeXVwTm1oZjd2M3kxM1B5SnZVZDdwaGZYbC8y" +
449 "aGYvY3JQUGYyQjdLdVVzYURkN3IzZFgrVVREcklnb2lwS0lJNjZWUjFWaEdEUkZBaEtGVnBOSXpsNE9ubjMwMmRSRExJMExw" +
450 "Vm42NkNDRUZENDZ5cGxMYUNKcFNFSXFWZUUzZmlUdUpPRklrN1JZaTZWYmNhbEFpaEZ2ZWZlTnI5aDArcGlXcUhUL3pVUHpE" +
451 "bkxrSm82OWxmOUpXU0ZTSEJvbG5KRUlNTTFNMjIyN0dMbG5ycnJONmtaZTQzbDJ2dGFsZjNSNjFXc21pSFpwQjdNaTdvcGlx" +
452 "S2F1TU45V21Db21xS2dZaXExdzFTbnpMY1NqU2hJYVZ1UlZWcFNaeTFrVVFUV3VxazRpUk9LcWdJNmlTaFJaMGxLSFVXRk5F" +
453 "NGlhU1VxclNLaUtDQzBpQnFTRXFEaVpxZDVyNUpTSml0emwwekpKRXNXRmt1R0FjRXdZNVlCc3VzSUFaMmI0WFZtelJZbDB5" +
454 "SDBISi80V0lOR2RvZFU0SWNNREJOazVaVzRsYUZCRUdwazFLcUtIVVNTVlNwa3dpS0pNNHFrbXFkRkZXdml5SWlpYk40VFp6" +
455 "VVdWc0VFU2NoenFvcXp1cXNpSlBFcDZ1cXVsTkY0bFlSRkFucVZnMVNTdXdTMmttcG90cGRzaUlZWkNFTHdkeEpKS3poZm1K" +
456 "Sm5DWHhWbG05V1oxN01GSk5OZFJnbGg0Wnc5aHZ0QkZCYUFoUkxYR1NZbUFRSnhQVFdVdFFKeWwxRWkySjF3UnhsanFwK0RR" +
457 "aFJaQWdKT0pzcW1MU0V1SWtSZHdKNml3cDRrNGxvVVVScjR1VE9xazI3a1RkS1pMNERDMnAxOFdReEZsRU84V0NJYUpLTith" +
458 "MTdOZTBKQ3dSbGRaSUhWUFhGYnUzeE9wTm1wcVVEVnVHcll2dHlWOWllY2ZieVpSY1dDNmV3VlIzZ2haMVVoTEU4ZnFSN1hn" +
459 "a0VXZDErZUFKU2FpVElpcHV4VWtWRVZWeHArcFRLbzA2S3lWamlwWGU2UDZJYm5USEpNRkFuTlduSlBHR09vbXFXNjFtU0lZ" +
460 "RVdiSGdRbEpuRllLNjFkYWRVcmZhaW1Jb2FqaXJTaFkzeHhzUEx1NXJKM1BIWmp6OUFYbmJsN2tUbWRlKy9YZCt2OS8ralYr" +
461 "Q2FadFgvc3IzZnZpNzN2MVhydjdnalN1MW1OYjlzTC9uTi8ydi92WmY5NDlwOVNadHJMTzBYQzNET2c3VzkzMmI5Zm5uTFVz" +
462 "bGk0eDdtTktxYWtxclNFS0x1bjc1Qlk5ZWVZbEVFc2x3dVBmUXNnemlOWkZFNjZRcXFEcXIrblRWRWpTa1IzcUQwR3BXL2ZC" +
463 "L3prZitPN1dMSFVISWd0Q2k2aXpFU1JBRTBaYWkwOHlCc1VpR0xBZDU3cmZJbC80UnVxbEtxWkJLcVdvclFVb2p6Z2FKMmFp" +
464 "VEZpV3M2MEZiU2hKdHJVOStKYXFkcUhsODVNdmYrNFF2LzVKTFJzVG1CMy93NCt2eDhGTnJGVEY2OExiOStzTG53T3BOMmp2" +
465 "WHFZcFpSa3NuNGxiUm5VNnpSVkZCMFJhbDA1eWJ1ZC9JR0dRd0ZqWFZJczVDM0VyaVZxdk9pa2pRT2l1U0lNU2Q3blRTbzly" +
466 "WmZ0SzgrckJhTEdNU3Q0STZhWjNGU2IwaElZazJsS0JsaUxObWFBN3l4TStJYWtvUm90clNvdUtrZGFka2tFVVNHYXVSbzlt" +
467 "TnVXdFkxMEUzUkFVTGlrb0dTZ1lqTElNNFdTeGpHS1AyMWo1cjJ0VXJQaGRXYjlLU3NYak5FcFpFVWhwUnNXUEJsS0JPNGxh" +
468 "Y1JFd1ZSWlVXVXhwYVZBVkZuRlZweFowa0t0UkpVRkV5M1JuaXBEczI3Ylc0MWw1cEo0WTRhZHdwZFJKM1N0MUp0TFJPU3Fr" +
469 "NGl5aFNkR2QvbGJtSmpZU0VvbFJSWnhGMUZoRkV4T3VDS29xcGRiSWdJaVErSlRLT3hoZzZxbk9LSGROMTRpYXh0WFoxbFpl" +
470 "cGYyeXJOMmxOcjVkRXNJUmxSRXg2emI1cktobmFLWUpCbkVRRXdjUXVHZFRKSkZGQnhWbWR0VlVWOGJva0NFVUdJYzZpUFVx" +
471 "bWRqY2ZmVmhmK1g3aTVFYVY2NThXSkhXbkNDS0tJdW9rY1JiVVNTS3RzNnFnS29tRXFoYnpWYzJSRGpJd3hFRlJKRUZFaUpP" +
472 "ZzJtS3E2VmFHeE1sQUpFN3FMSUtvWU1pNHNENzVYdlA0aWprM296ZmU5YzRIdnVMTG4zUTkyZmE2TnZudzhrLy9wa2ZQT0la" +
473 "bFBPbDZQdi9ELzFmLzVvLzdSN1I2a3k3YVYwWVlhcVNFSEQrdWo2YXRONUpwV1I5d2VEc1ptbUN4MzF4NTlNb25LVzExN3Nh" +
474 "eWVQTDVkemxMSWhuR0dOcEtVQ2NsQTlVaWFBaEpTTVF3WC80aCtjaGZOTjNvdk5KV1B2SDk4c0wzbVltbWpCcGpHb09NaVNB" +
475 "b3JTS29pWkNLa3hMQlZDVVJjYWNTdDlMS3g3N0gvS3QvVFUweUtIbjQ5ZkxMLzR4MHA5UkFKTFJGYVowOStjeHpxRHVSa0t5" +
476 "cVdvU29pYlJrWU1xNFovM3FmMHU3eVR4cTZ6ZHVmOG8zL2Vybk5VUEwxWHpadi9rSC84NmZmdlRUMStZSWMzT2gvNm5kZC9s" +
477 "SHRIcVRsdVlZa1RCU1F1WVYreFY5UkhkdHhXdEtVdnQyNDlVWFB5RW9vcDU0NXAwZVBQRWtTb0s0VmJlYTBxQ0lON1IwYW9h" +
478 "Z3dhTWY1Y1BmVFkrNlQrMk9rbHBHSldSZzBESEVTV2pSb29JaVRvSzYxVGlwMUVtSU53Ukp0VVhaWCtYbVZXYTFBNVhEODh3" +
479 "ckxSVnBKQXRXMUoxSk9WemVkeGFEREhGU2hDaEszU3JTNlZaMlp4SE5RSFM1eCtGU1F0VEY5dEM5Q3g0dG0yQ0V4WXVyTjJI" +
480 "MUp1M0pRU3JZeXRxeTc2aGtZQkluUTR0TU5jMzl4dHh2SkNIQmtCSEdTcXRJS0tLVXFqZ3Bnc1JaVWxYczJPbkFJOG5SeURS" +
481 "TWxGSWhDSFVTZCtJMWRkWTZxWWlLTzNFV1oxWEVXZHhLVk4wSlNweFUwQmE3N0ZlNlB5S3JrZFViTW1pMVR1cE9KQU1oMU9z" +
482 "R3F1cFc2NnhJYUVtbk9ndFpHQWNaZ3dSRDFzWGxNbHlPU21PTW1ObTlHYXMzYVlzSCs2VFl4TVcyMjdjcjZRMGprbFdXQTFu" +
483 "b0ZOVk9jMjY2YnpxR2pFV0NMRmpJbEpZU1ZTVEVjS3RGSk1OWk8ya3cxUlJINWlmVU5jSUlSWWlUVUhXV2VrTVRkeXBCb3o1" +
484 "TnZLWTBFcXB1aGFnNEtlMFVKeWtocVl5cFRwYURCSWtrcXFwMDBva2dDT0oxYVFrVlFlTlc0aVRxcklyVXJTUmtwWXV4WEpq" +
485 "amdNZ1lWc085d1VXcWF1L3V1cnMzWS9VbWJaMzNyMVVhZXl1VGZXN01JMk9Sc1pEQk9EQnZ0SFVXWkN3eWhveEZzdERTcWFr" +
486 "b1NpTGlWdDBaVGlJWkdPVEcvQWYvaFI1ZjBsN3IzSGoxL3pYMjNWaUdDQU9scFpQWnFKTXlSbzJFSUNFVmR4SnZxRHR0U0VY" +
487 "Y3FRaWxLa1VvMHBMb0lFaUdYUDJRK2FGL2tkVGNzZSs4NXp2bHkvNFZFc21xcllnS2dxaFNvcHBTa2ppck8wRlJGVUVReHFV" +
488 "Y0hzcmhnY3dvMGlzWEY0eUw0V2JHSzNzOTR2SjNIMy85S05abGFjYkluMy8wdjB5ZnhlcE5laW9QdnZwbmVtVzJadW1jK3RH" +
489 "LzdiZy9sUFZDbGd1SGgrKzBQUHRyVlNSRHhiMG5ubmI1NEVrU3QwckdVSnZVRzlxU0NKSlEyaExhS2ZOVi91N3ZzM3p5cjlp" +
490 "MzNaeTdsbVFhaHlHRHhLMk9CK1o0MWo3ZGFpc2o1aGlJWktMRzhTZnBScHhFVUNjbFRvTEc2NUpRcW00RkpVNFN1WWhiRFlu" +
491 "bVN2Yi9qMFphV3ZzUC9VbnpSLzVieTNxUFgvbGZ5cjNuRWFsYlNWR3RXeWxOM0VwbzNRbnFySWpYcE81OXhlL2t2Yi9OcmU3" +
492 "bTlVZjlrWC9uNzd1K3VuR3pjOVBwZi91L1AvbTcvNXYvL3EvOWtpbXV0blUrNkRNL2dtLzNXYXplaE44eTN2TnZQenA4OUhj" +
493 "OXpPNG1kVDM1NERjODdZbjdOMnpWcnJxdDl2V2gwZDJ0UkVUR3dxZzN0Q2lkNmlTaEpGNFRSZFNkWXRmOWloZS9uN0tFWlZT" +
494 "VlZFYklJRzdsNlYvbjhQNC9ZWFdEUVJheVlFWElaTmI4Vzc5RmJuNVVGTlhTQmxVbkpZbXpsTGJVR3hva2JxWHVoQkRWVm9z" +
495 "U0pkV3JuelcyRjFpZllPNFlxS3FnOVlZcUlrNUNTN3d1enFLb2xvVE1vK1h3a0lzbk1RaVcxVk5QM1plbkxqU3MyWDNmOTcz" +
496 "MDFGUDJEMTRuTWhZUHAzZVlQcXZWbS9DSjVXUHZmM2paNVltOWpyZ01IL3hWNzdGbWFuZlpTU2I3dFZ1SjF6V1JlazFWdkNG" +
497 "RmlaTm8zWW82RzRtYVl0Y2VkVjVKajZpekJCa2taTkdFaGxRVFNjU0NWVFBjS1oyQ3VETkxuRFFrVXNTdGxzU3RvSEduYmlV" +
498 "b1Jid21WSjBGUlV0Q0J1M096Wlhjdk1UOWEzRVdNVFNMczZCQzNXa1JGWEZXMUZsRmxGSzdzNWhrd1NBa08zVVNZd3lydW1j" +
499 "SzV0aWtjL056c0hvVG1vdTNUOWN1eFJMV2hiRmN5SEpmeHNDUURMRmlpSWs2aTJwSWk1QUtLczdpVGhFbmNSSm43VVMxMDl5" +
500 "dVpCN3Rjd3FpRkNGWk5DdFp5TUx5dE9RK1ZyV1FRVXQydXRNYm5WTzdtM3NGQ1ExUkRTbENRaHVKazBqZENWSlZFVUZWNGlS" +
501 "YTFLMEVxYk02Szl2Uk9EN1MvV1hOa0F6eUVCVkRuWlNraUNMeGFTTE9JcXAxRWtuZG1kcEp3enpLdkZhUkJIV2N1MkpnalpQ" +
502 "NUNUOEhxOC9pWDhyN3YvckNvMjl1cHkzY3BONzMxUS8vaGZuazVsNFphK3pkUGZYOGU0MG52NXdzYW9nYUYwOUxTaWVsN2dS" +
503 "VlZBUVJOTlJKL1VOaS9zejNtRC8yWjgxNXBUM3FkbVBkWHBKUlp5MHQ0L0JRM3ZZK1hKSVZGL0xnRnpNdXhOQkdzcWdyZXFU" +
504 "WDJvMjVxMGxMNGpNRlZTY2xTcW02RlpRNGFUVUVTZFJaSlZIRVdURlFPVlQzblRFZHYrODc3VmtkZTJHOWZMZDczL2puQ0ZW" +
505 "RVFvc2dvUWdhdHhMdDFKWTRxYlpHRmhWTXV1dThvcHVNeFo1aEMxZDd2WXFKYmRiU2VlWG5ZUFZaWEYxc3YrTWo2OGYrbUc2" +
506 "T3FldTlmdi92K2FCdit1QUhyTXNpeTBIR2FyemoxeHZQL1RwM29xYllkUjYxMDFuRXJaSlVSVnNTUWNSWjFWbVZWb0tySDVV" +
507 "WC9yclJIYnZPR2lzWlNGU01zY3A3dm9NdisvZkVJS3RiUGRLaldzalVITXdmL2xPMkgvOXUyNzR6anlJdWxoc2pTQkZCUzlS" +
508 "WlN0RkVXdkVQcTdoVGQxSjNRaFJ4S3lqTEUrRnRkVGJ5WWVNcTlvOHRQTmdsVHFwSXF3a2hxTE5xaWJNaVB2RXpQK2JSeXk5" +
509 "SWhveEk0dWwzZnBuN0Q5NkdEYnNjTGwxODdlL1ZXUmRPeG9YOW1lL3h5RThxSnRhcW40UFZaM0djVnkvTVRrelRGTkdOWHI5" +
510 "aUh3ZGRhaXl4emhqZHRUc21xazVhUkZTZFZZS1dJSEZXUkp3RlZVRlZPK21Oa1VrcTZNQUlnNHhoTEl0YzNOZDMvQnJteTI1" +
511 "bElOcEl2S2JhYXdacnJxeWpqRWxMSXFrV2NTdEIzV29pTGFVK1RiMGhva2lSYXB5RWtzU3Rla01SSVpIRXNnNFhZK3F5WXNV" +
512 "bVN1Sldva1duVHltZDJtbnVOOHlORExLUTRWT2lRbVBPaFZDUkxQWTVMVUhZUTlPam40UFZaekdhSnpiVGtscUNjSGx2SlZP" +
513 "Vjd0cnBySXFpdE5xS2t6aUpGS0ZGSWs3aVRxTWxjVEpFU2FXN3Rzd3JzMU9RVVhFU3I2bGJEZU1CRHBqU3FxSzBwTmh4cERk" +
514 "MEowT0V1SlA0bEZJbitmOFpnOWVZWGZlRVBzalg3Mzgvei91dXRkYyt6V0VQSTBjNWpCZ0VnbEJHcTRFRWJDa04yc1pRc2NY" +
515 "VVU3WEdmdERFTDVwb2JHTFVOQ21sTmxFU1cwTmlRQzNZRHpZTnFUYW1wcUtTVml1bDVWQm9LUU1NaHpuQW5qMnpUdS83M1Bm" +
516 "LzUzUFlhNjA5N3lBejE2Vks2NlFxcUJjUzZxUTBDSzA0cVlwUDA2SWl6a3JWeVd4a1RpY1JEZW9vWWhBWExZcGkwcWx6MHpr" +
517 "WmRGWW1jN3VoOTFCVU1zaENCaGt5RmxkajhmS2dXTU1hdHo0SE81L0Zaanc0WkpCYXhxUngvNlg3bHV4VW5hUlRXa3dVUlFs" +
518 "VlFjVlpnN3FJNTBJRWtURmNWQlBtSnR0RDJ6YkpNTlJFeXpSMFJHWXNaWFFSZXpLMUU1Vk1GSk91ZEdVK3RNMUpZcGVOQkhG" +
519 "UkZSb3ZCRVVSUXB4RUhiV1NxS01pZFZJWFVSZlJCQldoM2xaSzUzUllZOWsyZXFzalpHQ0lSUVRWVmowVE1pU1JzWk94cURJ" +
520 "M25kTzIzdWk4bFVFNlZhVWxJWXNzaTZoOWFBbFc2Mi82SE96YzhXL2xhLzdaUTJydEkwOXo2d3UrN09vYkg3M3JOVmNqcnEr" +
521 "aUdkNzQvQyt4dlB2THpKWXNpT3p2YXpkcFVWVVJ6N1hPUXNSSlJVb1RKM0VTTFI3OUZQT0dlYVBiWS9QeGgwblZkSmhCTFZl" +
522 "dnl2MHZrU3l5M0pQeEV1TjFaNDBhWXVqdHI4bVRmNkI5U2xkemJ0eCtoRlpORTNGU3owU2ROTjRoSk5KU0dxTGlLTFFWSWRS" +
523 "RkhJVzJDRXBKS0JJVXFhQW0rL0x3bDYzLyt4OWw5NUx1N2xtV0srT0RmMHBUV2cxYUY4R1F4Tzc2dnZXd2FqZHpybXExSFc0" +
524 "Y2JoNUpIRlVQVDgwbkgyVXNqSjI1N0R4OSt0aGFXbWJycGplLzRYT3djOGRQN1gvNUwxMk5nMkYxTStKMy9lNHY5OTNmK2RY" +
525 "TUo1Wk1zVmkrK2p1TWQzOVFiQ3EwQkMybVorb2tUaExxb2s2aUxlSzVFRFVQdjhsUC9NdkcvSmgyMWJuU3plN2EwYlJ1d3pZ" +
526 "WHl5dGZaLzgxMzBPS0s3TERvTGNZa3FFWi9NWmY0eGYrVTNGanprMW5wWnNScElLcUlDZ3F4S2NMYlowa1hpaFZFU2RWRVZR" +
527 "ZE5aTDROSFdSb0JRbHBudXZjZmo0RTRkZi9NdWFSY1ppN0svNHhqK0pTWXVLSUM2aWh0ZmY4d1g2bmtrMzdVYmp6WTk4eUp1" +
528 "Ly9xYU1SVVo1OG12bWovODMyRXlUV1c5KzZNYkRTY1J5bUw0Zy8vRFAvQzAvN2JQWnVXdmMyTVptN2NGTlk5MXEyVzdVWkF3" +
529 "MTZIVFNGblZXbElxNG8xU0pvd2lLSkM2SzBxalNnODVIMXZYR3NGcFNSa2tGdTBFeVpBekdTOWd3S0EyNlloSEVSb29EcG1T" +
530 "ekc2WFZVblVTSjNFUlo2MGtubWtyTG9xZ2lJc3FJYVhxSklMU0VNL1ZNM1ZXbElneGF0blhtS1hWVEJMbXh0Z1FKMDFvVUhI" +
531 "VXFVcW5JTUlZeG02dmN6WEdJc0Z5aFVYbmxKYXlpWU9qUmpwOWF0cys3bk93YzhkcUUwZWxnNjFWVTBZWWU3R1RSckxRcWFh" +
532 "MGlvb0lpYWlUdGlqaW1TS29PbXNKT3JWVDU2MXRPK2pHR0NVbDhVeEdMQW03KytRK2JtblZsRlp0b3BoMHFodkpTcWVVaWpo" +
533 "S3hFbWRGSzJqU29LZ2lHZWFDS0lVb1lnNHFTb2l6bElYUmFnWGdub3VLREpZbHNneXRkRlNSVENjUkJBblRWQnR0UlhWVmh4" +
534 "MWlpQVlpSXdyR2Rka1ozUVRxNnZkalN2TU1zV1c5UzMxV2UzY2NUQXRobjI0Q3Z2OU1LNnVhV1hzSkRzU1p4bTBxczRTNnFq" +
535 "TzZybWdSWnpWUlZ0UlNwVVVGU1hJUUFsR0tCSVhRV2xVU1RERlNxYzA2bWg3cU50QlhNUlJVS3FJT0dvOVZ4b2k2aUtPV2kx" +
536 "Q0hOVlpRMVNLaEpZRUlhVFIxa205clM2S1JwVVFrU0NoRkRGUk1paUMwaEJGYVVXZGhiWk9hdElOQTR1TUlSbU1ZTEVQcjE3" +
537 "RkE2eGlNNlJ2L1pyUHdjNGRLN2F5dzBoYzNYdVYxeitnallSdWxkMUwya21yZFJSeDFHcUxlQ0dTYU91c0NGRjFVa1dVVGpK" +
538 "MWUwUTNGR1dRREhiM25CV05qTkpIdEpMUTZzMHY2U2YrbWxyb0RYUHkxayt5VGNSSlFyd1FSUkJ4bEZJdnRJZ2kzbFlhWjNG" +
539 "VWluaGJJbWppcE9xWm9FamRFUmMxWFJRek5WU2ZmRUplZmgybFZaRkpFU1dsM2hheW9NWlliR01nTWdaamIreGYwcVVtWXVm" +
540 "VjEyNHNlWXRSMTl1VjEzTHZ5LytZYi9yWTkvVkhQK1czc1hOWG1XRk5iR1B4dnEvOGR2bUMzMmZrMW1KVjVKV3YwSzVlaURw" +
541 "cW5iVXVJa0VSbjZhdForSWs0cWowclorUm0wL0tmcUV1eG81WHZwaXhpRkR5eXZ0bGZwS0dERlY5L1BmNHU5K3JwYTJxT0Jv" +
542 "eEJrbTA5VXhVRTFKS1Jlb3M2aVNKWjlwU0Y0MEVvWW80aWFORWk5WTdWYVVFUllSV1JlcXNKVHZNU0NOb2F2Nk4vNXpmK2U5" +
543 "SnFSaFhyekt1RUdkMWtiZ0k2cFYzLzBQT3NtRG8vQ0xyMS8xaG5SdmRwS3Z2K1B4SGZ2Q0gvb1Nvdys3R2JYL2pyM3gwZmZq" +
544 "dCtGLzhObmJ1MkdkWVVzRUluYVVURXl0ejZyelY3RVVRUWV1c0xwSklYY1JaSGJVaVR0cEtQTmNNQ1dNWmpEaEpTR2tyTmxy" +
545 "RVNVMDZNWnhseUhMTjJCdXRLcDJrTXFxb1V1b29DSW1qRUMrVUlvMFhpaERpb2tvamliUFFoRmJyYlNVa0VYSFNsbEoxMWlL" +
546 "RVlJeXdPSnNOaVl6SHVqNVNJVHZ0aXIyelJBUkJ2QkNDRUVNektMTURLOTEwMndoUFo4MFJFY21OdzdoZGJINWJPM2RjWmJq" +
547 "S1ptQ0xvOUlEODFiZG9uU2l6dUp0VlJFaGNWSUVWVXJVUlJGSm5DU082b1ZWVzNNNnFpaWR6RTFTTXNoQ0ZySkh5RUtHWkVl" +
548 "RzJGVElJTWlrVTR0U0pSRkJ2UkFuZGRHVVJsQWt6dG9LVWhxMEJBMUZIZFZKNGlndVNpS2xTdEJJcUlza0JDT0lZSVNhMm9r" +
549 "cElvcVFnUkJuYlp5bElnaXRwblRTalhuUWVVdFg2Y3AyNjRCVnRFVHRYTi9uaWQvT3poMDdEQ1RNTXVlcTYyTnhnNVVzaWlT" +
550 "SUNDMGxxWlBXMlJBVTlWemlJb2pFMFhEV1RUdHhNTlVzbzh6RzJGYVpUOGkxam11NlNFbnVxNU5nS3BLVk9URklYQXhNT3JV" +
551 "MGtTSjEwamdMV3VLWk9LbVRxSXBJUWt1S1VwUjJNdU5zUk9Jb2xJeWlUaG9pVHVva0lxck80cWlFaUtLSktDS0pXTWpBVUtX" +
552 "UmtGQW5vVVVKT2xGNksvT0piZ2ZwMUc3TUtmdklpRFpXdzRQZEs2OTQvTVJ2WitlT1RRV2QzS1oydS90Y3ZTYTVaVXdzWXJn" +
553 "SUJvbTUzVnJYRzVRaU1STDdxL3VlS1NJSUlnbWluL3dKK2VnUGFSOHpuK2lUWHpaMmpxYXFiUTdqNmo1di9ENFY4Z0I3N1Y1" +
554 "LzhjOHlxR0F6SC84YTY4R0hmbUg0cVovYkhEckVVYWNzdzFpR0wvNmk2YXUvY2hwSVhKUWtUb0o2VzUwbEtDM2lJa0ZvYVAz" +
555 "RVR5Nyt3YSt0MXBYTUdxMElyWm40MW0rTjExNFpsa3dTSjBVYzFWRXBWWUlGcFNZWjVzZC8zUHhiMzhPeU02NWZsYS80MTNu" +
556 "dEsxRVgxVHBMZkpxZ1RrcUczZnUrVHVlbUxaMWVmKzFOLyszM2ZZdXhXMlFNdVk0ZitSOS85VTkveVYvd0h4cXJOWHZidGov" +
557 "OHhmWERYK1VkZHU0NG1GbzJjY0RWSzUvSC9TK1VaWk14YWJTaEpaVTRpdHVicDU0KytvVE9xWjFTZGxkWGR1KzU3eXdSUVZ3" +
558 "VTFlTEp6L0dyMzA5V0xlbVVFU05Wck50Z1hNdTd2b094SS9mSm9rOCt6TS8rR2NZcVhjMXRkZGltRDMxbzUvdi93Z04vKzhQ" +
559 "WFB2SHJuOUNuTjFJaWt1RzFkOGQvOWgvemozK0FlbHVwVWtjVjFGRXFSZDFSaEF4akRMLzRTL0ZuZm1EdlozN2xnWnRQUG5T" +
560 "MWJmYXR4YlF1aSsycXZ2SWZqWmMvY0dXTVcxSVZVV2RCSGRYWlFFbEthV3UrOWZQNjFzK2JZekdYYTd2M2Y1dTg5Z0dLVUMr" +
561 "MHp0S1FhSWlUd2JneTN2c050Q0prR0k5K3haZCs2Vjh4bGoySkRDd2ZmdjN4N3MzWHA4M0JIbnQzRFhla1ZVRkZMR1BCVGwx" +
562 "aGp4M2lyTFFUVTAzdDFFNWFOYzFPMUVXYzFGRWRWYnZxdk5IMWtia2RaTmFpUmlKakdHTVlZM0cxaTdHRURMclEwR0JUSzNN" +
563 "eWkwaml4LzV2UHZodDMrMi8rNHQvemdlLy9tdHNrNWtZWVovcDBTZW1qM3lVN0labWtTQm9VU2RGbEphVUlJaFAweEtyLytL" +
564 "LzNuelR0LytyL3ZLUC9vamYreTIvVTVhZEpnNDR6Sm9ydDRmcXRxRzB0QWdaQ0NHb3FvczZHbVRRRXFWbGJqb1BxSVlxcWkz" +
565 "MVhGTVJoQXcxeUJDTFdNak95RTZXbDlpL3JMdjdMTmVNeFRicTZkZzhTajNxOU5CVGQrM2NFVVR0a0RDV25ZeHJ5U2FKbXJR" +
566 "b0pxMDJ1aDNNYlpVTUVrRXl5RUtMYWhGSDFWWnNkTlBlYWdtQ09FclVVWVpsSUl0bUw0cU5idlFnUFpDaW1zVllobjBPMXFl" +
567 "YmovLzZFdytmSEp5TXNtQXZHaXdsQThFVXo0UjZJZFE3QlhWUnRkbTJ1TDJaUmhoYjdYZDdlMVN0WlUyMXNjMHlWM05PRVJM" +
568 "RU94WHh0b1M0U0NXUlJEQ1VPb3FnNGlUeERoRTBCQzF4RW5VUlFXVHNqQ3dJM2VobW0vVmsxaGFLbmJocjU0NWx4SDdFZ282" +
569 "NGYvK0JaR0R6VzZxampXNTBxaGhqa1pDeGtHZ3JyWk8waWloQ0ZpT0RRY1JaSEJWUk5SdEQ2U0FIM0tMTVI3WjVNQVlKT293" +
570 "UlV0Lzd2VCtnZitvSDVPbU5mWW1xbU5oYTAxR2RKZFJKMUVYcW9pUmVDQzFhRjNWWVkyN3gvZi9WOS92di85d1BtSStldU5w" +
571 "V0t5WW1ObVJ4VVF6aW5lTFRKQVJ4VVRLY1JVaGNSQjBGZFZSSnRNNnFpSk9vcWlDaWNWUTZtUWUyaDVMUVNRNjJydFl5c0lS" +
572 "N1dYRHdUanQzWElucjFKTGFScG1mMHR1UDJYb3dIVkRqNm5VU3o3UmhEQW5pcUNxMHpDbUt1b2lnSXRsSkZwMVBqYkdncXRw" +
573 "S0hKVkpSUThQOVVQZlIyNXA2TUc4ZWFJdGt6R0tqY1JocS8zTndUSTNuVk5Sc2FtdHJHVmQyV1psVkwwUUoxVW5rU0FSRjdQ" +
574 "VjZibVdiWElvNjVPbkhqMTlZcGxFRlV0Q1lsbTR1aDZNbll5REpKU3FPQWtpb1NqaXFGVkhqZG5JcUtvNDZrUVJGSEhTSXM3" +
575 "aXBGcVVoRHFwb09Ja3UvdTg5NTlnVHAzVEhNTjY5Vkh4YzVZUis3S3p1R3ZuanBGWTFJSlordlNUOHVTak9JaFZrYXRYMVY1" +
576 "RVUweTcvVDFqMlVtR0lralFqWVNFVWhmSmtFUXRyRS9Wb0ZQVVNWMjB4S2FISi96Ni82Um82VVJaUW9MR1NkWFRWbFZiSjBr" +
577 "SXMwemNUbTdYbU90bTJWT2hxTGVGVkVLOFVCZEp0YlRNeVp4c2s4NmFxU0tPeWxBN01aYTYyZzlacmlXT3ByTlpEUW10bzRo" +
578 "b3F1b2lPb09naUJmcWhib29kVlluZFpab0lvMW5rbENNYTE3L0JuT3UybW16MC8zL1lSZjJZU2VXK0F3N2Q5UlIyTVRhMnRa" +
579 "YjNaNlNqVlF0NmlTSVpKRXdsaWxabkxWT3F0NHBvdXFpV2tlVGJpNnFxcTEzU2dneVNsQWF6R0hPd1NRcHJXNXNHMXVkRFNl" +
580 "VnhoS0dPalE2bWEweG95NkNJSEVVSnhXcGkxVFVXVkJTNG0wbHFrSVFsSlFka2pEMmpGVkVaMUZNYldrUkZTY0pyZWZxcURS" +
581 "VkZVV2RwTlJKM0JWUkx6UW9TUkJDRXRPQ3FSaUpmZGlIZlp4VjNiVnp4MVNIMHRiVDFucTQwZDZLa29VNEdpUk9LcEpJRmtt" +
582 "MDlVd01Na2ljVkFoeDFHSktvcWFXS0Nxb2swZ3F3aGdxWW1nV25mZmw1bHJXVXBSTXVteHNiMW83dFN4bGlKRmFTaEpiV05B" +
583 "eVY2Ukd5Q0JPUW9LS0VwUzAybWdYU2hySmRKWE45YWk5a3pnclZSRU4yNHo1OUpvbjc5YmRqWXhWYkhSajNxb2JIYmVTWURn" +
584 "TEVTMk5vNkorSzNXVUNDcmltV3E5TGFJVVFZc0sydWtzaTVHRnNYTzk3RjBOQm9xcXUzYnVtSzIxck9LbWJOdFVrU0NETVRS" +
585 "RERCU1RZcTdtdGpvcnhuQVJ4RWxDQlVXZHROVldsRlpDWFNRVlJ3bENGclhUdzVkYWYrWGZOQjZYMjhkc1UrWlFpOTU3NHQ3" +
586 "aHo5cVdqNXRacmJPQ2ZXSWY5b205NmVWckJ0WkRWTzEyakRGSUNGSmFjenBMMkxhZGVhanYvWjdwOFVOMkMvLzhIK0Jydjda" +
587 "ZTJzZHVHUnEwaUsxc09HUVlqWnRmL2hadXZ4VjczVlhIcXN0ajFwV3JYNURQLzBFZFV4SnB0VVJFUlVsSUVCZHhFbEdsMUVr" +
588 "VkVSY2hwYzZxRkMyS3FkM0VrTEZnR0dPeExEczdjYkloUHRQT0hRZXNqYTExVUk4KzlwTzgrY0MyWExGY0ljWkxYOGoraWha" +
589 "VE8yVk0xL2RmY3BaZ0dNdmVXY21nSldpSjRZWFlKa3ZRS2lJU1J5RkJhWjNkdkdRNXZLNjlJWHNaWVF3c2RuUDRwcTkvdndm" +
590 "di9vZzVhaDAxVzd0d2J4ZjdaY2h5NVJ1K3FxNnVwai81cC9tSnYxTlg2by8rMjhNSC82bTltTktET1dsUlJwaHowYm41cFYr" +
591 "b1I3OVJVUi83NXVpeStJUGZOZnd6SDJFT1ptdTJEdHMwSjRjdDFsRnZQSGlmOFhqUGJtRWJqQ3ZKTmJPc1U3b2pCMm5NZFRL" +
592 "cms2cXVrUkRFVVlLb09JbW8wSkxTYU9xaTFGRzFRZWxFVWUzVWJuYlhEOGlDbll3dzltYXJZcGFvdTNidWVMUXhRc28yNmxP" +
593 "LytuZjR5Qk5kZG1ZV21aWDNmYVBzWDBWUjFCZzc5MTU1M1VVd0pFRlJiVnhFRWtSY3RNekpHQ0dSa0JEUnVPaE9iOThRbXg3" +
594 "MkhHNG9zdWh3TkdTRTFBZSs4SXQ4eFFjK29wNmExMjlaZHdkanhINGZ5VTdHM3RZZHV4dXpCN2RQcG0zV05qY3o5MlNMSlFk" +
595 "bWJXc29WVlVSRWxzMkVqTnh1dzVmL3p0aWpFRUdLVjExVG4zeXdMYnVuZXgvTmJ3NXlkQ1VHVUtSc1pPYjk4czhzRHcyYmo2" +
596 "bDI5VFNZcEk0aXVjNkVTZDFVbEpuOGYraktFb3FwY2pZMmQxL0YxbXdRelU3aDdLSjJkcDF1bXZuanBhRVhWZ0dWMWM3V1VJ" +
597 "cVZqcDEzdEpWVEJjaEVTZEJQTmRxMEdLUUlpS2tPa3RDU0JpaENZbWlkUlJ1M3V2MmwvKzQ5TmJpaWF3N3JNeUlPSnVWNEsx" +
598 "dmxVLzhrNndINC9QK3ZMN3JwN0VZcldTVDBsWlNYL0xGaTQ5L3JIWlgwLy81TitMdi9meU5kcHF6MWprVUl4WFJ1V3Jqclll" +
599 "OCt0NzRzaStQei91aTBBT05kSWhCbzQ2Nmw5LzhROGJqTDljZWVQd3l5K0pzRm5VUm5lKzFmZmpmMWVWMTQ3VWY1Zm9IYVhX" +
600 "V29rZ0VRVkNMb1lncVFxbDZweVNDS2tXSzBxcWpCSXV6eGxscTYzUmJEdWhFNjY2ZE94TDIySWNHbVU3YUExMTFXM1Y3TFBN" +
601 "V0lRTkJFQldKaXlKRW5hVXFGS20yaElSbElVSVd3MFZEU292RFpybDliQnlHOUFHWmlEb0pRb3ZKZGtYM3NvYjVtbVdFRUVj" +
602 "dE5vdU5HNzdydS9qTzc1d09hLzBIL3o0LzlyOU5pMDFhYXpsZ1lqYXFEQmIxYmQ4ZTMvM2R3MWcyYlp5MEU1VXNobUZteC9a" +
603 "K1dUOWZ0NVdzdWt4bmNkR0lpT2o2c3N5RnAxZTJQV2EwdENodEpZeEVIR1ZEMVZGTG5DVkJmTG82UzEyRXVraFFGTlZ1ZExO" +
604 "dW0xVk54Rzl0NTQ1OUZ0ZXBYWWQxaGl6TU1wL1NsWFdWdVdMRFFpTlp5RkNrbFRxckt1SW9rVkoxVVZSTE1pU0xqSjA0U3Br" +
605 "YnJaUFI2Tnl6clRvamRiU1FTSWFURkMzS1FzZmdhckRmV1JKUzZxZzZwNHVLR3VIbUVCLy9KSWQxczQ3YUlkaGhLMmxOYksx" +
606 "YjNML0hHSnVCeHR1Q29DNUNwODZOcnBwSm9pVXFvbkUweUtCbFBiQWR6SFZqaTNoYkNlSWtoa1VFb1k1Q2tTZ2lUb0txSWs2" +
607 "Q3FwQzRxSlJtb21LYWM1cmJSaGtoSWZFWmR1N29ldjgvZWFuckRWa3lkdmQvOWljZS9odS8rUnMvODhiYVRlZTBuOU1mK1B5" +
608 "ZmRyWGRaOXhqdVpaeFpYZjl3TzdxQVRaYVRXbkZSVnRFbkpST1ZORDdYMmE4NTNjeEZycWFOdy9sRTM5ZE1sWFVvbmxGeG4z" +
609 "SlNzT2NKQ1JPcXFLa2hPeUdqSVZ4WDVhRmJEcEwwYXBJeUJpV3dmMzc5ZW9EUHI0czJIU3lROFNDRVc1SGJPcGJ2cm0rN3V1" +
610 "WUxXS01PRXNJU2sxNllIM0k0NDF4SUNHRDBJUUVRVlNabTZ5TGJrOXRXMWxqRjZJeVlyN25neXpVdGMyMTdGNmxjWllpVGlJ" +
611 "dXF1THhKOSswM2o1VkZUR1c0YVZYMzJ0WmRxcE8yb1BESjM3Sm5DdmR6TVNZTjNZSnFXQmt1R3ZuanY5M2ZmT1BlMmJELzNy" +
612 "MWo3eTVmL2lkeVNhREI0Ti83bC83cU56N3FJNlhHRmVNaFZmZXNMdDZXUjJsdE1UYkluVVI2cWdSUmVWOXY1LzMvd3Rrd2VT" +
613 "dG56VC9yOTlqakVrcVkyUGNNNVpyMmFLNVpWNkpqUTRFSlNSRDlvLzArbFBxSmNrZ1FUMFh6eVhVY0wyUDMvOTdwNS84dTlN" +
614 "TUl5eUQzYWdSMHRqVXVJNS82UTlORCs2aEljNlNxTkJTUjFNN2RmbXdNZC9QOGxUbWUxajJqSVZRa1lTRVZsb21kVEJ2SzFz" +
615 "WlJkaGZ1LzNhNzVHcm1Db1o4c3I3N0RzMW9WUUZWU2RSSjdlUFArWDI2V05DREdOWlBIanREY21DdWpoWUgzN003RUY3d0RE" +
616 "NjFBaExuQTF4MTg1bnNYWjFNa294Um1TMzErekljTlpKRDlxVlRqV2ROWWlFeEZsYkx3d0pOYlUzZEtBNmI4MzFZSTVhbGsx" +
617 "Rjd2MmNmUEYvcE10Qm43eWZYL3hqTXRGTkhZVWtaT0cxdnlyditUR1VjYXR6a3FnNkNlSW9VWEdTOEh1K1krZDNmMGZWeEhU" +
618 "U1JzWVFpNHFSYVJSektwS29veUswam9yU0d1Ly9TL3JHLzZ3VytkVi9SUjU5Rlpra0VpUmthbTU1OEVQcXFkNzdGYnNETWdV" +
619 "and6UmszSnE1b3RQc05PZEJiVFFhUjlGNnJvcHBkdE81TVNLREdpcnFJb21LcVNoS2FuYWFHRmdhbzNIWHptZXg2ekF3eW15" +
620 "bE1XelkxTVRLckc1UDZTMGxDZUlzanFLdHM1QTZDa0lqY1ZSMUVqSm96VmtqSmFXM1hQMG1KWGtWMTFKc1UxSU54bEJYT2pZ" +
621 "Wmo4aXFLcVZPU21nUlJ4RjFVV09wRWFMYW1LMjJZcE5zWkRpSjZES2tGVVUwYUFWdFVSTDJtKzZxWGJoNkpBOTNNdU5zUWFK" +
622 "anluakNxMy9ibGtlQzNJWldHM09RdWRGSXFZR0treUkwRWhyVVdZSVNKNlhWa3E2WXBCU3RLaVlxVG1yZE5sdHJhUlNMdUd2" +
623 "bnMxaVdhNGZjdURMdFV5T09ZcmZFUkR2TmVkQzVNbGZOa0E0U0JDSGVJY1JSQkJWYWhBUmxIbEF0czZRVm0yUWlYSDJNei9z" +
624 "ZnlPb3NCOW51c2QzVE1YanRiekp1VlNsMWtUZ0tRYUtPNnFpZUs0MmpHdkhwV2lkMWtRUlJKM1hTdW1oUXdyQ3B5Y3MvSzRl" +
625 "Rk1WRWRtM1l2bmJiZHdlaHFOMXlNbUZ0TmROYlNBM05UT3hMSkloa3FKSWdhNGlqMVhDSmpNTkNhYzFVeDU4RXloNU9pODhC" +
626 "Y1pTQ0xKQkpuMDBWOXBwM1A0bDE1N1lkZjMzYWZmTlEzLzhWRG5yeGtuZjdMUC9Ibi9aRS8vUGU5OU5vRHN6VlYzdjFGN3Iv" +
627 "K1J6QkpVRkVucmVmaUpJcDZXNExTcWFidVhqWG5mWE45YWl6UlFaYktycXF5L3hSdi9GVUUwYUJFeFVsSkJYVVVGdzJKazZx" +
628 "VWVsdENTWXFRYUN2eFhGdlBKVm92TktpcU9JcWpPSXV6dlB6WDljSC9JNE9xcXUzaE1EKzFVVHlkTW1pY2pjRlc1bVMzMjN2" +
629 "cC9WL0ZlS3BDUTNaaVlKQmdlUHJvTFU4ZXZpV28wTHIzNERVdnYrc051cWxKYXhsRE95VXVPdG1la2oySnBwWlJTMklyVzJ0" +
630 "bnVtdm5zL2pocHovM3cvL08rT1lmK2Z1N0gvOWdwbi9NckwvNVl6L3ZELzdUVDl4LzR6Nm1tSXpmUVliWXRDVkZQUk54VWtS" +
631 "RjFFbFJXa3lkbTdyU2JjKzhNZUlzalFncGdtcUlvMFRVUlYwRUpVV2NORUZGbkFXTnFMYVNxSWlna2pncDBraXEzdGJTT0Vt" +
632 "b2l5Uk9vczZLRWtkTHNXbERLNWt5SzYyelNZdFUwSkJHRXJKblhNbENHbTJkTkk0cVJUYmI0Y2JoNW9tSUpDU1cvWDFYMXkr" +
633 "cGpXNm9HaTRxVG9vcEpuWkdodDJ5TThJc3M2enFycDNQd1MzZGFtcDBNRnUzYTIzckxVdU1aVEdXYTdLbkZiUWxrdzRTVldl" +
634 "bFF1cUZvclFvR1VhR01VZ1dVa3gxRXZVNWlLUFNDT3FvaUtQU29CSkhFUlFSYlNYT1doZWg0aVN0Q25FVVJWUkY0cUx1S0Fs" +
635 "MU5GVnB0V2hJdFJGMVZpSWlJb3lGTVRCSU1GRngxSkpKYTg2RHVSMk1MRHFHWWFBa05CaWtJcDVwSjFibWdSbVdZRWhpY1JU" +
636 "bXdQUVpkajRIaHphSDJiUzBkVmg1Y3BqbVBCZ0pJMlJJRmpXYzFWRVE2aWdFY1ZUcUluVlJRcktUY1dVczF6SjJra2tQQk1H" +
637 "c3hGRTBkZGJTRWlRdWlraWlLdDRwQktVdUVsS2FpbmNJU3AxVVNoRkhDYTNQRkNkVlFSSlZXaGQxMHRMV1NWSEVVU01xWVN5" +
638 "aGl5eDdzbUNnSkZMcXBMUW9yWXZTcVdnMzdVUUpLVFZkRkJQRkxTVmxKTElNSXdRVmk4VmRPNStETis5LzhoWGI3dFdubU9Y" +
639 "ZTh2KzFCMit4dXVhSGZaQ2YzLzk5djdYMllZNjJFenRKbmNST0NxUXRQVjNRUmxVVVVxWHRSUUdKUTBVbGxGNlMzRUFSaHdv" +
640 "dUl5UXFsUXU0UUtCR0tPU0NsaWdGSVlXUWk0U2lKaW1FRUFJbFRVTktvMGJZdFkwOTl0aWVQYlAzV3V2NzN2K1A3N0Qzek5n" +
641 "cGVHTHNIQ3cvejJCZGRWMWxGOFppbEhaUGtVaENxOTFJbkpWa2tLQ2tsS280R1pKaHJBLzRtdThVbjlWdXpEdjJ2eVRiSzFw" +
642 "SEZTVFZGRkVYVVJjaHRFUUlWVUU5RlVkRm5EVGVWRVRFVWFoU0JLV0lFcFRHMnhRVlI2RXRJVE1jUWgyVnhrbFRKeTF0ekxJ" +
643 "YXhzdS9oOTFEbHAza0lUWVY4VlFpaXFpTHNheVdkVWRDSW9hTWxZVEdTVlA3MnlkMFF6RE4yemYwczc5cWppSExUcGRoM0x4" +
644 "cXhFVnJpTSszZWdjKyt1U1h2OWQxdi9HUVlkajhJOS82Ym4vd3UvNjQ5ZnFCakZXejh1THZsb1FNc29qWXRvUFB2dkl4czV1" +
645 "cWtYancvTXZ1UGZlaUtrVkk0eVFaQ05jdnlCLzd5Mks0aU1QUGZaOTg2SzlvcDZTRTVhWEJVcTJMT2lxSk9DcEJIYlVrNmlL" +
646 "cW5vbzNCVVZRSjVXU1VMUXVRaHR4RkdkcHZTbWhqa3FjemR1WW42NmtUbG95cTYwMldxYXEyTC84Uit6K3FmK2E5WUVSb2py" +
647 "M1doU0preUtJUmRYREY5N2w0UXN2azBnR0ZySlFSOE5KRzdlUFBxdnpvSjMwWUR6NXFPMVhmOVMyckZpTU1jMVhYcldWS3VY" +
648 "S3I3ZDZCNjV5c0xlcWFsM2tDanUxaUVGV0dZdDJvb3E1SFJ6dW5xQ2FhbUk3M0dsTG5SVnhsSGdtUGRDRElrb0dqZEdJSUlx" +
649 "MnhFVXJnb2lvRWtlaGRWRkpxS09JbzNpcWlCWnhsdEM2S0JKcEZSRW5WUnBTYjVkUUo2RjExa3FMRWtab3drQ1pqWmJyc2Nr" +
650 "LytzZTFCOWxlSjBNZDFWSFVTVnhFbFJCVXFLTm9IUldiQ0FraUdZd2RKWmswTEt1dU96RzBtemxyUDdtYkpYR1MxT2RidlFO" +
651 "RHJHR0dwTHBOeHFwWnlhSmp5TGpXN09nZUc5M003YzVoZnlzamtpZ09oenM2QlEwUmhGS1JPS3EyMHFrcEZneUtValRZeWhw" +
652 "blFZaVRTaEJ2YWduYU9va1FGRUdKcW5qVExFR29TSkU0cTdPZ0trVlFSOVg2UE5WRzZ5d05RU3N1UnBCZ0dMZWYwbTVhUjhV" +
653 "Z2prb2pxS0FFTFNwb1FoMlZUQnJORU1UUXVBaHR5Q0pvQmkwMjdUUmJzd1J0MUsrM2VnZVdMSllSSXpVd1dwWXJIU3Nqa2to" +
654 "SUo2b21wbmFxU21OMm9zeU5UczJndzBrU3o5UlJTMHRjdE5McHNNWFdJWFcyekNtemtraElYY1JUY1JFVWNaSjRxb2dXaVND" +
655 "b2kzcXFKSFZTb2RXV1JFbzhWVWQxVnJST1doZVRXWUlpclRaT2traGl5U0p6MFMwcVVpUW9qYk5VaTNoVEhDVmF0S29pdE1U" +
656 "UnBOR1VXWjE3blJ1SnBLcVNrRW9ycVhYRU1vSm9ZblQ0Zkt0M29OYUhjVERDRU91eXM5eC9tZXhRVE1aT3U4ZWtqcUlabEtZ" +
657 "VW9YT3p2N3N4TXNod3NxeFhNaFluVVhVU3hGbUdMZy9Nd3pBN3BhWGs5UnAzanNwQUVMS2p3MFV4eUlxUzBEcXFDSUxTYXVM" +
658 "dEVsb1hwU0hxcEVMcklteEJhWnkwWlI5dHRTRTRVRSsxWm1tZExhbGxERjc4WnYyMmYwUGU5WS9KY3FWT0ttZ2NoVllSUmFS" +
659 "VmNUSzNnN2tkeE1sVUxMc3JJd3VkdE9aMjBEYytpaWxqa1ZINzIwZCsvaGRlYzdVcjNjeXI2ZTYxNjAvYzJ6LzRYMnA3dkU4" +
660 "T2VuMlAxNzNkNmgyWUdROG1aaGxoeXlBUEpBdWh5bmlBU1VNR2lXVWx5eUtLU1p6Tnc5NFVTWnhrTE1ZWUx1b3RnemlLNVEv" +
661 "OUJldnYvMWZvbmM1YmZmUVI4OGYvQmJvUnBHYXFJektxb29waHZNQjRvVTVTQktWQktrN2lwTjRTUjZHT1NsUmRKQzZLcmZx" +
662 "RW9FaXF0OHhITVV0UkpKWFVXV2p4NE91czMvcG5KU1hYOHVMNzVadi9qTE5PRkZVbnBaNHFkVlFWaWFQWTluY08renRwMVRT" +
663 "VzFicTdkaGJhcXMxNDhtdXFra1hFN2V1UC9IdC8rYU4yWlp2YzRvMjdGLzdWNzl6OXNiLzJoRzdyMmhmSHlFOSs1c2U4M2Vv" +
664 "ZGlER0NpVzF5dXovWURuZVdaZFdFUkVVc1pKQWhpV1NLbzFDUlJEUElvRlVWSjVPV29DNFNSUngxeXJoSFZ1MEJCNjQrVFVL" +
665 "Q3FvdVVOdW9rS0VWZERJSUtTcEU0S1lJNkNxMnpPQW9hVWNSRlBaTTZpem9KRW9LMklpSUlxYWd4d25QZllQa0RmNEVVSVFO" +
666 "VFN6elZrQ0txZ2pncGdpSWs2aWhSak9YSzlmMEhNZ1lpamhJakEwWFZwcTF0dTdXL3EvMklyY3pXdG5YNWovWS9NYjJsUHMv" +
667 "cUhSaFo3aWNrdFdIT3FYUHFtR1FoSVN2WmlaUGhvdHBOT2tXY2RhTEVVWjIxcUpQRVVSUnhWTnFKU0ZZTUxPUWVGa3lKczJK" +
668 "T1docmlvcUlxb1NXQ3VvaG40aUpCcWFNaXBGU2R4RkY5anJiVXhTaUNTaGlpYUNzSkpZTUYyN3BUUkdscFVVUWRoWVRXVWNV" +
669 "emRWRW43VVJSMUxxN3NydStMMk80cUNZSVdRaHhGR3FLVFZ2YlpHdk1WaTA3WDhEcUhVakgvVkhXR1RPeG0yRSswWG1mYm5U" +
670 "WURtOFluWmlLbHJuZDRZQWdJblNLcWtoQ280S0JxcU9TVVBXV2FpTVdNblRjazF5YnJhb29SYWRwVW9RRWU5d01CaHAxRW8y" +
671 "M3hGRm9QZE1pcUtObzY2U09Xc1RaeEo3T2FwR2hHKzAwd2doRkV5ZER4S0tHSmMrclZYclFsQVoxa2pocjBXbzM2cWdrcUl6" +
672 "Rk0ybU5aWkd4Mk8ydVpTeVNZYzZEZHBNNG16TXliN1czSkFiVzljWnVpVEVaT0NDMmd5OWc5UTdNWEwxL3pyaHVqSVhEelJ0" +
673 "ZStka2ZOSlpydS9HRTdXQjcrTTFlL2xOZnI5dWVUbXl5UHZDK2IvbzJVUkxFNFhDdzdmZVNPRXRRRjNHU0lLR2xKZWh3RVVT" +
674 "ZSs0RDg2UitWL1dlWmUxcVpCMzM5by96Y3YyTm1iNm1qcVk5aWV4UjExQ0xhS3VLb3FMTVdkVlp2VTUrampvcVFPS282YWpS" +
675 "bHNLeVJRUTBTUHZBOTFxLzlmVmpWcXJtU0Z6OGdRWWVva3lxcWp1cXM2dTdtaVpONEpxNGVQSlFNRjdXN3VvY2dKR1R4NURN" +
676 "ZnNYL3lhVlZhWTk3dzBaK1YzRXJJR1BMa2lWbldXY3VJeFhESTRkWVhzSG9IMXZHMS85cnRuYmx0dDdmMzh1Q0Y1ei85M0hm" +
677 "LzUzLzFZOTkvZGUreGQ3MHd2ZnpDOUh1K2ZmV3VETzFHRDVpWWtrR2lRb1lNTWpZblJaQUVsU0p4MHFLTzRrMEo0bUxoWGI5" +
678 "WHUwbW5vQml2ZjBSelJRNlNHbzVTSnlsRlcwSWNGWEhSb001QzZpaUtoQ0l1Z2pvS1VTM0RVYXB4RkVGbmJhSVpydDc3UitW" +
679 "Yi9sa0VRMEpNT3RWUm5TVW9iUkVuU1JCVVhTU09nbmhUU0tuU3FnMmJwSjVKbUk2MlNXcHVCL013YlZzdEdFWFpXWGErZ05V" +
680 "NzhCTzN2L2p6bnVtbi9ibFh2L0cxWC91RncvY2YxanNqdFlUdmZmL2ltK2FrR3kwaGFJWmtJQWdaaUpPb1o1STRDeTFhRVNk" +
681 "dEVXOHBwcFlJR1NqS2VtMWt0VmsxbXdwRmFSMUZIYldJb3EyVTFsRUlTZ1dsVVFTTm96cExLRk5wVEtRa1dGeUVkcUZoaVpy" +
682 "U3lLaVdPaW9KcmFOcVBSVkpuTFFvRW1kQmhtUWdxTE5XV3ljMXBaTzUxN2tuTVJCVE1waVRPV25OSndmN2pkMVlMQm1DYSt2" +
683 "T0Y3RDZJcnc2bjdpWlV5ZGoxTDcxNUc0diswL0puR3FSaFRFcTR4cFRVQ1JEeGtCcEZCRnZLaEZDVlJCUnoxUmJWRHdURWtI" +
684 "VyszcjFQc05yakttS0NOSXlVZEtxazFMYU9LdWpPSW1MRnFVdUVvd0lncFlpZFZSeE5NaTZzQXpKS29kcExNOUpYYlRPaWtU" +
685 "cjg0VEV4WkRRVmh3bHRLaUtvQ3BLNjZMaUpPYmhWdTllbHhFU3lkN05iZDNlaEMxWXZmYjR0bzh0SDcreW0xZGQ3TlhyM1Y3" +
686 "MUJheStDSS9WSVdWV3NVLzg2SC83aS83a1AvbVhXS3BqeUhKdGVmNWI3UDdRWDZLYm10TEtXSTNyNTBoUk9yV082cVNDU2tK" +
687 "cElraWR0U1cwU0p5a0VTRXhydDlqK1ROLzNjNUdKeXFoamxwQkRlYWRLblVVRjBWSkVCZHhWbWRKaUtPUTBLaUppS0lvU2xi" +
688 "R1FnY0oyYW1JYW4yZU9rdFE2cWs0YWFmUHZ2b0pDVUljZFhyMzExOVoxaXNKaWhCVndWQ3I3Y00vWnZ2WVQycktZRGo0VDM3" +
689 "Z0kzN21GeDVKNlRiY0hhNXUvdUREUC9tQkgzN3R4Mi84QnF5K0NBYzFzV0diN0FlZmZsSnpQakhHSmwyWmRFNnlvTkpxNnF6" +
690 "ZUpoTGFrdENTVUpKb3ZhbnFySldFSXBIRU0xR1dlM1NxaXFwbm9rNnE0MXBVRzFRUlIwV2MxVE1SUjZHZUNTM3hWTlJSSEpW" +
691 "T0VqSVFpYU9JazZDcTRxZ2tqa0tScU5JU1orM21zTDgxRWlkSlVVeE1Hc1JKa1F3Vk1jd2V6SGt3dTVlNWtXbC9WMDllTzBq" +
692 "S1hHM3owQi9lLy9pTjM2RFZGK0dlWVk5WnB1b2trNHdwb1VGSU4xUk5VanFsemxxZksyZ1JXazJsQTZYUkVDZFZ4RkdpaVRZ" +
693 "b0xZcGlvdXFva1RpcWs5Wlo2Nm1JSW9RaVNGdzBncnBvU1pEUWt0Q1NJTTZ5T0VtUklxZzJ4RmtFUldrUTRxak9nazVVNThG" +
694 "MnVOTkV4akRHa0F5eWtnVjFWbTlUU2RXbXlpemRkTkt5dFJhTXhsWGppN0g2SWx6bm5uM2VNRTNUVTRQZGZXYXZHVVNrQjFy" +
695 "cHhKMmFLaGlJaWhpb3M4UlpIUlYxRnVLcEVGRVJRMFJWUzV3VVJadzBKTFF1RWdsdEZIR1VPR3ZVVXlrTlFhSklhQjBWY1pZ" +
696 "NGk0dlNSSXFFME5hYlVtZHgwVGhwZ2lLSWhLcUxPdW5jek1TSW95RVpNcTdJRGh2ZFVERXBzaUFrRENJeUI5dDBlNmduZGxa" +
697 "eDMyTEo4TVZZZlJFKzYrSC9kZFY3My91Z2g5Mzl1YzNSN3QvN2VQbDlQL3pYUHZYbmwyV1ZUbVk4LytJVGYvcmRmd1VIVzZl" +
698 "SzVmN1hXZC8xK3hFeU1GanZ5ZGdodEJyaXFDWE81bmJ3NkRPdk9Fc2t3N3JlOCtDRmQ2T1NhaXNoZFZZUmJ4T1VJZ2FwdHRS" +
699 "UnZGMUZFZ1IxMG5wVFcwazgwMGFDRUNIT1dtUklxMHFMT0Vsb0hJWEdXWXA0VTRJWVkzamhhOTVIcDRpTVJiSzRlZlJKeVND" +
700 "MEczZHZPSHprYjVnZGpGV3k4MnUvOEwvN083LzBNUktIeVkyRE56NCtmdjY1dy9xM1YzSHR2aXU3T3g3NWpWcDlFWDU2L3Nv" +
701 "amQzN0EyM3ozS3krKzlLRWZuSDkrcm5mR25QYkw4UDV2L0tRLzhlMy9xYzQ3MDlURThyN3ZOSjc3b0JFcWlqSGVyV1BuSkU2" +
702 "cTZxS1l0c09kMTE3NUdLbGtrTGkrLzRMN3o3OUVTNmFnU3VKTkRVR0lFRWRWSjVHZ0xoSVhwUzdpb3M2UytJZEpITld2RjJj" +
703 "aEhZUTZxVHFKczlSRkJIVVNKelVJTDcvbnZTaHh0R0R4Nm9mK2pqa25xdDBzanovaTliL3g3enRNTWc1MjYrYVgvb2NiUC9o" +
704 "amU4UnMzWXpGemUzVnYvbkw4L0ZQTzN2REYydjFKWExidmRGcHp0SnBtOVBkWWJYZjdnd0hIWU5sTmRZcldWWnQ2VVF4eFZH" +
705 "cktxVm9LblZVTlUyYjFGa3kxT1ppVW9TSU5Pb3RjUkoxVkVkQlNSRVVvWjZLczlSWjQ2S3FDT3JYaTR0cUhZVlVVQ1JJbktU" +
706 "T3F0NVNKMFZFRTFTY0xGcEhSZW1tdlRPM1c1MVQwVzVHTngyMU5kcmhzTldUYmVoK00xSkxocDA0dEw0VVZsOGlld2RSc3pF" +
707 "blU5M05tcTBJSWxtTXNXSVZCeGViZEtPYmszakxFT0pzWkJnWnFJeEk0aTFCS1JKTkZSRnBQQk0wTG9vaUx1S2lDSXFHVkJJ" +
708 "bnJhUDQvNVJRRWsrVklsR2tGU0ZScFk3cXJFUkoxRkZkSktna2xMYW90SFJpTTBSVENjMDBMYllaOHhBMys3Z3BxMWpLRUl2" +
709 "NlVsaDlpZHgxR1hjTzJwMG1wbm84QndZbHFTWFRtRGRxWUlpTnVkZnVjYURGUU1nZ3djRENRcFpWVkJJeUpJdGtjZEpPYjRr" +
710 "VWNWWkhKU0dvZXJ1NHFHY3FpYk02cWdwQ2k0aWp4RVdwcy9wY3lkQ1dWdUlvemxwUldsVW5TUkFTRVZVbnJhTktxNmFxT0Jw" +
711 "WGtzVkpFZ05kcjR3bDdBOTBNT051Ymg1YjNGc1dTMk9PMWNId3BiRDZFdm0vM1QxNnVGLyt4WmQ2Y0xDWE1iMzR4bnUvNnov" +
712 "OHp6N3hmYnNNOTY3MnJwYnB3VXMvNDdsdjNGdEdmUDFMOGNHditZd1hmdmNmZHZYU3QyRFRnUXdaTzhrVldSRE40cVgzZkwx" +
713 "MjBqb1o2NDRNVkJUVnVnaEJRMVJSYnducXFjU2I0aWphSWlRdTZpU09TbjJlb0hHU0JGRjFFaFMzajk5dzg4Wm5KSTZDdXZm" +
714 "Y2k2N3VQVVRVU2NSUjY2S2lPdmR1WDMrRlRrSVNHcnRYZnRKMGg0Vk1yM3pzRTM3Z3YzamtqWnU2MjhlKzhkcmovTlJ1cnYv" +
715 "eHczMDg5RUN5czNYM2YveHRyL24vYS9VbDhsSGJYcmNmOGN6a0QzL3lBK08vK1ltZis3NFJydWVkTWJpM2ZzckQ5WCt6anZp" +
716 "dVA3QjQ2WThPOTErK3NsNC94Q1FUd3pRa0MyT0l3ZkxBOVh1K21aWk9iV1dzMmlrdGlSWXByWk1hZ25xYkl0UkpuTlRucW9x" +
717 "VFVrY2hhRkJuUVlzUVIvRk1FMmVOczZCMTJEOXg4K2hWR1VQR1FGemRmNDRzbEtTS2xyVEUwVVF4N1c5ZUY1VVVVK2VkZnVa" +
718 "dlNUYkdncmo5eEN0Ky9oZnYzTTA2ekxxemVHUGJmdmJYOUVmVTBSUHFTMmIxWmRUWmVUMmkyWnhNTlV0UnRkdE5XUmZqNm9H" +
719 "TVJRMU1KM0V5bVpNTTZaM092VTZrZE5KS0R5NGlDVVdpNnBtZ2pvcWd6b0o2cW5VUkNlS3NTTkdnbXZnY1FlTXNSS2lqT0tt" +
720 "VFltTERwSFNXRE8xRUVVVHFxS1NpcXFKa01CWlV1ekVQT3ZmYUcra1VLMWJENGxxTjFvWmRhKzBvbXkrSDFaZlJYZnZHZFpi" +
721 "WnpHRkVnN0NoNVE0MysrbzJ0UnRqd2VJdEZaUHVkV0krMFRra2NWWkhFM0V4U0ZBRXBZNUNpR29KR3Vxb2lLT2dwTlJSRWZG" +
722 "VUhFVlFKeUhFU2RWUmFTcUNJdUlrWkJoamxURlFVdTJtYzY5emowVU1FbStwdEloa3dZS0pUVlZubVFkc2lvUTVOd21MV05R" +
723 "dXJGbXcrWEpZZlJrOUh1Tm1uOUcxdzdDZ1J0SHFWbHVITjU1TWg4TkI1a0VTeGlBTENTMDI1blRXS2FhV0lJcTZXTWhBVUhF" +
724 "eVhVeGFkWlJxblVWSTFGSFFVa2QxbGlLMDBtZ2NSVkJGVUJKYWxEb3FjUlN5a0NGWmpmVytaVm0xVTd1aHROakV4SXFWck5p" +
725 "Y0pFV3dXRVlraXptTGxXVmFCbnFnRzNidWV1ZG1zaUNOdXpIc2ZmbkVsOUUvays5WW4xOFAvOXgrdS90VXpjTXVZNzBuenor" +
726 "ZjhlRDU1UG9qTDMzNDM3MTk2ZFZ2ZVBjSFArajVsOTVsSGF4cjdNWmlHVEZFUzd1NVd1TjcvdXkzR3N2VWhNRnkvWkxyYi9x" +
727 "bjFXQ3NaR0FRdENpZHh1NDU2L08vaTI1T2l0YysrVEczcjcrbUxwTGh4ZmU4ejlYOTUxQkNHdlZVSWdtbFNPcVoxbEdwbzZJ" +
728 "Nk40OCs5VkVNR1R2R01COS8zT0h2LzVkYU91OTB1M0g5cnZkNzhFM2Z6ZGhKZG93cnlaWERSLzQ3OC9henVOVWV6RVA5d0Ev" +
729 "OVBUcHQ4MkMyRGpOdVB2YTNkRTZ6M0dWNmZPT3pILzhmMS84Z2ZmSm8xd2ZrZ2NYRC8vbUgrNHQvMDVmQjZzdm9SL3N6QjNz" +
730 "LzR2L0ZkMy9tZC8zcm4zNTkrNGI5aDM2Rk9xcFZYSVUxckM0NjR1V1hGdC96SFI4eTErakFHUEx3dmZxMTM2Nm9xSXM0cVdk" +
731 "eTd6MDgvNDB5MERqWlAzbmk5bzNYU0VRWU1iZXZFU2ZSMGhEeHB0WkpIRFZPbWlJSTZxSzBiaDY5S21PUlpaWEU4dmpEMW8v" +
732 "OWRUVk1tM2F2OHdQbWUvK0lDaG1NUmNhVi9ZZC95cng1bGV4MTNqbnNiL3pFRC85ZFRTVUVLWTl2Mk0rNEUvc090NWwvLysv" +
733 "TncvYzcreXoxWmJYNkxYU1ZzYnMyTGEyMjZxUm1PWWlxSktnNWh3NHlWbGtYeGlMakhtUEhkcWMyYlFWVkowa2tDeUpaWEVR" +
734 "U1dWWVppNXFxdENpaWNaSFFPcW1pSXVxb0phRWhhRWdranFLZEtQT2duUnJHNFZibnJXYkhHREt1Wk54anVTZEtwM1pqM3Fs" +
735 "YnlWNU5WWWNPYzZ1WlNsalVDSm14ZEZvTkUwdnJOOVBxdDlBcWp4K014WDdHUVIwbUc3WXdzYlVxT21OL2lOR2hEUjBZMm9s" +
736 "aWsyNTBTcWxLSWxuSXdoaGtvWk00S29taWRWUXh0UnVaWWlBdW9wMmtZbXFkeFZHakdXSVFSM0V4eUdvTU92ZE1SMVBuSGZP" +
737 "T0RFVEdLbGtaTzVsN1dreGEwOEdZQjhrd1drc1BiQ0V4QjhKQUJzdkVkTFNZbzlqOFpsbjlGbm95eC8rYXcvMG5kdzR2N051" +
738 "cnFWZERkcWtSV1laY2JSbjNta1FzZTFtN1I2WWhlcnQzdTcvVnd3M2RVRXVpYWdsNkpZN21IU2JkNktZaE9aZ21DZUl0SmQ2" +
739 "bTJHUk9WVXhVRVVNTXRSTkhXVWd3Sk1QbzN0eHUxTVRHdkxHL3d6S3RZOU94Y2ZmWWZydVR1ZWs4MEpxR3cvNU90czFJNlhR" +
740 "WU56b2ZQcmxLN3c3cG9YcWIyamJaRDdiRWtDdzZQc21kM3l6eDI4QS92M3puZzlIdTBxNXJzcVpOR0d1eTJ5M0w3anJKellO" +
741 "LzhMNVBQUHpRVDlld0c5TUltOFgrNm5udFZFY2ptdUZmK2hQMy9LbnZlTTdNUW9iZEMrLzM4UGYrT2JZN1RKMGJEejhvOTk2" +
742 "RGtFR0dtNC8vWGR2K0NSbVNZTHArL24zRzdqNktZanBwNnl5WW03NzJLNlJPSXVaV2IvenlEOW4yajNVNzZOeTdlWFR3Yi8z" +
743 "Rlh6TzJXaEt6SE1haTkxOUd6TllzaDdMZWZjWU9LN1lSaityd2RmL2dILysyNTNwMTJKWmwyN1Bmc2QyMjIySE9iVXZHeVM3" +
744 "SkQ5Mzk5NS8wbTJUMTI4Qi90ZjNVWTgvVVc0cnA3Sjg0dlBqazlvM05ibXl1dTFkeFVKdkhKS0pHU0dLKzlvS3hPWnR6NC9h" +
745 "KzNuNUt1bWtHczRhRHNleklJbGxKNmRUREV5ZE50ZFh0RFJaa0lKSm9IWldXdVRGdjlPNHpwR3FJb01iMk90c1RjNVo1TUxy" +
746 "NTlLYzIrMjJLYXFtajNBaGFKR2FySlpoaXkzRFkrTW50Zi9wVko5TS8zT1kzM2VwM2lQc2VYamMzVmh0bFMwMUVqZGJBV3Bh" +
747 "d3FLUTZwODZEemx2dEFhV0RzWkNGY1VVR2dwSkJRcWQybzFONzBHNFNaRkZoUkZvMUVWcnRnVGtKRlhIVUEycGtzT3hrV1Z3" +
748 "TjlvYzYxRnRhaXhncXJXQmlLM3V4MWRIMDI5SHFkNGlidnZiNm1sVlNNOE1CR3daR1dEQXdNTGRTYWpNN3pXM1BuS1NNa0oy" +
749 "TWE4bVZxcXFvcVdRUWRLS29kS05CU0RESUVFTU5zcXJRU1RkTVFudUhqUkVhUWhNMVZFMVVEQVNyR0NHT1dqTzBNWVg2Yldu" +
750 "MU8wVmYyaDdzNTRkM0RqYWJ2ZW1ncWhiY0MydGl5VFFPMSsrNTIrYjliYy9oc09uVndlTzVHcWJSSWFuc3k1TURQZWc4a0xx" +
751 "N3ZaVnRJMFBub056dDQ2Q1NUUVlaZzRGUzBRN21sWGFZamM3cW5KcTRmWHpRYnNZSUdXNzMxZjNEajl3LzNNM1oxVjVNTEZh" +
752 "cllZZEZUTk0wSGRTdUhNSmR4NEZYL1hZVFg0SCs1YS8vNEYvODlOVkgvKzF0bS9ZYjJ6S001MTZ5am1FM0ZtdHFHOWNPV2Mx" +
753 "T1c0dFlEamQycVpGb2EydDF2ZFpFZ3JDTUdJbUJsTTZKeVBhNmJzeldmcXU5MkI1OWh0YlZFc3NZc24vZTFldGYrL3hmZmUy" +
754 "WFh2Y1ZZdlVWNkpPZlhGNTc1YnIwWU02YVlYejZFNWF3WXFDSmZlTlFpbUJWYTBpY0ZSdnFvZ2lDRVpZeVFoRFZjc0MrSEVw" +
755 "YlJjckljTDNkZU83dWRWOUpWbCtCbnZUR2Z0YmFXRm9yMGhvcVFweU4xcXFLZ1pGUUZ5RllFU2RWdEJSQjBjUkpsVERLaWxG" +
756 "bWE1WXB0TnFOM1BoS3N2b0s5RGlQM0ltbE1iQWtGZ3duVVd5QzBraUlDQVlTcElpQk9JbFo1cWhaV3VxWlNHS29KU3dvcHRn" +
757 "d2xRNUpkR0R6RldQMUZlalYyZi96YXYvYzM5U3AyVzY2emNkSmxoQ3lNSzRqOTRmc2h1d3dvbmRKdWlBMGtjaElISFd2Mldr" +
758 "emtyVmwwOFBXM2sxR2FkSkRIQ1ZaSERXZG5ZZlI3ckVNNjRPTTYrY1BsczFYZmRWWGZkVlhmZFZYZmRWWC9ZNzIvd0JqcXc1" +
759 "aTU2bXMrZ0FBQUFCSlJVNUVya0pnZ2c9PSIsImUyIjoiaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUpBQUFBQ1FDQVlBQUFE" +
760 "blJ1SzRBQUJHQ0VsRVFWUjRBZXpCQzdDdGFVSVc1dWY5L3JYMjN1ZWM3dW1aNlJtWVlVQkdGQXdScHl5UkVCRU5zU3BlU2cz" +
761 "ZW95WUtxVEpHeTBpTWlaWlIwYWdWUmNwTGlMR2lHRk5hOFJvVGk2UWthZ3Fyb3FJbVVaem9pS0NEQWhsbW9HZW03K2V5OTE3" +
762 "ci85NnN0ZmM1M1UwelNNdnB5MURwNS9HbU43M3BUVzk2MDV2ZTlQOUQ4YVlmVW5aLzQzLzRKWG5QL2t2Rzd0WXF3Ym5keFVl" +
763 "Zit1Qi84ODdmKzNsZis4dWY5enJiZU5NUEtYbjBtUzhhajl6N2xlWlRPb3BMODdrN1QvTE9QNGJudmM0MjN2UkRTanFZRnpw" +
764 "REYrbVpMdXZ0Sis3Y3VlY05zUEdtSDFxeVUrZWFJUmJ0SWlmM25udnk3dDA3M2dERG0zNW9tU3VUVEhReWQ3YW41N2VmUFQr" +
765 "LzR3Mnc4YVlmV2s1V3h0WjBVRkxtZWhHWGx3UFQ2MnpqazlqZFAvVm5mOUx1ZG43VzZmT2YvaDNQUGZmY00wODgrYkZ2L2R3" +
766 "Zi91Ny9aL01iZm1vOWhGLy9xZi8ycDM5czk5enozL1hVMzdvVE5NR1ExcHJhZHpXeHFyUGxVOFoyM016NSt0RnBubmVUWVNO" +
767 "MHFMbzB2ZXN0N3p2WjVXVDlYNTc5MnhkZVkzbkhlM2pMdVRFbnhiclIzZmIweHZaeWl3dXZzNDFQWXVlMzd2Mkl4eDQvK1kz" +
768 "T24vQjRkeDYvM0hqKzI1Nyt0L0FOSHNJSG5uci8zejBmSDMvWGRoc2pWVVNsakRBNlRMVTI5dm00UGNiQ1pva0ZHd2VkWmxn" +
769 "TUg3NzNEejFkdndlLzJXdHRubUNIZ1lyRjNKK2Uzam9iSjdqd090djRKUGFXUng5N0pzOWZjakhVQ2J0cHY5LzlCSHlEaDNE" +
770 "RDJGK0lhWnBLQ0pZUUxHR1VnYUlJUmlxWWFGaHhtVVZiWngwYnI0YzEydEE0cXEwNlhUWW5HZDRBRzUvRTh2UTZ1OXlUeXhP" +
771 "Wk1lL3EvcndmOTVCT1p6ZWJaVFZIcmFhR2lCVnBCUWxGVWRmV3NEb29LL2Jxc3RGVWMzS1RDNis5TURHRElkMFkyKzNGM1l2" +
772 "bkw3MEJOajZaZmZqczd6ei83SE4vNFpIVDNTK2M5MGFmZVdyM2dZOCtlK2N2ZTBpbmFvaUppVGFDcUFVRGNSQlg2bHBSckdH" +
773 "VzJVRklXREpYcjRQc056b0hkVEFRWTJ6M0hXUDFCb2pYMk5OZitVZCs5dmVjUGYvODZXZGRmdGZGUi9adlhlOXVuLzY4ci96" +
774 "Ti84d3I5UGQveVg5OTl0YTMzUGpNdHovNnlPMm5uajYvL1lHUGZPUzVMLzNMdjZVK2dWODRQdjhuN0x0L3k5b09iTlp3ci9Q" +
775 "T0NUa3pOc3N5RnFPN2YrWEhmT2RmdUhmajNtT1grNTE5YTRvZzJLak5ZRUZTUkRGTEordks1V1MvWndxSlpXRmMzdm9yVDN6" +
776 "emU3N3lobkhyWEhjMU5pTmpPM1hkbS91MW5adGwrOGl6cTIvOG0vN0JYZjhDOHdOZi96UGNlUG9MTWliamtweVJSZmVQV00v" +
777 "dS90emw1dTdIdGdPUmJ1d3Y5MC8xSSsvKzJ1Mk5pM3RNTmhkc3k5T1AwWlhkcGU3dWV2Njc4bWZmK290L3dRZTlpalplWTQv" +
778 "KzRnLzlxVWZmdXI0bEtjc3pyT3NmOXBYK0k2L1FqL3V6WDNHT2YrSVZlR0o4K3gvY0xMc3YzTHUwTSszUXlSWW5pWWJ6d1gv" +
779 "eEZjUG5mTmFaMmNWKzdzMFNNWlpZQnNzbXBMUUlwYTNPbW52Tzc5WHUzcFRFWnVIa3RQNjNyNy85MDcvbW4zNzdUei9OTkZH" +
780 "c21HWEZwY1hPNmkzZS9lVldmOUsvUUpkdit4a2V1ZjFyTzdaa3NreEN4MlBHZUV6WGdTQ1lOcWQ5ZXovelE3OXA5bHpyWUM4" +
781 "dE56NUdWMHg2ai8zTjkrT0RYa1VicjdHc0cvWWhaWDJjcmRmTVNYYTZySVpWT2kwT3duQVFOamdiek1zVDY4V1FaV1Bqb0hW" +
782 "bEhjeGhya0VkZGJyU2x0YWNaVi9wYW9RbGpEbloxNUpMNjZpS2lSVnJheFU3QTFQbWMzNGd5VnNkdGNGa1h6SWtZWU1TY1NV" +
783 "ckxSTnpJeTBXV2lheDBkTGxwcmU4OXgzUGVKVnR2TmFXcWFhNFpKTGRpZGRLV2xSYWk0cG9LcGpGWUcxWXA5ZzdTZ1lKUWxF" +
784 "SGRSVFIxbEdLa2pMQ0VpSmE5dnU0ZXhHWG5kcWlpQWNHdHBsU05pNzlRTEtOamcwdGl0SmlGWk1NTXJVb1VyV0txa3BSMTBv" +
785 "c0NLZnhhdHQ0cmUwdlhabVRWaTlYcjVXUnFhbUVsSDFybG1KTnJZbjlXdXU2YWkrbEd3d1NST05haWFxaVdvSTZDcTA2YU8x" +
786 "M3pOVDVKZnRRQklzYUdFalpMcFVPWjEzOFFHcW9oVTVNVFlpRFNTZXBLd2xDZzJvR002cW9veGpTUmUydDY4WHdLdHQ0amZV" +
787 "Q2pYVG9yTFc3eFVQNkZlTW5iMmJ5cVJmdHZNWHBKdGs4dTF6MnUyOTkwNjNOZHRpSVRXS0xXZGJKRkIyeHJHV3pWVVMwY1Mw" +
788 "b2RhV3V0V2pWUVN0STZiNklscGtnVG01VU1NSW1MR0hCZ25Wd1diYmpMWi82Nis2Kzc3UDNTZTVLOTNTTzhkeWYydjhmSDNW" +
789 "ZmM1R3V6OGw2aG9vTnlpdzNWemJCd0pBTU9zenpzNVg5a3QyQ1BaMXF3YUpkeklzTFQvN0RpeCtCdis1VnRQRWFTOTZDZXdq" +
790 "cTdoUGpKM2hJMzVObmZ1WXovZEFmMjQ5T3pjME9aM2ZudlB6ZHZ6cTNQdWR6ejV4c0x5MWpKYUhEWEd1ZEUxTVM3M3c3U3pa" +
791 "cWNhWFV0YUJJZzlKSTNSY1p0VjVPZHo2Mmw4UVUrL0pUdmpDKytQT0hwcGF3R1JWMFJhTnFQVm45d1QvNjdPLysrOS84TGYv" +
792 "bFBsM1daazdXM1Z5L0hqL1BmWDNpOUEvTnVmMkx1WE9EL1ZaMk40eXhaWGZDRjk3K2lqNTY4WE1vclN0NzMzem42ejd0VjIx" +
793 "dnpPMjRXSmhUU2pPa05jKzVYRzk3eE9uN3ZjbzJYaVVYWC8xWFBqdi8rai8rOTVmdFkvdnN0K3pQR0Z1OTlZRlRvWW5neHFP" +
794 "bm56ZS83cy84enI3OU9UWWJXVGZtOHN6NlhYLzUzZi85ZTMvWHYvTWhyMENzTjVzNzc1VHBNblU1NkdyNzFyT3Q5engyb2N1" +
795 "MExKVXNaRWhSVjVJd05tUzRrbWdkbEhwQmxZWlNFU1dSd1pMYWhxWXlpN2p4U0p6Y2lEYXFCcnBuM1JlMTcxUng2ZDd5N0xo" +
796 "bk9zcVNMc3UwditrbE5sLzA3LzFUL0ZPZndIejJ6L3c4d3B5TzZ1RHM0dG0zL3RwLzR4dTlBVFplSmVQbWs1K3p2T2ZKLzl4" +
797 "NFVzZWVNYkVnMUxWUjI4ZWZYL3I0My8vS2prdkpVSVB0Yzk3MWY3NzNXL0hudlFKTDNlaVlZa3FtZ1NZc3E1SFZtbzBhRWxl" +
798 "YWlBV0x4a0ZJSkY0aXFLTWc0cWlwT2dvSmlXWklvcXBJR1F0akUzT0dsckkzN1Z1enpCa0dheWRsU2NXd0pGYlRLM2E1Y0xJ" +
799 "aksxYldRZTk2bzJ5OFN2TDBUZDNkWUh0YnJOcUpTUmFDaEV4dHRTdVR0dExvK2pZdUh2TktiVE51UmlWc0VsUUcyKzNLaURF" +
800 "R0l5b2lpTWFWdUpZV1E3MVVIQ1ZvU1VqRVFSMlUwckpPaWs0YTZrVk50RlNzRGFVbGFodE93d2hETFNJMnVQUkt0SmQwcjky" +
801 "TGd3N2M4VWJaZUpWMFJrWVpRNWNRRkMwWmlDdEJnbERtck83dWNmR3NWNm9IYXlwMVVFdGlDYWZiSWN0V3htREV0UnJxcUdX" +
802 "MmxDQ3Rob2hyY2FVMGtUb29nanBxcTZhOU9HcW9XR2ZzMTJpRDBtcFJWNVpSMjIzZDJnNDNzTFRVUVJHdldQZDBsVTZFbHRZ" +
803 "YlplTlY4dDBmZmZhSmQ4Lzl2WFRjY0xseE5OWXpQYjFnSXFGYnhwNjdKM3F4Nkk3dW1kYjlrOC9jZnRJbjhMTzg5NWZ5OFVm" +
804 "T3hWM1RoZFY4ejNmK2pGLzZKVU95WWNSMk05M1lESi8yR1l1eDNTSW9tWExyUjR0TFFqT2t0Sk5PNlRUc3RlWE90NnRGUkVP" +
805 "S3VKSlMxOW82dXpWc2Y5aXB0aUptNnQ3dDFkUGZzeEpHU0tqU1dwWllCbE44MGZ2NHJFK3BsTFNTdlh2M3puN2N6Yi85Mkg5" +
806 "eWUzZHg1OUp3bnJqYnMyYy8zZWYrejkvZ0cvZGVhbjlCOXVwYTlrTno2WTJ5OFNyNTF1OSs4dS85M1Y5ejUwZjlwTjl3NHlO" +
807 "dis1UnR2K0ZyYjI5KzJwZDkrbjdkM1gxNmZPWXpiMGxERjg5OThCMGZ1VFgybnpIdkxPWjU5SHk2dkxIMy91OThZdm9FNXVi" +
808 "aXEzZW5mYytZTzJlWkZuWHI1czZ2K3ZKVGF5T21aSWdOTm1TaFZRZlpXajducStUczdacUZCSlB1cEhzVkd1dTlENXQvOXhl" +
809 "UmFseExxUHNxRGtxTHNHd0hpb3FRWVhlNUdvTU9FdGRDbEJsenJTLys4YlJVVkxYMW5SKzU5ODYvK3ZjdS84QmNhQ0p6ZUd4" +
810 "dW5uNkg3Vit4ODZ5WG10R3VqaUswOU13YlplTlY4bFAvNHE5MzhDRi96UU9YL2dpN2IvcGRraTJOOW9UUi9jbVgvTWJwRmJy" +
811 "SWhWMVhtKzUwVG1QRXlZakYwRVJSZFJSVFcybk5GbVY5aXJsaG5HTGpTaWQxc0dmdXBlYzZxNE1SMzFlckhxaHJWVWRWb1RI" +
812 "RUdEVkNRcFV5SjFVU0ZTM0ZMSE55OTd6T2Q5TlVLMllYUzd0czFNdGx1eERhVlJ1eEp6dHZsSTNYV0c1U0d3bXltTnZlOFMv" +
813 "aHZIdVg2cVFFTFpaYU05V0M0ZHJRT2lqcUtBNFNRaHlVSmxqSXdKQ1FjVWJpNVZwWG1sQ0NPaW9oOVlLS280UU1CeFVVMDBG" +
814 "cGFVdXBLTmFWM2F5MVZCR2JUcHU2TzBlbWw4dWVHVkZLWFpJNzNpZ2JyN0Z1ZzRpSmFVeVArWmZRc0U4a1ZCUTdzWnNzcVl4" +
815 "QkZneFJWY3JTaWlrNUlSdEVWVG8wb2NSZ0RGMXV5TmhJcHFnS3JhQ0lLS29vUVVNY0xBYVdwYktKc1ZSU0ZYUFdMRzIwRHFx" +
816 "TkpCS0NMTFZaT0VuTklnU0QvWnJVeTEzdWpLVWF6RkxhMVJ0bDQ3VjJkOGhwSlN2elV2YWJNOStQTDF1KzhOMXJmTkZjMS8z" +
817 "Q3ljZEduNzU4OUZ2T2Z0Um4xN3djMXBiVVo3NW4wUTRHRlJGakxQTDRUMkVzbWxNU1VVNGV3eWtpQ1lhakppTGFNbTdJNWtS" +
818 "Nm9ST3RLa0tpclNLTzRrcUlveUllZVpTYm4zVkNITlJzUGZmMDlNekhkaklJa2tnWUlha3hTSGpzVnAxdVlyOWpvcGp0Nlp4" +
819 "emVKbWU3eTU2NXJsbWliR09MbmNyejE1NGcyeTh4bkp5UTNKT1YwenQ3cmJ2eCt5SGYvNFR5MU4vS0ttTDFQbXM5MzNHenUv" +
820 "L3FrY3M2elFXaklySXJ0cEJ5NWpTWWJ6bjEzSGpoekVHaXNtOG9Ec3ZsYTZhcUVpR2pGUEpvQTVLUzl4WEduR1FFQytvaWxD" +
821 "eXhESkNxOHFNaWprWllZeElHS2tvSWFta3hzSUl5c1FsbG5qTDBuWHhNbi82My8ydTMrTGs1Q3MzTjI2Y25XMjNaNWZONWFl" +
822 "Y2Z0Wk5iNUNOMTlxNlNBZGRLRGJyTTc0Zk4zcnVSaS9zVW9KUit6WEdKVXNXdzZLektLWTByc3hxcDg1emNVRVhWV20xeElL" +
823 "cVZSU1RPZ2hDOTJUMWdyZ1MxY2FWT0tpSWhEcElhRVcwRHVwSzZhd2lpUkZHS3FuRVFiVE1TUnVYbCt3bkszYXRjNHV0L2Vs" +
824 "bG40K1grZVgvOXgrNGNPMmVGejNwRGJMeG1sdXhwWU5jMnV4NnkvZmp0bk9Yb2tYWWhKdWIyQzRSR3pKSWFSMVZ4VUZEQmtJ" +
825 "bmhxQU5pWFpnSW5SaWlyMmlTaS9vbmlCQnBGUmRDZkZBRVZHdGF5R080bHFNRWNzeUxVdHNSbzBnMGRCSlcrdU1kUzNpNXR2" +
826 "WXIzR3pkVlBkVzUvM0hVLzlzOS8vNDhlTkM5MUlUdHp0M2p2R2ovbXRmMzM5eG8vN0pMSHhHa3RQL3J5dU4ySnJuanlYOVc1" +
827 "M0RuN0YrTW52dnQwK2Z0SHVIMHNlRDJlWGIvbm05NTJjM3JWTVRoYU1ldHZqaStWazBUMVZDUWE2c0s2MGlEUmlqeFVEa1Rp" +
828 "SUp1S2dEaGE5OHkzc1BxYnpnbDdxWEUxN0VVa280aURpRTZ2N2lyaVNVQ0hEU04wNDQvSkdMQ01lMkYyeVc2ZVdUanJqN1kv" +
829 "V1YvMjZFZ2FpN3Q2SlgvMVY5Nzdjbm5abnphcHFNZjRyZk53bmlZM1gyUEo1ditaWHV1K3JQdjgvOXQ1SEhoa08vcEh2L0pw" +
830 "bmxvOS9hYnJ2YnN4bHp1U25mK0U2L3NoL3R0RzVaVmxrWWJFeFp5UkV5U0szM20xODNwOVg1MWl3RjROeFF4czZTUkNFUnJP" +
831 "UW9UblQ3L3h6OHRUL2JuWm5LaUlKSStvZ29VaTFRVDJRaEpMR1VkVURkUkFIQTlQMmxGdVBoaEhFMFh4Mk9yK0QwS0tNd2Rs" +
832 "WkpEVVNtOFFtZGJhcHVhOFo5bU52YVZ5czR6bWZSRFplUjcvcG03N0d3WFJ3Mm5seE90YVR6bFZOZStHY3NZOHhwbVJna1Zi" +
833 "WHFZNGlpYXhsdVNIT3lLU1RGaEZIVlFkRjNCZXlTTGE2TExvc1ROSlZXNFRwV2lZWmtxQ1VDa3FMRU9xZ0tJSjZRUkl5ZEt5" +
834 "UzZHU1cvV1Mza3BCVXhBakxZSXdZWVJteExEVUdWY3FLdlNuWkxqNkpiTHhCenBKNW1wcXFyYU50RUpKQmdxclNra2lyZFZB" +
835 "MXhhS05HS1RNdWhJSFJjVkI0a3FyRGpJSkVtMFVxWU1TV3BMU3VCSzBFalRxcUs0a2pvSW10Sks2RWlJb2lUbVpaWjJNRVVN" +
836 "bEJDTWtqQkVKVmFOY2lsWHR5cTVUdXhzK2lXeThRVTdsZElRbHBMVVpuQ3lNTVhRTUdsY2FSeWxURFFjZEZJbWdkUzNCRk1T" +
837 "MXFwaXVKTmhqa3NrZ1FrdURla0dSYWtsSVhLa0hna3BvYVpFNmFsMXJ6Qkl4aXpnb2lnaVNTaHlFMXB5c3JYdVh0WnZzTWN2" +
838 "YW1HVmtkK0loZk5QUCtYM3ZmV0svZjNhLzJmUnRwNmVQdk92c0xKLzlKLytERC9sQjJuaURSUGNEQXd1MjZwSFRZWXl0bVFY" +
839 "VlZodzBwc3FJYTJlWWRIcFJ4TkdRVkJ0TVdsVlJGSmYwWEZNVlJxU0QwbEpGS0sxcmRSQlNnbGJpSU9xK3VCYTBqakxZbmk0" +
840 "U3FtWmpkMXJMV0kxUkl6VVN4SDRYUk12bHZ1NmNNNmNyU1d5d1RTeXp3dy9TdC82eVAvcjU3LzJOMy8yWDNuYzZMcnZVbk9l" +
841 "bjQ5bW40ay82VkQ5SUcyK1F5dUlnS2hpSnR6MDJNQkRVdFRJaWhoSEdXOThubi91MWlIYVBRWUs0RnEwcnpaQk9GTlh1dFhz" +
842 "OS94Nm1GeVVvSmVKS0NDcGFCM1VVVkxRa3hBTlJkUzIweHVER0k0dkVRYzJ5bnRkbUlZUFVsYll1ejVtWWs4czlGNWV4U1ZV" +
843 "dGpjMm9ZZkZZdS9oQk9yOTM3MlE1M2IxOVdYTFNzUnFieFR4ZFBJeU5OMGl4aG1BNHFyVlQ0NkN1Rklsa2tFRVdHYmNrWjlw" +
844 "TEJCTkRTaE5FQkhYVURMSFMwb2tWMCt4RUVKUWlEcUlsRGxKYUVRMktrRGdJb1MwcUNOcUlxb000cUFjU01naUNpcU5PcWxw" +
845 "bUkxaXdKSll4YkZxWDJCdHVqZVdHMVEvT1pyTm1HU3dybVdTU3JZZXg4UWE1MUhIWm1oZ2gySy9CcEVOVmdvUkVNb3l4bFhG" +
846 "R0JsM0VkSzJLbERxSUt4RlV2VVNuT1d1dVpGUlMxeUlvRXBUV1FRZ1JRdXUrT29xRFJGdEhSVldFRVBlRmlKSHBxS1dUNmFD" +
847 "ME5CRnNGbTV0NHllK3IxeE9MYnVzTHBiVmg3LzFuL3krbjNidnJmOThOVzZzdHJkMlhXN2QyZmQzdk45My8wMC9nTE9iTjA5" +
848 "c2hVaFdEY2J3TURaZUIxLysxcDhWOUU4ODg1YzhjRnR2UGJ2VzJjUVlVczczaTZvRUdZNlNpSkFRWklPUXFDR3FLb3BJcUtP" +
849 "SU9FcUhLMWxkQ1ExeFVQZFY2NkFhSWlJZXFKY0lXbWxJVkQwUVJUUVY4YjBraXYyS1FVcEZTMEpVRWttZDNJZ3YvM21SZ1RD" +
850 "eFBhMy85S3VmL3BMem5TOVp3ODdXM0ErUE9QMFQrSnQrQUNlbnAxdTJhWGRrcFVVOWpJMkg4TnpYL1UvdlB0dDE1b0o1RWYv" +
851 "azd6ejU5UHYrdS8vdzBzdDh6M01mL0c4L09yN241MzdCY3N1YTFmbU16L3ZDSjk3Mk83NTA0WEtyMjczTmxuZS9jeEZsUkJ5" +
852 "RW9DcW1kcTkyWWhVSFJZSzZrcW1kbU9Kb21MZS9XZGNMU2RST2UwcDN4aGkwaXFockljUjljVkFhV2xjU1Iwa1FsTklTUnlG" +
853 "RnFKZXAyVm9iYVVVa2pIaEJVZ216dFZ2REdtdlpUelk3Vm5XeFRoTzd4bHBXcTFmaXpOektHcGxZU1hIcVlXdzhoTE5Qdi9l" +
854 "UnNWN0lpb3Q0MS85NzQvZmdOM3VaZE4xdWN2a3BheS90MUpwNC9QR3RuL2hqSTJMbWhLVmlrRGhLb3VwS3FuTWxxODVMdFlx" +
855 "UWphTUUyZWpUZjVXTEQ2bTlvcDMyMy9IblpIY1hRMU0xamV3a0N5YXRCNm9pMUpYV2l4SkI2MG9kRlVVa29hNjBpQmZGbGJh" +
856 "b0Y0U0VKTFFpS0lLYWRXV1dPV3UzcjJWYis5WVVLMVkxVFM5MzhjZi82by9kL0pnUC90YXNqNldsNjdEZW5aK1J6WDZ4N2lV" +
857 "b3k4MjdIc2JHUTFnMnEyd3VhU1NMTzgvYy9UYWZRSGxrS2tFWXJaTU55MmFSYk1UUVRFY0pMWjJUMEtCRktlbU9Wa01jWkNI" +
858 "Qmxuc2Y1UGIvSlhiYUhYUEtlb2Z1RVVjakU1UFdVVWEwS0VsY3F4WWhqVG9JOVgyMXhFRzhJSWtXQ2VxQmhDVEdJSU9va1Vp" +
859 "cUR1cGFxV3N0U2pCd3NtR0wxYlVocHVIN09Qdm9wL20wai94OCtSaURnVEdqYTBuVlJCZ2V5c2JEbUdXc3pKcm4wOVBuejMy" +
860 "TFQyQk5icDJuRmt4MVpVeE5aVGlJSkZxMG9wcVNPRXBvWGVuY2lUcXFLWWtLSmxZeFVRL0UxTzRSVVZRUlJWUmRTV2hkU1FS" +
861 "Vkx5amlCVW04VkJwTkVWRVMzMWVNd2JJd2hpdFJHaFZWYlJ5MWNhVWxMSU9URFRjV3pyQlBiUVpkRjNXQ2M5L0xPUzRIeTZX" +
862 "TTBJVWlHQVBWVmd3UFkrTmgzRDNSeHk0WWU1YWR6WTExNXhOb20xbWlxQ3VqTWtMaXFBbnFxT0tCcENveUlwMzBFcEZjcWlB" +
863 "SXR1b1NlOWRDSzJPU1NlcEs2dHBBdmFpSUs2MmpvSTRpY2FXcWRWQUVFVlJkSzBGUjkxV1JJRU1NeWVwYVhHbTF0TlJCSGNU" +
864 "UndESnFHU1ExTUVKVHpiRFkrRDRlSytONXhpa0RXZGx2UlZVZEpSR0xoN0h4RUo3NnV1MFhuei85NkErL2QzSHY4cEZiaisv" +
865 "LytYZDkyL3Q5QWlQWkxZT2xETXl3V1RBR0RTcEs0a29KR29TRUNCWmRML1QyUDlEY29VeEhVOWVodC8rNTVlSkpOUkRtNU5I" +
866 "UGxubEI5eHBrNGZsdlorNFJHaStxYTFVUkJ5RXRvcTRsRHVKYVNRUVZSMjFWeFVFY1JGcEhZK0gwWm1RTTZzcWNuTityb21q" +
867 "cktFZ2MxQ3hyMlRWbWFtSnRURFY4QXQvNjJEL2ViZC94RmR1TFIyV3pjTHExdTNmeCtadC83U05mcGtpd01HOTRHQnNQNFoy" +
868 "Lzd4ZjlMZnd0UDRDRmV5ZFlYSnVEelFpTktxSjFVQzhLaW9nZ0pITHYyL1VmZlRsV0xTMnpSU3hqNkhMSzJKQkZ4ZklqZjRX" +
869 "Y1BJS3BKdVBNNVFkK3A1eC8zSldnMVpER1VSMFU4UklWVVEvVXRXaDlMeTFKU0YxcFhLdnRsc2ZlSHNtQ0N2WjdMdTlOTTNX" +
870 "VVJGdHhyV0xPc3VkOHp3WFdzc00wc2ZkeXA3LzFTNzhEZjhoTFBQdTd2dmFYUFBMNSt5K3piQkVkQ3hlTGg3SHhPbGlrSTdH" +
871 "MGdoa3lxNTJVQ25FUVZCTEtjTkJTaERpb2cwVU5WVkpEQlRWMHJvS01NTFlrNUFhbWRFZnJXaEJLSGJSYTEwSkNrVklIZFZB" +
872 "SkxZcEVVcTM3aWtqaXFDSU9nam9Jb3FXbFlnU3RwQmJNME5aSVhDbXpOU2NyTGxkV3JGakxhc1dsVjJJN3RoaWlxblRxR2c5" +
873 "ajQzV3c2WHgwblVTa05jdCtIMllsMUZFY3BRN3FTdDFYNnI1UWhDUmFKTFRTa2lrejJFdUNhb2NJaWtnV0RGU1JJbEZGcUlO" +
874 "S1FrcTlvSFV0Y1Myb2EzSFUxbEVTTDRocm9TS0lVbG9IVVJVa2NhVlVCUWxHTEtrbE1Wb0plOE13dkJMajlsdkpDV09QWXRX" +
875 "NWVoZ2JyNE43T1IvMzFOYlFKY3hLRnd4RVJOMlhvS3EwcUNSa29jT1ZJQTRpb2ExcnBaTlU1NVJSc2NNZXdTUkZpV3QxRUZT" +
876 "RVJGV0xWaExVOTFYaUlGNVVkUzF4WDcwb2p1S0JxSnBsVHFvaTRscmp5bkF3eU1MYmJzWDV6VnJRVG5jdFRzZGpQL0lYWFh6" +
877 "T0YreWJrOHAyV1RZM1A3TGUreHQvdXgrNDdTWE9MOTNlYnBlSkVhdk9vWFB2WVd5OHluNW1mdlFYcjduM2I5NmR1K2R1NU9U" +
878 "VFdONys2THVlK0ZlLzRCM1RFbXhZRm43a1owV1dyUWl0YTNVVUZaT1RSemw1RjRhTVUzRkc5bHcrSWJ1UEtkcUtLVm4xN04y" +
879 "eTJXQVJRNWF0ZWZrMCszdXVwR3FqclN0RmcycGRLK0lncUxZZVNLSXQ5WUtxbDRxUXVsWkoxRkZwcVplb2xsbG12YUJGaUJl" +
880 "TllOWlgvTUloclFnbW8vN0EvL2p4My83K2YvemtiOTlQTG16dHVqTzcvZG40UzE1aU9XbXlsR3hVMVdRNTl6QTJYbVg3N0gv" +
881 "MWg3ZFAvTkxSMVpOanRTdS83S2RNdi9ZWGhJV3h4TmdzbG1VajJiZzJhU1dvZzRqdzFpOHlmdmh2WTFSeVNyYW1SVC84cCtW" +
882 "RFgwTWM3TlhSTUQ3amx4bTNQb1dlTXJhTXhlNmJmNmZlL200MXRTSERhRFVPNG9Fa0ZFR2o3Z3ZxU2x0WDRrcEVXMEpRVkVW" +
883 "cENIVmZ2U0JoT21oVVpaQkVHM1V0cUFvYTRtZ1lvelRhV2h2N2ZiRWFrMkFrVHF4cTlYSlBYdWF2UGYyL2Z1WlgyRjdlcy9a" +
884 "czdNZW5iamE1NHlGc3ZNcHVpTE94dDUycmRsb1RqMjZHazgxaXpWQUhSV21uQkNHaVNOQ29SWVJSU2NqRVR1elZwWGFxWUVn" +
885 "aWhveUZiaEE2NlhRMEVwMURWZWZVa0ZJazFFdEZVaThWQjRtMnJqUmVFTnBxNHlpcDc2VWxEb3BJcUlvUUJ4RVZKZFVpUVVW" +
886 "UWNSU3p0Qkcwc1phNXNpU2l0aWtwOFFtOTkvZi8zRHY0dzE1Rkc2KzZtWWhnS2N2Z1pCTTJXME14SGJYRjFNWlJQUkF5VU1i" +
887 "QVFsenJIcVVYMnAxbVE0WllFSEpLdGpUYUtYUFZ1YWRGcUlQU3FxQXFyc1I5ZGFVSTZpQ09FbHIzVlIzVVFTUlVGWEVRdENy" +
888 "aUtJN3FLSzVWQkNHa0pQRnlSVnNQdEE0aUdHRUpKM0ZsR2FTTEpIVDFXdHQ0bGEwdVRWUlZ0YXl6cXBxSW9YRVFzNVVVMFpL" +
889 "NGI1QWhqVGpCaXBJcFhabDNzRU5jaTFyb3BCdXNZc1VPT3pVeE5BNUNxWXFYS0JGRlZWTVJWK0pLRzFSOWIzRlVpWVBRYXVz" +
890 "b1hxWmVwa1lxb2ZXOUJCVVB0TFIxRkNTTVFUb3RKWU9FR0ZodzRiVzI4U3FicG9sOUkxZ251N1ZZeFlaRUVrbGNhVlJKQ0lx" +
891 "ZzZBNERwZE5SUzd2WHJuVFNrS0Zxbmo5dGpDR3BXdFdpYzBpaVN0MVhRUkV2cW5vZ0RRbXFkVkJFUzRLNlVqU2t0RVFkQlUw" +
892 "Y0ZXbEpFQzlvUEpCR1JaV1NoSVJXUzB1UmhGU3dPRWd0SWFpcVNtdWFYZzhicjdKMDhjREV4QlFNeVNBSUdVTXlITVZScVd0" +
893 "ZDFkVHpqNWdmKzNyR0hxdnV6M1YvUjUvN0Zrcm5sRVM3WWxxLzQ0K2JRYXBveVg2bmdpSWVxS002U3FLdEs2VXBDYTE0SUk2" +
894 "UytNUWk2b0U2YUIxRkZLa3JMVUVSOTRVZ29nNUs2d1Z4VkVra3JrUUZJd1JyMlJWZHphNWVEeHV2c3BNc05tRVRsR1d3R1dS" +
895 "c0pBUFZsQloxcmRvS3FoU0plZnRiZVA2M0tkSmlPa3ByMmlEYVlxV1JyT3BnRmhIVWk1SWlLcUtJbzZvWEJIVlFHdGVLcUVv" +
896 "aXFCZWxEcXF1eFVHSVVBY1ZEMVFjeGJWU2hIaFJWWXM2Q0lxZ3JwV2dNWkRVeEdWaldsMW1VcSs1alZkWkUwbU4xR2dWbTRV" +
897 "aDZxalN1dEk2cWxLcUpDaDFKWWlEQkF1dEtrR1JDb29LRGVKSzZ5aW9vSXFFaWl1dGxpaENTYjFFMVZFOTBGTDNCVVVpamtw" +
898 "UnBBaUNPbXFwdUZLS3FxQXFJbUdLbzFrSHBZZ3JkYTNGckxXc29XS1dpZFhyWStOVmRpZm5Ma3JLRWliV1dYUGRhWVlFZ3lU" +
899 "YWVsRmRhU1hVQTBQcm9PSW9tanBLaXFnUzE0TCtmN3pCVGFodWU0SWY1T2YzWDJ2dmMrNVgzYTdxc3F0U05wMlF4STRKMk1h" +
900 "b2tWWmJJbWpIUkxFTmFNVDRNWEtpQTFId2F5QU9GSUlvWWh3NEVoMW9VQUtpQ0VvUUlSTXpTSWhnU0l6OUdhcGpkOGUyNjFi" +
901 "VnJicjNuSHYyZWQvMS83blcrKzd6Y2J2aWFPK3E1MEdwa0dvckRwSFlSV3BYRlJUeFNoT0h0Q1FPUWUzcUl0NFNGS2swR2xL" +
902 "cXFFT0tFUEc5NGlKUnU1SUVOVUpWSGVMUXVwaWxHK2ZKdVRWRkJxUHh4QS9HNnBGOXQ1OTZOcXRsQ1MybmpjNnpaTkV4bUNF" +
903 "bEpTU2hDQkdIb0VVcWNSWFVMdUlRV3NScnM5NFd1OFNoZHJXcnEwcENxWW80QkcwVmNWVlhSZXdTcjdTVmxFYnRXb0pHVk8z" +
904 "aUlpSHhsaEJtS28yV09GVHNZaGRKYUJVSkprRVRVUU1KS3liV0J2WDl0bnFBUDVyZis4WGJmUGFsZCtmN3psNTZZZkd6K2Zy" +
905 "N0w5V0taUjFtWSt0cW5qYzFaSlNRTlc1dUJxcDJDWXFTT0l4UVYwSHRRbXBYclYwRURZclVLMEZLSGVJUUpkSFdvWFpCYVN1" +
906 "SlF4SnR0VVVJVVExRjNDdEJoUkNIT0NRdVVxL05XVUdDMExLcy9QQ1BEQnFIbGs0Ky9zYkVGTFIxQ0RwcFVSTFcyK0hERDZy" +
907 "bEhkTjV4TzNwdzUvNC9kOTkrZk0zdWJtWnhoakxoKy85djl1bmYvbVgrdEZ6anlnZTRLZlhILzlQUHNrMy90VjM1aENidS9C" +
908 "My85UnpQLzMzYnNhOGNmdUU5Y253MWEvd2xTK1ZzWkFReGpyY1BGbFZDVUZWV2hVSkNWVVhkVldxSWw2cHE3WWlya3J0NG0x" +
909 "dEpiUXVXaGRSclYwa2ZwT3FRMUJCQlJXMENQSC9yNjNnOUx6dW5tMmtDS1hxRUxSMjFSbmYrTlVOVTlGNnJhMEtwYTI3dTJG" +
910 "dTFib1k2L1RmL3VuaC8vakxnOVJtY2VmR3MxUC9nWi9ycy8vTkkxbzl3RTNIaytmamhUazJJOU01L09odm1YN3lKK0o4M2pR" +
911 "eGxycTVHWktGREs4a0NFRWQ2dERFVmFuWHF0UkZSUDBtSmVJUWgyaXFyVU1jNHFKZUN4bzBFaGRWUkZ3VlFlMUs0eXFoZFln" +
912 "M3FnNXhpRU9DdW9vM2dxTFJVa1cwekhxdFNxTjJwUTVWM054T2FSMUdXQWJ2akdsdG5jSTB6RzdXZW5TckI1amQ2UFN5bTVx" +
913 "bVNKZ1pMRU15R05FTUVZcDRJM2FoZFloZFVMc1F0QTVwVkIzcTgySVhiN1FhbEFqcXRhQVJSVFJGRVVtMEZTRzBkUlYxRmJz" +
914 "aTFVYnQ0aW91SWc2dFhSMVNWM0ZSdTFaRVF0VXJiVkF0VFVXMG9WUUpTb1FRSlpFd1JvMHdVeTliSi9IU3RPR2tIdHZxQVNx" +
915 "YUtEWnM1VlJtUTRhTVNJSm9peUlPbldnZGtuaXRsY1JWRVpUWVJZcTRLa1ZkeFZVVDZpS0pRKzFhVjFXN2xMb0tWVzhMaWlq" +
916 "aTBCQ2hGZFdRQkhVVlVvcFdVTFIxcUYxUUZ3MUJRaEhVSVdwWHBncVN1QXFEMUVXRnVKaDJyUzJ4aGExc29yV0x4N1o2Z01X" +
917 "d0ppUlNocnBaWWhuVUxpRnMyelNXU0VOSTdPb2lka1ZRRXZXMnVrakVMbmFoaU0rcHVtZ2RFcnU2S0lMYTFVWHRJb25VUmVP" +
918 "TlJPcGVFWWVxb0s2S0pDNktSbHVIMXVkMFRra2xvWWlyMmtWTFVFUVZjUzhNTkdpSlhTVGVtTEcxWGs1T1pXS0Voa1U4dHRV" +
919 "RDFCUU1GU1Z4dTlSWVlzNTRiVVJDaXlLbDhYbVZvRlc3dWdvUlJXSVhWMlc2Q2xxSGhxUmVhUWlDMWxWQ3ZWRWtLUFU1VlVL" +
920 "RTFtc2hka0hxdGJpSXF1bWlwRWlNMUNFcGNTL3FVSEVJY1JGdnBBaXhTN1FFOVViRG5MR3BxWWloMmtVOXZ0VURiRGF2RENT" +
921 "TUVRd1hRV0tJS09vUUpDNkN4a1ZiYjB1b2tJaEs0cXJhT3FTbFZFbEVhVVZwSENxVTFpN0VSUVIxYUN2eG0xUVNhbGNYTFVK" +
922 "OFRvSloxS0VxRHFXbGxVWm50U1MwUmJ3UjRpSWhRV21SZUZ2c0VtMGRXcnRxYWFxaGpjUlZmRitzSG1BemJXcUlLVkptN1NM" +
923 "aXFvcUV1SW9nRWxjdGdxQ3VpcEI0cllpTFo4L3EwMDhYN1dRVUpWUFVZYlpxOFRkOWtaR0tTR25zSW9xcXE4UkZRbXRYQkhX" +
924 "b0lwTFFha2xjbGEzVHIzOFQzU1NSVEZFcHV0ZzZETVA3NDJUYnFoMGtJdG9pcUtzUUY0MTdKYUZVRVZVRVJhbUwyTld1SW1w" +
925 "WDN4ZXJCMmluaVlrNHhHeTFVeHVLUkVhb1hRaDFxQ0lPSVdpOUVnTkZ2VkZ6TWdmLzNaOCsreS8vNjJkdXdqSlpaZzFWblBF" +
926 "Q04xL2d2L2xQbi9yeWh3c3BpYmhLZ2xJYTFFVnJWMFJRaDNxdFZVUUlWU2EvK0t2VFAvdXZ2UEFlbHJCZ3djQjBka3JjTGZV" +
927 "bi8vamlnM2VIQlFseENDcEJFYnRLVUlTVzJnV051cXBxN2VLcWdtQ0lZUHIrV1QxQUVrcFRoMkxiVU5wNHJjVndpSkFpcUxy" +
928 "WHVFaWtDQktVdXFpSm1wUG5kN1dkNG9QM24xcTI0ZTdqVDV3eFcyZk1oTnZLbk9yV1NBa1ZWTDJsTG1xWFVoTGF1a2lvcTNo" +
929 "TEJMUHg4bHpuWjNVZTFGVVJOTFV0d3h4MFRuUEdDRVpJS1VGZERZZUlxS3VFMXVlMFZYRVJ1MG9SZ3JpS3E0akh0bnFBUlNR" +
930 "dXFsb1VwWFV2UnVPTnFoQlhSVkFYVWNSRlN4RGFTbDBGaWQvMWUzNlhmKysvK00rOStPUVQvOElmK0VQbVdJenp5V3dkM2ds" +
931 "akRCazNaSkpOU292NG5DS3Qyb1cyWGl0eFZVUVFoNHFLODBTanN6cllFck4yTlVSbWpOUVlMQ01rRWlLazNsWVZJUVFWaXRC" +
932 "U0JCVnRFVlRpSWhnSVpxdHhFWTl2OVFBdHFWMFFoeFlsb3E3cUtxNmlORjZyWFFrdFVVMklxOW9GMWNaSTNTeVRURC84NFR1" +
933 "K2ZYN2grYXdPYmxHSE9MVmF1NUJJb2twUnFpS0NxaWF1NmhCVVNDa1M2bDZwWFVRcFN4aG8yZFFocFVqSWlOdUZteVdNS3VK" +
934 "ZUVWZWw2bEJYdFd1OTByb0lpdGpWNXhSSkJIV294N1o2Z0drcWlqaEVTMFc5SlNTdWd0alZJYUt1MG1xaUNDS0tLa0h0aGhI" +
935 "R2N2Skx2L0RYL0l2LzJEL2x2TlhTNnVtc2lKZzRUODduNmp4TDdPb2lkblZWRjQya0tsTHFLcTZhRUNLMHRBaGhHYkdFRlFN" +
936 "VExSSlZyWXVHWllsbEtZT2lSUkhTcURxMDdzVkZhZU9xMUVWRGtOaUZUbEZFVkV0RDFlYnhyUjVncG9vcXhYQlZ0Q1FvUmVL" +
937 "VjJDVUlTa0pkQkhXSXR1b1FRVEt3U3FybDlOblpYLzI1cjl2bU5Cd3FDQnJtWkp1bFoyWjBVTHZVS3kxUkY3VXJRVUxkaTZn" +
938 "NlZFdVUyZzFKSk1OSUREWFJVQ1drVEdTNkdBc0pVN1JoVnUyS1JsVWJiU2hGWGRXdUlVUWsxYUpJU1J3U0pLcGE5K3F4clI1" +
939 "Z29rRVJacXNOUWVPVnhFVmlGK0sxQ2kwSm9uVlJkUkdFS2dtRzJteWRPamUyelZBU3lnZ0xCaFpCNmFZTkU3R3JaQ0F1Nmly" +
940 "RUlZSW1xS2hENXFSRmFkU3VSYlEwYUZ5MGhOaUZJblloaVlTMERrMG9GVk8xMGNrMmkzcWw0cERZUlVMcktyNUhIU0toOVgy" +
941 "eGVvQnBJZzV0TmRHNFNsM1VXMEpjSktFaFJhUXVFcnRTdTlDcWU0a29rMkxhaFlnZ3FZRWhnbld3ck1oQXhXWnVmUHZUSVdN" +
942 "YVkzRzdEdTg4MlNRSVFWMmxkcFZPejE3VU5pY3psaEZQMTdOYUpERWI1OGsybVVvaWlTRHVoYVNDYmdodHpMcHF0Q2pGYkxW" +
943 "VnhDSGliYVVJc1F0UlN0VVVWMVZYRVk5dDlRQ3prOVpGQ0ZyYVNxTnhVYnRRVjNFdnBORjRveTVhbW9yU0VNeEpxNjJlSWhn" +
944 "WVJZZ1lhdGkxbmd4dWJnYmpCbE5icDlQMEwvMXJMeno3dE5ZUmY5ZnZXLzA3LythcUZra2NJdXBlMmJiTmYvQWZuZnhmdnpC" +
945 "MWlUL3c5eTMrNVgrZUJJTTVPVTlPV0JFMXloSVh3NkdLbHZOV2JSUkY3RklwUlRBU0tRMFY4YllpaENUYVVwcElVSUsybXJp" +
946 "Szc0ZlZRNlFTWWxkcWwwcVlMUTBoN3NWVlhCVkZFYnU0S0psRG4vOE80M1FqTmpXa01XZk45WVdldjI3MUhUZUpvZXFxaWFC" +
947 "aUdUWEdZTnhpWTFiejB1bXpldjY4YmtlZFhrenRodWdjaERvRVpkWjVxKzkrdHo3NlptZzkvK1JzZGpGR2pFVERTQnkyeEFn" +
948 "RHdZb2xCSE53Mnk5Nyt2ekg1THpTYUlwTkRKYVQ1MDkvbHFVbWtocG9YY1ZWSWtpaXJhdElxd2lxYWhmVXJ1cnhyUjZnclZr" +
949 "RzRsN3RTcU9wQ0VIaWtNU2hkbzBxaVVORjVpSXozTDJudi9iSDlMTjMxQ2JLVnVuazZaMTErNitzVDcvcnR0SEpGSWVxWUk1" +
950 "WWJvTlZPbEZhTFNaREJVbFZkQnNXR3lHcWdrSEpMRnVzbmFnaGdqUTBSdUtEMjhXVHA5VU9NMVJsc0laYnRheXgzYksrL1B2" +
951 "ZHZ2ekRscnVUZHFwaWtxSHJ0OHo4c3F4M01oa3pab29pRktrMGhMWXVTa0s5c1lqWUZYRlI5ZGhXRHhEZmF4WkJrQkJ2SklT" +
952 "cUdDVFV2WWpJOWtTMlJWNTh5VHFmc21DaXpGRTIxcGMzL3VoUC9sWi84UGZmU2FaNSs1RzVQTk81aWdWeFdGWStlQTg5TVRk" +
953 "NlJpemhGa3ZSNlRTNWV4RzJhcXV0ZGxpVUxlYU1HL1ZVSmZIKzdiQXNxMW93RkwvamEvR24vc1M3N3U3T1pGckh0QzRzNjdD" +
954 "NGxYbkx6ZlJENzMxWGZtTnpNZEZnSUl4Yk9kM3FkalpQSnpYRkllb3FhSW0zUlZ1dmhSZm5vSklLaW5wOHF3ZElrR2pSYUJC" +
955 "WElYYWxpTHFLaUNTSXhMM0k2Y3Ztci83Yjh2S0plQ1pkc0JITTBpR3BUTDc0NGcvNjhQWWZSYzBuZjliOHluK3ZpRW9HaHF0" +
956 "cXB5aGx0WGp2ZytIdXM1cXRQLy9uK1psLy9NNnBkKzRtRzFvU2JoTTNZZ2sza3dXM2EzM3BoNTZ3M0RDanJjT1MrTEd2TGRw" +
957 "cWFhTVpoc1hOaTk4cXozKzNqaWZ5bmQ4bXZkRk1HYVVoVlJIditYRDd0L1IwNTdSOTVLUHpmMlpiWDBwSXFuVVJoMmhMYUNz" +
958 "cWlTcU5ZTVF1QnFaRFBMYlZnd3h0SFlvcGtvcEtxRGRhRXZmcWpVaG93L21wOFhMSTloTFJPU2xtSEZLVWh2U0pzYTNTWWJ6" +
959 "NGlsT2ljM0ZvS3paSmlJdUtaTGk1bWY3alAzN3JWLzdhblgvL1A1dysrM1NhSXVVbUxFcUlHSzBSbHNrUVgvZ2gvdlYvWS9V" +
960 "N2YzeWxRV205RnBLVlJscXpNVHNzMy9udHhzZi9vSzYzT202ODBnNkVrbFRVT0gyZzUvZGtQcEVaVXl4S1NlemkwTmFocnVx" +
961 "TnRwUVVjUkV4MUdOYlBVZ0lyVjBSc1V1b2UwVlFMVkZGT3lXVFJCdUVEWGViT2t2S0hMU1V1b3A3amM3cVVsMXZEVGNNdE9x" +
962 "cWNaRkdnakVjdnZ4bDNuMlBkOTYvODUxUHBxYUNHelRNVWlWTXNjWEYzLzUzREwvMzcxeHRNM1RTcWwzcllvU1NERnFqekJt" +
963 "MnA1eWpZMFBVUUJDSEJJM09NcWZPVGQxcE5sb0ppWXVpYUgyUHRpN0tDRUdMdUloNGJNTkR0T0lxWWlCMkxZcHFLNGhpcW9t" +
964 "SmFkbzBVMU5NMllhY3lIbXliZEtKRW9JSVF0RXBKcG1NVFVkSUhLSU83YVRWRkVGVVZMejd6dUlmK3FsaEcwRWNwampQT0Rk" +
965 "T004NHpUbzA3a2FmeHgvNlpHejBQbVpOT1dtbTlMWWtrWkRBaUl5eEl4TVk4czIzTUtiTzBPcXNsS3Fta3NreVdXQWJpb3E3" +
966 "aUxmVkd2QmE3SUM2Q1JUeTIxVU9WWUtESVpHNDFXMVRMM1duNmJOWkVHOG4wem8vOG1DLzh6cC9CSm4xS052TVhOOWtXTW1r" +
967 "WmxVR0ZSRlZLV21iWlRuUmxtMnFxU05CNHBYRVJyMVNMeGovNVR6ejErMzdpcFcxdXp1YzZUODR6S3BZd1V1c1NON2VzNitL" +
968 "clB4THRJS1dJcTNxdGRpRUpRaUs1bGZsVVRpZHRkR3dFcVFnSlFjSllHTVB3eEZnV0hTZWpUTFIxRllKU0JJbXJ1QmhCRVJK" +
969 "YTR2R3RIaWdJa2tyWU5yYU4yWW80bk82bWx5OXFialZMNWpUZWYxZWUvcmcwdUdGVTMvOUYrZkJYNVBhWHpidXZjZmNWbWFz" +
970 "a1dqTG90RnQ0LzYrWVgvZ3JhckU5L1ppSkZDR2hsYmhvbzBycjBNYmh2ZmZqYi91SnA2U296bWxyS1NrWmtRU1ZSTVFVcVRk" +
971 "aVYwcGlWMWNWRkgzNmYrc0hmOUY4K2h2eTNiK1Z1Ni9Jc3FuUUljSllXT0o1Zjg2TCtSRVdJNXVtV3RRdWxDcmlxb2dpZHEw" +
972 "bzR0RFdqSXVwSHR2cVFlSXdFQlNkZEZiRklTcGlKRElpSm9rc1QyU3N6S0tLdlBNUnYrMS8wZHR2OEszZkk3LzJSOGpHaUtD" +
973 "aTZCem1GMzVSdi9UbnRIWkRKaDJ1V3VLaWlGMUNxM1ZSSkhieFNqSXNRZTFDaUt1ZzNoTFVWWHlQdElxbzh3LzlSZk1MZjRu" +
974 "bDVDWXMzL2lhWmtQSlJxUEZYSHg3Kzk5OTUvVG5aQ3ZMeVp3b3JiZEVsQkFoTG9LaWFLaERmRCt0SG1BeERNUWJpWXNnY2Ev" +
975 "VVJZU0VzV0RCSkVNUzFpbFB2MHVmeUhyR1pLNk1NeUtpMmN3MTVwUG5Sb2FncFNvTnFvZzR4QzUybFF4U0YzVnZlaTBSdE1S" +
976 "VlVOU3VGVkdsN2tVYUZFVUVEVnF4UzR5Rm1Sdldza1JDVllvZ1U0cXRrck9PYXFsbzdTcWlxYVJHNHFycXFxVjJaWHFsZ3Fr" +
977 "MmoyLzFBSXRoaE5pVllLaTJxcUxFTHFRMDJ1b3NDVVVXTENnNWE1OUp3ODFmNTR0L2dkeVpOOS9DZ3MzTXArYUl2dnZMYXBD" +
978 "U0lsckVXNEs2aWdhbHRhc0lSZXlpU0Z3VWFkVWhxQ1pTSXVvdGNkRVNWYnRTQkIwVkZaeWYvcDlPWC9pTzVxVjBpSmVlZmNy" +
979 "TGw0UDVydWY1cTJxcUtLSWFGR0dFTVVncW9tV1dpYW9XWmRaRkVrRkUxR05iUGNDYVdNU3dDek5VekdsWE01SEIzUjNQUHlt" +
980 "dHJiU01qMy9OeS8vbmY1THhoS3hrc1AyNjlTdC9DM25DV1BueGI5bWUvNHJ6TjM2ZWVVTWpkVEVVOVVyaUt1NlZ4Q0dvcTly" +
981 "RkxnNTFMOFFoRXFvcUtPcVFVa1dJWGIyU0l0WGFoVlJhU1NoVjFJdmw2ejRkWDljNWRiS2RwdWZuMmpyRnJnaFNSTlVRVW1Q" +
982 "aFI3NDZUS0hSMHNrM1B6cWJwK25RMGpKTEVHL0U0ckd0SG1BUnd5NjBNY3Q1NDN3ZXBNWWdaVHZYNldXMXRGU2NQLzUxTDMv" +
983 "aGY3WXNRd2JuYzYwZmZ1am14LzRlblpPU09XU3VNdTJLU2xBYTkrb2lvV2dKUldZMXJ1SWlRcWhka2RCU0JFV0tpQ3JpcW5Z" +
984 "SlJSR0NscnBLN0VvUldoY3R3c3NYMHlmZk9xdGRvMFZyRkNuaUlrZ05jUmhockx6MzRUREZuREUzVE9ZM1l0WXVxaUtDSUJn" +
985 "SllqRTh0dFVETENXWVlndm5janB6UHBjUkMwYVlremxKU0dKZ0NGMXRHNk9WSUFzZGRLRjFNZDJySkZxa2lEZmlJblp4VlJJ" +
986 "SkxVcnM0aUtsQ0pwSXEwSmNSTDFTUVNVb1lsY1hqU2lxNHFKRnFWMFJFYldicE5YWTFXc2hxSktJU2lJaHlDQUxzMnd6NW1T" +
987 "V2xJazZWRUpTUzRiRm9UWUU4ZmhXRDVCVVZNb0lRNlRWUmtvYlFsVENDRWt0STI2V3lGaTAwNXdsa1FSRFloY1hRU0toTFNH" +
988 "bHFpVnhMNmhYSWdRbDNsS3ZKYlFWdTBSYzFiMFFVYVhVTHFRdUtpaXAyTFV1Z2tZenBYRlZGNlVsUVlvUXROUXVsSVk0bEZB" +
989 "RWJiUmVTMnBKelZRU1VTT013UWd6TVNkVlZZOXQ5UURKbExDVXBTenFTVmlXS3VKUVk3Q01TaGlKWmRSSVJSUVZPbldlZFg0" +
990 "bVhSQnRtV2ZpYytvcXNRdEI2eXFvaS9vYmEwa29FYTlVQlVFZEtpSU8wWkJXVlJKQkhZSUthbGRYalNLcTZsRDNna2JpWHN4" +
991 "U1Z4RkZrVlpFUzB2dHdnaUxXQVp6Mk5XaHBaTlp0bFpSVE5Oald6M0EyaGhsUlJvenZIZGI3NjY4bkFSTDJNTHRRSkJLUWtz" +
992 "M09zMVowN1NlbnB2Zi9ubFhVK2MwVDUrSjBJcG82eUp4VWJTU0lPcGVFZFJWWEpVR3JkZGlGd2t0NmlLeHE0aW1sTHBxNjVD" +
993 "RVZtc1hXaGNoUXV1Vmx0bVlJcTNZaGJacUY3dFF1NGhLaUJBU3UwcUltT293a0xKTjVzYTI4ZWxMUGd0cE5NRXcxR05iUGNE" +
994 "SDRhVjRzaTFrU09QMjVteDVzbmo2Y2xIVEdQWFNwSlhReG5uVzZWenpQTTNXYk1qZ1hMYm5EcDJoVStZMEcxUzhwUWdKRFZw" +
995 "L1EvRkc3U3FpcVFpcUNEb1J4RlVSMm1yc0txWHVCUzExcjRTVW91cWkxVW5WczA4MkUwRkVTaEpVN1lxUWhXV05NVWhjWkky" +
996 "T01LTm9ZNXErK1IwKy9UVG1Gbk55YW4zOC9OYlMxWXFiUHJHTnhRdkZaeDVUUE1BLzk2Vi8rTjNOOWtPLzhlMi84Tkc2dkpP" +
997 "Qkw3eHorNmUrOC9RM2Z1WjJicVM2REgva3Arc1AvMVFZY2RqS3MyZng2Y2RUVTJQRVdPS0xYMTE4NWJlL1k3WmlWNVNxdEln" +
998 "cTRxSWtkbEd2MUZVa0tMVXJUVjAwS0NVcDRxTGVVbStyUThVYnJZdTRhdXNRRkcwcExYT2I1cXhmLy9wMDkyd3lTQ29pSVVw" +
999 "cEVaNjh1L2pSMy8yZUdGclV4Yk9QUDZXaGJHcVkvdDAvVVQvN2wwcDUyZUd6MW1mYnpULzl0WDdwZjdndFQ3M3JuT0Y1dC9P" +
1000 "ZjhVdjFpRllQOENlLzliOCt4M09IOHljT2YraXpyejcvNnpPZVRoWTFUUjkveHN0SlJCSlZiYzJ0eHFpb01XSjBNTS9TT0RR" +
1001 "VlErd1NoNVM2RjdzUVVsZDFGVnJVYXhGdmE5QzRpSXZhdFJJWFJSQlZVUldIU09yUWtsWmMxUzRWMUs3RmRJaVNDZ1l5aUYw" +
1002 "SVVnekdTbEZUWWhjbUxUcTFROHQ1c20xMTZxU2N4akFtYTAvUC8weC83ZVNWK3I1WVBiSnQzc21Hc3FYT1pVNjJPWXd3N0VK" +
1003 "RUduR29PV3M3VGR0cDBoQ0NacE14SEdwWHV5S0VLblZWdTZCZWl6ZUtFRlFvUXBIV1JldlFJc1NoaE5pVk9wUldIRUpvNDZv" +
1004 "R1hueFc1eGRUN1Vwbm1Jd1JTUVZSQ1dPZ1pLa2sxblhJOGxSYml0UXMyMVlSTGJPWVZYVnFSUkEzQmdiT3Z0OVdqK3pHY0p0" +
1005 "WVMrdGlYVmdXc2tRU3dUSnFESVRhbGVmUDZ0dS9lcWNpUXVMMm5lR0RMMGZ0aXNRaG9mVkdrRkFFSmZGYTdWSWFWZXBlYUZX" +
1006 "cHp5dTFDMm04a3JvWGxCWVJwZEhROHQxdmJUNzlhUE5hcXhoQlVGcVN5SWdSUm1vTW5yejcxTTBYdnNyY2RGYTZtYlA2alcr" +
1007 "cXhRaExHSGpucHRZaUxwSVk0Z2RoOWNpRzFUcFlTc282NHAyVnA3ZHNTcEVhQzh0U1VyVUxVV2tjNGxCbXRkVVdFYnRFNjQy" +
1008 "UVJ0VlZISXFnZFZHSE9pUW9Xb2VVT2dSMWFFbEtRMXkwUGlldTJoSzdVcG9LMHBxdW9rYWlTcGtPMFViTFJCSlZFbGNSaDlD" +
1009 "Sk9pU00xTTJvTmR6aXJFNXFNMjNxQjJIMXlFNWlVMnRZN01LNnNJNHFabDJrSklpcmhOTHBvcUdObHJRVVFlc2lrZGhGVzBJ" +
1010 "YWpWMFJsTVlyY1loWEVyUXVFdXBlVUlsZFVDMUNIT29xbEtoRFp4MGFValJtYVJFa0RuWFZSakZWWnlRVVF5aEp5R0RRUmd6" +
1011 "TEVrd3hTR21NVUV4eGFweTdtWjErRUZhUGJNTXNyVGZxb21YV1JWR1ZFRFV4RzIyMEljd3lHMElTRW9lSWhpSjJvWFVSZGFo" +
1012 "RDFGV1VVTHZhRlhGUnU2Q3U2aUtrMUs3dVZlSXQwZEpablhFb1ptTE9xVXBDRWVvUUU4VldkTHE1SldPUUlTTm1ndzBMR1Jp" +
1013 "U3MyVmRzSm5idE0zcVZuY2JMekhMREhXb0g0VFZJN3ZKalJHR3FHanJmT2J1SENjVUl6V1dZWXd3U2trNXY2eHZmMnQ2cFdK" +
1014 "OFV1ZlRabGtpUVdMY3hBYy9mRXRjUk5TaDJwQktxQ3FDMmpVT3RXc2NZaGVLQ0syS1Yrb3RyZUxUajg4KysvaE1RcG5sNVlz" +
1015 "NnY2eVdscnBLaUVvaXFXV05NV0tXV2JZWjcvMld2OW1QL3VRL0ltUFJMR0tZcCs5NDl2UC9vMlV3RGNtVW5xekxkRHJYZVhJ" +
1016 "K1YrN3E1U25PQ0JZRThZT3hlbVJMYnNnVHpjbFp6TW1MYlRxZEZoczZNR2hMQ1dic2l1alcvNjg5ZUl2Vk5UL29Bdno4L3Uv" +
1017 "N3JiWG5VRXFQVUdxaEF0SkFKU0VJbmdLYUlCcGlqSmdZbFVoaVBDUktpQkVURXk5TUx6Qnk0K0ZHTGdnaEdJd1NpVVFOSGhJ" +
1018 "SnAzQlF1T0JNUVdvaHRCUmFlcGhPTzN0bTc3M1crdDczLy9OYmE4OU1wNHBPWlcvYXBKbm5JVUVKNXJSZE1oTmpJSXg5R0tK" +
1019 "QjYzbEJpM2hPZkVSYno0c1hpTFN1TlFpSzFvM1d0YmFpOWlQYkZUcmRWOWxqcUdLdms0cElHRWdxWVlTUmVFNEhpeUU1Rnlz" +
1020 "R3ByUzZIVm1jTEdUU2pkU2NkTWVPeE5XSWJSbldSc2FCYm96QlBQcmR0bnJJenVZcnZ2Mk5GK2UvY05pUHJ2S012WnVmL0pt" +
1021 "N2YvVi8vTmIySm5ObnhLMlZMLzNzK1AxdnJEaEpYQ3Zpdm1USVlCbU1FU01rYnFRbGRTT2hkUzFDU3VzNVFldEduQVIxWDUx" +
1022 "VUZIRXRya1hWUjZ1WVd2Ykp0aE9NSU5SOXdRaXowUVlsQkNPTU1BWnBETFZtT0J4V3hya21CSjNtUE5xM1RlY2kyU1dUd1Qv" +
1023 "ODV2cXREMDdIalgwblkvSEVleC83N2srL2ZPeG5GNHNsQjFkak4vcm8yMzdPTC92ZHRuckkvdjM4NlI4eS9aQnJkZU1QdnZO" +
1024 "VlgvN1V1Kys4YWVtdVl4cU5SOVRudllFeEdRbWpFcEpRcEZJa2hwSzQxcnJSVkJKYURYSFNvbHJQcTVQRXRhRHFSdDBYbExa" +
1025 "dUpOS0treEdkUmRTMW9PS2tKYlJPWXBZNTQ5cWN0V09XSVlReHlHQXNqQVd0aEdWd2RqaXczQkxGVG5jeGFXMUhraHBqazJW" +
1026 "NjJ6dnFuZStQc2RmZVZURzM3VCsvdmUvNVR0ZUs2ZU5tOVhGd3kzQ0IwY3FjTk01WERvZmhXZ1pqUklzU0owWFEydmNZcllv" +
1027 "NjJka3VLa3RvM1dna2RhMTFVdGVDcW9TSzMwNWJyV2RWUkVKQzkyclJxbWdqYzByaVdvdlN5V3dwczh3eXpzK2MzMXFzNjJK" +
1028 "ZFY4c3lyR3NrMVU0alE3b2FoMGZZbjFiRTFGNmErNVdyeTZHTnVMYklXWm1jYlZPeE8ybWRkL2hFV1gwY1BPS1dlNTZSUkVY" +
1029 "RDQ0L0hwMzM2WW9xR0VTN3YxVE5QN1JLU1NPaXNPMC9YdGFoclV6ejF4RDNYNG1TUUpUN2xVMk9zb1NVa2NTMG80bHJWU2FP" +
1030 "dCs2SjFYMG1RQ3A3NllIV3IxbzBxSXFvSWlqbXBhMUhCOUdsZjlJZTkrdlBlTEdNaFoyUWxBOEVVMTRaZVBhbFAvUVN0V1Nm" +
1031 "VDhmWWRIM3ozcFdLZlRMV2VzY3c2WU1mQWpzWGlFMlgxY1JBaDFWSk1vVFFJSXpGR2pZVmxCQ1dWMEtBazFUcUpxTG9XUllS" +
1032 "R1Mrc2sxSTB4M0VpTElMUzA0cVFoYnJSdWRDSVVjOGFjRlNjaFNOeUlhM1Z0akNqYWlraWpjNWZwSkNTazJGRk1OYVU3ODJt" +
1033 "ZEZ5SVlJdFlsemxmMlRzdEFPRHR3UGpnUFYyTERqdHA5b3F3K0RqWkhjOUt5WTIvTkdjVVl0WVNNYVIwc1MxVlZ0RTVDcW9L" +
1034 "S2EzR3Ryb1dTb21nUjRrWkxYSXZuUkFpS1VCK3RubFU2YVNsU2pMaFI0aVFSUlFWRk1WSmpJQU5CVVlwTVd1ejB5THhrdjFR" +
1035 "cldjd01Vc3VvVVNhcXpzSXFEaVd0akJxR00vR0pzdm80dUdkejJZTlI5ckdicy9aV1pxMkRaYWxrMmhKQlJVdUZXZGNTSjFI" +
1036 "WEtvT0l0aVNxaXJvdmRhUCtUNG1QcVB1Q1VpY3BSZDFvM1docTFJMm9JdldzcUJBa2xrN3JldENjU1laa0lHU3FTS3AxTXVs" +
1037 "R2Q0clVNT3h6MmljdGM2OXRraTN1N2tNeXJLbmtZR1J4c1BoRVdUMkE0Ny80bnJQeEJiLytlOGIrS25Ld1AvSkVmK1hmdlA0" +
1038 "OW4vL1AvdHlsRjdoZDc5M205bXVIMU5KaDdUajd3TDNqNjMvMU4yZk9NaXhyTFNQT1Y5YUYyV2lqY1dQT0NvYWdoQ0FxdzQy" +
1039 "Sy9SaHo5MUV5aUdlRklENWEwYUswVHVKR3FVbXFKWTBxNGxxVjBySTgvaWtPdHg1bERHZmpZSXhoZmV3MU1oN0Zya2d3ait4" +
1040 "M3RjVnV6Z3U5dW5LODJLUlhLaUl1TDY3OHozZkVjYS90R0pkYnpMTjYvNTN6RDd4c0hwNWVMVGc0WnBEbEdmMlFGM3JiMy94" +
1041 "WFo1L3p0NTcrak9Yc01OdzZ1dnZoRDZ4M1A3RGRlZTJmL3FaM2U0aFdEK0kxdi9FbXIzelhMM1RjSlVQTzNqM2Y4Qmx2K1BQ" +
1042 "NEhpL3cxbjdnYjlnOTd5K09QL2JHSC9uUm4vdnBILytKZTY4OG4xTVMrK0JQL2ZINjIzOWxPQjVYYlZ6YjkzcnZlNjZNZ1ZR" +
1043 "U2NWOURRb0p5OTVtcGpiYnVLMFZJRWVLMzE5SjZWbHhMS0JJU3o0cVdvbzE5eHV6MCtpLzZDcS82Zlg5RXhzSTRrREF2WmIv" +
1044 "U0hqRlY5T0x0K3VSYjZTRG9kTHg3MS90LzdiZHMrN1R2cFR6MVJIempkMHhqaTZ1OW5yRjYydTd6K3lWZi8vMzdqLzQ3TCtK" +
1045 "MW4zWHZ5L0w0TzcvUCtyTEZ1bm4wMDI5NzVPWDN2Z3QvMlVPMGVnQmp2V1RzbkQwdFkrSFdIR2N2N3lOZXhQa1lmVmxHdDBT" +
1046 "VU9ZM0dZMmNNTEllYURhcXVoVllSOXpXa2JsUXBpWk5LbkZSTFVDZHhvLzd2RXVKYTNVaEZVQVRWTWh2WFd1WkVpVXV4VTh3" +
1047 "UTBqSWljNkRhcWZ0UnQ3dVNBMk9JR0tQTzFpa3RNL1paVzJ1WlpFNERJeHl3ekZrZmcxdXZ2cnFWUXhmTFhZVDVLSWFIYmZV" +
1048 "Z0RrZVd5WHFQckl5RnN3c3Zaa25XTTFsYlp0bGFzeHdiSFl6VXlFUmxEc3NnU0VLb2t5Sm9FZkVSU1JEVXRhQ2xUdXA1cmVj" +
1049 "bGpCU1JsTmFObEpMVXJKTklhRkVTZ3BHVnJCS3F0Tm9pSkRUdW16cVB4TW5BZ21rSldkREp6ajZaSldVazFzUmExeTU4RE1a" +
1050 "cmhoeFdiQWc5NkJJUDIrb0JaQ3c0VUdyUVJmYkZpem0wa3RnN2JJMWpZeS8zcmpqdVpLMWxWRlNXR0FPTjV5UnV0RTdpUnVK" +
1051 "YU1sMkxTS2lQYUttUHFQdmlJNUlhUWFMdUsyYnBwS2lTR2lQYWlNVllEbVRGRkZUSVFLUlU2VVozdWlQU2haVHNwREttZGJB" +
1052 "bjFJMlJXSENlMk1Vakl4ZW1GelhPVnNZNTAwbEptS3VIYmZVQTdqeTVmT3BqbjRzZzFjYkZjVjI4aUMzSm5DUHJQR2paeDI2" +
1053 "YjAvdWVubjdqdlRVRzY0RjFyV1diMWxGWm5FUlM0bVJvVVNlUmdiMElvcTMvWFVKTDYwWlFsVVJDRWdrSlVzRllWN3ZZZDVT" +
1054 "Uld0Y3pZMWt3TkVQTGNuNkxYcEdxYThOKzlZeHVSeHgxUCtxOGNyeDk0ZUxKVFVZdFl6T1c2ZmFURjM3elY1M0V0bkY1eFh0" +
1055 "dnMzVjRwTEZrY1ppTFlWakdlTkxIWUx0M09kYVNFVlM3MlM2MnMrLzRxbS9LWC92ZXQ5UkRFZy9nNmgzLytEZVh4OTczZWxz" +
1056 "UU1zeW5YLzNPY1RZK1lLbnMwV2QyZnZITmYzZjVtai96NDU3MVZiNXN2ZVZEYno0M3pxNWNPT1lwVC9UaWk1ODV1L090dDFh" +
1057 "U1dzTmh4TmtaMy95VzRYV3ZYWFVnRTFHMG9iUW9UejB4SFk4N0RhcE9pb1pRZEZZUmNhT1ZzS3d4QmhsRVNXVGhkVzkrbmVX" +
1058 "d0lHUmdHSy84UXJuMUdpemkybFJFeUlMSU9QT2hYL3hoRisvK1pjbTB6OW8yam5zZDkwbVJXc2IwWDM2dy91Ti9qVEdZalV0" +
1059 "eEZGZFh0Nzc5YzNyNHRvUEh4Sm03dVBMNFQvMkFuNjhYZU45M2ZjdWZmZlVmdVAyV0hBKzZWTVkweCtVcjgvalRuNU5aaXNs" +
1060 "K01aOFpkMTcrTm5PdmNlQnd6M3p5c2UzdzVmL2dqL29kV2oyQTVlekRyM2NjWkVyUUdvODkrY1l1ZWFPRVJtOWR5cHZlOGFs" +
1061 "ZTRIdjl0dzAvN3pubFQzakZvK213YmJXMTl0Uk1qVWFXNmJCT00xRk1CQzB0YVdnRnJSdHQzR2pkYUNWa3VCRkZ0RTRpb3hw" +
1062 "YUo5R1MxQmd4bGtGV3NtQVl5NWtzdDJqVnBLUTdTa3RLZDNPN1p4NHZHVkVFeXlDWXJXM1d2bk94YzNldlF5dGl6MklQUnhm" +
1063 "di9FK2Uva21lOVA5eTluVCtaRDdsaVMrMVI1VFdNSFV2S1VKaW5DK1BPM3ZtUzlqVllFelpod2V4ZWhDemtxR0Rxcmd2TTZU" +
1064 "TWlDSHJIUy9tUEdlbXhkRm1oSW1nWlpiYXRZdW1HdEtnRWdRTlFha2luaGZQU3lxdUJYV3RpcUFrV21ZWnBhM254TE02S1Zw" +
1065 "YWxBWkY2Y1MwYlVkWFd5MUxqUkVqYm95bDloa1QyODR1ZHFWRVRUVkY3RDRXY3gwWGNvdnUyS1M3MmxHTmswRkpxNTFraXBN" +
1066 "NXRJc0hzWG9BR1F0Mk9pVlVtTGNrMVV3NmRUN0Z2WmQ3TVlmZWNwRzd4dURRM2FabXVkcmllRkc5Mm0xaUR1cWtSWXdSSTFO" +
1067 "RWdwRFNWZ1doRldTUWtCQ2xUTFJSejJvUlNjVkozRWlMaWRLcHM5anBSSDIwYUd1MnRyMklvWklhb1ExcW0yU1BmWStyVHVl" +
1068 "RysxWUpRekc5bUt0MWY0S0ZMSVIyWnlJN0hXNGtoQXduaTNib3ZLZVhIc2pxQWR6OXBkZCs2eU5mOEw2dlM2b05pYnR2ZmNW" +
1069 "MzM3bHorNWR5bUZ0ZXZqMlY5NzNxaTdmOWtWL3hJcDZVRDgxNTYrMDZ0cHFiOXBEazhXMTJ2dStEVjUrMW5NVWNUb3FxU091" +
1070 "d2NEaHdXQmI3UGkxTGFjelNZdENHa01HeXhqSUkybXBqMzhsQ0V4RlJNaXdMU3VkRTFVbHgrU1Jkc1NHU21KTTVuVVNkbFBl" +
1071 "Lzk4cUgzaHZMeXRsU2g1VU1xdVllbDl0d25QSE0zV1U3OUh5TGVXZm90aGpibWZXeHk4eEwvWkFYYy92RHZuZi80ZlBYamtm" +
1072 "dnZlZVJWKzFQYm5mT3p4Kzc5ZGlYblgvMjdhK2xXTWpxNm9temQrM3o3QzNQZkhCNzVieGNIcGwzeG1zZnUzejUwUU5ZUFlC" +
1073 "SFAvV1JiNkZmeDBLSExwY2V2ZjI2NzNuWjEzekRkL24vTlBLR1gvamM1ZXdQWFJ5UGMyT3VMQzlmbHJNdVBmeVRiLytaNzcv" +
1074 "Yml5OW9KNTFtaTBnNGpMbzE0dEd6NmV2L0FtLzZ2WFRVYkV5ODh0TVdiVndiQzh0Z2pCQW5vZFhTVWlkaEpKSkJhbnY2Z3pa" +
1075 "eGJaWjlSdC8vQVhNeVRjbzY2dkp1M1Azd1pxVG16dHpxMjc0cmZ1RnQ3SjBXckdHSkc3TjFKUzRiaC8yMS8rRUxmZWJmdjFm" +
1076 "SE10ZWFqNC8xc0diZS9qay80c1c4NmU5OC9jL2o3M21CdnYwZnZhczUrMW9tRnUyWjlWWEgvMzdyczc3cFgzdUlWZy9pUUEy" +
1077 "cGsyRG9pTitKSCttUCtaRkxIL1pDazcrZXJ6aHNkN1lQN2l1ZDFkWmVwb3Jhd3BiYXIrSjRGVW1Nd1RLcTRmd1FtNWhGbUtK" +
1078 "MUkwRWlZUVNwT0ltVEV2ZGxhcVBGTENVWUtxbWhsazdMM0FoUkk3RnZjYlZOZTJzcEU0djdKamJUaHNPZTI5L1pIL3QxTDNU" +
1079 "MFFMcWVxeFZYRWllTGVQaFdEMklPcVpNaEdkckZiRHhNVi92dWtESDNSc3VjREZROVo4UEZ4cjJMT3U0Y0ZwWkJCdXM2dFdI" +
1080 "R0xGV0VJaEVsQ0VrbEpFNnE3cHVxYUJFbm9aVldUQ05GVGRWeTNPakd4YkhtckFVckZnUVYxOW9ZWW9uTlE3ZWlFcXEwT2k0" +
1081 "OGJLc0gwTG1KaVhPZGcrWENkUFF3WFRBdnpUdVhPVU1rVTFLTCszWnhGUzczZXVvNEhiZHBIQmdoSXd6TWlwM1NSbE1EUVJJ" +
1082 "SkVnM2llWFZTRWplV1VYTm5sdFpKSlZOU0kzRnR6am9lWXg3cmJvZUxjWEJMSkVScFBHZDIwWkRwMGtNM0daaVJEcDJEY2ZT" +
1083 "d3JSNUFIM3ZGVTduMW0vL1dlRlM2bVQ2OGpFY2VmWmVINkVQTzVnZDNQL3hJKzdRWlM4OHNoa01XbzJ3NXFpdjdqUGY4eHRs" +
1084 "WC9vU3JWOTA2cTdPek9xejErTXQzZTJOTzlrNHRMVklEWTBRU0kyUlF0SjVYMTBxRGF1bWtrMkNrUm1xL3FtZHVjN0hGbmF2" +
1085 "WUZpNmV5YzllYlhtN0JxdHpFV3lwYVRPN09RN3VkdjhwRDFtZGtlZzhwOUZ1ZWxrUDIrb0JyRi93bDk2RnIvR3NmLzZWMzVo" +
1086 "ditJR3Zyb2ZvQi9mdkwvNnBqOEduL1Bobi9kY254bnUvNnN6dUxEVmNteHBhenl0YXBxS2UxN2dSTjFycUpFUUZ3Y0JTa2hn" +
1087 "WWd0aGJGK1ZPVnZkTWJ6aCs3ci84bGI3dG05MjQ5TnZhbmZ5R2grMzJPMTcyN3NPOTQxdHpQQ3h0bHk2M0gxM21LNTcwa01V" +
1088 "bmthOVlQdk43UHJTKzc2dEhOMGtOMXlwSWlDSnVsSWtXUWF2aW81UzZMKzRiWVdDSXFJU2daUXRiNDE0WFYrcU54OC8raHUv" +
1089 "ejltLzJTV3oxU1dScDc5NEtXbnVybmxNcGNhM2l2cUJGS2FxdTFVazlMNjdGdGRSOXFSdXRpWXBnYWQzQ0lzN0h6dlJKYmZW" +
1090 "SjVKamx0dVhjR0xHYnR0SVNMR0hCNGlRRXdVUkxNVXRMNDdkVmpESkNuUVNsbUJoWWNPYk1na2U2TUgxU1czMFN1ZDMrOEhy" +
1091 "c2JHTVhXM2ViNmRxU0dHS0laQml1UmRWZXFxN04xclhHUjRuN2dvR2lxaTJwaUZYY01xeW1QZXVxNTIvMWtwZTg1Q1V2ZWNs" +
1092 "TFh2S1NUenIvQzdYZm42dnRIRGRSQUFBQUFFbEZUa1N1UW1DQyIsImUzIjoiaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUpB" +
1093 "QUFBQ1FDQVlBQUFEblJ1SzRBQUJIUmtsRVFWUjRBZXpCUzZ5MjYyRWU1T3QrM3ZkYi8yRnZaMjhma2pnMlVaeWtKR25Ua0Nx" +
1094 "TlNxTXFyVGlvclFwcVFXb2tScFFTUU9xQWd6cERRbUxXQVFNUXpPZ1lNYWhFQkVoUVZMVkFWUW1VVEhDVHFEbTB0RTZheFBF" +
1095 "cDlqNysvMXJmK3p3MzM3ZVcvMjBpcHR2N2dIMWR2dTNidnUzYnZ1M2J2dTNidmdYRnQ0aC83ZkcvZkhycjdsZC92bDFQVnZv" +
1096 "eUhoOTFPdXZkMHJyWVpHd3lUc2tZM0tXbXFJdkZXR3lyZGVncW94VGR4TWF4UzRhTTU4bnJmMi85MWcvN0ZyRDdGckcxcjM1" +
1097 "MSs4b1BuZEtYekRzekhEaXdYSlNrTnB6RWppQXVRc1ZzVFJ4bG9oNE1iT1dFTVhhSHNWbStKZXkrVmJRZmY5YTVUYkdqU3Rs" +
1098 "U1F6UkVYYTF3bFBpNmhkUUxXd2dXV2hJV3prVnJtYjVWRE44aUhzMzU4ZHZhem1XMnREYTFZMitkV2pzMnREWFZvYVphcWFY" +
1099 "YWlyb0tSbXRUVzlsVTFWMTUwL0tuYi83RitCYXcreGJ4ZU15UDM2N3VhVzFxWUF2RFJkeExPSERHcklzSW9vWklxcTdxYWdz" +
1100 "RG0wbzVoME1kc1hXY251QnQvejhYSDNML3FoLy9zVGZ6bTMvanlFcnh5T2JHRUJ5dDU2WTNjK2VsdlIvNTZlKzkvZFJZTWNa" +
1101 "eU03aloyRUpMeXpZNGwvUGl2S2lMVWlTazdpVXh3aGFHQ3BZNEZyZU51NjcxdjMzdXlUL1JIcnZOeVkwYm00Rmx1YlhjSm1Z" +
1102 "Zi9kTC8xYy8vakEreDNZZmMxM3p0eWR0NSswZm1LT3BXblRCRXkxbmRoU2ZiOHQyUEdHb005cTMyTUJMS0trdE1yRktzUmN0" +
1103 "Q1hSUmhKSUtSR2dpcUpzNnJucDh6cHJzZlhJbHpEcmR1YmRnd3NCSnJlK1R4M0Y1MytGRGJmY2pkZXR0aFNxZmhvcXl3eE1K" +
1104 "WkZhTnNHSU1NRjdHd1ZqMElhbUNFaWc1V2F6WmFtaUtpUmx6VVVnK2lKZGhTSjlOMEZmZGFDM1UxakI0MkgzNjdEN25EbTFh" +
1105 "V0hidllVM0cxUkR5b1J5TnVOcHBvS0daZFJFcFNFVWxGck5aVk1OUktFVlRFVlVKRjZ4MmJPb1VuaVhOcmxvVmlCYTFWWnRr" +
1106 "Y1B1eDJIeUwvM2l2L1N0Qy8vdHIvNUMva3AwM3l1ZnpDYVhVWkkvYlVDZkdncXVJR1R6Y2U3WEZnbHBaVkYzV3ZKTVJGaVlz" +
1107 "d01NSVNMYXN1NnFxTjFhb2lsSUY5eEdramk2a09jUzZyVmN6VW5TVU9IM2J4SWZMSHhuZit0ZGZIMno5NjlHak5NWnZ0ZXg1" +
1108 "dm4vNHpuN3o5OFgzRXpXQWZsWkM0RnpUc2cxZHVPQnF6ZFY3Y3pZaXJtbzB2UFhPdlNBa1M5OXE2bXFXbG1FTHFveWR1QmxM" +
1109 "QkVLczFRbkdVNTVObk0yWlpvbVA0NmwyLzluOStQbjlYcW9aMGM3djYxbWUybi83Wi8vMzQyODk5Q093K1JKN2EvL2g1OHkr" +
1110 "Y1Z4MWxzenl5Zk9KeDdJTjlzSTlJYXJnSTRoM0xSUWhHb28ybEtzNkxOOC91amJnWE5ZU2c3aFV0RmFzbHpKMVZOQklTWHJs" +
1111 "aEh4UUxkeXR1SjB0VXhhUjU5YVdSdnhCeHRZbTdqTmR1TWgvanVRK0IzWWZJM3VXbTB6QnRYYzZwTFpFUlVpdHhxQ0dXQnkz" +
1112 "QlFKVVFvUzdxWHF1Tmhhald2YUtwbEFoS1VCZVZ4TlZJaVl1S2lKcWlMZUlxaVczVXJvTFJlcXlldEZvWFljWE1Oa2I3QkYv" +
1113 "ekliRDdFRGx5YStCVXR0WUlqMGJ0dzBWVVRiRktNQkJrRUJWVUxURkNFTld3cDNZaDd0VkY0NnF1S2k3S0NDMHJGVVM5c0JD" +
1114 "eFdrdGNCYlZFRExWaEJDVmxxYU1zMDNQZFRzbkxQaVIySHlLM3BwbGxVM3NJVHVGbVk2b2xWbWtqb1kwOXRZVmRVYXN4c1pS" +
1115 "U1ZYRzFoYW9pb3FHdGU2bXJKRFNTMmxCTVJBUXRxM1UwV3ZkR0dJblJVaG9tM2pwNGExRWNPTlJiV2M1dGZFakVCOWhQNWZ2" +
1116 "LzZ0RzMvcE9SYXM5ZWVmeldSMzc2azNQZnd6YVdoSDNuNDArWmpRT3o4ZlRqbi9KOVAvRkg3ZHV3M2V3a2Z1dVhmOTF2L05J" +
1117 "dm11VllOY3RSWnBtTjRtaFYxVlcwMUVYY0M0SWdIc1R2dDhSU1Z5M0NDRTgyUHYyMFd0cVk2cTBqWHI5bFlibUs4OURQL3NZ" +
1118 "blhudTJaZy8xM1BpbnYrTExQKzREYXZjQk5wMi81ODN4NVk4eU1IMTg1N3R1S2lNeXlHQ0U4NG9nWWVBNy9wbnY4OGYvblor" +
1119 "VmRjaTJzOStZZitOLzhBOCsrMHNhMnBxdFZWWlpaWldpaVNwS0lxNkN1dGRLSWtFUmdpSnFLR0twZURBU3dRaXJNYkhLVGZq" +
1120 "WUl4U3BMWVQ4NHZpOVY3ZlN4RzY4YnZuQTJuMkE3VG9URjFYTThCd2JCa1pEVVVacTdMRVBUbHNOMU5DMTVQemNjWDd1V0t5" +
1121 "d3ltb29WVXRWQ09vaWtxaTZTbERpSWk3cXFvaW9CNnNSak5Ud29FaXJqYlZpb2toaUd6RmFhWTJ3cFlvOXl6NnFZeE9MNVFO" +
1122 "cjl3SDJTTEloSXJnSjI2Q1laYUtOaG9pQm14R3gwV2dyUGJTSDI5dm5iaWMyVWlvU2xDaXFkUkdKaTRxTFJOUzlFQkVQRWxv" +
1123 "WEpVZzhDSzBYbGpqS3ViUlJWNlVWakRBUXJMREN4QmxueXdmWjdnUGszODFQZi9kSVBoSWV2WTNQNTNPZmVoUjJTOVNUOE9U" +
1124 "RWJNM0dzVmgyKytPWDFVVXdXSGxrblc5WloweFZ6NTRkWmhsMUwrb3FIalJFM0F0YXhJT2dIa1JkMVFzVkxVRVJiQ0ZZV0dX" +
1125 "V1p4T3BZR0NFclNWQnJYSTBibE5ubkZ1M2RmUG44eWMrODVGc2F5YmRUNmY1M3p6LzI3L2pBeUkrSUg1bS9NblRsL3BQZnY3" +
1126 "STZ6K014MmQ4OTB2UDhrYy9jV1FMWTlUTnppY2UxMXFjYlk0T1AvUm4vM1YvN04vK3Q4UloxeFQwOXBuVFBCTXlXRjMrK2wv" +
1127 "OWE3N3d1WC9Nb0sycnVHZzFzVXBiTFlKUW9mR2doTGdLcXFLdEYrS3FSdUlUVDJPNHFsV2V6L2pLMjlVd3NJVlhiL2pZbzFx" +
1128 "Tm9tV0sxKzdxT0dvMS91NFhoN2ZPVDc2NjBXbXNtZkhyUC9MMHAvN0V6NzN4TjMwUTdENGdIcTIxUHh0M2YrQ3IyKzNUc2U1" +
1129 "VWZmZkd4MjdZTnJhTmhITmpoSkhZREovOGcvK3NKeC83aEsxMzByT3VzK09ONVhqdHVZeE5EVEtjTEk5SHpYQzRhTlZGM0F2" +
1130 "cUloNDBFcXFrQ0tJcUtGcGE0aUxFVlFTanRRWGhGSlJUYU9wcXc1WVlhRmhsdVdoOTVFVDN5T0pKbG1kNTY2TkxkSDlrbitO" +
1131 "M2ZZRHNQaUIyaEJ1dHFLcUtGZmRXU1d1SUxXUWppUTR5YnJTb2k3S2RaR3p1RlltcnRLNGlLcTdhS29xNGlxc2lDTm9neERl" +
1132 "VXFLS0lpMFJhd1VBd01NSWU5ckJRRjBWWmpZVzZDTUdHRWJiQmsvQlVUUnhLaDU5NzQyLzZvTmg5UU95SlBlbWpqZjFnNG1i" +
1133 "VUNLdXNGY1JJYklaMEY3dVJqUkhwUms4a3N0L0oyRmhublllMTZtNHR0NDJxVllSaW9TVkI0b1dncFNxaUlTaWlKTm9TNzJq" +
1134 "ci8yMGdJVWhZV0dXaDRxNTFOQmFLcW9GZ3d4WkdTQkVPckhISDlJR3hlNS84NVZmKzFKUFAzLzJPTHovNzdXT3BMNDR2bkI1" +
1135 "dmsxSDdSdkhLSHFlOTdsYXNSUmNmKy80ZjhSMGYvYmlYUHZFcXJhZXZmRndzUmJKSm9vdmp2UFNZdXM3T2N6bldjbGVHcUl2" +
1136 "U0lpRlVFZkYxZFM4dVFsUTlLT0lpcE83VlJWM1Vhcng5c0EvMlJSS3pQTms0eENvTHR6UGVPQ01rSVR3WkJGVUwyOGErMGJC" +
1137 "bFdWdWYvdW44eEVkLzYrNnpiMDQzeG5pYTVjbjh0ZlhiMC9zZzNpYy9PbDcrRHg1dDY3OU1xMTN1Rm4veE0yZWZmcmx5WW9R" +
1138 "TnR3Zm54ZTJLdTNQOWxmLytiM25wb3krTHhUWklhTWhRUS9iNEgvK3ovOExmLzduL3p1MmFqdGFjbFdQS3FDVGFhajFJVUhF" +
1139 "UkY5VkdYZFNEVUhHVmtKSVFWYlFVcVh2QkNNRUl4VWg4NmluSHFsbFcrZDFuOGZhNUVoSnV0dmplbHhpcWFwVWxKczZOcTk4" +
1140 "NzR1Lzg0OTF3T0xJN25IUTkvcTkrelpmL1ErK0QzZnVrenMreWJjekROTTNCM2Fwak1TWkNjVzRzMWNFTTVodHlJRmdiWXlP" +
1141 "Ylp0ZVFEdnM2M0J4M3F0TGFYR3p1RlEwTnJZc2FJUjYwVVN4VkZDbHhFVklpUmt1SXIwdFFMOVJGT0JReFVFUU10WTE2dERF" +
1142 "WFVRbVBCemVEbHRtNEtvS2JWTENkNjVGcFdQWk01N0ZMRi9XKzJMMWYyamxhUzdYVmNwVFo2S0p4NzdiUk1rdEZCazFrUk5C" +
1143 "TzdTS1ZMTzFHYTNXUjJrUlNWMDIwTlYwMEVyUUc0a0dEVnNvcVJlT2kxRVZFRFErcTRxTFVSZHhyYTVXS2xuMjRxR0FQMitC" +
1144 "eE9LTUlOdXhoWWlsaUlHRmdDNmRSZTZhMGFqbXBHTjR2dS9kSkdrVmJkUkZHa0txb0tsWkRHZGdUMlord1BkRWVha29uTFpt" +
1145 "YUljZHVIbmNtMmhMaUtxcUtOTDUwZXV3cnA1ZHNyYUdFa1JySUtxMTJLWnE0V29qWVZnMDBNZkRwMnplY0xBdEZYU1JhTktp" +
1146 "MmxxRHVKU0owRVJleGlrUlVNTHhRUVZ3c2xnZUhPTlR1OEg3WnZVOHljak5iVjBPZHdzMkltNDJtcmxxaWtvcm94blJ5ZE5l" +
1147 "NVdHZGYrZTNmOHB1LytnK05FZHMybkY1NjJaZSs5RVczcll6UTB1RnU3S3FxTXZueWVPcTNUeThKbXNHSTdvTVJxWXRLaTVK" +
1148 "YWRXK3Rza29yWWl1dkhNOThaSjVOTkdHeGR4bG9xK3F1OGFXM2F3OWpjSDdPODZObVlpR2xpOCsvVlZjVkkzekhUUkhGTEc4" +
1149 "dm5yZUNjN2xyYlc2OVgzYnZrMlo3ZVRwczJKSEU0NjFPSXhhS2haYlZ1bXI1ci8veXY2bmI3aWp6bUo2OStaYm5iN3lwYWkz" +
1150 "RXZXQXJNYngrdXZGckgva3VSRnRtZk1kM1BmRURyenlTTVdSRVJtUWJxb0lrRXVLcTZxSzByRmx6VlplTDVWZis3MXVPV21N" +
1151 "ekU2YzEvZGpYdnVEUnJOYTloZGZQUmJ3UUYyV0ZZT0cxTXducTN0T2RFWXJWbUt1T3NLRlk2djIwZTkrTWs0dUJEY0dXMk5C" +
1152 "RVd5M0hZcTJvV3FwZitWMnp6TWF4bUdYYmFCbkRSYzJTb2tocHZiMmZOTkdFOHNyTGp6MSsrVWJEU0JEMW9DVWhJWW00Q09w" +
1153 "ZVY4MVp4NnpPNWJWeFkyNjFaUWh1eC9DN055OTdkQ3dMemZMU1BMdzg3MVFSU2wzRXZkWTc2cUx1TFpHUzFCNXV3aVBFZ3dQ" +
1154 "RCsyZjNmbW1HTUVMS2FxM0dYTXpRTXN1Y2RiUm1ZNVdtcmxaTFNTSytJUzJpaWFvaUpRMkprY2hnMjRiOU5MUzA5VUpiVnkw" +
1155 "dFNTV2tRVWtJQnFQTUZSVlZTNDB5RGYvb3BZOVNLb1o2OVhqdWo3ejJSZFJWVTB2VWd3UkJTWXVvU0N0aHcxQ25jSU9VTWVp" +
1156 "STA5cW85OFh1ZlJKdWg1aXRpVE9lbDdzMXpDQ3hNTmR5bEZWV1VJSzRDR2tGYldpMUhGaUp1c2h3TmxoVkpERkdqQkVTOGFB" +
1157 "dEpRaUt4TDBncWJwYUtvYklGdFMyRFMxS1ZWQVhJNUlnRHJHNUNtcGloR0xWZzdwWDhZNVNIQ1U0bHlXU3FycEtoL2ZMN2oz" +
1158 "d3ovdk05NXd5LzVmUjJWUHk5Tlo2L2VYSGIzM3FZMDhPUitPMmNWdTIwMGxlZnNtanhEYm9xdGVldlc1WkdrWjhYUVV0TThO" +
1159 "enU3WW10c1hyTjd1M2IwN09HWnFoaGpFWWd6RnFHOVUxZGRIV1d0WFdXbXdqeG1DTWVCQVBTbXV0b1VVckk4YUl4NDkzNS9P" +
1160 "aHM5YWsyQkpqREJMcDBzUmI0MlJ2VWNmZ1ppMVZMOVEzdEZUZGxaUXBWc3ZnZTE0bWlXRG04SHZQOHJNL2RmdXhuOW14c25t" +
1161 "ZS9mbXIvWU4vL3UvMGYvMWwzMlM3OThCdHZ2Ym92SjMvdWQzWlhROHJmTjhyL0tudkhwNkhXOUh5NlovNFEvN01mL3lmeWpo" +
1162 "WmVjU2Evdk4vNHkvcDY3OW5XNGVWYWlNaUtvblAzenoxSzArKzA5RTZ5anpxQjM3d1ZSLy8rQk1kdzFXNmZHY2lEWW14Y1h0" +
1163 "M3VEdFBWMjExOGVVdnZXV00yUFlZSStKQlcydlZhcDMyWWQ4M0VnbGpESi81L285S29xMnV1aHBqU05Eb1dwN2RIdjZQdTJH" +
1164 "TUlhSHFCOS84cWsvZHZ1MkZscVZTSkZiNW5iY29qbFZUdkhyRFQzeUNoS1IyeTJlLyt2eWxmM2krZStrSUhadXovZTNUY1Y3" +
1165 "ZUE3djNRRTIxSENxdDJicHR2TkdseU9BMHVObUcwNU5YR0p2WnNPNmN4VkUyRnlVcWlOaXdzamx2bTlYcVdycFY5ckFOWXd0" +
1166 "aVpFaXJMa29iYTdKbVhWVzFkVDZXTVdJMmtoaXVxcTIxYXBVSVdaSklvbDNXbXJZdFJzTG1YbExLYWgxek9jNTF1eGdoWVln" +
1167 "anNaV0ZlaUZXWE5SVlFyQVBocnJaNHJSN1I5V2hqaXhGREdGTjdyd0hkdStCSVVhaVpha2xXaGEyd1Q2NEdkeHNtMlRUTlZt" +
1168 "SHpzTjVUcmNyVGlXSnBJYTRLbFppSks2eWJjYUkwMm0zN1lORWtCQ2hySmJsSFMxRmk4UlZpOVpFUXVzZFJVUkU2cUlVUmJ5" +
1169 "anJhNVlxK3FpSkNIdUZjdEZhVml0SmE2S2lJUWdPQVhoOGFoSEk0clZxa2lpYUZHYTFZUERlMkQzSHBnbWxtQ2c0V2J3YUt2" +
1170 "VHhqNWlEN3RZamM2YWEzR2NyVFdkUzhvSUdoSFVqdG5TR2lNU0pQYWI0WFRhRkMxUldsZkRzRklhYTVhUWtMQ051RmVxbE9X" +
1171 "aTFkWlZWNjNXUUVaa1JFYU1FUkVKTGF0VmxiQnR3N2JYdmcrMldLMjFsbU14RnpNdTRxcEJmVjBsRERGU0kzRXp1QmsxeFVJ" +
1172 "WFc5bVIxbXFkMDB4Mjc0SGRlK0M1czBlTms5ckNwaDZIcHh0aml6RVllT08xTi8yanovNTlxNGU1emxicjduelFwUzdLekhB" +
1173 "M2hsbXlPRGZHbUxaOUdOdXdPbGlWaEZZU3lsb1JRYlhNeWQxZFVSbHNJNGhndGVhc3JtcExFWkpZaTNWVVI3UUlpZzVDaXpJ" +
1174 "U1RRbGpETnRwT1QwYUd0YXNvL1gydHZueWRtT2tvazVkSHErcDR2K2ppSXNJVXZkYVdyUldtRGkzbzA0MzNnTzc5OEJNcmFB" +
1175 "UkJGdElpSXRWeFcvKzhxLzUrWC8vUDNJN09kZTliU3czV3lRSXYvNlJUL2ppemN1c1piWSsrZW52OENmLzBLZU1NV3hiQkcr" +
1176 "ODhjeXo1NGUycU9mUGw5LzZyZGVNRVZkcjFadHYzcm03UGF5MUNHUEVHRU5DVjgxWmE1WFd2U0F4RWdsakRFa0lZOVFRRWkx" +
1177 "ajFCLzRvWSs3bHhqcTZaT1RIL3ZEbjdaYWN5NXpUbC80d3BzKyt6dHZHQ01TWGo1dS9malh2bVNFSUlJcWxvdldlY1VxVlVw" +
1178 "TFd4TUxaOXhWMkhmdmdkMTdZTyt3SWFrdVpqaHcxMGdaSXVyY1N1clJIcWRVU2tPRG9HUnNiRU5EMTVJUlhjdXlYRVdjejlQ" +
1179 "ZGVWcXJsTnZidzkzZFlkdUdzVVVTVkFZamNSVjAxV285cU1SRlNDVnhOWWFMcUVWcDZZbzFYRlFYU1IxekdZbUVxWklhaVpa" +
1180 "YXRKUUdDVUkyV3lJcUhqUzByTEp3VnhZaXR0UVluRVpzYXBVbWlqYnhIdGk5QjA0MmUwcW5JMHljY2JzaUdJcDR0cmhiakZF" +
1181 "REl6UklCU09jTW94dFdJZ2dsckpZaStCOExNZDVhbDNFbk11YVM4UlZCbTNGUlVKcGkycFJGeEVYZzRnWFdoZWxGQWxGajZw" +
1182 "YWl4SG1VZGt3c0VoaXBSU0xCQWtKaVJoRzJOVHZVMVpaWXVGb0xHeHFoS2liY0JQM1ptdU1TRzZydnVsMjc0Rzl3OWFGV0tp" +
1183 "cnFDSldCcTFaRHV3WVNoZ2hpWUdCZ1NFeWhyWXlQQ2dOWGRWV1cwbFVhYWwzdE83VkMzWFZCaVVlaEhpaGloUnhyNlVONmw1" +
1184 "cHE0bTRHSkVSU1ZFUkN4bEU3RnZzMjJhTUNQWlZlMW1xYU9LRllwVlZWa3ZjUzlqQ3lZTWpiQmlkM2d1N2I0Sy9rcC82MGJO" +
1185 "OVd6MXZQTS81NmJNLy9JWDhCcGExbU9IeGliRjUwTG9hSTBZcVFXTGdMaHNKeGNManpaTW5tNnFXUjQ5UEVvb1dRU3R4VWVw" +
1186 "ZU1seXQ1V0pacTFxMEhrUkN4YjBTdEVVOXFGVWlpQmVDdWdnUlk4VGQzYlNYYllzaE11cDBpaUNKakhqcHBSdXZmdlF3Uk5S" +
1187 "KzhQb2JqM1ZOV2xGUDFxRXBJbWpydk55clNEandlT09ST3FWR2pDZno3a2YvWXYvSUhydDZmTHlkZk9WLzd0LzdiZSt5ZUpm" +
1188 "OXVVZi8wa2UrZHZ6aVB4anh5ZmJZWmxhKzgvSFpuL3ZNY3dzZGxVRVNTdEd5OE5YblBEK1hNTUlhOFFzdmY5cXpjWEswenJO" +
1189 "KzRpYy81ZFZYbjlyMzJMYTRQZGZienc1ekxtMWQvZFBmK0pwbno4NmFhcGxIM1Q0N3RCUnR6YmtreEVWY1JCS0pleTFWODVq" +
1190 "YUN0cGFxL2JUSmhtdWdpVEVnN28zTnJZeGpFVHg2Tkh3cVUrL29wYU15SWpUSHRzVzZ0NmJiNTk5N2xlL2FzM0ZtbUw1OGRl" +
1191 "LzZNbWNLcWdLclphRmlrL2VMQzl0Y1VvSnp4dC82emMvMHRzS1ErM0hXKzEvKzh2ekszL0p1MnozTGd0NUkyOW1TL2M2TzRj" +
1192 "bnJVT053V2xqaEtvcHRLNEdraGdqaWhYbWlyZHk0MWxpWVpwV3FWcU5MT1pjenNmU3hWcDFkUnpMK1ZpU3FGcXpXdHBxYTZu" +
1193 "ejNWblZ2dS8yZlRNU0dkNlJzQlpyRmRYR25GTXlhRndsSG9TTVVCSVB5bHdjWGRySzRKZ2xCRmtWRjNWUkxldmdNTmlpZzZ6" +
1194 "aFh1SXFMc29TVlcxVmpCSDd4bW5FbGpxcGpEY3pKN1BFdnFlNThVMndlNWNkN1RpNjRtS3RaWVhaV3VKcWxxQm9xeTVTRVFQ" +
1195 "QktxdXNWbGNSRkdXNFY3VktTeGVLeHVveVo4MVpTUW1yVmZXT3NycEV6T093ajhocGt4RXZSS3hPVk10YTAzRk0reW51aGFx" +
1196 "MWx0TzJpNHU0Q0tYS3F0VnFXWXVXSkY0b1Z0RllPRllkWGVJcVlsbWxSYWh2Q0ViaWFnUmhJUzRTV21scEhKYm5YYjRaZHUr" +
1197 "eXNkWVlSbUtKcTBvWVFkeHJLRnIzZ3FHMnhHcE5NUmNtMXRRUkkyR0xtNXZOdmtjU1NXeGJiSU9pSVl1cU5aZU1TRmlydXFx" +
1198 "dEJ4V1JrSERNUTdiWXRsMWN0SzZDaU5YcE9BN0Z5RkFFYlkweEVGZDEwYnBxNjRXcWhERVlXNHdSd3JiRkNHdVJWc1JheTcw" +
1199 "dTZiUm1IWXVPR21GVEd4SVM5MDZEaE5sYVFwbG9YZFRDV1gwejdONWxTV3lORFpzYTVRWTNHOHRGYUZubGJybTNKWFljaHRm" +
1200 "RzdsaWNSMjNsOUNqY1JNWnd0WitHTWVKcWhPT1kzbmpyVmpLczFqeVdPZXM0bGd3UzFtSzFnbnBoSVZyV1lzMWxQL202RUpK" +hooks/store.ts 32 lines1import type { Save } from '../types'
2import type { Step } from './engine'
3import { parseSave } from './model'
4
5
6// The plugin loader doesn't follow $ across imports, so every $.xxx call stays in register.tsx; this file only gets the wrapped StoreIo
7export type StoreIo = {
8 now: () => Promise<number>
9 read: () => Promise<unknown>
10 write: (save: Save) => Promise<void>
11 toast: (text: string) => void
12}
13
14let queue: Promise<unknown> = Promise.resolve()
15
16export async function loadSave(io: StoreIo): Promise<Save> {
17 return parseSave(await io.read(), await io.now())
18}
19
20// Read → compute → write, one at a time, so events within a session never overwrite each other
21export function mutate(io: StoreIo, fn: (s: Save, now: number) => Step): Promise<Step> {
22 const run = queue.then(async () => {
23 const now = await io.now()
24 const step = fn(parseSave(await io.read(), now), now)
25 await io.write(step.save)
26 for (const effect of step.effects) io.toast(effect.text)
27 return step
28 })
29 queue = run.catch(() => undefined)
30 return run
31}
32hooks/i18n.ts 41 lines1// UI language. Chosen once per session from TEA_EGG_LANG, else from the system locale.
2export type Lang = 'zh-TW' | 'en'
3
4function systemLocale(): string {
5 try {
6 return Intl.DateTimeFormat().resolvedOptions().locale
7 } catch {
8 return ''
9 }
10}
11
12// TEA_EGG_LANG ('en' or 'zh-TW') wins; otherwise a locale starting with "zh" means zh-TW and anything else means en
13export function detectLang(envValue?: string, locale: string = systemLocale()): Lang {
14 const forced = (envValue ?? '').trim().toLowerCase()
15 if (forced.startsWith('zh')) return 'zh-TW'
16 if (forced.startsWith('en')) return 'en'
17 return locale.toLowerCase().startsWith('zh') ? 'zh-TW' : 'en'
18}
19
20// zh-TW until register.tsx decides at session start, so the original Chinese tests run unchanged
21let current: Lang = 'zh-TW'
22
23export function setLang(next: Lang): void {
24 current = next
25}
26
27export function lang(): Lang {
28 return current
29}
30
31type Patch = { [key: string]: unknown }
32const isPlain = (v: unknown): v is Patch => typeof v === 'object' && v !== null && !Array.isArray(v)
33
34// Deep-merge a translation over the base: objects merge key by key, arrays and strings replace whole
35export function overlay<T>(base: T, patch: unknown): T {
36 if (!isPlain(base) || !isPlain(patch)) return (patch === undefined ? base : patch) as T
37 const out: Patch = { ...base }
38 for (const [key, value] of Object.entries(patch)) out[key] = overlay(out[key], value)
39 return out as T
40}
41hooks/text.ts 193 lines1// Non-spoiler UI text in every language. Spoiler text lives in spoilers.ts.
2import { lang } from './i18n'
3
4export type Text = {
5 welcome: string
6 brothLow: string
7 brothEmpty: string
8 brothEmptyHint: string
9 flipWanted: string
10 flipHint: string
11 night: readonly string[]
12 harvest: string // {name}
13 newDex: string
14 refillReply: string
15 flipReply: string
16 flipNoGain: string
17 flipNotNeeded: string
18 nameReply: string // {name}
19 nameUsage: string
20 paneOpened: string
21 paneClosed: string
22 bandHidden: string
23 bandShown: string
24 unknown: string
25 error: string
26 help: string
27 // Name shown on the pane and in the /egg command description
28 title: string
29 commandDescription: string
30 defaultName: string
31 dexTitle: string
32 // Stat labels on the band and the pane
33 flavor: string
34 broth: string
35 mood: string
36 // Band separator: full-width bar for CJK, a narrow one for English
37 separator: string
38 stageNames: readonly [string, string, string, string]
39 buttons: { refill: string; flip: string; dex: string; panel: string; hideBand: string; showBand: string }
40 waiting: string
41 eggAlt: string
42 previewLabels: Readonly<Record<string, string>>
43 previewBanner: string // {n} {total} {label}
44 previewReply: string // {n} {total} {label}
45 previewUsage: string // {total}
46 previewOff: string
47}
48
49const ZH: Text = {
50 welcome: '🥚 你領到了第一顆蛋!把它滷成茶葉蛋吧。輸入 /egg 查看',
51 brothLow: '滷汁快乾了',
52 brothEmpty: '滷汁乾了,蛋停止入味 🥲 輸入 /egg refill',
53 brothEmptyHint: '滷汁乾了,蛋停止入味',
54 flipWanted: '蛋想翻個身 🔄 輸入 /egg flip',
55 flipHint: '蛋想翻個身 🔄',
56 night: ['主人,滷汁都要睡了 😴', '這麼晚還在寫,蛋都替你累', '深夜寫的 code,明天的你會看懂嗎?'],
57 harvest: '🎉 出鍋了!你得到了:{name}',
58 newDex: '(新圖鑑!)',
59 refillReply: '滷汁加滿了!蛋看起來很開心 (•ᴗ•)',
60 flipReply: '翻好了!入味 +2 (•̀ᴗ•́)↻',
61 flipNoGain: '翻好了!(•̀ᴗ•́)↻',
62 flipNotNeeded: '蛋現在躺得很舒服,還不用翻',
63 nameReply: '好的,這顆蛋現在叫「{name}」',
64 nameUsage: '用法:/egg name <名字>(最多 12 個字)',
65 paneOpened: '已開啟茶葉蛋面板',
66 paneClosed: '已關閉茶葉蛋面板',
67 bandHidden: '已隱藏橫條,輸入 /egg band 可再顯示',
68 bandShown: '已顯示橫條',
69 unknown: '不認得這個指令,輸入 /egg help 看看',
70 error: '蛋暫時聯絡不上,稍後再試 🥚',
71 help: [
72 '茶葉蛋養成計畫',
73 '/egg 開啟/關閉面板',
74 '/egg refill 加滷汁',
75 '/egg flip 翻面',
76 '/egg dex 顯示圖鑑',
77 '/egg band 隱藏/顯示輸入框上方的橫條',
78 '/egg name 名字 幫目前的蛋取名',
79 '/egg help 說明',
80 ].join('\n'),
81 title: '茶葉蛋養成計畫',
82 commandDescription: '茶葉蛋養成計畫:/egg [refill|flip|dex|band|name 名字|help]',
83 defaultName: '小蛋',
84 dexTitle: '蛋圖鑑',
85 flavor: '入味',
86 broth: '滷汁',
87 mood: '心情',
88 separator: ' | ',
89 stageNames: ['生蛋', '裂紋', '入味', '滷透'],
90 buttons: { refill: '加滷汁', flip: '翻面', dex: '圖鑑', panel: '面板', hideBand: '隱藏橫條', showBand: '顯示橫條' },
91 waiting: '蛋還在路上…',
92 eggAlt: '茶葉蛋',
93 previewLabels: {
94 stage0: '入味 0–19%(生蛋)',
95 stage1: '入味 20–39%(裂紋)',
96 stage2: '入味 40–69%(淺杏)',
97 stage3: '入味 70% 以上(淺褐)',
98 face_happy: '表情:開心',
99 face_normal: '表情:普通',
100 face_bored: '表情:無聊',
101 face_dry: '表情:滷汁乾了',
102 face_sleep: '表情:睡覺',
103 face_flip: '表情:想翻身',
104 face_done: '表情:剛出鍋',
105 },
106 previewBanner: '預覽 {n}/{total}:{label}(不影響存檔)',
107 previewReply: '預覽 {n}/{total}:{label}(/egg preview 下一張、/egg preview off 結束)',
108 previewUsage: '用法:/egg preview [1-{total}|off]',
109 previewOff: '已結束預覽',
110}
111
112const EN: Text = {
113 welcome: '🥚 You got your first egg! Marinate it into a tea egg. Type /egg to take a look',
114 brothLow: 'Broth is low',
115 brothEmpty: 'The broth dried up, so the egg stopped soaking 🥲 Type /egg refill',
116 brothEmptyHint: 'Broth dried up',
117 flipWanted: 'The egg wants to roll over 🔄 Type /egg flip',
118 flipHint: 'Wants a flip 🔄',
119 night: [
120 'Boss, even the broth is sleepy 😴',
121 'Still coding this late? The egg is tired for you',
122 'Will tomorrow-you understand code written at midnight?',
123 ],
124 harvest: '🎉 Done marinating! You got: {name}',
125 newDex: ' (New in the Eggdex!)',
126 refillReply: 'Broth topped up! The egg looks happy (•ᴗ•)',
127 flipReply: 'Flipped! Flavor +2 (•̀ᴗ•́)↻',
128 flipNoGain: 'Flipped! (•̀ᴗ•́)↻',
129 flipNotNeeded: "The egg is comfy right now. No need to flip it yet",
130 nameReply: 'OK, this egg is now called "{name}"',
131 nameUsage: 'Usage: /egg name <name> (up to 12 characters)',
132 paneOpened: 'Tea egg panel opened',
133 paneClosed: 'Tea egg panel closed',
134 bandHidden: 'Band hidden. Type /egg band to bring it back',
135 bandShown: 'Band shown',
136 unknown: 'Unknown command. Try /egg help',
137 error: "Can't reach the egg right now. Try again later 🥚",
138 help: [
139 'Tea Egg',
140 '/egg Open/close the panel',
141 '/egg refill Top up the broth',
142 '/egg flip Flip the egg',
143 '/egg dex Show the Eggdex',
144 '/egg band Hide/show the band above the prompt',
145 '/egg name NAME Name the current egg',
146 '/egg help Show this help',
147 ].join('\n'),
148 title: 'Tea Egg',
149 commandDescription: 'Tea Egg, a pet egg that marinates while you code: /egg [refill|flip|dex|band|name NAME|help]',
150 defaultName: 'Eggy',
151 dexTitle: 'Eggdex',
152 flavor: 'Flavor',
153 broth: 'Broth',
154 mood: 'Mood',
155 separator: ' | ',
156 stageNames: ['Raw', 'Cracked', 'Soaking', 'Steeped'],
157 buttons: { refill: 'Refill', flip: 'Flip', dex: 'Dex', panel: 'Panel', hideBand: 'Hide band', showBand: 'Show band' },
158 waiting: 'Your egg is on its way…',
159 eggAlt: 'Tea egg',
160 previewLabels: {
161 stage0: 'Flavor 0–19% (raw)',
162 stage1: 'Flavor 20–39% (cracked)',
163 stage2: 'Flavor 40–69% (light amber)',
164 stage3: 'Flavor 70%+ (light brown)',
165 face_happy: 'Face: happy',
166 face_normal: 'Face: normal',
167 face_bored: 'Face: bored',
168 face_dry: 'Face: broth dried up',
169 face_sleep: 'Face: sleeping',
170 face_flip: 'Face: wants a flip',
171 face_done: 'Face: just done',
172 },
173 previewBanner: 'Preview {n}/{total}: {label} (save not affected)',
174 previewReply: 'Preview {n}/{total}: {label} (/egg preview for the next one, /egg preview off to stop)',
175 previewUsage: 'Usage: /egg preview [1-{total}|off]',
176 previewOff: 'Preview ended',
177}
178
179const TABLES = { 'zh-TW': ZH, en: EN } as const
180
181// The text table for the current language; call it at use time, never cache the result
182export function T(): Text {
183 return TABLES[lang()]
184}
185
186export function fill(template: string, values: Record<string, string>): string {
187 return template.replace(/\{(\w+)\}/g, (_, k: string) => values[k] ?? '')
188}
189
190export function pick<T>(list: readonly T[], rng: () => number): T {
191 return list[Math.min(list.length - 1, Math.floor(rng() * list.length))]!
192}
193hooks/pixels.ts 81 lines1export const SIZE = 48
2export const RASTER_ROWS = SIZE / 2
3
4const UPPER = 0x2580
5const LOWER = 0x2584
6const SPACE = 0x20
7const DEFAULT = 0x01000000
8
9export type Layer = { pixels: string; box?: readonly [number, number, number, number] }
10
11// Stack layers in order: later layers overwrite opaque pixels inside their box (growth-hint overlays use this too)
12export function compose(layers: readonly Layer[]): string {
13 const out = (layers[0]?.pixels ?? '.'.repeat(SIZE * SIZE)).split('')
14 for (const layer of layers.slice(1)) {
15 const [x0, y0, x1, y1] = layer.box ?? [0, 0, SIZE, SIZE]
16 for (let y = y0; y < y1; y++) {
17 for (let x = x0; x < x1; x++) {
18 const c = layer.pixels[y * SIZE + x]
19 if (c !== undefined && c !== '.') out[y * SIZE + x] = c
20 }
21 }
22 }
23 return out.join('')
24}
25
26// Pixel chars: '.' is transparent; 0–9 and a–v are palette indices (base-32)
27function color(c: string | undefined, palette: readonly number[]): number | null {
28 if (c === undefined || c === '.') return null
29 return palette[parseInt(c, 32)] ?? null
30}
31
32function toBase64(bytes: Uint8Array): string {
33 let bin = ''
34 for (let i = 0; i < bytes.length; i += 0x8000) bin += String.fromCharCode(...bytes.subarray(i, i + 0x8000))
35 return btoa(bin)
36}
37
38// One cell = two stacked pixels. Top colored: ▀ (fg = top, bg = bottom); only bottom colored: ▄; both transparent: space
39export function rasterCells(pixels: string, palette: readonly number[]): string {
40 const view = new DataView(new ArrayBuffer(SIZE * RASTER_ROWS * 12))
41 let o = 0
42 const put = (n: number) => { view.setUint32(o, n, true); o += 4 }
43 for (let row = 0; row < RASTER_ROWS; row++) {
44 for (let x = 0; x < SIZE; x++) {
45 const top = color(pixels[row * 2 * SIZE + x], palette)
46 const bottom = color(pixels[(row * 2 + 1) * SIZE + x], palette)
47 if (top !== null) { put(UPPER); put(top); put(bottom ?? DEFAULT) }
48 else if (bottom !== null) { put(LOWER); put(bottom); put(DEFAULT) }
49 else { put(SPACE); put(DEFAULT); put(DEFAULT) }
50 }
51 }
52 return toBase64(new Uint8Array(view.buffer))
53}
54
55const hex = (n: number) => '#' + n.toString(16).padStart(6, '0')
56
57// background: put a rounded backing card under the pixels (so the white steam shows up on light themes)
58export function svgSource(pixels: string, palette: readonly number[], scale: number, background?: string): string {
59 // One <path> per color, each horizontal run a subpath: about a quarter the size of one <rect> per run
60 const runs = new Map<string, string[]>()
61 for (let y = 0; y < SIZE; y++) {
62 let x = 0
63 while (x < SIZE) {
64 const c = pixels[y * SIZE + x]
65 const fill = color(c, palette)
66 let run = 1
67 while (x + run < SIZE && pixels[y * SIZE + x + run] === c) run++
68 if (fill !== null) {
69 const key = hex(fill)
70 if (!runs.has(key)) runs.set(key, [])
71 runs.get(key)!.push(`M${x} ${y}h${run}v1h-${run}z`)
72 }
73 x += run
74 }
75 }
76 const back = background ? `<rect width="${SIZE}" height="${SIZE}" rx="3" fill="${background}"/>` : ''
77 const paths = [...runs].map(([fill, d]) => `<path fill="${fill}" d="${d.join('')}"/>`).join('')
78 const px = SIZE * scale
79 return `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${SIZE} ${SIZE}" width="${px}" height="${px}" shape-rendering="crispEdges">${back}${paths}</svg>`
80}
81