From 805b3bab55fbbcb08802a82c0acf7a13b361f8ab Mon Sep 17 00:00:00 2001 From: David Longworth Date: Wed, 10 Dec 2025 11:54:39 +0000 Subject: [PATCH 001/156] brand updates Signed-off-by: David Longworth --- .gitmodules | 3 + package-lock.json | 1681 +++++++++++++++-- package.json | 2 +- packages/stacks-site/.gitignore | 23 + packages/stacks-site/.npmrc | 1 + packages/stacks-site/README.md | 38 + packages/stacks-site/docs/private | 1 + .../brand/color/ColorBackgrounds.svelte | 157 ++ .../brand/color/ColorBusinessProduct.svelte | 31 + .../docs/public/brand/color/ColorCodes.svelte | 32 + .../public/brand/color/ColorHeadlines.svelte | 103 + .../public/brand/color/ColorHierarchy.svelte | 31 + .../public/brand/color/ColorLabels.svelte | 86 + .../public/brand/color/ColorSwatch.svelte | 122 ++ .../docs/public/brand/color/index.md | 74 + .../stacks-site/docs/public/brand/colors.yaml | 100 + .../docs/public/brand/logo/LogoColors.svelte | 38 + .../brand/logo/LogoFormatLockups.svelte | 113 ++ .../docs/public/brand/logo/LogoSymbol.svelte | 75 + .../docs/public/brand/logo/index.md | 81 + .../stacks-site/docs/public/brand/motion.md | 379 ++++ .../stacks-site/docs/public/brand/naming.md | 0 .../docs/public/brand/stack-system.md | 71 + .../docs/public/brand/styleguide.md | 13 + .../typography/TypographyAlignment.svelte | 33 + .../typography/TypographyCharacter.svelte | 283 +++ .../brand/typography/TypographyNotch.svelte | 42 + .../brand/typography/TypographySpacing.svelte | 43 + .../brand/typography/TypographyWeights.svelte | 78 + .../docs/public/brand/typography/index.md | 135 ++ packages/stacks-site/docs/public/changelog.md | 1 + .../stacks-site/docs/public/copy/voice.md | 298 +++ .../docs/public/system/base/backgrounds.md | 11 + .../docs/public/system/base/border-radius.md | 11 + .../docs/public/system/base/borders.md | 11 + .../docs/public/system/base/box-shadow.md | 11 + .../docs/public/system/base/box-sizing.md | 11 + .../docs/public/system/base/current-color.md | 11 + .../docs/public/system/base/cursors.md | 11 + .../docs/public/system/base/display.md | 11 + .../docs/public/system/base/flex.md | 11 + .../docs/public/system/base/floats.md | 11 + .../docs/public/system/base/gap.md | 11 + .../docs/public/system/base/grid.md | 11 + .../docs/public/system/base/interactivity.md | 11 + .../docs/public/system/base/lists.md | 11 + .../docs/public/system/base/object-fit.md | 11 + .../docs/public/system/base/opacity.md | 11 + .../docs/public/system/base/outline.md | 11 + .../docs/public/system/base/overflow.md | 11 + .../docs/public/system/base/position.md | 11 + .../docs/public/system/base/spacing.md | 11 + .../docs/public/system/base/transitions.md | 11 + .../docs/public/system/base/truncation.md | 11 + .../public/system/base/vertical-alignment.md | 11 + .../docs/public/system/base/visibility.md | 11 + .../docs/public/system/base/width-height.md | 11 + .../docs/public/system/base/z-index.md | 11 + .../system/components/activity-indicator.md | 11 + .../docs/public/system/components/avatars.md | 11 + .../docs/public/system/components/badges.md | 11 + .../docs/public/system/components/banners.md | 11 + .../docs/public/system/components/bling.md | 11 + .../public/system/components/breadcrumbs.md | 11 + .../public/system/components/button-groups.md | 11 + .../buttons/AnchorButtonTable.svelte | 58 + .../buttons/BadgeButtonTable.svelte | 68 + .../components/buttons/ButtonTable.svelte | 61 + .../buttons/DropdownButtonTable.svelte | 59 + .../buttons/LoadingButtonTable.svelte | 59 + .../components/buttons/SizeTable.svelte | 45 + .../buttons/ToggleButtonDemo.svelte | 33 + .../public/system/components/buttons/index.md | 244 +++ .../docs/public/system/components/cards.md | 11 + .../public/system/components/code-blocks.md | 11 + .../docs/public/system/components/editor.md | 11 + .../public/system/components/empty-states.md | 11 + .../public/system/components/expandable.md | 11 + .../public/system/components/link-previews.md | 11 + .../docs/public/system/components/links.md | 11 + .../docs/public/system/components/menus.md | 11 + .../docs/public/system/components/modals.md | 11 + .../public/system/components/navigation.md | 11 + .../docs/public/system/components/notices.md | 11 + .../public/system/components/page-titles.md | 11 + .../public/system/components/pagination.md | 11 + .../docs/public/system/components/popovers.md | 11 + .../public/system/components/post-summary.md | 11 + .../public/system/components/progress-bars.md | 11 + .../docs/public/system/components/prose.md | 11 + .../system/components/sidebar-widgets.md | 11 + .../docs/public/system/components/skeleton.md | 11 + .../docs/public/system/components/spinner.md | 11 + .../docs/public/system/components/tables.md | 11 + .../docs/public/system/components/tags.md | 11 + .../public/system/components/toggle-switch.md | 11 + .../docs/public/system/components/topbar.md | 11 + .../docs/public/system/components/uploader.md | 11 + .../public/system/components/user-cards.md | 11 + .../docs/public/system/develop/building.md | 34 + .../system/develop/conditional-classes.md | 74 + .../docs/public/system/develop/javascript.md | 115 ++ .../public/system/develop/using-stacks.md | 47 + .../docs/public/system/forms/checkbox.md | 11 + .../docs/public/system/forms/inputs.md | 11 + .../docs/public/system/forms/labels.md | 11 + .../docs/public/system/forms/select.md | 11 + .../docs/public/system/forms/textarea.md | 11 + .../public/system/foundation/accessibility.md | 11 + .../system/foundation/color-fundamentals.md | 11 + .../docs/public/system/foundation/colors.md | 11 + .../docs/public/system/foundation/icons.md | 11 + .../docs/public/system/foundation/spots.md | 11 + .../docs/public/system/foundation/theming.md | 11 + .../public/system/foundation/typography.md | 11 + packages/stacks-site/eslint.config.js | 37 + packages/stacks-site/netlify-setup.sh | 16 + packages/stacks-site/package.json | 39 + packages/stacks-site/src/app.css | 267 +++ packages/stacks-site/src/app.html | 11 + packages/stacks-site/src/auth.ts | 7 + .../src/components/Contents.svelte | 45 + .../stacks-site/src/components/Cta.svelte | 9 + .../stacks-site/src/components/Gallery.svelte | 43 + .../stacks-site/src/components/Grid.svelte | 12 + .../src/components/GridColumn.svelte | 13 + .../src/components/Navigation.svelte | 112 ++ .../stacks-site/src/components/Search.svelte | 127 ++ .../stacks-site/src/components/Slide.svelte | 16 + packages/stacks-site/src/docs/private | 1 + packages/stacks-site/src/hooks.server.ts | 1 + .../stacks-site/src/lib/assets/favicon.svg | 1 + .../stacks-site/src/lib/assets/icon-lock.svg | 1 + .../src/lib/assets/icons/brand.svg | 1 + .../src/lib/assets/icons/copywriting.svg | 1 + .../src/lib/assets/icons/email.svg | 1 + .../src/lib/assets/icons/handbook.svg | 3 + .../src/lib/assets/icons/product.svg | 1 + .../src/lib/assets/icons/resources.svg | 1 + packages/stacks-site/src/lib/assets/logo.svg | 1 + packages/stacks-site/src/lib/data/buttons.js | 2 + packages/stacks-site/src/lib/index.ts | 1 + packages/stacks-site/src/routes/+error.svelte | 18 + .../stacks-site/src/routes/+layout.server.ts | 41 + .../stacks-site/src/routes/+layout.svelte | 49 + packages/stacks-site/src/routes/+page.svelte | 59 + .../src/routes/[category]/+page.svelte | 15 + .../[section]/[[subsection]]/+page.svelte | 36 + .../[section]/[[subsection]]/+page.ts | 38 + .../src/routes/auth/signin/+page.server.ts | 4 + packages/stacks-site/src/structure.yaml | 311 +++ .../static/downloads/stack-overflow-font.zip | Bin 0 -> 2260786 bytes .../static/downloads/stack-overflow-logos.zip | Bin 0 -> 937518 bytes .../static/fonts/IBMPlexMono-Regular.woff2 | Bin 0 -> 45640 bytes .../static/fonts/StackSansHeadline-Bold.otf | Bin 0 -> 68768 bytes .../fonts/StackSansHeadline-Extralight.otf | Bin 0 -> 68824 bytes .../static/fonts/StackSansHeadline-Light.otf | Bin 0 -> 70196 bytes .../static/fonts/StackSansHeadline-Medium.otf | Bin 0 -> 70504 bytes .../fonts/StackSansHeadline-Regular.otf | Bin 0 -> 69828 bytes .../fonts/StackSansHeadline[wght].woff2 | Bin 0 -> 51348 bytes .../static/fonts/StackSansText[wght].woff2 | Bin 0 -> 51360 bytes .../static/images/brand/color/avoid.svg | 53 + .../static/images/brand/color/b2b-balance.svg | 102 + .../static/images/brand/color/b2c-balance.svg | 119 ++ .../images/brand/color/orange-usage.svg | 184 ++ .../images/brand/color/stack-color-combos.svg | 114 ++ .../logo/external-partnership-lockup.svg | 53 + .../images/brand/logo/logo-architecture.svg | 1 + .../images/brand/logo/logo-clearspace.svg | 27 + .../images/brand/logo/primary-lockup.svg | 1 + .../images/brand/logo/sub-brand-large.svg | 35 + .../images/brand/logo/sub-brand-lockups.svg | 74 + .../images/brand/logo/sub-brand-small.svg | 41 + .../brand/logo/symbol-lockup-circle.svg | 15 + .../brand/logo/symbol-lockup-square.svg | 15 + .../static/images/brand/logo/symbol.svg | 4 + .../images/brand/logo/things-to-avoid.svg | 99 + .../brand/stack-system/stacks-2d-in-use.svg | 1437 ++++++++++++++ .../images/brand/stack-system/stacks-2d.svg | 133 ++ .../brand/stack-system/stacks-3d-avoid.svg | 138 ++ .../brand/stack-system/stacks-3d-in-use.svg | 69 + .../images/brand/stack-system/stacks-3d.svg | 170 ++ .../stack-system/stacks-container-ex1.svg | 49 + .../stack-system/stacks-container-ex2.svg | 66 + .../stack-system/stacks-container-in-use.svg | 292 +++ .../brand/stack-system/stacks-containers.svg | 52 + .../typography-and-illustration.svg | 1 + .../brand/typography/typography-avoid.svg | 1 + .../typography-duotone-highlight-avoid.svg | 1 + .../typography-duotone-highlight.svg | 1 + .../typography-highlight-headline.svg | 1 + .../typography-monotone-highlight.svg | 1 + .../typography-sample-lowercase.svg | 1 + .../typography/typography-sample-spacing.svg | 1 + .../typography/typography-sample-x-cap.svg | 1 + .../brand/typography/typography-skew.svg | 1 + .../typography/typography-stack-avoid.svg | 1 + .../typography/typography-stack-type.svg | 1 + .../typography/typography-stylistic-sets.svg | 27 + .../stacks-site/static/images/heros/color.svg | 107 ++ .../stacks-site/static/images/heros/home.svg | 30 + .../stacks-site/static/images/heros/icons.svg | 64 + .../static/images/heros/illustration.svg | 74 + .../stacks-site/static/images/heros/logo.svg | 22 + .../static/images/heros/motion.svg | 48 + .../static/images/heros/stack-system.svg | 1 + .../static/images/heros/strategy.svg | 73 + .../static/images/heros/typography.svg | 78 + .../stacks-site/static/images/heros/voice.svg | 39 + packages/stacks-site/static/robots.txt | 2 + packages/stacks-site/svelte.config.js | 80 + packages/stacks-site/tsconfig.json | 19 + packages/stacks-site/vite.config.ts | 16 + packages/stacks-svelte/package.json | 1 + 214 files changed, 11035 insertions(+), 188 deletions(-) create mode 100644 .gitmodules create mode 100644 packages/stacks-site/.gitignore create mode 100644 packages/stacks-site/.npmrc create mode 100644 packages/stacks-site/README.md create mode 160000 packages/stacks-site/docs/private create mode 100644 packages/stacks-site/docs/public/brand/color/ColorBackgrounds.svelte create mode 100644 packages/stacks-site/docs/public/brand/color/ColorBusinessProduct.svelte create mode 100644 packages/stacks-site/docs/public/brand/color/ColorCodes.svelte create mode 100644 packages/stacks-site/docs/public/brand/color/ColorHeadlines.svelte create mode 100644 packages/stacks-site/docs/public/brand/color/ColorHierarchy.svelte create mode 100644 packages/stacks-site/docs/public/brand/color/ColorLabels.svelte create mode 100644 packages/stacks-site/docs/public/brand/color/ColorSwatch.svelte create mode 100644 packages/stacks-site/docs/public/brand/color/index.md create mode 100644 packages/stacks-site/docs/public/brand/colors.yaml create mode 100644 packages/stacks-site/docs/public/brand/logo/LogoColors.svelte create mode 100644 packages/stacks-site/docs/public/brand/logo/LogoFormatLockups.svelte create mode 100644 packages/stacks-site/docs/public/brand/logo/LogoSymbol.svelte create mode 100644 packages/stacks-site/docs/public/brand/logo/index.md create mode 100644 packages/stacks-site/docs/public/brand/motion.md create mode 100644 packages/stacks-site/docs/public/brand/naming.md create mode 100644 packages/stacks-site/docs/public/brand/stack-system.md create mode 100644 packages/stacks-site/docs/public/brand/styleguide.md create mode 100644 packages/stacks-site/docs/public/brand/typography/TypographyAlignment.svelte create mode 100644 packages/stacks-site/docs/public/brand/typography/TypographyCharacter.svelte create mode 100644 packages/stacks-site/docs/public/brand/typography/TypographyNotch.svelte create mode 100644 packages/stacks-site/docs/public/brand/typography/TypographySpacing.svelte create mode 100644 packages/stacks-site/docs/public/brand/typography/TypographyWeights.svelte create mode 100644 packages/stacks-site/docs/public/brand/typography/index.md create mode 100644 packages/stacks-site/docs/public/changelog.md create mode 100644 packages/stacks-site/docs/public/copy/voice.md create mode 100644 packages/stacks-site/docs/public/system/base/backgrounds.md create mode 100644 packages/stacks-site/docs/public/system/base/border-radius.md create mode 100644 packages/stacks-site/docs/public/system/base/borders.md create mode 100644 packages/stacks-site/docs/public/system/base/box-shadow.md create mode 100644 packages/stacks-site/docs/public/system/base/box-sizing.md create mode 100644 packages/stacks-site/docs/public/system/base/current-color.md create mode 100644 packages/stacks-site/docs/public/system/base/cursors.md create mode 100644 packages/stacks-site/docs/public/system/base/display.md create mode 100644 packages/stacks-site/docs/public/system/base/flex.md create mode 100644 packages/stacks-site/docs/public/system/base/floats.md create mode 100644 packages/stacks-site/docs/public/system/base/gap.md create mode 100644 packages/stacks-site/docs/public/system/base/grid.md create mode 100644 packages/stacks-site/docs/public/system/base/interactivity.md create mode 100644 packages/stacks-site/docs/public/system/base/lists.md create mode 100644 packages/stacks-site/docs/public/system/base/object-fit.md create mode 100644 packages/stacks-site/docs/public/system/base/opacity.md create mode 100644 packages/stacks-site/docs/public/system/base/outline.md create mode 100644 packages/stacks-site/docs/public/system/base/overflow.md create mode 100644 packages/stacks-site/docs/public/system/base/position.md create mode 100644 packages/stacks-site/docs/public/system/base/spacing.md create mode 100644 packages/stacks-site/docs/public/system/base/transitions.md create mode 100644 packages/stacks-site/docs/public/system/base/truncation.md create mode 100644 packages/stacks-site/docs/public/system/base/vertical-alignment.md create mode 100644 packages/stacks-site/docs/public/system/base/visibility.md create mode 100644 packages/stacks-site/docs/public/system/base/width-height.md create mode 100644 packages/stacks-site/docs/public/system/base/z-index.md create mode 100644 packages/stacks-site/docs/public/system/components/activity-indicator.md create mode 100644 packages/stacks-site/docs/public/system/components/avatars.md create mode 100644 packages/stacks-site/docs/public/system/components/badges.md create mode 100644 packages/stacks-site/docs/public/system/components/banners.md create mode 100644 packages/stacks-site/docs/public/system/components/bling.md create mode 100644 packages/stacks-site/docs/public/system/components/breadcrumbs.md create mode 100644 packages/stacks-site/docs/public/system/components/button-groups.md create mode 100644 packages/stacks-site/docs/public/system/components/buttons/AnchorButtonTable.svelte create mode 100644 packages/stacks-site/docs/public/system/components/buttons/BadgeButtonTable.svelte create mode 100644 packages/stacks-site/docs/public/system/components/buttons/ButtonTable.svelte create mode 100644 packages/stacks-site/docs/public/system/components/buttons/DropdownButtonTable.svelte create mode 100644 packages/stacks-site/docs/public/system/components/buttons/LoadingButtonTable.svelte create mode 100644 packages/stacks-site/docs/public/system/components/buttons/SizeTable.svelte create mode 100644 packages/stacks-site/docs/public/system/components/buttons/ToggleButtonDemo.svelte create mode 100644 packages/stacks-site/docs/public/system/components/buttons/index.md create mode 100644 packages/stacks-site/docs/public/system/components/cards.md create mode 100644 packages/stacks-site/docs/public/system/components/code-blocks.md create mode 100644 packages/stacks-site/docs/public/system/components/editor.md create mode 100644 packages/stacks-site/docs/public/system/components/empty-states.md create mode 100644 packages/stacks-site/docs/public/system/components/expandable.md create mode 100644 packages/stacks-site/docs/public/system/components/link-previews.md create mode 100644 packages/stacks-site/docs/public/system/components/links.md create mode 100644 packages/stacks-site/docs/public/system/components/menus.md create mode 100644 packages/stacks-site/docs/public/system/components/modals.md create mode 100644 packages/stacks-site/docs/public/system/components/navigation.md create mode 100644 packages/stacks-site/docs/public/system/components/notices.md create mode 100644 packages/stacks-site/docs/public/system/components/page-titles.md create mode 100644 packages/stacks-site/docs/public/system/components/pagination.md create mode 100644 packages/stacks-site/docs/public/system/components/popovers.md create mode 100644 packages/stacks-site/docs/public/system/components/post-summary.md create mode 100644 packages/stacks-site/docs/public/system/components/progress-bars.md create mode 100644 packages/stacks-site/docs/public/system/components/prose.md create mode 100644 packages/stacks-site/docs/public/system/components/sidebar-widgets.md create mode 100644 packages/stacks-site/docs/public/system/components/skeleton.md create mode 100644 packages/stacks-site/docs/public/system/components/spinner.md create mode 100644 packages/stacks-site/docs/public/system/components/tables.md create mode 100644 packages/stacks-site/docs/public/system/components/tags.md create mode 100644 packages/stacks-site/docs/public/system/components/toggle-switch.md create mode 100644 packages/stacks-site/docs/public/system/components/topbar.md create mode 100644 packages/stacks-site/docs/public/system/components/uploader.md create mode 100644 packages/stacks-site/docs/public/system/components/user-cards.md create mode 100644 packages/stacks-site/docs/public/system/develop/building.md create mode 100644 packages/stacks-site/docs/public/system/develop/conditional-classes.md create mode 100644 packages/stacks-site/docs/public/system/develop/javascript.md create mode 100644 packages/stacks-site/docs/public/system/develop/using-stacks.md create mode 100644 packages/stacks-site/docs/public/system/forms/checkbox.md create mode 100644 packages/stacks-site/docs/public/system/forms/inputs.md create mode 100644 packages/stacks-site/docs/public/system/forms/labels.md create mode 100644 packages/stacks-site/docs/public/system/forms/select.md create mode 100644 packages/stacks-site/docs/public/system/forms/textarea.md create mode 100644 packages/stacks-site/docs/public/system/foundation/accessibility.md create mode 100644 packages/stacks-site/docs/public/system/foundation/color-fundamentals.md create mode 100644 packages/stacks-site/docs/public/system/foundation/colors.md create mode 100644 packages/stacks-site/docs/public/system/foundation/icons.md create mode 100644 packages/stacks-site/docs/public/system/foundation/spots.md create mode 100644 packages/stacks-site/docs/public/system/foundation/theming.md create mode 100644 packages/stacks-site/docs/public/system/foundation/typography.md create mode 100644 packages/stacks-site/eslint.config.js create mode 100644 packages/stacks-site/netlify-setup.sh create mode 100644 packages/stacks-site/package.json create mode 100644 packages/stacks-site/src/app.css create mode 100644 packages/stacks-site/src/app.html create mode 100644 packages/stacks-site/src/auth.ts create mode 100644 packages/stacks-site/src/components/Contents.svelte create mode 100644 packages/stacks-site/src/components/Cta.svelte create mode 100644 packages/stacks-site/src/components/Gallery.svelte create mode 100644 packages/stacks-site/src/components/Grid.svelte create mode 100644 packages/stacks-site/src/components/GridColumn.svelte create mode 100644 packages/stacks-site/src/components/Navigation.svelte create mode 100644 packages/stacks-site/src/components/Search.svelte create mode 100644 packages/stacks-site/src/components/Slide.svelte create mode 160000 packages/stacks-site/src/docs/private create mode 100644 packages/stacks-site/src/hooks.server.ts create mode 100644 packages/stacks-site/src/lib/assets/favicon.svg create mode 100644 packages/stacks-site/src/lib/assets/icon-lock.svg create mode 100644 packages/stacks-site/src/lib/assets/icons/brand.svg create mode 100644 packages/stacks-site/src/lib/assets/icons/copywriting.svg create mode 100644 packages/stacks-site/src/lib/assets/icons/email.svg create mode 100644 packages/stacks-site/src/lib/assets/icons/handbook.svg create mode 100644 packages/stacks-site/src/lib/assets/icons/product.svg create mode 100644 packages/stacks-site/src/lib/assets/icons/resources.svg create mode 100644 packages/stacks-site/src/lib/assets/logo.svg create mode 100644 packages/stacks-site/src/lib/data/buttons.js create mode 100644 packages/stacks-site/src/lib/index.ts create mode 100644 packages/stacks-site/src/routes/+error.svelte create mode 100644 packages/stacks-site/src/routes/+layout.server.ts create mode 100644 packages/stacks-site/src/routes/+layout.svelte create mode 100644 packages/stacks-site/src/routes/+page.svelte create mode 100644 packages/stacks-site/src/routes/[category]/+page.svelte create mode 100644 packages/stacks-site/src/routes/[category]/[section]/[[subsection]]/+page.svelte create mode 100644 packages/stacks-site/src/routes/[category]/[section]/[[subsection]]/+page.ts create mode 100644 packages/stacks-site/src/routes/auth/signin/+page.server.ts create mode 100644 packages/stacks-site/src/structure.yaml create mode 100644 packages/stacks-site/static/downloads/stack-overflow-font.zip create mode 100644 packages/stacks-site/static/downloads/stack-overflow-logos.zip create mode 100644 packages/stacks-site/static/fonts/IBMPlexMono-Regular.woff2 create mode 100644 packages/stacks-site/static/fonts/StackSansHeadline-Bold.otf create mode 100644 packages/stacks-site/static/fonts/StackSansHeadline-Extralight.otf create mode 100644 packages/stacks-site/static/fonts/StackSansHeadline-Light.otf create mode 100644 packages/stacks-site/static/fonts/StackSansHeadline-Medium.otf create mode 100644 packages/stacks-site/static/fonts/StackSansHeadline-Regular.otf create mode 100755 packages/stacks-site/static/fonts/StackSansHeadline[wght].woff2 create mode 100755 packages/stacks-site/static/fonts/StackSansText[wght].woff2 create mode 100644 packages/stacks-site/static/images/brand/color/avoid.svg create mode 100644 packages/stacks-site/static/images/brand/color/b2b-balance.svg create mode 100644 packages/stacks-site/static/images/brand/color/b2c-balance.svg create mode 100644 packages/stacks-site/static/images/brand/color/orange-usage.svg create mode 100644 packages/stacks-site/static/images/brand/color/stack-color-combos.svg create mode 100644 packages/stacks-site/static/images/brand/logo/external-partnership-lockup.svg create mode 100644 packages/stacks-site/static/images/brand/logo/logo-architecture.svg create mode 100644 packages/stacks-site/static/images/brand/logo/logo-clearspace.svg create mode 100644 packages/stacks-site/static/images/brand/logo/primary-lockup.svg create mode 100644 packages/stacks-site/static/images/brand/logo/sub-brand-large.svg create mode 100644 packages/stacks-site/static/images/brand/logo/sub-brand-lockups.svg create mode 100644 packages/stacks-site/static/images/brand/logo/sub-brand-small.svg create mode 100644 packages/stacks-site/static/images/brand/logo/symbol-lockup-circle.svg create mode 100644 packages/stacks-site/static/images/brand/logo/symbol-lockup-square.svg create mode 100644 packages/stacks-site/static/images/brand/logo/symbol.svg create mode 100644 packages/stacks-site/static/images/brand/logo/things-to-avoid.svg create mode 100644 packages/stacks-site/static/images/brand/stack-system/stacks-2d-in-use.svg create mode 100644 packages/stacks-site/static/images/brand/stack-system/stacks-2d.svg create mode 100644 packages/stacks-site/static/images/brand/stack-system/stacks-3d-avoid.svg create mode 100644 packages/stacks-site/static/images/brand/stack-system/stacks-3d-in-use.svg create mode 100644 packages/stacks-site/static/images/brand/stack-system/stacks-3d.svg create mode 100644 packages/stacks-site/static/images/brand/stack-system/stacks-container-ex1.svg create mode 100644 packages/stacks-site/static/images/brand/stack-system/stacks-container-ex2.svg create mode 100644 packages/stacks-site/static/images/brand/stack-system/stacks-container-in-use.svg create mode 100644 packages/stacks-site/static/images/brand/stack-system/stacks-containers.svg create mode 100644 packages/stacks-site/static/images/brand/typography/typography-and-illustration.svg create mode 100644 packages/stacks-site/static/images/brand/typography/typography-avoid.svg create mode 100644 packages/stacks-site/static/images/brand/typography/typography-duotone-highlight-avoid.svg create mode 100644 packages/stacks-site/static/images/brand/typography/typography-duotone-highlight.svg create mode 100644 packages/stacks-site/static/images/brand/typography/typography-highlight-headline.svg create mode 100644 packages/stacks-site/static/images/brand/typography/typography-monotone-highlight.svg create mode 100644 packages/stacks-site/static/images/brand/typography/typography-sample-lowercase.svg create mode 100644 packages/stacks-site/static/images/brand/typography/typography-sample-spacing.svg create mode 100644 packages/stacks-site/static/images/brand/typography/typography-sample-x-cap.svg create mode 100644 packages/stacks-site/static/images/brand/typography/typography-skew.svg create mode 100644 packages/stacks-site/static/images/brand/typography/typography-stack-avoid.svg create mode 100644 packages/stacks-site/static/images/brand/typography/typography-stack-type.svg create mode 100644 packages/stacks-site/static/images/brand/typography/typography-stylistic-sets.svg create mode 100644 packages/stacks-site/static/images/heros/color.svg create mode 100644 packages/stacks-site/static/images/heros/home.svg create mode 100644 packages/stacks-site/static/images/heros/icons.svg create mode 100644 packages/stacks-site/static/images/heros/illustration.svg create mode 100644 packages/stacks-site/static/images/heros/logo.svg create mode 100644 packages/stacks-site/static/images/heros/motion.svg create mode 100644 packages/stacks-site/static/images/heros/stack-system.svg create mode 100644 packages/stacks-site/static/images/heros/strategy.svg create mode 100644 packages/stacks-site/static/images/heros/typography.svg create mode 100644 packages/stacks-site/static/images/heros/voice.svg create mode 100644 packages/stacks-site/static/robots.txt create mode 100644 packages/stacks-site/svelte.config.js create mode 100644 packages/stacks-site/tsconfig.json create mode 100644 packages/stacks-site/vite.config.ts diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000000..1ec63e7753 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "packages/stacks-site/docs/private"] + path = packages/stacks-site/docs/private + url = git@github.com:StackEng/StacksShinePrivate.git diff --git a/package-lock.json b/package-lock.json index 0a9f6d1433..38fb1f0cbf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "@rollup/plugin-commonjs": "^26.0.1", "@rollup/plugin-replace": "^6.0.3", "@stackoverflow/prettier-config": "^1.0.0", - "@stackoverflow/stacks-icons": "^7.0.0-beta.4", + "@stackoverflow/stacks-icons": "^7.0.0-beta.5", "@stackoverflow/stacks-icons-legacy": "npm:@stackoverflow/stacks-icons@^6.6.1", "@storybook/addon-docs": "^9.1.5", "@storybook/addon-links": "^9.1.3", @@ -282,6 +282,63 @@ "dev": true, "license": "MIT" }, + "node_modules/@auth/core": { + "version": "0.41.1", + "resolved": "https://registry.npmjs.org/@auth/core/-/core-0.41.1.tgz", + "integrity": "sha512-t9cJ2zNYAdWMacGRMT6+r4xr1uybIdmYa49calBPeTqwgAFPV/88ac9TEvCR85pvATiSPt8VaNf+Gt24JIT/uw==", + "license": "ISC", + "dependencies": { + "@panva/hkdf": "^1.2.1", + "jose": "^6.0.6", + "oauth4webapi": "^3.3.0", + "preact": "10.24.3", + "preact-render-to-string": "6.5.11" + }, + "peerDependencies": { + "@simplewebauthn/browser": "^9.0.1", + "@simplewebauthn/server": "^9.0.2", + "nodemailer": "^7.0.7" + }, + "peerDependenciesMeta": { + "@simplewebauthn/browser": { + "optional": true + }, + "@simplewebauthn/server": { + "optional": true + }, + "nodemailer": { + "optional": true + } + } + }, + "node_modules/@auth/sveltekit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@auth/sveltekit/-/sveltekit-1.11.1.tgz", + "integrity": "sha512-cWNfXcKrNIVtJYOY1tq7H7m03j89Wg7xrTvOJALu18fZdYulzYCPIAdTw8XSEzOp6KyhOGo7tmW7VtzRNtr/8Q==", + "license": "ISC", + "dependencies": { + "@auth/core": "0.41.1", + "set-cookie-parser": "^2.7.0" + }, + "peerDependencies": { + "@simplewebauthn/browser": "^9.0.1", + "@simplewebauthn/server": "^9.0.3", + "@sveltejs/kit": "^1.0.0 || ^2.0.0", + "nodemailer": "^7.0.7", + "svelte": "^3.54.0 || ^4.0.0 || ^5.0.0-0" + }, + "peerDependenciesMeta": { + "@simplewebauthn/browser": { + "optional": true + }, + "@simplewebauthn/server": { + "optional": true + }, + "nodemailer": { + "optional": true + } + } + }, "node_modules/@babel/code-frame": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", @@ -660,9 +717,9 @@ } }, "node_modules/@changesets/parse/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", "dev": true, "license": "MIT", "dependencies": { @@ -849,6 +906,21 @@ "node": ">=14.17.0" } }, + "node_modules/@docsearch/css": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-4.3.2.tgz", + "integrity": "sha512-K3Yhay9MgkBjJJ0WEL5MxnACModX9xuNt3UlQQkDEDZJZ0+aeWKtOkxHNndMRkMBnHdYvQjxkm6mdlneOtU1IQ==", + "license": "MIT" + }, + "node_modules/@docsearch/js": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-4.3.2.tgz", + "integrity": "sha512-xdfpPXMgKRY9EW7U1vtY7gLKbLZFa9ed+t0Dacquq8zXBqAlH9HlUf0h4Mhxm0xatsVeMaIR2wr/u6g0GsZyQw==", + "license": "MIT", + "dependencies": { + "htm": "3.1.1" + } + }, "node_modules/@dual-bundle/import-meta-resolve": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.2.1.tgz", @@ -867,7 +939,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -884,7 +955,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -901,7 +971,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -918,7 +987,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -935,7 +1003,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -952,7 +1019,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -969,7 +1035,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -986,7 +1051,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1003,7 +1067,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1020,7 +1083,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1037,7 +1099,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1054,7 +1115,6 @@ "cpu": [ "loong64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1071,7 +1131,6 @@ "cpu": [ "mips64el" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1088,7 +1147,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1105,7 +1163,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1122,7 +1179,6 @@ "cpu": [ "s390x" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1139,7 +1195,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1156,7 +1211,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1173,7 +1227,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1190,7 +1243,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1207,7 +1259,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1224,7 +1275,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1241,7 +1291,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1258,7 +1307,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1275,7 +1323,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1292,7 +1339,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1549,6 +1595,20 @@ "dev": true, "license": "BSD-3-Clause" }, + "node_modules/@hbsnow/rehype-sectionize": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@hbsnow/rehype-sectionize/-/rehype-sectionize-1.0.7.tgz", + "integrity": "sha512-twbVxCFf4YwgTm6FIdGtHfJ14vvIHedk2fqZTpE3X6+vszEeZlMTy7tOyI9KaP/6S2DN2Jnk7zZGtZANTD+vEg==", + "license": "MIT", + "dependencies": { + "hast-util-heading": "^2.0.1", + "hast-util-heading-rank": "^2.1.1", + "rehype": "^12.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/@highlightjs/cdn-assets": { "version": "11.11.1", "resolved": "https://registry.npmjs.org/@highlightjs/cdn-assets/-/cdn-assets-11.11.1.tgz", @@ -1617,6 +1677,13 @@ "url": "https://github.com/sponsors/nzakas" } }, + "node_modules/@iarna/toml": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", + "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", + "dev": true, + "license": "ISC" + }, "node_modules/@inquirer/external-editor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.2.tgz", @@ -1742,7 +1809,7 @@ "version": "0.3.11", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", @@ -2005,11 +2072,19 @@ "lit-html": "^2.0.0 || ^3.0.0" } }, + "node_modules/@panva/hkdf": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.2.1.tgz", + "integrity": "sha512-6oclG6Y3PiDFcoyk8srjLfVKyMfVCKJ27JwNPViuXziFpmdz+MZnZN/aKY0JGXgYuO/VghU0jcOAZgWXZ1Dmrw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/@parcel/watcher": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", - "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -2049,7 +2124,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2070,7 +2144,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2091,7 +2164,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2112,7 +2184,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2133,7 +2204,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2154,7 +2224,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2175,7 +2244,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2196,7 +2264,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2217,7 +2284,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2238,7 +2304,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2259,7 +2324,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2280,7 +2344,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2301,7 +2364,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2339,6 +2401,12 @@ "url": "https://opencollective.com/pkgr" } }, + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "license": "MIT" + }, "node_modules/@popperjs/core": { "version": "2.11.8", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", @@ -2487,7 +2555,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2501,7 +2568,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2515,7 +2581,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2529,7 +2594,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2543,7 +2607,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2557,7 +2620,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2571,7 +2633,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2585,7 +2646,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2599,7 +2659,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2613,7 +2672,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2627,7 +2685,6 @@ "cpu": [ "loong64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2641,7 +2698,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2655,7 +2711,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2669,7 +2724,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2683,7 +2737,6 @@ "cpu": [ "s390x" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2697,7 +2750,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2711,7 +2763,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2725,7 +2776,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2739,7 +2789,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2753,7 +2802,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2767,7 +2815,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2781,7 +2828,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2918,9 +2964,9 @@ "license": "MIT" }, "node_modules/@stackoverflow/stacks-icons": { - "version": "7.0.0-beta.4", - "resolved": "https://registry.npmjs.org/@stackoverflow/stacks-icons/-/stacks-icons-7.0.0-beta.4.tgz", - "integrity": "sha512-Wt3KWS7J52rmbvw3Q/Qmi7wZh200ufMDIpzVZHqnin1XeDXbq04NUzCZtTzyXw6n6gDE3PkFgiyQp1t4OvR9uw==", + "version": "7.0.0-beta.7", + "resolved": "https://registry.npmjs.org/@stackoverflow/stacks-icons/-/stacks-icons-7.0.0-beta.7.tgz", + "integrity": "sha512-ECcRBn4OTeFxvdrwX23umlxoSgdB7SisT++Y0KNScr7s5PIgWjMWwGRl0GGstxtNGbcrNsAZL/MSQEVOpgulAg==", "license": "Apache-2.0" }, "node_modules/@stackoverflow/stacks-icons-legacy": { @@ -2930,10 +2976,58 @@ "integrity": "sha512-/VT9+1fvHkTuNTLXxa3U9FhwZ3UOXbWYNQ46zqAvhPZd2k+AnDKBlNZ1rsn8ozRMKtoWI7tC8jN1gXqQghDIRQ==", "license": "MIT" }, + "node_modules/@stackoverflow/stacks-site": { + "resolved": "packages/stacks-site", + "link": true + }, "node_modules/@stackoverflow/stacks-svelte": { "resolved": "packages/stacks-svelte", "link": true }, + "node_modules/@standard-schema/spec": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", + "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==", + "license": "MIT" + }, + "node_modules/@stefanprobst/rehype-extract-toc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@stefanprobst/rehype-extract-toc/-/rehype-extract-toc-3.0.0.tgz", + "integrity": "sha512-ZnmL6g8DydunVa2/Vk54PTPC+Ib096Xwvd/mqhK/mqsTh6jaiLZFAvM3FUsOiio0oeVpUDb1jbBPePfA9m/NRg==", + "license": "MIT", + "dependencies": { + "estree-util-is-identifier-name": "^3.0.0", + "estree-util-value-to-estree": "^3.3.3", + "hast-util-heading-rank": "^3.0.0", + "hast-util-to-string": "^3.0.1", + "unist-util-visit": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@stefanprobst/rehype-extract-toc/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@stefanprobst/rehype-extract-toc/node_modules/hast-util-heading-rank": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-heading-rank/-/hast-util-heading-rank-3.0.0.tgz", + "integrity": "sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/@storybook/addon-docs": { "version": "9.1.15", "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-9.1.15.tgz", @@ -3144,6 +3238,59 @@ "acorn": "^8.9.0" } }, + "node_modules/@sveltejs/adapter-netlify": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-netlify/-/adapter-netlify-5.2.4.tgz", + "integrity": "sha512-UtPcZq1HUA43hM8uLi+nsm5Q+YjHNj7/SMFoyeLZeY/VTloVWABEZ0tJ5WodTUmy/8j5QJ7oLZjj28aQxi8y3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@iarna/toml": "^2.2.5", + "esbuild": "^0.25.4", + "set-cookie-parser": "^2.6.0" + }, + "peerDependencies": { + "@sveltejs/kit": "^2.4.0" + } + }, + "node_modules/@sveltejs/kit": { + "version": "2.49.1", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.49.1.tgz", + "integrity": "sha512-vByReCTTdlNM80vva8alAQC80HcOiHLkd8XAxIiKghKSHcqeNfyhp3VsYAV8VSiPKu4Jc8wWCfsZNAIvd1uCqA==", + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@sveltejs/acorn-typescript": "^1.0.5", + "@types/cookie": "^0.6.0", + "acorn": "^8.14.1", + "cookie": "^0.6.0", + "devalue": "^5.3.2", + "esm-env": "^1.2.2", + "kleur": "^4.1.5", + "magic-string": "^0.30.5", + "mrmime": "^2.0.0", + "sade": "^1.8.1", + "set-cookie-parser": "^2.6.0", + "sirv": "^3.0.0" + }, + "bin": { + "svelte-kit": "svelte-kit.js" + }, + "engines": { + "node": ">=18.13" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0", + "@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0", + "svelte": "^4.0.0 || ^5.0.0-next.0", + "vite": "^5.0.3 || ^6.0.0 || ^7.0.0-beta.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + } + } + }, "node_modules/@sveltejs/package": { "version": "2.5.4", "resolved": "https://registry.npmjs.org/@sveltejs/package/-/package-2.5.4.tgz", @@ -3201,7 +3348,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-5.1.1.tgz", "integrity": "sha512-Y1Cs7hhTc+a5E9Va/xwKlAJoariQyHY+5zBgCZg4PFWNYQ1nMN9sjK1zhw1gK69DuqVP++sht/1GZg1aRwmAXQ==", - "dev": true, "license": "MIT", "dependencies": { "@sveltejs/vite-plugin-svelte-inspector": "^4.0.1", @@ -3223,7 +3369,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-4.0.1.tgz", "integrity": "sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==", - "dev": true, "license": "MIT", "dependencies": { "debug": "^4.3.7" @@ -3480,6 +3625,12 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "license": "MIT" + }, "node_modules/@types/cookies": { "version": "0.9.2", "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.9.2.tgz", @@ -3567,6 +3718,15 @@ "@types/send": "*" } }, + "node_modules/@types/hast": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", + "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2" + } + }, "node_modules/@types/http-assert": { "version": "1.5.6", "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.6.tgz", @@ -3672,6 +3832,16 @@ "@types/mdurl": "^2" } }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, "node_modules/@types/mdurl": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", @@ -3713,7 +3883,7 @@ "version": "24.9.1", "resolved": "https://registry.npmjs.org/@types/node/-/node-24.9.1.tgz", "integrity": "sha512-QoiaXANRkSXK6p0Duvt56W208du4P9Uye9hWLWgGMDTEoKPhuenzNcC4vGUmrNkiOKTlIrBoyNQYNpSwfEZXSg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "undici-types": "~7.16.0" @@ -3723,7 +3893,6 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==", - "dev": true, "license": "MIT" }, "node_modules/@types/pixelmatch": { @@ -3846,6 +4015,12 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, "node_modules/@types/ws": { "version": "7.4.7", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", @@ -4099,6 +4274,12 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "license": "ISC" + }, "node_modules/@vitest/expect": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz", @@ -5392,6 +5573,16 @@ } } }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -5627,7 +5818,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "fill-range": "^7.1.1" @@ -5684,7 +5875,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/bytes": { @@ -5840,6 +6031,16 @@ "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", "license": "Apache-2.0" }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/chai": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.0.tgz", @@ -5907,6 +6108,26 @@ "url": "https://github.com/chalk/chalk-template?sponsor=1" } }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/chardet": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.0.tgz", @@ -6281,6 +6502,16 @@ "node": ">= 0.8" } }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/command-line-args": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", @@ -6448,6 +6679,15 @@ "dev": true, "license": "MIT" }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/cookies": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.9.1.tgz", @@ -6466,7 +6706,7 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", - "dev": true, + "devOptional": true, "license": "MIT", "peer": true, "dependencies": { @@ -6822,7 +7062,6 @@ "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -6886,7 +7125,6 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -6966,6 +7204,15 @@ "node": ">=4" } }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -6991,7 +7238,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "dev": true, "license": "Apache-2.0", "optional": true, "bin": { @@ -7001,14 +7247,33 @@ "node": ">=0.10" } }, - "node_modules/devtools-protocol": { - "version": "0.0.1508733", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1508733.tgz", - "integrity": "sha512-QJ1R5gtck6nDcdM+nlsaJXcelPEI7ZxSMw1ujHpO1c4+9l+Nue5qlebi9xO1Z2MGr92bFOQTW7/rrheh5hHxDg==", - "dev": true, - "license": "BSD-3-Clause" + "node_modules/devalue": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.5.0.tgz", + "integrity": "sha512-69sM5yrHfFLJt0AZ9QqZXGCPfJ7fQjvpln3Rq5+PS03LD32Ost1Q9N+eEnaQwGRIriKkMImXD56ocjQmfjbV3w==", + "license": "MIT" }, - "node_modules/diff": { + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/devtools-protocol": { + "version": "0.0.1508733", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1508733.tgz", + "integrity": "sha512-QJ1R5gtck6nDcdM+nlsaJXcelPEI7ZxSMw1ujHpO1c4+9l+Nue5qlebi9xO1Z2MGr92bFOQTW7/rrheh5hHxDg==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/diff": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", @@ -7445,7 +7710,6 @@ "version": "0.25.11", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.11.tgz", "integrity": "sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==", - "dev": true, "hasInstallScript": true, "license": "MIT", "bin": { @@ -7961,6 +8225,28 @@ "node": ">=4.0" } }, + "node_modules/estree-util-is-identifier-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", + "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-value-to-estree": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.5.0.tgz", + "integrity": "sha512-aMV56R27Gv3QmfmF1MY12GWkGzzeAezAX+UplqHVASfjc9wNzI/X6hC0S9oxq61WT4aQesLGslWP9tKk6ghRZQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/remcohaszing" + } + }, "node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", @@ -8239,7 +8525,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, "license": "MIT", "engines": { "node": ">=12.0.0" @@ -8280,7 +8565,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" @@ -8458,7 +8743,6 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -8585,10 +8869,16 @@ "assert-plus": "^1.0.0" } }, + "node_modules/github-slugger": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", + "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", + "license": "ISC" + }, "node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", "dev": true, "license": "ISC", "dependencies": { @@ -8735,7 +9025,7 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, + "devOptional": true, "license": "ISC" }, "node_modules/graphemer": { @@ -8772,9 +9062,9 @@ } }, "node_modules/gray-matter/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", "dev": true, "license": "MIT", "dependencies": { @@ -8860,6 +9150,234 @@ "node": ">= 0.4" } }, + "node_modules/hast-util-from-parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz", + "integrity": "sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/unist": "^2.0.0", + "hastscript": "^7.0.0", + "property-information": "^6.0.0", + "vfile": "^5.0.0", + "vfile-location": "^4.0.0", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-heading": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hast-util-heading/-/hast-util-heading-2.0.1.tgz", + "integrity": "sha512-nwRggTanShzHRYMUX46lm6pbJ2c1+TUQCETahENb6yR6c8ro8MkE0hRJm8G0IqAZl35ONgJiW8RC8+D3484vYg==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "hast-util-is-element": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-heading-rank": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/hast-util-heading-rank/-/hast-util-heading-rank-2.1.1.tgz", + "integrity": "sha512-iAuRp+ESgJoRFJbSyaqsfvJDY6zzmFoEnL1gtz1+U8gKtGGj1p0CVlysuUAUjq95qlZESHINLThwJzNGmgGZxA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-is-element": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.3.tgz", + "integrity": "sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz", + "integrity": "sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-7.2.3.tgz", + "integrity": "sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/parse5": "^6.0.0", + "hast-util-from-parse5": "^7.0.0", + "hast-util-to-parse5": "^7.0.0", + "html-void-elements": "^2.0.0", + "parse5": "^6.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile": "^5.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw/node_modules/unist-util-is": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", + "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw/node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-html": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-8.0.4.tgz", + "integrity": "sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/unist": "^2.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-raw": "^7.0.0", + "hast-util-whitespace": "^2.0.0", + "html-void-elements": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-parse5": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-7.1.0.tgz", + "integrity": "sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-string": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz", + "integrity": "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-string/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/hast-util-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz", + "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-7.2.0.tgz", + "integrity": "sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^3.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/highlight.js": { "version": "11.11.1", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.11.1.tgz", @@ -8902,7 +9420,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/htm/-/htm-3.1.1.tgz", "integrity": "sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ==", - "dev": true, "license": "Apache-2.0" }, "node_modules/html-escaper": { @@ -8925,6 +9442,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/html-void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.1.tgz", + "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/htmlparser2": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.0.0.tgz", @@ -9120,7 +9647,6 @@ "version": "0.5.5", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", - "dev": true, "license": "MIT", "optional": true, "peer": true, @@ -9141,7 +9667,7 @@ "version": "5.1.4", "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.4.tgz", "integrity": "sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/import-cwd": { @@ -9365,6 +9891,29 @@ "node": ">=8" } }, + "node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/is-core-module": { "version": "2.16.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", @@ -9422,7 +9971,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -9462,7 +10011,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -9502,12 +10051,24 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=0.12.0" } }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", @@ -9583,7 +10144,7 @@ "version": "3.14.1", "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", - "dev": true, + "devOptional": true, "license": "MIT", "peer": true }, @@ -9752,12 +10313,21 @@ "version": "2.6.1", "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", - "dev": true, + "devOptional": true, "license": "MIT", "bin": { "jiti": "lib/jiti-cli.mjs" } }, + "node_modules/jose": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/jose/-/jose-6.1.3.tgz", + "integrity": "sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/jquery": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", @@ -9772,9 +10342,9 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, "license": "MIT", "dependencies": { @@ -9901,7 +10471,6 @@ "version": "4.1.5", "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -10043,7 +10612,7 @@ "version": "4.4.2", "resolved": "https://registry.npmjs.org/less/-/less-4.4.2.tgz", "integrity": "sha512-j1n1IuTX1VQjIy3tT7cyGbX7nvQOsFLoIqobZv4ttI5axP923gA44zUj6miiA6R5Aoms4sEGVIIcucXUbRI14g==", - "dev": true, + "devOptional": true, "license": "Apache-2.0", "peer": true, "dependencies": { @@ -10098,7 +10667,6 @@ "version": "0.1.8", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, "license": "MIT", "optional": true, "peer": true, @@ -10113,7 +10681,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, "license": "MIT", "optional": true, "peer": true, @@ -10129,7 +10696,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, "license": "MIT", "optional": true, "peer": true, @@ -10144,7 +10710,6 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, "license": "ISC", "optional": true, "peer": true, @@ -10156,7 +10721,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "license": "BSD-3-Clause", "optional": true, "peer": true, @@ -10635,39 +11199,99 @@ "dev": true, "license": "CC0-1.0" }, - "node_modules/mdurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", - "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", - "license": "MIT" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "node_modules/mdsvex": { + "version": "0.12.6", + "resolved": "https://registry.npmjs.org/mdsvex/-/mdsvex-0.12.6.tgz", + "integrity": "sha512-pupx2gzWh3hDtm/iDW4WuCpljmyHbHi34r7ktOqpPGvyiM4MyfNgdJ3qMizXdgCErmvYC9Nn/qyjePy+4ss9Wg==", "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.6" + "dependencies": { + "@types/mdast": "^4.0.4", + "@types/unist": "^2.0.3", + "prism-svelte": "^0.4.7", + "prismjs": "^1.17.1", + "unist-util-visit": "^2.0.1", + "vfile-message": "^2.0.4" + }, + "peerDependencies": { + "svelte": "^3.56.0 || ^4.0.0 || ^5.0.0-next.120" } }, - "node_modules/meow": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", - "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "node_modules/mdsvex/node_modules/unist-util-is": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", + "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", "dev": true, "license": "MIT", - "engines": { - "node": ">=18" - }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "node_modules/mdsvex/node_modules/unist-util-visit": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", + "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdsvex/node_modules/unist-util-visit-parents": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", + "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "license": "MIT" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/meow": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true, "license": "MIT" }, @@ -10685,7 +11309,7 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "braces": "^3.0.3", @@ -10699,7 +11323,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=8.6" @@ -10753,9 +11377,10 @@ } }, "node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "version": "2.19.2", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.2.tgz", + "integrity": "sha512-8S5I8db/uZN8r9HSLFVWPdJCvYOejMcEC82VIzNUc6Zkklf/d1gg2psfE79/vyhWOj4+J8MtwmoOz3TmvaGu5A==", + "license": "MIT", "dependencies": { "dom-walk": "^0.1.0" } @@ -10847,6 +11472,18 @@ "node": ">=10" } }, + "node_modules/modern-normalize": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/modern-normalize/-/modern-normalize-3.0.1.tgz", + "integrity": "sha512-VqlMdYi59Uch6fnUPxnpijWUQe+TW6zeWCvyr6Mb7JibheHzSuAAoJi2c71ZwIaWKpECpGpYHoaaBp6rBRr+/g==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/moo": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", @@ -10865,17 +11502,24 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "dev": true, "license": "MIT", "engines": { "node": ">=4" } }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, "license": "MIT" }, "node_modules/nanocolors": { @@ -10889,7 +11533,6 @@ "version": "3.3.11", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "dev": true, "funding": [ { "type": "github", @@ -10915,7 +11558,6 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", - "dev": true, "license": "MIT", "optional": true, "peer": true, @@ -10934,7 +11576,6 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, "license": "MIT", "optional": true, "peer": true, @@ -10976,7 +11617,6 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", - "dev": true, "license": "MIT", "optional": true }, @@ -11154,6 +11794,15 @@ "node": "*" } }, + "node_modules/oauth4webapi": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.3.tgz", + "integrity": "sha512-pQ5BsX3QRTgnt5HxgHwgunIRaDXBdkT23tf8dfzmtTIL2LTpdmxgbpbBm0VgFWAIDlezQvQCTgnVIUmHupXHxw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/object-inspect": { "version": "1.13.4", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", @@ -11475,7 +12124,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true, + "devOptional": true, "license": "MIT", "peer": true, "engines": { @@ -11493,7 +12142,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true, "license": "MIT" }, "node_modules/parse5-htmlparser2-tree-adapter": { @@ -11664,14 +12312,12 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, "license": "ISC" }, "node_modules/picomatch": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -11684,7 +12330,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=6" @@ -11811,7 +12457,6 @@ "version": "8.5.6", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", - "dev": true, "funding": [ { "type": "opencollective", @@ -12676,6 +13321,25 @@ "node": ">=12" } }, + "node_modules/preact": { + "version": "10.24.3", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.24.3.tgz", + "integrity": "sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/preact-render-to-string": { + "version": "6.5.11", + "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-6.5.11.tgz", + "integrity": "sha512-ubnauqoGczeGISiOh6RjX0/cdaF8v/oDXIjO85XALCQjwQP+SB4RDXXtvZ6yTYSjG+PC1QRP2AhPgCEsM2EvUw==", + "license": "MIT", + "peerDependencies": { + "preact": ">=10" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -12754,6 +13418,23 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/prism-svelte": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/prism-svelte/-/prism-svelte-0.4.7.tgz", + "integrity": "sha512-yABh19CYbM24V7aS7TuPYRNMqthxwbvx6FF/Rw920YbyBWO3tnyPIqRMgHuSVsLmuHkkBS1Akyof463FVdkeDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/prismjs": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -12783,6 +13464,16 @@ "node": ">=0.12" } }, + "node_modules/property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/prosemirror-commands": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.7.1.tgz", @@ -12973,7 +13664,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/psl": { @@ -13234,9 +13925,9 @@ } }, "node_modules/read-yaml-file/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", "dev": true, "license": "MIT", "dependencies": { @@ -13352,6 +14043,211 @@ "node": ">= 0.4" } }, + "node_modules/rehype": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/rehype/-/rehype-12.0.1.tgz", + "integrity": "sha512-ey6kAqwLM3X6QnMDILJthGvG1m1ULROS9NT4uG9IDCuv08SFyLlreSuvOa//DgEvbXx62DS6elGVqusWhRUbgw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "rehype-parse": "^8.0.0", + "rehype-stringify": "^9.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-autolink-headings": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/rehype-autolink-headings/-/rehype-autolink-headings-7.1.0.tgz", + "integrity": "sha512-rItO/pSdvnvsP4QRB1pmPiNHUskikqtPojZKJPPPAVx9Hj8i8TwMBhofrrAYRhYOOBZH9tgmG5lPqDLuIWPWmw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-heading-rank": "^3.0.0", + "hast-util-is-element": "^3.0.0", + "unified": "^11.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-autolink-headings/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/rehype-autolink-headings/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/rehype-autolink-headings/node_modules/hast-util-heading-rank": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-heading-rank/-/hast-util-heading-rank-3.0.0.tgz", + "integrity": "sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-autolink-headings/node_modules/hast-util-is-element": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", + "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-autolink-headings/node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-autolink-headings/node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-autolink-headings/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-autolink-headings/node_modules/vfile-message": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-parse": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-8.0.5.tgz", + "integrity": "sha512-Ds3RglaY/+clEX2U2mHflt7NlMA72KspZ0JLUJgBBLpRddBcEw3H8uYZQliQriku22NZpYMfjDdSgHcjxue24A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "hast-util-from-parse5": "^7.0.0", + "parse5": "^6.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-slug": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/rehype-slug/-/rehype-slug-6.0.0.tgz", + "integrity": "sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "github-slugger": "^2.0.0", + "hast-util-heading-rank": "^3.0.0", + "hast-util-to-string": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-slug/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/rehype-slug/node_modules/hast-util-heading-rank": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-heading-rank/-/hast-util-heading-rank-3.0.0.tgz", + "integrity": "sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-stringify": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-9.0.4.tgz", + "integrity": "sha512-Uk5xu1YKdqobe5XpSskwPvo1XeHUUucWEQSl8hTrXt5selvca1e8K1EZ37E6YoZ4BT8BCqCdVfQW7OfHfthtVQ==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "hast-util-to-html": "^8.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/request": { "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", @@ -13574,15 +14470,15 @@ } }, "node_modules/rimraf/node_modules/glob": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz", - "integrity": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz", + "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { "foreground-child": "^3.3.1", "jackspeak": "^4.1.1", - "minimatch": "^10.0.3", + "minimatch": "^10.1.1", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^2.0.0" @@ -13624,11 +14520,11 @@ } }, "node_modules/rimraf/node_modules/minimatch": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", - "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", + "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/brace-expansion": "^5.0.0" }, @@ -13660,7 +14556,6 @@ "version": "4.52.5", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.5.tgz", "integrity": "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==", - "dev": true, "license": "MIT", "dependencies": { "@types/estree": "1.0.8" @@ -14540,7 +15435,6 @@ "version": "1.8.1", "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "dev": true, "license": "MIT", "dependencies": { "mri": "^1.1.0" @@ -14604,7 +15498,7 @@ "version": "1.93.2", "resolved": "https://registry.npmjs.org/sass/-/sass-1.93.2.tgz", "integrity": "sha512-t+YPtOQHpGW1QWsh1CHQ5cPIr9lbbGZLZnbihP/D/qZj/yuV68m8qarcV17nvkOX81BCrvzAlq2klCQFZghyTg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "chokidar": "^4.0.0", @@ -14625,7 +15519,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "readdirp": "^4.0.1" @@ -14641,7 +15535,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">= 14.18.0" @@ -14655,7 +15549,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", - "dev": true, + "devOptional": true, "license": "ISC" }, "node_modules/scheduler": { @@ -14846,6 +15740,12 @@ "randombytes": "^2.1.0" } }, + "node_modules/set-cookie-parser": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", + "license": "MIT" + }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -15026,6 +15926,20 @@ "node": ">=0.3.1" } }, + "node_modules/sirv": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz", + "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==", + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -15119,7 +16033,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -15129,7 +16042,7 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", @@ -15140,12 +16053,22 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, + "devOptional": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/spawndamnit": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spawndamnit/-/spawndamnit-3.0.1.tgz", @@ -15386,6 +16309,20 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -16196,7 +17133,7 @@ "version": "5.44.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.0.tgz", "integrity": "sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==", - "dev": true, + "devOptional": true, "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -16250,7 +17187,7 @@ "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/text-decoder": { @@ -16294,7 +17231,6 @@ "version": "0.2.15", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", - "dev": true, "license": "MIT", "dependencies": { "fdir": "^6.5.0", @@ -16347,7 +17283,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "is-number": "^7.0.0" @@ -16366,6 +17302,15 @@ "node": ">=0.6" } }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", @@ -16402,6 +17347,16 @@ "tree-kill": "cli.js" } }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/ts-api-utils": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", @@ -16450,7 +17405,7 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, + "devOptional": true, "license": "0BSD" }, "node_modules/tsscmp": { @@ -16633,7 +17588,112 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", - "dev": true, + "devOptional": true, + "license": "MIT" + }, + "node_modules/unified": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", + "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/unist-util-position": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz", + "integrity": "sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", + "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/unist-util-visit/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", "license": "MIT" }, "node_modules/universalify": { @@ -16773,11 +17833,83 @@ "extsprintf": "^1.2.0" } }, + "node_modules/vfile": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", + "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.1.0.tgz", + "integrity": "sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message/node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile/node_modules/vfile-message": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", + "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/vite": { "version": "6.4.1", "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", - "dev": true, "license": "MIT", "dependencies": { "esbuild": "^0.25.0", @@ -16875,7 +18007,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.1.tgz", "integrity": "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==", - "dev": true, "license": "MIT", "workspaces": [ "tests/deps/*", @@ -17012,6 +18143,16 @@ "node": ">=10.13.0" } }, + "node_modules/web-namespaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/webdriver-bidi-protocol": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.3.8.tgz", @@ -17451,6 +18592,21 @@ "node": ">=10" } }, + "node_modules/yaml": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", @@ -17558,6 +18714,16 @@ "url": "https://github.com/sponsors/colinhacks" } }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "packages/stacks-classic": { "name": "@stackoverflow/stacks", "version": "3.0.0-beta.9", @@ -17579,6 +18745,146 @@ "list.js": "^2.3.1" } }, + "packages/stacks-site": { + "name": "@stackoverflow/stacks-site", + "version": "0.0.1", + "dependencies": { + "@auth/sveltekit": "^1.10.0", + "@docsearch/css": "^4.3.2", + "@docsearch/js": "^4.3.2", + "@hbsnow/rehype-sectionize": "^1.0.7", + "@stackoverflow/stacks": "*", + "@stackoverflow/stacks-icons": "*", + "@stackoverflow/stacks-svelte": "*", + "@stefanprobst/rehype-extract-toc": "^3.0.0", + "modern-normalize": "^3.0.1", + "rehype-autolink-headings": "^7.1.0", + "rehype-slug": "^6.0.0", + "unist-util-visit": "^5.0.0", + "yaml": "^2.8.1" + }, + "devDependencies": { + "@sveltejs/adapter-netlify": "^5.0.0", + "@sveltejs/kit": "^2.22.0", + "@sveltejs/vite-plugin-svelte": "^6.0.0", + "mdsvex": "^0.12.3", + "vite": "^7.0.4" + } + }, + "packages/stacks-site/node_modules/@sveltejs/vite-plugin-svelte": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-6.2.1.tgz", + "integrity": "sha512-YZs/OSKOQAQCnJvM/P+F1URotNnYNeU3P2s4oIpzm1uFaqUEqRxUB0g5ejMjEb5Gjb9/PiBI5Ktrq4rUUF8UVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sveltejs/vite-plugin-svelte-inspector": "^5.0.0", + "debug": "^4.4.1", + "deepmerge": "^4.3.1", + "magic-string": "^0.30.17", + "vitefu": "^1.1.1" + }, + "engines": { + "node": "^20.19 || ^22.12 || >=24" + }, + "peerDependencies": { + "svelte": "^5.0.0", + "vite": "^6.3.0 || ^7.0.0" + } + }, + "packages/stacks-site/node_modules/@sveltejs/vite-plugin-svelte-inspector": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-5.0.1.tgz", + "integrity": "sha512-ubWshlMk4bc8mkwWbg6vNvCeT7lGQojE3ijDh3QTR6Zr/R+GXxsGbyH4PExEPpiFmqPhYiVSVmHBjUcVc1JIrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.1" + }, + "engines": { + "node": "^20.19 || ^22.12 || >=24" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^6.0.0-next.0", + "svelte": "^5.0.0", + "vite": "^6.3.0 || ^7.0.0" + } + }, + "packages/stacks-site/node_modules/vite": { + "version": "7.2.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.6.tgz", + "integrity": "sha512-tI2l/nFHC5rLh7+5+o7QjKjSR04ivXDF4jcgV0f/bTQ+OJiITy5S6gaynVsEM+7RqzufMnVbIon6Sr5x1SDYaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, "packages/stacks-svelte": { "name": "@stackoverflow/stacks-svelte", "version": "1.0.0-beta.12", @@ -17586,6 +18892,7 @@ "@floating-ui/core": "^1.7.3", "@stackoverflow/stacks-icons": "^7.0.0-beta.4", "@stackoverflow/stacks-icons-legacy": "npm:@stackoverflow/stacks-icons@^6.6.1", + "@stackoverflow/stacks-svelte": "^1.0.0-beta.12", "svelte-floating-ui": "^1.6.2", "svelte-sonner": "^1.0.5" }, diff --git a/package.json b/package.json index 41f09859d0..dff0ec1555 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "@rollup/plugin-commonjs": "^26.0.1", "@rollup/plugin-replace": "^6.0.3", "@stackoverflow/prettier-config": "^1.0.0", - "@stackoverflow/stacks-icons": "^7.0.0-beta.4", + "@stackoverflow/stacks-icons": "^7.0.0-beta.5", "@stackoverflow/stacks-icons-legacy": "npm:@stackoverflow/stacks-icons@^6.6.1", "@storybook/addon-docs": "^9.1.5", "@storybook/addon-links": "^9.1.3", diff --git a/packages/stacks-site/.gitignore b/packages/stacks-site/.gitignore new file mode 100644 index 0000000000..3b462cb0c4 --- /dev/null +++ b/packages/stacks-site/.gitignore @@ -0,0 +1,23 @@ +node_modules + +# Output +.output +.vercel +.netlify +.wrangler +/.svelte-kit +/build + +# OS +.DS_Store +Thumbs.db + +# Env +.env +.env.* +!.env.example +!.env.test + +# Vite +vite.config.js.timestamp-* +vite.config.ts.timestamp-* diff --git a/packages/stacks-site/.npmrc b/packages/stacks-site/.npmrc new file mode 100644 index 0000000000..b6f27f1359 --- /dev/null +++ b/packages/stacks-site/.npmrc @@ -0,0 +1 @@ +engine-strict=true diff --git a/packages/stacks-site/README.md b/packages/stacks-site/README.md new file mode 100644 index 0000000000..75842c404d --- /dev/null +++ b/packages/stacks-site/README.md @@ -0,0 +1,38 @@ +# sv + +Everything you need to build a Svelte project, powered by [`sv`](https://github.com/sveltejs/cli). + +## Creating a project + +If you're seeing this, you've probably already done this step. Congrats! + +```sh +# create a new project in the current directory +npx sv create + +# create a new project in my-app +npx sv create my-app +``` + +## Developing + +Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: + +```sh +npm run dev + +# or start the server and open the app in a new browser tab +npm run dev -- --open +``` + +## Building + +To create a production version of your app: + +```sh +npm run build +``` + +You can preview the production build with `npm run preview`. + +> To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment. diff --git a/packages/stacks-site/docs/private b/packages/stacks-site/docs/private new file mode 160000 index 0000000000..0334255ed3 --- /dev/null +++ b/packages/stacks-site/docs/private @@ -0,0 +1 @@ +Subproject commit 0334255ed32f98a6ee58dc9b7cb602d1f94aa7b8 diff --git a/packages/stacks-site/docs/public/brand/color/ColorBackgrounds.svelte b/packages/stacks-site/docs/public/brand/color/ColorBackgrounds.svelte new file mode 100644 index 0000000000..2c357aaac3 --- /dev/null +++ b/packages/stacks-site/docs/public/brand/color/ColorBackgrounds.svelte @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Part. + Sum. + Solution. + + + + +
+ {#each backgroundColors as color, index} + selected = index} + extraClasses="flex--item6" + /> + {/each} +
+
+
\ No newline at end of file diff --git a/packages/stacks-site/docs/public/brand/color/ColorBusinessProduct.svelte b/packages/stacks-site/docs/public/brand/color/ColorBusinessProduct.svelte new file mode 100644 index 0000000000..22b442d30c --- /dev/null +++ b/packages/stacks-site/docs/public/brand/color/ColorBusinessProduct.svelte @@ -0,0 +1,31 @@ + + + + +
+ +
+
+ +
+ +
+
+
+ + diff --git a/packages/stacks-site/docs/public/brand/color/ColorCodes.svelte b/packages/stacks-site/docs/public/brand/color/ColorCodes.svelte new file mode 100644 index 0000000000..b2bd275707 --- /dev/null +++ b/packages/stacks-site/docs/public/brand/color/ColorCodes.svelte @@ -0,0 +1,32 @@ + + +
+ {#each colors as color} + + {/each} +
+ + diff --git a/packages/stacks-site/docs/public/brand/color/ColorHeadlines.svelte b/packages/stacks-site/docs/public/brand/color/ColorHeadlines.svelte new file mode 100644 index 0000000000..4f7203949d --- /dev/null +++ b/packages/stacks-site/docs/public/brand/color/ColorHeadlines.svelte @@ -0,0 +1,103 @@ + + + + + + + + + + + + For technologists. + For businesses. + + + + + + For developers. + + + + +
+ {#each themes as theme, index} + + {/each} +
+
+
\ No newline at end of file diff --git a/packages/stacks-site/docs/public/brand/color/ColorHierarchy.svelte b/packages/stacks-site/docs/public/brand/color/ColorHierarchy.svelte new file mode 100644 index 0000000000..18e58375d1 --- /dev/null +++ b/packages/stacks-site/docs/public/brand/color/ColorHierarchy.svelte @@ -0,0 +1,31 @@ + + +
+ {#each colors as color} + + {/each} +
+ + diff --git a/packages/stacks-site/docs/public/brand/color/ColorLabels.svelte b/packages/stacks-site/docs/public/brand/color/ColorLabels.svelte new file mode 100644 index 0000000000..4926365f46 --- /dev/null +++ b/packages/stacks-site/docs/public/brand/color/ColorLabels.svelte @@ -0,0 +1,86 @@ + + + + +
+
+
+ Icon color +
+
+ Square color +
+
+ + {#each themes as theme} +
+
+ + + + + Stack + +
+ + +
+ {/each} +
+
diff --git a/packages/stacks-site/docs/public/brand/color/ColorSwatch.svelte b/packages/stacks-site/docs/public/brand/color/ColorSwatch.svelte new file mode 100644 index 0000000000..b958eaccb9 --- /dev/null +++ b/packages/stacks-site/docs/public/brand/color/ColorSwatch.svelte @@ -0,0 +1,122 @@ + + + + {#if children} + {@render children()} + {:else} + {color.name} + {#if showHex} + {color.hex} + {/if} + {/if} + + + diff --git a/packages/stacks-site/docs/public/brand/color/index.md b/packages/stacks-site/docs/public/brand/color/index.md new file mode 100644 index 0000000000..65a69d7e77 --- /dev/null +++ b/packages/stacks-site/docs/public/brand/color/index.md @@ -0,0 +1,74 @@ +--- +updated: 2025-09-25 +--- + + + +Our color palette sets the visual tone of the brand and ensures consistency across every platform. At its core is our distinct orange, a bold and instantly recognizable signature. This is supported by a balanced palette of primary and secondary colors that bring both vibrancy and sophistication. In this section, you'll find guidance on when and how to use each color, the hierarchy to follow, and important considerations to keep in mind. + +## Color hierarchy + + + +## Color codes + + + +## Use of Stack orange + +Orange is the most distinctive color in our palette, rooted in our original brand hue. It should have a presence across our designs, appearing whenever accessibility and layout allow. We use it with intention and at varying scales, ensuring it remains a consistent and recognizable part of our visual identity. + + + +## Stack color combinations + +When designing with a three-sided graphic stack, follow these guidelines for color selection. + + + +## Background colors + +For our backgrounds, we use neutral tones to offset the more saturated colors in the palette. This ensures that compositions feel balanced and never overwhelming. The only exception is Stack Orange, which we sometimes use in backgrounds as it’s our lead brand color. The selection below shows the colors we reserve specifically for backgrounds. + + + +## Business vs. general palettes + +Business and general audiences have different needs, and our color usage should reflect that. For business, we lead with the full palette to showcase energy and vibrancy. For a general audience, we take a more refined approach, toning down the brighter colors and using a more selective, sophisticated palette. + + + +## Stack Overflow business color usage + +The examples below illustrate how we apply color for Stack Overflow Business. Hierarchy plays a key role to make sure the emphasis is in the right place, and the color balance is right. The more restrained approach adds more sophistication for the Stack Overflow Business audience. + + + +## General color usage + +The examples below show how we apply color for a general audience, such as Stack Overflow Public Platforms. Hierarchy plays a key role to make sure the emphasis is in the right place and the color balance is right. + + + +## Label color guidance + +Throughout our system, we use additional pops of color in labels. The labels should always complement the compositions they sit within. The examples below show the approved color combinations for labels. + + + +## Highlight headline color guidance + +Color also comes through in our highlighted headlines. The guidance below shows the approved color combinations. + + + +## Things to avoid + + diff --git a/packages/stacks-site/docs/public/brand/colors.yaml b/packages/stacks-site/docs/public/brand/colors.yaml new file mode 100644 index 0000000000..760ed8bb4d --- /dev/null +++ b/packages/stacks-site/docs/public/brand/colors.yaml @@ -0,0 +1,100 @@ +# to-do: move to figma? + +colors: + - name: "Stack Orange" + hex: "#FF5E00" + cssVar: "--brand-color-orange" + business: true + background: true + weight: 1 + - name: "Purple" + hex: "#9D9CFF" + cssVar: "--brand-color-purple" + weight: 2 + business: true + - name: "Pink" + hex: "#F39FFF" + cssVar: "--brand-color-pink" + weight: 2 + - name: "Yellow" + hex: "#FFCC00" + cssVar: "--brand-color-yellow" + weight: 2 + business: true + - name: "Blue" + hex: "#5074EF" + cssVar: "--brand-color-blue" + weight: 2 + business: true + - name: "Green" + hex: "#86AF25" + cssVar: "--brand-color-green" + weight: 2 + - name: "Off-Black" + invertLabel: true + hex: "#201C1D" + cssVar: "--brand-color-black" + weight: 2 + business: true + background: true + - name: "Off-White" + hex: "#F0EFEE" + cssVar: "--brand-color-off-white" + weight: 2 + business: true + background: true + - name: "Light Blue" + weight: 2 + hex: "#C6D1E1" + cssVar: "--brand-color-blue-light" + background: true + - name: "Light Brown" + weight: 2 + hex: "#998B7A" + cssVar: "--brand-color-beige" + background: true + - name: "Dark Orange" + invertLabel: true + weight: 3 + hex: "#31070F" + cssVar: "--brand-color-orange-dark" + background: true + - name: "Medium Orange" + invertLabel: true + hex: "#6E1527" + cssVar: "--brand-color-orange-medium" + weight: 3 + business: true + background: true + - name: "Dark Purple" + invertLabel: true + weight: 3 + hex: "#390A91" + cssVar: "--brand-color-purple-dark" + - name: "Dark Pink" + invertLabel: true + hex: "#4D1955" + cssVar: "--brand-color-pink-dark" + weight: 3 + - name: "Dark Green" + invertLabel: true + hex: "#263603" + cssVar: "--brand-color-green-dark" + weight: 3 + - name: "Dark Yellow" + invertLabel: true + weight: 3 + hex: "#423101" + cssVar: "--brand-color-yellow-dark" + - name: "Dark Blue" + invertLabel: true + weight: 3 + hex: "#00165E" + cssVar: "--brand-color-blue-dark" + - name: "Pure White" + hex: "#FFFFFF" + cssVar: "--brand-color-white" + business: true + weight: 3 + hideHierarchy: true + background: true diff --git a/packages/stacks-site/docs/public/brand/logo/LogoColors.svelte b/packages/stacks-site/docs/public/brand/logo/LogoColors.svelte new file mode 100644 index 0000000000..383f29d768 --- /dev/null +++ b/packages/stacks-site/docs/public/brand/logo/LogoColors.svelte @@ -0,0 +1,38 @@ + + + + {#each gallery as item} + +
+
+
+ {/each} +
+ + diff --git a/packages/stacks-site/docs/public/brand/logo/LogoFormatLockups.svelte b/packages/stacks-site/docs/public/brand/logo/LogoFormatLockups.svelte new file mode 100644 index 0000000000..27e4b0995f --- /dev/null +++ b/packages/stacks-site/docs/public/brand/logo/LogoFormatLockups.svelte @@ -0,0 +1,113 @@ + + + +
+
+ + + + + +
+
+
+
+
+
+
+ + + diff --git a/packages/stacks-site/docs/public/brand/logo/LogoSymbol.svelte b/packages/stacks-site/docs/public/brand/logo/LogoSymbol.svelte new file mode 100644 index 0000000000..4737b3d4bb --- /dev/null +++ b/packages/stacks-site/docs/public/brand/logo/LogoSymbol.svelte @@ -0,0 +1,75 @@ + + + + + + +
+ +
+
+ +
+ +
+
+
+ +
+
+ +
+
+
+
+
+ + diff --git a/packages/stacks-site/docs/public/brand/logo/index.md b/packages/stacks-site/docs/public/brand/logo/index.md new file mode 100644 index 0000000000..cfb0256138 --- /dev/null +++ b/packages/stacks-site/docs/public/brand/logo/index.md @@ -0,0 +1,81 @@ +--- +updated: 2025-09-25 +--- + + + +Our logo is the core identifier of Stack Overflow and one of the most visible expressions of our brand. It represents our community and our products. To protect its integrity, it must always be used consistently, with proper clear space, proportions, and placement. + + + +## Primary lockup + +Our logo is the core identifier of Stack Overflow and one of the most visible expressions of our brand. It represents our community and our products. To protect its integrity, it must always be used consistently, with proper clear space, proportions, and placement. + +The Stack Overflow logo + +## Logo architecture + +How the logo is rationalised + +## Color combinations + +Our preference is to use the logo in Off-Black. Where accessibility makes this unsuitable, you can use Off-White instead. + + + +## Logo clearspace + +Space to keep around the logo + +## Page format lockups + +When using this horizontal lockup, follow the guidance below on where to place the logo on a composition. + + + +## Sub-brand lockups + +We have two approaches to sub-brand lockups. The approach you use should be determined by the scale at which the lockup is going to appear. + +How to use for sub-brands + +## Sub-brand large usage + +Use the diagram below to determine how sub-brand lockups, used at a large scale, should be created. + + + +## Sub-brand small usage + +Use the diagram below to determine how sub-brand lockups, used at a large scale, should be created. + + + +## External partnership lockups + +External partnerships use a simpler lockup, where the height of both logos should always align. + + + +## Things to avoid + + + +## Symbol + + + +## Symbol lockup + +Where the Stack Overflow name is already present (e.g. social media profiles) or within the Stack Overflow ecosystem (e.g. product) you can use the symbol. Always follow the clearspace guidance below to make sure you correctly scale and center the symbol in application. + + diff --git a/packages/stacks-site/docs/public/brand/motion.md b/packages/stacks-site/docs/public/brand/motion.md new file mode 100644 index 0000000000..2b539aff8d --- /dev/null +++ b/packages/stacks-site/docs/public/brand/motion.md @@ -0,0 +1,379 @@ +--- +updated: 2025-12-09 +--- + + + +This section offers guidance on the core motion principles of our brand and how to roll them out over a variety of assets. By following this we create a unique and cohesive look across all moving assets that connects to our great brand image. + +## Motion Principles +The three guiding principles of our motion language align to strengthen our brand vision. All motion revolves around these core ideas. + + + +
Click
+ - - - - {% include 'notice-email-head-support.html' %} - diff --git a/packages/stacks-docs/email/base/mso.html b/packages/stacks-docs/email/base/mso.html deleted file mode 100644 index 1f05132865..0000000000 --- a/packages/stacks-docs/email/base/mso.html +++ /dev/null @@ -1,180 +0,0 @@ ---- -layout: page -title: Outlook conditional CSS -description: Windows Outlook 2003 and above use Microsoft Word as a rendering engine, which can lead to some weird rendering issues. Outlook conditional comments allow us to add bits of HTML that are only read by the Word-based versions of Outlook. ---- - - -
- {% header "h2", "Basic syntax" %} -

- We can use MSO (Microsoft Office) tags to add HTML / CSS anywhere in an email template. This code will be ignored by other email clients. Here’s what it looks like: -

-
-{% highlight html %} - -{% endhighlight %} -
-

- Only Outlook will render this table. -

-

- MSO tags can also be used to add styles targeting Outlook (Outlook supports CSS in the <head>): -

-
-{% highlight html %} - -{% endhighlight %} -
-

- It’s the same thing we used to do to target old versions of Internet Explorer, except it targets Microsoft Office. -

-
-
- {% header "h2", "Ghost tables" %} -

- The main way we use MSO tags in our emails is to create “ghost tables” so hybrid emails don’t fall apart in Outlook. Hybrid design uses inline-block, max-width, min-width to stack table columns. Outlook doesn’t support these CSS properties, so we use MSO tags to create “ghost tables” that apply a fixed width just for Outlook. -

-
-{% highlight html %} - -
- Outlook can’t render the CSS in this DIV but other email clients can, - so we wrap this in a ghost table that replicates the DIV’s desktop style. - In this case, a container 340px wide. -
- -{% endhighlight %} -
-

- Without the ghost table above, Outlook would display the <div> at 100% width. Learn how we use ghost tables to make our emails responsive. -

-
-
- {% header "h2", "Targeting specific Outlook versions" %} -

- We usually target all versions of Outlook using <!--[if mso]>. But sometimes when testing emails in Litmus, an email looks ok in one Outlook version but is broken in another. It’s not common but it happens, and there are a few ways to target specific versions of Outlook while omitting others. -

- {% header "h3", "Outlook versions" %} -

- Using Microsoft Office version numbers allows you to target a specific Outlook version. -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Outlook version(s)Code
-
- All Windows Outlook - Most common -
<!--[if mso]> your code <![endif]-->
Outlook 2000<!--[if mso 9]> your code <![endif]-->
Outlook 2002<!--[if mso 10]> your code <![endif]-->
Outlook 2003<!--[if mso 11]> your code <![endif]-->
Outlook 2007<!--[if mso 12]> your code <![endif]-->
Outlook 2010<!--[if mso 14]> your code <![endif]-->
Outlook 2013<!--[if mso 15]> your code <![endif]-->
Outlook 2016<!--[if mso 16]> your code <![endif]-->
-
-
-
- {% header "h3", "Conditional logic" %} -

- Using operators allows you to create conditional expressions for targeting multiple Outlook versions. -

- {% tip %} - Note: We tend to keep our designs simple and don’t use these very often. They’re here if you need them every once in a while, but if you find yourself reaching for these often, please open an issue or ask us about it. - {% endtip %} -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeDescriptionExample
gtgreater than<!--[if gt mso 14]> Everything above Outlook 2010 <![endif]-->
ltless than<!--[if lt mso 14]> Everything below Outlook 2010 <![endif]-->
gtegreater than or equal to<!--[if gte mso 14]> Outlook 2010 and above <![endif]-->
lteless than or equal to<!--[if lte mso 14]> Outlook 2010 and below <![endif]-->
|or<!--[if (mso 12)|(mso 16)]> Outlook 2007 / 2016 only <![endif]-->
!not<!--[if !mso]><!--> All Outlooks will ignore this <!--<![endif]-->
-
-
diff --git a/packages/stacks-docs/email/base/responsiveness.html b/packages/stacks-docs/email/base/responsiveness.html deleted file mode 100644 index 3817d99c7d..0000000000 --- a/packages/stacks-docs/email/base/responsiveness.html +++ /dev/null @@ -1,148 +0,0 @@ ---- -layout: page -title: Responsiveness -description: All email templates use a hybrid approach to reconfigure the layout for different screen sizes in all email clients (regardless of media query support). Once a mobile-friendly baseline is set, media queries can be used to progressively enhance emails further in clients that support them. ---- - -
- {% header "h2", "Stacking columns" %} -

- Media queries are a standard way to optimize layouts for small screen sizes on the web. In the email world, though, there are some “small screen scenarios” where media queries aren’t supported (eg. some Gmail Apps) or only partially supported (eg. some Android device native mail apps). -

- {% header "h3", "Hybrid design" %} -

- Hybrid design uses inline-block, max-width, min-width, and ghost tables stack columns without media queries while imposing a fixed, desktop width for Outlook. -

-
-{% highlight html %} - - - -
- Column 1 -
- -
- Column 2 -
- - - -{% endhighlight %} -
-

- In this example, the two columns will display side-by-side on wide, desktop displays and stack on top of each other in narrow, mobile displays. The promotional email template uses this technique in a few places. -

- {% header "h3", "Media queries" %} -

- Once a hybrid baseline is set, media queries can be used to fine-tune a responsive email layout. Since columns are (hopefully) already stacked, media queries can be used to change the width and text alignment in small viewports. -

- - - - - - - - - - - - - - - - - -
ClassDescription
stack-columnMakes table columns 100% wide and stacks them in source order.
stack-column-centerMakes table columns 100% wide, stacks them in source order, and centers everything inside.
- {% include 'notice-email-head-support.html' %} -
-
- {% header "h2", "Responsive spacing" %} -

- Default desktop padding for email templates is 30px. Utility classes can be used to reduce spacing to 20px or remove padding on smaller viewports. Useful for tightening up email layouts on mobile. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ClassOutput
.sm-p-nonepadding: 0;
.sm-pt-nonepadding-top: 0;
.sm-pb-nonepadding-bottom: 0;
.sm-pr-nonepadding-right: 0;
.sm-pl-nonepadding-left: 0;
.sm-py-nonepadding-top: 0; padding-bottom: 0;
.sm-px-nonepadding-right: 0; padding-left: 0;
.sm-ppadding: 20px;
.sm-ptpadding-top: 20px;
.sm-pbpadding-bottom: 20px;
.sm-prpadding-right: 20px;
.sm-plpadding-left: 20px;
.sm-pypadding-top: 20px; padding-bottom: 20px;
.sm-pxpadding-right: 20px; padding-left: 20px;
.sm-mbmargin-bottom: 20px;
- {% include 'notice-email-head-support.html' %} -
diff --git a/packages/stacks-docs/email/base/snippets/border-radius.html b/packages/stacks-docs/email/base/snippets/border-radius.html deleted file mode 100644 index 4f87810b8b..0000000000 --- a/packages/stacks-docs/email/base/snippets/border-radius.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - diff --git a/packages/stacks-docs/email/base/typography.html b/packages/stacks-docs/email/base/typography.html deleted file mode 100644 index 0af5729335..0000000000 --- a/packages/stacks-docs/email/base/typography.html +++ /dev/null @@ -1,221 +0,0 @@ ---- -layout: page -title: Typography -description: This page provides some common typography patterns for email. ---- -
-

- It’s safe and accessible to use semantic HTML tags like <h>, <p>, and <ul> for text in email just as we do for the web. The main difference in email is that CSS should be written inline to specify intended styles (like the color of an anchor tag) and zero out unintended defaults (like the margin around a <p> tag). -

-
-
- {% header "h2", "Paragraphs" %} -
-{% highlight html %} - -

A lead paragraph with slightly larger text lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras nisi magna, mollis luctus sapien varius, mattis ornare est.

-

A regular paragraph with strong and italic text, consectetur adipiscing elit. Cras nisi magna, mollis luctus sapien varius, mattis ornare est. Sed non tincidunt erat, ut commodo augue.

-

A paragraph with no margin (useful for the last paragraph in a section).

- -{% endhighlight %} -
-

A lead paragraph with slightly larger text lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras nisi magna, mollis luctus sapien varius, mattis ornare est.

-

A regular paragraph with strong and italic text, consectetur adipiscing elit. Cras nisi magna, mollis luctus sapien varius, mattis ornare est. Sed non tincidunt erat, ut commodo augue.

-

A paragraph with no margin (useful for the last paragraph in a section).

-
-
-
-
- {% header "h2", "Headlines" %} -
-{% highlight html %} -

I’m a headline

-

I’m a subheadline

-{% endhighlight %} -
-

I’m a headline

-

I’m a subheadline

-
-
-
-
- {% header "h2", "Lists" %} -
-{% highlight html %} -
    -
  • You get a list item.
  • -
  • And you get a list item!
  • -
  • Everyone gets a list item!
  • -
-
    -
  1. You get a list item.
  2. -
  3. And you get a list item!
  4. -
  5. Everyone gets a list item!
  6. -
-{% endhighlight %} -
-
    -
  • You get a list item.
  • -
  • And you get a list item!
  • -
  • Everyone gets a list item!
  • -
-
    -
  1. You get a list item.
  2. -
  3. And you get a list item!
  4. -
  5. Everyone gets a list item!
  6. -
-
-
-
-
- {% header "h2", "Links" %} -
-{% highlight html %} -Go to the homepage -{% endhighlight %} - -
- {% header "h3", "Links in Markdown" %} -

- If email content is written in Markdown, we can’t write inline CSS into link tags. Left unstyled, links will appear like this. To style links contained in Markdown text, add a class="has-markdown" to any parent tag that might contain a Markdown link. -

-
-{% highlight html %} -

@_s("I’m a text string in markdown.")

-

@_m("I’m a *bold* [text link](https://www.stackoverflow.com) in markdown.")

-{% endhighlight %} -
-

I’m a text string in markdown.

-

I’m a bold text link in markdown.

-
-
- - {% tip %} - Note: Using class="has-markdown" applies styles defined in the <style> tag. Only email clients that support <style> in <head> will render has-markdown links properly. - {% endtip %} - - {% header "h3", "Auto-detected links" %} -

- Some email clients auto-detect certain text strings (like dates, times, and locations) and automatically convert them into hyperlinks. We can’t remove the link, but we can make the link appear like the text around it by negating a few CSS styles. -

-
-{% highlight html %} -

On Thursday we’ll be doing on planned maintenance on our New York server, so the parts of the site might be unavailable.

-

On Thursday we’ll be doing on planned maintenance on our New York server, so the parts of the site might be unavailable.

-{% endhighlight %} -
-

On Thursday we’ll be doing on planned maintenance on our New York server, so the parts of the site might be unavailable.

-

On Thursday we’ll be doing on planned maintenance on our New York server, so the parts of the site might be unavailable.

-
-
- - {% tip %} - Note: Using class="unstyle-auto-detected-links" applies styles defined in the <style> tag. Only email clients that support <style> in <head> will render has-markdown links properly. - {% endtip %} -
-
- {% header "h2", "Code" %} -
-{% highlight html %} - -

-    …
-
- - -Format inline code like this. -{% endhighlight %} -
-
var obj = {};
-obj.categories = pm.variables.get("category_id");
-obj.packages = pm.variables.get("package_id");
-obj.type = "add";
-pm.globals.set("switch_json", JSON.stringify(obj));
-console.log("request body: " + pm.globals.get("switch_json"));
-

Format inline code like this.

-
-
- {% tip %} - Known Issue: in Windows Outlook 2003 - 2019, preformatted code blocks appear like this. - {% endtip %} -
-
- {% header "h2", "Blockquotes" %} -
-{% highlight html %} -
-

Write a function that takes a string consisting of alphabetic characters as input argument and returns True if the string is a palindrome. - … -

-
-{% endhighlight %} -
-
-

Write a function that takes a string consisting of alphabetic characters as input argument and returns True if the string is a palindrome. A palindrome is a string which is the same backward or forward.

-
-
-
- {% tip %} - Known Issue: in Windows Outlook 2003 - 2019, blockquotes appear like this. - {% endtip %} -
-
- {% header "h2", "Preventing text wrapping" %} -

- A non-breaking space (&nbsp;) can be used to prevent a group of words from breaking onto multiple lines. Useful for keeping names together and preventing typographic orphans and widows. -
Inspect the line above to see ☝️ -

-
-{% highlight html %} -

Now with Stack Overflow you can level up.

-

The last sentence shouldn’t produce an orphan.

-

@_m("Also works for text written in$nbsp$markdown.", new { nbsp = " ".AsRawHtml() })

-{% endhighlight %} -
-

Now with Stack Overflow you can level up.

-

The last sentence shouldn’t produce an orphan.

-

Also works for text written in markdown.

-
-
-
-
- {% header "h2", "Web fonts" %} -

- Sometimes we use web fonts in emails to match the aesthetic of a marketing campaign or announcement. Web fonts don’t have great support in email clients, so here’s how we ensure our web font displays in as many email clients as possible: -

-
    -
  1. Include an external stylesheet at the top of the email’s <head> tag. Sites like Google Fonts provide this code.
  2. -
  3. Windows Outlook sometimes chokes on web font references and defaults everything to Times New Roman. To avoid this, wrap the web font reference in a <!--[if !mso]> tag (so Windows Outlook ignores it) and define a fallback font for Windows Outlook inside a <!--[if mso]> tag.
  4. -
  5. Lastly, reference the web font at the beginning of the font stack, followed by a system fallback font for email clients that can’t display (and ignore) the web font.
  6. -

    -
    -{% highlight html %} - - - - - - - - - - -

    -

    - -{% endhighlight %} -
    - -

    I’m a Headline

    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    -
    -
    -
diff --git a/packages/stacks-docs/email/components/buttons.html b/packages/stacks-docs/email/components/buttons.html deleted file mode 100644 index 7076968bc2..0000000000 --- a/packages/stacks-docs/email/components/buttons.html +++ /dev/null @@ -1,162 +0,0 @@ ---- -layout: page -title: Buttons -description: Buttons are the primary way for users to take action from an email. Buttons should have ample click / tap space and describe their actions. Creating a button that displays consistently across email clients requires multiple HTML tags. ---- - - - -
- {% header "h2", "Styles" %} -

- A button’s visual weight should correspond to the importance of the button’s action. The more important the action, the heavier the button’s visual weight. -

- {% header "h3", "Filled" %} -

- A visual style used to highlight the most important actions. To avoid confusing users, don’t use more than one filled button within an email section. -

-
-{% highlight html %} - - - … - - -{% endhighlight %} - -
- {% header "h3", "White" %} -

- A visual style used to highlight the most important actions on a dark background. To avoid confusing users, don’t use more than one white button within an email. -

-
-{% highlight html %} - - - … - - -{% endhighlight %} - -
- {% header "h3", "Outlined" %} -

- All buttons, by default, are secondary buttons. -

-
-{% highlight html %} - - - … - - -{% endhighlight %} - -
- {% tip %} - Note: Using the s-btn class with s-btn__filled, s-btn__white or s-btn__outlined applies :hover progressive enhancements defined in the <style> tag. Only email clients that support <style> in <head> will render the :hover. - {% endtip %} -
-
- {% header "h2", "Sizes" %} - {% header "h3", "Default" %} -

- The default size for email buttons is appropriate for most emails. Useful for emails with one or two main calls-to-action. -

-
-{% highlight html %} - - - … - - - - - - … - - - - - - … - - -{% endhighlight %} -
-
- - - -
-
-
- - {% header "h3", "Small" %} -

- A slightly smaller button size is appropriate for emails with multiple calls-to-action, like a newsletter or an email hero with multiple calls-to-action. -

-
-{% highlight html %} - - - … - - - - - - … - - - - - - … - - -{% endhighlight %} -
-
- - - -
-
-
-
diff --git a/packages/stacks-docs/email/components/footers.html b/packages/stacks-docs/email/components/footers.html deleted file mode 100644 index 0472127b71..0000000000 --- a/packages/stacks-docs/email/components/footers.html +++ /dev/null @@ -1,1145 +0,0 @@ ---- -layout: page -title: Footers -description: Footers are included at the bottom of every email. They typically include ways manage their email subscription preferences and contact the company. ---- - -
- {% header "h2", "Options" %} -

- Email footers have several configurations depending on what type of email is being sent and from where. Transactional emails cannot be unsubscribed from, email subscriptions can be edited, Enterprise sites don’t have their own meta site. -

-

- Depending on the type of email being sent and where it comes from, different footer options can be included or excluded. -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescription / Purpose
“You’re receiving this email because…”It’s good practice to explain why someone received the email whenever possible.
Unsubscribe linkDirectly unsubscribes recipient from a single email or email type.
Edit Email Settings linkLinks to recipient’s email settings.
Edit $name$ linkSome subscription emails can be edited (eg. the parameters for a tag subscription or job alert).
Contact us linkLinks to the contact us page of the appropriate network website. If no network site exists, links to the Stack Overflow contact page.
Privacy linkFulfills a GDPR requirement.
Stack Overflow logoAdds a bit of branding.
Mailing addressAnti-spam laws of most countries require a postal address for the sender.
<3because we care
-
- {% header "h3", "Example" %} -
-{% highlight html %} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- You’re receiving this email because $reason$. -
- Unsubscribe from this email     - Edit email settings     - Contact us     - Privacy -
- - - - - -
- -
Stack Overflow, 110 William Street, 28th Floor, New York, NY 10038
- - - - -
-
<3
-
-
- - - -{% endhighlight %} -
-
- - - - - -
-
-
-
- -
- {% header "h2", "Transactional emails" %} -

- Transactional emails are triggered by a user’s interaction with the site (like account creation, password resets, and account notifications). Since these emails are initiated by the user, transactional emails don’t have an unsubscribe link. -

- {% header "h3", "Transactional with account" %} -

- If a user has an account, we include a link to their email preferences. -

-
-{% highlight html %} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- You’re receiving this email because $reason$. -
- Edit email settings     - Contact us     - Privacy -
- - - - - -
- -
Stack Overflow, 110 William Street, 28th Floor, New York, NY 10038
- - - - -
-
<3
-
-
- - - -{% endhighlight %} -
-
- - - - - -
-
-
- {% header "h3", "Transactional with no account" %} -

- If a user does not have an account, we don’t include a link for email preferences. -

-
-{% highlight html %} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- You’re receiving this email because $reason$. -
- Contact us     - Privacy -
- - - - - -
- -
Stack Overflow, 110 William Street, 28th Floor, New York, NY 10038
- - - - -
-
<3
-
-
- - - -{% endhighlight %} -
-
- - - - - -
-
-
-
- -
- {% header "h2", "Subscription emails" %} -

- Subscription emails are created by a user, usually by entering a number of parameters (like job alerts and tag subscriptions). Since subscriptions can be changed by the owner, subscription emails include an extra link to modify its parameters. -

-
    -
  • If person clicks “unsubscribe”, they are automatically unsubscribed from that single email only.
  • -
  • If person clicks “Edit $name$”, they’re redirected to their respective subscription view.
  • -
  • $Name$ should populate with subscription type (eg. Question Subscriptions).
  • -
- {% header "h3", "Subscription with account" %} -

- If a user has an account, we include a link to their email preferences. -

-
-{% highlight html %} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- You’re receiving this email because $reason$. -
- Unsubscribe from this email     - Edit $name$     - Edit email settings     - Contact us     - Privacy -
- - - - - -
- -
Stack Overflow, 110 William Street, 28th Floor, New York, NY 10038
- - - - -
-
<3
-
-
- - - -{% endhighlight %} -
-
- - - - - -
-
-
- {% header "h3", "Subscription-only" %} -

- If a user does not have an account, we don’t include a link for email preferences. -

-
-{% highlight html %} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- You’re receiving this email because $reason$. -
- Unsubscribe from this email     - Edit $name$     - Edit email settings     - Contact us     - Privacy -
- - - - - -
- -
Stack Overflow, 110 William Street, 28th Floor, New York, NY 10038
- - - - -
-
<3
-
-
- - - -{% endhighlight %} -
-
- - - - - -
-
-
-
- -
- {% header "h2", "Bucketed emails" %} -

- Bucketed emails are not transactional or subscription emails. -

- {% header "h3", "Bucketed with account" %} -

- If person clicks “unsubscribe from emails like this”, they are automatically unsubscribed from that single bucket only. -

-
-{% highlight html %} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- You’re receiving this email because $reason$. -
- Unsubscribe from emails like this     - Edit email settings     - Contact us     - Privacy -
- - - - - -
- -
Stack Overflow, 110 William Street, 28th Floor, New York, NY 10038
- - - - -
-
<3
-
-
- - - -{% endhighlight %} -
-
- - - - - -
-
-
- {% header "h3", "Bucketed with no account" %} -

- If a user does not have an account, we don’t include an unsubscribe link or a link for email preferences. -

-
-{% highlight html %} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- You’re receiving this email because $reason$. -
- Contact us     - Privacy -
- - - - - -
- -
Stack Overflow, 110 William Street, 28th Floor, New York, NY 10038
- - - - -
-
<3
-
-
- - - -{% endhighlight %} -
-
- - - - - -
-
-
-
- -
- {% header "h2", "Branding" %} - {% header "h3", "Default" %} -

- Use default branding for emails that are mapped to an English brand. -

-
-{% highlight html %} - - - - - - - - - - - - - - - - - -
- -
Stack Overflow, 110 William Street, 28th Floor, New York, NY 10038
- - - - -
-
<3
-
-
- - - -{% endhighlight %} -
-
- - - - - -
-
-
- {% header "h3", "Alternate" %} -

- Use alternate branding for emails that are mapped to any brand that is not Stack Overflow English brand (eg. 3D Printing, Stack Overflow en espanol). -

-
-{% highlight html %} - - - - - - - - - - - - - - -
Stack Overflow / Stack Exchange, 110 William Street, 28th Floor, New York, NY 10038
- - - - -
-
<3
-
-
- - - -{% endhighlight %} -
-
- - - - - -
-
-
-
- -
- {% header "h2", "Enterprise emails" %} -

- Enterprise is a bit unique; Enterprise sites don’t send promotional email or have meta sites, so we don’t need links for those in Enterprise emails. We also don’t need a privacy link because we don’t serve the users directly, rather we are serving the business that we sold to, making the privacy policy with regards to GDPR the responsibility of the client, not us. Lastly, some Enterprise installations are behind firewalls or require VPN access, so we remove the Stack Overflow logo to avoid a broken image (eg. if someone checks email on their phone). -

-
-{% highlight html %} - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- You’re receiving this email because $reason$. -
- Edit email settings -
- - - - - -
Stack Overflow, 110 William Street, 28th Floor, New York, NY 10038
- - - - -
-
<3
-
-
- - - -{% endhighlight %} -
-
- - - - - -
-
-
-
diff --git a/packages/stacks-docs/email/components/images.html b/packages/stacks-docs/email/components/images.html deleted file mode 100644 index 7364daa07e..0000000000 --- a/packages/stacks-docs/email/components/images.html +++ /dev/null @@ -1,239 +0,0 @@ ---- -layout: page -title: Images -description: ---- - - -
- {% header "h2", "Foreground images" %} -

- All email clients can display .png, .gif, and .jpg images displayed with the <img> tag. .svg images are not well supported, regardless of how they’re referenced, so avoid using these. -

-

- Most images should be coded responsive by default, meaning they’ll scale down proportionately in small viewports. It’s safest to code all images this way, even if they don’t end up scaling in practice. However if we’re confident that an image will never scale, we can display a non-responsive image using less code. -

- {% header "h3", "Foreground image attributes" %} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeNotes
srcattributeAlways set and use full https:// reference.
widthattributeAlways set to intended desktop width.
heightattributeOptional. Use only for images that won’t scale.
borderattributeAlways set to 0 to avoid blue outlines on image links.
altattributeAlways include but can be left empty if image is ornamental (Eg. alt="").
widthinline CSS[Responsive] Always set to 100% for responsive images. Optional for static images.
max-widthinline CSS[Responsive] Always set to intended desktop width. Optional for static images.
heightinline CSS[Responsive] Always set to auto for responsive images. Optional for static images.
displayinline CSSGenerally good practice to use `display:block;` when possible since it negates a few pixels of unwanted space below images in some clients.
.g-imgclassAdvisable for images larger than ~300px wide. Prevents gmail from displaying an image download icon over images.
- {% header "h3", "Foreground image examples" %} -
-{% highlight html %} -/* Responsive */ -alt_text - -/* Static */ -alt_text -{% endhighlight %} -
- alt_text -
- alt_text -
-
- {% tip %} - Note: Every image that should scale down in small screens should have a width: 100%; max-width: (desktop-width)px; in it's style="" attribute. (desktop-width)px; is the largest size an image should appear in on desktop. This allows images to scale down when their desktop width exceeds the width of its container. - {% endtip %} -
- - -
- {% header "h2", "Background images" %} -

- Background images allow us to place additional HTML content on top of them, one of the few reliable ways to provide layering possibilities in email. A benefit of using background images over foreground images is, when paired with a background color, the HTML content on top of the background image remains accessible even when images are disabled. -

-

- Background images can be complicated to implement in email, as many properties need to be defined once in CSS and again in VML for Windows Outlook and Win10 Mail. -

- {% header "h3", "Background image attributes" %} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeNotes
background-imageinline CSSAlways set and use full https:// reference.
background-positioninline CSSOptional to set the size of the image.
background-sizeinline CSSOptional to set the position of the image.
background-colorinline CSSAlways set to make foreground HTML legible if background image doesn’t load.
widthVML in <v:rect>Always set to full container width. VML doesn’t account for padding, adjust as necessary.
heightVML in <v:rect>Always set to full container height. VML doesn’t account for padding, adjust as necessary.
srcVML in <v:fill>Always set and use full https:// reference.
color (background color)VML in <v:fill>Always set to make foreground HTML legible if background image doesn’t load.
- {% header "h3", "Background image examples" %} -
-{% highlight html %} - - -
- - - - - -
- Foreground HTML content. -
- -
- - -{% endhighlight %} -
- - - - -
-
- - - - - -
- Foreground HTML content. -
- -
-
-
-
- {% tip %} - Note: Windows Outlook and Win10 Mail cannot scale background images, so the image referenced in VML should be prepared @1x. Most other email clients can scale background images defined in CSS, so using @2x images is advisable. - {% endtip %} -
-
- {% header "h2", "How should images be prepared?" %} -

- Email has largely standardized on PNG, JPG, and GIF file formats. Animated GIFs are supported in all email clients, though Windows Outlook and Win10 Mail only display its first frame. -

-

- SVG is not well supported in most web email clients, including Gmail (which accounts for most of our email opens) and are completely blocked in Outlook. This includes base64 encoded images. -

-
    -
  • Foreground images should be saved at @2x since they scale reliably in all major email clients. @2x images display crisply on high-definition displays when scaled down to @1x in code.
  • -
  • Background images should be saved at @1x since they don’t scale reliably in all major email clients.
  • -
-

- Ideally, images should be under ~100KB. Tools like Image Optim, Krackin, and TinyPNG help bring down a file size. Keep in mind that animated GIFs tend to get very large, so it’s a good idea to keep them simple and use them sparingly. -

-

- Images should be hosted within their respective ESP. Upload images in Iterable for Iterable emails, add images in GitHub for StackMail emails, etc. Images should not be referenced using services like Imgur or Dropbox, as they have a greater chance of being marked as spam. -

- {% header "h3", "Animated GIFs" %} -

- Animated GIFs can help explain an interaction or add a bit of delight that isn’t possible with static email designs. However there are a couple things to consider when designing and preparing animated GIFs. -

-
    -
  1. - Support: Every email client displays animated GIFs, but some don't animate them. Windows Outlook shows only the first frame, so it's important that all vital information is included in the first frame of the GIF. -
  2. -
  3. - File size: Animated GIFs are prone to excessive file sizes. The rule of thumb is to try to keep animated GIFs under ~1MB. However, it's OK to include a good-looking animated GIF with a large file size provided the rest of the email is relatively small. -
  4. -
-
diff --git a/packages/stacks-docs/email/components/signatures.html b/packages/stacks-docs/email/components/signatures.html deleted file mode 100644 index 6839bdb490..0000000000 --- a/packages/stacks-docs/email/components/signatures.html +++ /dev/null @@ -1,105 +0,0 @@ ---- -layout: page -title: Signatures -description: Signatures are a useful option when you need to send more formal emails, while also sending helpful information such as our office address or your timezone. ---- - -
- {% header "h2", "Options" %} -

- Depending on your email client you may need to copy and paste either HTML code, or the preview below. -

- {% header "h3", "Basic example" %} -
-{% highlight html %} - - - - - - - - - -
- David Longworth (he/him)
- Brand Design Team Lead -
- Stack Overflow -
-{% endhighlight %} -
-
- - - - - - - - - -
- David Longworth (he/him)
- Brand Design Team Lead -
- Stack Overflow -
-
-
-
- - {% header "h3", "Detailed example" %} -
-{% highlight html %} - - - - - - - - - - - - -
- David Longworth (he/him)
- Brand Design Team Lead -
- Stack Overflow -
- London, UK
- British Summer Time (UTC+1)

- +1 (212) 232-8294 -
-{% endhighlight %} -
-
- - - - - - - - - - - - -
- David Longworth (he/him)
- Brand Design Team Lead
-
- Stack Overflow -
- London, UK
- British Summer Time (UTC+1)

- +1 (212) 232-8294 -
-
-
-
-
diff --git a/packages/stacks-docs/email/components/spacers.html b/packages/stacks-docs/email/components/spacers.html deleted file mode 100644 index f5911680d1..0000000000 --- a/packages/stacks-docs/email/components/spacers.html +++ /dev/null @@ -1,130 +0,0 @@ ---- -layout: page -title: Spacers -description: Spacers are used to add separation between table rows. ---- -
- {% header "h2", "Base" %} -

The best way to control spacing between components in HTML email is to use padding (applied to <td>’s) and margin (applied to <h> tags, <p>’s, <ol>’s, <li>’s, etc.).

-

However padding and margin cannot be used reliably to space out <table>’s or <tr>’s. In these cases, it's best to use a spacer to create separation.

-
-{% highlight html %} - - -   - - -{% endhighlight %} -
-
- (size of the spacer) -
-
-
- {% header "h3", "Syntax" %} -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescription / Purpose
heightSize of the spacer.
aria-hidden="true"Hide the &nbsp; from screen readers.
&nbsp;Some email clients will collapse the spacer’s height if there’s no content.
style="font-size: 0px; line-height: 0px;"Some clients will add additional space inherited from the &nbsp;’s font-size and line-height.
background-color OptionalSpacers are transparent by default but can be any color.
-
- {% header "h2", "Examples" %} - {% header "h3", "Spacer between two table rows" %} -

Create separation between two table rows in the same section.

-
-{% highlight html %} - - … - - - -   - - - - … - -{% endhighlight %} -
-
- alt_text -
-

Are your preferences up to date?

-

Make sure we are recommending the best content for you.

-
-
-
- (spacer) -
-
- alt_text -
-

Are your preferences up to date?

-

Make sure we are recommending the best content for you.

-
-
-
-
- {% header "h3", "Spacer between two sections" %} -

Create separation between two email sections.

-
-{% highlight html %} - - … - - - -   - - - - … - -{% endhighlight %} -
-
- alt_text -
-

Are your preferences up to date?

-

Make sure we are recommending the best content for you.

-
-
-
- (spacer) -
-
- alt_text -
-

Are your preferences up to date?

-

Make sure we are recommending the best content for you.

-
-
-
-
-
diff --git a/packages/stacks-docs/email/components/tags.html b/packages/stacks-docs/email/components/tags.html deleted file mode 100644 index fbb432114c..0000000000 --- a/packages/stacks-docs/email/components/tags.html +++ /dev/null @@ -1,88 +0,0 @@ ---- -layout: page -title: Tags -description: Tags are interface elements that allow users to organize and discover related information throughout Stack Overflow. ---- - - - -
-

- Questions, jobs, and candidates can be tagged with up to 5 tags. Individual tags should not break onto multiple lines, though a list of tags can. -

-
-
- {% header "h2", "Default" %} -

- The default style of tags on Stack Overflow. -

-
-{% highlight html %} - - tag-name - meta-topic - status-completed - -{% endhighlight %} - -
- {% tip %} - Note: Using the s-tag class applies :hover progressive enhancements defined in the <style> tag. Only email clients that support <style> in <head> will render the :hover. s-tag should be used on default powder blue tags only. - {% endtip %} - {% header "h2", "Themed" %} -

- Some areas of the site can be themed by the community by setting a theme color. This theme color can be used to change the text and background color of tags in that community. -

-
-{% highlight html %} - - tag-name - -{% endhighlight %} - -
-

- Themed tags use a variable theme color and CSS opacity. However not all email clients support opacity, so here’s how we work around those limitations: -

-

- For email clients that DON’T support opacity (mainly Windows Outlook and Yahoo), the background (both border-color and background) is defined as a solid gray color #EFF0F1. Email clients that don’t support opacity displayed themed tags with this gray background: -

-
- tag-name -

How themed tags appear in email clients that DON’T support opacity.

-
-

- For email clients that DO support opacity, we define the background again by using the theme color at 15% opacity (#2b8a3e15). The border-color uses the theme color at 1% opacity (#2b8a3e01) to avoid a perceivable border caused by two overlapping color at 15% and prevent email clients from collapsing a transparent border. -

-
- tag-name -

How themed tags appear in email clients that DO support opacity.

-
-
diff --git a/packages/stacks-docs/email/components/team-identification.html b/packages/stacks-docs/email/components/team-identification.html deleted file mode 100644 index 5f64c44ae4..0000000000 --- a/packages/stacks-docs/email/components/team-identification.html +++ /dev/null @@ -1,59 +0,0 @@ ---- -layout: page -title: Team identification -description: Emails sent from a Team on Stack Overflow for Teams should be clearly labeled. ---- -
-

Team icon and name should be in a prominent, noticeable location in the email. The icon color should match the Team’s theme color as defined in their display settings (eg. https://stackoverflow.com/c/team-name/admin/settings/theme) on Stack Overflow or Stack Overflow for Enterprise.

-

If space is tight, an icon-only version can be used.

- {% tip %} - Note: An email should only contain content from one Team. A Team’s content should never appear mixed alongside with content from another Team or public content in a single email. - {% endtip %} - {% header "h2", "Example" %} -
-{% highlight html %} - - - - - -
- - - - -
- T -
-
- Team Name -
-{% endhighlight %} -
- - - - - -
- - - - -
- S -
-
- SO for Teams Name -
-
- - - - -
- S -
-
-
-
diff --git a/packages/stacks-docs/email/guidelines/design-best-practices.html b/packages/stacks-docs/email/guidelines/design-best-practices.html deleted file mode 100644 index aad63855db..0000000000 --- a/packages/stacks-docs/email/guidelines/design-best-practices.html +++ /dev/null @@ -1,109 +0,0 @@ ---- -layout: page -title: Design best practices -description: Emails don’t need to look the same in every email client, but there are some best practices and guidelines to keep in mind to make sure they are consistently designed, render properly in email clients, and are as accessible as possible. ---- -
- {% header "h2", "General rules and principles" %} -

- Given Stack Overflow’s reach, we strive to support email clients with low levels of HTML & CSS support (namely Microsoft Outlook, a few versions of Gmail, and a handful of mostly non-US clients). Less than 1% of a mailing list can still mean a few thousand users, so it’s safest to code emails like it’s 1999. -

-
    -
  • CSS2 instead of CSS3
  • -
  • Tables instead of Divs
  • -
  • PNGs instead of SVGs
  • -
  • Inline CSS instead of embedded styles or stylesheets
  • -
  • HTML text instead of images containing text
  • -
-

- Can I Email? and Campaign Monitor’s guide to CSS are good references for HTML & CSS support in email.

-

- - {% header "h3", "HTML and CSS" %} -
    -
  1. - Use <table border="0" cellpadding="0" cellspacing="0" role="presentation"> when creating new tables. - This negates any unwanted spacing and borders and tells screen readers to skip over the table’s tags and move straight into the content. -
  2. -
  3. - When in doubt, nest another table. - For finer control of your HTML, try nesting tables when building emails. -
  4. -
  5. - Use padding for spacing in table cells. - Margins aren’t fully supported on tables and container elements. -
  6. -
  7. - Use margin for typography. - Margins are fully supported for headline, paragraph, and list tags. -
  8. -
  9. - HTML Attributes - Most styling is done via CSS. But because some email clients use antiquated rendering engines, they tend to better understand attributes like align, valign, height, and width. -
  10. -
  11. - Use align for layout instead of float, d-flex, or flexbox - Floats aren’t supported in Outlook and the others don’t have good support in general. -
  12. -
  13. - Define color as #ffffff instead of #fff or rgb(1,2,3). - Six-digit hex is supported in inline CSS as well as HTML attributes like bgcolor that are still supported in email. -
  14. -
  15. - Don’t forget about preview text. - We can specify the text that appears beneath subject lines in many email clients. If preview text is not included, this space will be populated by the email’s content. -
  16. -
- {% header "h3", "Images" %} -
    -
  1. - Save images as PNG, GIF, or JPG instead of SVG. - SVG has almost no support in email, no matter how it’s referenced (inline, Base64, .svg). -
  2. -
  3. - Save images as @2x and scale them down using HTML attributes. - Since SVG isn’t supported, a 20x20 raster image coded like <img src="40x40-image.png" height="20" width="20"> displays crisply on high-definition screens. -
  4. -
- {% header "h3", "Accessibility" %} -
    -
  1. - Include role="presentation" on all tables used for layout. - This prevents screen readers from reading aloud the structure of each table cell. -
  2. -
  3. - Use HTML1 semantic tags whenever possible. - Tags like <p> and <h> allow screen readers to quickly jump from section to section. Tags like <strong> and <em> give text more importance. -
  4. -
  5. - Include an alt attribute on every image. - Be descriptive and use alt to help readers “see” the email if images aren’t displayed. Use an empty alt="" for images a screen reader should skip (eg. decorative images). Screenreaders will dictate the filename of images without an alt attribute (eg. "icon dash checkmark dot png"). More on alt text. -
  6. -
  7. - Avoid “Click Here” or “Learn More” link copy. - It helps us avoid spam filters and gives context about the link to folks using screen readers or dictation software. We have some copy guidelines for buttons and links. -
  8. -
  9. - Create a plain text version of every email. - It helps us avoid spam filters, some email clients don’t support HTML, and some people just prefer plain text. They also respond better to things like changing font size, family, and color, and work well with screen magnifiers. We don’t have many rules or guidelines for formatting plain text emails, though they typically look something like this. Our email service providers have tools to convert HTML email to plain text. -
  10. -
-
-
- {% header "h2", "Testing" %} -

- Tools to ensure emails look as they should when they’re sent. -

-
-
-

- Litmus allows us to preview screenshots of our emails across 90+ email clients on multiple devices. Builder and Checklist are particularly handy for troubleshooting bugs and circulating email code. -

-
-
-

- Papercut allows us to test emails from our code base. Good for making sure templates are built properly, personalized data populates, and email triggers work. -

-
-
-
diff --git a/packages/stacks-docs/email/guidelines/faq.html b/packages/stacks-docs/email/guidelines/faq.html deleted file mode 100644 index 552141f144..0000000000 --- a/packages/stacks-docs/email/guidelines/faq.html +++ /dev/null @@ -1,159 +0,0 @@ ---- -layout: page -title: Frequently asked questions ---- -
- {% header "h2", "Why do we have to write CSS inline?" %} -

- It’s still the safest way to ensure CSS styles are applied in email clients. Referencing external stylesheets isn’t well-supported in email. Embedded CSS in a <style> tag does have decent support, and there are a few holdouts like a few Gmail clients and a smattering of mostly non-US mobile clients. Given Stack Overflow’s volume and reach, we choose to support as many email clients as we can, even ones that don’t support the <style> tag. So we opt for writing CSS inline, which is supported everywhere. -

-
- -
- {% header "h2", "If CSS is inline, why do we need a style tag?" %} -

- Inline CSS is a sure-fire way to style an email’s layout at a granular level. For the same reason it’s done on the web, adding a CSS reset to an email’s <head> helps to normalize how the code gets rendered in email clients that support the <style> tag. -

-

- Each template contains a breakdown, element by element, of what each reset style is actually doing. -

-
- -
- {% header "h2", "Can we use a CSS inliner?" %} -

- CSS inliners promise to take CSS written in the <head> and automatically move CSS inline in the appropriate locations in the <body>. However we recommend against using a CSS inliners with these templates. Here’s why: -

-
    -
  • These templates should not require a dependency to author CSS.
  • -
  • The placement of the templates CSS is already optimized. The CSS in the <head> is meant only for email clients that parse CSS in this location. It doesn’t need to be inlined.
  • -
  • There are some CSS selectors like :hover that throw errors in some CSS inliners.
  • -
  • Inlining leads to code bloat. Not only does this impact download speeds, but some email clients like Gmail and iOS Outlook truncate messages after they exceed a certain file size.
  • -
-
- -
- {% header "h2", "How does CSS inheritance work in email?" %} -

- Various email clients handle CSS inheritance differently from one another, so it’s best to place inline CSS on the HTML tag close to the content you wish to style instead of relying on the cascade. -

-

- {% icon "Checkmark", "mr4" %} Do -

-
-{% highlight html %} - - - - -
- Arial text. -
-{% endhighlight %} -
- -

- {% icon "Clear", "mr4" %} Don’t -

-
-{% highlight html %} - - - - -
- May not be Arial text. -
-{% endhighlight %} -
-
- -
- {% header "h2", "How do margin and padding work in email?" %} -

- Use margin block-level typography tags like <h>, <p>, <ul>, and <li>... and use padding on <td>s. -

-

- Outlook only honors margins on typography tags, and only honors padding on <td> tags. Its interpretation of spacing on other tags like <table>, <div>, and <img> tags is sketchy, so it’s best to avoid spacing with those. -

-

- {% icon "Checkmark", "mr4" %} Do -

-
-{% highlight html %} - -

- Paragraph -

- -{% endhighlight %} -
- -

- {% icon "Clear", "mr4" %} Don’t -

-
-{% highlight html %} - -

- Paragraph -

- -{% endhighlight %} -
-
- -
- {% header "h2", "What is the best <doctype> for email?" %} -

- Use the HTML5 doctype <!doctype html>. It’s the shortest and easiest to remember, and it’s enough to trigger standards mode on supported clients. This article goes into more detail. There’s no need to close <img> tags with trailing / (XHTML style). -

-
- -
- {% header "h2", "What is preview text?" %} -

- Preview text is a snippet of copy pulled in from the body of your email and typically displayed underneath the sender name and subject line in a subscriber’s inbox. It’s used to increase open rates, as users see an email in their inbox before opening it. -

-

- Diagram of email subject line, sender, and preview text in mobile inbox -

-

- Preview text is optional. If preview text is short or omitted, email clients will fill the space with text from the email body (including alt attributes). You can avoid unwanted text coming in from your email’s body by using this hack. -

- - {% tip %} - Note: Iterable inserts its own preview text, so this part of the Stacks template can be removed for templates prepared for Iterable. - {% endtip %} -
- -
- {% header "h2", "How wide should an email be?" %} -

- Our default email templates are 680px wide. Our hybrid math, the code that makes emails responsive without media queries, is built on that number. -

-

- This is more a guideline than a rule. If the situation calls for it, an email can have any width. Examples might be... -

-
    -
  • One-off emails with unique layouts (like a major product update).
  • -
  • Single-column emails that don’t need to stack on small screens (like our Code of Conduct email).
  • -
-
- -
- {% header "h2", "What is conversation threading?" %} -

- When creating emails, Gmail may attempt to highlight portions of the email body that it thinks are important parts of a previous conversation thread. It does this by applying an .im class to portions of the email, which makes text purple. -

-

- To defend against this unwanted styling, our templates include a CSS reset in the <head>, though this will only be applied in email clients that support CSS styles in the <head>. -

-
- -
- {% header "h2", "When should I deviate from these guidelines?" %} -

- The template in this repo is not the only way to design HTML emails at Stack Overflow. It’s possible to deviate and create a custom design with new components. In fact, we’d encourage it for major announcements, big product updates, and anything that requires a more eye-catching email UX! Really Good Emails and Dribbble are good sources of design inspiration. -

-
diff --git a/packages/stacks-docs/email/guidelines/getting-started.html b/packages/stacks-docs/email/guidelines/getting-started.html deleted file mode 100644 index 9392e9a637..0000000000 --- a/packages/stacks-docs/email/guidelines/getting-started.html +++ /dev/null @@ -1,252 +0,0 @@ ---- -layout: page -title: Email design at Stack Overflow -description: An email design system that helps us work together to create consistently-designed, properly-rendered email for all Stack Overflow users. Intended for anyone who works with email at Stack Overflow. -hide-menu: true ---- -
-
-
-

Templates

-

Starting points for creating new emails.

-
-
- -
- -
-
-

Customizing email

-

Design and code guidelines for how we create and customize emails.

-
-
-
-
- -
-
-

Base

-

Design patterns for basic things like typography, hyperlinks, responsiveness, Outlook conditional CSS, and more.

-
-
-
-
- {% spot "Puzzle" %} -
-
-

Components

-

Design patterns for more complex things like buttons, images, tags, responsive columns, and more.

-
- -
-
- -
-
-

Knowledge and resources

-
-
-
-
-

Design best practices

-

Emails don’t need to look the same in every email client, but there are some things to keep in mind when working on emails.

-

View design best practices

-
-
-

FAQ

-

We’ve answered a few common questions, like:

- -

View all FAQs

-
-
-
-
-

Email client breakdown

-

Make sure your emails render well in these clients. We use Litmus and a few other tools.

-
-
-
-
-
- -
-
- Gmail -
-
-
- 73% -
-
-
-
-
-
-
-
- -
-
- Yahoo -
-
-
- 8% -
-
-
-
-
-
-
-
- -
-
- Apple Mail -
-
-
- 6% -
-
-
-
-
-
-
-
- -
-
- Microsoft Outlook -
-
-
- 5% -
-
-
-
-
-
-
-
- -
-
- iPhone -
-
-
- 5% -
-
-
-
-
-
-
-
- -
-
- Windows Live Mail -
-
-
- 1% -
-
-
-
-
-
-
-
- -
-
- iPad -
-
-
- < 1% -
-
-
-
-
-
-
-
- -
-
- Samsung Mail -
-
-
- < 1% -
-
-
-
-
-
-
-
- -
-
- Android Mail -
-
-
- < 1% -
-
-
-
-
-
-
-
- -
-
- Mail.Ru -
-
-
- < 1% -
-
-
-
- -
-
-
diff --git a/packages/stacks-docs/email/patterns/columns.html b/packages/stacks-docs/email/patterns/columns.html deleted file mode 100644 index 5bf9ef45fd..0000000000 --- a/packages/stacks-docs/email/patterns/columns.html +++ /dev/null @@ -1,303 +0,0 @@ ---- -layout: page -title: Multiple columns -description: A few layout ideas to reconfigure columns for different screen sizes in email clients. ---- -
-

- Reading on small displays is easier when done in a top-to-bottom fashion. Using hybrid design and media queries, we can switch multi-column layouts to a single-column one. -

- {% header "h2", "Two even columns" %} -
-{% highlight html %} - - -
- -
- - - - -
- … -
-
- -
- - - - -
- … -
-
- -
- - -{% endhighlight %} -
- -
- -
-
-
-
-
- {% header "h2", "Two uneven columns" %} - {% header "h3", "Default" %} -
-{% highlight html %} - - -
- -
- - - - -
- alt_text -
-
- -
- - - - -
- … -
-
- -
- - -{% endhighlight %} -
- -
- -
-
-
-
-
- {% header "h3", "Reverse stacking" %} -

- By default, columns are arranged based on source order on both desktop and mobile displays. (Eg. the first (left) desktop column will stack on top of the second (right) desktop column. Using the dir attribute, we can swap the order of columns on desktop without changing the source order. Useful when you want an image in the second (right) column on desktop, but on the first (top) row when stacked on mobile. -

-
-{% highlight html %} - - -
- -
- - - - -
- alt_text -
-
- -
- - - - -
- … -
-
- -
- - -{% endhighlight %} -
- -
- -
-
-
- {% tip %} - Note: If you add a dir="rtl" to a parent container, it will cascade down into children containers. To prevent text from reading right-to-left, add dir="ltr" to children containers. - {% endtip %} -
-
- {% header "h2", "Three even columns" %} -
-{% highlight html %} - - -
- -
- - - - -
- … -
-
- -
- - - - -
- … -
-
- -
- - - - -
- … -
-
- -
- - -{% endhighlight %} -
- -
- -
-
-
-
diff --git a/packages/stacks-docs/email/patterns/snippets/three-col-even.html b/packages/stacks-docs/email/patterns/snippets/three-col-even.html deleted file mode 100644 index 762dee696b..0000000000 --- a/packages/stacks-docs/email/patterns/snippets/three-col-even.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/packages/stacks-docs/email/patterns/snippets/two-col-even.html b/packages/stacks-docs/email/patterns/snippets/two-col-even.html deleted file mode 100644 index 9b0fd829c3..0000000000 --- a/packages/stacks-docs/email/patterns/snippets/two-col-even.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/packages/stacks-docs/email/patterns/snippets/two-col-uneven-reverse.html b/packages/stacks-docs/email/patterns/snippets/two-col-uneven-reverse.html deleted file mode 100644 index af42849706..0000000000 --- a/packages/stacks-docs/email/patterns/snippets/two-col-uneven-reverse.html +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/packages/stacks-docs/email/patterns/snippets/two-col-uneven.html b/packages/stacks-docs/email/patterns/snippets/two-col-uneven.html deleted file mode 100644 index 6cd62e2a80..0000000000 --- a/packages/stacks-docs/email/patterns/snippets/two-col-uneven.html +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/packages/stacks-docs/email/templates/code/Logo@2x.png b/packages/stacks-docs/email/templates/code/Logo@2x.png deleted file mode 100644 index d12859d7239bf5d6f875f1f758663fec5efaad07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2363 zcmYk7c|4SB8^;He#yXZPjip)9Bw15JGnN`l6GOJdBoSpV$~H3?lOq|FqikgfW0~yA zp;YFOtt?TN5rydxG2W5F`_y^=c<;~kxu56y-QVkXUC;B+o#H?|DJ2dQ2Z2CRHUujY z2qc6C-U$#9V87&d-3|~m9PFK~fpnP)=TkAORMZ+3&Hukxr=o!X#5F34PeuL4(Er0I z=x>x?M{qbCg~IS@C^%dTiPiuDg~lLJzjq)-X#hMDqX}RLlm=h|EF=npL~8;hAfnM) zz$xH>LTO+y7&r!l0`y;$2C$HT)vpvV#9*;l1R4VbAOclD2>=640Sf>I3<3Xt;eQ#x z1n7yxVu4zK(bNPwqJeqPXdRS}&My+JxkmftjQBk^p#0U^DxkvGfq~H)T3T9w55NFb zfWKd!paA$&K37RZClFlMVR<=y=NX%VV{&B%$n4Nistnm1zC(G&ZKqB>2$kg)Ix<7I z;kb}O2VGsZgSXJYGPzLbS^I5#fgS=!4twzR{6M;+tWW`7D6~*WhL-SI<@!oCfIz!_Y^?Ck*M$~GdPs@7dpO@B%0pXn8pJJ%-8`1tcO*PWC;pf?e7<92 z%jI#eaTW!#jR1kj>3+}WIR5v+w3|s_CuBt@SpKjN1}q<3`Y4A(oB9K87cq7+dv1wY zs#i60+(9@g3+)HufqOXx3Ew%m4_egfdw*)^WCHT6U*-nlI zceVF-J$F#eXKEA_^M)@bXQ|{N-AGlEvbp$>4 zP$ZLchKijv!+RlueTY8fEHI3X&M=OokROhLK8-10};w;WaaCO(!P7tCf zNGXnK4 zF;h3{i`FDf;x{*Ii|5J@v?9C3QUeKw9X0bd%VtW0>{}4Xi`{ZbM~VXNzRkx#qhD8h z6s;D3p^r780*FaD&8P_-#|+Pho97MRU}F22$b1#joIgh8na`)?+UBak_JBV#6=7(-^-CZ%>Fhr%BIE9(&FCC z;Zz>6E@NA`B2BMYhoed$y&baeguYL>FBPCW{{ERB>!P=C0Nm71dea=kkWtFd^B@dHCHlL&o;J{CfWc93UI|J=v@1m;y92V^j6ULg;t5G8 zxkY^&MQx{V(@F6xi&7?-o0MU*Z-RZzs|q0&OHU*vfS1Qz&1X&RFWo~S?mDoz$GCVmjQ?d5#4nkws<7FY9FANck(Rp{2<)Rftv4l^Dn*wmV@ zb1`bgIZeU*j)2b-{lS|t3OJ1vt<4{b5SF3IhBMBnQ1

;dtl;MFG>)mz-pBve7-{ zxKc70yQM41IGbQHTu-*Fko3R&567_X{A%=t;tRb)hU3PxTGuC0T%wE~g%m=+Hmlk?H3_H!ng^(C`qv;4N1L1zV6uNH%O+H3psTD{gL>AD;^m^h&IS7RY`ByhhZp`$tk zV{^)@YG(IWeJ)*>0|yfa`c3f0j2ixX&e>ZkGfc*wD6gwKR)x87mjj0*2l`F$#*Q7^ z#`M(lAbk66#tLzy*=8&a1Vq27xOQD`#O1)Zm;?PLc+}^T{AnL@rvE&l|I;I)_MQZo zn{+vFSaG0F1g~_}s_e2r?XRRgr*g2kAom&0_@7i5?7f@Hs_On-g}HH;1BVj_dM$V# ze)wT3YmK}pO!NNoK+V$Ct5>HdGB7jU^9!h)?@D-7K#eCWSFb)s!raj1z~RJ!UJKsV z?VmpehD|4?3Bk_W*BYrUtE(HKGBGD7r$zJd^BLno2?y>`Mr-652%#=vZs>C0aN$6& z1h1y1=4hM~%y2MEh)Jx?TvryTo2j!6L6t{Dr2$61>Y-wp_^?V4LE#P9vpsN|@AH>-zG}APn3IyI57Kgbp zmjj132W)}pi*A-y)!Ya}Zy{(o>^2DHb8xWym~1_&r=q52f*BF7!_G^S^ zAjCPl`?wr9v^mhHf=8?>U0L@7W|&LiYRPi2j`IzkG|%k9oSe@HUKXhSxiHxyDh`Bh zUP*!Pzg5_w7^e#aVNq+T=3YMJb-#an{F1?;*x_FGDG=C{8DV=*5~g9zsp0}(1uf9f zq;yYDE56XAGz=Md~>ue(%TT|KJJ z;7@>1foiS{88l$P#BkFzsw)E3maq-VNckD;y^oZB>Ns3qY@H1% zz`lr*4N2#Q$<7)3g1$?mZ#hs~TYF?%gs+Fd6{Tp-NIMhMbtIFs|M z`A`SKC565#HI3g0xS{4jc;}T@)jm5YBV#ifaT9jOGM1{J0td@V70-@WmrmSGrGWtG)$z~DU_X`6Pj z-}j)dY1nCalfGtb6=q&A6OXvr|nuVU<3gMcW*nPlH1^jvJW?RYvH4Dd#9KM)TM;ws9R$jek znrVcW!=du8b~(-(7@PFfp}8+<UnDi|EC8!1hG|Fj*l3>RF(!Yq?4lE(JgiC#pg9lLiojWG0ZmTsi&_WP&o zN+d^LPe@Nshp#63pzjg%z1=aFir3L+P1Jr9HOWVtc&v^d1(h{5Q;dk1i}Ud_v47bE z>L3EU4V65Ym67rY4NUB&%kw0(*g>~=wSiOp{_lR}DAR*Pd7y3@96l2mXJa7HO$fK@ zT>q#rKWDuX} zBBzlomn@{oUmmEXd#f|hmTWkVf=uxD`JnU_#givD$};3Q2!>27IE-l??}Xy~oWILF z8IludU#oEm7IzJ--C0tQ`?AbaLwYlWwHdc#4>;dx6Y&P{Vp$4Lxl>MPm;?8sjkn11 z;QvyX0vF1(4C%TbT=$me*@AJtZ%9_gF!Cf)8gG`IA(%NAaxpDF?wFXIt>qfOzhq{f z&0oS#^gfb9ErolFLL$5Xe8Svesf0%w5yous;H>mp8XALJ)&2lp2HZBn8guN3b7?WB zV}_8q#}-J;vktwQSoBZCqW>E%#Az7Q0Yrx$(ESv_qKp)6VQy}&MGIQn3gG;}LWttr z2~YcPWST+}D16RjH}D2gnsa@2;uw+h5q^-5C_nZX1Jk|PIL~fKE-VtQi?Gn=d!wWv z|7<;lpGZ15&@IL|iouhK!M?YtxosOdv_KDXFK)V&ps5dPDg5*U6}s~3)!)Tნ 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 diff --git a/packages/stacks-docs/email/templates/code/illo-128-1.png b/packages/stacks-docs/email/templates/code/illo-128-1.png deleted file mode 100644 index f4d5dafbb8848911db2eda294dc2da87b4d6b669..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6553 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 diff --git a/packages/stacks-docs/email/templates/code/illo-128-2.png b/packages/stacks-docs/email/templates/code/illo-128-2.png deleted file mode 100644 index 38ef63769cbb17f97c1ba9c9e630fef8b0509941..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6812 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 bo*=(@&oOCgay#+pU+!fs1I_R1*1`V+@&|WA diff --git a/packages/stacks-docs/email/templates/code/illo-64-1.png b/packages/stacks-docs/email/templates/code/illo-64-1.png deleted file mode 100644 index 8964549a5a7f79db9f2f4a355a44bf0a7cd5e0e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4103 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 ah_9eYA4KC}9sWWCQc=`U`2N%)@V@|Jetzlz diff --git a/packages/stacks-docs/email/templates/code/illo-scene-1.png b/packages/stacks-docs/email/templates/code/illo-scene-1.png deleted file mode 100644 index 67a60bd853bd8713c037b1f4ae9077942f9540ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31077 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 diff --git a/packages/stacks-docs/email/templates/code/promotional.html b/packages/stacks-docs/email/templates/code/promotional.html deleted file mode 100644 index aa766f556b..0000000000 --- a/packages/stacks-docs/email/templates/code/promotional.html +++ /dev/null @@ -1,533 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - -

- - - -
- (Optional) This text will appear in the inbox preview, but not the email body. It can be used to supplement the email subject line or even summarize the email's contents. Extended text preheaders (~490 characters) seems like a better UX for anyone using a screenreader or voice-command apps like Siri to dictate the contents of an email. If this text is not included, email clients will automatically populate it using the text (including image alt text) at the start of the email's body. -
- - - - -
- - \ No newline at end of file diff --git a/packages/stacks-docs/email/templates/code/transactional-long.html b/packages/stacks-docs/email/templates/code/transactional-long.html deleted file mode 100644 index 7ec2aed4f4..0000000000 --- a/packages/stacks-docs/email/templates/code/transactional-long.html +++ /dev/null @@ -1,573 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- (Optional) This text will appear in the inbox preview, but not the email body. It can be used to supplement the email subject line or even summarize the email's contents. Extended text preheaders (~490 characters) seems like a better UX for anyone using a screenreader or voice-command apps like Siri to dictate the contents of an email. If this text is not included, email clients will automatically populate it using the text (including image alt text) at the start of the email's body. -
- - - - -
- - \ No newline at end of file diff --git a/packages/stacks-docs/email/templates/code/transactional-short.html b/packages/stacks-docs/email/templates/code/transactional-short.html deleted file mode 100644 index 0dbdc8d28d..0000000000 --- a/packages/stacks-docs/email/templates/code/transactional-short.html +++ /dev/null @@ -1,438 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- (Optional) This text will appear in the inbox preview, but not the email body. It can be used to supplement the email subject line or even summarize the email's contents. Extended text preheaders (~490 characters) seems like a better UX for anyone using a screenreader or voice-command apps like Siri to dictate the contents of an email. If this text is not included, email clients will automatically populate it using the text (including image alt text) at the start of the email's body. -
- - - - -
- - \ No newline at end of file diff --git a/packages/stacks-docs/email/templates/examples/10th.html b/packages/stacks-docs/email/templates/examples/10th.html deleted file mode 100644 index 715a46d0f3..0000000000 --- a/packages/stacks-docs/email/templates/examples/10th.html +++ /dev/null @@ -1,408 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
- - \ No newline at end of file diff --git a/packages/stacks-docs/email/templates/examples/10th.png b/packages/stacks-docs/email/templates/examples/10th.png deleted file mode 100644 index 07e5e36832290fed7b1c4a41a4a90aa7e5508626..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35529 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

*MGt`YE*9+Nw;{KS5f8NfPl93aH(n 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- - - - - - -
- - \ No newline at end of file diff --git a/packages/stacks-docs/email/templates/examples/business.png b/packages/stacks-docs/email/templates/examples/business.png deleted file mode 100644 index 81602ded63e7c650a1ffe4592e36ce3bfdab081d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95298 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 Q*Z=?k07*qoM6N<$f{h?5q5uE@ diff --git a/packages/stacks-docs/email/templates/examples/coc.html b/packages/stacks-docs/email/templates/examples/coc.html deleted file mode 100644 index 154265fa69..0000000000 --- a/packages/stacks-docs/email/templates/examples/coc.html +++ /dev/null @@ -1,387 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- - - - -
- - \ No newline at end of file diff --git a/packages/stacks-docs/email/templates/examples/coc.png b/packages/stacks-docs/email/templates/examples/coc.png deleted file mode 100644 index f5d9c0f7c95a26e5c77b1feff0f4f3e1a4aa84e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35876 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 - - - - - - - - - - - - - - - - - - - - - -
- - - -
- - - \ No newline at end of file diff --git a/packages/stacks-docs/email/templates/examples/integrations.png b/packages/stacks-docs/email/templates/examples/integrations.png deleted file mode 100644 index eb1e4c99faf305ba2fadcea4a9e4aca2dc1ca11b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64855 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 diff --git a/packages/stacks-docs/email/templates/examples/teams.html b/packages/stacks-docs/email/templates/examples/teams.html deleted file mode 100644 index 32ab3edda2..0000000000 --- a/packages/stacks-docs/email/templates/examples/teams.html +++ /dev/null @@ -1,426 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
- - \ No newline at end of file diff --git a/packages/stacks-docs/email/templates/examples/teams.png b/packages/stacks-docs/email/templates/examples/teams.png deleted file mode 100644 index f2e3b6ea7fd3d5afad698f0838c39fd153752e51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35211 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 -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
{% icon "Checkmark" %} Good For:{% icon "Clear" %} Not So Good For:
Complex transactions that include multiple messages or lists, such as:Simple transactions that include a short message or major announcements, such as:
Your answer was acceptedAccount deactivated
You’ve been added to a TeamNew message from employer
New InterestsProduct announcement
Tag digestYou have an unused search subscription
-
-
- {% include 'notice-email-main-templates.html' %} -
-
- -
- -
- diff --git a/packages/stacks-docs/email/templates/major-announcements.html b/packages/stacks-docs/email/templates/major-announcements.html deleted file mode 100644 index 9717ce6fa5..0000000000 --- a/packages/stacks-docs/email/templates/major-announcements.html +++ /dev/null @@ -1,42 +0,0 @@ ---- -layout: page -title: Major announcements -description: Not all emails should look the same. Sometimes it’s appropriate to ditch the starter templates and design something unique. Here are a few emails we’ve sent for major announcements. -hide-menu: true ---- -{% tip %} - Note: The source for these emails is provided for historical purposes only. It’s ok to grab parts of a design, but these templates should not be used as a starting point because the code is likely outdated. -{% endtip %} -
- -
-
- -
diff --git a/packages/stacks-docs/email/templates/promotional.html b/packages/stacks-docs/email/templates/promotional.html deleted file mode 100644 index c658475b49..0000000000 --- a/packages/stacks-docs/email/templates/promotional.html +++ /dev/null @@ -1,67 +0,0 @@ ---- -layout: page -title: Promotional template -description: A starter template for announcements, updates, and promotions. This template is meant to be adapted and built upon. If you’re working on a major announcement, consider designing something unique. -hide-menu: true ---- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
{% icon "Checkmark" %} Good For:{% icon "Clear" %} Not So Good For:
Announcements that are worthy of grabbing attention or celebrating, such as:Emails that a user may receive multiple times or emails with a negative connotation, such as:
New product featureNew answers
Welcome to TeamsJob recommendations
Welcome to TalentOut-of-region applicants
You’ve reached 10k reputationYour admin privileges have been revoked
-
-
- {% include 'notice-email-main-templates.html' %} -
-
- -
- -
-
diff --git a/packages/stacks-docs/email/templates/short-transactional.html b/packages/stacks-docs/email/templates/short-transactional.html deleted file mode 100644 index a7f9f0a3ec..0000000000 --- a/packages/stacks-docs/email/templates/short-transactional.html +++ /dev/null @@ -1,68 +0,0 @@ ---- -layout: page -title: Short transactional template -description: A starter template for simple transactional emails with a single message. This template is meant to be adapted and built upon. -hide-menu: true ---- - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
{% icon "Checkmark" %} Good For:{% icon "Clear" %} Not So Good For:
Simple transactions that include a short message, such as:Lengthy transactions that include multiple messages, lists or one time announcements, such as:
Forgot passwordYour answer has been accepted!
You’ve been removed from a TeamNew featured jobs
Cart abandonmentWeekly recommendations
We’ve updated our privacy policyNew application
-
-
- {% include 'notice-email-main-templates.html' %} -
-
- -
- -
-
diff --git a/packages/stacks-docs/index.html b/packages/stacks-docs/index.html deleted file mode 100644 index bf0c84b7c2..0000000000 --- a/packages/stacks-docs/index.html +++ /dev/null @@ -1,3 +0,0 @@ ---- -layout: home ---- \ No newline at end of file diff --git a/packages/stacks-docs/netlify.toml b/packages/stacks-docs/netlify.toml deleted file mode 100644 index e02de7f018..0000000000 --- a/packages/stacks-docs/netlify.toml +++ /dev/null @@ -1,299 +0,0 @@ -[settings] - ID = "34ae802e-fb42-4bab-8814-9fac9e119037" - -[build] - base = "/" # Note: You'll need to set the "Package Directory" from the Netlify UI - publish = "packages/stacks-docs/_site/" - command = "npm run build -w packages/stacks-docs" - # don't build deploy previews on PRs opened by dependabot - ignore = "git log -1 --pretty=%B | grep dependabot" - -[build.environment] - # IMPORTANT!: Git LFS settings can't be changed in the .toml file. You will need to set this environment - # variable through the Netlify UI otherwise netlify won't be able to clone the repo due to all our images. - # https://docs.netlify.com/build/configure-builds/environment-variables/#netlify-configuration-variables - GIT_LFS_ENABLED = "true" # just here as a reminder - -[[redirects]] - from = "/favicon.ico" - to = "/assets/img/favicons/favicon.ico" - -[[redirects]] - from = "/apple-touch-icon.png" - to = "/assets/img/favicons/apple-touch-icon.png" - -[[redirects]] - from = "/apple-touch-icon-precomposed.png" - to = "/assets/img/favicons/apple-touch-icon-precomposed.png" - -[[redirects]] - from = "/product" - to = "/product/develop/using-stacks/" - -[[redirects]] - from = "/email" - to = "/email/guidelines/getting-started" - -[[redirects]] - from = "/content" - to = "/content/guidelines/principles" - -[[redirects]] - from = "/brand" - to = "/brand/principles" - -[[redirects]] - from = "/product/guidelines" - to = "/product/develop/using-stacks" - -[[redirects]] - from = "/email/guidelines" - to = "/email/guidelines/getting-started" - -[[redirects]] - from = "/email/guidelines/best-practices" - to = "/email/guidelines/design-best-practices" - -[[redirects]] - from = "/email/base" - to = "/email/base/border-radius/" - -[[redirects]] - from = "/guidelines/using-stacks" - to = "/product/develop/using-stacks" - -[[redirects]] - from = "/guidelines/responsiveness" - to = "/product/develop/conditional-classes/#responsive" - -[[redirects]] - from = "/resources/icons" - to = "/product/foundation/icons" - -[[redirects]] - from = "/base/borders" - to = "/product/base/borders" - -[[redirects]] - from = "/base/box-shadow" - to = "/product/base/box-shadow" - -[[redirects]] - from = "/base/box-sizing" - to = "/product/base/box-sizing" - -[[redirects]] - from = "/base/colors" - to = "/product/base/colors" - -[[redirects]] - from = "/base/cursors" - to = "/product/base/cursors" - -[[redirects]] - from = "/base/display" - to = "/product/base/display" - -[[redirects]] - from = "/base/floats" - to = "/product/base/floats" - -[[redirects]] - from = "/base/grid" - to = "/product/base/grid" - -[[redirects]] - from = "/product/base/grid" - to = "/product/base/flex" - -[[redirects]] - from = "/base/opacity" - to = "/product/base/opacity" - -[[redirects]] - from = "/base/overflow" - to = "/product/base/overflow" - -[[redirects]] - from = "/base/pointer-events" - to = "/product/base/pointer-events" - -[[redirects]] - from = "/base/position" - to = "/product/base/position" - -[[redirects]] - from = "/base/spacing" - to = "/product/base/spacing" - -[[redirects]] - from = "/base/typography" - to = "/product/base/typography" - -[[redirects]] - from = "/base/vertical-alignment" - to = "/product/base/vertical-alignment" - -[[redirects]] - from = "/base/width-height" - to = "/product/base/width-height" - -[[redirects]] - from = "/base/z-index" - to = "/product/base/z-index" - -[[redirects]] - from = "/components/avatars" - to = "/product/components/avatars" - -[[redirects]] - from = "/components/badges" - to = "/product/components/badges" - -[[redirects]] - from = "/components/banners" - to = "/product/components/banners" - -[[redirects]] - from = "/components/buttons" - to = "/product/components/buttons" - -[[redirects]] - from = "/components/button-groups" - to = "/product/components/button-groups" - -[[redirects]] - from = "/components/cards" - to = "/product/components/cards" - -[[redirects]] - from = "/components/checkbox" - to = "/product/components/checkbox" - -[[redirects]] - from = "/components/inputs" - to = "/product/components/inputs" - -[[redirects]] - from = "/components/labels" - to = "/product/components/labels" - -[[redirects]] - from = "/components/links" - to = "/product/components/links" - -[[redirects]] - from = "/components/modals" - to = "/product/components/modals" - -[[redirects]] - from = "/components/notices" - to = "/product/components/notices" - -[[redirects]] - from = "/components/progress-bars" - to = "/product/components/progress-bars" - -[[redirects]] - from = "components/radio" - to = "/product/components/radio" - -[[redirects]] - from = "/product/components/radio" - to = "/product/components/checkbox" - -[[redirects]] - from = "/components/select" - to = "/product/components/select" - -[[redirects]] - from = "components/sidebar-widgets" - to = "/product/components/sidebar-widgets" - -[[redirects]] - from = "/components/tables" - to = "/product/components/tables" - -[[redirects]] - from = "/components/tags" - to = "/product/components/tags" - -[[redirects]] - from = "/components/textarea" - to = "/product/components/textarea" - -[[redirects]] - from = "/product/guidelines/responsiveness" - to = "/product/develop/conditional-classes/#responsive" - -[[redirects]] - from = "/product/base/pointer-events" - to = "/product/base/interactivity" - -[[redirects]] - from = "/content/principles" - to = "/content/guidelines/principles" - -[[redirects]] - from = "/content/voice-and-tone" - to = "/content/guidelines/voice-and-tone" - -[[redirects]] - from = "/content/grammar-and-mechanics" - to = "/content/guidelines/grammar-and-mechanics" - -[[redirects]] - from = "/assets/img/logo-stacks@2x.png" - to = "/assets/img/logos/so/logo-stacks@2x.png" - -[[redirects]] - from = "/product/guidelines/releasing/" - to = "https://github.com/StackExchange/Stacks#release-a-new-version-of-stacks" - -[[redirects]] - from = "/product/guidelines/releasing/" - to = "https://github.com/StackExchange/Stacks#release-a-new-version-of-stacks" - -[[redirects]] - from = "/product/guidelines/using-stacks" - to = "/product/develop/using-stacks" - -[[redirects]] - from = "/product/guidelines/building" - to = "/product/develop/building" - -[[redirects]] - from = "/product/guidelines/conditional-classes" - to = "/product/develop/conditional-classes" - -[[redirects]] - from = "/product/guidelines/javascript" - to = "/product/develop/javascript" - -[[redirects]] - from = "/product/base/color-fundamentals" - to = "/product/foundation/color-fundamentals" - -[[redirects]] - from = "/product/base/colors" - to = "/product/foundation/colors" - -[[redirects]] - from = "/product/base/theming" - to = "/product/foundation/theming" - -[[redirects]] - from = "/product/guidelines/theming" - to = "/product/foundation/theming" - -[[redirects]] - from = "/product/resources/icons" - to = "/product/foundation/icons" - -[[redirects]] - from = "/product/resources/spots" - to = "/product/foundation/spots" - -[[redirects]] - from = "/product/base/typography" - to = "/product/foundation/typography" diff --git a/packages/stacks-docs/package.json b/packages/stacks-docs/package.json deleted file mode 100644 index fb53eea075..0000000000 --- a/packages/stacks-docs/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "private": true, - "name": "@stackoverflow/stacks-docs", - "description": "Stacks Design website. Contains all documentation around using Stacks and its components.", - "scripts": { - "start": "concurrently -n w: npm:start:*", - "start:webpack": "webpack --watch", - "start:eleventy": "eleventy --serve", - "build": "webpack --mode=production && eleventy" - }, - "dependencies": { - "@hotwired/stimulus": "^3.2.2", - "@stackoverflow/stacks": "*", - "@stackoverflow/stacks-editor": "^1.0.0-beta.3", - "@stackoverflow/stacks-icons": "^7.0.0-beta.7", - "@stackoverflow/stacks-icons-legacy": "npm:@stackoverflow/stacks-icons@^6.6.1", - "jquery": "^3.7.1", - "list.js": "^2.3.1", - "docsearch.js": "^2.6.3" - } -} diff --git a/packages/stacks-docs/plugins/banner-example.js b/packages/stacks-docs/plugins/banner-example.js deleted file mode 100644 index 0bc8e06bef..0000000000 --- a/packages/stacks-docs/plugins/banner-example.js +++ /dev/null @@ -1,47 +0,0 @@ -const { Icons } = require("@stackoverflow/stacks-icons-legacy"); - -module.exports = { - configFunction(eleventyConfig) { - eleventyConfig.addLiquidShortcode("bannerExample", function(type, important, classes) { - var lockIcon = Icons.IconLock; - var closeIcon = Icons.IconClearSm; - - // add type switch statement - function getTypeClass() { - switch (type) { - case "info": - return "s-banner__info"; - case "success": - return "s-banner__success"; - case "warning": - return "s-banner__warning"; - case "danger": - return "s-banner__danger"; - default: - return ""; - } - } - - if (classes == null) { - classes = ""; - } - if (important) { - classes += " s-banner__important"; - } - - return ``; - }); - } -} diff --git a/packages/stacks-docs/plugins/header.js b/packages/stacks-docs/plugins/header.js deleted file mode 100644 index 185a5b548c..0000000000 --- a/packages/stacks-docs/plugins/header.js +++ /dev/null @@ -1,25 +0,0 @@ - -const { Icons } = require("@stackoverflow/stacks-icons-legacy"); - -module.exports = { - configFunction(eleventyConfig) { - // Header shortcode - eleventyConfig.addLiquidShortcode("header", function(tag, text) { - var slug = text.replace(/\s+/g, '-').toLowerCase(); - var linkIcon = Icons.IconLink; - - var output = ''; - output += '
'; - output += '<' + tag + ' class="flex--item fl-grow1 stacks-' + tag + '" id="'+ slug +'">'; - output += '' + text + ''; - output += ''; - output += ''; - output += 'Section titled ' + text + ''; - output += linkIcon; - output += ''; - output += '
'; - - return output; - }); - } -} diff --git a/packages/stacks-docs/plugins/highlight.js b/packages/stacks-docs/plugins/highlight.js deleted file mode 100644 index 6e0b37e259..0000000000 --- a/packages/stacks-docs/plugins/highlight.js +++ /dev/null @@ -1,63 +0,0 @@ -const syntaxHighlight = require("eleventy-plugin-highlightjs"); - -// highlightjs line-numbering support -// add `linenums` or `linenums:startNumber` to the start of your code for detection -class HljsInsertLineNums { - constructor() { - this.shouldInsert = false; - this.startNumber = 1; - } - - "before:highlight"(data) { - var match = /^linenums(:\d+)?/.exec(data.code); - if (!match) { - return; - } - var startNumber = +(match[1] || "").slice(1) || 1; - - this.shouldInsert = true; - this.startNumber = startNumber; - data.code = data.code.replace(/^linenums(:\d+)?/, ""); - } - - "after:highlight"(result) { - if (!this.shouldInsert) { - return; - } - - var startNumber = this.startNumber; - - var content = result.value; - var lines = content.split(/\r?\n/); - - var output = ""; - for (var i = 0; i < lines.length; i++) { - output += "
" + (i + startNumber) + "
"; - } - - var newContent = - '' + - output + - "" + - content; - result.value = newContent; - - this.shouldInsert = false; - } -} - -module.exports = { - configFunction(eleventyConfig) { - // Add syntax highlighting - eleventyConfig.addPlugin(syntaxHighlight, { - className: "s-code-block", - preAttributes: { - tabindex: "0", - }, - init: function ({ hljs }) { - // TODO custom plugin taken from Prod - should probably be an npm package? - hljs.addPlugin(new HljsInsertLineNums()); - }, - }); - } -} diff --git a/packages/stacks-docs/plugins/icons.js b/packages/stacks-docs/plugins/icons.js deleted file mode 100644 index 2018e22709..0000000000 --- a/packages/stacks-docs/plugins/icons.js +++ /dev/null @@ -1,48 +0,0 @@ -const { Icons: LegacyIcons, Spots: LegacySpots } = require("@stackoverflow/stacks-icons-legacy"); -const { Icons: BetaIcons, Spots: BetaSpots } = require("@stackoverflow/stacks-icons"); -const fs = require("fs/promises"); - -const Icons = { ...LegacyIcons, ...BetaIcons }; -const Spots = { ...LegacySpots, ...BetaSpots }; - -function modifySvg(content, type, name, classes, dimension) { - var defaultClasses = `svg-${type} ${type.charAt(0).toUpperCase() + type.slice(1)}${name}`; - - if (!content) { - return `Invalid ${type}: ${name}`; - } - - // If we have classes, add them - if (classes != null) { - content = content.replace(defaultClasses, defaultClasses + " " + classes); - } - - // If we need to change the size, do that too - if (dimension != null) { - content = content.replace('width="18" height="18"', 'width="' + dimension + '" height="' + dimension + '"'); - } - - return content; -} - -module.exports = { - configFunction(eleventyConfig) { - // Icon shortcode - eleventyConfig.addLiquidShortcode("icon", function(name, classes, dimension) { - var svg = Icons["Icon" + name]; - return modifySvg(svg, "icon", name, classes, dimension); - }); - - // Spot shortcode - eleventyConfig.addLiquidShortcode("spot", function(name, classes, dimension) { - var svg = Spots["Spot" + name]; - return modifySvg(svg, "spot", name, classes, dimension); - }); - - // embed svgs in the assets folder - eleventyConfig.addLiquidShortcode("embed", async function(name, classes) { - const file = await fs.readFile(`assets/img/icons/${name}.svg`, "utf8"); - return modifySvg(file, "icon", name, classes, null); - }); - } -} diff --git a/packages/stacks-docs/plugins/markdown.js b/packages/stacks-docs/plugins/markdown.js deleted file mode 100644 index 7d5e848731..0000000000 --- a/packages/stacks-docs/plugins/markdown.js +++ /dev/null @@ -1,63 +0,0 @@ -const hljs = require("highlight.js"); -const MarkdownIt = require("markdown-it"); -const fs = require("fs"); - -module.exports = { - configFunction(eleventyConfig) { - // create our shared markdownit instance - const markdownIt = MarkdownIt("commonmark", { - html: true, - // have markdownit use hljs for syntax highlighting - highlight: function (str, lang) { - if (lang && hljs.getLanguage(lang)) { - return '
' +
-                hljs.highlight(str, {language: lang}).value +
-                '
'; - } - - return ''; // use external default escaping - } - }); - - // customize markdown-it rendering to add our classes - markdownIt.use(function (md) { - // mapping of tag: classes - const customClasses = { - "code": "stacks-code" - } - - const addClasses = function (tokens) { - tokens.forEach(function (token) { - if (token.tag in customClasses) { - token.attrJoin("class", customClasses[token.tag]); - } - - if (token.children) { - addClasses(token.children); - } - }); - }; - - md.core.ruler.push("add-custom-classes", function (state) { - addClasses(state.tokens); - }); - }); - - /** - * Renders markdown strings to html: - * {{ "**foo** _bar_" | markdown }} - */ - eleventyConfig.addLiquidFilter("markdown", function (content) { - return markdownIt.renderInline(content); - }); - - /** - * Reads and renders markdown files: - * {% markdown '/path/to/foo.md' %} - */ - eleventyConfig.addShortcode("markdown", function (file) { - let data = fs.readFileSync(`.${file}`); - return markdownIt.render(data.toString()); - }); - } -} diff --git a/packages/stacks-docs/plugins/tip.js b/packages/stacks-docs/plugins/tip.js deleted file mode 100644 index 7b3cbcff09..0000000000 --- a/packages/stacks-docs/plugins/tip.js +++ /dev/null @@ -1,39 +0,0 @@ -const { Spots } = require("@stackoverflow/stacks-icons-legacy"); - -module.exports = { - configFunction(eleventyConfig) { - eleventyConfig.addPairedShortcode("tip", function(content, type, classes, interiorClasses) { - var spot = ""; - - if (type == "warning") { - spot = Spots.SpotAlert; - type = "s-notice__warning"; - } else { - spot = Spots.SpotAlertCircle; - type = "s-notice__info"; - } - - if (classes == null) { - classes = "mb48"; - } - - if (interiorClasses == null) { - interiorClasses = "ai-start"; - } - - var output = ''; - output += '
'; - output += '
'; - output += '
'; - output += spot; - output += '
'; - output += '
'; - output += content - output += '
'; - output += '
'; - output += '
'; - - return output; - }); - } -} diff --git a/packages/stacks-docs/product/develop/building.html b/packages/stacks-docs/product/develop/building.html deleted file mode 100644 index 3fc264f9ad..0000000000 --- a/packages/stacks-docs/product/develop/building.html +++ /dev/null @@ -1,45 +0,0 @@ ---- -layout: page -title: Building Stacks -description: The following is a guide to building and running Stacks locally. You’ll need to be able to build Stacks to contribute to our documentation or add new classes to our CSS library. -tags: develop ---- - -
- {% header "h2", "Clone the repo" %} -

There are two common ways to clone a repo:

-
    -
  • Use the command line: git clone https://github.com/StackExchange/Stacks.git
  • -
  • Use GitHub’s desktop app. -
      -
    1. Download and install GitHub Desktop.
    2. -
    3. Login with your GitHub credentials.
    4. -
    5. Clone the Stacks repo.
    6. -
    -
  • -
-
- -
- {% header "h2", "Get Node and NPM installed" %} -

We use a bunch of NPM dependencies to process and package up Stacks for delivery. You’ll need to install them.

-
    -
  1. Install Node & NPM
  2. -
  3. Open the Stacks repo in a Terminal window.
  4. -
  5. Install the NPM dependencies. npm install
  6. -
-
- -
- {% header "h2", "Running Stacks" %} -

That should do it for all our dependencies. You’re now able to run Stacks. {% icon "Tada", "native va-text-bottom" %}

-
    -
  1. From the top level of the Stacks repo, run our main script npm run start -w packages/stacks-docs
  2. -
  3. Visit your local copy of Stacks at http://localhost:8080/
  4. -
-
- -
- {% header "h2", "Getting help" %} -

Installing dependencies can be frustrating, and we’re here to help. If you’re stuck, the Stacks team is always available in #stacks. If that doesn’t work, try opening an issue.

-
diff --git a/packages/stacks-docs/product/develop/conditional-classes.html b/packages/stacks-docs/product/develop/conditional-classes.html deleted file mode 100644 index 8bcc23459c..0000000000 --- a/packages/stacks-docs/product/develop/conditional-classes.html +++ /dev/null @@ -1,139 +0,0 @@ ---- -layout: page -title: Conditional classes -description: Stacks provides conditional atomic classes to easily build complex responsive designs, hover states, and print layouts. A limited selection of conditional classes are available throughout Stacks. These are represented in class definitions tables by a green checkmark . -tags: develop ---- - -
- {% header "h2", "Responsive" %} -

Many utility classes in Stacks are also available in screen-size specific variations. For example, the .d-none utility can be applied to small browser widths and below using the .sm:d-none class, on medium browser widths and below using the .md:d-none class, and on large browser widths and below using the .lg:d-none class.

- -

This is done using predefined max-width media query breakpoints represented by t-shirt sizes. A common example would be to apply .md:fd-column to a flex layout. This means, “At the medium breakpoint and smaller, switch the flex layout from columns to rows by applying fd-column.”

- - {% tip, "", "", "ai-center sm:ai-start" %} - Note: Our font size classes, .fs-[x] are automatically adjusted at the smallest breakpoint. - {% endtip %} -
- -
- {% header "h3", "Responsive classes" %} -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ClassBreakpointDefinition
.[x]N/AThe class is applied on all browser widths.
.lg:[x]1264pxThe class is applied on large browser widths and below.
.md:[x]980pxThe class is applied on medium browser widths and below.
.sm:[x]640pxThe class is applied on small browser widths and below.
-
-
- -
- {% header "h3", "Responsive example" %} -

Resize your browser to see which classes are applied.

-
- {% comment %} - This is a terrible hack to be able to highlight our markup - {% endcomment %} -
<div class="d-flex flex__center md:fd-column g16">
<div class="flex--item wmx3 fs-body3 lg:ta-center">

</div>
<div class="flex--item md:order-first sm:d-none">
<svg></svg>
</div>
</div>
-
-
-
- Stack Overflow for Teams is a private, secure home for your team’s questions and answers. No more digging through stale wikis and lost emails—give your team back the time it needs to build better products. -
-
- {% spot "RocketXL" %} -
-
-
-
-
- -
- {% header "h2", "Hover" %} -

Stacks provides hover-only atomic classes. By applying .h:bs-lg, .h:o100, and .h:fc-black-600, you’re saying “On hover, add a large box shadow, an opacity of 100%, and a font color of black 900.”

-
-{% highlight html %} -
-{% endhighlight %} -
-
Example
-
-
-
- -
- {% header "h2", "Focus" %} -

Stacks provides focus-only atomic classes. By applying .f:o100, and .f:fc-black-600, you’re saying “On focus, add an opacity of 100%, and a font color of black 900.”

-
-{% highlight html %} -
-{% endhighlight %} -
-
Example
-
-
-
- -
- {% header "h2", "Print" %} -

Stacks provides print-only atomic classes. By applying .print:d-none, you’re saying “In print layouts, remove this element from the layout.”

-
-{% highlight html %} -
-
-{% endhighlight %} -
-
This element will be removed from the page while printing.
-
This element will only be shown when printing.
-
-
-
- -
- {% header "h2", "Dark mode" %} -

Stacks provides darkmode-only atomic classes. By applying .d:bg-green-300, you’re saying “In dark mode, apply a background of green 100.”

-
-{% highlight html %} -
-{% endhighlight %} -
-
This element will be yellow text and background in light mode but will become green in dark mode.
-
-
- -

In addition to specific overrides, you can force an element’s colors to be light or dark by applying .theme-dark__forced or .theme-light__forced. This comes in handy when showing users a preview of light or dark interface elements.

-
-{% highlight html %} -
-{% endhighlight %} -
-
This element will be rendered with light mode colors regardless of theme preference.
-
-
-
diff --git a/packages/stacks-docs/product/develop/javascript.html b/packages/stacks-docs/product/develop/javascript.html deleted file mode 100644 index 7e9937de05..0000000000 --- a/packages/stacks-docs/product/develop/javascript.html +++ /dev/null @@ -1,143 +0,0 @@ ---- -layout: page -title: JavaScript -description: This is an introduction to the JavaScript functionality provided by Stacks. -tags: develop ---- - -
- {% header "h2", "Including the Stacks JavaScript" %} - -

While Stacks is first and foremost a CSS library, it also provides commonly used functionality for some components via JavaScript. This functionality is optional. If you only need the styling parts of Stack, you’re free to ignore the provided JavaScript. The converse is not true: The JavaScript components work under the assumption that the Stacks CSS is available.

- -

Stacks JavaScript is currently included within various Stack Overflow projects automatically. If you’re working on a Stack Overflow project, chances are it’s already available for you! If not, reach out to us and we’ll work on getting it setup.

-

To include Stacks JavaScript in other projects, do the following.

- -
    -
  • Include the file dist/js/stacks.min.js in your page. For example, if you use the unpkg CDN, add the tag <script src="https://unpkg.com/@stackoverflow/stacks/dist/js/stacks.min.js"></script> to your HTML. See Using Stacks for more information on Unpkg and installing Stacks via NPM.
  • -
-
- -
- {% header "h2", "Using the Stacks JavaScript" %} - -

The Stacks JavaScript components are provided as Stimulus controllers. Stimulus is a library created by Basecamp.

- -

Stimulus allows you to add functionality to your markup in a way that is similar to how you add styling to your markup: by modifying HTML attributes.

- -

Just as you style components by adding classes to the class attribute, with Stacks JavaScript, you’ll give components optional functionality by adding data-… attributes to the HTML.

- -

The basic functional unit of Stimulus, and of a Stacks JavaScript component, is a controller. Controllers are identified by their name, and all Stacks-provided controller names are prefixed with s-…, just like component CSS classes. You give functionality to an HTML element by setting its data-controller attribute.

- -
-{% highlight html %} -
-{% endhighlight %} -
- -

Refer to the documentation of individual components on how to configure a component’s behavior.

-
- -
- {% header "h2", "Creating your own Stimulus controllers" %} - -

A side effect of including the Stacks JavaScript in your project is that you also have Stimulus available in your page. This means you can not only use Stacks-provided controllers, but also create your own.

- -

For general information about writing code with Stimulus, refer to the official documentation. That documentation generally assumes that you’re writing ES6 code. In order to make it useful without ES6-to-ES5 transpilation, Stacks provides a helper that allows you to write controllers using old-fashioned JavaScript syntax.

- -

This helper is called Stacks.addController and takes two arguments: The name (“identifier”) of the controller, and an object that is analogous to the ES6 class that you would write for your controller, except that it's a plain JavaScript object. All own enumerable properties of that object will be made available on the controller prototype, with the exception of the targets property, which will be available on the controller constructor itself, i.e. statically.

- -

With that, you can create and register the final Hello World controller example from the official documentation like this:

- -
-{% highlight javascript %} -Stacks.addController("greeter", { - targets: ["name"], - - greet: function () { - console.log("Hello, " + this.name +"!"); - }, - - get name() { - return this.nameTarget.value; - } -}); -{% endhighlight %} -
-
- -
- {% header "h2", "JavaScript classnames" %} -

We prefix our JavaScript target classes with .js- so that changing or adding a class name for styling purposes doesn’t inadvertently break our JS. This allows us to style elements with any chain of atomic or component classes from Stacks without breaking any additional JavaScript interactivity.

-

We also try to avoid IDs for both visual styling and JavaScript targeting. They aren’t reusable, visual styling can’t be overwritten by atomic classes, and, like non-.js- classes, we can’t tell if there is JavaScript interactivity attached at a glance.

- -
{% icon "Checkmark", "mtn1 mbn1" %} Do
-
-{% highlight html %} -
- … -
-{% endhighlight %} -
- -
-{% highlight js %} -var button = document.querySelector('.js-copy'); -button.addEventListener('click', function() { - … -}); -{% endhighlight %} -
- -
{% icon "Clear", "mtn1 mbn1" %} Don’t
-
-{% highlight html %} -
- … -
-{% endhighlight %} -
- -
-{% highlight js %} -var button = document.querySelector('.s-card'); -button.addEventListener('click', function() { - … -}); -{% endhighlight %} -
- -
-{% highlight css %} -.s-card { - … -} -{% endhighlight %} -
- -
{% icon "Clear", "mtn1 mbn1" %} Don’t
-
-{% highlight html %} -
- … -
-{% endhighlight %} -
- -
-{% highlight js %} -var button = document.querySelector('#card'); -button.addEventListener('click', function() { - … -}); -{% endhighlight %} -
- -
-{% highlight css %} -#card { - … -} -{% endhighlight %} -
-
diff --git a/packages/stacks-docs/product/develop/using-stacks.html b/packages/stacks-docs/product/develop/using-stacks.html deleted file mode 100644 index 4120ab386a..0000000000 --- a/packages/stacks-docs/product/develop/using-stacks.html +++ /dev/null @@ -1,54 +0,0 @@ ---- -layout: page -title: Using Stacks -description: A short guide to Stacks, a robust CSS & JavaScript Pattern library for rapidly building Stack Overflow. -tags: develop ---- - -
- {% header "h2", "Goals" %} -

Stacks is built with a unified goal: We should be writing as little CSS & JavaScript as possible. To achieve this goal, the Stacks team has created a robust set of reusable components. These include components like buttons, tables, and form elements.

-

We’ve also created a powerful set of atomic classes that can be chained together to create just about any layout without writing a single line of new CSS. Further, these atomic classes can be used as modifiers of pre-existing components.

-
- -
- {% header "h2", "Installing" %} -

Stacks is currently included within various Stack Overflow projects automatically. If you’re working on a Stack Overflow project, chances are it’s already available for you! If not, reach out to us and we’ll work on getting it set up.

-

To include Stacks in other projects, you can install Stacks via NPM: npm install --save @stackoverflow/stacks

-

You can also include a minified, compiled Stacks CSS style sheet that’s delivered via Unkpg, a CDN for NPM packages. This is good for things like Codepen or other quick prototypes. This CDN should not be considered production-ready. <link rel="stylesheet" href="https://unpkg.com/@stackoverflow/stacks/dist/css/stacks.min.css">

- -

To use Stack’s built-in JavaScript interactivity with your components, refer to the JavaScript guidelines.

- - {% tip, "warning" %} - If you’re hotlinking to Stacks on the Stack Overflow CDN, you are doing it wrong. You are setting yourself up for breaking upstream changes. Instead, you should install via properly versioned package management like NPM. This will keep you pinned to a stable version. - {% endtip %} -
- -
- {% header "h2", "How to best use Stacks" %} -

In order to use Stacks, let’s consider the design you’d like to implement.

- -
    -
  1. -

    My design uses existing components

    -

    Identify if the design you’re implementing uses any existing components. Great, it does? Grab the markup from that component’s example page and paste that into your view.

    -
  2. -
  3. -

    My design uses existing components, but has some special cases.

    -

    E.g. background colors, border, and font sizes. Awesome, copy the component’s example markup to your view and add an atomic class to override its styling. Practically, this will likely just be adding something like an .mb12 to a button, or hiding something temporarily with .d-none.

    -
  4. -
  5. -

    My design uses a new pattern that doesn’t have a component yet. -

    No worries, let’s build your view by assembling some atomic classes. If you’re doing this more than once, you should help us identify a new pattern by requesting a new component.

    -
  6. -
  7. -

    My design is super special and…

    -

    I’m going to write a lot of custom CSS from scratch in its own .less file that I’ve included in the bundle. You probably shouldn’t be doing this. With atomic classes, you can build most of what you’re attempting to do without writing a single new line of CSS. The Stacks team would prefer you use these pre-existing classes to build new UI. Every line of CSS you write, the more CSS we have to maintain, the more our users have to download, and the more bytes we have to host.

    -
  8. -
-
- -
- {% header "h2", "Getting Help" %} -

Need help? Open an issue. We’ll be happy to help. {% icon "Balloon", "native va-text-bottom" %}

-
diff --git a/packages/stacks-docs/webpack.config.mjs b/packages/stacks-docs/webpack.config.mjs deleted file mode 100644 index 42342b4780..0000000000 --- a/packages/stacks-docs/webpack.config.mjs +++ /dev/null @@ -1,56 +0,0 @@ -import path from "path"; -import fs from "fs"; -import { - tsRule, - lessRule, - commonResolve, -} from "../stacks-classic/webpack.config.mjs"; -import MiniCssExtractPlugin from "mini-css-extract-plugin"; - -import { fileURLToPath } from "node:url"; -import { dirname } from "node:path"; - -const __filename = fileURLToPath(import.meta.url); -const __dirname = dirname(__filename); - -export default (_, argv) => { - const isProd = argv.mode === "production"; - - // load each entry.*.js file in assets/js as its own bundle - const entries = fs - .readdirSync(path.resolve(__dirname, "assets/js/")) - .filter((f) => f.startsWith("entry.")) - .reduce((p, n) => { - // { "entry.file": "path/to/entry.file.js" } - p[n.slice(0, -3)] = path.resolve(__dirname, "assets/js/", n); - return p; - }, {}); - - return { - mode: isProd ? "production" : "development", - devtool: isProd ? false : "inline-source-map", - entry: { - docs: path.resolve(__dirname, "assets/js/index.ts"), - ...entries, - }, - output: { - filename: "[name].js", - path: path.resolve(__dirname, "assets/dist"), - clean: true, - }, - module: { - rules: [ - tsRule(), // no special config file here - lessRule(isProd), - ], - }, - plugins: [new MiniCssExtractPlugin()], - resolve: commonResolve, - devServer: { - webSocketURL: { - // 11ty/browsersync steal the default port (8080), so set it to something else - port: 8081, - }, - }, - }; -}; diff --git a/packages/stacks-docs/_data/accessibility.json b/packages/stacks-site/src/docs/legacy/_data/accessibility.json similarity index 100% rename from packages/stacks-docs/_data/accessibility.json rename to packages/stacks-site/src/docs/legacy/_data/accessibility.json diff --git a/packages/stacks-docs/_data/activity-indicator.json b/packages/stacks-site/src/docs/legacy/_data/activity-indicator.json similarity index 100% rename from packages/stacks-docs/_data/activity-indicator.json rename to packages/stacks-site/src/docs/legacy/_data/activity-indicator.json diff --git a/packages/stacks-docs/_data/atomics.json b/packages/stacks-site/src/docs/legacy/_data/atomics.json similarity index 100% rename from packages/stacks-docs/_data/atomics.json rename to packages/stacks-site/src/docs/legacy/_data/atomics.json diff --git a/packages/stacks-docs/_data/avatars-component.json b/packages/stacks-site/src/docs/legacy/_data/avatars-component.json similarity index 100% rename from packages/stacks-docs/_data/avatars-component.json rename to packages/stacks-site/src/docs/legacy/_data/avatars-component.json diff --git a/packages/stacks-docs/_data/backgrounds.json b/packages/stacks-site/src/docs/legacy/_data/backgrounds.json similarity index 100% rename from packages/stacks-docs/_data/backgrounds.json rename to packages/stacks-site/src/docs/legacy/_data/backgrounds.json diff --git a/packages/stacks-docs/_data/badges.json b/packages/stacks-site/src/docs/legacy/_data/badges.json similarity index 100% rename from packages/stacks-docs/_data/badges.json rename to packages/stacks-site/src/docs/legacy/_data/badges.json diff --git a/packages/stacks-docs/_data/banners.json b/packages/stacks-site/src/docs/legacy/_data/banners.json similarity index 100% rename from packages/stacks-docs/_data/banners.json rename to packages/stacks-site/src/docs/legacy/_data/banners.json diff --git a/packages/stacks-docs/_data/bling.json b/packages/stacks-site/src/docs/legacy/_data/bling.json similarity index 100% rename from packages/stacks-docs/_data/bling.json rename to packages/stacks-site/src/docs/legacy/_data/bling.json diff --git a/packages/stacks-docs/_data/borders.json b/packages/stacks-site/src/docs/legacy/_data/borders.json similarity index 100% rename from packages/stacks-docs/_data/borders.json rename to packages/stacks-site/src/docs/legacy/_data/borders.json diff --git a/packages/stacks-docs/_data/breadcrumbs.json b/packages/stacks-site/src/docs/legacy/_data/breadcrumbs.json similarity index 100% rename from packages/stacks-docs/_data/breadcrumbs.json rename to packages/stacks-site/src/docs/legacy/_data/breadcrumbs.json diff --git a/packages/stacks-docs/_data/button-groups.json b/packages/stacks-site/src/docs/legacy/_data/button-groups.json similarity index 100% rename from packages/stacks-docs/_data/button-groups.json rename to packages/stacks-site/src/docs/legacy/_data/button-groups.json diff --git a/packages/stacks-docs/_data/buttons.json b/packages/stacks-site/src/docs/legacy/_data/buttons.json similarity index 100% rename from packages/stacks-docs/_data/buttons.json rename to packages/stacks-site/src/docs/legacy/_data/buttons.json diff --git a/packages/stacks-docs/_data/colors.json b/packages/stacks-site/src/docs/legacy/_data/colors.json similarity index 100% rename from packages/stacks-docs/_data/colors.json rename to packages/stacks-site/src/docs/legacy/_data/colors.json diff --git a/packages/stacks-docs/_data/flex.json b/packages/stacks-site/src/docs/legacy/_data/flex.json similarity index 100% rename from packages/stacks-docs/_data/flex.json rename to packages/stacks-site/src/docs/legacy/_data/flex.json diff --git a/packages/stacks-docs/_data/gap.json b/packages/stacks-site/src/docs/legacy/_data/gap.json similarity index 100% rename from packages/stacks-docs/_data/gap.json rename to packages/stacks-site/src/docs/legacy/_data/gap.json diff --git a/packages/stacks-docs/_data/grid.json b/packages/stacks-site/src/docs/legacy/_data/grid.json similarity index 100% rename from packages/stacks-docs/_data/grid.json rename to packages/stacks-site/src/docs/legacy/_data/grid.json diff --git a/packages/stacks-docs/_data/inputs.json b/packages/stacks-site/src/docs/legacy/_data/inputs.json similarity index 100% rename from packages/stacks-docs/_data/inputs.json rename to packages/stacks-site/src/docs/legacy/_data/inputs.json diff --git a/packages/stacks-docs/_data/link-previews.json b/packages/stacks-site/src/docs/legacy/_data/link-previews.json similarity index 100% rename from packages/stacks-docs/_data/link-previews.json rename to packages/stacks-site/src/docs/legacy/_data/link-previews.json diff --git a/packages/stacks-docs/_data/links.json b/packages/stacks-site/src/docs/legacy/_data/links.json similarity index 100% rename from packages/stacks-docs/_data/links.json rename to packages/stacks-site/src/docs/legacy/_data/links.json diff --git a/packages/stacks-docs/_data/menu.json b/packages/stacks-site/src/docs/legacy/_data/menu.json similarity index 100% rename from packages/stacks-docs/_data/menu.json rename to packages/stacks-site/src/docs/legacy/_data/menu.json diff --git a/packages/stacks-docs/_data/modals.json b/packages/stacks-site/src/docs/legacy/_data/modals.json similarity index 100% rename from packages/stacks-docs/_data/modals.json rename to packages/stacks-site/src/docs/legacy/_data/modals.json diff --git a/packages/stacks-docs/_data/navigation.json b/packages/stacks-site/src/docs/legacy/_data/navigation.json similarity index 100% rename from packages/stacks-docs/_data/navigation.json rename to packages/stacks-site/src/docs/legacy/_data/navigation.json diff --git a/packages/stacks-docs/_data/notices.json b/packages/stacks-site/src/docs/legacy/_data/notices.json similarity index 100% rename from packages/stacks-docs/_data/notices.json rename to packages/stacks-site/src/docs/legacy/_data/notices.json diff --git a/packages/stacks-docs/_data/pagination-component.json b/packages/stacks-site/src/docs/legacy/_data/pagination-component.json similarity index 100% rename from packages/stacks-docs/_data/pagination-component.json rename to packages/stacks-site/src/docs/legacy/_data/pagination-component.json diff --git a/packages/stacks-docs/_data/popovers.json b/packages/stacks-site/src/docs/legacy/_data/popovers.json similarity index 100% rename from packages/stacks-docs/_data/popovers.json rename to packages/stacks-site/src/docs/legacy/_data/popovers.json diff --git a/packages/stacks-docs/_data/position.json b/packages/stacks-site/src/docs/legacy/_data/position.json similarity index 100% rename from packages/stacks-docs/_data/position.json rename to packages/stacks-site/src/docs/legacy/_data/position.json diff --git a/packages/stacks-docs/_data/post-summary.json b/packages/stacks-site/src/docs/legacy/_data/post-summary.json similarity index 100% rename from packages/stacks-docs/_data/post-summary.json rename to packages/stacks-site/src/docs/legacy/_data/post-summary.json diff --git a/packages/stacks-docs/_data/site-navigation.json b/packages/stacks-site/src/docs/legacy/_data/site-navigation.json similarity index 100% rename from packages/stacks-docs/_data/site-navigation.json rename to packages/stacks-site/src/docs/legacy/_data/site-navigation.json diff --git a/packages/stacks-docs/_data/site.json b/packages/stacks-site/src/docs/legacy/_data/site.json similarity index 100% rename from packages/stacks-docs/_data/site.json rename to packages/stacks-site/src/docs/legacy/_data/site.json diff --git a/packages/stacks-docs/_data/skeleton.json b/packages/stacks-site/src/docs/legacy/_data/skeleton.json similarity index 100% rename from packages/stacks-docs/_data/skeleton.json rename to packages/stacks-site/src/docs/legacy/_data/skeleton.json diff --git a/packages/stacks-docs/_data/spacing.json b/packages/stacks-site/src/docs/legacy/_data/spacing.json similarity index 100% rename from packages/stacks-docs/_data/spacing.json rename to packages/stacks-site/src/docs/legacy/_data/spacing.json diff --git a/packages/stacks-docs/_data/spinner.json b/packages/stacks-site/src/docs/legacy/_data/spinner.json similarity index 100% rename from packages/stacks-docs/_data/spinner.json rename to packages/stacks-site/src/docs/legacy/_data/spinner.json diff --git a/packages/stacks-docs/_data/stacks-icons.js b/packages/stacks-site/src/docs/legacy/_data/stacks-icons.js similarity index 100% rename from packages/stacks-docs/_data/stacks-icons.js rename to packages/stacks-site/src/docs/legacy/_data/stacks-icons.js diff --git a/packages/stacks-docs/_data/tables.json b/packages/stacks-site/src/docs/legacy/_data/tables.json similarity index 100% rename from packages/stacks-docs/_data/tables.json rename to packages/stacks-site/src/docs/legacy/_data/tables.json diff --git a/packages/stacks-docs/_data/tags-component.json b/packages/stacks-site/src/docs/legacy/_data/tags-component.json similarity index 100% rename from packages/stacks-docs/_data/tags-component.json rename to packages/stacks-site/src/docs/legacy/_data/tags-component.json diff --git a/packages/stacks-docs/_data/topbar.json b/packages/stacks-site/src/docs/legacy/_data/topbar.json similarity index 100% rename from packages/stacks-docs/_data/topbar.json rename to packages/stacks-site/src/docs/legacy/_data/topbar.json diff --git a/packages/stacks-docs/_data/typography.json b/packages/stacks-site/src/docs/legacy/_data/typography.json similarity index 100% rename from packages/stacks-docs/_data/typography.json rename to packages/stacks-site/src/docs/legacy/_data/typography.json diff --git a/packages/stacks-docs/_data/uploader-component.json b/packages/stacks-site/src/docs/legacy/_data/uploader-component.json similarity index 100% rename from packages/stacks-docs/_data/uploader-component.json rename to packages/stacks-site/src/docs/legacy/_data/uploader-component.json diff --git a/packages/stacks-docs/_data/user-cards-component.json b/packages/stacks-site/src/docs/legacy/_data/user-cards-component.json similarity index 100% rename from packages/stacks-docs/_data/user-cards-component.json rename to packages/stacks-site/src/docs/legacy/_data/user-cards-component.json diff --git a/packages/stacks-docs/product/base/backgrounds.html b/packages/stacks-site/src/docs/legacy/product/base/backgrounds.html similarity index 100% rename from packages/stacks-docs/product/base/backgrounds.html rename to packages/stacks-site/src/docs/legacy/product/base/backgrounds.html diff --git a/packages/stacks-docs/product/base/border-radius.html b/packages/stacks-site/src/docs/legacy/product/base/border-radius.html similarity index 100% rename from packages/stacks-docs/product/base/border-radius.html rename to packages/stacks-site/src/docs/legacy/product/base/border-radius.html diff --git a/packages/stacks-docs/product/base/borders.html b/packages/stacks-site/src/docs/legacy/product/base/borders.html similarity index 100% rename from packages/stacks-docs/product/base/borders.html rename to packages/stacks-site/src/docs/legacy/product/base/borders.html diff --git a/packages/stacks-docs/product/base/box-shadow.html b/packages/stacks-site/src/docs/legacy/product/base/box-shadow.html similarity index 100% rename from packages/stacks-docs/product/base/box-shadow.html rename to packages/stacks-site/src/docs/legacy/product/base/box-shadow.html diff --git a/packages/stacks-docs/product/base/box-sizing.html b/packages/stacks-site/src/docs/legacy/product/base/box-sizing.html similarity index 100% rename from packages/stacks-docs/product/base/box-sizing.html rename to packages/stacks-site/src/docs/legacy/product/base/box-sizing.html diff --git a/packages/stacks-docs/product/base/current-color.html b/packages/stacks-site/src/docs/legacy/product/base/current-color.html similarity index 100% rename from packages/stacks-docs/product/base/current-color.html rename to packages/stacks-site/src/docs/legacy/product/base/current-color.html diff --git a/packages/stacks-docs/product/base/cursors.html b/packages/stacks-site/src/docs/legacy/product/base/cursors.html similarity index 100% rename from packages/stacks-docs/product/base/cursors.html rename to packages/stacks-site/src/docs/legacy/product/base/cursors.html diff --git a/packages/stacks-docs/product/base/display.html b/packages/stacks-site/src/docs/legacy/product/base/display.html similarity index 100% rename from packages/stacks-docs/product/base/display.html rename to packages/stacks-site/src/docs/legacy/product/base/display.html diff --git a/packages/stacks-docs/product/base/flex.html b/packages/stacks-site/src/docs/legacy/product/base/flex.html similarity index 100% rename from packages/stacks-docs/product/base/flex.html rename to packages/stacks-site/src/docs/legacy/product/base/flex.html diff --git a/packages/stacks-docs/product/base/floats.html b/packages/stacks-site/src/docs/legacy/product/base/floats.html similarity index 100% rename from packages/stacks-docs/product/base/floats.html rename to packages/stacks-site/src/docs/legacy/product/base/floats.html diff --git a/packages/stacks-docs/product/base/gap.html b/packages/stacks-site/src/docs/legacy/product/base/gap.html similarity index 100% rename from packages/stacks-docs/product/base/gap.html rename to packages/stacks-site/src/docs/legacy/product/base/gap.html diff --git a/packages/stacks-docs/product/base/grid.html b/packages/stacks-site/src/docs/legacy/product/base/grid.html similarity index 100% rename from packages/stacks-docs/product/base/grid.html rename to packages/stacks-site/src/docs/legacy/product/base/grid.html diff --git a/packages/stacks-docs/product/base/interactivity.html b/packages/stacks-site/src/docs/legacy/product/base/interactivity.html similarity index 100% rename from packages/stacks-docs/product/base/interactivity.html rename to packages/stacks-site/src/docs/legacy/product/base/interactivity.html diff --git a/packages/stacks-docs/product/base/lists.html b/packages/stacks-site/src/docs/legacy/product/base/lists.html similarity index 100% rename from packages/stacks-docs/product/base/lists.html rename to packages/stacks-site/src/docs/legacy/product/base/lists.html diff --git a/packages/stacks-docs/product/base/object-fit.html b/packages/stacks-site/src/docs/legacy/product/base/object-fit.html similarity index 100% rename from packages/stacks-docs/product/base/object-fit.html rename to packages/stacks-site/src/docs/legacy/product/base/object-fit.html diff --git a/packages/stacks-docs/product/base/opacity.html b/packages/stacks-site/src/docs/legacy/product/base/opacity.html similarity index 100% rename from packages/stacks-docs/product/base/opacity.html rename to packages/stacks-site/src/docs/legacy/product/base/opacity.html diff --git a/packages/stacks-docs/product/base/outline.html b/packages/stacks-site/src/docs/legacy/product/base/outline.html similarity index 100% rename from packages/stacks-docs/product/base/outline.html rename to packages/stacks-site/src/docs/legacy/product/base/outline.html diff --git a/packages/stacks-docs/product/base/overflow.html b/packages/stacks-site/src/docs/legacy/product/base/overflow.html similarity index 100% rename from packages/stacks-docs/product/base/overflow.html rename to packages/stacks-site/src/docs/legacy/product/base/overflow.html diff --git a/packages/stacks-docs/product/base/position.html b/packages/stacks-site/src/docs/legacy/product/base/position.html similarity index 100% rename from packages/stacks-docs/product/base/position.html rename to packages/stacks-site/src/docs/legacy/product/base/position.html diff --git a/packages/stacks-docs/product/base/spacing.html b/packages/stacks-site/src/docs/legacy/product/base/spacing.html similarity index 100% rename from packages/stacks-docs/product/base/spacing.html rename to packages/stacks-site/src/docs/legacy/product/base/spacing.html diff --git a/packages/stacks-docs/product/base/transitions.html b/packages/stacks-site/src/docs/legacy/product/base/transitions.html similarity index 100% rename from packages/stacks-docs/product/base/transitions.html rename to packages/stacks-site/src/docs/legacy/product/base/transitions.html diff --git a/packages/stacks-docs/product/base/truncation.html b/packages/stacks-site/src/docs/legacy/product/base/truncation.html similarity index 100% rename from packages/stacks-docs/product/base/truncation.html rename to packages/stacks-site/src/docs/legacy/product/base/truncation.html diff --git a/packages/stacks-docs/product/base/vertical-alignment.html b/packages/stacks-site/src/docs/legacy/product/base/vertical-alignment.html similarity index 100% rename from packages/stacks-docs/product/base/vertical-alignment.html rename to packages/stacks-site/src/docs/legacy/product/base/vertical-alignment.html diff --git a/packages/stacks-docs/product/base/visibility.html b/packages/stacks-site/src/docs/legacy/product/base/visibility.html similarity index 100% rename from packages/stacks-docs/product/base/visibility.html rename to packages/stacks-site/src/docs/legacy/product/base/visibility.html diff --git a/packages/stacks-docs/product/base/width-height.html b/packages/stacks-site/src/docs/legacy/product/base/width-height.html similarity index 100% rename from packages/stacks-docs/product/base/width-height.html rename to packages/stacks-site/src/docs/legacy/product/base/width-height.html diff --git a/packages/stacks-docs/product/base/z-index.html b/packages/stacks-site/src/docs/legacy/product/base/z-index.html similarity index 100% rename from packages/stacks-docs/product/base/z-index.html rename to packages/stacks-site/src/docs/legacy/product/base/z-index.html diff --git a/packages/stacks-docs/product/components/activity-indicator.html b/packages/stacks-site/src/docs/legacy/product/components/activity-indicator.html similarity index 100% rename from packages/stacks-docs/product/components/activity-indicator.html rename to packages/stacks-site/src/docs/legacy/product/components/activity-indicator.html diff --git a/packages/stacks-docs/product/components/avatars.html b/packages/stacks-site/src/docs/legacy/product/components/avatars.html similarity index 100% rename from packages/stacks-docs/product/components/avatars.html rename to packages/stacks-site/src/docs/legacy/product/components/avatars.html diff --git a/packages/stacks-docs/product/components/badges.html b/packages/stacks-site/src/docs/legacy/product/components/badges.html similarity index 100% rename from packages/stacks-docs/product/components/badges.html rename to packages/stacks-site/src/docs/legacy/product/components/badges.html diff --git a/packages/stacks-docs/product/components/banners.html b/packages/stacks-site/src/docs/legacy/product/components/banners.html similarity index 100% rename from packages/stacks-docs/product/components/banners.html rename to packages/stacks-site/src/docs/legacy/product/components/banners.html diff --git a/packages/stacks-docs/product/components/bling.html b/packages/stacks-site/src/docs/legacy/product/components/bling.html similarity index 100% rename from packages/stacks-docs/product/components/bling.html rename to packages/stacks-site/src/docs/legacy/product/components/bling.html diff --git a/packages/stacks-docs/product/components/breadcrumbs.html b/packages/stacks-site/src/docs/legacy/product/components/breadcrumbs.html similarity index 100% rename from packages/stacks-docs/product/components/breadcrumbs.html rename to packages/stacks-site/src/docs/legacy/product/components/breadcrumbs.html diff --git a/packages/stacks-docs/product/components/button-groups.html b/packages/stacks-site/src/docs/legacy/product/components/button-groups.html similarity index 100% rename from packages/stacks-docs/product/components/button-groups.html rename to packages/stacks-site/src/docs/legacy/product/components/button-groups.html diff --git a/packages/stacks-docs/product/components/buttons.html b/packages/stacks-site/src/docs/legacy/product/components/buttons.html similarity index 100% rename from packages/stacks-docs/product/components/buttons.html rename to packages/stacks-site/src/docs/legacy/product/components/buttons.html diff --git a/packages/stacks-docs/product/components/cards.html b/packages/stacks-site/src/docs/legacy/product/components/cards.html similarity index 100% rename from packages/stacks-docs/product/components/cards.html rename to packages/stacks-site/src/docs/legacy/product/components/cards.html diff --git a/packages/stacks-docs/product/components/checkbox.html b/packages/stacks-site/src/docs/legacy/product/components/checkbox.html similarity index 100% rename from packages/stacks-docs/product/components/checkbox.html rename to packages/stacks-site/src/docs/legacy/product/components/checkbox.html diff --git a/packages/stacks-docs/product/components/code-blocks.html b/packages/stacks-site/src/docs/legacy/product/components/code-blocks.html similarity index 100% rename from packages/stacks-docs/product/components/code-blocks.html rename to packages/stacks-site/src/docs/legacy/product/components/code-blocks.html diff --git a/packages/stacks-docs/product/components/editor.html b/packages/stacks-site/src/docs/legacy/product/components/editor.html similarity index 100% rename from packages/stacks-docs/product/components/editor.html rename to packages/stacks-site/src/docs/legacy/product/components/editor.html diff --git a/packages/stacks-docs/product/components/empty-states.html b/packages/stacks-site/src/docs/legacy/product/components/empty-states.html similarity index 100% rename from packages/stacks-docs/product/components/empty-states.html rename to packages/stacks-site/src/docs/legacy/product/components/empty-states.html diff --git a/packages/stacks-docs/product/components/expandable.html b/packages/stacks-site/src/docs/legacy/product/components/expandable.html similarity index 100% rename from packages/stacks-docs/product/components/expandable.html rename to packages/stacks-site/src/docs/legacy/product/components/expandable.html diff --git a/packages/stacks-docs/product/components/inputs.html b/packages/stacks-site/src/docs/legacy/product/components/inputs.html similarity index 100% rename from packages/stacks-docs/product/components/inputs.html rename to packages/stacks-site/src/docs/legacy/product/components/inputs.html diff --git a/packages/stacks-docs/product/components/labels.html b/packages/stacks-site/src/docs/legacy/product/components/labels.html similarity index 100% rename from packages/stacks-docs/product/components/labels.html rename to packages/stacks-site/src/docs/legacy/product/components/labels.html diff --git a/packages/stacks-docs/product/components/link-previews.html b/packages/stacks-site/src/docs/legacy/product/components/link-previews.html similarity index 100% rename from packages/stacks-docs/product/components/link-previews.html rename to packages/stacks-site/src/docs/legacy/product/components/link-previews.html diff --git a/packages/stacks-docs/product/components/links.html b/packages/stacks-site/src/docs/legacy/product/components/links.html similarity index 100% rename from packages/stacks-docs/product/components/links.html rename to packages/stacks-site/src/docs/legacy/product/components/links.html diff --git a/packages/stacks-docs/product/components/menus.html b/packages/stacks-site/src/docs/legacy/product/components/menus.html similarity index 100% rename from packages/stacks-docs/product/components/menus.html rename to packages/stacks-site/src/docs/legacy/product/components/menus.html diff --git a/packages/stacks-docs/product/components/modals.html b/packages/stacks-site/src/docs/legacy/product/components/modals.html similarity index 100% rename from packages/stacks-docs/product/components/modals.html rename to packages/stacks-site/src/docs/legacy/product/components/modals.html diff --git a/packages/stacks-docs/product/components/navigation.html b/packages/stacks-site/src/docs/legacy/product/components/navigation.html similarity index 100% rename from packages/stacks-docs/product/components/navigation.html rename to packages/stacks-site/src/docs/legacy/product/components/navigation.html diff --git a/packages/stacks-docs/product/components/notices.html b/packages/stacks-site/src/docs/legacy/product/components/notices.html similarity index 100% rename from packages/stacks-docs/product/components/notices.html rename to packages/stacks-site/src/docs/legacy/product/components/notices.html diff --git a/packages/stacks-docs/product/components/page-titles.html b/packages/stacks-site/src/docs/legacy/product/components/page-titles.html similarity index 100% rename from packages/stacks-docs/product/components/page-titles.html rename to packages/stacks-site/src/docs/legacy/product/components/page-titles.html diff --git a/packages/stacks-docs/product/components/pagination.html b/packages/stacks-site/src/docs/legacy/product/components/pagination.html similarity index 100% rename from packages/stacks-docs/product/components/pagination.html rename to packages/stacks-site/src/docs/legacy/product/components/pagination.html diff --git a/packages/stacks-docs/product/components/popovers.html b/packages/stacks-site/src/docs/legacy/product/components/popovers.html similarity index 100% rename from packages/stacks-docs/product/components/popovers.html rename to packages/stacks-site/src/docs/legacy/product/components/popovers.html diff --git a/packages/stacks-docs/product/components/post-summary.html b/packages/stacks-site/src/docs/legacy/product/components/post-summary.html similarity index 100% rename from packages/stacks-docs/product/components/post-summary.html rename to packages/stacks-site/src/docs/legacy/product/components/post-summary.html diff --git a/packages/stacks-docs/product/components/progress-bars.html b/packages/stacks-site/src/docs/legacy/product/components/progress-bars.html similarity index 100% rename from packages/stacks-docs/product/components/progress-bars.html rename to packages/stacks-site/src/docs/legacy/product/components/progress-bars.html diff --git a/packages/stacks-docs/product/components/prose.html b/packages/stacks-site/src/docs/legacy/product/components/prose.html similarity index 100% rename from packages/stacks-docs/product/components/prose.html rename to packages/stacks-site/src/docs/legacy/product/components/prose.html diff --git a/packages/stacks-docs/product/components/select.html b/packages/stacks-site/src/docs/legacy/product/components/select.html similarity index 100% rename from packages/stacks-docs/product/components/select.html rename to packages/stacks-site/src/docs/legacy/product/components/select.html diff --git a/packages/stacks-docs/product/components/sidebar-widgets.html b/packages/stacks-site/src/docs/legacy/product/components/sidebar-widgets.html similarity index 100% rename from packages/stacks-docs/product/components/sidebar-widgets.html rename to packages/stacks-site/src/docs/legacy/product/components/sidebar-widgets.html diff --git a/packages/stacks-docs/product/components/skeleton.html b/packages/stacks-site/src/docs/legacy/product/components/skeleton.html similarity index 100% rename from packages/stacks-docs/product/components/skeleton.html rename to packages/stacks-site/src/docs/legacy/product/components/skeleton.html diff --git a/packages/stacks-docs/product/components/spinner.html b/packages/stacks-site/src/docs/legacy/product/components/spinner.html similarity index 100% rename from packages/stacks-docs/product/components/spinner.html rename to packages/stacks-site/src/docs/legacy/product/components/spinner.html diff --git a/packages/stacks-docs/product/components/tables.html b/packages/stacks-site/src/docs/legacy/product/components/tables.html similarity index 100% rename from packages/stacks-docs/product/components/tables.html rename to packages/stacks-site/src/docs/legacy/product/components/tables.html diff --git a/packages/stacks-docs/product/components/tags.html b/packages/stacks-site/src/docs/legacy/product/components/tags.html similarity index 100% rename from packages/stacks-docs/product/components/tags.html rename to packages/stacks-site/src/docs/legacy/product/components/tags.html diff --git a/packages/stacks-docs/product/components/textarea.html b/packages/stacks-site/src/docs/legacy/product/components/textarea.html similarity index 100% rename from packages/stacks-docs/product/components/textarea.html rename to packages/stacks-site/src/docs/legacy/product/components/textarea.html diff --git a/packages/stacks-docs/product/components/toggle-switch.html b/packages/stacks-site/src/docs/legacy/product/components/toggle-switch.html similarity index 100% rename from packages/stacks-docs/product/components/toggle-switch.html rename to packages/stacks-site/src/docs/legacy/product/components/toggle-switch.html diff --git a/packages/stacks-docs/product/components/topbar.html b/packages/stacks-site/src/docs/legacy/product/components/topbar.html similarity index 100% rename from packages/stacks-docs/product/components/topbar.html rename to packages/stacks-site/src/docs/legacy/product/components/topbar.html diff --git a/packages/stacks-docs/product/components/uploader.html b/packages/stacks-site/src/docs/legacy/product/components/uploader.html similarity index 100% rename from packages/stacks-docs/product/components/uploader.html rename to packages/stacks-site/src/docs/legacy/product/components/uploader.html diff --git a/packages/stacks-docs/product/components/user-cards.html b/packages/stacks-site/src/docs/legacy/product/components/user-cards.html similarity index 100% rename from packages/stacks-docs/product/components/user-cards.html rename to packages/stacks-site/src/docs/legacy/product/components/user-cards.html diff --git a/packages/stacks-docs/product/foundation/accessibility.html b/packages/stacks-site/src/docs/legacy/product/foundation/accessibility.html similarity index 100% rename from packages/stacks-docs/product/foundation/accessibility.html rename to packages/stacks-site/src/docs/legacy/product/foundation/accessibility.html diff --git a/packages/stacks-docs/product/foundation/color-fundamentals.html b/packages/stacks-site/src/docs/legacy/product/foundation/color-fundamentals.html similarity index 100% rename from packages/stacks-docs/product/foundation/color-fundamentals.html rename to packages/stacks-site/src/docs/legacy/product/foundation/color-fundamentals.html diff --git a/packages/stacks-docs/product/foundation/colors.html b/packages/stacks-site/src/docs/legacy/product/foundation/colors.html similarity index 100% rename from packages/stacks-docs/product/foundation/colors.html rename to packages/stacks-site/src/docs/legacy/product/foundation/colors.html diff --git a/packages/stacks-docs/product/foundation/icons.html b/packages/stacks-site/src/docs/legacy/product/foundation/icons.html similarity index 100% rename from packages/stacks-docs/product/foundation/icons.html rename to packages/stacks-site/src/docs/legacy/product/foundation/icons.html diff --git a/packages/stacks-docs/product/foundation/spots.html b/packages/stacks-site/src/docs/legacy/product/foundation/spots.html similarity index 100% rename from packages/stacks-docs/product/foundation/spots.html rename to packages/stacks-site/src/docs/legacy/product/foundation/spots.html diff --git a/packages/stacks-docs/product/foundation/theming.html b/packages/stacks-site/src/docs/legacy/product/foundation/theming.html similarity index 100% rename from packages/stacks-docs/product/foundation/theming.html rename to packages/stacks-site/src/docs/legacy/product/foundation/theming.html diff --git a/packages/stacks-docs/product/foundation/typography.html b/packages/stacks-site/src/docs/legacy/product/foundation/typography.html similarity index 100% rename from packages/stacks-docs/product/foundation/typography.html rename to packages/stacks-site/src/docs/legacy/product/foundation/typography.html From b87aa4f396217ffc816c85f2c4ddce215b9cc052 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 16 Dec 2025 18:49:09 +0000 Subject: [PATCH 047/156] Reorganize packages --- packages/{stacks-site => stacks-docs}/.gitignore | 0 packages/{stacks-site => stacks-docs}/.npmrc | 0 packages/{stacks-site => stacks-docs}/README.md | 0 .../{stacks-site => stacks-docs}/eslint.config.js | 0 .../{stacks-site => stacks-docs}/netlify-setup.sh | 0 packages/{stacks-site => stacks-docs}/package.json | 0 packages/{stacks-site => stacks-docs}/src/app.css | 0 packages/{stacks-site => stacks-docs}/src/app.html | 0 packages/{stacks-site => stacks-docs}/src/auth.ts | 0 .../src/components/Contents.svelte | 0 .../src/components/Cta.svelte | 0 .../src/components/Gallery.svelte | 0 .../src/components/Grid.svelte | 0 .../src/components/GridColumn.svelte | 0 .../src/components/Navigation.svelte | 0 .../src/components/Search.svelte | 0 .../src/components/Slide.svelte | 0 .../src/components/ThemeToggle.svelte | 0 .../src/docs/legacy/_data/accessibility.json | 0 .../src/docs/legacy/_data/activity-indicator.json | 0 .../src/docs/legacy/_data/atomics.json | 0 .../src/docs/legacy/_data/avatars-component.json | 0 .../src/docs/legacy/_data/backgrounds.json | 0 .../src/docs/legacy/_data/badges.json | 0 .../src/docs/legacy/_data/banners.json | 0 .../src/docs/legacy/_data/bling.json | 0 .../src/docs/legacy/_data/borders.json | 0 .../src/docs/legacy/_data/breadcrumbs.json | 0 .../src/docs/legacy/_data/button-groups.json | 0 .../src/docs/legacy/_data/buttons.json | 0 .../src/docs/legacy/_data/colors.json | 0 .../src/docs/legacy/_data/flex.json | 0 .../src/docs/legacy/_data/gap.json | 0 .../src/docs/legacy/_data/grid.json | 0 .../src/docs/legacy/_data/inputs.json | 0 .../src/docs/legacy/_data/link-previews.json | 0 .../src/docs/legacy/_data/links.json | 0 .../src/docs/legacy/_data/menu.json | 0 .../src/docs/legacy/_data/modals.json | 0 .../src/docs/legacy/_data/navigation.json | 0 .../src/docs/legacy/_data/notices.json | 0 .../src/docs/legacy/_data/pagination-component.json | 0 .../src/docs/legacy/_data/popovers.json | 0 .../src/docs/legacy/_data/position.json | 0 .../src/docs/legacy/_data/post-summary.json | 0 .../src/docs/legacy/_data/site-navigation.json | 0 .../src/docs/legacy/_data/site.json | 0 .../src/docs/legacy/_data/skeleton.json | 0 .../src/docs/legacy/_data/spacing.json | 0 .../src/docs/legacy/_data/spinner.json | 0 .../src/docs/legacy/_data/stacks-icons.js | 0 .../src/docs/legacy/_data/tables.json | 0 .../src/docs/legacy/_data/tags-component.json | 0 .../src/docs/legacy/_data/topbar.json | 0 .../src/docs/legacy/_data/typography.json | 0 .../src/docs/legacy/_data/uploader-component.json | 0 .../src/docs/legacy/_data/user-cards-component.json | 0 .../src/docs/legacy/product/base/backgrounds.html | 0 .../src/docs/legacy/product/base/border-radius.html | 0 .../src/docs/legacy/product/base/borders.html | 0 .../src/docs/legacy/product/base/box-shadow.html | 0 .../src/docs/legacy/product/base/box-sizing.html | 0 .../src/docs/legacy/product/base/current-color.html | 0 .../src/docs/legacy/product/base/cursors.html | 0 .../src/docs/legacy/product/base/display.html | 0 .../src/docs/legacy/product/base/flex.html | 0 .../src/docs/legacy/product/base/floats.html | 0 .../src/docs/legacy/product/base/gap.html | 0 .../src/docs/legacy/product/base/grid.html | 0 .../src/docs/legacy/product/base/interactivity.html | 0 .../src/docs/legacy/product/base/lists.html | 0 .../src/docs/legacy/product/base/object-fit.html | 0 .../src/docs/legacy/product/base/opacity.html | 0 .../src/docs/legacy/product/base/outline.html | 0 .../src/docs/legacy/product/base/overflow.html | 0 .../src/docs/legacy/product/base/position.html | 0 .../src/docs/legacy/product/base/spacing.html | 0 .../src/docs/legacy/product/base/transitions.html | 0 .../src/docs/legacy/product/base/truncation.html | 0 .../legacy/product/base/vertical-alignment.html | 0 .../src/docs/legacy/product/base/visibility.html | 0 .../src/docs/legacy/product/base/width-height.html | 0 .../src/docs/legacy/product/base/z-index.html | 0 .../product/components/activity-indicator.html | 0 .../src/docs/legacy/product/components/avatars.html | 0 .../src/docs/legacy/product/components/badges.html | 0 .../src/docs/legacy/product/components/banners.html | 0 .../src/docs/legacy/product/components/bling.html | 0 .../docs/legacy/product/components/breadcrumbs.html | 0 .../legacy/product/components/button-groups.html | 0 .../src/docs/legacy/product/components/buttons.html | 0 .../src/docs/legacy/product/components/cards.html | 0 .../docs/legacy/product/components/checkbox.html | 0 .../docs/legacy/product/components/code-blocks.html | 0 .../src/docs/legacy/product/components/editor.html | 0 .../legacy/product/components/empty-states.html | 0 .../docs/legacy/product/components/expandable.html | 0 .../src/docs/legacy/product/components/inputs.html | 0 .../src/docs/legacy/product/components/labels.html | 0 .../legacy/product/components/link-previews.html | 0 .../src/docs/legacy/product/components/links.html | 0 .../src/docs/legacy/product/components/menus.html | 0 .../src/docs/legacy/product/components/modals.html | 0 .../docs/legacy/product/components/navigation.html | 0 .../src/docs/legacy/product/components/notices.html | 0 .../docs/legacy/product/components/page-titles.html | 0 .../docs/legacy/product/components/pagination.html | 0 .../docs/legacy/product/components/popovers.html | 0 .../legacy/product/components/post-summary.html | 0 .../legacy/product/components/progress-bars.html | 0 .../src/docs/legacy/product/components/prose.html | 0 .../src/docs/legacy/product/components/select.html | 0 .../legacy/product/components/sidebar-widgets.html | 0 .../docs/legacy/product/components/skeleton.html | 0 .../src/docs/legacy/product/components/spinner.html | 0 .../src/docs/legacy/product/components/tables.html | 0 .../src/docs/legacy/product/components/tags.html | 0 .../docs/legacy/product/components/textarea.html | 0 .../legacy/product/components/toggle-switch.html | 0 .../src/docs/legacy/product/components/topbar.html | 0 .../docs/legacy/product/components/uploader.html | 0 .../docs/legacy/product/components/user-cards.html | 0 .../legacy/product/foundation/accessibility.html | 0 .../product/foundation/color-fundamentals.html | 0 .../src/docs/legacy/product/foundation/colors.html | 0 .../src/docs/legacy/product/foundation/icons.html | 0 .../src/docs/legacy/product/foundation/spots.html | 0 .../src/docs/legacy/product/foundation/theming.html | 0 .../docs/legacy/product/foundation/typography.html | 0 .../{stacks-site => stacks-docs}/src/docs/private | 0 .../docs/public/brand/color/ColorBackgrounds.svelte | 0 .../public/brand/color/ColorBusinessProduct.svelte | 0 .../src/docs/public/brand/color/ColorCodes.svelte | 0 .../docs/public/brand/color/ColorHeadlines.svelte | 0 .../docs/public/brand/color/ColorHierarchy.svelte | 0 .../src/docs/public/brand/color/ColorLabels.svelte | 0 .../src/docs/public/brand/color/ColorSwatch.svelte | 0 .../src/docs/public/brand/color/avoid.svg | 0 .../src/docs/public/brand/color/b2b-balance.svg | 0 .../src/docs/public/brand/color/b2c-balance.svg | 0 .../src/docs/public/brand/color/colors.yaml | 0 .../src/docs/public/brand/color/index.md | 0 .../src/docs/public/brand/color/orange-usage.svg | 0 .../docs/public/brand/color/stack-color-combos.svg | 0 .../src/docs/public/brand/logo/LogoColors.svelte | 0 .../docs/public/brand/logo/LogoFormatLockups.svelte | 0 .../src/docs/public/brand/logo/LogoSymbol.svelte | 0 .../brand/logo/external-partnership-lockup.svg | 0 .../src/docs/public/brand/logo/index.md | 0 .../docs/public/brand/logo/logo-architecture.svg | 0 .../src/docs/public/brand/logo/logo-clearspace.svg | 0 .../src/docs/public/brand/logo/primary-lockup.svg | 0 .../src/docs/public/brand/logo/sub-brand-large.svg | 0 .../docs/public/brand/logo/sub-brand-lockups.svg | 0 .../src/docs/public/brand/logo/sub-brand-small.svg | 0 .../docs/public/brand/logo/symbol-lockup-circle.svg | 0 .../docs/public/brand/logo/symbol-lockup-square.svg | 0 .../src/docs/public/brand/logo/symbol.svg | 0 .../src/docs/public/brand/logo/things-to-avoid.svg | 0 .../src/docs/public/brand/motion.md | 0 .../src/docs/public/brand/stack-system/index.md | 0 .../public/brand/stack-system/stacks-2d-in-use.svg | 0 .../docs/public/brand/stack-system/stacks-2d.svg | 0 .../public/brand/stack-system/stacks-3d-avoid.svg | 0 .../public/brand/stack-system/stacks-3d-in-use.svg | 0 .../docs/public/brand/stack-system/stacks-3d.svg | 0 .../brand/stack-system/stacks-container-ex1.svg | 0 .../brand/stack-system/stacks-container-ex2.svg | 0 .../brand/stack-system/stacks-container-in-use.svg | 0 .../public/brand/stack-system/stacks-containers.svg | 0 .../brand/typography/TypographyAlignment.svelte | 0 .../brand/typography/TypographyCharacter.svelte | 0 .../public/brand/typography/TypographyNotch.svelte | 0 .../brand/typography/TypographySpacing.svelte | 0 .../brand/typography/TypographyWeights.svelte | 0 .../src/docs/public/brand/typography/index.md | 0 .../typography/typography-and-illustration.svg | 0 .../public/brand/typography/typography-avoid.svg | 0 .../typography-duotone-highlight-avoid.svg | 0 .../typography/typography-duotone-highlight.svg | 0 .../typography/typography-highlight-headline.svg | 0 .../typography/typography-monotone-highlight.svg | 0 .../typography/typography-sample-lowercase.svg | 0 .../brand/typography/typography-sample-spacing.svg | 0 .../brand/typography/typography-sample-x-cap.svg | 0 .../public/brand/typography/typography-skew.svg | 0 .../brand/typography/typography-stack-avoid.svg | 0 .../brand/typography/typography-stack-type.svg | 0 .../brand/typography/typography-stylistic-sets.svg | 0 .../src/docs/public/changelog.md | 0 .../src/docs/public/copy/naming.md | 0 .../src/docs/public/copy/styleguide.md | 0 .../src/docs/public/copy/voice.md | 0 .../src/docs/public/resources/fonts.md | 0 .../src/docs/public/system/base/backgrounds.md | 0 .../src/docs/public/system/base/border-radius.md | 0 .../src/docs/public/system/base/borders.md | 0 .../src/docs/public/system/base/box-shadow.md | 0 .../src/docs/public/system/base/box-sizing.md | 0 .../src/docs/public/system/base/current-color.md | 0 .../src/docs/public/system/base/cursors.md | 0 .../src/docs/public/system/base/display.md | 0 .../src/docs/public/system/base/flex.md | 0 .../src/docs/public/system/base/floats.md | 0 .../src/docs/public/system/base/gap.md | 0 .../src/docs/public/system/base/grid.md | 0 .../src/docs/public/system/base/interactivity.md | 0 .../src/docs/public/system/base/lists.md | 0 .../src/docs/public/system/base/object-fit.md | 0 .../src/docs/public/system/base/opacity.md | 0 .../src/docs/public/system/base/outline.md | 0 .../src/docs/public/system/base/overflow.md | 0 .../src/docs/public/system/base/position.md | 0 .../src/docs/public/system/base/spacing.md | 0 .../src/docs/public/system/base/transitions.md | 0 .../src/docs/public/system/base/truncation.md | 0 .../docs/public/system/base/vertical-alignment.md | 0 .../src/docs/public/system/base/visibility.md | 0 .../src/docs/public/system/base/width-height.md | 0 .../src/docs/public/system/base/z-index.md | 0 .../public/system/components/activity-indicator.md | 0 .../src/docs/public/system/components/avatars.md | 0 .../src/docs/public/system/components/badges.md | 0 .../src/docs/public/system/components/banners.md | 0 .../src/docs/public/system/components/bling.md | 0 .../docs/public/system/components/breadcrumbs.md | 0 .../docs/public/system/components/button-groups.md | 0 .../components/buttons/AnchorButtonTable.svelte | 0 .../components/buttons/BadgeButtonTable.svelte | 0 .../system/components/buttons/ButtonTable.svelte | 0 .../components/buttons/DropdownButtonTable.svelte | 0 .../components/buttons/LoadingButtonTable.svelte | 0 .../system/components/buttons/SizeTable.svelte | 0 .../components/buttons/ToggleButtonDemo.svelte | 0 .../docs/public/system/components/buttons/index.md | 0 .../src/docs/public/system/components/cards.md | 0 .../docs/public/system/components/code-blocks.md | 0 .../src/docs/public/system/components/editor.md | 0 .../docs/public/system/components/empty-states.md | 0 .../src/docs/public/system/components/expandable.md | 0 .../docs/public/system/components/link-previews.md | 0 .../src/docs/public/system/components/links.md | 0 .../src/docs/public/system/components/menus.md | 0 .../src/docs/public/system/components/modals.md | 0 .../src/docs/public/system/components/navigation.md | 0 .../src/docs/public/system/components/notices.md | 0 .../docs/public/system/components/page-titles.md | 0 .../src/docs/public/system/components/pagination.md | 0 .../src/docs/public/system/components/popovers.md | 0 .../docs/public/system/components/post-summary.md | 0 .../docs/public/system/components/progress-bars.md | 0 .../src/docs/public/system/components/prose.md | 0 .../public/system/components/sidebar-widgets.md | 0 .../src/docs/public/system/components/skeleton.md | 0 .../src/docs/public/system/components/spinner.md | 0 .../src/docs/public/system/components/tables.md | 0 .../src/docs/public/system/components/tags.md | 0 .../docs/public/system/components/toggle-switch.md | 0 .../src/docs/public/system/components/topbar.md | 0 .../src/docs/public/system/components/uploader.md | 0 .../src/docs/public/system/components/user-cards.md | 0 .../src/docs/public/system/develop/building.md | 0 .../public/system/develop/conditional-classes.md | 0 .../src/docs/public/system/develop/javascript.md | 0 .../src/docs/public/system/develop/using-stacks.md | 0 .../src/docs/public/system/forms/checkbox.md | 0 .../src/docs/public/system/forms/inputs.md | 0 .../src/docs/public/system/forms/labels.md | 0 .../src/docs/public/system/forms/select.md | 0 .../src/docs/public/system/forms/textarea.md | 0 .../docs/public/system/foundation/accessibility.md | 0 .../public/system/foundation/color-fundamentals.md | 0 .../src/docs/public/system/foundation/colors.md | 0 .../src/docs/public/system/foundation/icons.md | 0 .../src/docs/public/system/foundation/spots.md | 0 .../src/docs/public/system/foundation/theming.md | 0 .../src/docs/public/system/foundation/typography.md | 0 .../src/hooks.server.ts | 0 .../src/lib/assets/favicon.svg | 0 .../src/lib/assets/icon-lock.svg | 0 .../src/lib/assets/icons/brand.svg | 0 .../src/lib/assets/icons/copywriting.svg | 0 .../src/lib/assets/icons/email.svg | 0 .../src/lib/assets/icons/handbook.svg | 0 .../src/lib/assets/icons/product.svg | 0 .../src/lib/assets/icons/resources.svg | 0 .../src/lib/assets/logo.svg | 0 .../src/lib/copyToClipboard.ts | 0 .../{stacks-site => stacks-docs}/src/lib/index.ts | 0 .../src/routes/+error.svelte | 0 .../src/routes/+layout.server.ts | 0 .../src/routes/+layout.svelte | 0 .../src/routes/+page.svelte | 0 .../src/routes/[category]/+page.svelte | 0 .../[section]/[[subsection]]/+page.svelte | 0 .../[category]/[section]/[[subsection]]/+page.ts | 0 .../src/routes/auth/signin/+page.server.ts | 0 .../{stacks-site => stacks-docs}/src/structure.yaml | 0 .../static/fonts/IBMPlexMono-Regular.woff2 | Bin .../static/fonts/StackSansHeadline-Bold.otf | Bin .../static/fonts/StackSansHeadline-Extralight.otf | Bin .../static/fonts/StackSansHeadline-Light.otf | Bin .../static/fonts/StackSansHeadline-Medium.otf | Bin .../static/fonts/StackSansHeadline-Regular.otf | Bin .../static/fonts/StackSansHeadline[wght].woff2 | Bin .../static/fonts/StackSansText[wght].woff2 | Bin .../static/images/heros/color.svg | 0 .../static/images/heros/home.svg | 0 .../static/images/heros/icons.svg | 0 .../static/images/heros/illustration.svg | 0 .../static/images/heros/logo.svg | 0 .../static/images/heros/motion.svg | 0 .../static/images/heros/naming.svg | 0 .../static/images/heros/stack-system.svg | 0 .../static/images/heros/strategy.svg | 0 .../static/images/heros/styleguide.svg | 0 .../static/images/heros/typography.svg | 0 .../static/images/heros/voice.svg | 0 .../{stacks-site => stacks-docs}/static/robots.txt | 0 .../{stacks-site => stacks-docs}/svelte.config.js | 0 packages/{stacks-site => stacks-docs}/tsconfig.json | 0 .../{stacks-site => stacks-docs}/vite.config.ts | 0 322 files changed, 0 insertions(+), 0 deletions(-) rename packages/{stacks-site => stacks-docs}/.gitignore (100%) rename packages/{stacks-site => stacks-docs}/.npmrc (100%) rename packages/{stacks-site => stacks-docs}/README.md (100%) rename packages/{stacks-site => stacks-docs}/eslint.config.js (100%) rename packages/{stacks-site => stacks-docs}/netlify-setup.sh (100%) rename packages/{stacks-site => stacks-docs}/package.json (100%) rename packages/{stacks-site => stacks-docs}/src/app.css (100%) rename packages/{stacks-site => stacks-docs}/src/app.html (100%) rename packages/{stacks-site => stacks-docs}/src/auth.ts (100%) rename packages/{stacks-site => stacks-docs}/src/components/Contents.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/components/Cta.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/components/Gallery.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/components/Grid.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/components/GridColumn.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/components/Navigation.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/components/Search.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/components/Slide.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/components/ThemeToggle.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/accessibility.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/activity-indicator.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/atomics.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/avatars-component.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/backgrounds.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/badges.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/banners.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/bling.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/borders.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/breadcrumbs.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/button-groups.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/buttons.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/colors.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/flex.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/gap.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/grid.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/inputs.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/link-previews.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/links.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/menu.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/modals.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/navigation.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/notices.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/pagination-component.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/popovers.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/position.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/post-summary.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/site-navigation.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/site.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/skeleton.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/spacing.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/spinner.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/stacks-icons.js (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/tables.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/tags-component.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/topbar.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/typography.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/uploader-component.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/_data/user-cards-component.json (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/base/backgrounds.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/base/border-radius.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/base/borders.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/base/box-shadow.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/base/box-sizing.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/base/current-color.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/base/cursors.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/base/display.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/base/flex.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/base/floats.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/base/gap.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/base/grid.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/base/interactivity.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/base/lists.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/base/object-fit.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/base/opacity.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/base/outline.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/base/overflow.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/base/position.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/base/spacing.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/base/transitions.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/base/truncation.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/base/vertical-alignment.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/base/visibility.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/base/width-height.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/base/z-index.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/activity-indicator.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/avatars.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/badges.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/banners.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/bling.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/breadcrumbs.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/button-groups.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/buttons.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/cards.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/checkbox.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/code-blocks.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/editor.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/empty-states.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/expandable.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/inputs.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/labels.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/link-previews.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/links.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/menus.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/modals.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/navigation.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/notices.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/page-titles.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/pagination.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/popovers.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/post-summary.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/progress-bars.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/prose.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/select.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/sidebar-widgets.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/skeleton.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/spinner.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/tables.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/tags.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/textarea.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/toggle-switch.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/topbar.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/uploader.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/components/user-cards.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/foundation/accessibility.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/foundation/color-fundamentals.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/foundation/colors.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/foundation/icons.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/foundation/spots.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/foundation/theming.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/legacy/product/foundation/typography.html (100%) rename packages/{stacks-site => stacks-docs}/src/docs/private (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/color/ColorBackgrounds.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/color/ColorBusinessProduct.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/color/ColorCodes.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/color/ColorHeadlines.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/color/ColorHierarchy.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/color/ColorLabels.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/color/ColorSwatch.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/color/avoid.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/color/b2b-balance.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/color/b2c-balance.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/color/colors.yaml (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/color/index.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/color/orange-usage.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/color/stack-color-combos.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/logo/LogoColors.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/logo/LogoFormatLockups.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/logo/LogoSymbol.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/logo/external-partnership-lockup.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/logo/index.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/logo/logo-architecture.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/logo/logo-clearspace.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/logo/primary-lockup.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/logo/sub-brand-large.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/logo/sub-brand-lockups.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/logo/sub-brand-small.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/logo/symbol-lockup-circle.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/logo/symbol-lockup-square.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/logo/symbol.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/logo/things-to-avoid.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/motion.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/stack-system/index.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/stack-system/stacks-2d-in-use.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/stack-system/stacks-2d.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/stack-system/stacks-3d-avoid.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/stack-system/stacks-3d-in-use.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/stack-system/stacks-3d.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/stack-system/stacks-container-ex1.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/stack-system/stacks-container-ex2.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/stack-system/stacks-container-in-use.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/stack-system/stacks-containers.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/typography/TypographyAlignment.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/typography/TypographyCharacter.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/typography/TypographyNotch.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/typography/TypographySpacing.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/typography/TypographyWeights.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/typography/index.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/typography/typography-and-illustration.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/typography/typography-avoid.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/typography/typography-duotone-highlight-avoid.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/typography/typography-duotone-highlight.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/typography/typography-highlight-headline.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/typography/typography-monotone-highlight.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/typography/typography-sample-lowercase.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/typography/typography-sample-spacing.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/typography/typography-sample-x-cap.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/typography/typography-skew.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/typography/typography-stack-avoid.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/typography/typography-stack-type.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/brand/typography/typography-stylistic-sets.svg (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/changelog.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/copy/naming.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/copy/styleguide.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/copy/voice.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/resources/fonts.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/base/backgrounds.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/base/border-radius.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/base/borders.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/base/box-shadow.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/base/box-sizing.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/base/current-color.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/base/cursors.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/base/display.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/base/flex.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/base/floats.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/base/gap.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/base/grid.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/base/interactivity.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/base/lists.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/base/object-fit.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/base/opacity.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/base/outline.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/base/overflow.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/base/position.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/base/spacing.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/base/transitions.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/base/truncation.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/base/vertical-alignment.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/base/visibility.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/base/width-height.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/base/z-index.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/activity-indicator.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/avatars.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/badges.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/banners.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/bling.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/breadcrumbs.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/button-groups.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/buttons/AnchorButtonTable.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/buttons/BadgeButtonTable.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/buttons/ButtonTable.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/buttons/DropdownButtonTable.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/buttons/LoadingButtonTable.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/buttons/SizeTable.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/buttons/ToggleButtonDemo.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/buttons/index.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/cards.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/code-blocks.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/editor.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/empty-states.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/expandable.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/link-previews.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/links.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/menus.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/modals.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/navigation.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/notices.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/page-titles.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/pagination.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/popovers.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/post-summary.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/progress-bars.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/prose.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/sidebar-widgets.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/skeleton.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/spinner.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/tables.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/tags.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/toggle-switch.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/topbar.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/uploader.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/components/user-cards.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/develop/building.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/develop/conditional-classes.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/develop/javascript.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/develop/using-stacks.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/forms/checkbox.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/forms/inputs.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/forms/labels.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/forms/select.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/forms/textarea.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/foundation/accessibility.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/foundation/color-fundamentals.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/foundation/colors.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/foundation/icons.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/foundation/spots.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/foundation/theming.md (100%) rename packages/{stacks-site => stacks-docs}/src/docs/public/system/foundation/typography.md (100%) rename packages/{stacks-site => stacks-docs}/src/hooks.server.ts (100%) rename packages/{stacks-site => stacks-docs}/src/lib/assets/favicon.svg (100%) rename packages/{stacks-site => stacks-docs}/src/lib/assets/icon-lock.svg (100%) rename packages/{stacks-site => stacks-docs}/src/lib/assets/icons/brand.svg (100%) rename packages/{stacks-site => stacks-docs}/src/lib/assets/icons/copywriting.svg (100%) rename packages/{stacks-site => stacks-docs}/src/lib/assets/icons/email.svg (100%) rename packages/{stacks-site => stacks-docs}/src/lib/assets/icons/handbook.svg (100%) rename packages/{stacks-site => stacks-docs}/src/lib/assets/icons/product.svg (100%) rename packages/{stacks-site => stacks-docs}/src/lib/assets/icons/resources.svg (100%) rename packages/{stacks-site => stacks-docs}/src/lib/assets/logo.svg (100%) rename packages/{stacks-site => stacks-docs}/src/lib/copyToClipboard.ts (100%) rename packages/{stacks-site => stacks-docs}/src/lib/index.ts (100%) rename packages/{stacks-site => stacks-docs}/src/routes/+error.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/routes/+layout.server.ts (100%) rename packages/{stacks-site => stacks-docs}/src/routes/+layout.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/routes/+page.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/routes/[category]/+page.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/routes/[category]/[section]/[[subsection]]/+page.svelte (100%) rename packages/{stacks-site => stacks-docs}/src/routes/[category]/[section]/[[subsection]]/+page.ts (100%) rename packages/{stacks-site => stacks-docs}/src/routes/auth/signin/+page.server.ts (100%) rename packages/{stacks-site => stacks-docs}/src/structure.yaml (100%) rename packages/{stacks-site => stacks-docs}/static/fonts/IBMPlexMono-Regular.woff2 (100%) rename packages/{stacks-site => stacks-docs}/static/fonts/StackSansHeadline-Bold.otf (100%) rename packages/{stacks-site => stacks-docs}/static/fonts/StackSansHeadline-Extralight.otf (100%) rename packages/{stacks-site => stacks-docs}/static/fonts/StackSansHeadline-Light.otf (100%) rename packages/{stacks-site => stacks-docs}/static/fonts/StackSansHeadline-Medium.otf (100%) rename packages/{stacks-site => stacks-docs}/static/fonts/StackSansHeadline-Regular.otf (100%) rename packages/{stacks-site => stacks-docs}/static/fonts/StackSansHeadline[wght].woff2 (100%) rename packages/{stacks-site => stacks-docs}/static/fonts/StackSansText[wght].woff2 (100%) rename packages/{stacks-site => stacks-docs}/static/images/heros/color.svg (100%) rename packages/{stacks-site => stacks-docs}/static/images/heros/home.svg (100%) rename packages/{stacks-site => stacks-docs}/static/images/heros/icons.svg (100%) rename packages/{stacks-site => stacks-docs}/static/images/heros/illustration.svg (100%) rename packages/{stacks-site => stacks-docs}/static/images/heros/logo.svg (100%) rename packages/{stacks-site => stacks-docs}/static/images/heros/motion.svg (100%) rename packages/{stacks-site => stacks-docs}/static/images/heros/naming.svg (100%) rename packages/{stacks-site => stacks-docs}/static/images/heros/stack-system.svg (100%) rename packages/{stacks-site => stacks-docs}/static/images/heros/strategy.svg (100%) rename packages/{stacks-site => stacks-docs}/static/images/heros/styleguide.svg (100%) rename packages/{stacks-site => stacks-docs}/static/images/heros/typography.svg (100%) rename packages/{stacks-site => stacks-docs}/static/images/heros/voice.svg (100%) rename packages/{stacks-site => stacks-docs}/static/robots.txt (100%) rename packages/{stacks-site => stacks-docs}/svelte.config.js (100%) rename packages/{stacks-site => stacks-docs}/tsconfig.json (100%) rename packages/{stacks-site => stacks-docs}/vite.config.ts (100%) diff --git a/packages/stacks-site/.gitignore b/packages/stacks-docs/.gitignore similarity index 100% rename from packages/stacks-site/.gitignore rename to packages/stacks-docs/.gitignore diff --git a/packages/stacks-site/.npmrc b/packages/stacks-docs/.npmrc similarity index 100% rename from packages/stacks-site/.npmrc rename to packages/stacks-docs/.npmrc diff --git a/packages/stacks-site/README.md b/packages/stacks-docs/README.md similarity index 100% rename from packages/stacks-site/README.md rename to packages/stacks-docs/README.md diff --git a/packages/stacks-site/eslint.config.js b/packages/stacks-docs/eslint.config.js similarity index 100% rename from packages/stacks-site/eslint.config.js rename to packages/stacks-docs/eslint.config.js diff --git a/packages/stacks-site/netlify-setup.sh b/packages/stacks-docs/netlify-setup.sh similarity index 100% rename from packages/stacks-site/netlify-setup.sh rename to packages/stacks-docs/netlify-setup.sh diff --git a/packages/stacks-site/package.json b/packages/stacks-docs/package.json similarity index 100% rename from packages/stacks-site/package.json rename to packages/stacks-docs/package.json diff --git a/packages/stacks-site/src/app.css b/packages/stacks-docs/src/app.css similarity index 100% rename from packages/stacks-site/src/app.css rename to packages/stacks-docs/src/app.css diff --git a/packages/stacks-site/src/app.html b/packages/stacks-docs/src/app.html similarity index 100% rename from packages/stacks-site/src/app.html rename to packages/stacks-docs/src/app.html diff --git a/packages/stacks-site/src/auth.ts b/packages/stacks-docs/src/auth.ts similarity index 100% rename from packages/stacks-site/src/auth.ts rename to packages/stacks-docs/src/auth.ts diff --git a/packages/stacks-site/src/components/Contents.svelte b/packages/stacks-docs/src/components/Contents.svelte similarity index 100% rename from packages/stacks-site/src/components/Contents.svelte rename to packages/stacks-docs/src/components/Contents.svelte diff --git a/packages/stacks-site/src/components/Cta.svelte b/packages/stacks-docs/src/components/Cta.svelte similarity index 100% rename from packages/stacks-site/src/components/Cta.svelte rename to packages/stacks-docs/src/components/Cta.svelte diff --git a/packages/stacks-site/src/components/Gallery.svelte b/packages/stacks-docs/src/components/Gallery.svelte similarity index 100% rename from packages/stacks-site/src/components/Gallery.svelte rename to packages/stacks-docs/src/components/Gallery.svelte diff --git a/packages/stacks-site/src/components/Grid.svelte b/packages/stacks-docs/src/components/Grid.svelte similarity index 100% rename from packages/stacks-site/src/components/Grid.svelte rename to packages/stacks-docs/src/components/Grid.svelte diff --git a/packages/stacks-site/src/components/GridColumn.svelte b/packages/stacks-docs/src/components/GridColumn.svelte similarity index 100% rename from packages/stacks-site/src/components/GridColumn.svelte rename to packages/stacks-docs/src/components/GridColumn.svelte diff --git a/packages/stacks-site/src/components/Navigation.svelte b/packages/stacks-docs/src/components/Navigation.svelte similarity index 100% rename from packages/stacks-site/src/components/Navigation.svelte rename to packages/stacks-docs/src/components/Navigation.svelte diff --git a/packages/stacks-site/src/components/Search.svelte b/packages/stacks-docs/src/components/Search.svelte similarity index 100% rename from packages/stacks-site/src/components/Search.svelte rename to packages/stacks-docs/src/components/Search.svelte diff --git a/packages/stacks-site/src/components/Slide.svelte b/packages/stacks-docs/src/components/Slide.svelte similarity index 100% rename from packages/stacks-site/src/components/Slide.svelte rename to packages/stacks-docs/src/components/Slide.svelte diff --git a/packages/stacks-site/src/components/ThemeToggle.svelte b/packages/stacks-docs/src/components/ThemeToggle.svelte similarity index 100% rename from packages/stacks-site/src/components/ThemeToggle.svelte rename to packages/stacks-docs/src/components/ThemeToggle.svelte diff --git a/packages/stacks-site/src/docs/legacy/_data/accessibility.json b/packages/stacks-docs/src/docs/legacy/_data/accessibility.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/accessibility.json rename to packages/stacks-docs/src/docs/legacy/_data/accessibility.json diff --git a/packages/stacks-site/src/docs/legacy/_data/activity-indicator.json b/packages/stacks-docs/src/docs/legacy/_data/activity-indicator.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/activity-indicator.json rename to packages/stacks-docs/src/docs/legacy/_data/activity-indicator.json diff --git a/packages/stacks-site/src/docs/legacy/_data/atomics.json b/packages/stacks-docs/src/docs/legacy/_data/atomics.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/atomics.json rename to packages/stacks-docs/src/docs/legacy/_data/atomics.json diff --git a/packages/stacks-site/src/docs/legacy/_data/avatars-component.json b/packages/stacks-docs/src/docs/legacy/_data/avatars-component.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/avatars-component.json rename to packages/stacks-docs/src/docs/legacy/_data/avatars-component.json diff --git a/packages/stacks-site/src/docs/legacy/_data/backgrounds.json b/packages/stacks-docs/src/docs/legacy/_data/backgrounds.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/backgrounds.json rename to packages/stacks-docs/src/docs/legacy/_data/backgrounds.json diff --git a/packages/stacks-site/src/docs/legacy/_data/badges.json b/packages/stacks-docs/src/docs/legacy/_data/badges.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/badges.json rename to packages/stacks-docs/src/docs/legacy/_data/badges.json diff --git a/packages/stacks-site/src/docs/legacy/_data/banners.json b/packages/stacks-docs/src/docs/legacy/_data/banners.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/banners.json rename to packages/stacks-docs/src/docs/legacy/_data/banners.json diff --git a/packages/stacks-site/src/docs/legacy/_data/bling.json b/packages/stacks-docs/src/docs/legacy/_data/bling.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/bling.json rename to packages/stacks-docs/src/docs/legacy/_data/bling.json diff --git a/packages/stacks-site/src/docs/legacy/_data/borders.json b/packages/stacks-docs/src/docs/legacy/_data/borders.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/borders.json rename to packages/stacks-docs/src/docs/legacy/_data/borders.json diff --git a/packages/stacks-site/src/docs/legacy/_data/breadcrumbs.json b/packages/stacks-docs/src/docs/legacy/_data/breadcrumbs.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/breadcrumbs.json rename to packages/stacks-docs/src/docs/legacy/_data/breadcrumbs.json diff --git a/packages/stacks-site/src/docs/legacy/_data/button-groups.json b/packages/stacks-docs/src/docs/legacy/_data/button-groups.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/button-groups.json rename to packages/stacks-docs/src/docs/legacy/_data/button-groups.json diff --git a/packages/stacks-site/src/docs/legacy/_data/buttons.json b/packages/stacks-docs/src/docs/legacy/_data/buttons.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/buttons.json rename to packages/stacks-docs/src/docs/legacy/_data/buttons.json diff --git a/packages/stacks-site/src/docs/legacy/_data/colors.json b/packages/stacks-docs/src/docs/legacy/_data/colors.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/colors.json rename to packages/stacks-docs/src/docs/legacy/_data/colors.json diff --git a/packages/stacks-site/src/docs/legacy/_data/flex.json b/packages/stacks-docs/src/docs/legacy/_data/flex.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/flex.json rename to packages/stacks-docs/src/docs/legacy/_data/flex.json diff --git a/packages/stacks-site/src/docs/legacy/_data/gap.json b/packages/stacks-docs/src/docs/legacy/_data/gap.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/gap.json rename to packages/stacks-docs/src/docs/legacy/_data/gap.json diff --git a/packages/stacks-site/src/docs/legacy/_data/grid.json b/packages/stacks-docs/src/docs/legacy/_data/grid.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/grid.json rename to packages/stacks-docs/src/docs/legacy/_data/grid.json diff --git a/packages/stacks-site/src/docs/legacy/_data/inputs.json b/packages/stacks-docs/src/docs/legacy/_data/inputs.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/inputs.json rename to packages/stacks-docs/src/docs/legacy/_data/inputs.json diff --git a/packages/stacks-site/src/docs/legacy/_data/link-previews.json b/packages/stacks-docs/src/docs/legacy/_data/link-previews.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/link-previews.json rename to packages/stacks-docs/src/docs/legacy/_data/link-previews.json diff --git a/packages/stacks-site/src/docs/legacy/_data/links.json b/packages/stacks-docs/src/docs/legacy/_data/links.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/links.json rename to packages/stacks-docs/src/docs/legacy/_data/links.json diff --git a/packages/stacks-site/src/docs/legacy/_data/menu.json b/packages/stacks-docs/src/docs/legacy/_data/menu.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/menu.json rename to packages/stacks-docs/src/docs/legacy/_data/menu.json diff --git a/packages/stacks-site/src/docs/legacy/_data/modals.json b/packages/stacks-docs/src/docs/legacy/_data/modals.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/modals.json rename to packages/stacks-docs/src/docs/legacy/_data/modals.json diff --git a/packages/stacks-site/src/docs/legacy/_data/navigation.json b/packages/stacks-docs/src/docs/legacy/_data/navigation.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/navigation.json rename to packages/stacks-docs/src/docs/legacy/_data/navigation.json diff --git a/packages/stacks-site/src/docs/legacy/_data/notices.json b/packages/stacks-docs/src/docs/legacy/_data/notices.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/notices.json rename to packages/stacks-docs/src/docs/legacy/_data/notices.json diff --git a/packages/stacks-site/src/docs/legacy/_data/pagination-component.json b/packages/stacks-docs/src/docs/legacy/_data/pagination-component.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/pagination-component.json rename to packages/stacks-docs/src/docs/legacy/_data/pagination-component.json diff --git a/packages/stacks-site/src/docs/legacy/_data/popovers.json b/packages/stacks-docs/src/docs/legacy/_data/popovers.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/popovers.json rename to packages/stacks-docs/src/docs/legacy/_data/popovers.json diff --git a/packages/stacks-site/src/docs/legacy/_data/position.json b/packages/stacks-docs/src/docs/legacy/_data/position.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/position.json rename to packages/stacks-docs/src/docs/legacy/_data/position.json diff --git a/packages/stacks-site/src/docs/legacy/_data/post-summary.json b/packages/stacks-docs/src/docs/legacy/_data/post-summary.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/post-summary.json rename to packages/stacks-docs/src/docs/legacy/_data/post-summary.json diff --git a/packages/stacks-site/src/docs/legacy/_data/site-navigation.json b/packages/stacks-docs/src/docs/legacy/_data/site-navigation.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/site-navigation.json rename to packages/stacks-docs/src/docs/legacy/_data/site-navigation.json diff --git a/packages/stacks-site/src/docs/legacy/_data/site.json b/packages/stacks-docs/src/docs/legacy/_data/site.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/site.json rename to packages/stacks-docs/src/docs/legacy/_data/site.json diff --git a/packages/stacks-site/src/docs/legacy/_data/skeleton.json b/packages/stacks-docs/src/docs/legacy/_data/skeleton.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/skeleton.json rename to packages/stacks-docs/src/docs/legacy/_data/skeleton.json diff --git a/packages/stacks-site/src/docs/legacy/_data/spacing.json b/packages/stacks-docs/src/docs/legacy/_data/spacing.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/spacing.json rename to packages/stacks-docs/src/docs/legacy/_data/spacing.json diff --git a/packages/stacks-site/src/docs/legacy/_data/spinner.json b/packages/stacks-docs/src/docs/legacy/_data/spinner.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/spinner.json rename to packages/stacks-docs/src/docs/legacy/_data/spinner.json diff --git a/packages/stacks-site/src/docs/legacy/_data/stacks-icons.js b/packages/stacks-docs/src/docs/legacy/_data/stacks-icons.js similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/stacks-icons.js rename to packages/stacks-docs/src/docs/legacy/_data/stacks-icons.js diff --git a/packages/stacks-site/src/docs/legacy/_data/tables.json b/packages/stacks-docs/src/docs/legacy/_data/tables.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/tables.json rename to packages/stacks-docs/src/docs/legacy/_data/tables.json diff --git a/packages/stacks-site/src/docs/legacy/_data/tags-component.json b/packages/stacks-docs/src/docs/legacy/_data/tags-component.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/tags-component.json rename to packages/stacks-docs/src/docs/legacy/_data/tags-component.json diff --git a/packages/stacks-site/src/docs/legacy/_data/topbar.json b/packages/stacks-docs/src/docs/legacy/_data/topbar.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/topbar.json rename to packages/stacks-docs/src/docs/legacy/_data/topbar.json diff --git a/packages/stacks-site/src/docs/legacy/_data/typography.json b/packages/stacks-docs/src/docs/legacy/_data/typography.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/typography.json rename to packages/stacks-docs/src/docs/legacy/_data/typography.json diff --git a/packages/stacks-site/src/docs/legacy/_data/uploader-component.json b/packages/stacks-docs/src/docs/legacy/_data/uploader-component.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/uploader-component.json rename to packages/stacks-docs/src/docs/legacy/_data/uploader-component.json diff --git a/packages/stacks-site/src/docs/legacy/_data/user-cards-component.json b/packages/stacks-docs/src/docs/legacy/_data/user-cards-component.json similarity index 100% rename from packages/stacks-site/src/docs/legacy/_data/user-cards-component.json rename to packages/stacks-docs/src/docs/legacy/_data/user-cards-component.json diff --git a/packages/stacks-site/src/docs/legacy/product/base/backgrounds.html b/packages/stacks-docs/src/docs/legacy/product/base/backgrounds.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/base/backgrounds.html rename to packages/stacks-docs/src/docs/legacy/product/base/backgrounds.html diff --git a/packages/stacks-site/src/docs/legacy/product/base/border-radius.html b/packages/stacks-docs/src/docs/legacy/product/base/border-radius.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/base/border-radius.html rename to packages/stacks-docs/src/docs/legacy/product/base/border-radius.html diff --git a/packages/stacks-site/src/docs/legacy/product/base/borders.html b/packages/stacks-docs/src/docs/legacy/product/base/borders.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/base/borders.html rename to packages/stacks-docs/src/docs/legacy/product/base/borders.html diff --git a/packages/stacks-site/src/docs/legacy/product/base/box-shadow.html b/packages/stacks-docs/src/docs/legacy/product/base/box-shadow.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/base/box-shadow.html rename to packages/stacks-docs/src/docs/legacy/product/base/box-shadow.html diff --git a/packages/stacks-site/src/docs/legacy/product/base/box-sizing.html b/packages/stacks-docs/src/docs/legacy/product/base/box-sizing.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/base/box-sizing.html rename to packages/stacks-docs/src/docs/legacy/product/base/box-sizing.html diff --git a/packages/stacks-site/src/docs/legacy/product/base/current-color.html b/packages/stacks-docs/src/docs/legacy/product/base/current-color.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/base/current-color.html rename to packages/stacks-docs/src/docs/legacy/product/base/current-color.html diff --git a/packages/stacks-site/src/docs/legacy/product/base/cursors.html b/packages/stacks-docs/src/docs/legacy/product/base/cursors.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/base/cursors.html rename to packages/stacks-docs/src/docs/legacy/product/base/cursors.html diff --git a/packages/stacks-site/src/docs/legacy/product/base/display.html b/packages/stacks-docs/src/docs/legacy/product/base/display.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/base/display.html rename to packages/stacks-docs/src/docs/legacy/product/base/display.html diff --git a/packages/stacks-site/src/docs/legacy/product/base/flex.html b/packages/stacks-docs/src/docs/legacy/product/base/flex.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/base/flex.html rename to packages/stacks-docs/src/docs/legacy/product/base/flex.html diff --git a/packages/stacks-site/src/docs/legacy/product/base/floats.html b/packages/stacks-docs/src/docs/legacy/product/base/floats.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/base/floats.html rename to packages/stacks-docs/src/docs/legacy/product/base/floats.html diff --git a/packages/stacks-site/src/docs/legacy/product/base/gap.html b/packages/stacks-docs/src/docs/legacy/product/base/gap.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/base/gap.html rename to packages/stacks-docs/src/docs/legacy/product/base/gap.html diff --git a/packages/stacks-site/src/docs/legacy/product/base/grid.html b/packages/stacks-docs/src/docs/legacy/product/base/grid.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/base/grid.html rename to packages/stacks-docs/src/docs/legacy/product/base/grid.html diff --git a/packages/stacks-site/src/docs/legacy/product/base/interactivity.html b/packages/stacks-docs/src/docs/legacy/product/base/interactivity.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/base/interactivity.html rename to packages/stacks-docs/src/docs/legacy/product/base/interactivity.html diff --git a/packages/stacks-site/src/docs/legacy/product/base/lists.html b/packages/stacks-docs/src/docs/legacy/product/base/lists.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/base/lists.html rename to packages/stacks-docs/src/docs/legacy/product/base/lists.html diff --git a/packages/stacks-site/src/docs/legacy/product/base/object-fit.html b/packages/stacks-docs/src/docs/legacy/product/base/object-fit.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/base/object-fit.html rename to packages/stacks-docs/src/docs/legacy/product/base/object-fit.html diff --git a/packages/stacks-site/src/docs/legacy/product/base/opacity.html b/packages/stacks-docs/src/docs/legacy/product/base/opacity.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/base/opacity.html rename to packages/stacks-docs/src/docs/legacy/product/base/opacity.html diff --git a/packages/stacks-site/src/docs/legacy/product/base/outline.html b/packages/stacks-docs/src/docs/legacy/product/base/outline.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/base/outline.html rename to packages/stacks-docs/src/docs/legacy/product/base/outline.html diff --git a/packages/stacks-site/src/docs/legacy/product/base/overflow.html b/packages/stacks-docs/src/docs/legacy/product/base/overflow.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/base/overflow.html rename to packages/stacks-docs/src/docs/legacy/product/base/overflow.html diff --git a/packages/stacks-site/src/docs/legacy/product/base/position.html b/packages/stacks-docs/src/docs/legacy/product/base/position.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/base/position.html rename to packages/stacks-docs/src/docs/legacy/product/base/position.html diff --git a/packages/stacks-site/src/docs/legacy/product/base/spacing.html b/packages/stacks-docs/src/docs/legacy/product/base/spacing.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/base/spacing.html rename to packages/stacks-docs/src/docs/legacy/product/base/spacing.html diff --git a/packages/stacks-site/src/docs/legacy/product/base/transitions.html b/packages/stacks-docs/src/docs/legacy/product/base/transitions.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/base/transitions.html rename to packages/stacks-docs/src/docs/legacy/product/base/transitions.html diff --git a/packages/stacks-site/src/docs/legacy/product/base/truncation.html b/packages/stacks-docs/src/docs/legacy/product/base/truncation.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/base/truncation.html rename to packages/stacks-docs/src/docs/legacy/product/base/truncation.html diff --git a/packages/stacks-site/src/docs/legacy/product/base/vertical-alignment.html b/packages/stacks-docs/src/docs/legacy/product/base/vertical-alignment.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/base/vertical-alignment.html rename to packages/stacks-docs/src/docs/legacy/product/base/vertical-alignment.html diff --git a/packages/stacks-site/src/docs/legacy/product/base/visibility.html b/packages/stacks-docs/src/docs/legacy/product/base/visibility.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/base/visibility.html rename to packages/stacks-docs/src/docs/legacy/product/base/visibility.html diff --git a/packages/stacks-site/src/docs/legacy/product/base/width-height.html b/packages/stacks-docs/src/docs/legacy/product/base/width-height.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/base/width-height.html rename to packages/stacks-docs/src/docs/legacy/product/base/width-height.html diff --git a/packages/stacks-site/src/docs/legacy/product/base/z-index.html b/packages/stacks-docs/src/docs/legacy/product/base/z-index.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/base/z-index.html rename to packages/stacks-docs/src/docs/legacy/product/base/z-index.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/activity-indicator.html b/packages/stacks-docs/src/docs/legacy/product/components/activity-indicator.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/activity-indicator.html rename to packages/stacks-docs/src/docs/legacy/product/components/activity-indicator.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/avatars.html b/packages/stacks-docs/src/docs/legacy/product/components/avatars.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/avatars.html rename to packages/stacks-docs/src/docs/legacy/product/components/avatars.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/badges.html b/packages/stacks-docs/src/docs/legacy/product/components/badges.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/badges.html rename to packages/stacks-docs/src/docs/legacy/product/components/badges.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/banners.html b/packages/stacks-docs/src/docs/legacy/product/components/banners.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/banners.html rename to packages/stacks-docs/src/docs/legacy/product/components/banners.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/bling.html b/packages/stacks-docs/src/docs/legacy/product/components/bling.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/bling.html rename to packages/stacks-docs/src/docs/legacy/product/components/bling.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/breadcrumbs.html b/packages/stacks-docs/src/docs/legacy/product/components/breadcrumbs.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/breadcrumbs.html rename to packages/stacks-docs/src/docs/legacy/product/components/breadcrumbs.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/button-groups.html b/packages/stacks-docs/src/docs/legacy/product/components/button-groups.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/button-groups.html rename to packages/stacks-docs/src/docs/legacy/product/components/button-groups.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/buttons.html b/packages/stacks-docs/src/docs/legacy/product/components/buttons.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/buttons.html rename to packages/stacks-docs/src/docs/legacy/product/components/buttons.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/cards.html b/packages/stacks-docs/src/docs/legacy/product/components/cards.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/cards.html rename to packages/stacks-docs/src/docs/legacy/product/components/cards.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/checkbox.html b/packages/stacks-docs/src/docs/legacy/product/components/checkbox.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/checkbox.html rename to packages/stacks-docs/src/docs/legacy/product/components/checkbox.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/code-blocks.html b/packages/stacks-docs/src/docs/legacy/product/components/code-blocks.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/code-blocks.html rename to packages/stacks-docs/src/docs/legacy/product/components/code-blocks.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/editor.html b/packages/stacks-docs/src/docs/legacy/product/components/editor.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/editor.html rename to packages/stacks-docs/src/docs/legacy/product/components/editor.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/empty-states.html b/packages/stacks-docs/src/docs/legacy/product/components/empty-states.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/empty-states.html rename to packages/stacks-docs/src/docs/legacy/product/components/empty-states.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/expandable.html b/packages/stacks-docs/src/docs/legacy/product/components/expandable.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/expandable.html rename to packages/stacks-docs/src/docs/legacy/product/components/expandable.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/inputs.html b/packages/stacks-docs/src/docs/legacy/product/components/inputs.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/inputs.html rename to packages/stacks-docs/src/docs/legacy/product/components/inputs.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/labels.html b/packages/stacks-docs/src/docs/legacy/product/components/labels.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/labels.html rename to packages/stacks-docs/src/docs/legacy/product/components/labels.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/link-previews.html b/packages/stacks-docs/src/docs/legacy/product/components/link-previews.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/link-previews.html rename to packages/stacks-docs/src/docs/legacy/product/components/link-previews.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/links.html b/packages/stacks-docs/src/docs/legacy/product/components/links.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/links.html rename to packages/stacks-docs/src/docs/legacy/product/components/links.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/menus.html b/packages/stacks-docs/src/docs/legacy/product/components/menus.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/menus.html rename to packages/stacks-docs/src/docs/legacy/product/components/menus.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/modals.html b/packages/stacks-docs/src/docs/legacy/product/components/modals.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/modals.html rename to packages/stacks-docs/src/docs/legacy/product/components/modals.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/navigation.html b/packages/stacks-docs/src/docs/legacy/product/components/navigation.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/navigation.html rename to packages/stacks-docs/src/docs/legacy/product/components/navigation.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/notices.html b/packages/stacks-docs/src/docs/legacy/product/components/notices.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/notices.html rename to packages/stacks-docs/src/docs/legacy/product/components/notices.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/page-titles.html b/packages/stacks-docs/src/docs/legacy/product/components/page-titles.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/page-titles.html rename to packages/stacks-docs/src/docs/legacy/product/components/page-titles.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/pagination.html b/packages/stacks-docs/src/docs/legacy/product/components/pagination.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/pagination.html rename to packages/stacks-docs/src/docs/legacy/product/components/pagination.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/popovers.html b/packages/stacks-docs/src/docs/legacy/product/components/popovers.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/popovers.html rename to packages/stacks-docs/src/docs/legacy/product/components/popovers.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/post-summary.html b/packages/stacks-docs/src/docs/legacy/product/components/post-summary.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/post-summary.html rename to packages/stacks-docs/src/docs/legacy/product/components/post-summary.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/progress-bars.html b/packages/stacks-docs/src/docs/legacy/product/components/progress-bars.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/progress-bars.html rename to packages/stacks-docs/src/docs/legacy/product/components/progress-bars.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/prose.html b/packages/stacks-docs/src/docs/legacy/product/components/prose.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/prose.html rename to packages/stacks-docs/src/docs/legacy/product/components/prose.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/select.html b/packages/stacks-docs/src/docs/legacy/product/components/select.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/select.html rename to packages/stacks-docs/src/docs/legacy/product/components/select.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/sidebar-widgets.html b/packages/stacks-docs/src/docs/legacy/product/components/sidebar-widgets.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/sidebar-widgets.html rename to packages/stacks-docs/src/docs/legacy/product/components/sidebar-widgets.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/skeleton.html b/packages/stacks-docs/src/docs/legacy/product/components/skeleton.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/skeleton.html rename to packages/stacks-docs/src/docs/legacy/product/components/skeleton.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/spinner.html b/packages/stacks-docs/src/docs/legacy/product/components/spinner.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/spinner.html rename to packages/stacks-docs/src/docs/legacy/product/components/spinner.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/tables.html b/packages/stacks-docs/src/docs/legacy/product/components/tables.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/tables.html rename to packages/stacks-docs/src/docs/legacy/product/components/tables.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/tags.html b/packages/stacks-docs/src/docs/legacy/product/components/tags.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/tags.html rename to packages/stacks-docs/src/docs/legacy/product/components/tags.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/textarea.html b/packages/stacks-docs/src/docs/legacy/product/components/textarea.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/textarea.html rename to packages/stacks-docs/src/docs/legacy/product/components/textarea.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/toggle-switch.html b/packages/stacks-docs/src/docs/legacy/product/components/toggle-switch.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/toggle-switch.html rename to packages/stacks-docs/src/docs/legacy/product/components/toggle-switch.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/topbar.html b/packages/stacks-docs/src/docs/legacy/product/components/topbar.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/topbar.html rename to packages/stacks-docs/src/docs/legacy/product/components/topbar.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/uploader.html b/packages/stacks-docs/src/docs/legacy/product/components/uploader.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/uploader.html rename to packages/stacks-docs/src/docs/legacy/product/components/uploader.html diff --git a/packages/stacks-site/src/docs/legacy/product/components/user-cards.html b/packages/stacks-docs/src/docs/legacy/product/components/user-cards.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/components/user-cards.html rename to packages/stacks-docs/src/docs/legacy/product/components/user-cards.html diff --git a/packages/stacks-site/src/docs/legacy/product/foundation/accessibility.html b/packages/stacks-docs/src/docs/legacy/product/foundation/accessibility.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/foundation/accessibility.html rename to packages/stacks-docs/src/docs/legacy/product/foundation/accessibility.html diff --git a/packages/stacks-site/src/docs/legacy/product/foundation/color-fundamentals.html b/packages/stacks-docs/src/docs/legacy/product/foundation/color-fundamentals.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/foundation/color-fundamentals.html rename to packages/stacks-docs/src/docs/legacy/product/foundation/color-fundamentals.html diff --git a/packages/stacks-site/src/docs/legacy/product/foundation/colors.html b/packages/stacks-docs/src/docs/legacy/product/foundation/colors.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/foundation/colors.html rename to packages/stacks-docs/src/docs/legacy/product/foundation/colors.html diff --git a/packages/stacks-site/src/docs/legacy/product/foundation/icons.html b/packages/stacks-docs/src/docs/legacy/product/foundation/icons.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/foundation/icons.html rename to packages/stacks-docs/src/docs/legacy/product/foundation/icons.html diff --git a/packages/stacks-site/src/docs/legacy/product/foundation/spots.html b/packages/stacks-docs/src/docs/legacy/product/foundation/spots.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/foundation/spots.html rename to packages/stacks-docs/src/docs/legacy/product/foundation/spots.html diff --git a/packages/stacks-site/src/docs/legacy/product/foundation/theming.html b/packages/stacks-docs/src/docs/legacy/product/foundation/theming.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/foundation/theming.html rename to packages/stacks-docs/src/docs/legacy/product/foundation/theming.html diff --git a/packages/stacks-site/src/docs/legacy/product/foundation/typography.html b/packages/stacks-docs/src/docs/legacy/product/foundation/typography.html similarity index 100% rename from packages/stacks-site/src/docs/legacy/product/foundation/typography.html rename to packages/stacks-docs/src/docs/legacy/product/foundation/typography.html diff --git a/packages/stacks-site/src/docs/private b/packages/stacks-docs/src/docs/private similarity index 100% rename from packages/stacks-site/src/docs/private rename to packages/stacks-docs/src/docs/private diff --git a/packages/stacks-site/src/docs/public/brand/color/ColorBackgrounds.svelte b/packages/stacks-docs/src/docs/public/brand/color/ColorBackgrounds.svelte similarity index 100% rename from packages/stacks-site/src/docs/public/brand/color/ColorBackgrounds.svelte rename to packages/stacks-docs/src/docs/public/brand/color/ColorBackgrounds.svelte diff --git a/packages/stacks-site/src/docs/public/brand/color/ColorBusinessProduct.svelte b/packages/stacks-docs/src/docs/public/brand/color/ColorBusinessProduct.svelte similarity index 100% rename from packages/stacks-site/src/docs/public/brand/color/ColorBusinessProduct.svelte rename to packages/stacks-docs/src/docs/public/brand/color/ColorBusinessProduct.svelte diff --git a/packages/stacks-site/src/docs/public/brand/color/ColorCodes.svelte b/packages/stacks-docs/src/docs/public/brand/color/ColorCodes.svelte similarity index 100% rename from packages/stacks-site/src/docs/public/brand/color/ColorCodes.svelte rename to packages/stacks-docs/src/docs/public/brand/color/ColorCodes.svelte diff --git a/packages/stacks-site/src/docs/public/brand/color/ColorHeadlines.svelte b/packages/stacks-docs/src/docs/public/brand/color/ColorHeadlines.svelte similarity index 100% rename from packages/stacks-site/src/docs/public/brand/color/ColorHeadlines.svelte rename to packages/stacks-docs/src/docs/public/brand/color/ColorHeadlines.svelte diff --git a/packages/stacks-site/src/docs/public/brand/color/ColorHierarchy.svelte b/packages/stacks-docs/src/docs/public/brand/color/ColorHierarchy.svelte similarity index 100% rename from packages/stacks-site/src/docs/public/brand/color/ColorHierarchy.svelte rename to packages/stacks-docs/src/docs/public/brand/color/ColorHierarchy.svelte diff --git a/packages/stacks-site/src/docs/public/brand/color/ColorLabels.svelte b/packages/stacks-docs/src/docs/public/brand/color/ColorLabels.svelte similarity index 100% rename from packages/stacks-site/src/docs/public/brand/color/ColorLabels.svelte rename to packages/stacks-docs/src/docs/public/brand/color/ColorLabels.svelte diff --git a/packages/stacks-site/src/docs/public/brand/color/ColorSwatch.svelte b/packages/stacks-docs/src/docs/public/brand/color/ColorSwatch.svelte similarity index 100% rename from packages/stacks-site/src/docs/public/brand/color/ColorSwatch.svelte rename to packages/stacks-docs/src/docs/public/brand/color/ColorSwatch.svelte diff --git a/packages/stacks-site/src/docs/public/brand/color/avoid.svg b/packages/stacks-docs/src/docs/public/brand/color/avoid.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/color/avoid.svg rename to packages/stacks-docs/src/docs/public/brand/color/avoid.svg diff --git a/packages/stacks-site/src/docs/public/brand/color/b2b-balance.svg b/packages/stacks-docs/src/docs/public/brand/color/b2b-balance.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/color/b2b-balance.svg rename to packages/stacks-docs/src/docs/public/brand/color/b2b-balance.svg diff --git a/packages/stacks-site/src/docs/public/brand/color/b2c-balance.svg b/packages/stacks-docs/src/docs/public/brand/color/b2c-balance.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/color/b2c-balance.svg rename to packages/stacks-docs/src/docs/public/brand/color/b2c-balance.svg diff --git a/packages/stacks-site/src/docs/public/brand/color/colors.yaml b/packages/stacks-docs/src/docs/public/brand/color/colors.yaml similarity index 100% rename from packages/stacks-site/src/docs/public/brand/color/colors.yaml rename to packages/stacks-docs/src/docs/public/brand/color/colors.yaml diff --git a/packages/stacks-site/src/docs/public/brand/color/index.md b/packages/stacks-docs/src/docs/public/brand/color/index.md similarity index 100% rename from packages/stacks-site/src/docs/public/brand/color/index.md rename to packages/stacks-docs/src/docs/public/brand/color/index.md diff --git a/packages/stacks-site/src/docs/public/brand/color/orange-usage.svg b/packages/stacks-docs/src/docs/public/brand/color/orange-usage.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/color/orange-usage.svg rename to packages/stacks-docs/src/docs/public/brand/color/orange-usage.svg diff --git a/packages/stacks-site/src/docs/public/brand/color/stack-color-combos.svg b/packages/stacks-docs/src/docs/public/brand/color/stack-color-combos.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/color/stack-color-combos.svg rename to packages/stacks-docs/src/docs/public/brand/color/stack-color-combos.svg diff --git a/packages/stacks-site/src/docs/public/brand/logo/LogoColors.svelte b/packages/stacks-docs/src/docs/public/brand/logo/LogoColors.svelte similarity index 100% rename from packages/stacks-site/src/docs/public/brand/logo/LogoColors.svelte rename to packages/stacks-docs/src/docs/public/brand/logo/LogoColors.svelte diff --git a/packages/stacks-site/src/docs/public/brand/logo/LogoFormatLockups.svelte b/packages/stacks-docs/src/docs/public/brand/logo/LogoFormatLockups.svelte similarity index 100% rename from packages/stacks-site/src/docs/public/brand/logo/LogoFormatLockups.svelte rename to packages/stacks-docs/src/docs/public/brand/logo/LogoFormatLockups.svelte diff --git a/packages/stacks-site/src/docs/public/brand/logo/LogoSymbol.svelte b/packages/stacks-docs/src/docs/public/brand/logo/LogoSymbol.svelte similarity index 100% rename from packages/stacks-site/src/docs/public/brand/logo/LogoSymbol.svelte rename to packages/stacks-docs/src/docs/public/brand/logo/LogoSymbol.svelte diff --git a/packages/stacks-site/src/docs/public/brand/logo/external-partnership-lockup.svg b/packages/stacks-docs/src/docs/public/brand/logo/external-partnership-lockup.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/logo/external-partnership-lockup.svg rename to packages/stacks-docs/src/docs/public/brand/logo/external-partnership-lockup.svg diff --git a/packages/stacks-site/src/docs/public/brand/logo/index.md b/packages/stacks-docs/src/docs/public/brand/logo/index.md similarity index 100% rename from packages/stacks-site/src/docs/public/brand/logo/index.md rename to packages/stacks-docs/src/docs/public/brand/logo/index.md diff --git a/packages/stacks-site/src/docs/public/brand/logo/logo-architecture.svg b/packages/stacks-docs/src/docs/public/brand/logo/logo-architecture.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/logo/logo-architecture.svg rename to packages/stacks-docs/src/docs/public/brand/logo/logo-architecture.svg diff --git a/packages/stacks-site/src/docs/public/brand/logo/logo-clearspace.svg b/packages/stacks-docs/src/docs/public/brand/logo/logo-clearspace.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/logo/logo-clearspace.svg rename to packages/stacks-docs/src/docs/public/brand/logo/logo-clearspace.svg diff --git a/packages/stacks-site/src/docs/public/brand/logo/primary-lockup.svg b/packages/stacks-docs/src/docs/public/brand/logo/primary-lockup.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/logo/primary-lockup.svg rename to packages/stacks-docs/src/docs/public/brand/logo/primary-lockup.svg diff --git a/packages/stacks-site/src/docs/public/brand/logo/sub-brand-large.svg b/packages/stacks-docs/src/docs/public/brand/logo/sub-brand-large.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/logo/sub-brand-large.svg rename to packages/stacks-docs/src/docs/public/brand/logo/sub-brand-large.svg diff --git a/packages/stacks-site/src/docs/public/brand/logo/sub-brand-lockups.svg b/packages/stacks-docs/src/docs/public/brand/logo/sub-brand-lockups.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/logo/sub-brand-lockups.svg rename to packages/stacks-docs/src/docs/public/brand/logo/sub-brand-lockups.svg diff --git a/packages/stacks-site/src/docs/public/brand/logo/sub-brand-small.svg b/packages/stacks-docs/src/docs/public/brand/logo/sub-brand-small.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/logo/sub-brand-small.svg rename to packages/stacks-docs/src/docs/public/brand/logo/sub-brand-small.svg diff --git a/packages/stacks-site/src/docs/public/brand/logo/symbol-lockup-circle.svg b/packages/stacks-docs/src/docs/public/brand/logo/symbol-lockup-circle.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/logo/symbol-lockup-circle.svg rename to packages/stacks-docs/src/docs/public/brand/logo/symbol-lockup-circle.svg diff --git a/packages/stacks-site/src/docs/public/brand/logo/symbol-lockup-square.svg b/packages/stacks-docs/src/docs/public/brand/logo/symbol-lockup-square.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/logo/symbol-lockup-square.svg rename to packages/stacks-docs/src/docs/public/brand/logo/symbol-lockup-square.svg diff --git a/packages/stacks-site/src/docs/public/brand/logo/symbol.svg b/packages/stacks-docs/src/docs/public/brand/logo/symbol.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/logo/symbol.svg rename to packages/stacks-docs/src/docs/public/brand/logo/symbol.svg diff --git a/packages/stacks-site/src/docs/public/brand/logo/things-to-avoid.svg b/packages/stacks-docs/src/docs/public/brand/logo/things-to-avoid.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/logo/things-to-avoid.svg rename to packages/stacks-docs/src/docs/public/brand/logo/things-to-avoid.svg diff --git a/packages/stacks-site/src/docs/public/brand/motion.md b/packages/stacks-docs/src/docs/public/brand/motion.md similarity index 100% rename from packages/stacks-site/src/docs/public/brand/motion.md rename to packages/stacks-docs/src/docs/public/brand/motion.md diff --git a/packages/stacks-site/src/docs/public/brand/stack-system/index.md b/packages/stacks-docs/src/docs/public/brand/stack-system/index.md similarity index 100% rename from packages/stacks-site/src/docs/public/brand/stack-system/index.md rename to packages/stacks-docs/src/docs/public/brand/stack-system/index.md diff --git a/packages/stacks-site/src/docs/public/brand/stack-system/stacks-2d-in-use.svg b/packages/stacks-docs/src/docs/public/brand/stack-system/stacks-2d-in-use.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/stack-system/stacks-2d-in-use.svg rename to packages/stacks-docs/src/docs/public/brand/stack-system/stacks-2d-in-use.svg diff --git a/packages/stacks-site/src/docs/public/brand/stack-system/stacks-2d.svg b/packages/stacks-docs/src/docs/public/brand/stack-system/stacks-2d.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/stack-system/stacks-2d.svg rename to packages/stacks-docs/src/docs/public/brand/stack-system/stacks-2d.svg diff --git a/packages/stacks-site/src/docs/public/brand/stack-system/stacks-3d-avoid.svg b/packages/stacks-docs/src/docs/public/brand/stack-system/stacks-3d-avoid.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/stack-system/stacks-3d-avoid.svg rename to packages/stacks-docs/src/docs/public/brand/stack-system/stacks-3d-avoid.svg diff --git a/packages/stacks-site/src/docs/public/brand/stack-system/stacks-3d-in-use.svg b/packages/stacks-docs/src/docs/public/brand/stack-system/stacks-3d-in-use.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/stack-system/stacks-3d-in-use.svg rename to packages/stacks-docs/src/docs/public/brand/stack-system/stacks-3d-in-use.svg diff --git a/packages/stacks-site/src/docs/public/brand/stack-system/stacks-3d.svg b/packages/stacks-docs/src/docs/public/brand/stack-system/stacks-3d.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/stack-system/stacks-3d.svg rename to packages/stacks-docs/src/docs/public/brand/stack-system/stacks-3d.svg diff --git a/packages/stacks-site/src/docs/public/brand/stack-system/stacks-container-ex1.svg b/packages/stacks-docs/src/docs/public/brand/stack-system/stacks-container-ex1.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/stack-system/stacks-container-ex1.svg rename to packages/stacks-docs/src/docs/public/brand/stack-system/stacks-container-ex1.svg diff --git a/packages/stacks-site/src/docs/public/brand/stack-system/stacks-container-ex2.svg b/packages/stacks-docs/src/docs/public/brand/stack-system/stacks-container-ex2.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/stack-system/stacks-container-ex2.svg rename to packages/stacks-docs/src/docs/public/brand/stack-system/stacks-container-ex2.svg diff --git a/packages/stacks-site/src/docs/public/brand/stack-system/stacks-container-in-use.svg b/packages/stacks-docs/src/docs/public/brand/stack-system/stacks-container-in-use.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/stack-system/stacks-container-in-use.svg rename to packages/stacks-docs/src/docs/public/brand/stack-system/stacks-container-in-use.svg diff --git a/packages/stacks-site/src/docs/public/brand/stack-system/stacks-containers.svg b/packages/stacks-docs/src/docs/public/brand/stack-system/stacks-containers.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/stack-system/stacks-containers.svg rename to packages/stacks-docs/src/docs/public/brand/stack-system/stacks-containers.svg diff --git a/packages/stacks-site/src/docs/public/brand/typography/TypographyAlignment.svelte b/packages/stacks-docs/src/docs/public/brand/typography/TypographyAlignment.svelte similarity index 100% rename from packages/stacks-site/src/docs/public/brand/typography/TypographyAlignment.svelte rename to packages/stacks-docs/src/docs/public/brand/typography/TypographyAlignment.svelte diff --git a/packages/stacks-site/src/docs/public/brand/typography/TypographyCharacter.svelte b/packages/stacks-docs/src/docs/public/brand/typography/TypographyCharacter.svelte similarity index 100% rename from packages/stacks-site/src/docs/public/brand/typography/TypographyCharacter.svelte rename to packages/stacks-docs/src/docs/public/brand/typography/TypographyCharacter.svelte diff --git a/packages/stacks-site/src/docs/public/brand/typography/TypographyNotch.svelte b/packages/stacks-docs/src/docs/public/brand/typography/TypographyNotch.svelte similarity index 100% rename from packages/stacks-site/src/docs/public/brand/typography/TypographyNotch.svelte rename to packages/stacks-docs/src/docs/public/brand/typography/TypographyNotch.svelte diff --git a/packages/stacks-site/src/docs/public/brand/typography/TypographySpacing.svelte b/packages/stacks-docs/src/docs/public/brand/typography/TypographySpacing.svelte similarity index 100% rename from packages/stacks-site/src/docs/public/brand/typography/TypographySpacing.svelte rename to packages/stacks-docs/src/docs/public/brand/typography/TypographySpacing.svelte diff --git a/packages/stacks-site/src/docs/public/brand/typography/TypographyWeights.svelte b/packages/stacks-docs/src/docs/public/brand/typography/TypographyWeights.svelte similarity index 100% rename from packages/stacks-site/src/docs/public/brand/typography/TypographyWeights.svelte rename to packages/stacks-docs/src/docs/public/brand/typography/TypographyWeights.svelte diff --git a/packages/stacks-site/src/docs/public/brand/typography/index.md b/packages/stacks-docs/src/docs/public/brand/typography/index.md similarity index 100% rename from packages/stacks-site/src/docs/public/brand/typography/index.md rename to packages/stacks-docs/src/docs/public/brand/typography/index.md diff --git a/packages/stacks-site/src/docs/public/brand/typography/typography-and-illustration.svg b/packages/stacks-docs/src/docs/public/brand/typography/typography-and-illustration.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/typography/typography-and-illustration.svg rename to packages/stacks-docs/src/docs/public/brand/typography/typography-and-illustration.svg diff --git a/packages/stacks-site/src/docs/public/brand/typography/typography-avoid.svg b/packages/stacks-docs/src/docs/public/brand/typography/typography-avoid.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/typography/typography-avoid.svg rename to packages/stacks-docs/src/docs/public/brand/typography/typography-avoid.svg diff --git a/packages/stacks-site/src/docs/public/brand/typography/typography-duotone-highlight-avoid.svg b/packages/stacks-docs/src/docs/public/brand/typography/typography-duotone-highlight-avoid.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/typography/typography-duotone-highlight-avoid.svg rename to packages/stacks-docs/src/docs/public/brand/typography/typography-duotone-highlight-avoid.svg diff --git a/packages/stacks-site/src/docs/public/brand/typography/typography-duotone-highlight.svg b/packages/stacks-docs/src/docs/public/brand/typography/typography-duotone-highlight.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/typography/typography-duotone-highlight.svg rename to packages/stacks-docs/src/docs/public/brand/typography/typography-duotone-highlight.svg diff --git a/packages/stacks-site/src/docs/public/brand/typography/typography-highlight-headline.svg b/packages/stacks-docs/src/docs/public/brand/typography/typography-highlight-headline.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/typography/typography-highlight-headline.svg rename to packages/stacks-docs/src/docs/public/brand/typography/typography-highlight-headline.svg diff --git a/packages/stacks-site/src/docs/public/brand/typography/typography-monotone-highlight.svg b/packages/stacks-docs/src/docs/public/brand/typography/typography-monotone-highlight.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/typography/typography-monotone-highlight.svg rename to packages/stacks-docs/src/docs/public/brand/typography/typography-monotone-highlight.svg diff --git a/packages/stacks-site/src/docs/public/brand/typography/typography-sample-lowercase.svg b/packages/stacks-docs/src/docs/public/brand/typography/typography-sample-lowercase.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/typography/typography-sample-lowercase.svg rename to packages/stacks-docs/src/docs/public/brand/typography/typography-sample-lowercase.svg diff --git a/packages/stacks-site/src/docs/public/brand/typography/typography-sample-spacing.svg b/packages/stacks-docs/src/docs/public/brand/typography/typography-sample-spacing.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/typography/typography-sample-spacing.svg rename to packages/stacks-docs/src/docs/public/brand/typography/typography-sample-spacing.svg diff --git a/packages/stacks-site/src/docs/public/brand/typography/typography-sample-x-cap.svg b/packages/stacks-docs/src/docs/public/brand/typography/typography-sample-x-cap.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/typography/typography-sample-x-cap.svg rename to packages/stacks-docs/src/docs/public/brand/typography/typography-sample-x-cap.svg diff --git a/packages/stacks-site/src/docs/public/brand/typography/typography-skew.svg b/packages/stacks-docs/src/docs/public/brand/typography/typography-skew.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/typography/typography-skew.svg rename to packages/stacks-docs/src/docs/public/brand/typography/typography-skew.svg diff --git a/packages/stacks-site/src/docs/public/brand/typography/typography-stack-avoid.svg b/packages/stacks-docs/src/docs/public/brand/typography/typography-stack-avoid.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/typography/typography-stack-avoid.svg rename to packages/stacks-docs/src/docs/public/brand/typography/typography-stack-avoid.svg diff --git a/packages/stacks-site/src/docs/public/brand/typography/typography-stack-type.svg b/packages/stacks-docs/src/docs/public/brand/typography/typography-stack-type.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/typography/typography-stack-type.svg rename to packages/stacks-docs/src/docs/public/brand/typography/typography-stack-type.svg diff --git a/packages/stacks-site/src/docs/public/brand/typography/typography-stylistic-sets.svg b/packages/stacks-docs/src/docs/public/brand/typography/typography-stylistic-sets.svg similarity index 100% rename from packages/stacks-site/src/docs/public/brand/typography/typography-stylistic-sets.svg rename to packages/stacks-docs/src/docs/public/brand/typography/typography-stylistic-sets.svg diff --git a/packages/stacks-site/src/docs/public/changelog.md b/packages/stacks-docs/src/docs/public/changelog.md similarity index 100% rename from packages/stacks-site/src/docs/public/changelog.md rename to packages/stacks-docs/src/docs/public/changelog.md diff --git a/packages/stacks-site/src/docs/public/copy/naming.md b/packages/stacks-docs/src/docs/public/copy/naming.md similarity index 100% rename from packages/stacks-site/src/docs/public/copy/naming.md rename to packages/stacks-docs/src/docs/public/copy/naming.md diff --git a/packages/stacks-site/src/docs/public/copy/styleguide.md b/packages/stacks-docs/src/docs/public/copy/styleguide.md similarity index 100% rename from packages/stacks-site/src/docs/public/copy/styleguide.md rename to packages/stacks-docs/src/docs/public/copy/styleguide.md diff --git a/packages/stacks-site/src/docs/public/copy/voice.md b/packages/stacks-docs/src/docs/public/copy/voice.md similarity index 100% rename from packages/stacks-site/src/docs/public/copy/voice.md rename to packages/stacks-docs/src/docs/public/copy/voice.md diff --git a/packages/stacks-site/src/docs/public/resources/fonts.md b/packages/stacks-docs/src/docs/public/resources/fonts.md similarity index 100% rename from packages/stacks-site/src/docs/public/resources/fonts.md rename to packages/stacks-docs/src/docs/public/resources/fonts.md diff --git a/packages/stacks-site/src/docs/public/system/base/backgrounds.md b/packages/stacks-docs/src/docs/public/system/base/backgrounds.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/base/backgrounds.md rename to packages/stacks-docs/src/docs/public/system/base/backgrounds.md diff --git a/packages/stacks-site/src/docs/public/system/base/border-radius.md b/packages/stacks-docs/src/docs/public/system/base/border-radius.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/base/border-radius.md rename to packages/stacks-docs/src/docs/public/system/base/border-radius.md diff --git a/packages/stacks-site/src/docs/public/system/base/borders.md b/packages/stacks-docs/src/docs/public/system/base/borders.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/base/borders.md rename to packages/stacks-docs/src/docs/public/system/base/borders.md diff --git a/packages/stacks-site/src/docs/public/system/base/box-shadow.md b/packages/stacks-docs/src/docs/public/system/base/box-shadow.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/base/box-shadow.md rename to packages/stacks-docs/src/docs/public/system/base/box-shadow.md diff --git a/packages/stacks-site/src/docs/public/system/base/box-sizing.md b/packages/stacks-docs/src/docs/public/system/base/box-sizing.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/base/box-sizing.md rename to packages/stacks-docs/src/docs/public/system/base/box-sizing.md diff --git a/packages/stacks-site/src/docs/public/system/base/current-color.md b/packages/stacks-docs/src/docs/public/system/base/current-color.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/base/current-color.md rename to packages/stacks-docs/src/docs/public/system/base/current-color.md diff --git a/packages/stacks-site/src/docs/public/system/base/cursors.md b/packages/stacks-docs/src/docs/public/system/base/cursors.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/base/cursors.md rename to packages/stacks-docs/src/docs/public/system/base/cursors.md diff --git a/packages/stacks-site/src/docs/public/system/base/display.md b/packages/stacks-docs/src/docs/public/system/base/display.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/base/display.md rename to packages/stacks-docs/src/docs/public/system/base/display.md diff --git a/packages/stacks-site/src/docs/public/system/base/flex.md b/packages/stacks-docs/src/docs/public/system/base/flex.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/base/flex.md rename to packages/stacks-docs/src/docs/public/system/base/flex.md diff --git a/packages/stacks-site/src/docs/public/system/base/floats.md b/packages/stacks-docs/src/docs/public/system/base/floats.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/base/floats.md rename to packages/stacks-docs/src/docs/public/system/base/floats.md diff --git a/packages/stacks-site/src/docs/public/system/base/gap.md b/packages/stacks-docs/src/docs/public/system/base/gap.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/base/gap.md rename to packages/stacks-docs/src/docs/public/system/base/gap.md diff --git a/packages/stacks-site/src/docs/public/system/base/grid.md b/packages/stacks-docs/src/docs/public/system/base/grid.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/base/grid.md rename to packages/stacks-docs/src/docs/public/system/base/grid.md diff --git a/packages/stacks-site/src/docs/public/system/base/interactivity.md b/packages/stacks-docs/src/docs/public/system/base/interactivity.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/base/interactivity.md rename to packages/stacks-docs/src/docs/public/system/base/interactivity.md diff --git a/packages/stacks-site/src/docs/public/system/base/lists.md b/packages/stacks-docs/src/docs/public/system/base/lists.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/base/lists.md rename to packages/stacks-docs/src/docs/public/system/base/lists.md diff --git a/packages/stacks-site/src/docs/public/system/base/object-fit.md b/packages/stacks-docs/src/docs/public/system/base/object-fit.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/base/object-fit.md rename to packages/stacks-docs/src/docs/public/system/base/object-fit.md diff --git a/packages/stacks-site/src/docs/public/system/base/opacity.md b/packages/stacks-docs/src/docs/public/system/base/opacity.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/base/opacity.md rename to packages/stacks-docs/src/docs/public/system/base/opacity.md diff --git a/packages/stacks-site/src/docs/public/system/base/outline.md b/packages/stacks-docs/src/docs/public/system/base/outline.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/base/outline.md rename to packages/stacks-docs/src/docs/public/system/base/outline.md diff --git a/packages/stacks-site/src/docs/public/system/base/overflow.md b/packages/stacks-docs/src/docs/public/system/base/overflow.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/base/overflow.md rename to packages/stacks-docs/src/docs/public/system/base/overflow.md diff --git a/packages/stacks-site/src/docs/public/system/base/position.md b/packages/stacks-docs/src/docs/public/system/base/position.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/base/position.md rename to packages/stacks-docs/src/docs/public/system/base/position.md diff --git a/packages/stacks-site/src/docs/public/system/base/spacing.md b/packages/stacks-docs/src/docs/public/system/base/spacing.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/base/spacing.md rename to packages/stacks-docs/src/docs/public/system/base/spacing.md diff --git a/packages/stacks-site/src/docs/public/system/base/transitions.md b/packages/stacks-docs/src/docs/public/system/base/transitions.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/base/transitions.md rename to packages/stacks-docs/src/docs/public/system/base/transitions.md diff --git a/packages/stacks-site/src/docs/public/system/base/truncation.md b/packages/stacks-docs/src/docs/public/system/base/truncation.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/base/truncation.md rename to packages/stacks-docs/src/docs/public/system/base/truncation.md diff --git a/packages/stacks-site/src/docs/public/system/base/vertical-alignment.md b/packages/stacks-docs/src/docs/public/system/base/vertical-alignment.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/base/vertical-alignment.md rename to packages/stacks-docs/src/docs/public/system/base/vertical-alignment.md diff --git a/packages/stacks-site/src/docs/public/system/base/visibility.md b/packages/stacks-docs/src/docs/public/system/base/visibility.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/base/visibility.md rename to packages/stacks-docs/src/docs/public/system/base/visibility.md diff --git a/packages/stacks-site/src/docs/public/system/base/width-height.md b/packages/stacks-docs/src/docs/public/system/base/width-height.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/base/width-height.md rename to packages/stacks-docs/src/docs/public/system/base/width-height.md diff --git a/packages/stacks-site/src/docs/public/system/base/z-index.md b/packages/stacks-docs/src/docs/public/system/base/z-index.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/base/z-index.md rename to packages/stacks-docs/src/docs/public/system/base/z-index.md diff --git a/packages/stacks-site/src/docs/public/system/components/activity-indicator.md b/packages/stacks-docs/src/docs/public/system/components/activity-indicator.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/activity-indicator.md rename to packages/stacks-docs/src/docs/public/system/components/activity-indicator.md diff --git a/packages/stacks-site/src/docs/public/system/components/avatars.md b/packages/stacks-docs/src/docs/public/system/components/avatars.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/avatars.md rename to packages/stacks-docs/src/docs/public/system/components/avatars.md diff --git a/packages/stacks-site/src/docs/public/system/components/badges.md b/packages/stacks-docs/src/docs/public/system/components/badges.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/badges.md rename to packages/stacks-docs/src/docs/public/system/components/badges.md diff --git a/packages/stacks-site/src/docs/public/system/components/banners.md b/packages/stacks-docs/src/docs/public/system/components/banners.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/banners.md rename to packages/stacks-docs/src/docs/public/system/components/banners.md diff --git a/packages/stacks-site/src/docs/public/system/components/bling.md b/packages/stacks-docs/src/docs/public/system/components/bling.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/bling.md rename to packages/stacks-docs/src/docs/public/system/components/bling.md diff --git a/packages/stacks-site/src/docs/public/system/components/breadcrumbs.md b/packages/stacks-docs/src/docs/public/system/components/breadcrumbs.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/breadcrumbs.md rename to packages/stacks-docs/src/docs/public/system/components/breadcrumbs.md diff --git a/packages/stacks-site/src/docs/public/system/components/button-groups.md b/packages/stacks-docs/src/docs/public/system/components/button-groups.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/button-groups.md rename to packages/stacks-docs/src/docs/public/system/components/button-groups.md diff --git a/packages/stacks-site/src/docs/public/system/components/buttons/AnchorButtonTable.svelte b/packages/stacks-docs/src/docs/public/system/components/buttons/AnchorButtonTable.svelte similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/buttons/AnchorButtonTable.svelte rename to packages/stacks-docs/src/docs/public/system/components/buttons/AnchorButtonTable.svelte diff --git a/packages/stacks-site/src/docs/public/system/components/buttons/BadgeButtonTable.svelte b/packages/stacks-docs/src/docs/public/system/components/buttons/BadgeButtonTable.svelte similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/buttons/BadgeButtonTable.svelte rename to packages/stacks-docs/src/docs/public/system/components/buttons/BadgeButtonTable.svelte diff --git a/packages/stacks-site/src/docs/public/system/components/buttons/ButtonTable.svelte b/packages/stacks-docs/src/docs/public/system/components/buttons/ButtonTable.svelte similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/buttons/ButtonTable.svelte rename to packages/stacks-docs/src/docs/public/system/components/buttons/ButtonTable.svelte diff --git a/packages/stacks-site/src/docs/public/system/components/buttons/DropdownButtonTable.svelte b/packages/stacks-docs/src/docs/public/system/components/buttons/DropdownButtonTable.svelte similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/buttons/DropdownButtonTable.svelte rename to packages/stacks-docs/src/docs/public/system/components/buttons/DropdownButtonTable.svelte diff --git a/packages/stacks-site/src/docs/public/system/components/buttons/LoadingButtonTable.svelte b/packages/stacks-docs/src/docs/public/system/components/buttons/LoadingButtonTable.svelte similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/buttons/LoadingButtonTable.svelte rename to packages/stacks-docs/src/docs/public/system/components/buttons/LoadingButtonTable.svelte diff --git a/packages/stacks-site/src/docs/public/system/components/buttons/SizeTable.svelte b/packages/stacks-docs/src/docs/public/system/components/buttons/SizeTable.svelte similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/buttons/SizeTable.svelte rename to packages/stacks-docs/src/docs/public/system/components/buttons/SizeTable.svelte diff --git a/packages/stacks-site/src/docs/public/system/components/buttons/ToggleButtonDemo.svelte b/packages/stacks-docs/src/docs/public/system/components/buttons/ToggleButtonDemo.svelte similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/buttons/ToggleButtonDemo.svelte rename to packages/stacks-docs/src/docs/public/system/components/buttons/ToggleButtonDemo.svelte diff --git a/packages/stacks-site/src/docs/public/system/components/buttons/index.md b/packages/stacks-docs/src/docs/public/system/components/buttons/index.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/buttons/index.md rename to packages/stacks-docs/src/docs/public/system/components/buttons/index.md diff --git a/packages/stacks-site/src/docs/public/system/components/cards.md b/packages/stacks-docs/src/docs/public/system/components/cards.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/cards.md rename to packages/stacks-docs/src/docs/public/system/components/cards.md diff --git a/packages/stacks-site/src/docs/public/system/components/code-blocks.md b/packages/stacks-docs/src/docs/public/system/components/code-blocks.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/code-blocks.md rename to packages/stacks-docs/src/docs/public/system/components/code-blocks.md diff --git a/packages/stacks-site/src/docs/public/system/components/editor.md b/packages/stacks-docs/src/docs/public/system/components/editor.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/editor.md rename to packages/stacks-docs/src/docs/public/system/components/editor.md diff --git a/packages/stacks-site/src/docs/public/system/components/empty-states.md b/packages/stacks-docs/src/docs/public/system/components/empty-states.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/empty-states.md rename to packages/stacks-docs/src/docs/public/system/components/empty-states.md diff --git a/packages/stacks-site/src/docs/public/system/components/expandable.md b/packages/stacks-docs/src/docs/public/system/components/expandable.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/expandable.md rename to packages/stacks-docs/src/docs/public/system/components/expandable.md diff --git a/packages/stacks-site/src/docs/public/system/components/link-previews.md b/packages/stacks-docs/src/docs/public/system/components/link-previews.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/link-previews.md rename to packages/stacks-docs/src/docs/public/system/components/link-previews.md diff --git a/packages/stacks-site/src/docs/public/system/components/links.md b/packages/stacks-docs/src/docs/public/system/components/links.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/links.md rename to packages/stacks-docs/src/docs/public/system/components/links.md diff --git a/packages/stacks-site/src/docs/public/system/components/menus.md b/packages/stacks-docs/src/docs/public/system/components/menus.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/menus.md rename to packages/stacks-docs/src/docs/public/system/components/menus.md diff --git a/packages/stacks-site/src/docs/public/system/components/modals.md b/packages/stacks-docs/src/docs/public/system/components/modals.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/modals.md rename to packages/stacks-docs/src/docs/public/system/components/modals.md diff --git a/packages/stacks-site/src/docs/public/system/components/navigation.md b/packages/stacks-docs/src/docs/public/system/components/navigation.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/navigation.md rename to packages/stacks-docs/src/docs/public/system/components/navigation.md diff --git a/packages/stacks-site/src/docs/public/system/components/notices.md b/packages/stacks-docs/src/docs/public/system/components/notices.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/notices.md rename to packages/stacks-docs/src/docs/public/system/components/notices.md diff --git a/packages/stacks-site/src/docs/public/system/components/page-titles.md b/packages/stacks-docs/src/docs/public/system/components/page-titles.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/page-titles.md rename to packages/stacks-docs/src/docs/public/system/components/page-titles.md diff --git a/packages/stacks-site/src/docs/public/system/components/pagination.md b/packages/stacks-docs/src/docs/public/system/components/pagination.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/pagination.md rename to packages/stacks-docs/src/docs/public/system/components/pagination.md diff --git a/packages/stacks-site/src/docs/public/system/components/popovers.md b/packages/stacks-docs/src/docs/public/system/components/popovers.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/popovers.md rename to packages/stacks-docs/src/docs/public/system/components/popovers.md diff --git a/packages/stacks-site/src/docs/public/system/components/post-summary.md b/packages/stacks-docs/src/docs/public/system/components/post-summary.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/post-summary.md rename to packages/stacks-docs/src/docs/public/system/components/post-summary.md diff --git a/packages/stacks-site/src/docs/public/system/components/progress-bars.md b/packages/stacks-docs/src/docs/public/system/components/progress-bars.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/progress-bars.md rename to packages/stacks-docs/src/docs/public/system/components/progress-bars.md diff --git a/packages/stacks-site/src/docs/public/system/components/prose.md b/packages/stacks-docs/src/docs/public/system/components/prose.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/prose.md rename to packages/stacks-docs/src/docs/public/system/components/prose.md diff --git a/packages/stacks-site/src/docs/public/system/components/sidebar-widgets.md b/packages/stacks-docs/src/docs/public/system/components/sidebar-widgets.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/sidebar-widgets.md rename to packages/stacks-docs/src/docs/public/system/components/sidebar-widgets.md diff --git a/packages/stacks-site/src/docs/public/system/components/skeleton.md b/packages/stacks-docs/src/docs/public/system/components/skeleton.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/skeleton.md rename to packages/stacks-docs/src/docs/public/system/components/skeleton.md diff --git a/packages/stacks-site/src/docs/public/system/components/spinner.md b/packages/stacks-docs/src/docs/public/system/components/spinner.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/spinner.md rename to packages/stacks-docs/src/docs/public/system/components/spinner.md diff --git a/packages/stacks-site/src/docs/public/system/components/tables.md b/packages/stacks-docs/src/docs/public/system/components/tables.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/tables.md rename to packages/stacks-docs/src/docs/public/system/components/tables.md diff --git a/packages/stacks-site/src/docs/public/system/components/tags.md b/packages/stacks-docs/src/docs/public/system/components/tags.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/tags.md rename to packages/stacks-docs/src/docs/public/system/components/tags.md diff --git a/packages/stacks-site/src/docs/public/system/components/toggle-switch.md b/packages/stacks-docs/src/docs/public/system/components/toggle-switch.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/toggle-switch.md rename to packages/stacks-docs/src/docs/public/system/components/toggle-switch.md diff --git a/packages/stacks-site/src/docs/public/system/components/topbar.md b/packages/stacks-docs/src/docs/public/system/components/topbar.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/topbar.md rename to packages/stacks-docs/src/docs/public/system/components/topbar.md diff --git a/packages/stacks-site/src/docs/public/system/components/uploader.md b/packages/stacks-docs/src/docs/public/system/components/uploader.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/uploader.md rename to packages/stacks-docs/src/docs/public/system/components/uploader.md diff --git a/packages/stacks-site/src/docs/public/system/components/user-cards.md b/packages/stacks-docs/src/docs/public/system/components/user-cards.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/components/user-cards.md rename to packages/stacks-docs/src/docs/public/system/components/user-cards.md diff --git a/packages/stacks-site/src/docs/public/system/develop/building.md b/packages/stacks-docs/src/docs/public/system/develop/building.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/develop/building.md rename to packages/stacks-docs/src/docs/public/system/develop/building.md diff --git a/packages/stacks-site/src/docs/public/system/develop/conditional-classes.md b/packages/stacks-docs/src/docs/public/system/develop/conditional-classes.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/develop/conditional-classes.md rename to packages/stacks-docs/src/docs/public/system/develop/conditional-classes.md diff --git a/packages/stacks-site/src/docs/public/system/develop/javascript.md b/packages/stacks-docs/src/docs/public/system/develop/javascript.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/develop/javascript.md rename to packages/stacks-docs/src/docs/public/system/develop/javascript.md diff --git a/packages/stacks-site/src/docs/public/system/develop/using-stacks.md b/packages/stacks-docs/src/docs/public/system/develop/using-stacks.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/develop/using-stacks.md rename to packages/stacks-docs/src/docs/public/system/develop/using-stacks.md diff --git a/packages/stacks-site/src/docs/public/system/forms/checkbox.md b/packages/stacks-docs/src/docs/public/system/forms/checkbox.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/forms/checkbox.md rename to packages/stacks-docs/src/docs/public/system/forms/checkbox.md diff --git a/packages/stacks-site/src/docs/public/system/forms/inputs.md b/packages/stacks-docs/src/docs/public/system/forms/inputs.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/forms/inputs.md rename to packages/stacks-docs/src/docs/public/system/forms/inputs.md diff --git a/packages/stacks-site/src/docs/public/system/forms/labels.md b/packages/stacks-docs/src/docs/public/system/forms/labels.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/forms/labels.md rename to packages/stacks-docs/src/docs/public/system/forms/labels.md diff --git a/packages/stacks-site/src/docs/public/system/forms/select.md b/packages/stacks-docs/src/docs/public/system/forms/select.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/forms/select.md rename to packages/stacks-docs/src/docs/public/system/forms/select.md diff --git a/packages/stacks-site/src/docs/public/system/forms/textarea.md b/packages/stacks-docs/src/docs/public/system/forms/textarea.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/forms/textarea.md rename to packages/stacks-docs/src/docs/public/system/forms/textarea.md diff --git a/packages/stacks-site/src/docs/public/system/foundation/accessibility.md b/packages/stacks-docs/src/docs/public/system/foundation/accessibility.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/foundation/accessibility.md rename to packages/stacks-docs/src/docs/public/system/foundation/accessibility.md diff --git a/packages/stacks-site/src/docs/public/system/foundation/color-fundamentals.md b/packages/stacks-docs/src/docs/public/system/foundation/color-fundamentals.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/foundation/color-fundamentals.md rename to packages/stacks-docs/src/docs/public/system/foundation/color-fundamentals.md diff --git a/packages/stacks-site/src/docs/public/system/foundation/colors.md b/packages/stacks-docs/src/docs/public/system/foundation/colors.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/foundation/colors.md rename to packages/stacks-docs/src/docs/public/system/foundation/colors.md diff --git a/packages/stacks-site/src/docs/public/system/foundation/icons.md b/packages/stacks-docs/src/docs/public/system/foundation/icons.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/foundation/icons.md rename to packages/stacks-docs/src/docs/public/system/foundation/icons.md diff --git a/packages/stacks-site/src/docs/public/system/foundation/spots.md b/packages/stacks-docs/src/docs/public/system/foundation/spots.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/foundation/spots.md rename to packages/stacks-docs/src/docs/public/system/foundation/spots.md diff --git a/packages/stacks-site/src/docs/public/system/foundation/theming.md b/packages/stacks-docs/src/docs/public/system/foundation/theming.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/foundation/theming.md rename to packages/stacks-docs/src/docs/public/system/foundation/theming.md diff --git a/packages/stacks-site/src/docs/public/system/foundation/typography.md b/packages/stacks-docs/src/docs/public/system/foundation/typography.md similarity index 100% rename from packages/stacks-site/src/docs/public/system/foundation/typography.md rename to packages/stacks-docs/src/docs/public/system/foundation/typography.md diff --git a/packages/stacks-site/src/hooks.server.ts b/packages/stacks-docs/src/hooks.server.ts similarity index 100% rename from packages/stacks-site/src/hooks.server.ts rename to packages/stacks-docs/src/hooks.server.ts diff --git a/packages/stacks-site/src/lib/assets/favicon.svg b/packages/stacks-docs/src/lib/assets/favicon.svg similarity index 100% rename from packages/stacks-site/src/lib/assets/favicon.svg rename to packages/stacks-docs/src/lib/assets/favicon.svg diff --git a/packages/stacks-site/src/lib/assets/icon-lock.svg b/packages/stacks-docs/src/lib/assets/icon-lock.svg similarity index 100% rename from packages/stacks-site/src/lib/assets/icon-lock.svg rename to packages/stacks-docs/src/lib/assets/icon-lock.svg diff --git a/packages/stacks-site/src/lib/assets/icons/brand.svg b/packages/stacks-docs/src/lib/assets/icons/brand.svg similarity index 100% rename from packages/stacks-site/src/lib/assets/icons/brand.svg rename to packages/stacks-docs/src/lib/assets/icons/brand.svg diff --git a/packages/stacks-site/src/lib/assets/icons/copywriting.svg b/packages/stacks-docs/src/lib/assets/icons/copywriting.svg similarity index 100% rename from packages/stacks-site/src/lib/assets/icons/copywriting.svg rename to packages/stacks-docs/src/lib/assets/icons/copywriting.svg diff --git a/packages/stacks-site/src/lib/assets/icons/email.svg b/packages/stacks-docs/src/lib/assets/icons/email.svg similarity index 100% rename from packages/stacks-site/src/lib/assets/icons/email.svg rename to packages/stacks-docs/src/lib/assets/icons/email.svg diff --git a/packages/stacks-site/src/lib/assets/icons/handbook.svg b/packages/stacks-docs/src/lib/assets/icons/handbook.svg similarity index 100% rename from packages/stacks-site/src/lib/assets/icons/handbook.svg rename to packages/stacks-docs/src/lib/assets/icons/handbook.svg diff --git a/packages/stacks-site/src/lib/assets/icons/product.svg b/packages/stacks-docs/src/lib/assets/icons/product.svg similarity index 100% rename from packages/stacks-site/src/lib/assets/icons/product.svg rename to packages/stacks-docs/src/lib/assets/icons/product.svg diff --git a/packages/stacks-site/src/lib/assets/icons/resources.svg b/packages/stacks-docs/src/lib/assets/icons/resources.svg similarity index 100% rename from packages/stacks-site/src/lib/assets/icons/resources.svg rename to packages/stacks-docs/src/lib/assets/icons/resources.svg diff --git a/packages/stacks-site/src/lib/assets/logo.svg b/packages/stacks-docs/src/lib/assets/logo.svg similarity index 100% rename from packages/stacks-site/src/lib/assets/logo.svg rename to packages/stacks-docs/src/lib/assets/logo.svg diff --git a/packages/stacks-site/src/lib/copyToClipboard.ts b/packages/stacks-docs/src/lib/copyToClipboard.ts similarity index 100% rename from packages/stacks-site/src/lib/copyToClipboard.ts rename to packages/stacks-docs/src/lib/copyToClipboard.ts diff --git a/packages/stacks-site/src/lib/index.ts b/packages/stacks-docs/src/lib/index.ts similarity index 100% rename from packages/stacks-site/src/lib/index.ts rename to packages/stacks-docs/src/lib/index.ts diff --git a/packages/stacks-site/src/routes/+error.svelte b/packages/stacks-docs/src/routes/+error.svelte similarity index 100% rename from packages/stacks-site/src/routes/+error.svelte rename to packages/stacks-docs/src/routes/+error.svelte diff --git a/packages/stacks-site/src/routes/+layout.server.ts b/packages/stacks-docs/src/routes/+layout.server.ts similarity index 100% rename from packages/stacks-site/src/routes/+layout.server.ts rename to packages/stacks-docs/src/routes/+layout.server.ts diff --git a/packages/stacks-site/src/routes/+layout.svelte b/packages/stacks-docs/src/routes/+layout.svelte similarity index 100% rename from packages/stacks-site/src/routes/+layout.svelte rename to packages/stacks-docs/src/routes/+layout.svelte diff --git a/packages/stacks-site/src/routes/+page.svelte b/packages/stacks-docs/src/routes/+page.svelte similarity index 100% rename from packages/stacks-site/src/routes/+page.svelte rename to packages/stacks-docs/src/routes/+page.svelte diff --git a/packages/stacks-site/src/routes/[category]/+page.svelte b/packages/stacks-docs/src/routes/[category]/+page.svelte similarity index 100% rename from packages/stacks-site/src/routes/[category]/+page.svelte rename to packages/stacks-docs/src/routes/[category]/+page.svelte diff --git a/packages/stacks-site/src/routes/[category]/[section]/[[subsection]]/+page.svelte b/packages/stacks-docs/src/routes/[category]/[section]/[[subsection]]/+page.svelte similarity index 100% rename from packages/stacks-site/src/routes/[category]/[section]/[[subsection]]/+page.svelte rename to packages/stacks-docs/src/routes/[category]/[section]/[[subsection]]/+page.svelte diff --git a/packages/stacks-site/src/routes/[category]/[section]/[[subsection]]/+page.ts b/packages/stacks-docs/src/routes/[category]/[section]/[[subsection]]/+page.ts similarity index 100% rename from packages/stacks-site/src/routes/[category]/[section]/[[subsection]]/+page.ts rename to packages/stacks-docs/src/routes/[category]/[section]/[[subsection]]/+page.ts diff --git a/packages/stacks-site/src/routes/auth/signin/+page.server.ts b/packages/stacks-docs/src/routes/auth/signin/+page.server.ts similarity index 100% rename from packages/stacks-site/src/routes/auth/signin/+page.server.ts rename to packages/stacks-docs/src/routes/auth/signin/+page.server.ts diff --git a/packages/stacks-site/src/structure.yaml b/packages/stacks-docs/src/structure.yaml similarity index 100% rename from packages/stacks-site/src/structure.yaml rename to packages/stacks-docs/src/structure.yaml diff --git a/packages/stacks-site/static/fonts/IBMPlexMono-Regular.woff2 b/packages/stacks-docs/static/fonts/IBMPlexMono-Regular.woff2 similarity index 100% rename from packages/stacks-site/static/fonts/IBMPlexMono-Regular.woff2 rename to packages/stacks-docs/static/fonts/IBMPlexMono-Regular.woff2 diff --git a/packages/stacks-site/static/fonts/StackSansHeadline-Bold.otf b/packages/stacks-docs/static/fonts/StackSansHeadline-Bold.otf similarity index 100% rename from packages/stacks-site/static/fonts/StackSansHeadline-Bold.otf rename to packages/stacks-docs/static/fonts/StackSansHeadline-Bold.otf diff --git a/packages/stacks-site/static/fonts/StackSansHeadline-Extralight.otf b/packages/stacks-docs/static/fonts/StackSansHeadline-Extralight.otf similarity index 100% rename from packages/stacks-site/static/fonts/StackSansHeadline-Extralight.otf rename to packages/stacks-docs/static/fonts/StackSansHeadline-Extralight.otf diff --git a/packages/stacks-site/static/fonts/StackSansHeadline-Light.otf b/packages/stacks-docs/static/fonts/StackSansHeadline-Light.otf similarity index 100% rename from packages/stacks-site/static/fonts/StackSansHeadline-Light.otf rename to packages/stacks-docs/static/fonts/StackSansHeadline-Light.otf diff --git a/packages/stacks-site/static/fonts/StackSansHeadline-Medium.otf b/packages/stacks-docs/static/fonts/StackSansHeadline-Medium.otf similarity index 100% rename from packages/stacks-site/static/fonts/StackSansHeadline-Medium.otf rename to packages/stacks-docs/static/fonts/StackSansHeadline-Medium.otf diff --git a/packages/stacks-site/static/fonts/StackSansHeadline-Regular.otf b/packages/stacks-docs/static/fonts/StackSansHeadline-Regular.otf similarity index 100% rename from packages/stacks-site/static/fonts/StackSansHeadline-Regular.otf rename to packages/stacks-docs/static/fonts/StackSansHeadline-Regular.otf diff --git a/packages/stacks-site/static/fonts/StackSansHeadline[wght].woff2 b/packages/stacks-docs/static/fonts/StackSansHeadline[wght].woff2 similarity index 100% rename from packages/stacks-site/static/fonts/StackSansHeadline[wght].woff2 rename to packages/stacks-docs/static/fonts/StackSansHeadline[wght].woff2 diff --git a/packages/stacks-site/static/fonts/StackSansText[wght].woff2 b/packages/stacks-docs/static/fonts/StackSansText[wght].woff2 similarity index 100% rename from packages/stacks-site/static/fonts/StackSansText[wght].woff2 rename to packages/stacks-docs/static/fonts/StackSansText[wght].woff2 diff --git a/packages/stacks-site/static/images/heros/color.svg b/packages/stacks-docs/static/images/heros/color.svg similarity index 100% rename from packages/stacks-site/static/images/heros/color.svg rename to packages/stacks-docs/static/images/heros/color.svg diff --git a/packages/stacks-site/static/images/heros/home.svg b/packages/stacks-docs/static/images/heros/home.svg similarity index 100% rename from packages/stacks-site/static/images/heros/home.svg rename to packages/stacks-docs/static/images/heros/home.svg diff --git a/packages/stacks-site/static/images/heros/icons.svg b/packages/stacks-docs/static/images/heros/icons.svg similarity index 100% rename from packages/stacks-site/static/images/heros/icons.svg rename to packages/stacks-docs/static/images/heros/icons.svg diff --git a/packages/stacks-site/static/images/heros/illustration.svg b/packages/stacks-docs/static/images/heros/illustration.svg similarity index 100% rename from packages/stacks-site/static/images/heros/illustration.svg rename to packages/stacks-docs/static/images/heros/illustration.svg diff --git a/packages/stacks-site/static/images/heros/logo.svg b/packages/stacks-docs/static/images/heros/logo.svg similarity index 100% rename from packages/stacks-site/static/images/heros/logo.svg rename to packages/stacks-docs/static/images/heros/logo.svg diff --git a/packages/stacks-site/static/images/heros/motion.svg b/packages/stacks-docs/static/images/heros/motion.svg similarity index 100% rename from packages/stacks-site/static/images/heros/motion.svg rename to packages/stacks-docs/static/images/heros/motion.svg diff --git a/packages/stacks-site/static/images/heros/naming.svg b/packages/stacks-docs/static/images/heros/naming.svg similarity index 100% rename from packages/stacks-site/static/images/heros/naming.svg rename to packages/stacks-docs/static/images/heros/naming.svg diff --git a/packages/stacks-site/static/images/heros/stack-system.svg b/packages/stacks-docs/static/images/heros/stack-system.svg similarity index 100% rename from packages/stacks-site/static/images/heros/stack-system.svg rename to packages/stacks-docs/static/images/heros/stack-system.svg diff --git a/packages/stacks-site/static/images/heros/strategy.svg b/packages/stacks-docs/static/images/heros/strategy.svg similarity index 100% rename from packages/stacks-site/static/images/heros/strategy.svg rename to packages/stacks-docs/static/images/heros/strategy.svg diff --git a/packages/stacks-site/static/images/heros/styleguide.svg b/packages/stacks-docs/static/images/heros/styleguide.svg similarity index 100% rename from packages/stacks-site/static/images/heros/styleguide.svg rename to packages/stacks-docs/static/images/heros/styleguide.svg diff --git a/packages/stacks-site/static/images/heros/typography.svg b/packages/stacks-docs/static/images/heros/typography.svg similarity index 100% rename from packages/stacks-site/static/images/heros/typography.svg rename to packages/stacks-docs/static/images/heros/typography.svg diff --git a/packages/stacks-site/static/images/heros/voice.svg b/packages/stacks-docs/static/images/heros/voice.svg similarity index 100% rename from packages/stacks-site/static/images/heros/voice.svg rename to packages/stacks-docs/static/images/heros/voice.svg diff --git a/packages/stacks-site/static/robots.txt b/packages/stacks-docs/static/robots.txt similarity index 100% rename from packages/stacks-site/static/robots.txt rename to packages/stacks-docs/static/robots.txt diff --git a/packages/stacks-site/svelte.config.js b/packages/stacks-docs/svelte.config.js similarity index 100% rename from packages/stacks-site/svelte.config.js rename to packages/stacks-docs/svelte.config.js diff --git a/packages/stacks-site/tsconfig.json b/packages/stacks-docs/tsconfig.json similarity index 100% rename from packages/stacks-site/tsconfig.json rename to packages/stacks-docs/tsconfig.json diff --git a/packages/stacks-site/vite.config.ts b/packages/stacks-docs/vite.config.ts similarity index 100% rename from packages/stacks-site/vite.config.ts rename to packages/stacks-docs/vite.config.ts From bfb46509e9f17b4f5e4eebaa2127d1d602dc9fc7 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 16 Dec 2025 18:50:04 +0000 Subject: [PATCH 048/156] update private path Signed-off-by: David Longworth --- .gitmodules | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index df54811402..376709258d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ -[submodule "packages/stacks-site/src/docs/private"] - path = packages/stacks-site/src/docs/private +[submodule "packages/stacks-docs/src/docs/private"] + path = packages/stacks-docs/src/docs/private url = git@github.com:StackEng/StacksDocsPrivate.git From 8164760df562bf99afcd0214cf6ac4e3c6bd1560 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 16 Dec 2025 18:58:14 +0000 Subject: [PATCH 049/156] dont complain about submodule Signed-off-by: David Longworth --- .gitmodules | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitmodules b/.gitmodules index 376709258d..ee05424705 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,4 @@ [submodule "packages/stacks-docs/src/docs/private"] path = packages/stacks-docs/src/docs/private url = git@github.com:StackEng/StacksDocsPrivate.git + ignore = all From c33c04870666e521154b9c22bf57cd6c315f4e84 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 16 Dec 2025 19:37:28 +0000 Subject: [PATCH 050/156] make sure stacks-svelte builds first Signed-off-by: David Longworth --- package-lock.json | 1540 +++++++++++------------------ packages/stacks-docs/package.json | 1 + 2 files changed, 563 insertions(+), 978 deletions(-) diff --git a/package-lock.json b/package-lock.json index d30c829b75..7747934903 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1839,31 +1839,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@lezer/common": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.3.0.tgz", - "integrity": "sha512-L9X8uHCYU310o99L3/MpJKYxPzXPOS7S0NmBaM7UO/x2Kb2WbmMLSkfvdr1KxRIFYOpbY0Jhn7CfLSUDzL8arQ==", - "license": "MIT" - }, - "node_modules/@lezer/highlight": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.3.tgz", - "integrity": "sha512-qXdH7UqTvGfdVBINrgKhDsVTJTxactNNxLk7+UMwZhU13lMHaOBlJe9Vqp907ya56Y3+ed2tlqzys7jDkTmW0g==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.3.0" - } - }, - "node_modules/@lezer/markdown": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@lezer/markdown/-/markdown-1.5.1.tgz", - "integrity": "sha512-F3ZFnIfNAOy/jPSk6Q0e3bs7e9grfK/n5zerkKoc5COH6Guy3Zb0vrJwXzdck79K16goBhYBRAvhf+ksqe0cMg==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.0.0", - "@lezer/highlight": "^1.0.0" - } - }, "node_modules/@lit-labs/ssr-dom-shim": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.4.0.tgz", @@ -2922,47 +2897,6 @@ "resolved": "packages/stacks-classic", "link": true }, - "node_modules/@stackoverflow/stacks-docs": { - "resolved": "packages/stacks-docs", - "link": true - }, - "node_modules/@stackoverflow/stacks-editor": { - "version": "1.0.0-beta.3", - "resolved": "https://registry.npmjs.org/@stackoverflow/stacks-editor/-/stacks-editor-1.0.0-beta.3.tgz", - "integrity": "sha512-oPzE4umLPGT8EA/L7W+/L/cUuPDTx/xL/gjOp5qWMJUnwvxtah0SxqQHlfMOqGYhnZt2hnQWAp5SZLiJYW0FSQ==", - "license": "MIT", - "dependencies": { - "@lezer/highlight": "^1.2.0", - "@lezer/markdown": "^1.2.0", - "@stackoverflow/stacks-icons": "^6.2.0", - "markdown-it": "^14.0.0", - "orderedmap": "^2.1.1", - "prosemirror-commands": "^1.5.2", - "prosemirror-highlightjs": "^0.9.1", - "prosemirror-history": "^1.4.0", - "prosemirror-inputrules": "^1.4.0", - "prosemirror-keymap": "^1.2.2", - "prosemirror-lezer": "^0.0.5", - "prosemirror-markdown": "^1.12.0", - "prosemirror-model": "^1.24.1", - "prosemirror-schema-basic": "^1.2.2", - "prosemirror-schema-list": "^1.3.0", - "prosemirror-state": "^1.4.3", - "prosemirror-transform": "^1.8.0", - "prosemirror-utils": "^1.2.1-0", - "prosemirror-view": "^1.37.1" - }, - "peerDependencies": { - "@stackoverflow/stacks": "^3.0.0-beta.0", - "highlight.js": "^11.6.0" - } - }, - "node_modules/@stackoverflow/stacks-editor/node_modules/@stackoverflow/stacks-icons": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@stackoverflow/stacks-icons/-/stacks-icons-6.7.0.tgz", - "integrity": "sha512-/VT9+1fvHkTuNTLXxa3U9FhwZ3UOXbWYNQ46zqAvhPZd2k+AnDKBlNZ1rsn8ozRMKtoWI7tC8jN1gXqQghDIRQ==", - "license": "MIT" - }, "node_modules/@stackoverflow/stacks-icons": { "version": "7.0.0-beta.7", "resolved": "https://registry.npmjs.org/@stackoverflow/stacks-icons/-/stacks-icons-7.0.0-beta.7.tgz", @@ -2977,7 +2911,7 @@ "license": "MIT" }, "node_modules/@stackoverflow/stacks-site": { - "resolved": "packages/stacks-site", + "resolved": "packages/stacks-docs", "link": true }, "node_modules/@stackoverflow/stacks-svelte": { @@ -3816,22 +3750,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/linkify-it": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", - "license": "MIT" - }, - "node_modules/@types/markdown-it": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", - "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", - "license": "MIT", - "dependencies": { - "@types/linkify-it": "^5", - "@types/mdurl": "^2" - } - }, "node_modules/@types/mdast": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", @@ -3842,12 +3760,6 @@ "@types/unist": "*" } }, - "node_modules/@types/mdurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", - "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", - "license": "MIT" - }, "node_modules/@types/mdx": { "version": "2.0.13", "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", @@ -5060,12 +4972,6 @@ "dev": true, "license": "MIT" }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "license": "ISC" - }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -5138,19 +5044,11 @@ "node": ">= 14" } }, - "node_modules/agentkeepalive": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-2.2.0.tgz", - "integrity": "sha512-TnB6ziK363p7lR8QpeLC8aMr8EGYBKZTpgzQLfqTs3bR0Oo5VbKdwKf8h0dSzsYrB7lSCgfJnMZKqShvlq5Oyg==", - "license": "MIT", - "engines": { - "node": ">= 0.10.0" - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", @@ -5205,65 +5103,6 @@ "dev": true, "license": "MIT" }, - "node_modules/algoliasearch": { - "version": "3.35.1", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-3.35.1.tgz", - "integrity": "sha512-K4yKVhaHkXfJ/xcUnil04xiSrB8B8yHZoFEhWNpXg23eiCnqvTZw1tn/SqvdsANlYHLJlKl0qi3I/Q2Sqo7LwQ==", - "license": "MIT", - "dependencies": { - "agentkeepalive": "^2.2.0", - "debug": "^2.6.9", - "envify": "^4.0.0", - "es6-promise": "^4.1.0", - "events": "^1.1.0", - "foreach": "^2.0.5", - "global": "^4.3.2", - "inherits": "^2.0.1", - "isarray": "^2.0.1", - "load-script": "^1.0.0", - "object-keys": "^1.0.11", - "querystring-es3": "^0.2.1", - "reduce": "^1.0.1", - "semver": "^5.1.0", - "tunnel-agent": "^0.6.0" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/algoliasearch/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/algoliasearch/node_modules/events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==", - "license": "MIT", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/algoliasearch/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/algoliasearch/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", @@ -5383,6 +5222,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, "license": "Python-2.0" }, "node_modules/aria-query": { @@ -5451,24 +5291,6 @@ "dev": true, "license": "MIT" }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "license": "MIT", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, "node_modules/assertion-error": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", @@ -5509,36 +5331,6 @@ "dev": true, "license": "MIT" }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "license": "MIT" - }, - "node_modules/autocomplete.js": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/autocomplete.js/-/autocomplete.js-0.36.0.tgz", - "integrity": "sha512-jEwUXnVMeCHHutUt10i/8ZiRaCb0Wo+ZyKxeGsYwBDtw6EJHqEeDrq4UwZRD8YBSvp3g6klP678il2eeiVXN2Q==", - "license": "MIT", - "dependencies": { - "immediate": "^3.2.3" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", - "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", - "license": "MIT" - }, "node_modules/axe-core": { "version": "4.11.0", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.11.0.tgz", @@ -5749,15 +5541,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "license": "BSD-3-Clause", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, "node_modules/better-opn": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", @@ -6025,12 +5808,6 @@ ], "license": "CC-BY-4.0" }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "license": "Apache-2.0" - }, "node_modules/ccount": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", @@ -6490,18 +6267,6 @@ "dev": true, "license": "AGPL v3" }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/comma-separated-tokens": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", @@ -6716,12 +6481,6 @@ "url": "https://github.com/sponsors/mesqueeb" } }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "license": "MIT" - }, "node_modules/cosmiconfig": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", @@ -7022,18 +6781,6 @@ "license": "MIT", "peer": true }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/data-uri-to-buffer": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", @@ -7168,15 +6915,6 @@ "node": ">= 14" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", @@ -7296,22 +7034,6 @@ "node": ">=8" } }, - "node_modules/docsearch.js": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/docsearch.js/-/docsearch.js-2.6.3.tgz", - "integrity": "sha512-GN+MBozuyz664ycpZY0ecdQE0ND/LSgJKhTLA0/v3arIS3S1Rpf2OJz6A35ReMsm91V5apcmzr5/kM84cvUg+A==", - "deprecated": "This package has been deprecated and is no longer maintained. Please use @docsearch/js.", - "license": "MIT", - "dependencies": { - "algoliasearch": "^3.24.5", - "autocomplete.js": "0.36.0", - "hogan.js": "^3.0.2", - "request": "^2.87.0", - "stack-utils": "^1.0.1", - "to-factory": "^1.0.0", - "zepto": "^1.2.0" - } - }, "node_modules/dom-accessibility-api": { "version": "0.5.16", "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", @@ -7347,11 +7069,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" - }, "node_modules/domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", @@ -7428,16 +7145,6 @@ "dev": true, "license": "MIT" }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "license": "MIT", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -7593,19 +7300,6 @@ "node": ">=6" } }, - "node_modules/envify": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/envify/-/envify-4.1.0.tgz", - "integrity": "sha512-IKRVVoAYr4pIx4yIWNsz9mOsboxlNXiu7TNBnem/K/uTHdkyzXWDzHCK7UTolqBbgaBz0tQHsD3YNls0uIIjiw==", - "license": "MIT", - "dependencies": { - "esprima": "^4.0.0", - "through": "~2.3.4" - }, - "bin": { - "envify": "bin/envify" - } - }, "node_modules/envinfo": { "version": "7.19.0", "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.19.0.tgz", @@ -7700,12 +7394,6 @@ "benchmarks" ] }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "license": "MIT" - }, "node_modules/esbuild": { "version": "0.25.11", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.11.tgz", @@ -8170,6 +7858,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", @@ -8415,19 +8104,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "engines": [ - "node >=0.6.0" - ], - "license": "MIT" - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, "license": "MIT" }, "node_modules/fast-diff": { @@ -8465,6 +8146,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, "license": "MIT" }, "node_modules/fast-levenshtein": { @@ -8668,12 +8350,6 @@ "dev": true, "license": "ISC" }, - "node_modules/foreach": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz", - "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==", - "license": "MIT" - }, "node_modules/foreground-child": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", @@ -8691,29 +8367,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -8860,15 +8513,6 @@ "node": ">= 14" } }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, "node_modules/github-slugger": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", @@ -8916,16 +8560,6 @@ "dev": true, "license": "BSD-2-Clause" }, - "node_modules/global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "license": "MIT", - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, "node_modules/global-modules": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", @@ -9075,29 +8709,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "license": "ISC", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "license": "MIT", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -9382,33 +8993,12 @@ "version": "11.11.1", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.11.1.tgz", "integrity": "sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==", + "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=12.0.0" } }, - "node_modules/hogan.js": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/hogan.js/-/hogan.js-3.0.2.tgz", - "integrity": "sha512-RqGs4wavGYJWE07t35JQccByczmNUXQT0E12ZYV1VKYu5UiAU9lsos/yBAcf840+zrUQQxgVduCR5/B8nNtibg==", - "dependencies": { - "mkdirp": "0.3.0", - "nopt": "1.0.10" - }, - "bin": { - "hulk": "bin/hulk" - } - }, - "node_modules/hogan.js/node_modules/mkdirp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", - "integrity": "sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==", - "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", - "license": "MIT/X11", - "engines": { - "node": "*" - } - }, "node_modules/hookified": { "version": "1.12.2", "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.12.2.tgz", @@ -9547,21 +9137,6 @@ "node": ">= 14" } }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, "node_modules/https-proxy-agent": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", @@ -9657,12 +9232,6 @@ "node": ">=0.10.0" } }, - "node_modules/immediate": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", - "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==", - "license": "MIT" - }, "node_modules/immutable": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.4.tgz", @@ -9777,6 +9346,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, "license": "ISC" }, "node_modules/ini": { @@ -10134,12 +9704,6 @@ "node": ">=4" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "license": "MIT" - }, "node_modules/is-what": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", @@ -10171,12 +9735,6 @@ "node": ">=8" } }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "license": "MIT" - }, "node_modules/isbinaryfile": { "version": "5.0.6", "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.6.tgz", @@ -10217,12 +9775,6 @@ "node": ">=0.10.0" } }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "license": "MIT" - }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", @@ -10328,12 +9880,6 @@ "url": "https://github.com/sponsors/panva" } }, - "node_modules/jquery": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", - "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", - "license": "MIT" - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -10354,12 +9900,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "license": "MIT" - }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", @@ -10374,16 +9914,11 @@ "dev": true, "license": "MIT" }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "license": "(AFL-2.1 OR BSD-3-Clause)" - }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { @@ -10393,12 +9928,6 @@ "dev": true, "license": "MIT" }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "license": "ISC" - }, "node_modules/jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", @@ -10409,21 +9938,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "license": "MIT", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/junk": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", @@ -10794,6 +10308,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "dev": true, "license": "MIT", "dependencies": { "uc.micro": "^2.0.0" @@ -10827,18 +10342,6 @@ "dev": true, "license": "MIT" }, - "node_modules/list.js": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/list.js/-/list.js-2.3.1.tgz", - "integrity": "sha512-jnmm7DYpKtH3DxtO1E2VNCC9Gp7Wrp/FWA2JxQrZUhVJ2RCQBd57pCN6W5w6jpsfWZV0PCAbTX2NOPgyFeeZZg==", - "license": "MIT", - "dependencies": { - "string-natural-compare": "^2.0.2" - }, - "engines": { - "node": "^6.0 || ^8.0 || ^10.0 || ^12.0 || >=14" - } - }, "node_modules/lit": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/lit/-/lit-3.3.1.tgz", @@ -10873,12 +10376,6 @@ "@types/trusted-types": "^2.0.2" } }, - "node_modules/load-script": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/load-script/-/load-script-1.0.0.tgz", - "integrity": "sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==", - "license": "MIT" - }, "node_modules/loader-runner": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", @@ -11086,6 +10583,7 @@ "version": "14.1.0", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "dev": true, "license": "MIT", "dependencies": { "argparse": "^2.0.1", @@ -11103,6 +10601,7 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=0.12" @@ -11263,6 +10762,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "dev": true, "license": "MIT" }, "node_modules/media-typer": { @@ -11349,6 +10849,7 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -11358,6 +10859,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, "license": "MIT", "dependencies": { "mime-db": "1.52.0" @@ -11376,15 +10878,6 @@ "node": ">=6" } }, - "node_modules/min-document": { - "version": "2.19.2", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.2.tgz", - "integrity": "sha512-8S5I8db/uZN8r9HSLFVWPdJCvYOejMcEC82VIzNUc6Zkklf/d1gg2psfE79/vyhWOj4+J8MtwmoOz3TmvaGu5A==", - "license": "MIT", - "dependencies": { - "dom-walk": "^0.1.0" - } - }, "node_modules/min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", @@ -11685,21 +11178,6 @@ "esm-import-transformer": "^3.0.3" } }, - "node_modules/nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", - "license": "MIT", - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "*" - } - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -11785,15 +11263,6 @@ "node": ">= 6" } }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, "node_modules/oauth4webapi": { "version": "3.8.3", "resolved": "https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.3.tgz", @@ -11816,15 +11285,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -11906,12 +11366,6 @@ "node": ">= 0.8.0" } }, - "node_modules/orderedmap": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/orderedmap/-/orderedmap-2.1.1.tgz", - "integrity": "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==", - "license": "MIT" - }, "node_modules/outdent": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/outdent/-/outdent-0.5.0.tgz", @@ -12302,12 +11756,6 @@ "dev": true, "license": "MIT" }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "license": "MIT" - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -13435,15 +12883,6 @@ "node": ">=6" } }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", @@ -13474,155 +12913,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/prosemirror-commands": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.7.1.tgz", - "integrity": "sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==", - "license": "MIT", - "dependencies": { - "prosemirror-model": "^1.0.0", - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.10.2" - } - }, - "node_modules/prosemirror-highlightjs": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/prosemirror-highlightjs/-/prosemirror-highlightjs-0.9.1.tgz", - "integrity": "sha512-aqcXUCM4Dbc+0DoORrmF4MWrdIJuaJKUpZvzi1xy0HEx06J5vTlnwR25xCUIbxD3ilOtkabB36QqY3WQ03OuzQ==", - "license": "MIT", - "peerDependencies": { - "highlight.js": "^11.6.0", - "prosemirror-model": "^1.18.1", - "prosemirror-state": "^1.4.1", - "prosemirror-view": "^1.26.5" - } - }, - "node_modules/prosemirror-history": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.4.1.tgz", - "integrity": "sha512-2JZD8z2JviJrboD9cPuX/Sv/1ChFng+xh2tChQ2X4bB2HeK+rra/bmJ3xGntCcjhOqIzSDG6Id7e8RJ9QPXLEQ==", - "license": "MIT", - "dependencies": { - "prosemirror-state": "^1.2.2", - "prosemirror-transform": "^1.0.0", - "prosemirror-view": "^1.31.0", - "rope-sequence": "^1.3.0" - } - }, - "node_modules/prosemirror-inputrules": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.5.1.tgz", - "integrity": "sha512-7wj4uMjKaXWAQ1CDgxNzNtR9AlsuwzHfdFH1ygEHA2KHF2DOEaXl1CJfNPAKCg9qNEh4rum975QLaCiQPyY6Fw==", - "license": "MIT", - "dependencies": { - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.0.0" - } - }, - "node_modules/prosemirror-keymap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.3.tgz", - "integrity": "sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==", - "license": "MIT", - "dependencies": { - "prosemirror-state": "^1.0.0", - "w3c-keyname": "^2.2.0" - } - }, - "node_modules/prosemirror-lezer": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/prosemirror-lezer/-/prosemirror-lezer-0.0.5.tgz", - "integrity": "sha512-a+uJ0Pz4lcuj8BLAwXi+jof8ZkKcbaOwkRG8nHC7NBPFO/v7WW/Gz+aaMTFNYTP5T1/r7C/nLvBHJirtk/KiYw==", - "license": "MIT", - "peerDependencies": { - "@lezer/common": "^1.0.0", - "@lezer/highlight": "^1.0.0", - "prosemirror-model": "^1.18.1", - "prosemirror-state": "^1.4.1", - "prosemirror-view": "^1.26.5" - } - }, - "node_modules/prosemirror-markdown": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.13.2.tgz", - "integrity": "sha512-FPD9rHPdA9fqzNmIIDhhnYQ6WgNoSWX9StUZ8LEKapaXU9i6XgykaHKhp6XMyXlOWetmaFgGDS/nu/w9/vUc5g==", - "license": "MIT", - "dependencies": { - "@types/markdown-it": "^14.0.0", - "markdown-it": "^14.0.0", - "prosemirror-model": "^1.25.0" - } - }, - "node_modules/prosemirror-model": { - "version": "1.25.4", - "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.25.4.tgz", - "integrity": "sha512-PIM7E43PBxKce8OQeezAs9j4TP+5yDpZVbuurd1h5phUxEKIu+G2a+EUZzIC5nS1mJktDJWzbqS23n1tsAf5QA==", - "license": "MIT", - "dependencies": { - "orderedmap": "^2.0.0" - } - }, - "node_modules/prosemirror-schema-basic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.4.tgz", - "integrity": "sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==", - "license": "MIT", - "dependencies": { - "prosemirror-model": "^1.25.0" - } - }, - "node_modules/prosemirror-schema-list": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.5.1.tgz", - "integrity": "sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==", - "license": "MIT", - "dependencies": { - "prosemirror-model": "^1.0.0", - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.7.3" - } - }, - "node_modules/prosemirror-state": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.4.tgz", - "integrity": "sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw==", - "license": "MIT", - "dependencies": { - "prosemirror-model": "^1.0.0", - "prosemirror-transform": "^1.0.0", - "prosemirror-view": "^1.27.0" - } - }, - "node_modules/prosemirror-transform": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.10.4.tgz", - "integrity": "sha512-pwDy22nAnGqNR1feOQKHxoFkkUtepoFAd3r2hbEDsnf4wp57kKA36hXsB3njA9FtONBEwSDnDeCiJe+ItD+ykw==", - "license": "MIT", - "dependencies": { - "prosemirror-model": "^1.21.0" - } - }, - "node_modules/prosemirror-utils": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/prosemirror-utils/-/prosemirror-utils-1.2.2.tgz", - "integrity": "sha512-7a2MPf99oCW8/587rQYI1/snX71Ban40+apr1hLkY8TmU9YXd7JeR6QsmktcTisJURO3WRjxIia4lTMsYgZVOw==", - "license": "Apache-2.0", - "peerDependencies": { - "prosemirror-model": "^1.19.2", - "prosemirror-state": "^1.4.3" - } - }, - "node_modules/prosemirror-view": { - "version": "1.41.3", - "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.41.3.tgz", - "integrity": "sha512-SqMiYMUQNNBP9kfPhLO8WXEk/fon47vc52FQsUiJzTBuyjKgEcoAwMyF04eQ4WZ2ArMn7+ReypYL60aKngbACQ==", - "license": "MIT", - "dependencies": { - "prosemirror-model": "^1.20.0", - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.1.0" - } - }, "node_modules/proxy-agent": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", @@ -13667,18 +12957,6 @@ "devOptional": true, "license": "MIT" }, - "node_modules/psl": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", - "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", - "license": "MIT", - "dependencies": { - "punycode": "^2.3.1" - }, - "funding": { - "url": "https://github.com/sponsors/lupomontero" - } - }, "node_modules/pump": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", @@ -13694,6 +12972,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -13703,6 +12982,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -13773,14 +13053,6 @@ ], "license": "MIT" }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", - "engines": { - "node": ">=0.4.x" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -14031,18 +13303,6 @@ "node": ">=8" } }, - "node_modules/reduce": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/reduce/-/reduce-1.0.3.tgz", - "integrity": "sha512-0Dtt3Bgj34/yKFzE5N9V6/HYyP3gb+E3TLs/hMr/wGgkCIzYa+7G4hNrE/P+en52OJT+pLUgmba9DQF3AB+2LQ==", - "license": "MIT", - "dependencies": { - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/rehype": { "version": "12.0.1", "resolved": "https://registry.npmjs.org/rehype/-/rehype-12.0.1.tgz", @@ -14248,47 +13508,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "license": "Apache-2.0", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.6" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -15375,12 +14594,6 @@ "dev": true, "license": "MIT" }, - "node_modules/rope-sequence": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.4.tgz", - "integrity": "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==", - "license": "MIT" - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -15447,6 +14660,7 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, "funding": [ { "type": "github", @@ -15492,6 +14706,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "devOptional": true, "license": "MIT" }, "node_modules/sass": { @@ -16087,31 +15302,6 @@ "dev": true, "license": "BSD-3-Clause" }, - "node_modules/sshpk": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", - "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", - "license": "MIT", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/ssri": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/ssri/-/ssri-11.0.0.tgz", @@ -16133,27 +15323,6 @@ "dev": true, "license": "MIT" }, - "node_modules/stack-utils": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.5.tgz", - "integrity": "sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ==", - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/stackback": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", @@ -16233,12 +15402,6 @@ "dev": true, "license": "CC0-1.0" }, - "node_modules/string-natural-compare": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-2.0.3.tgz", - "integrity": "sha512-4Kcl12rNjc+6EKhY8QyDVuQTAlMWwRiNbsxnVwBUKFr7dYPQuXVrtNU4sEkjF9LHY0AY6uVbB3ktbkIH4LC+BQ==", - "license": "MIT" - }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", @@ -17200,12 +16363,6 @@ "b4a": "^1.6.4" } }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "license": "MIT" - }, "node_modules/tiny-invariant": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", @@ -17273,12 +16430,6 @@ "node": ">=14.0.0" } }, - "node_modules/to-factory": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-factory/-/to-factory-1.0.0.tgz", - "integrity": "sha512-JVYrY42wMG7ddf+wBUQR/uHGbjUHZbLisJ8N62AMm0iTZ0p8YTcZLzdtomU0+H+wa99VbkyvQGB3zxB7NDzgIQ==", - "license": "MIT" - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -17311,19 +16462,6 @@ "node": ">=6" } }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "license": "BSD-3-Clause", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/tr46": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", @@ -17418,24 +16556,6 @@ "node": ">=0.6.x" } }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "license": "Unlicense" - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -17572,6 +16692,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true, "license": "MIT" }, "node_modules/undici": { @@ -17765,6 +16886,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" @@ -17784,16 +16906,6 @@ "dev": true, "license": "MIT" }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } - }, "node_modules/v8-to-istanbul": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", @@ -17819,20 +16931,6 @@ "node": ">= 0.8" } }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "engines": [ - "node >=0.6.0" - ], - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, "node_modules/vfile": { "version": "5.3.7", "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", @@ -18123,12 +17221,6 @@ "node": ">=18" } }, - "node_modules/w3c-keyname": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", - "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", - "license": "MIT" - }, "node_modules/watchpack": { "version": "2.4.4", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", @@ -18692,12 +17784,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/zepto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/zepto/-/zepto-1.2.0.tgz", - "integrity": "sha512-C1x6lfvBICFTQIMgbt3JqMOno3VOtkWat/xEakLTOurskYIHPmzJrzd1e8BnmtdDVJlGuk5D+FxyCA8MPmkIyA==", - "license": "MIT" - }, "node_modules/zimmerframe": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.4.tgz", @@ -18726,26 +17812,13 @@ }, "packages/stacks-classic": { "name": "@stackoverflow/stacks", - "version": "3.0.0-beta.9", + "version": "3.0.0-beta.11", "dependencies": { "@hotwired/stimulus": "^3.2.2", "@popperjs/core": "^2.11.8" } }, "packages/stacks-docs": { - "name": "@stackoverflow/stacks-docs", - "dependencies": { - "@hotwired/stimulus": "^3.2.2", - "@stackoverflow/stacks": "*", - "@stackoverflow/stacks-editor": "^1.0.0-beta.3", - "@stackoverflow/stacks-icons": "^7.0.0-beta.7", - "@stackoverflow/stacks-icons-legacy": "npm:@stackoverflow/stacks-icons@^6.6.1", - "docsearch.js": "^2.6.3", - "jquery": "^3.7.1", - "list.js": "^2.3.1" - } - }, - "packages/stacks-site": { "name": "@stackoverflow/stacks-site", "version": "0.0.1", "dependencies": { @@ -18771,35 +17844,477 @@ "vite": "^7.0.4" } }, - "packages/stacks-site/node_modules/@sveltejs/vite-plugin-svelte": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-6.2.1.tgz", - "integrity": "sha512-YZs/OSKOQAQCnJvM/P+F1URotNnYNeU3P2s4oIpzm1uFaqUEqRxUB0g5ejMjEb5Gjb9/PiBI5Ktrq4rUUF8UVQ==", + "packages/stacks-docs/node_modules/@esbuild/aix-ppc64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.1.tgz", + "integrity": "sha512-HHB50pdsBX6k47S4u5g/CaLjqS3qwaOVE5ILsq64jyzgMhLuCuZ8rGzM9yhsAjfjkbgUPMzZEPa7DAp7yz6vuA==", + "cpu": [ + "ppc64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@sveltejs/vite-plugin-svelte-inspector": "^5.0.0", - "debug": "^4.4.1", - "deepmerge": "^4.3.1", - "magic-string": "^0.30.17", - "vitefu": "^1.1.1" - }, + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": "^20.19 || ^22.12 || >=24" - }, - "peerDependencies": { - "svelte": "^5.0.0", - "vite": "^6.3.0 || ^7.0.0" + "node": ">=18" } }, - "packages/stacks-site/node_modules/@sveltejs/vite-plugin-svelte-inspector": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-5.0.1.tgz", - "integrity": "sha512-ubWshlMk4bc8mkwWbg6vNvCeT7lGQojE3ijDh3QTR6Zr/R+GXxsGbyH4PExEPpiFmqPhYiVSVmHBjUcVc1JIrA==", + "packages/stacks-docs/node_modules/@esbuild/android-arm": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.1.tgz", + "integrity": "sha512-kFqa6/UcaTbGm/NncN9kzVOODjhZW8e+FRdSeypWe6j33gzclHtwlANs26JrupOntlcWmB0u8+8HZo8s7thHvg==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "dependencies": { - "debug": "^4.4.1" + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/stacks-docs/node_modules/@esbuild/android-arm64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.1.tgz", + "integrity": "sha512-45fuKmAJpxnQWixOGCrS+ro4Uvb4Re9+UTieUY2f8AEc+t7d4AaZ6eUJ3Hva7dtrxAAWHtlEFsXFMAgNnGU9uQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/stacks-docs/node_modules/@esbuild/android-x64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.1.tgz", + "integrity": "sha512-LBEpOz0BsgMEeHgenf5aqmn/lLNTFXVfoWMUox8CtWWYK9X4jmQzWjoGoNb8lmAYml/tQ/Ysvm8q7szu7BoxRQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/stacks-docs/node_modules/@esbuild/darwin-arm64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.1.tgz", + "integrity": "sha512-veg7fL8eMSCVKL7IW4pxb54QERtedFDfY/ASrumK/SbFsXnRazxY4YykN/THYqFnFwJ0aVjiUrVG2PwcdAEqQQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/stacks-docs/node_modules/@esbuild/darwin-x64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.1.tgz", + "integrity": "sha512-+3ELd+nTzhfWb07Vol7EZ+5PTbJ/u74nC6iv4/lwIU99Ip5uuY6QoIf0Hn4m2HoV0qcnRivN3KSqc+FyCHjoVQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/stacks-docs/node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.1.tgz", + "integrity": "sha512-/8Rfgns4XD9XOSXlzUDepG8PX+AVWHliYlUkFI3K3GB6tqbdjYqdhcb4BKRd7C0BhZSoaCxhv8kTcBrcZWP+xg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/stacks-docs/node_modules/@esbuild/freebsd-x64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.1.tgz", + "integrity": "sha512-GITpD8dK9C+r+5yRT/UKVT36h/DQLOHdwGVwwoHidlnA168oD3uxA878XloXebK4Ul3gDBBIvEdL7go9gCUFzQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/stacks-docs/node_modules/@esbuild/linux-arm": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.1.tgz", + "integrity": "sha512-ieMID0JRZY/ZeCrsFQ3Y3NlHNCqIhTprJfDgSB3/lv5jJZ8FX3hqPyXWhe+gvS5ARMBJ242PM+VNz/ctNj//eA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/stacks-docs/node_modules/@esbuild/linux-arm64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.1.tgz", + "integrity": "sha512-W9//kCrh/6in9rWIBdKaMtuTTzNj6jSeG/haWBADqLLa9P8O5YSRDzgD5y9QBok4AYlzS6ARHifAb75V6G670Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/stacks-docs/node_modules/@esbuild/linux-ia32": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.1.tgz", + "integrity": "sha512-VIUV4z8GD8rtSVMfAj1aXFahsi/+tcoXXNYmXgzISL+KB381vbSTNdeZHHHIYqFyXcoEhu9n5cT+05tRv13rlw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/stacks-docs/node_modules/@esbuild/linux-loong64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.1.tgz", + "integrity": "sha512-l4rfiiJRN7sTNI//ff65zJ9z8U+k6zcCg0LALU5iEWzY+a1mVZ8iWC1k5EsNKThZ7XCQ6YWtsZ8EWYm7r1UEsg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/stacks-docs/node_modules/@esbuild/linux-mips64el": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.1.tgz", + "integrity": "sha512-U0bEuAOLvO/DWFdygTHWY8C067FXz+UbzKgxYhXC0fDieFa0kDIra1FAhsAARRJbvEyso8aAqvPdNxzWuStBnA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/stacks-docs/node_modules/@esbuild/linux-ppc64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.1.tgz", + "integrity": "sha512-NzdQ/Xwu6vPSf/GkdmRNsOfIeSGnh7muundsWItmBsVpMoNPVpM61qNzAVY3pZ1glzzAxLR40UyYM23eaDDbYQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/stacks-docs/node_modules/@esbuild/linux-riscv64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.1.tgz", + "integrity": "sha512-7zlw8p3IApcsN7mFw0O1Z1PyEk6PlKMu18roImfl3iQHTnr/yAfYv6s4hXPidbDoI2Q0pW+5xeoM4eTCC0UdrQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/stacks-docs/node_modules/@esbuild/linux-s390x": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.1.tgz", + "integrity": "sha512-cGj5wli+G+nkVQdZo3+7FDKC25Uh4ZVwOAK6A06Hsvgr8WqBBuOy/1s+PUEd/6Je+vjfm6stX0kmib5b/O2Ykw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/stacks-docs/node_modules/@esbuild/linux-x64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.1.tgz", + "integrity": "sha512-z3H/HYI9MM0HTv3hQZ81f+AKb+yEoCRlUby1F80vbQ5XdzEMyY/9iNlAmhqiBKw4MJXwfgsh7ERGEOhrM1niMA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/stacks-docs/node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.1.tgz", + "integrity": "sha512-wzC24DxAvk8Em01YmVXyjl96Mr+ecTPyOuADAvjGg+fyBpGmxmcr2E5ttf7Im8D0sXZihpxzO1isus8MdjMCXQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/stacks-docs/node_modules/@esbuild/netbsd-x64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.1.tgz", + "integrity": "sha512-1YQ8ybGi2yIXswu6eNzJsrYIGFpnlzEWRl6iR5gMgmsrR0FcNoV1m9k9sc3PuP5rUBLshOZylc9nqSgymI+TYg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/stacks-docs/node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.1.tgz", + "integrity": "sha512-5Z+DzLCrq5wmU7RDaMDe2DVXMRm2tTDvX2KU14JJVBN2CT/qov7XVix85QoJqHltpvAOZUAc3ndU56HSMWrv8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/stacks-docs/node_modules/@esbuild/openbsd-x64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.1.tgz", + "integrity": "sha512-Q73ENzIdPF5jap4wqLtsfh8YbYSZ8Q0wnxplOlZUOyZy7B4ZKW8DXGWgTCZmF8VWD7Tciwv5F4NsRf6vYlZtqg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/stacks-docs/node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.1.tgz", + "integrity": "sha512-ajbHrGM/XiK+sXM0JzEbJAen+0E+JMQZ2l4RR4VFwvV9JEERx+oxtgkpoKv1SevhjavK2z2ReHk32pjzktWbGg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "packages/stacks-docs/node_modules/@esbuild/sunos-x64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.1.tgz", + "integrity": "sha512-IPUW+y4VIjuDVn+OMzHc5FV4GubIwPnsz6ubkvN8cuhEqH81NovB53IUlrlBkPMEPxvNnf79MGBoz8rZ2iW8HA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "packages/stacks-docs/node_modules/@esbuild/win32-arm64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.1.tgz", + "integrity": "sha512-RIVRWiljWA6CdVu8zkWcRmGP7iRRIIwvhDKem8UMBjPql2TXM5PkDVvvrzMtj1V+WFPB4K7zkIGM7VzRtFkjdg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/stacks-docs/node_modules/@esbuild/win32-ia32": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.1.tgz", + "integrity": "sha512-2BR5M8CPbptC1AK5JbJT1fWrHLvejwZidKx3UMSF0ecHMa+smhi16drIrCEggkgviBwLYd5nwrFLSl5Kho96RQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/stacks-docs/node_modules/@esbuild/win32-x64": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.1.tgz", + "integrity": "sha512-d5X6RMYv6taIymSk8JBP+nxv8DQAMY6A51GPgusqLdK9wBz5wWIXy1KjTck6HnjE9hqJzJRdk+1p/t5soSbCtw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/stacks-docs/node_modules/@sveltejs/vite-plugin-svelte": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-6.2.1.tgz", + "integrity": "sha512-YZs/OSKOQAQCnJvM/P+F1URotNnYNeU3P2s4oIpzm1uFaqUEqRxUB0g5ejMjEb5Gjb9/PiBI5Ktrq4rUUF8UVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sveltejs/vite-plugin-svelte-inspector": "^5.0.0", + "debug": "^4.4.1", + "deepmerge": "^4.3.1", + "magic-string": "^0.30.17", + "vitefu": "^1.1.1" + }, + "engines": { + "node": "^20.19 || ^22.12 || >=24" + }, + "peerDependencies": { + "svelte": "^5.0.0", + "vite": "^6.3.0 || ^7.0.0" + } + }, + "packages/stacks-docs/node_modules/@sveltejs/vite-plugin-svelte-inspector": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-5.0.1.tgz", + "integrity": "sha512-ubWshlMk4bc8mkwWbg6vNvCeT7lGQojE3ijDh3QTR6Zr/R+GXxsGbyH4PExEPpiFmqPhYiVSVmHBjUcVc1JIrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.1" }, "engines": { "node": "^20.19 || ^22.12 || >=24" @@ -18810,14 +18325,56 @@ "vite": "^6.3.0 || ^7.0.0" } }, - "packages/stacks-site/node_modules/vite": { - "version": "7.2.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.6.tgz", - "integrity": "sha512-tI2l/nFHC5rLh7+5+o7QjKjSR04ivXDF4jcgV0f/bTQ+OJiITy5S6gaynVsEM+7RqzufMnVbIon6Sr5x1SDYaQ==", + "packages/stacks-docs/node_modules/esbuild": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.1.tgz", + "integrity": "sha512-yY35KZckJJuVVPXpvjgxiCuVEJT67F6zDeVTv4rizyPrfGBUpZQsvmxnN+C371c2esD/hNMjj4tpBhuueLN7aA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.1", + "@esbuild/android-arm": "0.27.1", + "@esbuild/android-arm64": "0.27.1", + "@esbuild/android-x64": "0.27.1", + "@esbuild/darwin-arm64": "0.27.1", + "@esbuild/darwin-x64": "0.27.1", + "@esbuild/freebsd-arm64": "0.27.1", + "@esbuild/freebsd-x64": "0.27.1", + "@esbuild/linux-arm": "0.27.1", + "@esbuild/linux-arm64": "0.27.1", + "@esbuild/linux-ia32": "0.27.1", + "@esbuild/linux-loong64": "0.27.1", + "@esbuild/linux-mips64el": "0.27.1", + "@esbuild/linux-ppc64": "0.27.1", + "@esbuild/linux-riscv64": "0.27.1", + "@esbuild/linux-s390x": "0.27.1", + "@esbuild/linux-x64": "0.27.1", + "@esbuild/netbsd-arm64": "0.27.1", + "@esbuild/netbsd-x64": "0.27.1", + "@esbuild/openbsd-arm64": "0.27.1", + "@esbuild/openbsd-x64": "0.27.1", + "@esbuild/openharmony-arm64": "0.27.1", + "@esbuild/sunos-x64": "0.27.1", + "@esbuild/win32-arm64": "0.27.1", + "@esbuild/win32-ia32": "0.27.1", + "@esbuild/win32-x64": "0.27.1" + } + }, + "packages/stacks-docs/node_modules/vite": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.0.tgz", + "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.25.0", + "esbuild": "^0.27.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", @@ -18885,9 +18442,36 @@ } } }, + "packages/stacks-site": { + "name": "@stackoverflow/stacks-site", + "version": "0.0.1", + "extraneous": true, + "dependencies": { + "@auth/sveltekit": "^1.10.0", + "@docsearch/css": "^4.3.2", + "@docsearch/js": "^4.3.2", + "@hbsnow/rehype-sectionize": "^1.0.7", + "@stackoverflow/stacks": "*", + "@stackoverflow/stacks-icons": "*", + "@stackoverflow/stacks-svelte": "*", + "@stefanprobst/rehype-extract-toc": "^3.0.0", + "modern-normalize": "^3.0.1", + "rehype-autolink-headings": "^7.1.0", + "rehype-slug": "^6.0.0", + "unist-util-visit": "^5.0.0", + "yaml": "^2.8.1" + }, + "devDependencies": { + "@sveltejs/adapter-netlify": "^5.0.0", + "@sveltejs/kit": "^2.22.0", + "@sveltejs/vite-plugin-svelte": "^6.0.0", + "mdsvex": "^0.12.3", + "vite": "^7.0.4" + } + }, "packages/stacks-svelte": { "name": "@stackoverflow/stacks-svelte", - "version": "1.0.0-beta.12", + "version": "1.0.0-beta.14", "dependencies": { "@floating-ui/core": "^1.7.3", "@stackoverflow/stacks-icons": "^7.0.0-beta.7", @@ -18897,7 +18481,7 @@ "svelte-sonner": "^1.0.5" }, "peerDependencies": { - "@stackoverflow/stacks": "^3.0.0-beta.8", + "@stackoverflow/stacks": "^3.0.0-beta.11", "svelte": "^5.0.0" } } diff --git a/packages/stacks-docs/package.json b/packages/stacks-docs/package.json index 9607d4cabe..a799fccf3e 100644 --- a/packages/stacks-docs/package.json +++ b/packages/stacks-docs/package.json @@ -5,6 +5,7 @@ "type": "module", "scripts": { "dev": "vite dev", + "prebuild": "npm run build -w @stackoverflow/stacks-svelte", "build": "bash netlify-setup.sh && npm run init-private-content && vite build", "preview": "vite preview", "prepare": "svelte-kit sync || echo ''", From 35887ef3f7ef643cb044e754e321a4429a89d0f1 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 16 Dec 2025 19:46:34 +0000 Subject: [PATCH 051/156] prebuild classic Signed-off-by: David Longworth --- packages/stacks-docs/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/stacks-docs/package.json b/packages/stacks-docs/package.json index a799fccf3e..7f014cadc8 100644 --- a/packages/stacks-docs/package.json +++ b/packages/stacks-docs/package.json @@ -5,7 +5,7 @@ "type": "module", "scripts": { "dev": "vite dev", - "prebuild": "npm run build -w @stackoverflow/stacks-svelte", + "prebuild": "npm run build -w @stackoverflow/stacks && npm run build -w @stackoverflow/stacks-svelte", "build": "bash netlify-setup.sh && npm run init-private-content && vite build", "preview": "vite preview", "prepare": "svelte-kit sync || echo ''", From 7912c01a1c4733c76f7b5f15d2679a1e608dd160 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 16 Dec 2025 19:49:03 +0000 Subject: [PATCH 052/156] fix thumb height Signed-off-by: David Longworth --- packages/stacks-docs/src/routes/[category]/+page.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/stacks-docs/src/routes/[category]/+page.svelte b/packages/stacks-docs/src/routes/[category]/+page.svelte index 37c2188f68..c302afa945 100644 --- a/packages/stacks-docs/src/routes/[category]/+page.svelte +++ b/packages/stacks-docs/src/routes/[category]/+page.svelte @@ -8,7 +8,7 @@ {#each data?.active?.items as subsection} - Thumbnail + Thumbnail {subsection?.title} {/each} From 5906c62369123f153c49c4d91364ad5252799c1e Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 16 Dec 2025 20:10:04 +0000 Subject: [PATCH 053/156] use eleventy folder for now Signed-off-by: David Longworth --- packages/stacks-docs/svelte.config.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/stacks-docs/svelte.config.js b/packages/stacks-docs/svelte.config.js index 786a9a83e7..d85f43754d 100644 --- a/packages/stacks-docs/svelte.config.js +++ b/packages/stacks-docs/svelte.config.js @@ -43,7 +43,10 @@ const config = { }), ], kit: { - adapter: adapter(), + adapter: adapter({ + pages: '_site', + assets: '_site', + }), alias: { $src: "src", $components: "src/components", From b84ea636e54c58aec12a6b91905a65afe8c95434 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 16 Dec 2025 20:20:49 +0000 Subject: [PATCH 054/156] try a postbuild move Signed-off-by: David Longworth --- packages/stacks-docs/package.json | 1 + packages/stacks-docs/svelte.config.js | 5 +---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/stacks-docs/package.json b/packages/stacks-docs/package.json index 7f014cadc8..638bca9415 100644 --- a/packages/stacks-docs/package.json +++ b/packages/stacks-docs/package.json @@ -7,6 +7,7 @@ "dev": "vite dev", "prebuild": "npm run build -w @stackoverflow/stacks && npm run build -w @stackoverflow/stacks-svelte", "build": "bash netlify-setup.sh && npm run init-private-content && vite build", + "postbuild": "mv build _site", "preview": "vite preview", "prepare": "svelte-kit sync || echo ''", "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", diff --git a/packages/stacks-docs/svelte.config.js b/packages/stacks-docs/svelte.config.js index d85f43754d..786a9a83e7 100644 --- a/packages/stacks-docs/svelte.config.js +++ b/packages/stacks-docs/svelte.config.js @@ -43,10 +43,7 @@ const config = { }), ], kit: { - adapter: adapter({ - pages: '_site', - assets: '_site', - }), + adapter: adapter(), alias: { $src: "src", $components: "src/components", From 5bf075d0258a81fa9dd009a5530e2836f8572197 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 16 Dec 2025 21:02:50 +0000 Subject: [PATCH 055/156] inline env Signed-off-by: David Longworth --- packages/stacks-svelte/netlify.toml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/stacks-svelte/netlify.toml b/packages/stacks-svelte/netlify.toml index 977d347971..f3c328e1ff 100644 --- a/packages/stacks-svelte/netlify.toml +++ b/packages/stacks-svelte/netlify.toml @@ -10,4 +10,9 @@ # IMPORTANT!: Git LFS settings can't be changed in the .toml file. You will need to set this environment # variable through the Netlify UI otherwise netlify won't be able to clone the repo due to all our images. # https://docs.netlify.com/build/configure-builds/environment-variables/#netlify-configuration-variables - GIT_LFS_ENABLED = "true" # just here as a reminder \ No newline at end of file + GIT_LFS_ENABLED = "true" # just here as a reminder + +[[plugins]] +package = "netlify-plugin-inline-functions-env" + [plugins.inputs] + buildEvent = "onBuild" \ No newline at end of file From fdc8b921a661912899c037a1920f0c43647b6e7f Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 16 Dec 2025 22:04:51 +0000 Subject: [PATCH 056/156] more migrations Signed-off-by: David Longworth --- .../src/docs/public/system/base/flex.md | 1628 ++++++++++++++++- .../src/docs/public/system/base/grid.md | 1372 +++++++++++++- .../src/docs/public/system/base/position.md | 256 ++- .../src/docs/public/system/base/spacing.md | 352 +++- 4 files changed, 3592 insertions(+), 16 deletions(-) diff --git a/packages/stacks-docs/src/docs/public/system/base/flex.md b/packages/stacks-docs/src/docs/public/system/base/flex.md index 148acc10de..6be23cc484 100644 --- a/packages/stacks-docs/src/docs/public/system/base/flex.md +++ b/packages/stacks-docs/src/docs/public/system/base/flex.md @@ -2,10 +2,1630 @@ updated: 2025-12-05 --- -## Flex + + + + +Stacks provides extensive utility and helper classes for flex layouts. If you are new to flex layouts, check out this interactive introduction by Joshua Comeau. + +## Basic flex layout + +A flex layout is initiated with the .d-flex class. By default, display: flex; starts a non-wrapping row. To convert it to a column, apply the .fd-column atomic class. + +```html +
+
+
+
+
+
+
+
+``` + +
+
+
+
.flex--item
+
.flex--item
+
+
+
+
+
.flex--item
+
.flex--item
+
+
+
+ +## Fluid + +By default, all flex items will only be as wide as their content. If you would like a flex item or all the flex items to fill the remaining space, apply the .fl-grow1 to the individual item, or .flex__fl-equal to the parent to apply to all children. + +### Fluid examples + +```html +
+
+
+
+
+
+
+
+
+``` + +
+
+
+
.flex--item.fl-grow1
+
.flex--item
+
+
+
+
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+ +## Fixed cells + +You can either fix the width of an individual element or fix the width of all child elements within a parent container by setting the width on the parent. The cell widths are based on a 12-column flex layout system. + +### Fixed classes + +
+ + + + + + + + + + {#each flexItem as item} + + + + + + {/each} + +
Individual WidthUniform WidthOutput
{item.class}{item.all}{item.output}
+
+ +### Fixed examples + +```html +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+``` + +
+
+
.flex--item[x]
+
+
+
.flex--item2
+
.flex--item10
+
+
+
+
+
.flex--item[x] and standard .flex--item
+
+
+
.flex--item3
+
.flex--item6
+
.flex--item
+
+
+
+
+
.d-flex.flex__allitems4
+
+
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+
+ +## Helpers + +We have a few helper classes you can add to a .d-flex container that affect the child .flex--items. + +### Helper classes + +
+ + + + + + + + + + {#each helpers as helper} + + + + + + {/each} + +
ClassDefinitionResponsive?
{helper.class}{helper.define} + +
+
+ +### Helpers examples + +```html +
+
+
+
+
+
+
+
+
+
+
+
+
+``` + +
+
+
.flex__center
+
+
.flex--item
+
+
+
+
.flex__fl-shrink0
+
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+
.flex__fl-equal
+
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+ +## Nested flex layouts + +Flex layouts can be nested within each other. This allows you to create unique, custom layouts without needing to create new, custom code or override existing styles. + +### Nested examples + +```html +
+
+
+
+
+
+
+
+``` + +
+
+
+
.flex--item
+
.flex--item
+
+
+
.flex--item2
+
.flex--item2
+
+ +## Gutters + +
+

Deprecation: gutters will be removed in a future release.
Please use gap classes to set spacing on flex items.

+
+ +Sometimes gutters are desired between cells. To do so apply the appropriate class to the parent wrapper. The gutter applies a margin to all sides. The sizes available are the same as the spacing units. + +### Gutter classes + +
+ + + + + + + + + {#each gutter as item} + + + + + {/each} + +
ClassOutput
{item.class}{item.output}
+
+ +### Gutter examples + +```html +
+
+
+
+
+
+
+
+
+
+
+
+``` + +
+
+
+
.gs16
+
.gs16
+
.gs16
+
.gs16
+
+
+
+
+
.gs16.gsx -- Row gutters only
+
.gs16.gsx -- Row gutters only
+
.gs16.gsx -- Row gutters only
+
.gs16.gsx -- Row gutters only
+
+
+
+
+
.gs16.gsy -- Column gutters only
+
.gs16.gsy -- Column gutters only
+
.gs16.gsy -- Column gutters only
+
.gs16.gsy -- Column gutters only
+
+
+
+ +### Nested gutters + +
+

Note: Nested flex layouts with gutter spacing will conflict with each other in unpredictable ways. TL;DR? Don't stick a .d-flex directly into a .d-flex, instead stick a .d-flex into a .flex--item like so:

+
+ +If you are nesting a flex layout with gutter spacing into another flex layout that also has gutter spacing, the child's parent wrapper margins will be overwritten by the parent. To have the child flex layout's gutter spacing honored, you have to put the child flex layout within a .flex--item wrapper first. This allows the parent and child flex layout gutter spacing to act correctly without interfering with each other. + +#### Do + +```html +
+
+
+
+
+
+
+
+
+``` + +
+
.flex--item
+
+
+
.flex--item
+
.flex--item
+
+
+
+ +#### Don’t + +```html +
+
+
+
+
+
+
+``` + +
+
.flex--item
+
+
.flex--item
+
.flex--item
+
+
+ +## Flex direction + +On a flex container, you can set the direction of the child items. + +### Flex direction classes + +
+ + + + + + + + + + {#each flexDirection as item} + + + + + + {/each} + +
ClassDefinitionResponsive?
{item.class}{item.define} + +
+
+ +### Flex direction examples + +```html +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+``` + +
+
+
+
.fd-row
+
Default
+
+
+
.flex--item 1
+
.flex--item 2
+
.flex--item 3
+
+
+
+
.fd-row-reverse
+
+
.flex--item 1
+
.flex--item 2
+
.flex--item 3
+
+
+
+
.fd-column
+
+
.flex--item 1
+
.flex--item 2
+
.flex--item 3
+
+
+
+
.fd-column-reverse
+
+
.flex--item 1
+
.flex--item 2
+
.flex--item 3
+
+
+
+ +## Flex wrap + +On a flex container, you can control if the children wrap. + +### Flex wrap classes + +
+ + + + + + + + + + {#each flexWrap as item} + + + + + + {/each} + +
ClassDefinitionResponsive?
{item.class}{item.define} + +
+
+ +### Flex wrap examples + +```html +
+
+ … +
+
+
+ … +
+
+
+ … +
+``` + +
+
+
.fw-wrap
+
+
.flex--item 1
+
.flex--item 2
+
.flex--item 3
+
.flex--item 4
+
.flex--item 5
+
.flex--item 6
+
.flex--item 7
+
.flex--item 8
+
+
+
+
.fw-reverse
+
+
.flex--item 1
+
.flex--item 2
+
.flex--item 3
+
.flex--item 4
+
.flex--item 5
+
.flex--item 6
+
.flex--item 7
+
.flex--item 8
+
+
+
+
+
.fw-nowrap
+
Default
+
+
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+ +## Justify content + +Flex items can be controlled with atomic classes on the container's main axis. This means controlling how a .flex--item is aligned left to right when in an .fd-row, and top and bottom in an .fd-column. + +### Justify content classes + +
+ + + + + + + + + + {#each justification as item} + + + + + + {/each} + +
ClassDefinitionResponsive?
{item.class}{item.define} + +
+
+ +### Justify content examples + +```html +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+``` + +
+
+
.jc-center
+
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+
.jc-end
+
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+
.jc-space-around
+
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+
.jc-space-between
+
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+
.jc-space-evenly
+
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+
+
.jc-start
+
Default
+
+
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+ +## Align items + +Flex items can be controlled with atomic classes on the container's cross axis. This means controlling how a .flex--item is aligned top to bottom when in an .fd-row, and left to right in an .fd-column. + +### Align items classes + +
+ + + + + + + + + + {#each alignItems as item} + + + + + + {/each} + +
ClassDefinitionResponsive?
{item.class}{item.define} + +
+
+ +### Align items examples + +```html +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+``` + +
+
+
.ai-baseline
+
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+
.ai-center
+
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+
.ai-end
+
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+
.ai-start
+
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+
+
.ai-stretch
+
Default
+
+
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+ +## Align content + +Flex items can be controlled with atomic classes on the container's cross axis. + +### Align content classes + +
+ + + + + + + + + + {#each alignContent as item} + + + + + + {/each} + +
ClassDefinitionResponsive?
{item.class}{item.define} + +
+
+ +### Align content examples + +```html +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+``` + +
+
+
.ac-center
+
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+
.ac-end
+
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+
.ac-space-around
+
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+
.ac-space-between
+
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+
+
.ac-start
+
Default
+
+
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+ +## Align self + +A flex container's align-items can be overridden on individual items within a flex layout. + +### Align self classes + +
+ + + + + + + + + + {#each alignSelf as item} + + + + + + {/each} + +
ClassDefinitionResponsive?
{item.class}{item.define} + +
+
+ +### Align self examples + +```html +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+``` + +
+
+
+
.as-auto
+
Default
+
+
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+
.as-baseline
+
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+
.as-center
+
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+
.as-end
+
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+
.as-start
+
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+
.as-stretch
+
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+ +## Order + +Within a flex layout, you can force the position of individual elements. + +### Order classes + +
+ + + + + + + + + + {#each order as item} + + + + + + {/each} + +
ClassDefinitionResponsive?
{item.class}{item.define} + +
+
+ +### Order examples + +```html +
+
+
+
+
+
+
+
+
+
+``` + +
+
+
.order-first
+
+
.flex--item 1
+
.flex--item 2
+
.flex--item 3
+
+
+
+
.order-last
+
+
.flex--item 1
+
.flex--item 2
+
.flex--item 3
+
+
+
+ +## Flex shrink and grow + +You can control the growing and shrinking behavior of individual elements within a flex layout. + +### Flex classes + +
+ + + + + + + + + + {#each flex as item} + + + + + + {/each} + +
ClassDefinitionResponsive?
{item.class}{@html item.define} + +
+
+ +### Flex examples + +```html +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+``` + +
+
+
.fl-grow1
+
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+
.fl-grow0
+
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+
.fl-shrink1
+
+
.flex--item
+
.flex--
item
+
.flex--item
+
+
+
+
.fl-shrink0
+
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
+
.fl-none
+
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+ +
+
.fl-initial
+
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+ +
+
.fl-auto
+
+
.flex--item
+
.flex--item.ws2
+
.flex--item
+
+
+ +
+
.fl-equal
+
+
.flex--item
+
.flex--item
+
.flex--item
+
+
+
diff --git a/packages/stacks-docs/src/docs/public/system/base/grid.md b/packages/stacks-docs/src/docs/public/system/base/grid.md index 2ed490fecd..d3c2c78b95 100644 --- a/packages/stacks-docs/src/docs/public/system/base/grid.md +++ b/packages/stacks-docs/src/docs/public/system/base/grid.md @@ -2,10 +2,1374 @@ updated: 2025-12-05 --- -## Grid + + +## Overview + +CSS Grids are the most powerful layout system available in CSS. It has two dimensions, meaning it can handle both columns and rows simultaneously, unlike flex layouts which can only do one at a time. Applying .d-grid to a container will lay out its children according to the CSS Grid layout spec. Adding atomic modifying classes will change the layout's behavior. Applying classes to an individual .grid--item will change that cell's behavior. + +### Examples + +```html +
+
+
+``` + +
+
+ .d-grid .grid__4 .g16 +
.sm:g-af-row
+
+
+
+
.grid--item
+
.grid--col-all
+
+
+
.grid--item
+
.grid--col1
+
.md:grid--col-all
+
.grid--row2
+
+
+
.grid--item
+
.grid--col3
+
.md:grid--col-all
+
.grid__2
+ +
.d-grid
+
.g16
+
.grid__2
+
.sm:g-af-row
+
+
+
.grid--item
+
.sm:grid--col-all
+
+
+
.grid--item
+
.sm:grid--col-all
+
+
+
.grid--item
+
.sm:grid--col-all
+
+
+
.grid--item
+
.sm:grid--col-all
+
+
+
+
+
.grid--item
+
.grid--col2
+
+
+
.grid--item
+
.grid--col1
+
.md:grid--col2
+
+
+
.grid--item
+
.grid--col-all
+
+
+
.grid--item
+
.md:grid--col2
+
.md:has-row-2
+
+
+
.grid--item
+
.md:grid--col2
+
+
+
.grid--item
+
.md:grid--col2
+
+
+
.grid--item
+
.md:grid--col-all
+
+
+
+ +## Columns + +To define a discrete number of columns in your grid layout, you can add a grid__[x] modifying class. + +### Column classes + +
+ + + + + + + + + + + {#each columnTemplates as item} + + + + + + + {/each} + +
ClassOutputDefinitionResponsive?
.{item.class}{item.output}{item.define} + {#if item.responsive} + + {/if} +
+
+ +### Columns examples + +```html +
+
+
+
+
+
+
+
+
+
+
+
+
+``` + +
+
+
1
+
+ +
+
1
+
2
+
+ +
+
1
+
2
+
3
+
+ +
+
1
+
2
+
3
+
4
+
+ +
+
1
+
2
+
3
+
4
+
5
+
+ +
+
1
+
2
+
3
+
4
+
5
+
6
+
+ +
+
1
+
2
+
3
+
4
+
5
+
6
+
7
+
+ +
+
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
+ +
+
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
+ +
+
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
+ +
+
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
+ +
+
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
+ +
+
1
+
2
+
3
+
4
+
+
+ +## Column and row spans + +You can apply grid--col[x] to your columns, and grid--row[x] to your rows to span a specific number of columns or rows. + +### Column spanning classes + +
+ + + + + + + + + + + {#each columns as item} + + + + + + + {/each} + +
ClassOutputDefinitionResponsive?
.{item.class}{item.output}{item.define} + {#if item.responsive} + + {/if} +
+
+ +### Column examples + +```html +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+``` + +
+
+
.grid--col-all
+
+
+
.grid--col1
+
+
+
.grid--col2
+
+
+
.grid--col3
+
+
+
.grid--col4
+
+
+
.grid--col5
+
+
+
.grid--col6
+
+
+
.grid--col7
+
+
+
.grid--col8
+
+
+
.grid--col9
+
+
+
.grid--col10
+
+
+
.grid--col11
+
+
+
.grid--col12
+
+
+ +### Row classes + +
+ + + + + + + + + + + {#each rows as item} + + + + + + + {/each} + +
ClassOutputDefinitionResponsive?
.{item.class}{item.output}{item.define} + {#if item.responsive} + + {/if} +
+
+ +### Row example + +```html +
+
+
+
+
+
+
+``` + +
+
+
+
.grid--col2
+
.grid--row4
+
+
.grid--col2
+
.grid--col2
+
.grid--col2
+
.grid--col2
+
+
+ +## Autoflow + +If you have grid items that you don't explicitly place on the grid, the auto-placement algorithm kicks in to automatically place the items. + +### Autoflow classes + +
+ + + + + + + + + + + {#each autoflow as item} + + + + + + + {/each} + +
ClassOutputDefinitionResponsive?
.{item.class}{item.output}{item.define} + {#if item.responsive} + + {/if} +
+
+ +### Autoflow examples + +```html +
+
+
+``` + +
+
.g-af-row
+
+
1
+
2
+
3
+
+ +
.g-af-column
+
+
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
+ +
.g-af-dense
+
+
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
+
+ +## Start and end + +If you'd like to offset a column or row and specify its start and end positioning classes, you can apply these atomic classes. + +### Column start and end classes + +
+ + + + + + + + + + + {#each columnStartEnd as item} + + + + + + + {/each} + +
ClassOutputDefinitionResponsive?
.{item.class}{item.output}{item.define} + {#if item.responsive} + + {/if} +
+
+ +### Column start and end examples + +```html +
+
+
+
+
+``` + +
+
+
.grid--col-start1 .grid--col-end4
+
+
+
.grid--col-start2 .grid--col-end4
+
+
+
.grid--col2 .grid--col-end5
+
+
+ +### Row start and end classes + +
+ + + + + + + + + + + {#each rowStartEnd as item} + + + + + + + {/each} + +
ClassOutputDefinitionResponsive?
.{item.class}{item.output}{item.define} + {#if item.responsive} + + {/if} +
+
+ +### Row start and end examples + +```html +
+
+
+
+
+
+
+``` + +
+
+
+
.grid--col2
+
.grid--row-start2
+
.grid--row-end4
+
+
.grid--col2
+
.grid--col2
+
.grid--col2
+
.grid--col2
+
+
+ +## Alignment + +On the grid container, you can apply align-items to the y axis and justify-items to the x axis. On individual items, you can apply align-self on the y axis, and justify-self on the x axis. + +### Alignment classes + +
+ + + + + + + + + + + {#each alignment as item} + + + + + + + {/each} + +
ClassOutputDefinitionResponsive?
.{item.class}{item.output}{item.define} + {#if item.responsive} + + {/if} +
+
+ +### Alignment examples + +```html +
+
+
+
+ … +
+``` + +
+
Default
+
+
1
+
2
+
3
+
4
+
5
+
6
+
+ +
.ji-center .ai-center
+
+
1 .as-start
+
2
+
3 .as-stretch
+
4 .js-end
+
5
+
6
+
+
diff --git a/packages/stacks-docs/src/docs/public/system/base/position.md b/packages/stacks-docs/src/docs/public/system/base/position.md index 5b4be80bd3..38cea8b998 100644 --- a/packages/stacks-docs/src/docs/public/system/base/position.md +++ b/packages/stacks-docs/src/docs/public/system/base/position.md @@ -2,10 +2,258 @@ updated: 2025-12-05 --- -## Positioning + -Documentation coming soon. +## Classes + +
+ + + + + + + + + + + {#each positionClasses as atomic} + + + + + + + {/each} + +
ClassOutputDefinitionResponsive?
.{atomic.class}{atomic.output}{@html atomic.define} + {#if atomic.responsive} + + {/if} +
+
+ +## Examples + +```html +
+
+
+
+
+
+``` + +
+
+
.ps-static
+
.ps-relative

.t32
r24
+
.ps-absolute

.t48
.r32
+
.ps-sticky

.t64
+
+
+ +## Coordinates + +Our spacing units aren't limited to margin and padding; they also apply to top, right, left, and bottom declarations. Combined with our position utility classes, you should be able to achieve absolutely-positioned layouts while adhering to Stacks' spacing conventions. + +### Coordinate classes + +
+ + + + + + + + + + {#each coordinateDefinitions as space} + + + + + + {/each} + +
AbbreviationDefinitionResponsive?
{space.term}{space.define} + +
+
+ +### Coordinate examples + +```html +
+
+
+
+
+``` + +
+
+ .t12 .l12 +
+ +
+ .t48 .r24 +
+ +
+ .t50 .l50 +
+ +
+ .b48 .l48 +
+ +
+ .rn8 .bn8 +
+
+ .i64 +
+
+ +## Positive coordinates + +
+ + + + + {#each positionValues as value} + + {/each} + + + + {#each positionProperties as className} + + + {#each positionValues as value} + {#if className === "i"} + {#if value === "50%" || value === "100%"} + + {:else} + + {/if} + {:else} + + {/if} + {/each} + + {/each} + +
Prefix{value}
{className}-.{className}{value.replace("px", "")}.{className}{value.replace("px", "").replace("%", "")}
+
+ +## Negative coordinates + +
+ + + + + {#each positionValuesNegative as value} + + {/each} + + + + {#each positionPropertiesNegative as className} + + + {#each positionValuesNegative as value} + + {/each} + + {/each} + +
Prefix-{value}
{className}n.{className}n{value.replace("px", "").replace("%", "")}
+
diff --git a/packages/stacks-docs/src/docs/public/system/base/spacing.md b/packages/stacks-docs/src/docs/public/system/base/spacing.md index 8aabadb8cb..72a88fd53a 100644 --- a/packages/stacks-docs/src/docs/public/system/base/spacing.md +++ b/packages/stacks-docs/src/docs/public/system/base/spacing.md @@ -2,10 +2,354 @@ updated: 2025-12-05 --- -## Spacing + + +## Margin + +Immutable margin utilities are based on our global white space scale. These can dramatically help reduce the size of large stylesheets and allow for greater flexibility and quicker iteration when designing in the browser. + +Margin should never be declared outside of these utilities. This is meant to help create consistency and avoid magic numbers. If, for some reason, the default white space scale does not suit your design, customize and extend it before use. + +### Margin class abbreviations + +
+ + + + + + + + + + {#each marginDefinitions as space} + + + + + + {/each} + +
AbbreviationDefinitionResponsive?
{space.term}{space.define} + +
+
+ +### Margin classes + +```html +
+ … +
+``` + +
+ Example div with different margins applied +
+ +
+ + + + + {#each marginValues as value} + + {/each} + + + + {#each marginProperties as className} + + + {#each marginValues as value} + {#if className === "mx" || className === "my"} + {#if value === "0" || value === "50%" || value === "100%"} + + {:else} + + {/if} + {:else} + + {/if} + {/each} + + {/each} + +
{value}
{className}-.{className}{value.replace("px", "")}.{className}{value.replace("px", "").replace("%", "")}
+
+ +### Negative margin classes + +
+ + + + + {#each marginValuesNegative as value} + + {/each} + + + + {#each marginProperties as className} + + + {#each marginValuesNegative as value} + {#if className === "mx" || className === "my"} + {#if value === "0" || value === "50%" || value === "100%"} + + {:else} + + {/if} + {:else} + + {/if} + {/each} + + {/each} + +
-{value}
{className}n-.{className}n{value.replace("px", "")}.{className}n{value.replace("px", "").replace("%", "")}
+
+ +### Auto margin classes + +Stacks provides additional automatic margin classes. These come in handy when positioning individual flex items within flex layouts, or horizontally centering a block-level element. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DirectionClass
All directions + .m-auto +
Top + .mt-auto +
Right + .mr-auto +
Bottom + .mb-auto +
Left + .ml-auto +
X axis + .mx-auto +
+
+ +## Padding + +Immutable padding utilities are based on a global white space scale defined with custom properties. These can dramatically help reduce the size of large stylesheets and allow for greater flexibility and quicker iteration when designing in the browser. + +Padding should never be declared outside of these utilities. This is meant to help create consistency and avoid magic numbers. If, for some reason, the default white space scale does not suit your design, customize and extend it before use. + +### Padding class abbreviations + +
+ + + + + + + + + + {#each paddingDefinitions as space} + + + + + + {/each} + +
AbbreviationDefinitionResponsive?
{space.term}{space.define} + +
+
+ +### Padding classes + +```html +
+ … +
+``` + +
+ Example div with different paddings applied +
+ +
+ + + + + {#each paddingValues as value} + + {/each} + + + + {#each paddingProperties as className} + + + {#each paddingValues as value} + {#if className === "px" || className === "py"} + {#if value === "0" || value === "50%" || value === "100%"} + + {:else} + + {/if} + {:else} + + {/if} + {/each} + + {/each} + +
{value}
{className}-.{className}{value.replace("px", "")}.{className}{value.replace("px", "").replace("%", "")}
+
From 669dae172ba89f681d2184b2372536ae8e89c6c8 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 16 Dec 2025 22:05:00 +0000 Subject: [PATCH 057/156] differenciate the favicon Signed-off-by: David Longworth --- packages/stacks-docs/src/lib/assets/favicon.svg | 2 +- packages/stacks-docs/src/lib/assets/icon-lock.svg | 1 - packages/stacks-docs/src/lib/assets/logo.svg | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) delete mode 100644 packages/stacks-docs/src/lib/assets/icon-lock.svg delete mode 100644 packages/stacks-docs/src/lib/assets/logo.svg diff --git a/packages/stacks-docs/src/lib/assets/favicon.svg b/packages/stacks-docs/src/lib/assets/favicon.svg index 525e3e4a65..a365af2a34 100644 --- a/packages/stacks-docs/src/lib/assets/favicon.svg +++ b/packages/stacks-docs/src/lib/assets/favicon.svg @@ -1 +1 @@ - + \ No newline at end of file diff --git a/packages/stacks-docs/src/lib/assets/icon-lock.svg b/packages/stacks-docs/src/lib/assets/icon-lock.svg deleted file mode 100644 index 8e97726543..0000000000 --- a/packages/stacks-docs/src/lib/assets/icon-lock.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/packages/stacks-docs/src/lib/assets/logo.svg b/packages/stacks-docs/src/lib/assets/logo.svg deleted file mode 100644 index 00800caaa9..0000000000 --- a/packages/stacks-docs/src/lib/assets/logo.svg +++ /dev/null @@ -1 +0,0 @@ -Stack Overflow From 0d278da516e784954b63db4ee4e65519dacefff1 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 16 Dec 2025 22:34:58 +0000 Subject: [PATCH 058/156] current color docs Signed-off-by: David Longworth --- .../docs/public/system/base/current-color.md | 47 +++++++++++++++++-- 1 file changed, 42 insertions(+), 5 deletions(-) diff --git a/packages/stacks-docs/src/docs/public/system/base/current-color.md b/packages/stacks-docs/src/docs/public/system/base/current-color.md index 01d123e532..5a30f29943 100644 --- a/packages/stacks-docs/src/docs/public/system/base/current-color.md +++ b/packages/stacks-docs/src/docs/public/system/base/current-color.md @@ -1,11 +1,48 @@ --- -updated: 2025-12-05 +title: Current color +description: Atomic classes allow you to quickly add currentColor to an element's fill or stroke property. --- -## Current color +## Classes -Using currentColor for inheriting text color. +| Class | Output | +|-------|--------| +| `.fill-current` | `fill: currentColor;` | +| `.stroke-current` | `stroke: currentColor;` | -### Overview +## Examples -Documentation coming soon. +When applied to an SVG, applying `currentColor` to the fill or stroke property allows you to inherit the parent element's text color or the text color applied to the element itself. + +```html + + + + + +``` + +
+
+ + + +
+
+ + + +
+
+ + + + +
+
+ + + + +
+
From 1856e3d27a91266ef1e393a79ff56fa65eea6ee3 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 16 Dec 2025 22:41:21 +0000 Subject: [PATCH 059/156] tidy old code Signed-off-by: David Longworth --- .../src/docs/public/brand/logo/LogoFormatLockups.svelte | 4 ---- packages/stacks-svelte/netlify.toml | 5 ----- 2 files changed, 9 deletions(-) diff --git a/packages/stacks-docs/src/docs/public/brand/logo/LogoFormatLockups.svelte b/packages/stacks-docs/src/docs/public/brand/logo/LogoFormatLockups.svelte index 27e4b0995f..6957e50315 100644 --- a/packages/stacks-docs/src/docs/public/brand/logo/LogoFormatLockups.svelte +++ b/packages/stacks-docs/src/docs/public/brand/logo/LogoFormatLockups.svelte @@ -10,10 +10,6 @@ 'Horizontal', ] - const logoSize = [ - - ] - let index = $state(0) function onChange(i) { diff --git a/packages/stacks-svelte/netlify.toml b/packages/stacks-svelte/netlify.toml index f3c328e1ff..9c731442af 100644 --- a/packages/stacks-svelte/netlify.toml +++ b/packages/stacks-svelte/netlify.toml @@ -11,8 +11,3 @@ # variable through the Netlify UI otherwise netlify won't be able to clone the repo due to all our images. # https://docs.netlify.com/build/configure-builds/environment-variables/#netlify-configuration-variables GIT_LFS_ENABLED = "true" # just here as a reminder - -[[plugins]] -package = "netlify-plugin-inline-functions-env" - [plugins.inputs] - buildEvent = "onBuild" \ No newline at end of file From 2f7285e4a6b16e1087c854e1c97eda8a497bef5b Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 16 Dec 2025 22:49:26 +0000 Subject: [PATCH 060/156] mv command Signed-off-by: David Longworth --- packages/stacks-docs/package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/stacks-docs/package.json b/packages/stacks-docs/package.json index 638bca9415..1c9512db1d 100644 --- a/packages/stacks-docs/package.json +++ b/packages/stacks-docs/package.json @@ -6,8 +6,7 @@ "scripts": { "dev": "vite dev", "prebuild": "npm run build -w @stackoverflow/stacks && npm run build -w @stackoverflow/stacks-svelte", - "build": "bash netlify-setup.sh && npm run init-private-content && vite build", - "postbuild": "mv build _site", + "build": "bash netlify-setup.sh && npm run init-private-content && vite build && mv build _site", "preview": "vite preview", "prepare": "svelte-kit sync || echo ''", "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", From b956519bdc2f458fe32f466d4614960464a2db0e Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 16 Dec 2025 23:00:47 +0000 Subject: [PATCH 061/156] see if this works! Signed-off-by: David Longworth --- packages/stacks-docs/netlify.toml | 3 +++ packages/stacks-docs/package.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 packages/stacks-docs/netlify.toml diff --git a/packages/stacks-docs/netlify.toml b/packages/stacks-docs/netlify.toml new file mode 100644 index 0000000000..9cb4a9bfa2 --- /dev/null +++ b/packages/stacks-docs/netlify.toml @@ -0,0 +1,3 @@ +[build] + command = "npm run build" + publish = "build" \ No newline at end of file diff --git a/packages/stacks-docs/package.json b/packages/stacks-docs/package.json index 1c9512db1d..7f014cadc8 100644 --- a/packages/stacks-docs/package.json +++ b/packages/stacks-docs/package.json @@ -6,7 +6,7 @@ "scripts": { "dev": "vite dev", "prebuild": "npm run build -w @stackoverflow/stacks && npm run build -w @stackoverflow/stacks-svelte", - "build": "bash netlify-setup.sh && npm run init-private-content && vite build && mv build _site", + "build": "bash netlify-setup.sh && npm run init-private-content && vite build", "preview": "vite preview", "prepare": "svelte-kit sync || echo ''", "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", From e119970e1b3b31455efcb1c2b7c5bb7f2b64d384 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 16 Dec 2025 23:10:10 +0000 Subject: [PATCH 062/156] fix path Signed-off-by: David Longworth --- packages/stacks-docs/netlify.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/stacks-docs/netlify.toml b/packages/stacks-docs/netlify.toml index 9cb4a9bfa2..15af22695c 100644 --- a/packages/stacks-docs/netlify.toml +++ b/packages/stacks-docs/netlify.toml @@ -1,3 +1,3 @@ [build] command = "npm run build" - publish = "build" \ No newline at end of file + publish = "packages/stacks-docs/_site" \ No newline at end of file From b0ed51463fc7dab388605febc75548b121c5e163 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 16 Dec 2025 23:22:59 +0000 Subject: [PATCH 063/156] update toml Signed-off-by: David Longworth --- packages/stacks-docs/netlify.toml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/stacks-docs/netlify.toml b/packages/stacks-docs/netlify.toml index 15af22695c..da61e48eeb 100644 --- a/packages/stacks-docs/netlify.toml +++ b/packages/stacks-docs/netlify.toml @@ -1,3 +1,4 @@ [build] - command = "npm run build" - publish = "packages/stacks-docs/_site" \ No newline at end of file + command = "npm run build -w packages/stacks-docs" + publish = "packages/stacks-docs/build" + base = "." \ No newline at end of file From 5729ba83c923a201bbbc926a7fedd77f4738af7e Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 16 Dec 2025 23:29:11 +0000 Subject: [PATCH 064/156] update toml Signed-off-by: David Longworth --- packages/stacks-docs/netlify.toml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/stacks-docs/netlify.toml b/packages/stacks-docs/netlify.toml index da61e48eeb..009e5749b3 100644 --- a/packages/stacks-docs/netlify.toml +++ b/packages/stacks-docs/netlify.toml @@ -1,4 +1,3 @@ -[build] - command = "npm run build -w packages/stacks-docs" - publish = "packages/stacks-docs/build" - base = "." \ No newline at end of file +[build] + command = "npm run build" + publish = "packages/stacks-docs/build/" \ No newline at end of file From b2de6a857579431a2f14c1f44b2acad8e7e7a28c Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 16 Dec 2025 23:38:13 +0000 Subject: [PATCH 065/156] try again! Signed-off-by: David Longworth --- packages/stacks-docs/netlify.toml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/stacks-docs/netlify.toml b/packages/stacks-docs/netlify.toml index 009e5749b3..c3690b9f8f 100644 --- a/packages/stacks-docs/netlify.toml +++ b/packages/stacks-docs/netlify.toml @@ -1,3 +1,4 @@ -[build] - command = "npm run build" - publish = "packages/stacks-docs/build/" \ No newline at end of file +[build] + command = "npm run build -w packages/stacks-docs" + publish = "build" + base = "." \ No newline at end of file From 737149c4163ca46ac20b1ea024ad9f3dbfabf52f Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 16 Dec 2025 23:47:46 +0000 Subject: [PATCH 066/156] try moving the toml Signed-off-by: David Longworth --- packages/stacks-docs/netlify.toml => netlify.toml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) rename packages/stacks-docs/netlify.toml => netlify.toml (60%) diff --git a/packages/stacks-docs/netlify.toml b/netlify.toml similarity index 60% rename from packages/stacks-docs/netlify.toml rename to netlify.toml index c3690b9f8f..92e3830d9b 100644 --- a/packages/stacks-docs/netlify.toml +++ b/netlify.toml @@ -1,4 +1,3 @@ [build] command = "npm run build -w packages/stacks-docs" - publish = "build" - base = "." \ No newline at end of file + publish = "packages/stacks-docs/build" \ No newline at end of file From 1312a4c8c37ae1d7edee66160bf51c07a6d92595 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Wed, 17 Dec 2025 11:55:28 +0000 Subject: [PATCH 067/156] go to first sub nav section Signed-off-by: David Longworth --- packages/stacks-docs/src/components/Navigation.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/stacks-docs/src/components/Navigation.svelte b/packages/stacks-docs/src/components/Navigation.svelte index 977e1c7cb8..b10016055f 100644 --- a/packages/stacks-docs/src/components/Navigation.svelte +++ b/packages/stacks-docs/src/components/Navigation.svelte @@ -55,7 +55,7 @@ {subsection.title} From 54f0acd9a749218ba0f3e6dc1f40a0ff546a5fc3 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Wed, 17 Dec 2025 11:56:03 +0000 Subject: [PATCH 068/156] legacy content Signed-off-by: David Longworth --- .../docs/public/system/base/backgrounds.md | 2 + .../docs/public/system/base/border-radius.md | 2 + .../src/docs/public/system/base/flex.md | 2 + .../src/docs/public/system/base/gap.md | 228 ++++- .../src/docs/public/system/base/position.md | 2 + .../src/docs/public/system/base/spacing.md | 2 + .../docs/public/system/base/transitions.md | 165 +++- .../src/docs/public/system/base/truncation.md | 110 ++- .../docs/public/system/base/width-height.md | 797 +++++++++++++++++- .../src/docs/public/system/base/z-index.md | 2 +- .../docs/public/system/foundation/icons.md | 11 - .../docs/public/system/foundation/spots.md | 11 - packages/stacks-docs/src/structure.yaml | 32 +- 13 files changed, 1304 insertions(+), 62 deletions(-) delete mode 100644 packages/stacks-docs/src/docs/public/system/foundation/icons.md delete mode 100644 packages/stacks-docs/src/docs/public/system/foundation/spots.md diff --git a/packages/stacks-docs/src/docs/public/system/base/backgrounds.md b/packages/stacks-docs/src/docs/public/system/base/backgrounds.md index 94203d63da..40a709d0a3 100644 --- a/packages/stacks-docs/src/docs/public/system/base/backgrounds.md +++ b/packages/stacks-docs/src/docs/public/system/base/backgrounds.md @@ -1,4 +1,6 @@ --- +title: Backgrounds +description: Atomic classes for controlling the background properties of an element’s background image. updated: 2025-12-05 --- diff --git a/packages/stacks-docs/src/docs/public/system/base/border-radius.md b/packages/stacks-docs/src/docs/public/system/base/border-radius.md index bb8b9d0598..7402cd8b8f 100644 --- a/packages/stacks-docs/src/docs/public/system/base/border-radius.md +++ b/packages/stacks-docs/src/docs/public/system/base/border-radius.md @@ -1,4 +1,6 @@ --- +title: Border radius +description: Stacks provides atomic classes for border radius. updated: 2025-12-05 --- diff --git a/packages/stacks-docs/src/docs/public/system/base/flex.md b/packages/stacks-docs/src/docs/public/system/base/flex.md index 6be23cc484..44beacd93e 100644 --- a/packages/stacks-docs/src/docs/public/system/base/flex.md +++ b/packages/stacks-docs/src/docs/public/system/base/flex.md @@ -1,4 +1,6 @@ --- +title: Flex +description: Stacks provides extensive utility and helper classes for flex layouts. If you are new to flex layouts, check out this interactive introduction by Joshua Comeau.

updated: 2025-12-05 --- diff --git a/packages/stacks-docs/src/docs/public/system/base/gap.md b/packages/stacks-docs/src/docs/public/system/base/gap.md index 22996db4a8..8ddc8c14cb 100644 --- a/packages/stacks-docs/src/docs/public/system/base/gap.md +++ b/packages/stacks-docs/src/docs/public/system/base/gap.md @@ -1,11 +1,229 @@ --- -updated: 2025-12-05 +title: Gap +description: Atomic CSS gap classes allow you to set spacing on the direct children of elements with flexbox and grid layouts. +updated: 2025-12-17 --- -## Gap + + +## Gap classes + +
+ + + + + + + + + + + {#each gapClasses as item} + + + + + + + {/each} + +
ClassOutputDefinitionResponsive?
.{item.class}{item.output}{item.define} + +
+
+ +### Examples + +```html +
+
+
+
+
+
+
+
+
+
+
+``` + +
+ {#each gapClasses as item} +
+
+ .{item.class} +
+
+
+
+
+
+
+ {/each} +
+ +## Column gap + +Spacing can be set on just the x-axis with `.gx` classes. They can be used independently or in combination with other atomic gap classes. + +
+ + + + + + + + + + {#each columnGapClasses as item} + + + + + + {/each} + +
ClassDefinitionResponsive?
.{item.class}{item.define} + +
+
+ +### Column examples + +```html +
+
+
+
+
+
+
+
+
+
+
+``` + +
+ {#each columnGapClasses as item} +
+
+ .{item.class} +
+
+
+
+
+
+
+ {/each} +
+ +## Row gap + +Spacing can be set on just the y-axis with `.gy` classes. They can be used independently or in combination with other atomic gap classes. + +
+ + + + + + + + + + {#each rowGapClasses as item} + + + + + + {/each} + +
ClassDefinitionResponsive?
.{item.class}{item.define} + +
+
+ +### Row examples + +```html +
+
+
+
+
+
+
+
+
+
+
+``` + +
+ {#each rowGapClasses as item} +
+
+ .{item.class} +
+
+
+
+
+
+
+ {/each} +
diff --git a/packages/stacks-docs/src/docs/public/system/base/position.md b/packages/stacks-docs/src/docs/public/system/base/position.md index 38cea8b998..5fd7978236 100644 --- a/packages/stacks-docs/src/docs/public/system/base/position.md +++ b/packages/stacks-docs/src/docs/public/system/base/position.md @@ -1,4 +1,6 @@ --- +title: Positioning +description: Atomic positioning classes allow you to quickly change an element’s position. updated: 2025-12-05 --- diff --git a/packages/stacks-docs/src/docs/public/system/base/spacing.md b/packages/stacks-docs/src/docs/public/system/base/spacing.md index 72a88fd53a..de175510be 100644 --- a/packages/stacks-docs/src/docs/public/system/base/spacing.md +++ b/packages/stacks-docs/src/docs/public/system/base/spacing.md @@ -1,4 +1,6 @@ --- +title: Spacing +description: Stacks provides atomic classes to override margin and padding. updated: 2025-12-05 --- diff --git a/packages/stacks-docs/src/docs/public/system/base/transitions.md b/packages/stacks-docs/src/docs/public/system/base/transitions.md index 5029bf4e6a..0970c91680 100644 --- a/packages/stacks-docs/src/docs/public/system/base/transitions.md +++ b/packages/stacks-docs/src/docs/public/system/base/transitions.md @@ -1,11 +1,166 @@ --- -updated: 2025-12-05 +title: Transitions +description: Atomic transition classes allow you to quickly apply transitions properties to an element. You can modify an element's transition duration, property, or delay. +updated: 2025-12-17 --- -## Transitions + -Transition utilities for smooth animations. +You can trigger CSS transitions directly with pseudo classes like `:hover` which activate on mouse over, `:focus` which activates when user tabs onto or clicks into an input element, or `active` when a user clicks on an element. -### Overview +You can also trigger a CSS transition using JavaScript by adding or removing a class. -Documentation coming soon. +## Classes + +
+ + + + + + + + + + {#each transitionClasses as atomic} + + + + + + {/each} + +
ClassOutputDefinition
.{atomic.class}{atomic.output}

{atomic.define}

+
+ +## Base transition + +The base transition applies a default duration timing function to an element. + +```html +
+``` + +
+
+
+ .t +
+
+
+ +## Speed + +Change an elements default transition duration. + +```html +
+
+``` + +
+
+
+ .t-slow +
+
+ .t-fast +
+
+
+ +## Property + +Target a specific CSS property for transition, or remove the default transition. + +```html +
+
+
+
+``` + +
+
+
+ .t-unset +
+
+ .t-bg +
+
+ .t-opacity +
+
+ .t-shadow +
+
+
+ +## Delay + +Refers to how long you want to wait before starting the duration. + +```html +
+
+``` + +
+
+
+ .t-delay +
+
+ .t-delay-unset +
+
+
diff --git a/packages/stacks-docs/src/docs/public/system/base/truncation.md b/packages/stacks-docs/src/docs/public/system/base/truncation.md index 535f7ec7fa..0e9b1e1e1e 100644 --- a/packages/stacks-docs/src/docs/public/system/base/truncation.md +++ b/packages/stacks-docs/src/docs/public/system/base/truncation.md @@ -1,11 +1,111 @@ --- -updated: 2025-12-05 +title: Truncation +description: Stacks provides utility classes for various types of truncation. +updated: 2025-12-17 --- -## Truncation +## Classes -Text truncation utilities for handling overflow text. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ClassApplies toDescription
.truncateText is cropped to the width of its parent with an ellipsis.
.v-truncate[x]Text is cropped to the length of [x] number of lines with an ellipsis.
.v-truncate-fadeText is cropped by visually fading it out.
.v-truncate-fade__sm.v-truncate-fadeReduces the height of the visible text
.v-truncate-fade__lg.v-truncate-fadeIncreases the amount of visible text.
+
-### Overview +## Examples -Documentation coming soon. +### Ellipses + +CSS offers truncation on arbitrarily-long strings. This can help sanitize user-inputted things like bios, locations, or display names. In order for text truncation to work, it should be applied to a block-level element. Truncation can only apply to text/strings, not arbitrary block-level elements. + +```html +

+

+

+

+

+

+``` + +
+
+ Regardless of length, this text will be truncated horizontally. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +
+ +
+ Regardless of length, this text will be this text will be truncated to 1 line, vertically. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +
+ +
+ Regardless of length, this text will be this text will be truncated to 2 lines, vertically. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +
+ +
+ Regardless of length, this text will be this text will be truncated to 3 lines, vertically. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +
+ +
+ Regardless of length, this text will be this text will be truncated to 4 lines, vertically. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +
+ +
+ Regardless of length, this text will be this text will be truncated to 5 lines, vertically. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +
+
+ +### Fade + +Alternatively, you can use a vertical fade that will set `max-height` and sets a vertical `mask-image`: + +```html +

+

+

+``` + +
+
+ Regardless of length, this text will be this text will fade out, vertically. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +
+ +
+ Regardless of length, this text will be this text will fade out, vertically. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +
+ +
+ Regardless of length, this text will be this text will fade out, vertically. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +
+
diff --git a/packages/stacks-docs/src/docs/public/system/base/width-height.md b/packages/stacks-docs/src/docs/public/system/base/width-height.md index c1dcd47fdf..0002bfa431 100644 --- a/packages/stacks-docs/src/docs/public/system/base/width-height.md +++ b/packages/stacks-docs/src/docs/public/system/base/width-height.md @@ -1,11 +1,798 @@ --- -updated: 2025-12-05 +title: Width & height +description: Stacks provides atomic sizing classes for percentage-based widths & heights, viewport-based widths & heights, static widths & heights, max-widths & heights, and min-widths & heights. +updated: 2025-12-17 --- -## Width & height + + +## Widths + +### Width classes + +Width classes are provided at each fixed stop of our pixel-based sizing scale. + +
+ + + + + + + + + + {#each widthClasses as size} + + + + + + {/each} + +
ClassOutputResponsive?
.{size.class}{size.output} + +
+
+ +### Width examples + +```html +
+
+
+
+
+
+
+
+
+
+
+
+``` + +
+
+
+
+
.w2
+
+
+
+
.w4
+
+
+
+
.w6
+
+
+
+
.w8
+
+
+
+
.w12
+
+
+
+
.w16
+
+
+
+
.w24
+
+
+
+
.w32
+
+
+
+
.w48
+
+
+
+
.w64
+
+
+
+
.w96
+
+
+
+
.w128
+
+
+
+ +## Fluid width + +### Fluid width classes + +
+ + + + + + + + + + {#each widthPercentageClasses as size} + + + + + + {/each} + +
ClassOutputResponsive?
.{size.class}{size.output} + +
+
+ +### Fluid width examples + +```html +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+``` + +
+
+
+
.w100
+
+
+
.w10
+
.w90
+
+
+
.w20
+
.w80
+
+
+
.w25
+
.w75
+
+
+
.w30
+
.w70
+
+
+
.w33
+
.w66
+
+
+
.w40
+
.w60
+
+
+
.w50
+
.w50
+
+
+
.w-screen
+
+
+
+ +## Static widths + +Static widths are based on the full width of our 12-column grid. The grid is defined in `rems`, which are tied to the base font size. At the default font size, the full width is `1264px`. A single column is approximately `105px`. + +At the smallest breakpoint, our font size is reduced, and these static widths are therefore also reduced. + +### Static width classes + +
+ + + + + + + + + + {#each widthStaticClasses as size} + + + + + + {/each} + +
ClassOutputResponsive?
.{size.class}{size.output} + +
+
+ +### Static width examples + +```html +
+
+
+
+
+
+
+
+
+
+
+
+``` + +
+
+
.ws1
+
.ws2
+
.ws3
+
.ws4
+
.ws5
+
.ws6
+
.ws7
+
.ws8
+
.ws9
+
.ws10
+
.ws11
+
.ws12
+
+
+ +## Max width + +### Max width classes + +
+ + + + + + + + + + {#each widthMaxClasses as size} + + + + + + {/each} + +
ClassOutputResponsive?
.{size.class}{size.output} + +
+
+ +### Max width examples + +```html +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+``` + +
+
+
.wmx1
+
.wmx2
+
.wmx25
+
.wmx3
+
.wmx4
+
.wmx5
+
.wmx50
+
.wmx6
+
.wmx7
+
.wmx75
+
.wmx8
+
.wmx9
+
.wmx10
+
.wmx11
+
.wmx12
+
.wmx-screen
+
+
+ +## Min width + +### Min width classes + +
+ + + + + + + + + + {#each widthMinClasses as size} + + + + + + {/each} + +
ClassOutputResponsive?
.{size.class}{size.output} + +
+
+ +### Min width examples + +```html +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+``` + +
+
+
.wmn0
+
.wmn1
+
.wmn2
+
.wmn25
+
.wmn3
+
.wmn4
+
.wmn5
+
.wmn50
+
.wmn6
+
.wmn7
+
.wmn75
+
.wmn8
+
.wmn9
+
.wmn10
+
.wmn11
+
.wmn12
+
+
+ +## Height + +### Height classes + +Height classes are provided at each fixed stop of our sizing scale. + +
+ + + + + + + + + + {#each heightClasses as size} + + + + + + {/each} + +
ClassOutputResponsive?
.{size.class}{size.output} + +
+
+ +### Height examples + +```html +
+
+
+
+
+
+
+
+
+
+
+
+``` + +
+
+
+
+
.h2
+
+
+
+
+
+
.h4
+
+
+
+
+
+
.h6
+
+
+
+
+
+
.h8
+
+
+
+
+
+
.h12
+
+
+
+
+
+
.h16
+
+
+
+
+
+
.h24
+
+
+
+
+
+
.h32
+
+
+
+
+
+
.h48
+
+
+
+
+
+
.h64
+
+
+
+
+
+
.h96
+
+
+
+
+
+
.h128
+
+
+
+
+
+ +## Static Height + +### Static height classes + +
+ + + + + + + + + + {#each heightStaticClasses as size} + + + + + + {/each} + +
ClassOutputResponsive?
.{size.class}{size.output} + +
+
+ +### Fluid height classes + +
+ + + + + + + + + + {#each heightPercentageClasses as size} + + + + + + {/each} + +
ClassOutputResponsive?
.{size.class}{size.output} + +
+
+ +## Min height + +### Min height classes + +
+ + + + + + + + + + {#each heightMinClasses as size} + + + + + + {/each} + +
ClassOutputResponsive?
.{size.class}{size.output} + +
+
+ +## Max height + +### Max height classes + +
+ + + + + + + + + + {#each heightMaxClasses as size} + + + + + + {/each} + +
ClassOutputResponsive?
.{size.class}{size.output} + +
+
diff --git a/packages/stacks-docs/src/docs/public/system/base/z-index.md b/packages/stacks-docs/src/docs/public/system/base/z-index.md index aff574a008..916ece05dd 100644 --- a/packages/stacks-docs/src/docs/public/system/base/z-index.md +++ b/packages/stacks-docs/src/docs/public/system/base/z-index.md @@ -1,6 +1,6 @@ --- title: Z-Index -description: Atomic z-index classes allow you to change an element's z-index quickly. +description: Atomic z-index classes allow you to change an element’s z-index quickly. updated: 2025-12-16 --- diff --git a/packages/stacks-docs/src/docs/public/system/foundation/icons.md b/packages/stacks-docs/src/docs/public/system/foundation/icons.md deleted file mode 100644 index 859a4a7dc0..0000000000 --- a/packages/stacks-docs/src/docs/public/system/foundation/icons.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -updated: 2025-12-05 ---- - -## Icons - -Icon system and usage guidelines. - -### Overview - -Documentation coming soon. diff --git a/packages/stacks-docs/src/docs/public/system/foundation/spots.md b/packages/stacks-docs/src/docs/public/system/foundation/spots.md deleted file mode 100644 index b0f6ada687..0000000000 --- a/packages/stacks-docs/src/docs/public/system/foundation/spots.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -updated: 2025-12-05 ---- - -## Illustrations - -Illustration library and usage guidelines. - -### Overview - -Documentation coming soon. diff --git a/packages/stacks-docs/src/structure.yaml b/packages/stacks-docs/src/structure.yaml index 5593da1011..112694d8fe 100644 --- a/packages/stacks-docs/src/structure.yaml +++ b/packages/stacks-docs/src/structure.yaml @@ -64,29 +64,23 @@ navigation: - title: "JavaScript" slug: "javascript" - # - title: "Foundation" - # slug: "foundation" - # items: - # - title: "Accessibility" - # slug: "accessibility" - - # - title: "Color fundamentals" - # slug: "color-fundamentals" - - # - title: "Color palette" - # slug: "colors" + - title: "Foundation" + slug: "foundation" + items: + - title: "Accessibility" + slug: "accessibility" - # - title: "Theming" - # slug: "theming" + - title: "Color fundamentals" + slug: "color-fundamentals" - # - title: "Icons" - # slug: "icons" + - title: "Color palette" + slug: "colors" - # - title: "Illustrations" - # slug: "spots" + - title: "Theming" + slug: "theming" - # - title: "Typography" - # slug: "typography" + - title: "Typography" + slug: "typography" - title: "Base" slug: "base" From 8b741585a5ff574ae0b287cf2c4593898c06d266 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Wed, 17 Dec 2025 12:01:03 +0000 Subject: [PATCH 069/156] figma and svelte links Signed-off-by: David Longworth --- .../src/components/Navigation.svelte | 2 +- .../src/docs/public/brand/logo/index.md | 1 + .../[section]/[[subsection]]/+page.svelte | 26 ++++++++++++++++--- 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/packages/stacks-docs/src/components/Navigation.svelte b/packages/stacks-docs/src/components/Navigation.svelte index b10016055f..a483f0ce84 100644 --- a/packages/stacks-docs/src/components/Navigation.svelte +++ b/packages/stacks-docs/src/components/Navigation.svelte @@ -55,7 +55,7 @@ {subsection.title} diff --git a/packages/stacks-docs/src/docs/public/brand/logo/index.md b/packages/stacks-docs/src/docs/public/brand/logo/index.md index ddcb06e66c..d16318d02d 100644 --- a/packages/stacks-docs/src/docs/public/brand/logo/index.md +++ b/packages/stacks-docs/src/docs/public/brand/logo/index.md @@ -1,4 +1,5 @@ --- +figma: https://www.figma.com/design/Qx4PIAImUMCQlTLeWWO5zeqE/Stack-Overflow-Logos--Marketing-?node-id=4470-198&t=0AmX7Bm4bOMDBW98-1 updated: 2025-12-10 --- diff --git a/packages/stacks-docs/src/routes/[category]/[section]/[[subsection]]/+page.svelte b/packages/stacks-docs/src/routes/[category]/[section]/[[subsection]]/+page.svelte index 9f679bd9d0..fa40299b34 100644 --- a/packages/stacks-docs/src/routes/[category]/[section]/[[subsection]]/+page.svelte +++ b/packages/stacks-docs/src/routes/[category]/[section]/[[subsection]]/+page.svelte @@ -24,12 +24,32 @@
-
+
{#if data?.metadata?.updated} -

@@ -38,7 +58,7 @@ {#if data?.metadata?.description}

- {data.metadata.description} + {@html data.metadata.description}

{/if} From 5dc8f50a3d763e9789bc044ff29142d967e77a2c Mon Sep 17 00:00:00 2001 From: David Longworth Date: Wed, 17 Dec 2025 12:26:43 +0000 Subject: [PATCH 070/156] formatting Signed-off-by: David Longworth --- .../src/docs/public/copy/styleguide.md | 72 +++++++++---------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/packages/stacks-docs/src/docs/public/copy/styleguide.md b/packages/stacks-docs/src/docs/public/copy/styleguide.md index da43f8c5dc..d17dacc365 100644 --- a/packages/stacks-docs/src/docs/public/copy/styleguide.md +++ b/packages/stacks-docs/src/docs/public/copy/styleguide.md @@ -96,23 +96,23 @@ Use standard possessive rules with Stack Overflow and product names.

Don’t

    -
  • Stack Overflows' mission
  • -
  • Stack Internals' features
  • +
  • Stack Overflows’ mission
  • +
  • Stack Internals’ features

Do

    -
  • Stack Overflow's mission
  • -
  • Stack Internal's features
  • -
  • Stack Ads' reach (or "the reach of Stack Ads")
  • +
  • Stack Overflow’s mission
  • +
  • Stack Internal’s features
  • +
  • Stack Ads’ reach (or “the reach of Stack Ads”)
### Plurals -Avoid pluralizing product names. Use "instances," "deployments," or similar terms instead. +Avoid pluralizing product names. Use “instances”, “deployments” or similar terms instead. @@ -176,7 +176,7 @@ In internal Slack, emails, or presentations, abbreviations may be used for brevi ## Compound references -When referring to multiple products together, use "and" and maintain each product's full name. +When referring to multiple products together, use "and" and maintain each product’s full name. @@ -184,7 +184,7 @@ When referring to multiple products together, use "and" and maintain each produc
  • Stack Internal & Ads customers
  • SI/SA users
  • -
  • Stack Overflow's Internal and Ads products
  • +
  • Stack Overflow’s Internal and Ads products
@@ -205,9 +205,9 @@ After the first mention of a product name, you may use shortened forms if the co

Do

    -
  • First mention: "Stack Internal provides private knowledge management". Second mention: "Internal helps teams collaborate..".
  • -
  • First mention: "Stack Overflow Business includes three products". Second mention: "Business customers have access to..".
  • -
  • Use "the product," "the platform," or "it" when context is unmistakable
  • +
  • First mention: “Stack Internal provides private knowledge management”. Second mention: “Internal helps teams collaborate…”
  • +
  • First mention: “Stack Overflow Business includes three products”. Second mention: “Business customers have access to…”
  • +
  • Use “the product”, “the platform”, or “it” when context is unmistakable
@@ -241,13 +241,13 @@ Use sentence case for all headings. This means capitalizing the first word, the ### Articles vs articles -Capitalize "Articles" when referring to the specific Stack Overflow feature section, but use lowercase when referring to generic articles. +Capitalize “Articles” when referring to the specific Stack Overflow feature section, but use lowercase when referring to generic articles.

Don’t

    -
  • I'm writing an article and then I'm going to put it in our team's articles section
  • +
  • I’m writing an article and then I’m going to put it in our team’s articles section
  • In articles, you can find how-to guides
  • Create articles
@@ -255,7 +255,7 @@ Capitalize "Articles" when referring to the specific Stack Overflow feature sect

Do

    -
  • I'm writing an article and then I'm going to put it in our team's Articles section
  • +
  • I’m writing an article and then I’m going to put it in our team’s Articles section
  • In Articles, you can find how-to guides, blog posts, and articles
  • Create Articles
@@ -285,7 +285,7 @@ Always capitalize user roles, no matter the context. ### Collectives vs collectives -Always capitalize "Collective" or "Collectives" when used as a proper noun or when it follows a company name. Use lowercase when referring generically to a collective. +Always capitalize “Collective” or “Collectives” when used as a proper noun or when it follows a company name. Use lowercase when referring generically to a collective. @@ -293,7 +293,7 @@ Always capitalize "Collective" or "Collectives" when used as a proper noun or wh
  • join the Google Cloud collective
  • join an Collective
  • -
  • A company's Collective page will be located at the top right of the screen
  • +
  • A company’s Collective page will be located at the top right of the screen
@@ -301,20 +301,20 @@ Always capitalize "Collective" or "Collectives" when used as a proper noun or wh
  • join the Google Cloud Collective
  • join a collective
  • -
  • A company's collective page will be located at the top right of the screen
  • +
  • A company’s collective page will be located at the top right of the screen
### Communities & Community -Capitalize "Communities" and "Community" when referring to the Stack Internal feature. +Capitalize “Communities” and “Community” when referring to the Stack Internal feature.

Do

    -
  • With Communities you can help your teammates know what's trending
  • +
  • With Communities you can help your teammates know what’s trending
  • Subscribe to a Community and get notifications for new questions and answers
@@ -324,12 +324,12 @@ Capitalize "Communities" and "Community" when referring to the Stack Internal fe ### Post scores -Questions, answers, and other types of posts have **scores**. A post's score is calculated by subtracting the total number of downvotes from the total number of upvotes. +Questions, answers, and other types of posts have **scores**. A post’s score is calculated by subtracting the total number of downvotes from the total number of upvotes. - In almost all cases when referring to the sum of votes, use the term **score** - Use **upvote** and **downvote** (one word, no hyphen) when referring to individual types of votes -- Avoid using "points" when referring to score or votes -- The term "votes" to refer to a post's score is only acceptable in the post summary component format `{ScoreValue} votes` +- Avoid using “points” when referring to score or votes +- The term “votes” to refer to a post’s score is only acceptable in the post summary component format `{ScoreValue} votes` @@ -368,12 +368,12 @@ Write in the active voice, particularly if the user needs to do something.

Do

    -
  • Update your profile
  • +
  • Your profile needs updating.
-While it's generally best to avoid the passive voice, in certain situations it helps you sound softer without adding too many words. It's especially useful for time-sensitive messages like payment confirmations and error messages. +While it’s generally best to avoid the passive voice, in certain situations it helps you sound softer without adding too many words. It’s especially useful for time-sensitive messages like payment confirmations and error messages. @@ -400,15 +400,15 @@ Contractions make copy sound more human. Avoid contractions that sound awkward w

Don’t

    -
  • This'll help you get answers to your questions
  • +
  • This’ll help you get answers to your questions
  • There must've been an error with your order

Do

    -
  • It's designed to help you get answers to your questions
  • -
  • There's an error with your order
  • +
  • It’s designed to help you get answers to your questions
  • +
  • There’s an error with your order
@@ -484,7 +484,7 @@ Use “their” as a singular, gender-neutral pronoun when the gender of the sub ### Mind your verbs and nouns -Take extra care with “login” and “log in”. The former is a noun while the latter is a verb. Do not use "login" as a verb. The same logic applies to "signup" and "sign up". +Take extra care with “login” and “log in”. The former is a noun while the latter is a verb. Do not use “login” as a verb. The same logic applies to “signup” and “sign up”. @@ -509,7 +509,7 @@ Take extra care with “login” and “log in”. The former is a noun while th ### OK -Use the abbreviated version "OK" (fully capitalized in every context). This is preferred to "Okay" and its variants. +Use the abbreviated version “OK” (fully capitalized in every context). This is preferred to “Okay” and its variants. @@ -532,7 +532,7 @@ Use the abbreviated version "OK" (fully capitalized in every context). This is p ### Ampersands -Don’t use ampersands (&) unless it's part of a branded term. Spell out the word "and" instead. +Don’t use ampersands (&) unless it’s part of a branded term. Spell out the word “and” instead. @@ -560,21 +560,21 @@ Use apostrophes to represent omitted letters or numbers (can’t, you’re, ’9

Don’t

  • Admins role
  • -
  • Moderators's tasks
  • +
  • Moderators’s tasks

Do

    -
  • Admin's role
  • -
  • Moderators' tasks
  • +
  • Admin’s role
  • +
  • Moderators’ tasks
### Colons -Avoid using colons unless you're introducing a list. If you need to use a colon in a sentence, Don’t capitalize the first word after it. +Avoid using colons unless you’re introducing a list. If you need to use a colon in a sentence, Don’t capitalize the first word after it. ### Commas @@ -599,7 +599,7 @@ Use the oxford comma in sentences. Don’t use a comma to separate two distinct ### Ellipses -The ellipsis (…) can be used in place of missing text. Avoid using ellipses in regular text. Use the real single character ellipsis unicode (…) instead of three periods (...). It's appropriate to use an ellipsis in input placeholder copy. +The ellipsis (…) can be used in place of missing text. Avoid using ellipses in regular text. Use the real single character ellipsis unicode (…) `opt + ;` instead of three periods (...). It’s appropriate to use an ellipsis in input placeholder copy. @@ -647,7 +647,7 @@ Use an en dash with no spaces (–) for a fixed range of numbers. Avoid using em ### Periods -Don’t use periods in interface copy unless it's a full sentence or description. Don’t use periods in top-level headings, titles, or buttons. Do use periods in body text, descriptions, and help text. +Don’t use periods in interface copy unless it’s a full sentence or description. Don’t use periods in top-level headings, titles, or buttons. Do use periods in body text, descriptions, and help text. ### Question marks From 0787de1fb0a0d6b4832f7bdfe197e123359d93f5 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Wed, 17 Dec 2025 13:47:37 +0000 Subject: [PATCH 071/156] naming update Signed-off-by: David Longworth --- .../src/docs/public/copy/naming.md | 6 +- .../src/docs/public/system/base/spacing.md | 8 +- .../src/routes/llms.txt/+server.js | 124 ++++++++++++++++++ 3 files changed, 129 insertions(+), 9 deletions(-) create mode 100644 packages/stacks-docs/src/routes/llms.txt/+server.js diff --git a/packages/stacks-docs/src/docs/public/copy/naming.md b/packages/stacks-docs/src/docs/public/copy/naming.md index 2db75dd2e9..ffe5ac8f81 100644 --- a/packages/stacks-docs/src/docs/public/copy/naming.md +++ b/packages/stacks-docs/src/docs/public/copy/naming.md @@ -10,7 +10,7 @@ updated: 2025-12-11 import { IconCheck24FillCircle, IconCross24FillCircle } from '@stackoverflow/stacks-icons' -This guide helps ensure consistent naming across all Stack Overflow communications, products, and materials. +This guide helps ensure consistent naming across all Stack Overflow communications, products, features, and materials. ## Components @@ -46,7 +46,7 @@ _E.g., Reddit Ads, Mozilla VPN, Slack AI_ At the current rate of change, it's simplest to name products descriptively, to keep barriers to understanding as low as possible. -We want to make it as clear as possible to our audiences what our products, brands and features are and do — and what they can expect when interacting with them. +We want to make it as clear as possible to our audiences what our brands, products and features are and do — and what they can expect when interacting with them. A descriptive naming system is also an easy naming system to scale and roll out across any new brands, products or features that come along in the short to medium-term. @@ -141,7 +141,7 @@ Business products do not have distinct logos but there are [differences with col ### Stack Data Licensing -Our data licensing product provides access to Stack Overflow’s vast dataset. +Our data licensing product provides ethical access to Stack Overflow’s vast dataset. diff --git a/packages/stacks-docs/src/docs/public/system/base/spacing.md b/packages/stacks-docs/src/docs/public/system/base/spacing.md index de175510be..0bd5062906 100644 --- a/packages/stacks-docs/src/docs/public/system/base/spacing.md +++ b/packages/stacks-docs/src/docs/public/system/base/spacing.md @@ -156,9 +156,7 @@ Margin should never be declared outside of these utilities. This is meant to hel ### Margin classes ```html -
- … -
+
```
@@ -316,9 +314,7 @@ Padding should never be declared outside of these utilities. This is meant to he ### Padding classes ```html -
- … -
+
```
diff --git a/packages/stacks-docs/src/routes/llms.txt/+server.js b/packages/stacks-docs/src/routes/llms.txt/+server.js new file mode 100644 index 0000000000..3bc23064e6 --- /dev/null +++ b/packages/stacks-docs/src/routes/llms.txt/+server.js @@ -0,0 +1,124 @@ +import { render } from "svelte/server"; + +export async function GET() { + const baseUrl = "http://beta.stackoverflow.design/"; + const mdFiles = import.meta.glob("$docs/public/system/**/*.md"); + + let groupedDocs = {}; + + for (const [path, doc] of Object.entries(mdFiles)) { + const parts = path.split("/"); + + const systemIndex = parts.indexOf("system"); + const group = parts[systemIndex + 1]; + + if (!groupedDocs[group]) { + groupedDocs[group] = []; + } + + groupedDocs[group].push({ path, doc }); + } + + // Header + let output = ` +# Site Content for LLMs +# Generated: ${new Date().toISOString()} +# Site URL: ${baseUrl} +`.trim(); + + // Loop over the sections + for (const [group, docs] of Object.entries(groupedDocs)) { + output += `\n\n## Collection: ${group}`; + + // Render the docs in the group + for (const { path, doc } of docs) { + const page = await doc(); + + output += ` + +### Page: ${page.metadata?.title ?? path} +URL: ${baseUrl}${getSlug(path)} +Date: ${new Date().toISOString()} +description: ${page.metadata?.description ?? ""} + +Content: +${processContent(render(page.default).body)} + +--- + +`.trimEnd(); + } + } + + return new Response(output, { + headers: { + "Content-Type": "text/plain", + }, + }); +} + +function getSlug(filePath) { + let slug = filePath; + + slug = slug + .replace("/src/docs/public/", "") + .replace("index.md", "") + .replace(".md", ""); + + return slug; +} + +// Borrowed from +// https://github.com/CleverCloud/eleventy-plugin-llms-txt/blob/main/src/index.js#L16 +function processContent( + content, + maxLength, + normalizeWhitespace = true, + stripHorizontalRules = true +) { + if (!content) return ""; + + // Remove \ No newline at end of file diff --git a/packages/stacks-docs/assets/img/logos/se/se-logo-med.png b/packages/stacks-docs/assets/img/logos/se/se-logo-med.png new file mode 100644 index 0000000000000000000000000000000000000000..f18d99e6227c08d6a3033f1674112c55ff226734 GIT binary patch literal 3183 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/PUT + }ifelse + pdfmark_5 + }forall +}bdf +/lmt{ + dup 2 index le{exch}if pop dup 2 index ge{exch}if pop +}bdf +/int{ + dup 2 index sub 3 index 5 index sub div 6 -2 roll sub mul exch pop add exch pop +}bdf +/ds{ + Adobe_AGM_Utils begin +}bdf +/dt{ + currentdict Adobe_AGM_Utils eq{ + end + }if +}bdf +systemdict/setpacking known +{setpacking}if +%%EndResource +%%BeginResource: procset Adobe_AGM_Core 2.0 0 +%%Version: 2.0 0 +%%Copyright: Copyright(C)1997-2007 Adobe Systems, Inc. All Rights Reserved. +systemdict/setpacking known +{ + currentpacking + true setpacking +}if +userdict/Adobe_AGM_Core 209 dict dup begin put +/Adobe_AGM_Core_Id/Adobe_AGM_Core_2.0_0 def +/AGMCORE_str256 256 string def +/AGMCORE_save nd +/AGMCORE_graphicsave nd +/AGMCORE_c 0 def +/AGMCORE_m 0 def +/AGMCORE_y 0 def +/AGMCORE_k 0 def +/AGMCORE_cmykbuf 4 array def +/AGMCORE_screen[currentscreen]cvx def +/AGMCORE_tmp 0 def +/AGMCORE_&setgray nd +/AGMCORE_&setcolor nd +/AGMCORE_&setcolorspace nd +/AGMCORE_&setcmykcolor nd +/AGMCORE_cyan_plate nd +/AGMCORE_magenta_plate nd +/AGMCORE_yellow_plate nd +/AGMCORE_black_plate nd +/AGMCORE_plate_ndx nd +/AGMCORE_get_ink_data nd +/AGMCORE_is_cmyk_sep nd +/AGMCORE_host_sep nd +/AGMCORE_avoid_L2_sep_space nd +/AGMCORE_distilling nd +/AGMCORE_composite_job nd +/AGMCORE_producing_seps nd +/AGMCORE_ps_level -1 def +/AGMCORE_ps_version -1 def +/AGMCORE_environ_ok nd +/AGMCORE_CSD_cache 0 dict def +/AGMCORE_currentoverprint false def +/AGMCORE_deltaX nd +/AGMCORE_deltaY nd +/AGMCORE_name nd +/AGMCORE_sep_special nd +/AGMCORE_err_strings 4 dict def +/AGMCORE_cur_err nd +/AGMCORE_current_spot_alias false def +/AGMCORE_inverting false def +/AGMCORE_feature_dictCount nd +/AGMCORE_feature_opCount nd +/AGMCORE_feature_ctm nd +/AGMCORE_ConvertToProcess false def +/AGMCORE_Default_CTM matrix def +/AGMCORE_Default_PageSize nd +/AGMCORE_Default_flatness nd +/AGMCORE_currentbg nd +/AGMCORE_currentucr nd +/AGMCORE_pattern_paint_type 0 def +/knockout_unitsq nd +currentglobal true setglobal +[/CSA/Gradient/Procedure] +{ + /Generic/Category findresource dup length dict copy/Category defineresource pop +}forall +setglobal +/AGMCORE_key_known +{ + where{ + /Adobe_AGM_Core_Id known + }{ + false + }ifelse +}ndf +/flushinput +{ + save + 2 dict begin + /CompareBuffer 3 -1 roll def + /readbuffer 256 string def + mark + { + currentfile readbuffer{readline}stopped + {cleartomark mark} + { + not + {pop exit} + if + CompareBuffer eq + {exit} + if + }ifelse + }loop + cleartomark + end + restore +}bdf +/getspotfunction +{ + AGMCORE_screen exch pop exch pop + dup type/dicttype eq{ + dup/HalftoneType get 1 eq{ + /SpotFunction get + }{ + dup/HalftoneType get 2 eq{ + /GraySpotFunction get + }{ + pop + { + abs exch abs 2 copy add 1 gt{ + 1 sub dup mul exch 1 sub dup mul add 1 sub + }{ + dup mul exch dup mul add 1 exch sub + }ifelse + }bind + }ifelse + }ifelse + }if +}def +/np +{newpath}bdf +/clp_npth +{clip np}def +/eoclp_npth +{eoclip np}def +/npth_clp +{np clip}def +/graphic_setup +{ + /AGMCORE_graphicsave save store + concat + 0 setgray + 0 setlinecap + 0 setlinejoin + 1 setlinewidth + []0 setdash + 10 setmiterlimit + np + false setoverprint + false setstrokeadjust + //Adobe_AGM_Core/spot_alias gx + /Adobe_AGM_Image where{ + pop + Adobe_AGM_Image/spot_alias 2 copy known{ + gx + }{ + pop pop + }ifelse + }if + /sep_colorspace_dict null AGMCORE_gput + 100 dict begin + /dictstackcount countdictstack def + /showpage{}def + mark +}def +/graphic_cleanup +{ + cleartomark + dictstackcount 1 countdictstack 1 sub{end}for + end + AGMCORE_graphicsave restore +}def +/compose_error_msg +{ + grestoreall initgraphics + /Helvetica findfont 10 scalefont setfont + /AGMCORE_deltaY 100 def + /AGMCORE_deltaX 310 def + clippath pathbbox np pop pop 36 add exch 36 add exch moveto + 0 AGMCORE_deltaY rlineto AGMCORE_deltaX 0 rlineto + 0 AGMCORE_deltaY neg rlineto AGMCORE_deltaX neg 0 rlineto closepath + 0 AGMCORE_&setgray + gsave 1 AGMCORE_&setgray fill grestore + 1 setlinewidth gsave stroke grestore + currentpoint AGMCORE_deltaY 15 sub add exch 8 add exch moveto + /AGMCORE_deltaY 12 def + /AGMCORE_tmp 0 def + AGMCORE_err_strings exch get + { + dup 32 eq + { + pop + AGMCORE_str256 0 AGMCORE_tmp getinterval + stringwidth pop currentpoint pop add AGMCORE_deltaX 28 add gt + { + currentpoint AGMCORE_deltaY sub exch pop + clippath pathbbox pop pop pop 44 add exch moveto + }if + AGMCORE_str256 0 AGMCORE_tmp getinterval show( )show + 0 1 AGMCORE_str256 length 1 sub + { + AGMCORE_str256 exch 0 put + }for + /AGMCORE_tmp 0 def + }{ + AGMCORE_str256 exch AGMCORE_tmp xpt + /AGMCORE_tmp AGMCORE_tmp 1 add def + }ifelse + }forall +}bdf +/AGMCORE_CMYKDeviceNColorspaces[ + [/Separation/None/DeviceCMYK{0 0 0}] + [/Separation(Black)/DeviceCMYK{0 0 0 4 -1 roll}bind] + [/Separation(Yellow)/DeviceCMYK{0 0 3 -1 roll 0}bind] + [/DeviceN[(Yellow)(Black)]/DeviceCMYK{0 0 4 2 roll}bind] + [/Separation(Magenta)/DeviceCMYK{0 exch 0 0}bind] + [/DeviceN[(Magenta)(Black)]/DeviceCMYK{0 3 1 roll 0 exch}bind] + [/DeviceN[(Magenta)(Yellow)]/DeviceCMYK{0 3 1 roll 0}bind] + [/DeviceN[(Magenta)(Yellow)(Black)]/DeviceCMYK{0 4 1 roll}bind] + [/Separation(Cyan)/DeviceCMYK{0 0 0}] + [/DeviceN[(Cyan)(Black)]/DeviceCMYK{0 0 3 -1 roll}bind] + [/DeviceN[(Cyan)(Yellow)]/DeviceCMYK{0 exch 0}bind] + [/DeviceN[(Cyan)(Yellow)(Black)]/DeviceCMYK{0 3 1 roll}bind] + [/DeviceN[(Cyan)(Magenta)]/DeviceCMYK{0 0}] + [/DeviceN[(Cyan)(Magenta)(Black)]/DeviceCMYK{0 exch}bind] + [/DeviceN[(Cyan)(Magenta)(Yellow)]/DeviceCMYK{0}] + [/DeviceCMYK] +]def +/ds{ + Adobe_AGM_Core begin + /currentdistillerparams where + { + pop currentdistillerparams/CoreDistVersion get 5000 lt + {<>setdistillerparams}if + }if + /AGMCORE_ps_version xdf + /AGMCORE_ps_level xdf + errordict/AGM_handleerror known not{ + errordict/AGM_handleerror errordict/handleerror get put + errordict/handleerror{ + Adobe_AGM_Core begin + $error/newerror get AGMCORE_cur_err null ne and{ + $error/newerror false put + AGMCORE_cur_err compose_error_msg + }if + $error/newerror true put + end + errordict/AGM_handleerror get exec + }bind put + }if + /AGMCORE_environ_ok + ps_level AGMCORE_ps_level ge + ps_version AGMCORE_ps_version ge and + AGMCORE_ps_level -1 eq or + def + AGMCORE_environ_ok not + {/AGMCORE_cur_err/AGMCORE_bad_environ def}if + /AGMCORE_&setgray systemdict/setgray get def + level2{ + /AGMCORE_&setcolor systemdict/setcolor get def + /AGMCORE_&setcolorspace systemdict/setcolorspace get def + }if + /AGMCORE_currentbg currentblackgeneration def + /AGMCORE_currentucr currentundercolorremoval def + /AGMCORE_Default_flatness currentflat def + /AGMCORE_distilling + /product where{ + pop systemdict/setdistillerparams known product(Adobe PostScript Parser)ne and + }{ + false + }ifelse + def + /AGMCORE_GSTATE AGMCORE_key_known not{ + /AGMCORE_GSTATE 21 dict def + /AGMCORE_tmpmatrix matrix def + /AGMCORE_gstack 32 array def + /AGMCORE_gstackptr 0 def + /AGMCORE_gstacksaveptr 0 def + /AGMCORE_gstackframekeys 14 def + /AGMCORE_&gsave/gsave ldf + /AGMCORE_&grestore/grestore ldf + /AGMCORE_&grestoreall/grestoreall ldf + /AGMCORE_&save/save ldf + /AGMCORE_&setoverprint/setoverprint ldf + /AGMCORE_gdictcopy{ + begin + {def}forall + end + }def + /AGMCORE_gput{ + AGMCORE_gstack AGMCORE_gstackptr get + 3 1 roll + put + }def + /AGMCORE_gget{ + AGMCORE_gstack AGMCORE_gstackptr get + exch + get + }def + /gsave{ + AGMCORE_&gsave + AGMCORE_gstack AGMCORE_gstackptr get + AGMCORE_gstackptr 1 add + dup 32 ge{limitcheck}if + /AGMCORE_gstackptr exch store + AGMCORE_gstack AGMCORE_gstackptr get + AGMCORE_gdictcopy + }def + /grestore{ + AGMCORE_&grestore + AGMCORE_gstackptr 1 sub + dup AGMCORE_gstacksaveptr lt{1 add}if + dup AGMCORE_gstack exch get dup/AGMCORE_currentoverprint known + {/AGMCORE_currentoverprint get setoverprint}{pop}ifelse + /AGMCORE_gstackptr exch store + }def + /grestoreall{ + AGMCORE_&grestoreall + /AGMCORE_gstackptr AGMCORE_gstacksaveptr store + }def + /save{ + AGMCORE_&save + AGMCORE_gstack AGMCORE_gstackptr get + AGMCORE_gstackptr 1 add + dup 32 ge{limitcheck}if + /AGMCORE_gstackptr exch store + /AGMCORE_gstacksaveptr AGMCORE_gstackptr store + AGMCORE_gstack AGMCORE_gstackptr get + AGMCORE_gdictcopy + }def + /setoverprint{ + dup/AGMCORE_currentoverprint exch AGMCORE_gput AGMCORE_&setoverprint + }def + 0 1 AGMCORE_gstack length 1 sub{ + AGMCORE_gstack exch AGMCORE_gstackframekeys dict put + }for + }if + level3/AGMCORE_&sysshfill AGMCORE_key_known not and + { + /AGMCORE_&sysshfill systemdict/shfill get def + /AGMCORE_&sysmakepattern systemdict/makepattern get def + /AGMCORE_&usrmakepattern/makepattern load def + }if + /currentcmykcolor[0 0 0 0]AGMCORE_gput + /currentstrokeadjust false AGMCORE_gput + /currentcolorspace[/DeviceGray]AGMCORE_gput + /sep_tint 0 AGMCORE_gput + /devicen_tints[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]AGMCORE_gput + /sep_colorspace_dict null AGMCORE_gput + /devicen_colorspace_dict null AGMCORE_gput + /indexed_colorspace_dict null AGMCORE_gput + /currentcolor_intent()AGMCORE_gput + /customcolor_tint 1 AGMCORE_gput + /absolute_colorimetric_crd null AGMCORE_gput + /relative_colorimetric_crd null AGMCORE_gput + /saturation_crd null AGMCORE_gput + /perceptual_crd null AGMCORE_gput + currentcolortransfer cvlit/AGMCore_gray_xfer xdf cvlit/AGMCore_b_xfer xdf + cvlit/AGMCore_g_xfer xdf cvlit/AGMCore_r_xfer xdf + << + /MaxPatternItem currentsystemparams/MaxPatternCache get + >> + setuserparams + end +}def +/ps +{ + /setcmykcolor where{ + pop + Adobe_AGM_Core/AGMCORE_&setcmykcolor/setcmykcolor load put + }if + Adobe_AGM_Core begin + /setcmykcolor + { + 4 copy AGMCORE_cmykbuf astore/currentcmykcolor exch AGMCORE_gput + 1 sub 4 1 roll + 3{ + 3 index add neg dup 0 lt{ + pop 0 + }if + 3 1 roll + }repeat + setrgbcolor pop + }ndf + /currentcmykcolor + { + /currentcmykcolor AGMCORE_gget aload pop + }ndf + /setoverprint + {pop}ndf + /currentoverprint + {false}ndf + /AGMCORE_cyan_plate 1 0 0 0 test_cmyk_color_plate def + /AGMCORE_magenta_plate 0 1 0 0 test_cmyk_color_plate def + /AGMCORE_yellow_plate 0 0 1 0 test_cmyk_color_plate def + /AGMCORE_black_plate 0 0 0 1 test_cmyk_color_plate def + /AGMCORE_plate_ndx + AGMCORE_cyan_plate{ + 0 + }{ + AGMCORE_magenta_plate{ + 1 + }{ + AGMCORE_yellow_plate{ + 2 + }{ + AGMCORE_black_plate{ + 3 + }{ + 4 + }ifelse + }ifelse + }ifelse + }ifelse + def + /AGMCORE_have_reported_unsupported_color_space false def + /AGMCORE_report_unsupported_color_space + { + AGMCORE_have_reported_unsupported_color_space false eq + { + (Warning: Job contains content that cannot be separated with on-host methods. This content appears on the black plate, and knocks out all other plates.)== + Adobe_AGM_Core/AGMCORE_have_reported_unsupported_color_space true ddf + }if + }def + /AGMCORE_composite_job + AGMCORE_cyan_plate AGMCORE_magenta_plate and AGMCORE_yellow_plate and AGMCORE_black_plate and def + /AGMCORE_in_rip_sep + /AGMCORE_in_rip_sep where{ + pop AGMCORE_in_rip_sep + }{ + AGMCORE_distilling + { + false + }{ + userdict/Adobe_AGM_OnHost_Seps known{ + false + }{ + level2{ + currentpagedevice/Separations 2 copy known{ + get + }{ + pop pop false + }ifelse + }{ + false + }ifelse + }ifelse + }ifelse + }ifelse + def + /AGMCORE_producing_seps AGMCORE_composite_job not AGMCORE_in_rip_sep or def + /AGMCORE_host_sep AGMCORE_producing_seps AGMCORE_in_rip_sep not and def + /AGM_preserve_spots + /AGM_preserve_spots where{ + pop AGM_preserve_spots + }{ + AGMCORE_distilling AGMCORE_producing_seps or + }ifelse + def + /AGM_is_distiller_preserving_spotimages + { + currentdistillerparams/PreserveOverprintSettings known + { + currentdistillerparams/PreserveOverprintSettings get + { + currentdistillerparams/ColorConversionStrategy known + { + currentdistillerparams/ColorConversionStrategy get + /sRGB ne + }{ + true + }ifelse + }{ + false + }ifelse + }{ + false + }ifelse + }def + /convert_spot_to_process where{pop}{ + /convert_spot_to_process + { + //Adobe_AGM_Core begin + dup map_alias{ + /Name get exch pop + }if + dup dup(None)eq exch(All)eq or + { + pop false + }{ + AGMCORE_host_sep + { + gsave + 1 0 0 0 setcmykcolor currentgray 1 exch sub + 0 1 0 0 setcmykcolor currentgray 1 exch sub + 0 0 1 0 setcmykcolor currentgray 1 exch sub + 0 0 0 1 setcmykcolor currentgray 1 exch sub + add add add 0 eq + { + pop false + }{ + false setoverprint + current_spot_alias false set_spot_alias + 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor + set_spot_alias + currentgray 1 ne + }ifelse + grestore + }{ + AGMCORE_distilling + { + pop AGM_is_distiller_preserving_spotimages not + }{ + //Adobe_AGM_Core/AGMCORE_name xddf + false + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 0 eq + AGMUTIL_cpd/OverrideSeparations known and + { + AGMUTIL_cpd/OverrideSeparations get + { + /HqnSpots/ProcSet resourcestatus + { + pop pop pop true + }if + }if + }if + { + AGMCORE_name/HqnSpots/ProcSet findresource/TestSpot gx not + }{ + gsave + [/Separation AGMCORE_name/DeviceGray{}]AGMCORE_&setcolorspace + false + AGMUTIL_cpd/SeparationColorNames 2 copy known + { + get + {AGMCORE_name eq or}forall + not + }{ + pop pop pop true + }ifelse + grestore + }ifelse + }ifelse + }ifelse + }ifelse + end + }def + }ifelse + /convert_to_process where{pop}{ + /convert_to_process + { + dup length 0 eq + { + pop false + }{ + AGMCORE_host_sep + { + dup true exch + { + dup(Cyan)eq exch + dup(Magenta)eq 3 -1 roll or exch + dup(Yellow)eq 3 -1 roll or exch + dup(Black)eq 3 -1 roll or + {pop} + {convert_spot_to_process and}ifelse + } + forall + { + true exch + { + dup(Cyan)eq exch + dup(Magenta)eq 3 -1 roll or exch + dup(Yellow)eq 3 -1 roll or exch + (Black)eq or and + }forall + not + }{pop false}ifelse + }{ + false exch + { + /PhotoshopDuotoneList where{pop false}{true}ifelse + { + dup(Cyan)eq exch + dup(Magenta)eq 3 -1 roll or exch + dup(Yellow)eq 3 -1 roll or exch + dup(Black)eq 3 -1 roll or + {pop} + {convert_spot_to_process or}ifelse + } + { + convert_spot_to_process or + } + ifelse + } + forall + }ifelse + }ifelse + }def + }ifelse + /AGMCORE_avoid_L2_sep_space + version cvr 2012 lt + level2 and + AGMCORE_producing_seps not and + def + /AGMCORE_is_cmyk_sep + AGMCORE_cyan_plate AGMCORE_magenta_plate or AGMCORE_yellow_plate or AGMCORE_black_plate or + def + /AGM_avoid_0_cmyk where{ + pop AGM_avoid_0_cmyk + }{ + AGM_preserve_spots + userdict/Adobe_AGM_OnHost_Seps known + userdict/Adobe_AGM_InRip_Seps known or + not and + }ifelse + { + /setcmykcolor[ + { + 4 copy add add add 0 eq currentoverprint and{ + pop 0.0005 + }if + }/exec cvx + /AGMCORE_&setcmykcolor load dup type/operatortype ne{ + /exec cvx + }if + ]cvx def + }if + /AGMCORE_IsSeparationAProcessColor + { + dup(Cyan)eq exch dup(Magenta)eq exch dup(Yellow)eq exch(Black)eq or or or + }def + AGMCORE_host_sep{ + /setcolortransfer + { + AGMCORE_cyan_plate{ + pop pop pop + }{ + AGMCORE_magenta_plate{ + 4 3 roll pop pop pop + }{ + AGMCORE_yellow_plate{ + 4 2 roll pop pop pop + }{ + 4 1 roll pop pop pop + }ifelse + }ifelse + }ifelse + settransfer + } + def + /AGMCORE_get_ink_data + AGMCORE_cyan_plate{ + {pop pop pop} + }{ + AGMCORE_magenta_plate{ + {4 3 roll pop pop pop} + }{ + AGMCORE_yellow_plate{ + {4 2 roll pop pop pop} + }{ + {4 1 roll pop pop pop} + }ifelse + }ifelse + }ifelse + def + /AGMCORE_RemoveProcessColorNames + { + 1 dict begin + /filtername + { + dup/Cyan eq 1 index(Cyan)eq or + {pop(_cyan_)}if + dup/Magenta eq 1 index(Magenta)eq or + {pop(_magenta_)}if + dup/Yellow eq 1 index(Yellow)eq or + {pop(_yellow_)}if + dup/Black eq 1 index(Black)eq or + {pop(_black_)}if + }def + dup type/arraytype eq + {[exch{filtername}forall]} + {filtername}ifelse + end + }def + level3{ + /AGMCORE_IsCurrentColor + { + dup AGMCORE_IsSeparationAProcessColor + { + AGMCORE_plate_ndx 0 eq + {dup(Cyan)eq exch/Cyan eq or}if + AGMCORE_plate_ndx 1 eq + {dup(Magenta)eq exch/Magenta eq or}if + AGMCORE_plate_ndx 2 eq + {dup(Yellow)eq exch/Yellow eq or}if + AGMCORE_plate_ndx 3 eq + {dup(Black)eq exch/Black eq or}if + AGMCORE_plate_ndx 4 eq + {pop false}if + }{ + gsave + false setoverprint + current_spot_alias false set_spot_alias + 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor + set_spot_alias + currentgray 1 ne + grestore + }ifelse + }def + /AGMCORE_filter_functiondatasource + { + 5 dict begin + /data_in xdf + data_in type/stringtype eq + { + /ncomp xdf + /comp xdf + /string_out data_in length ncomp idiv string def + 0 ncomp data_in length 1 sub + { + string_out exch dup ncomp idiv exch data_in exch ncomp getinterval comp get 255 exch sub put + }for + string_out + }{ + string/string_in xdf + /string_out 1 string def + /component xdf + [ + data_in string_in/readstring cvx + [component/get cvx 255/exch cvx/sub cvx string_out/exch cvx 0/exch cvx/put cvx string_out]cvx + [/pop cvx()]cvx/ifelse cvx + ]cvx/ReusableStreamDecode filter + }ifelse + end + }def + /AGMCORE_separateShadingFunction + { + 2 dict begin + /paint? xdf + /channel xdf + dup type/dicttype eq + { + begin + FunctionType 0 eq + { + /DataSource channel Range length 2 idiv DataSource AGMCORE_filter_functiondatasource def + currentdict/Decode known + {/Decode Decode channel 2 mul 2 getinterval def}if + paint? not + {/Decode[1 1]def}if + }if + FunctionType 2 eq + { + paint? + { + /C0[C0 channel get 1 exch sub]def + /C1[C1 channel get 1 exch sub]def + }{ + /C0[1]def + /C1[1]def + }ifelse + }if + FunctionType 3 eq + { + /Functions[Functions{channel paint? AGMCORE_separateShadingFunction}forall]def + }if + currentdict/Range known + {/Range[0 1]def}if + currentdict + end}{ + channel get 0 paint? AGMCORE_separateShadingFunction + }ifelse + end + }def + /AGMCORE_separateShading + { + 3 -1 roll begin + currentdict/Function known + { + currentdict/Background known + {[1 index{Background 3 index get 1 exch sub}{1}ifelse]/Background xdf}if + Function 3 1 roll AGMCORE_separateShadingFunction/Function xdf + /ColorSpace[/DeviceGray]def + }{ + ColorSpace dup type/arraytype eq{0 get}if/DeviceCMYK eq + { + /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def + }{ + ColorSpace dup 1 get AGMCORE_RemoveProcessColorNames 1 exch put + }ifelse + ColorSpace 0 get/Separation eq + { + { + [1/exch cvx/sub cvx]cvx + }{ + [/pop cvx 1]cvx + }ifelse + ColorSpace 3 3 -1 roll put + pop + }{ + { + [exch ColorSpace 1 get length 1 sub exch sub/index cvx 1/exch cvx/sub cvx ColorSpace 1 get length 1 add 1/roll cvx ColorSpace 1 get length{/pop cvx}repeat]cvx + }{ + pop[ColorSpace 1 get length{/pop cvx}repeat cvx 1]cvx + }ifelse + ColorSpace 3 3 -1 roll bind put + }ifelse + ColorSpace 2/DeviceGray put + }ifelse + end + }def + /AGMCORE_separateShadingDict + { + dup/ColorSpace get + dup type/arraytype ne + {[exch]}if + dup 0 get/DeviceCMYK eq + { + exch begin + currentdict + AGMCORE_cyan_plate + {0 true}if + AGMCORE_magenta_plate + {1 true}if + AGMCORE_yellow_plate + {2 true}if + AGMCORE_black_plate + {3 true}if + AGMCORE_plate_ndx 4 eq + {0 false}if + dup not currentoverprint and + {/AGMCORE_ignoreshade true def}if + AGMCORE_separateShading + currentdict + end exch + }if + dup 0 get/Separation eq + { + exch begin + ColorSpace 1 get dup/None ne exch/All ne and + { + ColorSpace 1 get AGMCORE_IsCurrentColor AGMCORE_plate_ndx 4 lt and ColorSpace 1 get AGMCORE_IsSeparationAProcessColor not and + { + ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq + { + /ColorSpace + [ + /Separation + ColorSpace 1 get + /DeviceGray + [ + ColorSpace 3 get/exec cvx + 4 AGMCORE_plate_ndx sub -1/roll cvx + 4 1/roll cvx + 3[/pop cvx]cvx/repeat cvx + 1/exch cvx/sub cvx + ]cvx + ]def + }{ + AGMCORE_report_unsupported_color_space + AGMCORE_black_plate not + { + currentdict 0 false AGMCORE_separateShading + }if + }ifelse + }{ + currentdict ColorSpace 1 get AGMCORE_IsCurrentColor + 0 exch + dup not currentoverprint and + {/AGMCORE_ignoreshade true def}if + AGMCORE_separateShading + }ifelse + }if + currentdict + end exch + }if + dup 0 get/DeviceN eq + { + exch begin + ColorSpace 1 get convert_to_process + { + ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq + { + /ColorSpace + [ + /DeviceN + ColorSpace 1 get + /DeviceGray + [ + ColorSpace 3 get/exec cvx + 4 AGMCORE_plate_ndx sub -1/roll cvx + 4 1/roll cvx + 3[/pop cvx]cvx/repeat cvx + 1/exch cvx/sub cvx + ]cvx + ]def + }{ + AGMCORE_report_unsupported_color_space + AGMCORE_black_plate not + { + currentdict 0 false AGMCORE_separateShading + /ColorSpace[/DeviceGray]def + }if + }ifelse + }{ + currentdict + false -1 ColorSpace 1 get + { + AGMCORE_IsCurrentColor + { + 1 add + exch pop true exch exit + }if + 1 add + }forall + exch + dup not currentoverprint and + {/AGMCORE_ignoreshade true def}if + AGMCORE_separateShading + }ifelse + currentdict + end exch + }if + dup 0 get dup/DeviceCMYK eq exch dup/Separation eq exch/DeviceN eq or or not + { + exch begin + ColorSpace dup type/arraytype eq + {0 get}if + /DeviceGray ne + { + AGMCORE_report_unsupported_color_space + AGMCORE_black_plate not + { + ColorSpace 0 get/CIEBasedA eq + { + /ColorSpace[/Separation/_ciebaseda_/DeviceGray{}]def + }if + ColorSpace 0 get dup/CIEBasedABC eq exch dup/CIEBasedDEF eq exch/DeviceRGB eq or or + { + /ColorSpace[/DeviceN[/_red_/_green_/_blue_]/DeviceRGB{}]def + }if + ColorSpace 0 get/CIEBasedDEFG eq + { + /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def + }if + currentdict 0 false AGMCORE_separateShading + }if + }if + currentdict + end exch + }if + pop + dup/AGMCORE_ignoreshade known + { + begin + /ColorSpace[/Separation(None)/DeviceGray{}]def + currentdict end + }if + }def + /shfill + { + AGMCORE_separateShadingDict + dup/AGMCORE_ignoreshade known + {pop} + {AGMCORE_&sysshfill}ifelse + }def + /makepattern + { + exch + dup/PatternType get 2 eq + { + clonedict + begin + /Shading Shading AGMCORE_separateShadingDict def + Shading/AGMCORE_ignoreshade known + currentdict end exch + {pop<>}if + exch AGMCORE_&sysmakepattern + }{ + exch AGMCORE_&usrmakepattern + }ifelse + }def + }if + }if + AGMCORE_in_rip_sep{ + /setcustomcolor + { + exch aload pop + dup 7 1 roll inRip_spot_has_ink not { + 4{4 index mul 4 1 roll} + repeat + /DeviceCMYK setcolorspace + 6 -2 roll pop pop + }{ + //Adobe_AGM_Core begin + /AGMCORE_k xdf/AGMCORE_y xdf/AGMCORE_m xdf/AGMCORE_c xdf + end + [/Separation 4 -1 roll/DeviceCMYK + {dup AGMCORE_c mul exch dup AGMCORE_m mul exch dup AGMCORE_y mul exch AGMCORE_k mul} + ] + setcolorspace + }ifelse + setcolor + }ndf + /setseparationgray + { + [/Separation(All)/DeviceGray{}]setcolorspace_opt + 1 exch sub setcolor + }ndf + }{ + /setseparationgray + { + AGMCORE_&setgray + }ndf + }ifelse + /findcmykcustomcolor + { + 5 makereadonlyarray + }ndf + /setcustomcolor + { + exch aload pop pop + 4{4 index mul 4 1 roll}repeat + setcmykcolor pop + }ndf + /has_color + /colorimage where{ + AGMCORE_producing_seps{ + pop true + }{ + systemdict eq + }ifelse + }{ + false + }ifelse + def + /map_index + { + 1 index mul exch getinterval{255 div}forall + }bdf + /map_indexed_devn + { + Lookup Names length 3 -1 roll cvi map_index + }bdf + /n_color_components + { + base_colorspace_type + dup/DeviceGray eq{ + pop 1 + }{ + /DeviceCMYK eq{ + 4 + }{ + 3 + }ifelse + }ifelse + }bdf + level2{ + /mo/moveto ldf + /li/lineto ldf + /cv/curveto ldf + /knockout_unitsq + { + 1 setgray + 0 0 1 1 rectfill + }def + level2/setcolorspace AGMCORE_key_known not and{ + /AGMCORE_&&&setcolorspace/setcolorspace ldf + /AGMCORE_ReplaceMappedColor + { + dup type dup/arraytype eq exch/packedarraytype eq or + { + /AGMCORE_SpotAliasAry2 where{ + begin + dup 0 get dup/Separation eq + { + pop + dup length array copy + dup dup 1 get + current_spot_alias + { + dup map_alias + { + false set_spot_alias + dup 1 exch setsepcolorspace + true set_spot_alias + begin + /sep_colorspace_dict currentdict AGMCORE_gput + pop pop pop + [ + /Separation Name + CSA map_csa + MappedCSA + /sep_colorspace_proc load + ] + dup Name + end + }if + }if + map_reserved_ink_name 1 xpt + }{ + /DeviceN eq + { + dup length array copy + dup dup 1 get[ + exch{ + current_spot_alias{ + dup map_alias{ + /Name get exch pop + }if + }if + map_reserved_ink_name + }forall + ]1 xpt + }if + }ifelse + end + }if + }if + }def + /setcolorspace + { + dup type dup/arraytype eq exch/packedarraytype eq or + { + dup 0 get/Indexed eq + { + AGMCORE_distilling + { + /PhotoshopDuotoneList where + { + pop false + }{ + true + }ifelse + }{ + true + }ifelse + { + aload pop 3 -1 roll + AGMCORE_ReplaceMappedColor + 3 1 roll 4 array astore + }if + }{ + AGMCORE_ReplaceMappedColor + }ifelse + }if + DeviceN_PS2_inRip_seps{AGMCORE_&&&setcolorspace}if + }def + }if + }{ + /adj + { + currentstrokeadjust{ + transform + 0.25 sub round 0.25 add exch + 0.25 sub round 0.25 add exch + itransform + }if + }def + /mo{ + adj moveto + }def + /li{ + adj lineto + }def + /cv{ + 6 2 roll adj + 6 2 roll adj + 6 2 roll adj curveto + }def + /knockout_unitsq + { + 1 setgray + 8 8 1[8 0 0 8 0 0]{}image + }def + /currentstrokeadjust{ + /currentstrokeadjust AGMCORE_gget + }def + /setstrokeadjust{ + /currentstrokeadjust exch AGMCORE_gput + }def + /setcolorspace + { + /currentcolorspace exch AGMCORE_gput + }def + /currentcolorspace + { + /currentcolorspace AGMCORE_gget + }def + /setcolor_devicecolor + { + base_colorspace_type + dup/DeviceGray eq{ + pop setgray + }{ + /DeviceCMYK eq{ + setcmykcolor + }{ + setrgbcolor + }ifelse + }ifelse + }def + /setcolor + { + currentcolorspace 0 get + dup/DeviceGray ne{ + dup/DeviceCMYK ne{ + dup/DeviceRGB ne{ + dup/Separation eq{ + pop + currentcolorspace 3 gx + currentcolorspace 2 get + }{ + dup/Indexed eq{ + pop + currentcolorspace 3 get dup type/stringtype eq{ + currentcolorspace 1 get n_color_components + 3 -1 roll map_index + }{ + exec + }ifelse + currentcolorspace 1 get + }{ + /AGMCORE_cur_err/AGMCORE_invalid_color_space def + AGMCORE_invalid_color_space + }ifelse + }ifelse + }if + }if + }if + setcolor_devicecolor + }def + }ifelse + /sop/setoverprint ldf + /lw/setlinewidth ldf + /lc/setlinecap ldf + /lj/setlinejoin ldf + /ml/setmiterlimit ldf + /dsh/setdash ldf + /sadj/setstrokeadjust ldf + /gry/setgray ldf + /rgb/setrgbcolor ldf + /cmyk[ + /currentcolorspace[/DeviceCMYK]/AGMCORE_gput cvx + /setcmykcolor load dup type/operatortype ne{/exec cvx}if + ]cvx bdf + level3 AGMCORE_host_sep not and{ + /nzopmsc{ + 6 dict begin + /kk exch def + /yy exch def + /mm exch def + /cc exch def + /sum 0 def + cc 0 ne{/sum sum 2#1000 or def cc}if + mm 0 ne{/sum sum 2#0100 or def mm}if + yy 0 ne{/sum sum 2#0010 or def yy}if + kk 0 ne{/sum sum 2#0001 or def kk}if + AGMCORE_CMYKDeviceNColorspaces sum get setcolorspace + sum 0 eq{0}if + end + setcolor + }bdf + }{ + /nzopmsc/cmyk ldf + }ifelse + /sep/setsepcolor ldf + /devn/setdevicencolor ldf + /idx/setindexedcolor ldf + /colr/setcolor ldf + /csacrd/set_csa_crd ldf + /sepcs/setsepcolorspace ldf + /devncs/setdevicencolorspace ldf + /idxcs/setindexedcolorspace ldf + /cp/closepath ldf + /clp/clp_npth ldf + /eclp/eoclp_npth ldf + /f/fill ldf + /ef/eofill ldf + /@/stroke ldf + /nclp/npth_clp ldf + /gset/graphic_setup ldf + /gcln/graphic_cleanup ldf + /ct/concat ldf + /cf/currentfile ldf + /fl/filter ldf + /rs/readstring ldf + /AGMCORE_def_ht currenthalftone def + /clonedict Adobe_AGM_Utils begin/clonedict load end def + /clonearray Adobe_AGM_Utils begin/clonearray load end def + currentdict{ + dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ + bind + }if + def + }forall + /getrampcolor + { + /indx exch def + 0 1 NumComp 1 sub + { + dup + Samples exch get + dup type/stringtype eq{indx get}if + exch + Scaling exch get aload pop + 3 1 roll + mul add + }for + ColorSpaceFamily/Separation eq + {sep} + { + ColorSpaceFamily/DeviceN eq + {devn}{setcolor}ifelse + }ifelse + }bdf + /sssetbackground{ + aload pop + ColorSpaceFamily/Separation eq + {sep} + { + ColorSpaceFamily/DeviceN eq + {devn}{setcolor}ifelse + }ifelse + }bdf + /RadialShade + { + 40 dict begin + /ColorSpaceFamily xdf + /background xdf + /ext1 xdf + /ext0 xdf + /BBox xdf + /r2 xdf + /c2y xdf + /c2x xdf + /r1 xdf + /c1y xdf + /c1x xdf + /rampdict xdf + /setinkoverprint where{pop/setinkoverprint{pop}def}if + gsave + BBox length 0 gt + { + np + BBox 0 get BBox 1 get moveto + BBox 2 get BBox 0 get sub 0 rlineto + 0 BBox 3 get BBox 1 get sub rlineto + BBox 2 get BBox 0 get sub neg 0 rlineto + closepath + clip + np + }if + c1x c2x eq + { + c1y c2y lt{/theta 90 def}{/theta 270 def}ifelse + }{ + /slope c2y c1y sub c2x c1x sub div def + /theta slope 1 atan def + c2x c1x lt c2y c1y ge and{/theta theta 180 sub def}if + c2x c1x lt c2y c1y lt and{/theta theta 180 add def}if + }ifelse + gsave + clippath + c1x c1y translate + theta rotate + -90 rotate + {pathbbox}stopped + {0 0 0 0}if + /yMax xdf + /xMax xdf + /yMin xdf + /xMin xdf + grestore + xMax xMin eq yMax yMin eq or + { + grestore + end + }{ + /max{2 copy gt{pop}{exch pop}ifelse}bdf + /min{2 copy lt{pop}{exch pop}ifelse}bdf + rampdict begin + 40 dict begin + background length 0 gt{background sssetbackground gsave clippath fill grestore}if + gsave + c1x c1y translate + theta rotate + -90 rotate + /c2y c1x c2x sub dup mul c1y c2y sub dup mul add sqrt def + /c1y 0 def + /c1x 0 def + /c2x 0 def + ext0 + { + 0 getrampcolor + c2y r2 add r1 sub 0.0001 lt + { + c1x c1y r1 360 0 arcn + pathbbox + /aymax exch def + /axmax exch def + /aymin exch def + /axmin exch def + /bxMin xMin axmin min def + /byMin yMin aymin min def + /bxMax xMax axmax max def + /byMax yMax aymax max def + bxMin byMin moveto + bxMax byMin lineto + bxMax byMax lineto + bxMin byMax lineto + bxMin byMin lineto + eofill + }{ + c2y r1 add r2 le + { + c1x c1y r1 0 360 arc + fill + } + { + c2x c2y r2 0 360 arc fill + r1 r2 eq + { + /p1x r1 neg def + /p1y c1y def + /p2x r1 def + /p2y c1y def + p1x p1y moveto p2x p2y lineto p2x yMin lineto p1x yMin lineto + fill + }{ + /AA r2 r1 sub c2y div def + AA -1 eq + {/theta 89.99 def} + {/theta AA 1 AA dup mul sub sqrt div 1 atan def} + ifelse + /SS1 90 theta add dup sin exch cos div def + /p1x r1 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def + /p1y p1x SS1 div neg def + /SS2 90 theta sub dup sin exch cos div def + /p2x r1 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def + /p2y p2x SS2 div neg def + r1 r2 gt + { + /L1maxX p1x yMin p1y sub SS1 div add def + /L2maxX p2x yMin p2y sub SS2 div add def + }{ + /L1maxX 0 def + /L2maxX 0 def + }ifelse + p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto + L1maxX L1maxX p1x sub SS1 mul p1y add lineto + fill + }ifelse + }ifelse + }ifelse + }if + c1x c2x sub dup mul + c1y c2y sub dup mul + add 0.5 exp + 0 dtransform + dup mul exch dup mul add 0.5 exp 72 div + 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt + 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt + 1 index 1 index lt{exch}if pop + /hires xdf + hires mul + /numpix xdf + /numsteps NumSamples def + /rampIndxInc 1 def + /subsampling false def + numpix 0 ne + { + NumSamples numpix div 0.5 gt + { + /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def + /rampIndxInc NumSamples 1 sub numsteps div def + /subsampling true def + }if + }if + /xInc c2x c1x sub numsteps div def + /yInc c2y c1y sub numsteps div def + /rInc r2 r1 sub numsteps div def + /cx c1x def + /cy c1y def + /radius r1 def + np + xInc 0 eq yInc 0 eq rInc 0 eq and and + { + 0 getrampcolor + cx cy radius 0 360 arc + stroke + NumSamples 1 sub getrampcolor + cx cy radius 72 hires div add 0 360 arc + 0 setlinewidth + stroke + }{ + 0 + numsteps + { + dup + subsampling{round cvi}if + getrampcolor + cx cy radius 0 360 arc + /cx cx xInc add def + /cy cy yInc add def + /radius radius rInc add def + cx cy radius 360 0 arcn + eofill + rampIndxInc add + }repeat + pop + }ifelse + ext1 + { + c2y r2 add r1 lt + { + c2x c2y r2 0 360 arc + fill + }{ + c2y r1 add r2 sub 0.0001 le + { + c2x c2y r2 360 0 arcn + pathbbox + /aymax exch def + /axmax exch def + /aymin exch def + /axmin exch def + /bxMin xMin axmin min def + /byMin yMin aymin min def + /bxMax xMax axmax max def + /byMax yMax aymax max def + bxMin byMin moveto + bxMax byMin lineto + bxMax byMax lineto + bxMin byMax lineto + bxMin byMin lineto + eofill + }{ + c2x c2y r2 0 360 arc fill + r1 r2 eq + { + /p1x r2 neg def + /p1y c2y def + /p2x r2 def + /p2y c2y def + p1x p1y moveto p2x p2y lineto p2x yMax lineto p1x yMax lineto + fill + }{ + /AA r2 r1 sub c2y div def + AA -1 eq + {/theta 89.99 def} + {/theta AA 1 AA dup mul sub sqrt div 1 atan def} + ifelse + /SS1 90 theta add dup sin exch cos div def + /p1x r2 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def + /p1y c2y p1x SS1 div sub def + /SS2 90 theta sub dup sin exch cos div def + /p2x r2 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def + /p2y c2y p2x SS2 div sub def + r1 r2 lt + { + /L1maxX p1x yMax p1y sub SS1 div add def + /L2maxX p2x yMax p2y sub SS2 div add def + }{ + /L1maxX 0 def + /L2maxX 0 def + }ifelse + p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto + L1maxX L1maxX p1x sub SS1 mul p1y add lineto + fill + }ifelse + }ifelse + }ifelse + }if + grestore + grestore + end + end + end + }ifelse + }bdf + /GenStrips + { + 40 dict begin + /ColorSpaceFamily xdf + /background xdf + /ext1 xdf + /ext0 xdf + /BBox xdf + /y2 xdf + /x2 xdf + /y1 xdf + /x1 xdf + /rampdict xdf + /setinkoverprint where{pop/setinkoverprint{pop}def}if + gsave + BBox length 0 gt + { + np + BBox 0 get BBox 1 get moveto + BBox 2 get BBox 0 get sub 0 rlineto + 0 BBox 3 get BBox 1 get sub rlineto + BBox 2 get BBox 0 get sub neg 0 rlineto + closepath + clip + np + }if + x1 x2 eq + { + y1 y2 lt{/theta 90 def}{/theta 270 def}ifelse + }{ + /slope y2 y1 sub x2 x1 sub div def + /theta slope 1 atan def + x2 x1 lt y2 y1 ge and{/theta theta 180 sub def}if + x2 x1 lt y2 y1 lt and{/theta theta 180 add def}if + } + ifelse + gsave + clippath + x1 y1 translate + theta rotate + {pathbbox}stopped + {0 0 0 0}if + /yMax exch def + /xMax exch def + /yMin exch def + /xMin exch def + grestore + xMax xMin eq yMax yMin eq or + { + grestore + end + }{ + rampdict begin + 20 dict begin + background length 0 gt{background sssetbackground gsave clippath fill grestore}if + gsave + x1 y1 translate + theta rotate + /xStart 0 def + /xEnd x2 x1 sub dup mul y2 y1 sub dup mul add 0.5 exp def + /ySpan yMax yMin sub def + /numsteps NumSamples def + /rampIndxInc 1 def + /subsampling false def + xStart 0 transform + xEnd 0 transform + 3 -1 roll + sub dup mul + 3 1 roll + sub dup mul + add 0.5 exp 72 div + 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt + 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt + 1 index 1 index lt{exch}if pop + mul + /numpix xdf + numpix 0 ne + { + NumSamples numpix div 0.5 gt + { + /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def + /rampIndxInc NumSamples 1 sub numsteps div def + /subsampling true def + }if + }if + ext0 + { + 0 getrampcolor + xMin xStart lt + { + xMin yMin xMin neg ySpan rectfill + }if + }if + /xInc xEnd xStart sub numsteps div def + /x xStart def + 0 + numsteps + { + dup + subsampling{round cvi}if + getrampcolor + x yMin xInc ySpan rectfill + /x x xInc add def + rampIndxInc add + }repeat + pop + ext1{ + xMax xEnd gt + { + xEnd yMin xMax xEnd sub ySpan rectfill + }if + }if + grestore + grestore + end + end + end + }ifelse + }bdf +}def +/pt +{ + end +}def +/dt{ +}def +/pgsv{ + //Adobe_AGM_Core/AGMCORE_save save put +}def +/pgrs{ + //Adobe_AGM_Core/AGMCORE_save get restore +}def +systemdict/findcolorrendering known{ + /findcolorrendering systemdict/findcolorrendering get def +}if +systemdict/setcolorrendering known{ + /setcolorrendering systemdict/setcolorrendering get def +}if +/test_cmyk_color_plate +{ + gsave + setcmykcolor currentgray 1 ne + grestore +}def +/inRip_spot_has_ink +{ + dup//Adobe_AGM_Core/AGMCORE_name xddf + convert_spot_to_process not +}def +/map255_to_range +{ + 1 index sub + 3 -1 roll 255 div mul add +}def +/set_csa_crd +{ + /sep_colorspace_dict null AGMCORE_gput + begin + CSA get_csa_by_name setcolorspace_opt + set_crd + end +} +def +/map_csa +{ + currentdict/MappedCSA known{MappedCSA null ne}{false}ifelse + {pop}{get_csa_by_name/MappedCSA xdf}ifelse +}def +/setsepcolor +{ + /sep_colorspace_dict AGMCORE_gget begin + dup/sep_tint exch AGMCORE_gput + TintProc + end +}def +/setdevicencolor +{ + /devicen_colorspace_dict AGMCORE_gget begin + Names length copy + Names length 1 sub -1 0 + { + /devicen_tints AGMCORE_gget 3 1 roll xpt + }for + TintProc + end +}def +/sep_colorspace_proc +{ + /AGMCORE_tmp exch store + /sep_colorspace_dict AGMCORE_gget begin + currentdict/Components known{ + Components aload pop + TintMethod/Lab eq{ + 2{AGMCORE_tmp mul NComponents 1 roll}repeat + LMax sub AGMCORE_tmp mul LMax add NComponents 1 roll + }{ + TintMethod/Subtractive eq{ + NComponents{ + AGMCORE_tmp mul NComponents 1 roll + }repeat + }{ + NComponents{ + 1 sub AGMCORE_tmp mul 1 add NComponents 1 roll + }repeat + }ifelse + }ifelse + }{ + ColorLookup AGMCORE_tmp ColorLookup length 1 sub mul round cvi get + aload pop + }ifelse + end +}def +/sep_colorspace_gray_proc +{ + /AGMCORE_tmp exch store + /sep_colorspace_dict AGMCORE_gget begin + GrayLookup AGMCORE_tmp GrayLookup length 1 sub mul round cvi get + end +}def +/sep_proc_name +{ + dup 0 get + dup/DeviceRGB eq exch/DeviceCMYK eq or level2 not and has_color not and{ + pop[/DeviceGray] + /sep_colorspace_gray_proc + }{ + /sep_colorspace_proc + }ifelse +}def +/setsepcolorspace +{ + current_spot_alias{ + dup begin + Name map_alias{ + exch pop + }if + end + }if + dup/sep_colorspace_dict exch AGMCORE_gput + begin + CSA map_csa + /AGMCORE_sep_special Name dup()eq exch(All)eq or store + AGMCORE_avoid_L2_sep_space{ + [/Indexed MappedCSA sep_proc_name 255 exch + {255 div}/exec cvx 3 -1 roll[4 1 roll load/exec cvx]cvx + ]setcolorspace_opt + /TintProc{ + 255 mul round cvi setcolor + }bdf + }{ + MappedCSA 0 get/DeviceCMYK eq + currentdict/Components known and + AGMCORE_sep_special not and{ + /TintProc[ + Components aload pop Name findcmykcustomcolor + /exch cvx/setcustomcolor cvx + ]cvx bdf + }{ + AGMCORE_host_sep Name(All)eq and{ + /TintProc{ + 1 exch sub setseparationgray + }bdf + }{ + AGMCORE_in_rip_sep MappedCSA 0 get/DeviceCMYK eq and + AGMCORE_host_sep or + Name()eq and{ + /TintProc[ + MappedCSA sep_proc_name exch 0 get/DeviceCMYK eq{ + cvx/setcmykcolor cvx + }{ + cvx/setgray cvx + }ifelse + ]cvx bdf + }{ + AGMCORE_producing_seps MappedCSA 0 get dup/DeviceCMYK eq exch/DeviceGray eq or and AGMCORE_sep_special not and{ + /TintProc[ + /dup cvx + MappedCSA sep_proc_name cvx exch + 0 get/DeviceGray eq{ + 1/exch cvx/sub cvx 0 0 0 4 -1/roll cvx + }if + /Name cvx/findcmykcustomcolor cvx/exch cvx + AGMCORE_host_sep{ + AGMCORE_is_cmyk_sep + /Name cvx + /AGMCORE_IsSeparationAProcessColor load/exec cvx + /not cvx/and cvx + }{ + Name inRip_spot_has_ink not + }ifelse + [ + /pop cvx 1 + ]cvx/if cvx + /setcustomcolor cvx + ]cvx bdf + }{ + /TintProc{setcolor}bdf + [/Separation Name MappedCSA sep_proc_name load]setcolorspace_opt + }ifelse + }ifelse + }ifelse + }ifelse + }ifelse + set_crd + setsepcolor + end +}def +/additive_blend +{ + 3 dict begin + /numarrays xdf + /numcolors xdf + 0 1 numcolors 1 sub + { + /c1 xdf + 1 + 0 1 numarrays 1 sub + { + 1 exch add/index cvx + c1/get cvx/mul cvx + }for + numarrays 1 add 1/roll cvx + }for + numarrays[/pop cvx]cvx/repeat cvx + end +}def +/subtractive_blend +{ + 3 dict begin + /numarrays xdf + /numcolors xdf + 0 1 numcolors 1 sub + { + /c1 xdf + 1 1 + 0 1 numarrays 1 sub + { + 1 3 3 -1 roll add/index cvx + c1/get cvx/sub cvx/mul cvx + }for + /sub cvx + numarrays 1 add 1/roll cvx + }for + numarrays[/pop cvx]cvx/repeat cvx + end +}def +/exec_tint_transform +{ + /TintProc[ + /TintTransform cvx/setcolor cvx + ]cvx bdf + MappedCSA setcolorspace_opt +}bdf +/devn_makecustomcolor +{ + 2 dict begin + /names_index xdf + /Names xdf + 1 1 1 1 Names names_index get findcmykcustomcolor + /devicen_tints AGMCORE_gget names_index get setcustomcolor + Names length{pop}repeat + end +}bdf +/setdevicencolorspace +{ + dup/AliasedColorants known{false}{true}ifelse + current_spot_alias and{ + 7 dict begin + /names_index 0 def + dup/names_len exch/Names get length def + /new_names names_len array def + /new_LookupTables names_len array def + /alias_cnt 0 def + dup/Names get + { + dup map_alias{ + exch pop + dup/ColorLookup known{ + dup begin + new_LookupTables names_index ColorLookup put + end + }{ + dup/Components known{ + dup begin + new_LookupTables names_index Components put + end + }{ + dup begin + new_LookupTables names_index[null null null null]put + end + }ifelse + }ifelse + new_names names_index 3 -1 roll/Name get put + /alias_cnt alias_cnt 1 add def + }{ + /name xdf + new_names names_index name put + dup/LookupTables known{ + dup begin + new_LookupTables names_index LookupTables names_index get put + end + }{ + dup begin + new_LookupTables names_index[null null null null]put + end + }ifelse + }ifelse + /names_index names_index 1 add def + }forall + alias_cnt 0 gt{ + /AliasedColorants true def + /lut_entry_len new_LookupTables 0 get dup length 256 ge{0 get length}{length}ifelse def + 0 1 names_len 1 sub{ + /names_index xdf + new_LookupTables names_index get dup length 256 ge{0 get length}{length}ifelse lut_entry_len ne{ + /AliasedColorants false def + exit + }{ + new_LookupTables names_index get 0 get null eq{ + dup/Names get names_index get/name xdf + name(Cyan)eq name(Magenta)eq name(Yellow)eq name(Black)eq + or or or not{ + /AliasedColorants false def + exit + }if + }if + }ifelse + }for + lut_entry_len 1 eq{ + /AliasedColorants false def + }if + AliasedColorants{ + dup begin + /Names new_names def + /LookupTables new_LookupTables def + /AliasedColorants true def + /NComponents lut_entry_len def + /TintMethod NComponents 4 eq{/Subtractive}{/Additive}ifelse def + /MappedCSA TintMethod/Additive eq{/DeviceRGB}{/DeviceCMYK}ifelse def + currentdict/TTTablesIdx known not{ + /TTTablesIdx -1 def + }if + end + }if + }if + end + }if + dup/devicen_colorspace_dict exch AGMCORE_gput + begin + currentdict/AliasedColorants known{ + AliasedColorants + }{ + false + }ifelse + dup not{ + CSA map_csa + }if + /TintTransform load type/nulltype eq or{ + /TintTransform[ + 0 1 Names length 1 sub + { + /TTTablesIdx TTTablesIdx 1 add def + dup LookupTables exch get dup 0 get null eq + { + 1 index + Names exch get + dup(Cyan)eq + { + pop exch + LookupTables length exch sub + /index cvx + 0 0 0 + } + { + dup(Magenta)eq + { + pop exch + LookupTables length exch sub + /index cvx + 0/exch cvx 0 0 + }{ + (Yellow)eq + { + exch + LookupTables length exch sub + /index cvx + 0 0 3 -1/roll cvx 0 + }{ + exch + LookupTables length exch sub + /index cvx + 0 0 0 4 -1/roll cvx + }ifelse + }ifelse + }ifelse + 5 -1/roll cvx/astore cvx + }{ + dup length 1 sub + LookupTables length 4 -1 roll sub 1 add + /index cvx/mul cvx/round cvx/cvi cvx/get cvx + }ifelse + Names length TTTablesIdx add 1 add 1/roll cvx + }for + Names length[/pop cvx]cvx/repeat cvx + NComponents Names length + TintMethod/Subtractive eq + { + subtractive_blend + }{ + additive_blend + }ifelse + ]cvx bdf + }if + AGMCORE_host_sep{ + Names convert_to_process{ + exec_tint_transform + } + { + currentdict/AliasedColorants known{ + AliasedColorants not + }{ + false + }ifelse + 5 dict begin + /AvoidAliasedColorants xdf + /painted? false def + /names_index 0 def + /names_len Names length def + AvoidAliasedColorants{ + /currentspotalias current_spot_alias def + false set_spot_alias + }if + Names{ + AGMCORE_is_cmyk_sep{ + dup(Cyan)eq AGMCORE_cyan_plate and exch + dup(Magenta)eq AGMCORE_magenta_plate and exch + dup(Yellow)eq AGMCORE_yellow_plate and exch + (Black)eq AGMCORE_black_plate and or or or{ + /devicen_colorspace_dict AGMCORE_gget/TintProc[ + Names names_index/devn_makecustomcolor cvx + ]cvx ddf + /painted? true def + }if + painted?{exit}if + }{ + 0 0 0 0 5 -1 roll findcmykcustomcolor 1 setcustomcolor currentgray 0 eq{ + /devicen_colorspace_dict AGMCORE_gget/TintProc[ + Names names_index/devn_makecustomcolor cvx + ]cvx ddf + /painted? true def + exit + }if + }ifelse + /names_index names_index 1 add def + }forall + AvoidAliasedColorants{ + currentspotalias set_spot_alias + }if + painted?{ + /devicen_colorspace_dict AGMCORE_gget/names_index names_index put + }{ + /devicen_colorspace_dict AGMCORE_gget/TintProc[ + names_len[/pop cvx]cvx/repeat cvx 1/setseparationgray cvx + 0 0 0 0/setcmykcolor cvx + ]cvx ddf + }ifelse + end + }ifelse + } + { + AGMCORE_in_rip_sep{ + Names convert_to_process not + }{ + level3 + }ifelse + { + [/DeviceN Names MappedCSA/TintTransform load]setcolorspace_opt + /TintProc level3 not AGMCORE_in_rip_sep and{ + [ + Names/length cvx[/pop cvx]cvx/repeat cvx + ]cvx bdf + }{ + {setcolor}bdf + }ifelse + }{ + exec_tint_transform + }ifelse + }ifelse + set_crd + /AliasedColorants false def + end +}def +/setindexedcolorspace +{ + dup/indexed_colorspace_dict exch AGMCORE_gput + begin + currentdict/CSDBase known{ + CSDBase/CSD get_res begin + currentdict/Names known{ + currentdict devncs + }{ + 1 currentdict sepcs + }ifelse + AGMCORE_host_sep{ + 4 dict begin + /compCnt/Names where{pop Names length}{1}ifelse def + /NewLookup HiVal 1 add string def + 0 1 HiVal{ + /tableIndex xdf + Lookup dup type/stringtype eq{ + compCnt tableIndex map_index + }{ + exec + }ifelse + /Names where{ + pop setdevicencolor + }{ + setsepcolor + }ifelse + currentgray + tableIndex exch + 255 mul cvi + NewLookup 3 1 roll put + }for + [/Indexed currentcolorspace HiVal NewLookup]setcolorspace_opt + end + }{ + level3 + { + currentdict/Names known{ + [/Indexed[/DeviceN Names MappedCSA/TintTransform load]HiVal Lookup]setcolorspace_opt + }{ + [/Indexed[/Separation Name MappedCSA sep_proc_name load]HiVal Lookup]setcolorspace_opt + }ifelse + }{ + [/Indexed MappedCSA HiVal + [ + currentdict/Names known{ + Lookup dup type/stringtype eq + {/exch cvx CSDBase/CSD get_res/Names get length dup/mul cvx exch/getinterval cvx{255 div}/forall cvx} + {/exec cvx}ifelse + /TintTransform load/exec cvx + }{ + Lookup dup type/stringtype eq + {/exch cvx/get cvx 255/div cvx} + {/exec cvx}ifelse + CSDBase/CSD get_res/MappedCSA get sep_proc_name exch pop/load cvx/exec cvx + }ifelse + ]cvx + ]setcolorspace_opt + }ifelse + }ifelse + end + set_crd + } + { + CSA map_csa + AGMCORE_host_sep level2 not and{ + 0 0 0 0 setcmykcolor + }{ + [/Indexed MappedCSA + level2 not has_color not and{ + dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or{ + pop[/DeviceGray] + }if + HiVal GrayLookup + }{ + HiVal + currentdict/RangeArray known{ + { + /indexed_colorspace_dict AGMCORE_gget begin + Lookup exch + dup HiVal gt{ + pop HiVal + }if + NComponents mul NComponents getinterval{}forall + NComponents 1 sub -1 0{ + RangeArray exch 2 mul 2 getinterval aload pop map255_to_range + NComponents 1 roll + }for + end + }bind + }{ + Lookup + }ifelse + }ifelse + ]setcolorspace_opt + set_crd + }ifelse + }ifelse + end +}def +/setindexedcolor +{ + AGMCORE_host_sep{ + /indexed_colorspace_dict AGMCORE_gget + begin + currentdict/CSDBase known{ + CSDBase/CSD get_res begin + currentdict/Names known{ + map_indexed_devn + devn + } + { + Lookup 1 3 -1 roll map_index + sep + }ifelse + end + }{ + Lookup MappedCSA/DeviceCMYK eq{4}{1}ifelse 3 -1 roll + map_index + MappedCSA/DeviceCMYK eq{setcmykcolor}{setgray}ifelse + }ifelse + end + }{ + level3 not AGMCORE_in_rip_sep and/indexed_colorspace_dict AGMCORE_gget/CSDBase known and{ + /indexed_colorspace_dict AGMCORE_gget/CSDBase get/CSD get_res begin + map_indexed_devn + devn + end + } + { + setcolor + }ifelse + }ifelse +}def +/ignoreimagedata +{ + currentoverprint not{ + gsave + dup clonedict begin + 1 setgray + /Decode[0 1]def + /DataSourcedef + /MultipleDataSources false def + /BitsPerComponent 8 def + currentdict end + systemdict/image gx + grestore + }if + consumeimagedata +}def +/add_res +{ + dup/CSD eq{ + pop + //Adobe_AGM_Core begin + /AGMCORE_CSD_cache load 3 1 roll put + end + }{ + defineresource pop + }ifelse +}def +/del_res +{ + { + aload pop exch + dup/CSD eq{ + pop + {//Adobe_AGM_Core/AGMCORE_CSD_cache get exch undef}forall + }{ + exch + {1 index undefineresource}forall + pop + }ifelse + }forall +}def +/get_res +{ + dup/CSD eq{ + pop + dup type dup/nametype eq exch/stringtype eq or{ + AGMCORE_CSD_cache exch get + }if + }{ + findresource + }ifelse +}def +/get_csa_by_name +{ + dup type dup/nametype eq exch/stringtype eq or{ + /CSA get_res + }if +}def +/paintproc_buf_init +{ + /count get 0 0 put +}def +/paintproc_buf_next +{ + dup/count get dup 0 get + dup 3 1 roll + 1 add 0 xpt + get +}def +/cachepaintproc_compress +{ + 5 dict begin + currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def + /ppdict 20 dict def + /string_size 16000 def + /readbuffer string_size string def + currentglobal true setglobal + ppdict 1 array dup 0 1 put/count xpt + setglobal + /LZWFilter + { + exch + dup length 0 eq{ + pop + }{ + ppdict dup length 1 sub 3 -1 roll put + }ifelse + {string_size}{0}ifelse string + }/LZWEncode filter def + { + ReadFilter readbuffer readstring + exch LZWFilter exch writestring + not{exit}if + }loop + LZWFilter closefile + ppdict + end +}def +/cachepaintproc +{ + 2 dict begin + currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def + /ppdict 20 dict def + currentglobal true setglobal + ppdict 1 array dup 0 1 put/count xpt + setglobal + { + ReadFilter 16000 string readstring exch + ppdict dup length 1 sub 3 -1 roll put + not{exit}if + }loop + ppdict dup dup length 1 sub()put + end +}def +/make_pattern +{ + exch clonedict exch + dup matrix currentmatrix matrix concatmatrix 0 0 3 2 roll itransform + exch 3 index/XStep get 1 index exch 2 copy div cvi mul sub sub + exch 3 index/YStep get 1 index exch 2 copy div cvi mul sub sub + matrix translate exch matrix concatmatrix + 1 index begin + BBox 0 get XStep div cvi XStep mul/xshift exch neg def + BBox 1 get YStep div cvi YStep mul/yshift exch neg def + BBox 0 get xshift add + BBox 1 get yshift add + BBox 2 get xshift add + BBox 3 get yshift add + 4 array astore + /BBox exch def + [xshift yshift/translate load null/exec load]dup + 3/PaintProc load put cvx/PaintProc exch def + end + gsave 0 setgray + makepattern + grestore +}def +/set_pattern +{ + dup/PatternType get 1 eq{ + dup/PaintType get 1 eq{ + currentoverprint sop[/DeviceGray]setcolorspace 0 setgray + }if + }if + setpattern +}def +/setcolorspace_opt +{ + dup currentcolorspace eq{pop}{setcolorspace}ifelse +}def +/updatecolorrendering +{ + currentcolorrendering/RenderingIntent known{ + currentcolorrendering/RenderingIntent get + } + { + Intent/AbsoluteColorimetric eq + { + /absolute_colorimetric_crd AGMCORE_gget dup null eq + } + { + Intent/RelativeColorimetric eq + { + /relative_colorimetric_crd AGMCORE_gget dup null eq + } + { + Intent/Saturation eq + { + /saturation_crd AGMCORE_gget dup null eq + } + { + /perceptual_crd AGMCORE_gget dup null eq + }ifelse + }ifelse + }ifelse + { + pop null + } + { + /RenderingIntent known{null}{Intent}ifelse + }ifelse + }ifelse + Intent ne{ + Intent/ColorRendering{findresource}stopped + { + pop pop systemdict/findcolorrendering known + { + Intent findcolorrendering + { + /ColorRendering findresource true exch + } + { + /ColorRendering findresource + product(Xerox Phaser 5400)ne + exch + }ifelse + dup Intent/AbsoluteColorimetric eq + { + /absolute_colorimetric_crd exch AGMCORE_gput + } + { + Intent/RelativeColorimetric eq + { + /relative_colorimetric_crd exch AGMCORE_gput + } + { + Intent/Saturation eq + { + /saturation_crd exch AGMCORE_gput + } + { + Intent/Perceptual eq + { + /perceptual_crd exch AGMCORE_gput + } + { + pop + }ifelse + }ifelse + }ifelse + }ifelse + 1 index{exch}{pop}ifelse + } + {false}ifelse + } + {true}ifelse + { + dup begin + currentdict/TransformPQR known{ + currentdict/TransformPQR get aload pop + 3{{}eq 3 1 roll}repeat or or + } + {true}ifelse + currentdict/MatrixPQR known{ + currentdict/MatrixPQR get aload pop + 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll + 0.0 eq 9 1 roll 1.0 eq 9 1 roll 0.0 eq 9 1 roll + 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq + and and and and and and and and + } + {true}ifelse + end + or + { + clonedict begin + /TransformPQR[ + {4 -1 roll 3 get dup 3 1 roll sub 5 -1 roll 3 get 3 -1 roll sub div + 3 -1 roll 3 get 3 -1 roll 3 get dup 4 1 roll sub mul add}bind + {4 -1 roll 4 get dup 3 1 roll sub 5 -1 roll 4 get 3 -1 roll sub div + 3 -1 roll 4 get 3 -1 roll 4 get dup 4 1 roll sub mul add}bind + {4 -1 roll 5 get dup 3 1 roll sub 5 -1 roll 5 get 3 -1 roll sub div + 3 -1 roll 5 get 3 -1 roll 5 get dup 4 1 roll sub mul add}bind + ]def + /MatrixPQR[0.8951 -0.7502 0.0389 0.2664 1.7135 -0.0685 -0.1614 0.0367 1.0296]def + /RangePQR[-0.3227950745 2.3229645538 -1.5003771057 3.5003465881 -0.1369979095 2.136967392]def + currentdict end + }if + setcolorrendering_opt + }if + }if +}def +/set_crd +{ + AGMCORE_host_sep not level2 and{ + currentdict/ColorRendering known{ + ColorRendering/ColorRendering{findresource}stopped not{setcolorrendering_opt}if + }{ + currentdict/Intent known{ + updatecolorrendering + }if + }ifelse + currentcolorspace dup type/arraytype eq + {0 get}if + /DeviceRGB eq + { + currentdict/UCR known + {/UCR}{/AGMCORE_currentucr}ifelse + load setundercolorremoval + currentdict/BG known + {/BG}{/AGMCORE_currentbg}ifelse + load setblackgeneration + }if + }if +}def +/set_ucrbg +{ + dup null eq {pop /AGMCORE_currentbg load}{/Procedure get_res}ifelse + dup currentblackgeneration eq {pop}{setblackgeneration}ifelse + dup null eq {pop /AGMCORE_currentucr load}{/Procedure get_res}ifelse + dup currentundercolorremoval eq {pop}{setundercolorremoval}ifelse +}def +/setcolorrendering_opt +{ + dup currentcolorrendering eq{ + pop + }{ + product(HP Color LaserJet 2605)anchorsearch{ + pop pop pop + }{ + pop + clonedict + begin + /Intent Intent def + currentdict + end + setcolorrendering + }ifelse + }ifelse +}def +/cpaint_gcomp +{ + convert_to_process//Adobe_AGM_Core/AGMCORE_ConvertToProcess xddf + //Adobe_AGM_Core/AGMCORE_ConvertToProcess get not + { + (%end_cpaint_gcomp)flushinput + }if +}def +/cpaint_gsep +{ + //Adobe_AGM_Core/AGMCORE_ConvertToProcess get + { + (%end_cpaint_gsep)flushinput + }if +}def +/cpaint_gend +{np}def +/T1_path +{ + currentfile token pop currentfile token pop mo + { + currentfile token pop dup type/stringtype eq + {pop exit}if + 0 exch rlineto + currentfile token pop dup type/stringtype eq + {pop exit}if + 0 rlineto + }loop +}def +/T1_gsave + level3 + {/clipsave} + {/gsave}ifelse + load def +/T1_grestore + level3 + {/cliprestore} + {/grestore}ifelse + load def +/set_spot_alias_ary +{ + dup inherit_aliases + //Adobe_AGM_Core/AGMCORE_SpotAliasAry xddf +}def +/set_spot_normalization_ary +{ + dup inherit_aliases + dup length + /AGMCORE_SpotAliasAry where{pop AGMCORE_SpotAliasAry length add}if + array + //Adobe_AGM_Core/AGMCORE_SpotAliasAry2 xddf + /AGMCORE_SpotAliasAry where{ + pop + AGMCORE_SpotAliasAry2 0 AGMCORE_SpotAliasAry putinterval + AGMCORE_SpotAliasAry length + }{0}ifelse + AGMCORE_SpotAliasAry2 3 1 roll exch putinterval + true set_spot_alias +}def +/inherit_aliases +{ + {dup/Name get map_alias{/CSD put}{pop}ifelse}forall +}def +/set_spot_alias +{ + /AGMCORE_SpotAliasAry2 where{ + /AGMCORE_current_spot_alias 3 -1 roll put + }{ + pop + }ifelse +}def +/current_spot_alias +{ + /AGMCORE_SpotAliasAry2 where{ + /AGMCORE_current_spot_alias get + }{ + false + }ifelse +}def +/map_alias +{ + /AGMCORE_SpotAliasAry2 where{ + begin + /AGMCORE_name xdf + false + AGMCORE_SpotAliasAry2{ + dup/Name get AGMCORE_name eq{ + /CSD get/CSD get_res + exch pop true + exit + }{ + pop + }ifelse + }forall + end + }{ + pop false + }ifelse +}bdf +/spot_alias +{ + true set_spot_alias + /AGMCORE_&setcustomcolor AGMCORE_key_known not{ + //Adobe_AGM_Core/AGMCORE_&setcustomcolor/setcustomcolor load put + }if + /customcolor_tint 1 AGMCORE_gput + //Adobe_AGM_Core begin + /setcustomcolor + { + //Adobe_AGM_Core begin + dup/customcolor_tint exch AGMCORE_gput + 1 index aload pop pop 1 eq exch 1 eq and exch 1 eq and exch 1 eq and not + current_spot_alias and{1 index 4 get map_alias}{false}ifelse + { + false set_spot_alias + /sep_colorspace_dict AGMCORE_gget null ne + {/sep_colorspace_dict AGMCORE_gget/ForeignContent known not}{false}ifelse + 3 1 roll 2 index{ + exch pop/sep_tint AGMCORE_gget exch + }if + mark 3 1 roll + setsepcolorspace + counttomark 0 ne{ + setsepcolor + }if + pop + not{/sep_tint 1.0 AGMCORE_gput/sep_colorspace_dict AGMCORE_gget/ForeignContent true put}if + pop + true set_spot_alias + }{ + AGMCORE_&setcustomcolor + }ifelse + end + }bdf + end +}def +/begin_feature +{ + Adobe_AGM_Core/AGMCORE_feature_dictCount countdictstack put + count Adobe_AGM_Core/AGMCORE_feature_opCount 3 -1 roll put + {Adobe_AGM_Core/AGMCORE_feature_ctm matrix currentmatrix put}if +}def +/end_feature +{ + 2 dict begin + /spd/setpagedevice load def + /setpagedevice{get_gstate spd set_gstate}def + stopped{$error/newerror false put}if + end + count Adobe_AGM_Core/AGMCORE_feature_opCount get sub dup 0 gt{{pop}repeat}{pop}ifelse + countdictstack Adobe_AGM_Core/AGMCORE_feature_dictCount get sub dup 0 gt{{end}repeat}{pop}ifelse + {Adobe_AGM_Core/AGMCORE_feature_ctm get setmatrix}if +}def +/set_negative +{ + //Adobe_AGM_Core begin + /AGMCORE_inverting exch def + level2{ + currentpagedevice/NegativePrint known AGMCORE_distilling not and{ + currentpagedevice/NegativePrint get//Adobe_AGM_Core/AGMCORE_inverting get ne{ + true begin_feature true{ + <>setpagedevice + }end_feature + }if + /AGMCORE_inverting false def + }if + }if + AGMCORE_inverting{ + [{1 exch sub}/exec load dup currenttransfer exch]cvx bind settransfer + AGMCORE_distilling{ + erasepage + }{ + gsave np clippath 1/setseparationgray where{pop setseparationgray}{setgray}ifelse + /AGMIRS_&fill where{pop AGMIRS_&fill}{fill}ifelse grestore + }ifelse + }if + end +}def +/lw_save_restore_override{ + /md where{ + pop + md begin + initializepage + /initializepage{}def + /pmSVsetup{}def + /endp{}def + /pse{}def + /psb{}def + /orig_showpage where + {pop} + {/orig_showpage/showpage load def} + ifelse + /showpage{orig_showpage gR}def + end + }if +}def +/pscript_showpage_override{ + /NTPSOct95 where + { + begin + showpage + save + /showpage/restore load def + /restore{exch pop}def + end + }if +}def +/driver_media_override +{ + /md where{ + pop + md/initializepage known{ + md/initializepage{}put + }if + md/rC known{ + md/rC{4{pop}repeat}put + }if + }if + /mysetup where{ + /mysetup[1 0 0 1 0 0]put + }if + Adobe_AGM_Core/AGMCORE_Default_CTM matrix currentmatrix put + level2 + {Adobe_AGM_Core/AGMCORE_Default_PageSize currentpagedevice/PageSize get put}if +}def +/capture_mysetup +{ + /Pscript_Win_Data where{ + pop + Pscript_Win_Data/mysetup known{ + Adobe_AGM_Core/save_mysetup Pscript_Win_Data/mysetup get put + }if + }if +}def +/restore_mysetup +{ + /Pscript_Win_Data where{ + pop + Pscript_Win_Data/mysetup known{ + Adobe_AGM_Core/save_mysetup known{ + Pscript_Win_Data/mysetup Adobe_AGM_Core/save_mysetup get put + Adobe_AGM_Core/save_mysetup undef + }if + }if + }if +}def +/driver_check_media_override +{ + /PrepsDict where + {pop} + { + Adobe_AGM_Core/AGMCORE_Default_CTM get matrix currentmatrix ne + Adobe_AGM_Core/AGMCORE_Default_PageSize get type/arraytype eq + { + Adobe_AGM_Core/AGMCORE_Default_PageSize get 0 get currentpagedevice/PageSize get 0 get eq and + Adobe_AGM_Core/AGMCORE_Default_PageSize get 1 get currentpagedevice/PageSize get 1 get eq and + }if + { + Adobe_AGM_Core/AGMCORE_Default_CTM get setmatrix + }if + }ifelse +}def +AGMCORE_err_strings begin + /AGMCORE_bad_environ(Environment not satisfactory for this job. Ensure that the PPD is correct or that the PostScript level requested is supported by this printer. )def + /AGMCORE_color_space_onhost_seps(This job contains colors that will not separate with on-host methods. )def + /AGMCORE_invalid_color_space(This job contains an invalid color space. )def +end +/set_def_ht +{AGMCORE_def_ht sethalftone}def +/set_def_flat +{AGMCORE_Default_flatness setflat}def +end +systemdict/setpacking known +{setpacking}if +%%EndResource +%%BeginResource: procset Adobe_CoolType_Core 2.31 0 %%Copyright: Copyright 1997-2006 Adobe Systems Incorporated. All Rights Reserved. %%Version: 2.31 0 10 dict begin /Adobe_CoolType_Passthru currentdict def /Adobe_CoolType_Core_Defined userdict/Adobe_CoolType_Core known def Adobe_CoolType_Core_Defined {/Adobe_CoolType_Core userdict/Adobe_CoolType_Core get def} if userdict/Adobe_CoolType_Core 70 dict dup begin put /Adobe_CoolType_Version 2.31 def /Level2? systemdict/languagelevel known dup {pop systemdict/languagelevel get 2 ge} if def Level2? not { /currentglobal false def /setglobal/pop load def /gcheck{pop false}bind def /currentpacking false def /setpacking/pop load def /SharedFontDirectory 0 dict def } if currentpacking true setpacking currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def end setglobal currentglobal true setglobal userdict/Adobe_CoolType_GVMFonts known not {userdict/Adobe_CoolType_GVMFonts 10 dict put} if setglobal currentglobal false setglobal userdict/Adobe_CoolType_LVMFonts known not {userdict/Adobe_CoolType_LVMFonts 10 dict put} if setglobal /ct_VMDictPut { dup gcheck{Adobe_CoolType_GVMFonts}{Adobe_CoolType_LVMFonts}ifelse 3 1 roll put }bind def /ct_VMDictUndef { dup Adobe_CoolType_GVMFonts exch known {Adobe_CoolType_GVMFonts exch undef} { dup Adobe_CoolType_LVMFonts exch known {Adobe_CoolType_LVMFonts exch undef} {pop} ifelse }ifelse }bind def /ct_str1 1 string def /ct_xshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_yshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 exch rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_xyshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { {_ct_na _ct_i 1 add get}stopped {pop pop pop} { _ct_x _ct_y moveto rmoveto } ifelse } ifelse /_ct_i _ct_i 2 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /xsh{{@xshow}stopped{Adobe_CoolType_Data begin ct_xshow end}if}bind def /ysh{{@yshow}stopped{Adobe_CoolType_Data begin ct_yshow end}if}bind def /xysh{{@xyshow}stopped{Adobe_CoolType_Data begin ct_xyshow end}if}bind def currentglobal true setglobal /ct_T3Defs { /BuildChar { 1 index/Encoding get exch get 1 index/BuildGlyph get exec }bind def /BuildGlyph { exch begin GlyphProcs exch get exec end }bind def }bind def setglobal /@_SaveStackLevels { Adobe_CoolType_Data begin /@vmState currentglobal def false setglobal @opStackCountByLevel @opStackLevel 2 copy known not { 2 copy 3 dict dup/args 7 index 5 add array put put get } { get dup/args get dup length 3 index lt { dup length 5 add array exch 1 index exch 0 exch putinterval 1 index exch/args exch put } {pop} ifelse } ifelse begin count 1 sub 1 index lt {pop count} if dup/argCount exch def dup 0 gt { args exch 0 exch getinterval astore pop } {pop} ifelse count /restCount exch def end /@opStackLevel @opStackLevel 1 add def countdictstack 1 sub @dictStackCountByLevel exch @dictStackLevel exch put /@dictStackLevel @dictStackLevel 1 add def @vmState setglobal end }bind def /@_RestoreStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def @opStackCountByLevel @opStackLevel get begin count restCount sub dup 0 gt {{pop}repeat} {pop} ifelse args 0 argCount getinterval{}forall end /@dictStackLevel @dictStackLevel 1 sub def @dictStackCountByLevel @dictStackLevel get end countdictstack exch sub dup 0 gt {{end}repeat} {pop} ifelse }bind def /@_PopStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def /@dictStackLevel @dictStackLevel 1 sub def end }bind def /@Raise { exch cvx exch errordict exch get exec stop }bind def /@ReRaise { cvx $error/errorname get errordict exch get exec stop }bind def /@Stopped { 0 @#Stopped }bind def /@#Stopped { @_SaveStackLevels stopped {@_RestoreStackLevels true} {@_PopStackLevels false} ifelse }bind def /@Arg { Adobe_CoolType_Data begin @opStackCountByLevel @opStackLevel 1 sub get begin args exch argCount 1 sub exch sub get end end }bind def currentglobal true setglobal /CTHasResourceForAllBug Level2? { 1 dict dup /@shouldNotDisappearDictValue true def Adobe_CoolType_Data exch/@shouldNotDisappearDict exch put begin count @_SaveStackLevels {(*){pop stop}128 string/Category resourceforall} stopped pop @_RestoreStackLevels currentdict Adobe_CoolType_Data/@shouldNotDisappearDict get dup 3 1 roll ne dup 3 1 roll { /@shouldNotDisappearDictValue known { { end currentdict 1 index eq {pop exit} if } loop } if } { pop end } ifelse } {false} ifelse def true setglobal /CTHasResourceStatusBug Level2? { mark {/steveamerige/Category resourcestatus} stopped {cleartomark true} {cleartomark currentglobal not} ifelse } {false} ifelse def setglobal /CTResourceStatus { mark 3 1 roll /Category findresource begin ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse end }bind def /CTWorkAroundBugs { Level2? { /cid_PreLoad/ProcSet resourcestatus { pop pop currentglobal mark { (*) { dup/CMap CTHasResourceStatusBug {CTResourceStatus} {resourcestatus} ifelse { pop dup 0 eq exch 1 eq or { dup/CMap findresource gcheck setglobal /CMap undefineresource } { pop CTHasResourceForAllBug {exit} {stop} ifelse } ifelse } {pop} ifelse } 128 string/CMap resourceforall } stopped {cleartomark} stopped pop setglobal } if } if }bind def /ds { Adobe_CoolType_Core begin CTWorkAroundBugs /mo/moveto load def /nf/newencodedfont load def /msf{makefont setfont}bind def /uf{dup undefinefont ct_VMDictUndef}bind def /ur/undefineresource load def /chp/charpath load def /awsh/awidthshow load def /wsh/widthshow load def /ash/ashow load def /@xshow/xshow load def /@yshow/yshow load def /@xyshow/xyshow load def /@cshow/cshow load def /sh/show load def /rp/repeat load def /.n/.notdef def end currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /AddWidths? false def /CC 0 def /charcode 2 string def /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def /InVMFontsByCMap 10 dict def /InVMDeepCopiedFonts 10 dict def end setglobal }bind def /dt { currentdict Adobe_CoolType_Core eq {end} if }bind def /ps { Adobe_CoolType_Core begin Adobe_CoolType_GVMFonts begin Adobe_CoolType_LVMFonts begin SharedFontDirectory begin }bind def /pt { end end end end }bind def /unload { systemdict/languagelevel known { systemdict/languagelevel get 2 ge { userdict/Adobe_CoolType_Core 2 copy known {undef} {pop pop} ifelse } if } if }bind def /ndf { 1 index where {pop pop pop} {dup xcheck{bind}if def} ifelse }def /findfont systemdict begin userdict begin /globaldict where{/globaldict get begin}if dup where pop exch get /globaldict where{pop end}if end end Adobe_CoolType_Core_Defined {/systemfindfont exch def} { /findfont 1 index def /systemfindfont exch def } ifelse /undefinefont {pop}ndf /copyfont { currentglobal 3 1 roll 1 index gcheck setglobal dup null eq{0}{dup length}ifelse 2 index length add 1 add dict begin exch { 1 index/FID eq {pop pop} {def} ifelse } forall dup null eq {pop} {{def}forall} ifelse currentdict end exch setglobal }bind def /copyarray { currentglobal exch dup gcheck setglobal dup length array copy exch setglobal }bind def /newencodedfont { currentglobal { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } { FontDirectory 3 index known {FontDirectory 3 index get/FontReferenced known} { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } ifelse } ifelse dup { 3 index findfont/FontReferenced get 2 index dup type/nametype eq {findfont} if ne {pop false} if } if dup { 1 index dup type/nametype eq {findfont} if dup/CharStrings known { /CharStrings get length 4 index findfont/CharStrings get length ne { pop false } if } {pop} ifelse } if { pop 1 index findfont /Encoding get exch 0 1 255 {2 copy get 3 index 3 1 roll put} for pop pop pop } { currentglobal 4 1 roll dup type/nametype eq {findfont} if dup gcheck setglobal dup dup maxlength 2 add dict begin exch { 1 index/FID ne 2 index/Encoding ne and {def} {pop pop} ifelse } forall /FontReferenced exch def /Encoding exch dup length array copy def /FontName 1 index dup type/stringtype eq{cvn}if def dup currentdict end definefont ct_VMDictPut setglobal } ifelse }bind def /SetSubstituteStrategy { $SubstituteFont begin dup type/dicttype ne {0 dict} if currentdict/$Strategies known { exch $Strategies exch 2 copy known { get 2 copy maxlength exch maxlength add dict begin {def}forall {def}forall currentdict dup/$Init known {dup/$Init get exec} if end /$Strategy exch def } {pop pop pop} ifelse } {pop pop} ifelse end }bind def /scff { $SubstituteFont begin dup type/stringtype eq {dup length exch} {null} ifelse /$sname exch def /$slen exch def /$inVMIndex $sname null eq { 1 index $str cvs dup length $slen sub $slen getinterval cvn } {$sname} ifelse def end {findfont} @Stopped { dup length 8 add string exch 1 index 0(BadFont:)putinterval 1 index exch 8 exch dup length string cvs putinterval cvn {findfont} @Stopped {pop/Courier findfont} if } if $SubstituteFont begin /$sname null def /$slen 0 def /$inVMIndex null def end }bind def /isWidthsOnlyFont { dup/WidthsOnly known {pop pop true} { dup/FDepVector known {/FDepVector get{isWidthsOnlyFont dup{exit}if}forall} { dup/FDArray known {/FDArray get{isWidthsOnlyFont dup{exit}if}forall} {pop} ifelse } ifelse } ifelse }bind def /ct_StyleDicts 4 dict dup begin /Adobe-Japan1 4 dict dup begin Level2? { /Serif /HeiseiMin-W3-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMin-W3} { /CIDFont/Category resourcestatus { pop pop /HeiseiMin-W3/CIDFont resourcestatus {pop pop/HeiseiMin-W3} {/Ryumin-Light} ifelse } {/Ryumin-Light} ifelse } ifelse def /SansSerif /HeiseiKakuGo-W5-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiKakuGo-W5} { /CIDFont/Category resourcestatus { pop pop /HeiseiKakuGo-W5/CIDFont resourcestatus {pop pop/HeiseiKakuGo-W5} {/GothicBBB-Medium} ifelse } {/GothicBBB-Medium} ifelse } ifelse def /HeiseiMaruGo-W4-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMaruGo-W4} { /CIDFont/Category resourcestatus { pop pop /HeiseiMaruGo-W4/CIDFont resourcestatus {pop pop/HeiseiMaruGo-W4} { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } ifelse /RoundSansSerif exch def /Default Serif def } { /Serif/Ryumin-Light def /SansSerif/GothicBBB-Medium def { (fonts/Jun101-Light-83pv-RKSJ-H)status }stopped {pop}{ {pop pop pop pop/Jun101-Light} {SansSerif} ifelse /RoundSansSerif exch def }ifelse /Default Serif def } ifelse end def /Adobe-Korea1 4 dict dup begin /Serif/HYSMyeongJo-Medium def /SansSerif/HYGoThic-Medium def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-GB1 4 dict dup begin /Serif/STSong-Light def /SansSerif/STHeiti-Regular def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-CNS1 4 dict dup begin /Serif/MKai-Medium def /SansSerif/MHei-Medium def /RoundSansSerif SansSerif def /Default Serif def end def end def Level2?{currentglobal true setglobal}if /ct_BoldRomanWidthProc { stringwidth 1 index 0 ne{exch .03 add exch}if setcharwidth 0 0 }bind def /ct_Type0WidthProc { dup stringwidth 0 0 moveto 2 index true charpath pathbbox 0 -1 7 index 2 div .88 setcachedevice2 pop 0 0 }bind def /ct_Type0WMode1WidthProc { dup stringwidth pop 2 div neg -0.88 2 copy moveto 0 -1 5 -1 roll true charpath pathbbox setcachedevice }bind def /cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_BoldBaseFont 11 dict begin /FontType 3 def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /Encoding cHexEncoding def /_setwidthProc/ct_BoldRomanWidthProc load def /_bcstr1 1 string def /BuildChar { exch begin _basefont setfont _bcstr1 dup 0 4 -1 roll put dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def systemdict/composefont known { /ct_DefineIdentity-H { /Identity-H/CMap resourcestatus { pop pop } { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse } def /ct_BoldBaseCIDFont 11 dict begin /CIDFontType 1 def /CIDFontName/ct_BoldBaseCIDFont def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /_setwidthProc/ct_Type0WidthProc load def /_bcstr2 2 string def /BuildGlyph { exch begin _basefont setfont _bcstr2 1 2 index 256 mod put _bcstr2 0 3 -1 roll 256 idiv put _bcstr2 dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def }if Level2?{setglobal}if /ct_CopyFont{ { 1 index/FID ne 2 index/UniqueID ne and {def}{pop pop}ifelse }forall }bind def /ct_Type0CopyFont { exch dup length dict begin ct_CopyFont [ exch FDepVector { dup/FontType get 0 eq { 1 index ct_Type0CopyFont /_ctType0 exch definefont } { /_ctBaseFont exch 2 index exec } ifelse exch } forall pop ] /FDepVector exch def currentdict end }bind def /ct_MakeBoldFont { dup/ct_SyntheticBold known { dup length 3 add dict begin ct_CopyFont /ct_StrokeWidth .03 0 FontMatrix idtransform pop def /ct_SyntheticBold true def currentdict end definefont } { dup dup length 3 add dict begin ct_CopyFont /PaintType 2 def /StrokeWidth .03 0 FontMatrix idtransform pop def /dummybold currentdict end definefont dup/FontType get dup 9 ge exch 11 le and { ct_BoldBaseCIDFont dup length 3 add dict copy begin dup/CIDSystemInfo get/CIDSystemInfo exch def ct_DefineIdentity-H /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefont exch def /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefonto exch def currentdict end /CIDFont defineresource } { ct_BoldBaseFont dup length 3 add dict copy begin /_basefont exch def /_basefonto exch def currentdict end definefont } ifelse } ifelse }bind def /ct_MakeBold{ 1 index 1 index findfont currentglobal 5 1 roll dup gcheck setglobal dup /FontType get 0 eq { dup/WMode known{dup/WMode get 1 eq}{false}ifelse version length 4 ge and {version 0 4 getinterval cvi 2015 ge} {true} ifelse {/ct_Type0WidthProc} {/ct_Type0WMode1WidthProc} ifelse ct_BoldBaseFont/_setwidthProc 3 -1 roll load put {ct_MakeBoldFont}ct_Type0CopyFont definefont } { dup/_fauxfont known not 1 index/SubstMaster known not and { ct_BoldBaseFont/_setwidthProc /ct_BoldRomanWidthProc load put ct_MakeBoldFont } { 2 index 2 index eq {exch pop } { dup length dict begin ct_CopyFont currentdict end definefont } ifelse } ifelse } ifelse pop pop pop setglobal }bind def /?str1 256 string def /?set { $SubstituteFont begin /$substituteFound false def /$fontname 1 index def /$doSmartSub false def end dup findfont $SubstituteFont begin $substituteFound {false} { dup/FontName known { dup/FontName get $fontname eq 1 index/DistillerFauxFont known not and /currentdistillerparams where {pop false 2 index isWidthsOnlyFont not and} if } {false} ifelse } ifelse exch pop /$doSmartSub true def end { 5 1 roll pop pop pop pop findfont } { 1 index findfont dup/FontType get 3 eq { 6 1 roll pop pop pop pop pop false } {pop true} ifelse { $SubstituteFont begin pop pop /$styleArray 1 index def /$regOrdering 2 index def pop pop 0 1 $styleArray length 1 sub { $styleArray exch get ct_StyleDicts $regOrdering 2 copy known { get exch 2 copy known not {pop/Default} if get dup type/nametype eq { ?str1 cvs length dup 1 add exch ?str1 exch(-)putinterval exch dup length exch ?str1 exch 3 index exch putinterval add ?str1 exch 0 exch getinterval cvn } { pop pop/Unknown } ifelse } { pop pop pop pop/Unknown } ifelse } for end findfont }if } ifelse currentglobal false setglobal 3 1 roll null copyfont definefont pop setglobal }bind def setpacking userdict/$SubstituteFont 25 dict put 1 dict begin /SubstituteFont dup $error exch 2 copy known {get} {pop pop{pop/Courier}bind} ifelse def /currentdistillerparams where dup { pop pop currentdistillerparams/CannotEmbedFontPolicy 2 copy known {get/Error eq} {pop pop false} ifelse } if not { countdictstack array dictstack 0 get begin userdict begin $SubstituteFont begin /$str 128 string def /$fontpat 128 string def /$slen 0 def /$sname null def /$match false def /$fontname null def /$substituteFound false def /$inVMIndex null def /$doSmartSub true def /$depth 0 def /$fontname null def /$italicangle 26.5 def /$dstack null def /$Strategies 10 dict dup begin /$Type3Underprint { currentglobal exch false setglobal 11 dict begin /UseFont exch $WMode 0 ne { dup length dict copy dup/WMode $WMode put /UseFont exch definefont } if def /FontName $fontname dup type/stringtype eq{cvn}if def /FontType 3 def /FontMatrix[.001 0 0 .001 0 0]def /Encoding 256 array dup 0 1 255{/.notdef put dup}for pop def /FontBBox[0 0 0 0]def /CCInfo 7 dict dup begin /cc null def /x 0 def /y 0 def end def /BuildChar { exch begin CCInfo begin 1 string dup 0 3 index put exch pop /cc exch def UseFont 1000 scalefont setfont cc stringwidth/y exch def/x exch def x y setcharwidth $SubstituteFont/$Strategy get/$Underprint get exec 0 0 moveto cc show x y moveto end end }bind def currentdict end exch setglobal }bind def /$GetaTint 2 dict dup begin /$BuildFont { dup/WMode known {dup/WMode get} {0} ifelse /$WMode exch def $fontname exch dup/FontName known { dup/FontName get dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse exch Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index/FontName get known { pop Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index get null copyfont } {$deepcopyfont} ifelse exch 1 index exch/FontBasedOn exch put dup/FontName $fontname dup type/stringtype eq{cvn}if put definefont Adobe_CoolType_Data/InVMDeepCopiedFonts get begin dup/FontBasedOn get 1 index def end }bind def /$Underprint { gsave x abs y abs gt {/y 1000 def} {/x -1000 def 500 120 translate} ifelse Level2? { [/Separation(All)/DeviceCMYK{0 0 0 1 pop}] setcolorspace } {0 setgray} ifelse 10 setlinewidth x .8 mul [7 3] { y mul 8 div 120 sub x 10 div exch moveto 0 y 4 div neg rlineto dup 0 rlineto 0 y 4 div rlineto closepath gsave Level2? {.2 setcolor} {.8 setgray} ifelse fill grestore stroke } forall pop grestore }bind def end def /$Oblique 1 dict dup begin /$BuildFont { currentglobal exch dup gcheck setglobal null copyfont begin /FontBasedOn currentdict/FontName known { FontName dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse def /FontName $fontname dup type/stringtype eq{cvn}if def /currentdistillerparams where {pop} { /FontInfo currentdict/FontInfo known {FontInfo null copyfont} {2 dict} ifelse dup begin /ItalicAngle $italicangle def /FontMatrix FontMatrix [1 0 ItalicAngle dup sin exch cos div 1 0 0] matrix concatmatrix readonly end 4 2 roll def def } ifelse FontName currentdict end definefont exch setglobal }bind def end def /$None 1 dict dup begin /$BuildFont{}bind def end def end def /$Oblique SetSubstituteStrategy /$findfontByEnum { dup type/stringtype eq{cvn}if dup/$fontname exch def $sname null eq {$str cvs dup length $slen sub $slen getinterval} {pop $sname} ifelse $fontpat dup 0(fonts/*)putinterval exch 7 exch putinterval /$match false def $SubstituteFont/$dstack countdictstack array dictstack put mark { $fontpat 0 $slen 7 add getinterval {/$match exch def exit} $str filenameforall } stopped { cleardictstack currentdict true $SubstituteFont/$dstack get { exch { 1 index eq {pop false} {true} ifelse } {begin false} ifelse } forall pop } if cleartomark /$slen 0 def $match false ne {$match(fonts/)anchorsearch pop pop cvn} {/Courier} ifelse }bind def /$ROS 1 dict dup begin /Adobe 4 dict dup begin /Japan1 [/Ryumin-Light/HeiseiMin-W3 /GothicBBB-Medium/HeiseiKakuGo-W5 /HeiseiMaruGo-W4/Jun101-Light]def /Korea1 [/HYSMyeongJo-Medium/HYGoThic-Medium]def /GB1 [/STSong-Light/STHeiti-Regular]def /CNS1 [/MKai-Medium/MHei-Medium]def end def end def /$cmapname null def /$deepcopyfont { dup/FontType get 0 eq { 1 dict dup/FontName/copied put copyfont begin /FDepVector FDepVector copyarray 0 1 2 index length 1 sub { 2 copy get $deepcopyfont dup/FontName/copied put /copied exch definefont 3 copy put pop pop } for def currentdict end } {$Strategies/$Type3Underprint get exec} ifelse }bind def /$buildfontname { dup/CIDFont findresource/CIDSystemInfo get begin Registry length Ordering length Supplement 8 string cvs 3 copy length 2 add add add string dup 5 1 roll dup 0 Registry putinterval dup 4 index(-)putinterval dup 4 index 1 add Ordering putinterval 4 2 roll add 1 add 2 copy(-)putinterval end 1 add 2 copy 0 exch getinterval $cmapname $fontpat cvs exch anchorsearch {pop pop 3 2 roll putinterval cvn/$cmapname exch def} {pop pop pop pop pop} ifelse length $str 1 index(-)putinterval 1 add $str 1 index $cmapname $fontpat cvs putinterval $cmapname length add $str exch 0 exch getinterval cvn }bind def /$findfontByROS { /$fontname exch def $ROS Registry 2 copy known { get Ordering 2 copy known {get} {pop pop[]} ifelse } {pop pop[]} ifelse false exch { dup/CIDFont resourcestatus { pop pop save 1 index/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get} {false} ifelse exch pop exch restore {pop} {exch pop true exit} ifelse } {pop} ifelse } forall {$str cvs $buildfontname} { false(*) { save exch dup/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get not} {true} ifelse exch/CIDSystemInfo get dup/Registry get Registry eq exch/Ordering get Ordering eq and and {exch restore exch pop true exit} {pop restore} ifelse } $str/CIDFont resourceforall {$buildfontname} {$fontname $findfontByEnum} ifelse } ifelse }bind def end end currentdict/$error known currentdict/languagelevel known and dup {pop $error/SubstituteFont known} if dup {$error} {Adobe_CoolType_Core} ifelse begin { /SubstituteFont /CMap/Category resourcestatus { pop pop { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and { $sname null eq {dup $str cvs dup length $slen sub $slen getinterval cvn} {$sname} ifelse Adobe_CoolType_Data/InVMFontsByCMap get 1 index 2 copy known { get false exch { pop currentglobal { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } { FontDirectory 1 index known {exch pop true exit} { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } ifelse } ifelse } forall } {pop pop false} ifelse { exch pop exch pop } { dup/CMap resourcestatus { pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS } { 128 string cvs dup(-)search { 3 1 roll search { 3 1 roll pop {dup cvi} stopped {pop pop pop pop pop $findfontByEnum} { 4 2 roll pop pop exch length exch 2 index length 2 index sub exch 1 sub -1 0 { $str cvs dup length 4 index 0 4 index 4 3 roll add getinterval exch 1 index exch 3 index exch putinterval dup/CMap resourcestatus { pop pop 4 1 roll pop pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS true exit } {pop} ifelse } for dup type/booleantype eq {pop} {pop pop pop $findfontByEnum} ifelse } ifelse } {pop pop pop $findfontByEnum} ifelse } {pop pop $findfontByEnum} ifelse } ifelse } ifelse } {//SubstituteFont exec} ifelse /$slen 0 def end } } { { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and {$findfontByEnum} {//SubstituteFont exec} ifelse end } } ifelse bind readonly def Adobe_CoolType_Core/scfindfont/systemfindfont load put } { /scfindfont { $SubstituteFont begin dup systemfindfont dup/FontName known {dup/FontName get dup 3 index ne} {/noname true} ifelse dup { /$origfontnamefound 2 index def /$origfontname 4 index def/$substituteFound true def } if exch pop { $slen 0 gt $sname null ne 3 index length $slen gt or and { pop dup $findfontByEnum findfont dup maxlength 1 add dict begin {1 index/FID eq{pop pop}{def}ifelse} forall currentdict end definefont dup/FontName known{dup/FontName get}{null}ifelse $origfontnamefound ne { $origfontname $str cvs print ( substitution revised, using )print dup/FontName known {dup/FontName get}{(unspecified font)} ifelse $str cvs print(.\n)print } if } {exch pop} ifelse } {exch pop} ifelse end }bind def } ifelse end end Adobe_CoolType_Core_Defined not { Adobe_CoolType_Core/findfont { $SubstituteFont begin $depth 0 eq { /$fontname 1 index dup type/stringtype ne{$str cvs}if def /$substituteFound false def } if /$depth $depth 1 add def end scfindfont $SubstituteFont begin /$depth $depth 1 sub def $substituteFound $depth 0 eq and { $inVMIndex null ne {dup $inVMIndex $AddInVMFont} if $doSmartSub { currentdict/$Strategy known {$Strategy/$BuildFont get exec} if } if } if end }bind put } if } if end /$AddInVMFont { exch/FontName 2 copy known { get 1 dict dup begin exch 1 index gcheck def end exch Adobe_CoolType_Data/InVMFontsByCMap get exch $DictAdd } {pop pop pop} ifelse }bind def /$DictAdd { 2 copy known not {2 copy 4 index length dict put} if Level2? not { 2 copy get dup maxlength exch length 4 index length add lt 2 copy get dup length 4 index length add exch maxlength 1 index lt { 2 mul dict begin 2 copy get{forall}def 2 copy currentdict put end } {pop} ifelse } if get begin {def} forall end }bind def end end %%EndResource currentglobal true setglobal %%BeginResource: procset Adobe_CoolType_Utility_MAKEOCF 1.23 0 %%Copyright: Copyright 1987-2006 Adobe Systems Incorporated. %%Version: 1.23 0 systemdict/languagelevel known dup {currentglobal false setglobal} {false} ifelse exch userdict/Adobe_CoolType_Utility 2 copy known {2 copy get dup maxlength 27 add dict copy} {27 dict} ifelse put Adobe_CoolType_Utility begin /@eexecStartData def /@recognizeCIDFont null def /ct_Level2? exch def /ct_Clone? 1183615869 internaldict dup /CCRun known not exch/eCCRun known not ct_Level2? and or def ct_Level2? {globaldict begin currentglobal true setglobal} if /ct_AddStdCIDMap ct_Level2? {{ mark Adobe_CoolType_Utility/@recognizeCIDFont currentdict put { ((Hex)57 StartData 0615 1e27 2c39 1c60 d8a8 cc31 fe2b f6e0 7aa3 e541 e21c 60d8 a8c9 c3d0 6d9e 1c60 d8a8 c9c2 02d7 9a1c 60d8 a849 1c60 d8a8 cc36 74f4 1144 b13b 77)0()/SubFileDecode filter cvx exec } stopped { cleartomark Adobe_CoolType_Utility/@recognizeCIDFont get countdictstack dup array dictstack exch 1 sub -1 0 { 2 copy get 3 index eq {1 index length exch sub 1 sub{end}repeat exit} {pop} ifelse } for pop pop Adobe_CoolType_Utility/@eexecStartData get eexec } {cleartomark} ifelse }} {{ Adobe_CoolType_Utility/@eexecStartData get eexec }} ifelse bind def userdict/cid_extensions known dup{cid_extensions/cid_UpdateDB known and}if { cid_extensions begin /cid_GetCIDSystemInfo { 1 index type/stringtype eq {exch cvn exch} if cid_extensions begin dup load 2 index known { 2 copy cid_GetStatusInfo dup null ne { 1 index load 3 index get dup null eq {pop pop cid_UpdateDB} { exch 1 index/Created get eq {exch pop exch pop} {pop cid_UpdateDB} ifelse } ifelse } {pop cid_UpdateDB} ifelse } {cid_UpdateDB} ifelse end }bind def end } if ct_Level2? {end setglobal} if /ct_UseNativeCapability? systemdict/composefont known def /ct_MakeOCF 35 dict def /ct_Vars 25 dict def /ct_GlyphDirProcs 6 dict def /ct_BuildCharDict 15 dict dup begin /charcode 2 string def /dst_string 1500 string def /nullstring()def /usewidths? true def end def ct_Level2?{setglobal}{pop}ifelse ct_GlyphDirProcs begin /GetGlyphDirectory { systemdict/languagelevel known {pop/CIDFont findresource/GlyphDirectory get} { 1 index/CIDFont findresource/GlyphDirectory get dup type/dicttype eq { dup dup maxlength exch length sub 2 index lt { dup length 2 index add dict copy 2 index /CIDFont findresource/GlyphDirectory 2 index put } if } if exch pop exch pop } ifelse + }def /+ { systemdict/languagelevel known { currentglobal false setglobal 3 dict begin /vm exch def } {1 dict begin} ifelse /$ exch def systemdict/languagelevel known { vm setglobal /gvm currentglobal def $ gcheck setglobal } if ?{$ begin}if }def /?{$ type/dicttype eq}def /|{ userdict/Adobe_CoolType_Data known { Adobe_CoolType_Data/AddWidths? known { currentdict Adobe_CoolType_Data begin begin AddWidths? { Adobe_CoolType_Data/CC 3 index put ?{def}{$ 3 1 roll put}ifelse CC charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore currentfont/Widths get exch CC exch put } {?{def}{$ 3 1 roll put}ifelse} ifelse end end } {?{def}{$ 3 1 roll put}ifelse} ifelse } {?{def}{$ 3 1 roll put}ifelse} ifelse }def /! { ?{end}if systemdict/languagelevel known {gvm setglobal} if end }def /:{string currentfile exch readstring pop}executeonly def end ct_MakeOCF begin /ct_cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_CID_STR_SIZE 8000 def /ct_mkocfStr100 100 string def /ct_defaultFontMtx[.001 0 0 .001 0 0]def /ct_1000Mtx[1000 0 0 1000 0 0]def /ct_raise{exch cvx exch errordict exch get exec stop}bind def /ct_reraise {cvx $error/errorname get(Error: )print dup( )cvs print errordict exch get exec stop }bind def /ct_cvnsi { 1 index add 1 sub 1 exch 0 4 1 roll { 2 index exch get exch 8 bitshift add } for exch pop }bind def /ct_GetInterval { Adobe_CoolType_Utility/ct_BuildCharDict get begin /dst_index 0 def dup dst_string length gt {dup string/dst_string exch def} if 1 index ct_CID_STR_SIZE idiv /arrayIndex exch def 2 index arrayIndex get 2 index arrayIndex ct_CID_STR_SIZE mul sub { dup 3 index add 2 index length le { 2 index getinterval dst_string dst_index 2 index putinterval length dst_index add/dst_index exch def exit } { 1 index length 1 index sub dup 4 1 roll getinterval dst_string dst_index 2 index putinterval pop dup dst_index add/dst_index exch def sub /arrayIndex arrayIndex 1 add def 2 index dup length arrayIndex gt {arrayIndex get} { pop exit } ifelse 0 } ifelse } loop pop pop pop dst_string 0 dst_index getinterval end }bind def ct_Level2? { /ct_resourcestatus currentglobal mark true setglobal {/unknowninstancename/Category resourcestatus} stopped {cleartomark setglobal true} {cleartomark currentglobal not exch setglobal} ifelse { { mark 3 1 roll/Category findresource begin ct_Vars/vm currentglobal put ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse ct_Vars/vm get setglobal end } } {{resourcestatus}} ifelse bind def /CIDFont/Category ct_resourcestatus {pop pop} { currentglobal true setglobal /Generic/Category findresource dup length dict copy dup/InstanceType/dicttype put /CIDFont exch/Category defineresource pop setglobal } ifelse ct_UseNativeCapability? { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } if } { /ct_Category 2 dict begin /CIDFont 10 dict def /ProcSet 2 dict def currentdict end def /defineresource { ct_Category 1 index 2 copy known { get dup dup maxlength exch length eq { dup length 10 add dict copy ct_Category 2 index 2 index put } if 3 index 3 index put pop exch pop } {pop pop/defineresource/undefined ct_raise} ifelse }bind def /findresource { ct_Category 1 index 2 copy known { get 2 index 2 copy known {get 3 1 roll pop pop} {pop pop/findresource/undefinedresource ct_raise} ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /resourcestatus { ct_Category 1 index 2 copy known { get 2 index known exch pop exch pop { 0 -1 true } { false } ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /ct_resourcestatus/resourcestatus load def } ifelse /ct_CIDInit 2 dict begin /ct_cidfont_stream_init { { dup(Binary)eq { pop null currentfile ct_Level2? { {cid_BYTE_COUNT()/SubFileDecode filter} stopped {pop pop pop} if } if /readstring load exit } if dup(Hex)eq { pop currentfile ct_Level2? { {null exch/ASCIIHexDecode filter/readstring} stopped {pop exch pop(>)exch/readhexstring} if } {(>)exch/readhexstring} ifelse load exit } if /StartData/typecheck ct_raise } loop cid_BYTE_COUNT ct_CID_STR_SIZE le { 2 copy cid_BYTE_COUNT string exch exec pop 1 array dup 3 -1 roll 0 exch put } { cid_BYTE_COUNT ct_CID_STR_SIZE div ceiling cvi dup array exch 2 sub 0 exch 1 exch { 2 copy 5 index ct_CID_STR_SIZE string 6 index exec pop put pop } for 2 index cid_BYTE_COUNT ct_CID_STR_SIZE mod string 3 index exec pop 1 index exch 1 index length 1 sub exch put } ifelse cid_CIDFONT exch/GlyphData exch put 2 index null eq { pop pop pop } { pop/readstring load 1 string exch { 3 copy exec pop dup length 0 eq { pop pop pop pop pop true exit } if 4 index eq { pop pop pop pop false exit } if } loop pop } ifelse }bind def /StartData { mark { currentdict dup/FDArray get 0 get/FontMatrix get 0 get 0.001 eq { dup/CDevProc known not { /CDevProc 1183615869 internaldict/stdCDevProc 2 copy known {get} { pop pop {pop pop pop pop pop 0 -1000 7 index 2 div 880} } ifelse def } if } { /CDevProc { pop pop pop pop pop 0 1 cid_temp/cid_CIDFONT get /FDArray get 0 get /FontMatrix get 0 get div 7 index 2 div 1 index 0.88 mul }def } ifelse /cid_temp 15 dict def cid_temp begin /cid_CIDFONT exch def 3 copy pop dup/cid_BYTE_COUNT exch def 0 gt { ct_cidfont_stream_init FDArray { /Private get dup/SubrMapOffset known { begin /Subrs SubrCount array def Subrs SubrMapOffset SubrCount SDBytes ct_Level2? { currentdict dup/SubrMapOffset undef dup/SubrCount undef /SDBytes undef } if end /cid_SD_BYTES exch def /cid_SUBR_COUNT exch def /cid_SUBR_MAP_OFFSET exch def /cid_SUBRS exch def cid_SUBR_COUNT 0 gt { GlyphData cid_SUBR_MAP_OFFSET cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi 0 1 cid_SUBR_COUNT 1 sub { exch 1 index 1 add cid_SD_BYTES mul cid_SUBR_MAP_OFFSET add GlyphData exch cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi cid_SUBRS 4 2 roll GlyphData exch 4 index 1 index sub ct_GetInterval dup length string copy put } for pop } if } {pop} ifelse } forall } if cleartomark pop pop end CIDFontName currentdict/CIDFont defineresource pop end end } stopped {cleartomark/StartData ct_reraise} if }bind def currentdict end def /ct_saveCIDInit { /CIDInit/ProcSet ct_resourcestatus {true} {/CIDInitC/ProcSet ct_resourcestatus} ifelse { pop pop /CIDInit/ProcSet findresource ct_UseNativeCapability? {pop null} {/CIDInit ct_CIDInit/ProcSet defineresource pop} ifelse } {/CIDInit ct_CIDInit/ProcSet defineresource pop null} ifelse ct_Vars exch/ct_oldCIDInit exch put }bind def /ct_restoreCIDInit { ct_Vars/ct_oldCIDInit get dup null ne {/CIDInit exch/ProcSet defineresource pop} {pop} ifelse }bind def /ct_BuildCharSetUp { 1 index begin CIDFont begin Adobe_CoolType_Utility/ct_BuildCharDict get begin /ct_dfCharCode exch def /ct_dfDict exch def CIDFirstByte ct_dfCharCode add dup CIDCount ge {pop 0} if /cid exch def { GlyphDirectory cid 2 copy known {get} {pop pop nullstring} ifelse dup length FDBytes sub 0 gt { dup FDBytes 0 ne {0 FDBytes ct_cvnsi} {pop 0} ifelse /fdIndex exch def dup length FDBytes sub FDBytes exch getinterval /charstring exch def exit } { pop cid 0 eq {/charstring nullstring def exit} if /cid 0 def } ifelse } loop }def /ct_SetCacheDevice { 0 0 moveto dup stringwidth 3 -1 roll true charpath pathbbox 0 -1000 7 index 2 div 880 setcachedevice2 0 0 moveto }def /ct_CloneSetCacheProc { 1 eq { stringwidth pop -2 div -880 0 -1000 setcharwidth moveto } { usewidths? { currentfont/Widths get cid 2 copy known {get exch pop aload pop} {pop pop stringwidth} ifelse } {stringwidth} ifelse setcharwidth 0 0 moveto } ifelse }def /ct_Type3ShowCharString { ct_FDDict fdIndex 2 copy known {get} { currentglobal 3 1 roll 1 index gcheck setglobal ct_Type1FontTemplate dup maxlength dict copy begin FDArray fdIndex get dup/FontMatrix 2 copy known {get} {pop pop ct_defaultFontMtx} ifelse /FontMatrix exch dup length array copy def /Private get /Private exch def /Widths rootfont/Widths get def /CharStrings 1 dict dup/.notdef dup length string copy put def currentdict end /ct_Type1Font exch definefont dup 5 1 roll put setglobal } ifelse dup/CharStrings get 1 index/Encoding get ct_dfCharCode get charstring put rootfont/WMode 2 copy known {get} {pop pop 0} ifelse exch 1000 scalefont setfont ct_str1 0 ct_dfCharCode put ct_str1 exch ct_dfSetCacheProc ct_SyntheticBold { currentpoint ct_str1 show newpath moveto ct_str1 true charpath ct_StrokeWidth setlinewidth stroke } {ct_str1 show} ifelse }def /ct_Type4ShowCharString { ct_dfDict ct_dfCharCode charstring FDArray fdIndex get dup/FontMatrix get dup ct_defaultFontMtx ct_matrixeq not {ct_1000Mtx matrix concatmatrix concat} {pop} ifelse /Private get Adobe_CoolType_Utility/ct_Level2? get not { ct_dfDict/Private 3 -1 roll {put} 1183615869 internaldict/superexec get exec } if 1183615869 internaldict Adobe_CoolType_Utility/ct_Level2? get {1 index} {3 index/Private get mark 6 1 roll} ifelse dup/RunInt known {/RunInt get} {pop/CCRun} ifelse get exec Adobe_CoolType_Utility/ct_Level2? get not {cleartomark} if }bind def /ct_BuildCharIncremental { { Adobe_CoolType_Utility/ct_MakeOCF get begin ct_BuildCharSetUp ct_ShowCharString } stopped {stop} if end end end end }bind def /BaseFontNameStr(BF00)def /ct_Type1FontTemplate 14 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /PaintType 0 def currentdict end def /BaseFontTemplate 11 dict begin /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /BuildChar/ct_BuildCharIncremental load def ct_Clone? { /FontType 3 def /ct_ShowCharString/ct_Type3ShowCharString load def /ct_dfSetCacheProc/ct_CloneSetCacheProc load def /ct_SyntheticBold false def /ct_StrokeWidth 1 def } { /FontType 4 def /Private 1 dict dup/lenIV 4 put def /CharStrings 1 dict dup/.notdefput def /PaintType 0 def /ct_ShowCharString/ct_Type4ShowCharString load def } ifelse /ct_str1 1 string def currentdict end def /BaseFontDictSize BaseFontTemplate length 5 add def /ct_matrixeq { true 0 1 5 { dup 4 index exch get exch 3 index exch get eq and dup not {exit} if } for exch pop exch pop }bind def /ct_makeocf { 15 dict begin exch/WMode exch def exch/FontName exch def /FontType 0 def /FMapType 2 def dup/FontMatrix known {dup/FontMatrix get/FontMatrix exch def} {/FontMatrix matrix def} ifelse /bfCount 1 index/CIDCount get 256 idiv 1 add dup 256 gt{pop 256}if def /Encoding 256 array 0 1 bfCount 1 sub{2 copy dup put pop}for bfCount 1 255{2 copy bfCount put pop}for def /FDepVector bfCount dup 256 lt{1 add}if array def BaseFontTemplate BaseFontDictSize dict copy begin /CIDFont exch def CIDFont/FontBBox known {CIDFont/FontBBox get/FontBBox exch def} if CIDFont/CDevProc known {CIDFont/CDevProc get/CDevProc exch def} if currentdict end BaseFontNameStr 3(0)putinterval 0 1 bfCount dup 256 eq{1 sub}if { FDepVector exch 2 index BaseFontDictSize dict copy begin dup/CIDFirstByte exch 256 mul def FontType 3 eq {/ct_FDDict 2 dict def} if currentdict end 1 index 16 BaseFontNameStr 2 2 getinterval cvrs pop BaseFontNameStr exch definefont put } for ct_Clone? {/Widths 1 index/CIDFont get/GlyphDirectory get length dict def} if FontName currentdict end definefont ct_Clone? { gsave dup 1000 scalefont setfont ct_BuildCharDict begin /usewidths? false def currentfont/Widths get begin exch/CIDFont get/GlyphDirectory get { pop dup charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore def } forall end /usewidths? true def end grestore } {exch pop} ifelse }bind def currentglobal true setglobal /ct_ComposeFont { ct_UseNativeCapability? { 2 index/CMap ct_resourcestatus {pop pop exch pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 3 index def /CMapVersion 1.000 def /CMapType 1 def exch/WMode exch def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search { dup length string copy exch pop exch pop } {pop(Identity)} ifelse } {pop (Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { 3 2 roll pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def setglobal /ct_MakeIdentity { ct_UseNativeCapability? { 1 index/CMap ct_resourcestatus {pop pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 2 index def /CMapVersion 1.000 def /CMapType 1 def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search {dup length string copy exch pop exch pop} {pop(Identity)} ifelse } {pop(Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { exch pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def currentdict readonly pop end end %%EndResource setglobal %%BeginResource: procset Adobe_CoolType_Utility_T42 1.0 0 %%Copyright: Copyright 1987-2004 Adobe Systems Incorporated. %%Version: 1.0 0 userdict/ct_T42Dict 15 dict put ct_T42Dict begin /Is2015? { version cvi 2015 ge }bind def /AllocGlyphStorage { Is2015? { pop } { {string}forall }ifelse }bind def /Type42DictBegin { 25 dict begin /FontName exch def /CharStrings 256 dict begin /.notdef 0 def currentdict end def /Encoding exch def /PaintType 0 def /FontType 42 def /FontMatrix[1 0 0 1 0 0]def 4 array astore cvx/FontBBox exch def /sfnts }bind def /Type42DictEnd { currentdict dup/FontName get exch definefont end ct_T42Dict exch dup/FontName get exch put }bind def /RD{string currentfile exch readstring pop}executeonly def /PrepFor2015 { Is2015? { /GlyphDirectory 16 dict def sfnts 0 get dup 2 index (glyx) putinterval 2 index (locx) putinterval pop pop } { pop pop }ifelse }bind def /AddT42Char { Is2015? { /GlyphDirectory get begin def end pop pop } { /sfnts get 4 index get 3 index 2 index putinterval pop pop pop pop }ifelse }bind def /T0AddT42Mtx2 { /CIDFont findresource/Metrics2 get begin def end }bind def end %%EndResource currentglobal true setglobal %%BeginFile: MMFauxFont.prc %%Copyright: Copyright 1987-2001 Adobe Systems Incorporated. %%All Rights Reserved. userdict /ct_EuroDict 10 dict put ct_EuroDict begin /ct_CopyFont { { 1 index /FID ne {def} {pop pop} ifelse} forall } def /ct_GetGlyphOutline { gsave initmatrix newpath exch findfont dup length 1 add dict begin ct_CopyFont /Encoding Encoding dup length array copy dup 4 -1 roll 0 exch put def currentdict end /ct_EuroFont exch definefont 1000 scalefont setfont 0 0 moveto [ <00> stringwidth <00> false charpath pathbbox [ {/m cvx} {/l cvx} {/c cvx} {/cp cvx} pathforall grestore counttomark 8 add } def /ct_MakeGlyphProc { ] cvx /ct_PSBuildGlyph cvx ] cvx } def /ct_PSBuildGlyph { gsave 8 -1 roll pop 7 1 roll 6 -2 roll ct_FontMatrix transform 6 2 roll 4 -2 roll ct_FontMatrix transform 4 2 roll ct_FontMatrix transform currentdict /PaintType 2 copy known {get 2 eq}{pop pop false} ifelse dup 9 1 roll { currentdict /StrokeWidth 2 copy known { get 2 div 0 ct_FontMatrix dtransform pop 5 1 roll 4 -1 roll 4 index sub 4 1 roll 3 -1 roll 4 index sub 3 1 roll exch 4 index add exch 4 index add 5 -1 roll pop } { pop pop } ifelse } if setcachedevice ct_FontMatrix concat ct_PSPathOps begin exec end { currentdict /StrokeWidth 2 copy known { get } { pop pop 0 } ifelse setlinewidth stroke } { fill } ifelse grestore } def /ct_PSPathOps 4 dict dup begin /m {moveto} def /l {lineto} def /c {curveto} def /cp {closepath} def end def /ct_matrix1000 [1000 0 0 1000 0 0] def /ct_AddGlyphProc { 2 index findfont dup length 4 add dict begin ct_CopyFont /CharStrings CharStrings dup length 1 add dict copy begin 3 1 roll def currentdict end def /ct_FontMatrix ct_matrix1000 FontMatrix matrix concatmatrix def /ct_PSBuildGlyph /ct_PSBuildGlyph load def /ct_PSPathOps /ct_PSPathOps load def currentdict end definefont pop } def systemdict /languagelevel known { /ct_AddGlyphToPrinterFont { 2 copy ct_GetGlyphOutline 3 add -1 roll restore ct_MakeGlyphProc ct_AddGlyphProc } def } { /ct_AddGlyphToPrinterFont { pop pop restore Adobe_CTFauxDict /$$$FONTNAME get /Euro Adobe_CTFauxDict /$$$SUBSTITUTEBASE get ct_EuroDict exch get ct_AddGlyphProc } def } ifelse /AdobeSansMM { 556 0 24 -19 541 703 { 541 628 m 510 669 442 703 354 703 c 201 703 117 607 101 444 c 50 444 l 25 372 l 97 372 l 97 301 l 49 301 l 24 229 l 103 229 l 124 67 209 -19 350 -19 c 435 -19 501 25 509 32 c 509 131 l 492 105 417 60 343 60 c 267 60 204 127 197 229 c 406 229 l 430 301 l 191 301 l 191 372 l 455 372 l 479 444 l 194 444 l 201 531 245 624 348 624 c 433 624 484 583 509 534 c cp 556 0 m } ct_PSBuildGlyph } def /AdobeSerifMM { 500 0 10 -12 484 692 { 347 298 m 171 298 l 170 310 170 322 170 335 c 170 362 l 362 362 l 374 403 l 172 403 l 184 580 244 642 308 642 c 380 642 434 574 457 457 c 481 462 l 474 691 l 449 691 l 433 670 429 657 410 657 c 394 657 360 692 299 692 c 204 692 94 604 73 403 c 22 403 l 10 362 l 70 362 l 69 352 69 341 69 330 c 69 319 69 308 70 298 c 22 298 l 10 257 l 73 257 l 97 57 216 -12 295 -12 c 364 -12 427 25 484 123 c 458 142 l 425 101 384 37 316 37 c 256 37 189 84 173 257 c 335 257 l cp 500 0 m } ct_PSBuildGlyph } def end %%EndFile setglobal Adobe_CoolType_Core begin /$Oblique SetSubstituteStrategy end %%BeginResource: procset Adobe_AGM_Image 1.0 0 +%%Version: 1.0 0 +%%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved. +systemdict/setpacking known +{ + currentpacking + true setpacking +}if +userdict/Adobe_AGM_Image 71 dict dup begin put +/Adobe_AGM_Image_Id/Adobe_AGM_Image_1.0_0 def +/nd{ + null def +}bind def +/AGMIMG_&image nd +/AGMIMG_&colorimage nd +/AGMIMG_&imagemask nd +/AGMIMG_mbuf()def +/AGMIMG_ybuf()def +/AGMIMG_kbuf()def +/AGMIMG_c 0 def +/AGMIMG_m 0 def +/AGMIMG_y 0 def +/AGMIMG_k 0 def +/AGMIMG_tmp nd +/AGMIMG_imagestring0 nd +/AGMIMG_imagestring1 nd +/AGMIMG_imagestring2 nd +/AGMIMG_imagestring3 nd +/AGMIMG_imagestring4 nd +/AGMIMG_imagestring5 nd +/AGMIMG_cnt nd +/AGMIMG_fsave nd +/AGMIMG_colorAry nd +/AGMIMG_override nd +/AGMIMG_name nd +/AGMIMG_maskSource nd +/AGMIMG_flushfilters nd +/invert_image_samples nd +/knockout_image_samples nd +/img nd +/sepimg nd +/devnimg nd +/idximg nd +/ds +{ + Adobe_AGM_Core begin + Adobe_AGM_Image begin + /AGMIMG_&image systemdict/image get def + /AGMIMG_&imagemask systemdict/imagemask get def + /colorimage where{ + pop + /AGMIMG_&colorimage/colorimage ldf + }if + end + end +}def +/ps +{ + Adobe_AGM_Image begin + /AGMIMG_ccimage_exists{/customcolorimage where + { + pop + /Adobe_AGM_OnHost_Seps where + { + pop false + }{ + /Adobe_AGM_InRip_Seps where + { + pop false + }{ + true + }ifelse + }ifelse + }{ + false + }ifelse + }bdf + level2{ + /invert_image_samples + { + Adobe_AGM_Image/AGMIMG_tmp Decode length ddf + /Decode[Decode 1 get Decode 0 get]def + }def + /knockout_image_samples + { + Operator/imagemask ne{ + /Decode[1 1]def + }if + }def + }{ + /invert_image_samples + { + {1 exch sub}currenttransfer addprocs settransfer + }def + /knockout_image_samples + { + {pop 1}currenttransfer addprocs settransfer + }def + }ifelse + /img/imageormask ldf + /sepimg/sep_imageormask ldf + /devnimg/devn_imageormask ldf + /idximg/indexed_imageormask ldf + /_ctype 7 def + currentdict{ + dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ + bind + }if + def + }forall +}def +/pt +{ + end +}def +/dt +{ +}def +/AGMIMG_flushfilters +{ + dup type/arraytype ne + {1 array astore}if + dup 0 get currentfile ne + {dup 0 get flushfile}if + { + dup type/filetype eq + { + dup status 1 index currentfile ne and + {closefile} + {pop} + ifelse + }{pop}ifelse + }forall +}def +/AGMIMG_init_common +{ + currentdict/T known{/ImageType/T ldf currentdict/T undef}if + currentdict/W known{/Width/W ldf currentdict/W undef}if + currentdict/H known{/Height/H ldf currentdict/H undef}if + currentdict/M known{/ImageMatrix/M ldf currentdict/M undef}if + currentdict/BC known{/BitsPerComponent/BC ldf currentdict/BC undef}if + currentdict/D known{/Decode/D ldf currentdict/D undef}if + currentdict/DS known{/DataSource/DS ldf currentdict/DS undef}if + currentdict/O known{ + /Operator/O load 1 eq{ + /imagemask + }{ + /O load 2 eq{ + /image + }{ + /colorimage + }ifelse + }ifelse + def + currentdict/O undef + }if + currentdict/HSCI known{/HostSepColorImage/HSCI ldf currentdict/HSCI undef}if + currentdict/MD known{/MultipleDataSources/MD ldf currentdict/MD undef}if + currentdict/I known{/Interpolate/I ldf currentdict/I undef}if + currentdict/SI known{/SkipImageProc/SI ldf currentdict/SI undef}if + /DataSource load xcheck not{ + DataSource type/arraytype eq{ + DataSource 0 get type/filetype eq{ + /_Filters DataSource def + currentdict/MultipleDataSources known not{ + /DataSource DataSource dup length 1 sub get def + }if + }if + }if + currentdict/MultipleDataSources known not{ + /MultipleDataSources DataSource type/arraytype eq{ + DataSource length 1 gt + } + {false}ifelse def + }if + }if + /NComponents Decode length 2 div def + currentdict/SkipImageProc known not{/SkipImageProc{false}def}if +}bdf +/imageormask_sys +{ + begin + AGMIMG_init_common + save mark + level2{ + currentdict + Operator/imagemask eq{ + AGMIMG_&imagemask + }{ + use_mask{ + process_mask AGMIMG_&image + }{ + AGMIMG_&image + }ifelse + }ifelse + }{ + Width Height + Operator/imagemask eq{ + Decode 0 get 1 eq Decode 1 get 0 eq and + ImageMatrix/DataSource load + AGMIMG_&imagemask + }{ + BitsPerComponent ImageMatrix/DataSource load + AGMIMG_&image + }ifelse + }ifelse + currentdict/_Filters known{_Filters AGMIMG_flushfilters}if + cleartomark restore + end +}def +/overprint_plate +{ + currentoverprint{ + 0 get dup type/nametype eq{ + dup/DeviceGray eq{ + pop AGMCORE_black_plate not + }{ + /DeviceCMYK eq{ + AGMCORE_is_cmyk_sep not + }if + }ifelse + }{ + false exch + { + AGMOHS_sepink eq or + }forall + not + }ifelse + }{ + pop false + }ifelse +}def +/process_mask +{ + level3{ + dup begin + /ImageType 1 def + end + 4 dict begin + /DataDict exch def + /ImageType 3 def + /InterleaveType 3 def + /MaskDict 9 dict begin + /ImageType 1 def + /Width DataDict dup/MaskWidth known{/MaskWidth}{/Width}ifelse get def + /Height DataDict dup/MaskHeight known{/MaskHeight}{/Height}ifelse get def + /ImageMatrix[Width 0 0 Height neg 0 Height]def + /NComponents 1 def + /BitsPerComponent 1 def + /Decode DataDict dup/MaskD known{/MaskD}{[1 0]}ifelse get def + /DataSource Adobe_AGM_Core/AGMIMG_maskSource get def + currentdict end def + currentdict end + }if +}def +/use_mask +{ + dup/Mask known {dup/Mask get}{false}ifelse +}def +/imageormask +{ + begin + AGMIMG_init_common + SkipImageProc{ + currentdict consumeimagedata + } + { + save mark + level2 AGMCORE_host_sep not and{ + currentdict + Operator/imagemask eq DeviceN_PS2 not and{ + imagemask + }{ + AGMCORE_in_rip_sep currentoverprint and currentcolorspace 0 get/DeviceGray eq and{ + [/Separation/Black/DeviceGray{}]setcolorspace + /Decode[Decode 1 get Decode 0 get]def + }if + use_mask{ + process_mask image + }{ + DeviceN_NoneName DeviceN_PS2 Indexed_DeviceN level3 not and or or AGMCORE_in_rip_sep and + { + Names convert_to_process not{ + 2 dict begin + /imageDict xdf + /names_index 0 def + gsave + imageDict write_image_file{ + Names{ + dup(None)ne{ + [/Separation 3 -1 roll/DeviceGray{1 exch sub}]setcolorspace + Operator imageDict read_image_file + names_index 0 eq{true setoverprint}if + /names_index names_index 1 add def + }{ + pop + }ifelse + }forall + close_image_file + }if + grestore + end + }{ + Operator/imagemask eq{ + imagemask + }{ + image + }ifelse + }ifelse + }{ + Operator/imagemask eq{ + imagemask + }{ + image + }ifelse + }ifelse + }ifelse + }ifelse + }{ + Width Height + Operator/imagemask eq{ + Decode 0 get 1 eq Decode 1 get 0 eq and + ImageMatrix/DataSource load + /Adobe_AGM_OnHost_Seps where{ + pop imagemask + }{ + currentgray 1 ne{ + currentdict imageormask_sys + }{ + currentoverprint not{ + 1 AGMCORE_&setgray + currentdict imageormask_sys + }{ + currentdict ignoreimagedata + }ifelse + }ifelse + }ifelse + }{ + BitsPerComponent ImageMatrix + MultipleDataSources{ + 0 1 NComponents 1 sub{ + DataSource exch get + }for + }{ + /DataSource load + }ifelse + Operator/colorimage eq{ + AGMCORE_host_sep{ + MultipleDataSources level2 or NComponents 4 eq and{ + AGMCORE_is_cmyk_sep{ + MultipleDataSources{ + /DataSource DataSource 0 get xcheck + { + [ + DataSource 0 get/exec cvx + DataSource 1 get/exec cvx + DataSource 2 get/exec cvx + DataSource 3 get/exec cvx + /AGMCORE_get_ink_data cvx + ]cvx + }{ + DataSource aload pop AGMCORE_get_ink_data + }ifelse def + }{ + /DataSource + Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul + /DataSource load + filter_cmyk 0()/SubFileDecode filter def + }ifelse + /Decode[Decode 0 get Decode 1 get]def + /MultipleDataSources false def + /NComponents 1 def + /Operator/image def + invert_image_samples + 1 AGMCORE_&setgray + currentdict imageormask_sys + }{ + currentoverprint not Operator/imagemask eq and{ + 1 AGMCORE_&setgray + currentdict imageormask_sys + }{ + currentdict ignoreimagedata + }ifelse + }ifelse + }{ + MultipleDataSources NComponents AGMIMG_&colorimage + }ifelse + }{ + true NComponents colorimage + }ifelse + }{ + Operator/image eq{ + AGMCORE_host_sep{ + /DoImage true def + currentdict/HostSepColorImage known{HostSepColorImage not}{false}ifelse + { + AGMCORE_black_plate not Operator/imagemask ne and{ + /DoImage false def + currentdict ignoreimagedata + }if + }if + 1 AGMCORE_&setgray + DoImage + {currentdict imageormask_sys}if + }{ + use_mask{ + process_mask image + }{ + image + }ifelse + }ifelse + }{ + Operator/knockout eq{ + pop pop pop pop pop + currentcolorspace overprint_plate not{ + knockout_unitsq + }if + }if + }ifelse + }ifelse + }ifelse + }ifelse + cleartomark restore + }ifelse + currentdict/_Filters known{_Filters AGMIMG_flushfilters}if + end +}def +/sep_imageormask +{ + /sep_colorspace_dict AGMCORE_gget begin + CSA map_csa + begin + AGMIMG_init_common + SkipImageProc{ + currentdict consumeimagedata + }{ + save mark + AGMCORE_avoid_L2_sep_space{ + /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def + }if + AGMIMG_ccimage_exists + MappedCSA 0 get/DeviceCMYK eq and + currentdict/Components known and + Name()ne and + Name(All)ne and + Operator/image eq and + AGMCORE_producing_seps not and + level2 not and + { + Width Height BitsPerComponent ImageMatrix + [ + /DataSource load/exec cvx + { + 0 1 2 index length 1 sub{ + 1 index exch + 2 copy get 255 xor put + }for + }/exec cvx + ]cvx bind + MappedCSA 0 get/DeviceCMYK eq{ + Components aload pop + }{ + 0 0 0 Components aload pop 1 exch sub + }ifelse + Name findcmykcustomcolor + customcolorimage + }{ + AGMCORE_producing_seps not{ + level2{ + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne AGMCORE_avoid_L2_sep_space not and currentcolorspace 0 get/Separation ne and{ + [/Separation Name MappedCSA sep_proc_name exch dup 0 get 15 string cvs(/Device)anchorsearch{pop pop 0 get}{pop}ifelse exch load]setcolorspace_opt + /sep_tint AGMCORE_gget setcolor + }if + currentdict imageormask + }{ + currentdict + Operator/imagemask eq{ + imageormask + }{ + sep_imageormask_lev1 + }ifelse + }ifelse + }{ + AGMCORE_host_sep{ + Operator/knockout eq{ + currentdict/ImageMatrix get concat + knockout_unitsq + }{ + currentgray 1 ne{ + AGMCORE_is_cmyk_sep Name(All)ne and{ + level2{ + Name AGMCORE_IsSeparationAProcessColor + { + Operator/imagemask eq{ + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ + /sep_tint AGMCORE_gget 1 exch sub AGMCORE_&setcolor + }if + }{ + invert_image_samples + }ifelse + }{ + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ + [/Separation Name[/DeviceGray] + { + sep_colorspace_proc AGMCORE_get_ink_data + 1 exch sub + }bind + ]AGMCORE_&setcolorspace + /sep_tint AGMCORE_gget AGMCORE_&setcolor + }if + }ifelse + currentdict imageormask_sys + }{ + currentdict + Operator/imagemask eq{ + imageormask_sys + }{ + sep_image_lev1_sep + }ifelse + }ifelse + }{ + Operator/imagemask ne{ + invert_image_samples + }if + currentdict imageormask_sys + }ifelse + }{ + currentoverprint not Name(All)eq or Operator/imagemask eq and{ + currentdict imageormask_sys + }{ + currentoverprint not + { + gsave + knockout_unitsq + grestore + }if + currentdict consumeimagedata + }ifelse + }ifelse + }ifelse + }{ + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ + currentcolorspace 0 get/Separation ne{ + [/Separation Name MappedCSA sep_proc_name exch 0 get exch load]setcolorspace_opt + /sep_tint AGMCORE_gget setcolor + }if + }if + currentoverprint + MappedCSA 0 get/DeviceCMYK eq and + Name AGMCORE_IsSeparationAProcessColor not and + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{Name inRip_spot_has_ink not and}{false}ifelse + Name(All)ne and{ + imageormask_l2_overprint + }{ + currentdict imageormask + }ifelse + }ifelse + }ifelse + }ifelse + cleartomark restore + }ifelse + currentdict/_Filters known{_Filters AGMIMG_flushfilters}if + end + end +}def +/colorSpaceElemCnt +{ + mark currentcolor counttomark dup 2 add 1 roll cleartomark +}bdf +/devn_sep_datasource +{ + 1 dict begin + /dataSource xdf + [ + 0 1 dataSource length 1 sub{ + dup currentdict/dataSource get/exch cvx/get cvx/exec cvx + /exch cvx names_index/ne cvx[/pop cvx]cvx/if cvx + }for + ]cvx bind + end +}bdf +/devn_alt_datasource +{ + 11 dict begin + /convProc xdf + /origcolorSpaceElemCnt xdf + /origMultipleDataSources xdf + /origBitsPerComponent xdf + /origDecode xdf + /origDataSource xdf + /dsCnt origMultipleDataSources{origDataSource length}{1}ifelse def + /DataSource origMultipleDataSources + { + [ + BitsPerComponent 8 idiv origDecode length 2 idiv mul string + 0 1 origDecode length 2 idiv 1 sub + { + dup 7 mul 1 add index exch dup BitsPerComponent 8 idiv mul exch + origDataSource exch get 0()/SubFileDecode filter + BitsPerComponent 8 idiv string/readstring cvx/pop cvx/putinterval cvx + }for + ]bind cvx + }{origDataSource}ifelse 0()/SubFileDecode filter def + [ + origcolorSpaceElemCnt string + 0 2 origDecode length 2 sub + { + dup origDecode exch get dup 3 -1 roll 1 add origDecode exch get exch sub 2 BitsPerComponent exp 1 sub div + 1 BitsPerComponent 8 idiv{DataSource/read cvx/not cvx{0}/if cvx/mul cvx}repeat/mul cvx/add cvx + }for + /convProc load/exec cvx + origcolorSpaceElemCnt 1 sub -1 0 + { + /dup cvx 2/add cvx/index cvx + 3 1/roll cvx/exch cvx 255/mul cvx/cvi cvx/put cvx + }for + ]bind cvx 0()/SubFileDecode filter + end +}bdf +/devn_imageormask +{ + /devicen_colorspace_dict AGMCORE_gget begin + CSA map_csa + 2 dict begin + dup + /srcDataStrs[3 -1 roll begin + AGMIMG_init_common + currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse + { + Width Decode length 2 div mul cvi + { + dup 65535 gt{1 add 2 div cvi}{exit}ifelse + }loop + string + }repeat + end]def + /dstDataStr srcDataStrs 0 get length string def + begin + AGMIMG_init_common + SkipImageProc{ + currentdict consumeimagedata + }{ + save mark + AGMCORE_producing_seps not{ + level3 not{ + Operator/imagemask ne{ + /DataSource[[ + DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse + colorSpaceElemCnt/devicen_colorspace_dict AGMCORE_gget/TintTransform get + devn_alt_datasource 1/string cvx/readstring cvx/pop cvx]cvx colorSpaceElemCnt 1 sub{dup}repeat]def + /MultipleDataSources true def + /Decode colorSpaceElemCnt[exch{0 1}repeat]def + }if + }if + currentdict imageormask + }{ + AGMCORE_host_sep{ + Names convert_to_process{ + CSA get_csa_by_name 0 get/DeviceCMYK eq{ + /DataSource + Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul + DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse + 4/devicen_colorspace_dict AGMCORE_gget/TintTransform get + devn_alt_datasource + filter_cmyk 0()/SubFileDecode filter def + /MultipleDataSources false def + /Decode[1 0]def + /DeviceGray setcolorspace + currentdict imageormask_sys + }{ + AGMCORE_report_unsupported_color_space + AGMCORE_black_plate{ + /DataSource + DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse + CSA get_csa_by_name 0 get/DeviceRGB eq{3}{1}ifelse/devicen_colorspace_dict AGMCORE_gget/TintTransform get + devn_alt_datasource + /MultipleDataSources false def + /Decode colorSpaceElemCnt[exch{0 1}repeat]def + currentdict imageormask_sys + }{ + gsave + knockout_unitsq + grestore + currentdict consumeimagedata + }ifelse + }ifelse + } + { + /devicen_colorspace_dict AGMCORE_gget/names_index known{ + Operator/imagemask ne{ + MultipleDataSources{ + /DataSource[DataSource devn_sep_datasource/exec cvx]cvx def + /MultipleDataSources false def + }{ + /DataSource/DataSource load dstDataStr srcDataStrs 0 get filter_devn def + }ifelse + invert_image_samples + }if + currentdict imageormask_sys + }{ + currentoverprint not Operator/imagemask eq and{ + currentdict imageormask_sys + }{ + currentoverprint not + { + gsave + knockout_unitsq + grestore + }if + currentdict consumeimagedata + }ifelse + }ifelse + }ifelse + }{ + currentdict imageormask + }ifelse + }ifelse + cleartomark restore + }ifelse + currentdict/_Filters known{_Filters AGMIMG_flushfilters}if + end + end + end +}def +/imageormask_l2_overprint +{ + currentdict + currentcmykcolor add add add 0 eq{ + currentdict consumeimagedata + }{ + level3{ + currentcmykcolor + /AGMIMG_k xdf + /AGMIMG_y xdf + /AGMIMG_m xdf + /AGMIMG_c xdf + Operator/imagemask eq{ + [/DeviceN[ + AGMIMG_c 0 ne{/Cyan}if + AGMIMG_m 0 ne{/Magenta}if + AGMIMG_y 0 ne{/Yellow}if + AGMIMG_k 0 ne{/Black}if + ]/DeviceCMYK{}]setcolorspace + AGMIMG_c 0 ne{AGMIMG_c}if + AGMIMG_m 0 ne{AGMIMG_m}if + AGMIMG_y 0 ne{AGMIMG_y}if + AGMIMG_k 0 ne{AGMIMG_k}if + setcolor + }{ + /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def + [/Indexed + [ + /DeviceN[ + AGMIMG_c 0 ne{/Cyan}if + AGMIMG_m 0 ne{/Magenta}if + AGMIMG_y 0 ne{/Yellow}if + AGMIMG_k 0 ne{/Black}if + ] + /DeviceCMYK{ + AGMIMG_k 0 eq{0}if + AGMIMG_y 0 eq{0 exch}if + AGMIMG_m 0 eq{0 3 1 roll}if + AGMIMG_c 0 eq{0 4 1 roll}if + } + ] + 255 + { + 255 div + mark exch + dup dup dup + AGMIMG_k 0 ne{ + /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 1 roll pop pop pop + counttomark 1 roll + }{ + pop + }ifelse + AGMIMG_y 0 ne{ + /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 2 roll pop pop pop + counttomark 1 roll + }{ + pop + }ifelse + AGMIMG_m 0 ne{ + /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 3 roll pop pop pop + counttomark 1 roll + }{ + pop + }ifelse + AGMIMG_c 0 ne{ + /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec pop pop pop + counttomark 1 roll + }{ + pop + }ifelse + counttomark 1 add -1 roll pop + } + ]setcolorspace + }ifelse + imageormask_sys + }{ + write_image_file{ + currentcmykcolor + 0 ne{ + [/Separation/Black/DeviceGray{}]setcolorspace + gsave + /Black + [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 1 roll pop pop pop 1 exch sub}/exec cvx] + cvx modify_halftone_xfer + Operator currentdict read_image_file + grestore + }if + 0 ne{ + [/Separation/Yellow/DeviceGray{}]setcolorspace + gsave + /Yellow + [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 2 roll pop pop pop 1 exch sub}/exec cvx] + cvx modify_halftone_xfer + Operator currentdict read_image_file + grestore + }if + 0 ne{ + [/Separation/Magenta/DeviceGray{}]setcolorspace + gsave + /Magenta + [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 3 roll pop pop pop 1 exch sub}/exec cvx] + cvx modify_halftone_xfer + Operator currentdict read_image_file + grestore + }if + 0 ne{ + [/Separation/Cyan/DeviceGray{}]setcolorspace + gsave + /Cyan + [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{pop pop pop 1 exch sub}/exec cvx] + cvx modify_halftone_xfer + Operator currentdict read_image_file + grestore + }if + close_image_file + }{ + imageormask + }ifelse + }ifelse + }ifelse +}def +/indexed_imageormask +{ + begin + AGMIMG_init_common + save mark + currentdict + AGMCORE_host_sep{ + Operator/knockout eq{ + /indexed_colorspace_dict AGMCORE_gget dup/CSA known{ + /CSA get get_csa_by_name + }{ + /Names get + }ifelse + overprint_plate not{ + knockout_unitsq + }if + }{ + Indexed_DeviceN{ + /devicen_colorspace_dict AGMCORE_gget dup/names_index known exch/Names get convert_to_process or{ + indexed_image_lev2_sep + }{ + currentoverprint not{ + knockout_unitsq + }if + currentdict consumeimagedata + }ifelse + }{ + AGMCORE_is_cmyk_sep{ + Operator/imagemask eq{ + imageormask_sys + }{ + level2{ + indexed_image_lev2_sep + }{ + indexed_image_lev1_sep + }ifelse + }ifelse + }{ + currentoverprint not{ + knockout_unitsq + }if + currentdict consumeimagedata + }ifelse + }ifelse + }ifelse + }{ + level2{ + Indexed_DeviceN{ + /indexed_colorspace_dict AGMCORE_gget begin + }{ + /indexed_colorspace_dict AGMCORE_gget dup null ne + { + begin + currentdict/CSDBase known{CSDBase/CSD get_res/MappedCSA get}{CSA}ifelse + get_csa_by_name 0 get/DeviceCMYK eq ps_level 3 ge and ps_version 3015.007 lt and + AGMCORE_in_rip_sep and{ + [/Indexed[/DeviceN[/Cyan/Magenta/Yellow/Black]/DeviceCMYK{}]HiVal Lookup] + setcolorspace + }if + end + } + {pop}ifelse + }ifelse + imageormask + Indexed_DeviceN{ + end + }if + }{ + Operator/imagemask eq{ + imageormask + }{ + indexed_imageormask_lev1 + }ifelse + }ifelse + }ifelse + cleartomark restore + currentdict/_Filters known{_Filters AGMIMG_flushfilters}if + end +}def +/indexed_image_lev2_sep +{ + /indexed_colorspace_dict AGMCORE_gget begin + begin + Indexed_DeviceN not{ + currentcolorspace + dup 1/DeviceGray put + dup 3 + currentcolorspace 2 get 1 add string + 0 1 2 3 AGMCORE_get_ink_data 4 currentcolorspace 3 get length 1 sub + { + dup 4 idiv exch currentcolorspace 3 get exch get 255 exch sub 2 index 3 1 roll put + }for + put setcolorspace + }if + currentdict + Operator/imagemask eq{ + AGMIMG_&imagemask + }{ + use_mask{ + process_mask AGMIMG_&image + }{ + AGMIMG_&image + }ifelse + }ifelse + end end +}def + /OPIimage + { + dup type/dicttype ne{ + 10 dict begin + /DataSource xdf + /ImageMatrix xdf + /BitsPerComponent xdf + /Height xdf + /Width xdf + /ImageType 1 def + /Decode[0 1 def] + currentdict + end + }if + dup begin + /NComponents 1 cdndf + /MultipleDataSources false cdndf + /SkipImageProc{false}cdndf + /Decode[ + 0 + currentcolorspace 0 get/Indexed eq{ + 2 BitsPerComponent exp 1 sub + }{ + 1 + }ifelse + ]cdndf + /Operator/image cdndf + end + /sep_colorspace_dict AGMCORE_gget null eq{ + imageormask + }{ + gsave + dup begin invert_image_samples end + sep_imageormask + grestore + }ifelse + }def +/cachemask_level2 +{ + 3 dict begin + /LZWEncode filter/WriteFilter xdf + /readBuffer 256 string def + /ReadFilter + currentfile + 0(%EndMask)/SubFileDecode filter + /ASCII85Decode filter + /RunLengthDecode filter + def + { + ReadFilter readBuffer readstring exch + WriteFilter exch writestring + not{exit}if + }loop + WriteFilter closefile + end +}def +/spot_alias +{ + /mapto_sep_imageormask + { + dup type/dicttype ne{ + 12 dict begin + /ImageType 1 def + /DataSource xdf + /ImageMatrix xdf + /BitsPerComponent xdf + /Height xdf + /Width xdf + /MultipleDataSources false def + }{ + begin + }ifelse + /Decode[/customcolor_tint AGMCORE_gget 0]def + /Operator/image def + /SkipImageProc{false}def + currentdict + end + sep_imageormask + }bdf + /customcolorimage + { + Adobe_AGM_Image/AGMIMG_colorAry xddf + /customcolor_tint AGMCORE_gget + << + /Name AGMIMG_colorAry 4 get + /CSA[/DeviceCMYK] + /TintMethod/Subtractive + /TintProc null + /MappedCSA null + /NComponents 4 + /Components[AGMIMG_colorAry aload pop pop] + >> + setsepcolorspace + mapto_sep_imageormask + }ndf + Adobe_AGM_Image/AGMIMG_&customcolorimage/customcolorimage load put + /customcolorimage + { + Adobe_AGM_Image/AGMIMG_override false put + current_spot_alias{dup 4 get map_alias}{false}ifelse + { + false set_spot_alias + /customcolor_tint AGMCORE_gget exch setsepcolorspace + pop + mapto_sep_imageormask + true set_spot_alias + }{ + //Adobe_AGM_Image/AGMIMG_&customcolorimage get exec + }ifelse + }bdf +}def +/snap_to_device +{ + 6 dict begin + matrix currentmatrix + dup 0 get 0 eq 1 index 3 get 0 eq and + 1 index 1 get 0 eq 2 index 2 get 0 eq and or exch pop + { + 1 1 dtransform 0 gt exch 0 gt/AGMIMG_xSign? exch def/AGMIMG_ySign? exch def + 0 0 transform + AGMIMG_ySign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch + AGMIMG_xSign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch + itransform/AGMIMG_llY exch def/AGMIMG_llX exch def + 1 1 transform + AGMIMG_ySign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch + AGMIMG_xSign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch + itransform/AGMIMG_urY exch def/AGMIMG_urX exch def + [AGMIMG_urX AGMIMG_llX sub 0 0 AGMIMG_urY AGMIMG_llY sub AGMIMG_llX AGMIMG_llY]concat + }{ + }ifelse + end +}def +level2 not{ + /colorbuf + { + 0 1 2 index length 1 sub{ + dup 2 index exch get + 255 exch sub + 2 index + 3 1 roll + put + }for + }def + /tint_image_to_color + { + begin + Width Height BitsPerComponent ImageMatrix + /DataSource load + end + Adobe_AGM_Image begin + /AGMIMG_mbuf 0 string def + /AGMIMG_ybuf 0 string def + /AGMIMG_kbuf 0 string def + { + colorbuf dup length AGMIMG_mbuf length ne + { + dup length dup dup + /AGMIMG_mbuf exch string def + /AGMIMG_ybuf exch string def + /AGMIMG_kbuf exch string def + }if + dup AGMIMG_mbuf copy AGMIMG_ybuf copy AGMIMG_kbuf copy pop + } + addprocs + {AGMIMG_mbuf}{AGMIMG_ybuf}{AGMIMG_kbuf}true 4 colorimage + end + }def + /sep_imageormask_lev1 + { + begin + MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ + { + 255 mul round cvi GrayLookup exch get + }currenttransfer addprocs settransfer + currentdict imageormask + }{ + /sep_colorspace_dict AGMCORE_gget/Components known{ + MappedCSA 0 get/DeviceCMYK eq{ + Components aload pop + }{ + 0 0 0 Components aload pop 1 exch sub + }ifelse + Adobe_AGM_Image/AGMIMG_k xddf + Adobe_AGM_Image/AGMIMG_y xddf + Adobe_AGM_Image/AGMIMG_m xddf + Adobe_AGM_Image/AGMIMG_c xddf + AGMIMG_y 0.0 eq AGMIMG_m 0.0 eq and AGMIMG_c 0.0 eq and{ + {AGMIMG_k mul 1 exch sub}currenttransfer addprocs settransfer + currentdict imageormask + }{ + currentcolortransfer + {AGMIMG_k mul 1 exch sub}exch addprocs 4 1 roll + {AGMIMG_y mul 1 exch sub}exch addprocs 4 1 roll + {AGMIMG_m mul 1 exch sub}exch addprocs 4 1 roll + {AGMIMG_c mul 1 exch sub}exch addprocs 4 1 roll + setcolortransfer + currentdict tint_image_to_color + }ifelse + }{ + MappedCSA 0 get/DeviceGray eq{ + {255 mul round cvi ColorLookup exch get 0 get}currenttransfer addprocs settransfer + currentdict imageormask + }{ + MappedCSA 0 get/DeviceCMYK eq{ + currentcolortransfer + {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}exch addprocs 4 1 roll + setcolortransfer + currentdict tint_image_to_color + }{ + currentcolortransfer + {pop 1}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 2 get}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 1 get}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 0 get}exch addprocs 4 1 roll + setcolortransfer + currentdict tint_image_to_color + }ifelse + }ifelse + }ifelse + }ifelse + end + }def + /sep_image_lev1_sep + { + begin + /sep_colorspace_dict AGMCORE_gget/Components known{ + Components aload pop + Adobe_AGM_Image/AGMIMG_k xddf + Adobe_AGM_Image/AGMIMG_y xddf + Adobe_AGM_Image/AGMIMG_m xddf + Adobe_AGM_Image/AGMIMG_c xddf + {AGMIMG_c mul 1 exch sub} + {AGMIMG_m mul 1 exch sub} + {AGMIMG_y mul 1 exch sub} + {AGMIMG_k mul 1 exch sub} + }{ + {255 mul round cvi ColorLookup exch get 0 get 1 exch sub} + {255 mul round cvi ColorLookup exch get 1 get 1 exch sub} + {255 mul round cvi ColorLookup exch get 2 get 1 exch sub} + {255 mul round cvi ColorLookup exch get 3 get 1 exch sub} + }ifelse + AGMCORE_get_ink_data currenttransfer addprocs settransfer + currentdict imageormask_sys + end + }def + /indexed_imageormask_lev1 + { + /indexed_colorspace_dict AGMCORE_gget begin + begin + currentdict + MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ + {HiVal mul round cvi GrayLookup exch get HiVal div}currenttransfer addprocs settransfer + imageormask + }{ + MappedCSA 0 get/DeviceGray eq{ + {HiVal mul round cvi Lookup exch get HiVal div}currenttransfer addprocs settransfer + imageormask + }{ + MappedCSA 0 get/DeviceCMYK eq{ + currentcolortransfer + {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll + {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll + {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll + {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll + setcolortransfer + tint_image_to_color + }{ + currentcolortransfer + {pop 1}exch addprocs 4 1 roll + {3 mul HiVal mul round cvi 2 add Lookup exch get HiVal div}exch addprocs 4 1 roll + {3 mul HiVal mul round cvi 1 add Lookup exch get HiVal div}exch addprocs 4 1 roll + {3 mul HiVal mul round cvi Lookup exch get HiVal div}exch addprocs 4 1 roll + setcolortransfer + tint_image_to_color + }ifelse + }ifelse + }ifelse + end end + }def + /indexed_image_lev1_sep + { + /indexed_colorspace_dict AGMCORE_gget begin + begin + {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub} + {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub} + {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub} + {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub} + AGMCORE_get_ink_data currenttransfer addprocs settransfer + currentdict imageormask_sys + end end + }def +}if +end +systemdict/setpacking known +{setpacking}if +%%EndResource +currentdict Adobe_AGM_Utils eq {end} if +%%EndProlog +%%BeginSetup +Adobe_AGM_Utils begin +2 2010 Adobe_AGM_Core/ds gx +Adobe_CoolType_Core/ds get exec Adobe_AGM_Image/ds gx +currentdict Adobe_AGM_Utils eq {end} if +%%EndSetup +%%Page: 1 1 +%%EndPageComments +%%BeginPageSetup +%ADOBeginClientInjection: PageSetup Start "AI11EPS" +%AI12_RMC_Transparency: Balance=75 RasterRes=300 GradRes=150 Text=0 Stroke=1 Clip=1 OP=0 +%ADOEndClientInjection: PageSetup Start "AI11EPS" +Adobe_AGM_Utils begin +Adobe_AGM_Core/ps gx +Adobe_AGM_Utils/capture_cpd gx +Adobe_CoolType_Core/ps get exec Adobe_AGM_Image/ps gx +%ADOBeginClientInjection: PageSetup End "AI11EPS" +/currentdistillerparams where {pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse { userdict /AI11_PDFMark5 /cleartomark load put userdict /AI11_ReadMetadata_PDFMark5 {flushfile cleartomark } bind put} { userdict /AI11_PDFMark5 /pdfmark load put userdict /AI11_ReadMetadata_PDFMark5 {/PUT pdfmark} bind put } ifelse [/NamespacePush AI11_PDFMark5 [/_objdef {ai_metadata_stream_123} /type /stream /OBJ AI11_PDFMark5 [{ai_metadata_stream_123} currentfile 0 (% &&end XMP packet marker&&) /SubFileDecode filter AI11_ReadMetadata_PDFMark5 + + + + application/postscript + + + Print + + + + + 2011-09-14T17:17:28-04:00 + 2011-09-14T17:17:28-04:00 + 2011-09-14T17:17:28-04:00 + Adobe Illustrator CS5.1 + + + + 256 + 60 + JPEG + /9j/4AAQSkZJRgABAgEA8ADwAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAA8AAAAAEA AQDwAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAPAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FUPqMxhsLiUOsZSNiJGNFU06k+ 2Txi5ANeUkRNc6efs9ozFm1C1LHckzAknNxxeR+ToDhJ/ij82q2X/Lfa/wDI1ceI9x+SPA84/NdH c2tvIsyalaxuhqreso3wHcVwn5JjjMTYlEfF6PmlejdirsVdirsVdirsVdirsVdirsVdirsVdirs VdirsVdirsVdirsVdirsVdirsVdirsVdiqVeangTy5qLzuY4RA5kcLyIFOoWorl2nvxBXe1ZxcCP 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 + + + + + + xmp.iid:DB8FD065152068118083E201C16005E3 + xmp.did:DB8FD065152068118083E201C16005E3 + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + xmp.iid:05801174072068118DBBD524E8CB12B3 + xmp.did:05801174072068118DBBD524E8CB12B3 + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + + + + converted + from application/pdf to <unknown> + + + saved + xmp.iid:D27F11740720681191099C3B601C4548 + 2008-04-17T14:19:15+05:30 + Adobe Illustrator CS4 + + + / + + + + + converted + from application/pdf to <unknown> + + + converted + from application/pdf to <unknown> + + + saved + xmp.iid:F97F1174072068118D4ED246B3ADB1C6 + 2008-05-15T16:23:06-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:FA7F1174072068118D4ED246B3ADB1C6 + 2008-05-15T17:10:45-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:EF7F117407206811A46CA4519D24356B + 2008-05-15T22:53:33-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:F07F117407206811A46CA4519D24356B + 2008-05-15T23:07:07-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:F77F117407206811BDDDFD38D0CF24DD + 2008-05-16T10:35:43-07:00 + Adobe Illustrator CS4 + + + / + + + + + converted + from application/pdf to <unknown> + + + saved + xmp.iid:F97F117407206811BDDDFD38D0CF24DD + 2008-05-16T10:40:59-07:00 + Adobe Illustrator CS4 + + + / + + + + + converted + from application/vnd.adobe.illustrator to <unknown> + + + saved + xmp.iid:FA7F117407206811BDDDFD38D0CF24DD + 2008-05-16T11:26:55-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:FB7F117407206811BDDDFD38D0CF24DD + 2008-05-16T11:29:01-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:FC7F117407206811BDDDFD38D0CF24DD + 2008-05-16T11:29:20-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:FD7F117407206811BDDDFD38D0CF24DD + 2008-05-16T11:30:54-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:FE7F117407206811BDDDFD38D0CF24DD + 2008-05-16T11:31:22-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:B233668C16206811BDDDFD38D0CF24DD + 2008-05-16T12:23:46-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:B333668C16206811BDDDFD38D0CF24DD + 2008-05-16T13:27:54-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:B433668C16206811BDDDFD38D0CF24DD + 2008-05-16T13:46:13-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:F77F11740720681197C1BF14D1759E83 + 2008-05-16T15:47:57-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:F87F11740720681197C1BF14D1759E83 + 2008-05-16T15:51:06-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:F97F11740720681197C1BF14D1759E83 + 2008-05-16T15:52:22-07:00 + Adobe Illustrator CS4 + + + / + + + + + converted + from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator + + + saved + xmp.iid:FA7F117407206811B628E3BF27C8C41B + 2008-05-22T13:28:01-07:00 + Adobe Illustrator CS4 + + + / + + + + + converted + from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator + + + saved + xmp.iid:FF7F117407206811B628E3BF27C8C41B + 2008-05-22T16:23:53-07:00 + Adobe Illustrator CS4 + + + / + + + + + converted + from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator + + + saved + xmp.iid:07C3BD25102DDD1181B594070CEB88D9 + 2008-05-28T16:45:26-07:00 + Adobe Illustrator CS4 + + + / + + + + + converted + from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator + + + saved + xmp.iid:F87F1174072068119098B097FDA39BEF + 2008-06-02T13:25:25-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:F77F117407206811BB1DBF8F242B6F84 + 2008-06-09T14:58:36-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:F97F117407206811ACAFB8DA80854E76 + 2008-06-11T14:31:27-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:0180117407206811834383CD3A8D2303 + 2008-06-11T22:37:35-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:F77F117407206811818C85DF6A1A75C3 + 2008-06-27T14:40:42-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:04801174072068118DBBD524E8CB12B3 + 2011-05-11T11:44:14-04:00 + Adobe Illustrator CS4 + / + + + saved + xmp.iid:05801174072068118DBBD524E8CB12B3 + 2011-05-11T13:52:20-04:00 + Adobe Illustrator CS4 + / + + + converted + from application/postscript to application/vnd.adobe.illustrator + + + saved + xmp.iid:DB8FD065152068118083E201C16005E3 + 2011-09-14T17:17:28-04:00 + Adobe Illustrator CS5.1 + / + + + + + + Print + + + False + True + 1 + + 7.000000 + 2.000000 + Inches + + + + Cyan + Magenta + Yellow + Black + + + + + + Default Swatch Group + 0 + + + + White + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + CMYK Red + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + CMYK Yellow + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Green + CMYK + PROCESS + 100.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Cyan + CMYK + PROCESS + 100.000000 + 0.000000 + 0.000000 + 0.000000 + + + CMYK Blue + CMYK + PROCESS + 100.000000 + 100.000000 + 0.000000 + 0.000000 + + + CMYK Magenta + CMYK + PROCESS + 0.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=15 M=100 Y=90 K=10 + CMYK + PROCESS + 14.999998 + 100.000000 + 90.000000 + 10.000002 + + + C=0 M=90 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 90.000000 + 85.000000 + 0.000000 + + + C=0 M=80 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 80.000000 + 95.000000 + 0.000000 + + + C=0 M=50 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 50.000000 + 100.000000 + 0.000000 + + + C=0 M=35 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 35.000004 + 85.000000 + 0.000000 + + + C=5 M=0 Y=90 K=0 + CMYK + PROCESS + 5.000001 + 0.000000 + 90.000000 + 0.000000 + + + C=20 M=0 Y=100 K=0 + CMYK + PROCESS + 19.999998 + 0.000000 + 100.000000 + 0.000000 + + + C=50 M=0 Y=100 K=0 + CMYK + PROCESS + 50.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=75 M=0 Y=100 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=85 M=10 Y=100 K=10 + CMYK + PROCESS + 85.000000 + 10.000002 + 100.000000 + 10.000002 + + + C=90 M=30 Y=95 K=30 + CMYK + PROCESS + 90.000000 + 30.000002 + 95.000000 + 30.000002 + + + C=75 M=0 Y=75 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 75.000000 + 0.000000 + + + C=80 M=10 Y=45 K=0 + CMYK + PROCESS + 80.000000 + 10.000002 + 45.000000 + 0.000000 + + + C=70 M=15 Y=0 K=0 + CMYK + PROCESS + 70.000000 + 14.999998 + 0.000000 + 0.000000 + + + C=85 M=50 Y=0 K=0 + CMYK + PROCESS + 85.000000 + 50.000000 + 0.000000 + 0.000000 + + + C=100 M=95 Y=5 K=0 + CMYK + PROCESS + 100.000000 + 95.000000 + 5.000001 + 0.000000 + + + C=100 M=100 Y=25 K=25 + CMYK + PROCESS + 100.000000 + 100.000000 + 25.000000 + 25.000000 + + + C=75 M=100 Y=0 K=0 + CMYK + PROCESS + 75.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=50 M=100 Y=0 K=0 + CMYK + PROCESS + 50.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=35 M=100 Y=35 K=10 + CMYK + PROCESS + 35.000004 + 100.000000 + 35.000004 + 10.000002 + + + C=10 M=100 Y=50 K=0 + CMYK + PROCESS + 10.000002 + 100.000000 + 50.000000 + 0.000000 + + + C=0 M=95 Y=20 K=0 + CMYK + PROCESS + 0.000000 + 95.000000 + 19.999998 + 0.000000 + + + C=25 M=25 Y=40 K=0 + CMYK + PROCESS + 25.000000 + 25.000000 + 39.999996 + 0.000000 + + + C=40 M=45 Y=50 K=5 + CMYK + PROCESS + 39.999996 + 45.000000 + 50.000000 + 5.000001 + + + C=50 M=50 Y=60 K=25 + CMYK + PROCESS + 50.000000 + 50.000000 + 60.000004 + 25.000000 + + + C=55 M=60 Y=65 K=40 + CMYK + PROCESS + 55.000000 + 60.000004 + 65.000000 + 39.999996 + + + C=25 M=40 Y=65 K=0 + CMYK + PROCESS + 25.000000 + 39.999996 + 65.000000 + 0.000000 + + + C=30 M=50 Y=75 K=10 + CMYK + PROCESS + 30.000002 + 50.000000 + 75.000000 + 10.000002 + + + C=35 M=60 Y=80 K=25 + CMYK + PROCESS + 35.000004 + 60.000004 + 80.000000 + 25.000000 + + + C=40 M=65 Y=90 K=35 + CMYK + PROCESS + 39.999996 + 65.000000 + 90.000000 + 35.000004 + + + C=40 M=70 Y=100 K=50 + CMYK + PROCESS + 39.999996 + 70.000000 + 100.000000 + 50.000000 + + + C=50 M=70 Y=80 K=70 + CMYK + PROCESS + 50.000000 + 70.000000 + 80.000000 + 70.000000 + + + + + + Grays + 1 + + + + C=0 M=0 Y=0 K=100 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + C=0 M=0 Y=0 K=90 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 89.999405 + + + C=0 M=0 Y=0 K=80 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 79.998795 + + + C=0 M=0 Y=0 K=70 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 69.999702 + + + C=0 M=0 Y=0 K=60 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 59.999104 + + + C=0 M=0 Y=0 K=50 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 50.000000 + + + C=0 M=0 Y=0 K=40 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 39.999401 + + + C=0 M=0 Y=0 K=30 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 29.998802 + + + C=0 M=0 Y=0 K=20 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 19.999701 + + + C=0 M=0 Y=0 K=10 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 9.999103 + + + C=0 M=0 Y=0 K=5 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 4.998803 + + + + + + Brights + 1 + + + + C=0 M=100 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + C=0 M=75 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 75.000000 + 100.000000 + 0.000000 + + + C=0 M=10 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 10.000002 + 95.000000 + 0.000000 + + + C=85 M=10 Y=100 K=0 + CMYK + PROCESS + 85.000000 + 10.000002 + 100.000000 + 0.000000 + + + C=100 M=90 Y=0 K=0 + CMYK + PROCESS + 100.000000 + 90.000000 + 0.000000 + 0.000000 + + + C=60 M=90 Y=0 K=0 + CMYK + PROCESS + 60.000004 + 90.000000 + 0.003099 + 0.003099 + + + + + + + + + Adobe PDF library 9.00 + + + + + + + + + + + + + + + + + + + + + + + + + % &&end XMP packet marker&& [{ai_metadata_stream_123} <> /PUT AI11_PDFMark5 [/Document 1 dict begin /Metadata {ai_metadata_stream_123} def currentdict end /BDC AI11_PDFMark5 +%ADOEndClientInjection: PageSetup End "AI11EPS" +%%EndPageSetup +1 -1 scale 0 -101.598 translate +pgsv +[1 0 0 1 0 0 ]ct +gsave +np +gsave +0 0 mo +0 101.598 li +441.385 101.598 li +441.385 0 li +cp +clp +[1 0 0 1 0 0 ]ct +14.7505 90.4185 mo +8.4873 90.4185 3.98047 88.9546 0 84.9165 cv +4.21436 80.7603 li +7.2583 83.8042 10.5947 84.7407 14.8672 84.7407 cv +20.311 84.7407 23.4717 82.3989 23.4717 78.3599 cv +23.4717 76.5454 22.9448 75.0239 21.833 74.0288 cv +20.7793 73.0337 19.7256 72.6245 17.2671 72.2729 cv +12.3506 71.5708 li +8.95557 71.1021 6.26318 69.9321 4.44873 68.2339 cv +2.3999 66.3022 1.40479 63.6685 1.40479 60.2739 cv +1.40479 53.0161 6.67285 48.0405 15.3359 48.0405 cv +20.8379 48.0405 24.7012 49.4458 28.2715 52.7817 cv +24.2324 56.7622 li +21.6572 54.3032 18.6719 53.5425 15.1602 53.5425 cv +10.2432 53.5425 7.55078 56.3521 7.55078 60.0396 cv +7.55078 61.561 8.01904 62.9077 9.13135 63.9028 cv +10.1846 64.8394 11.8823 65.5415 13.814 65.8345 cv +18.5552 66.5366 li +22.418 67.1216 24.584 68.0591 26.3398 69.6392 cv +28.6226 71.6294 29.7349 74.6138 29.7349 78.1851 cv +29.7349 85.8521 23.4717 90.4185 14.7505 90.4185 cv +cp +false sop +/0 +[/DeviceCMYK] /CSA add_res +.74609 .67578 .66797 .89844 cmyk +f +46.3564 90.0669 mo +40.7959 90.0669 38.2202 86.0864 38.2202 81.814 cv +38.2202 65.4829 li +34.8257 65.4829 li +34.8257 60.9175 li +38.2202 60.9175 li +38.2202 51.9038 li +44.1909 51.9038 li +44.1909 60.9175 li +49.9268 60.9175 li +49.9268 65.4829 li +44.1909 65.4829 li +44.1909 81.521 li +44.1909 83.687 45.2441 84.9741 47.4688 84.9741 cv +49.9268 84.9741 li +49.9268 90.0669 li +46.3564 90.0669 li +cp +f +73.2227 76.9556 mo +66.2573 76.9556 li +62.7451 76.9556 60.9307 78.5356 60.9307 81.228 cv +60.9307 83.9214 62.6284 85.4429 66.3745 85.4429 cv +68.6572 85.4429 70.3545 85.2671 71.9351 83.7456 cv +72.813 82.8677 73.2227 81.4624 73.2227 79.355 cv +73.2227 76.9556 li +cp +73.3398 90.0669 mo +73.3398 87.3745 li +71.1738 89.5405 69.1255 90.4185 65.438 90.4185 cv +61.75 90.4185 59.292 89.5405 57.4775 87.7251 cv +55.9556 86.145 55.1362 83.8628 55.1362 81.3452 cv +55.1362 76.3706 58.5894 72.7993 65.3794 72.7993 cv +73.2227 72.7993 li +73.2227 70.6929 li +73.2227 66.9468 71.3496 65.1323 66.7256 65.1323 cv +63.4478 65.1323 61.8672 65.8931 60.2285 68.0005 cv +56.3066 64.313 li +59.1162 61.0347 62.043 60.0396 66.9595 60.0396 cv +75.0957 60.0396 79.1929 63.4927 79.1929 70.2241 cv +79.1929 90.0669 li +73.3398 90.0669 li +cp +f +100.088 90.4185 mo +93.4155 90.4185 86.8599 86.3208 86.8599 75.1997 cv +86.8599 64.0786 93.4155 60.0396 100.088 60.0396 cv +104.186 60.0396 107.054 61.2104 109.863 64.1958 cv +105.766 68.1753 li +103.893 66.1274 102.43 65.3657 100.088 65.3657 cv +97.8057 65.3657 95.874 66.3022 94.5864 68.0005 cv +93.2983 69.6392 92.8301 71.7466 92.8301 75.1997 cv +92.8301 78.6528 93.2983 80.8188 94.5864 82.4575 cv +95.874 84.1548 97.8057 85.0913 100.088 85.0913 cv +102.43 85.0913 103.893 84.3306 105.766 82.2817 cv +109.863 86.2036 li +107.054 89.189 104.186 90.4185 100.088 90.4185 cv +cp +f +135.44 90.0669 mo +127.128 76.3706 li +122.738 81.3452 li +122.738 90.0669 li +116.768 90.0669 li +116.768 48.3911 li +122.738 48.3911 li +122.738 74.0874 li +134.27 60.3911 li +141.527 60.3911 li +131.226 72.0386 li +142.815 90.0669 li +135.44 90.0669 li +cp +f +148.959 90.0669 mo +148.959 48.3911 li +176.411 48.3911 li +176.411 55.6499 li +157.095 55.6499 li +157.095 65.4243 li +173.543 65.4243 li +173.543 72.6831 li +157.095 72.6831 li +157.095 82.8091 li +176.411 82.8091 li +176.411 90.0669 li +148.959 90.0669 li +cp +.953125 .761719 .101563 .011719 cmyk +f +200.525 90.0669 mo +194.906 80.936 li +189.345 90.0669 li +180.214 90.0669 li +190.75 74.4976 li +180.624 59.5718 li +189.755 59.5718 li +194.906 68.2925 li +200.115 59.5718 li +209.246 59.5718 li +199.12 74.4976 li +209.656 90.0669 li +200.525 90.0669 li +cp +f +225.576 90.4185 mo +219.489 90.4185 211.938 87.1401 211.938 74.7896 cv +211.938 62.4399 219.489 59.2202 225.576 59.2202 cv +229.791 59.2202 232.951 60.5083 235.644 63.3179 cv +230.493 68.4683 li +228.912 66.771 227.566 66.0688 225.576 66.0688 cv +223.762 66.0688 222.357 66.7124 221.245 68.0591 cv +220.074 69.522 219.547 71.5708 219.547 74.7896 cv +219.547 78.0093 220.074 80.1167 221.245 81.5796 cv +222.357 82.9263 223.762 83.5698 225.576 83.5698 cv +227.566 83.5698 228.912 82.8677 230.493 81.1704 cv +235.644 86.2622 li +232.951 89.0718 229.791 90.4185 225.576 90.4185 cv +cp +f +259.056 90.0669 mo +259.056 71.4536 li +259.056 67.4146 256.48 66.0688 254.08 66.0688 cv +251.681 66.0688 249.163 67.4731 249.163 71.4536 cv +249.163 90.0669 li +241.554 90.0669 li +241.554 48.3911 li +249.163 48.3911 li +249.163 62.3813 li +251.212 60.2739 253.787 59.2202 256.48 59.2202 cv +263.152 59.2202 266.665 63.9028 266.665 70.3413 cv +266.665 90.0669 li +259.056 90.0669 li +cp +f +290.311 77.1899 mo +284.281 77.1899 li +281.53 77.1899 280.009 78.4771 280.009 80.6431 cv +280.009 82.7505 281.413 84.1548 284.398 84.1548 cv +286.506 84.1548 287.853 83.979 289.198 82.6919 cv +290.018 81.9312 290.311 80.7017 290.311 78.8286 cv +290.311 77.1899 li +cp +290.486 90.0669 mo +290.486 87.4331 li +288.438 89.4819 286.506 90.3599 282.994 90.3599 cv +279.54 90.3599 277.023 89.4819 275.209 87.6675 cv +273.57 85.9692 272.692 83.5112 272.692 80.8188 cv +272.692 75.9604 276.028 71.98 283.111 71.98 cv +290.311 71.98 li +290.311 70.4585 li +290.311 67.1216 288.672 65.6587 284.633 65.6587 cv +281.706 65.6587 280.36 66.3608 278.779 68.1753 cv +273.921 63.4341 li +276.906 60.1567 279.833 59.2202 284.926 59.2202 cv +293.472 59.2202 297.92 62.8491 297.92 69.9897 cv +297.92 90.0669 li +290.486 90.0669 li +cp +f +323.848 90.0669 mo +323.848 71.6294 li +323.848 67.4731 321.214 66.0688 318.814 66.0688 cv +316.414 66.0688 313.722 67.4731 313.722 71.6294 cv +313.722 90.0669 li +306.112 90.0669 li +306.112 59.5718 li +313.547 59.5718 li +313.547 62.3813 li +315.536 60.2739 318.346 59.2202 321.155 59.2202 cv +324.199 59.2202 326.658 60.2153 328.355 61.9126 cv +330.813 64.3706 331.457 67.2388 331.457 70.5757 cv +331.457 90.0669 li +323.848 90.0669 li +cp +f +350.947 66.0688 mo +346.44 66.0688 345.973 69.9321 345.973 73.9702 cv +345.973 78.0093 346.44 81.9312 350.947 81.9312 cv +355.455 81.9312 355.981 78.0093 355.981 73.9702 cv +355.981 69.9321 355.455 66.0688 350.947 66.0688 cv +cp +350.187 101.598 mo +345.504 101.598 342.285 100.662 339.124 97.6177 cv +343.865 92.8179 li +345.563 94.4565 347.26 95.1597 349.836 95.1597 cv +354.401 95.1597 355.981 91.9399 355.981 88.8374 cv +355.981 85.7358 li +353.991 87.9595 351.709 88.7788 348.724 88.7788 cv +345.738 88.7788 343.163 87.7837 341.465 86.0864 cv +338.598 83.2183 338.363 79.2974 338.363 73.9702 cv +338.363 68.644 338.598 64.7808 341.465 61.9126 cv +343.163 60.2153 345.797 59.2202 348.782 59.2202 cv +352.001 59.2202 354.108 60.0981 356.216 62.4399 cv +356.216 59.5718 li +363.591 59.5718 li +363.591 88.9546 li +363.591 96.271 358.381 101.598 350.187 101.598 cv +cp +f +388.992 68.7026 mo +388.173 66.8882 386.476 65.5415 383.9 65.5415 cv +381.325 65.5415 379.627 66.8882 378.808 68.7026 cv +378.34 69.8149 378.164 70.6343 378.105 71.98 cv +389.695 71.98 li +389.637 70.6343 389.461 69.8149 388.992 68.7026 cv +cp +378.105 77.1899 mo +378.105 81.1118 380.506 83.979 384.778 83.979 cv +388.114 83.979 389.754 83.0435 391.686 81.1118 cv +396.31 85.6187 li +393.207 88.7202 390.222 90.4185 384.72 90.4185 cv +377.521 90.4185 370.613 87.1401 370.613 74.7896 cv +370.613 64.8394 375.998 59.2202 383.9 59.2202 cv +392.388 59.2202 397.188 65.4243 397.188 73.7944 cv +397.188 77.1899 li +378.105 77.1899 li +cp +f +398.175 32.2979 mo +441.385 32.2979 li +441.385 23.4107 li +398.175 23.4107 li +398.175 32.2979 li +.828125 .570313 0 0 cmyk +f +398.175 20.852 mo +441.385 20.852 li +441.385 11.9629 li +398.175 11.9629 li +398.175 20.852 li +.660156 .226563 0 0 cmyk +f +434.528 0 mo +405.025 0 li +401.241 0 398.175 3.18066 398.175 7.1001 cv +398.175 9.4082 li +441.385 9.4082 li +441.385 7.1001 li +441.385 3.18066 438.315 0 434.528 0 cv +cp +.394531 0 .00781298 0 cmyk +f +398.175 34.8023 mo +398.175 37.1103 li +398.175 41.0293 401.241 44.2105 405.025 44.2105 cv +423.479 44.2105 li +423.479 53.5962 li +432.536 44.2105 li +434.528 44.2105 li +438.315 44.2105 441.385 41.0293 441.385 37.1103 cv +441.385 34.8023 li +398.175 34.8023 li +.953125 .757813 .109375 .011719 cmyk +f +406.281 44.2105 mo +405.025 44.2105 li +401.241 44.2105 398.175 41.0293 398.175 37.1103 cv +398.175 34.8023 li +415.359 34.8023 li +406.281 44.2105 li +.811765 .643137 .0941176 .0117647 cmyk +f +428.819 20.852 mo +398.175 20.852 li +398.175 11.9629 li +437.395 11.9629 li +428.819 20.852 li +.560784 .192157 0 0 cmyk +f +417.775 32.2979 mo +398.175 32.2979 li +398.175 23.4107 li +426.351 23.4107 li +417.775 32.2979 li +.705882 .482353 0 0 cmyk +f +%ADOBeginClientInjection: EndPageContent "AI11EPS" +userdict /annotatepage 2 copy known {get exec}{pop pop} ifelse +%ADOEndClientInjection: EndPageContent "AI11EPS" +grestore +grestore +pgrs +%%PageTrailer +%ADOBeginClientInjection: PageTrailer Start "AI11EPS" +[/EMC AI11_PDFMark5 [/NamespacePop AI11_PDFMark5 +%ADOEndClientInjection: PageTrailer Start "AI11EPS" +[ +[/CSA [/0 ]] +] del_res +Adobe_AGM_Image/pt gx +Adobe_CoolType_Core/pt get exec Adobe_AGM_Core/pt gx +currentdict Adobe_AGM_Utils eq {end} if +%%Trailer +Adobe_AGM_Image/dt get exec +Adobe_CoolType_Core/dt get exec Adobe_AGM_Core/dt get exec +%%EOF +%AI9_PrintingDataEnd userdict /AI9_read_buffer 256 string put userdict begin /ai9_skip_data { mark { currentfile AI9_read_buffer { readline } stopped { } { not { exit } if (%AI9_PrivateDataEnd) eq { exit } if } ifelse } loop cleartomark } def end userdict /ai9_skip_data get exec %AI9_PrivateDataBegin %!PS-Adobe-3.0 EPSF-3.0 %%Creator: Adobe Illustrator(R) 15.0 %%AI8_CreatorVersion: 15.1.0 %%For: (Jin Yang) () %%Title: (se-logo-outline.eps) %%CreationDate: 9/14/11 5:17 PM %%Canvassize: 16383 %AI9_DataStream %Gb"-6BoaO]E@CSir'/\t!CU=n?MGE+>[i7H-*:>b_4gKH#S0==VE+"@4pF/5jQ$79[F:2XaK3UcRLqth3P)fMd_is5F#.mLr/35: %++O(Tc.`cdDEn,mTAR2,BB*9bV`S\#q;R=IHi*+fh_/a"gCPQ.].Z)"KiIK8.j"!%pX(;q&+)T1rPSLk+$T_ie&SZLI/j05j1CAE %^An#bmSC#Nh#6:!DrI2;GQ7C!h7J_t]\C/IrUkZ/0/e;%IsZS?m`k:^Vt[AZ6X09u!j2@ep4p-G^A6k$n,MFmVk;lBJl)JOC@Rq2 %LSg_Er0tNPs5E9f5CE(b=4$*!DuT`!I/Q3W1&mR=rp%bkcS,Xg#ki94O8nnaIK'9sj_t.sf5JBOqu,\RY)Frpc!]olQ=usq=MuThL#aF)-6Xp],u"M5JPD<#+5BkYQ+7W'2KX_i1I`1 %oAMVMs+PdpAb#NOq`>V\*W1rK_>4m[44>\m?qR@N[I#o^N@eR#qLTU9k#\cjs7GRC[r4M/>e2lop2<1/rMH]iLK=3eNSm!Es,-g9 %Y/7,%It$uT\dfRbqo@:51u82l=8[[-r#Usd_s=ccAJTH?GB\lC>Oh\j_om?/P(\eqbiL'*nf"s0+8GP=e&cTd23$S9[j49XVB5pW?)aE;;n2Ieoo>E6@M"!?`)uiDVNX=UbZcV[V=u\/4 %NHL7OK^&>@cZtOr(3u582a>D/kMC:;\SqChm('9]f&.XOL#^).fFkA1O.*iD'uU'V(620lQtM,F`UVo*r.Lj*ouGtFF+iIiXG,]P %hn4i*,s8C/IXIpM!;9[f8(W^sa0Uf6Gi!OKGi[Y,loFfuhodV;H>sDm_)aP:`Cq6l50]kbDfL1")f%0Wj7mjopf[NSF`;Hb$cQr< %4$7T^#0(Q"@Dru#2XEG6$KHa+$XH]&GO?Kt3kq$E%=>6.U1<5t@kE*j\'E=kp\_olkFK`Ib\PLF_^ukmL[hk@G(.GYTt@`"/=i\n %qi'?gpC7/ll%VR:e(ZA!(+Brm+Qkb)^WA:&CQ4OE]YZqk&A^(GR\@rQd_"bb*Yir0&pdc<9%q %j_(pYDqb6hZeb38p-8SE0D9aI[/]sbE8](0J,Yl$&(>T)48d@hb+J>?rt".2@2IpC5DS9=F3H@WQiAs6pt"K7C!&/5pa?(D'p-2; %#.Cc0:VY4a;tQ^XUAr.hE_&*+:B1,8haaK)rrT&uhr-N8] %T%57k5DaMe$_*[(I+[NUJH+Xo/GMGYO8(gZVV)tqEQ;dbp/>`+EsqR?^-*[)s68DN940\K(#SG6#gsfDT9H$^BfBOQ2)n/6[bS(,0b$esPQ)BV)"/]'`?!GG'Y52s*HbJ%JYj01Gm+)+HJk;YL-1U+o>@t!du]\dS5rTNGs3)`?F'HPEPZ&XBa,"T?$ %'-'a=:cmVe+9p4CAAgj,AR8;io,%d4$Y#R+9BJ*e3jd>)Jq**->Xq$;s7#H/bXZGq599#od7ho.e74r:898n6'r*g@+YnC"VcY%u %&$re)^*mkB-HCX4a"kL1_=8Y6!fkdVZE=B$`^p^:HWh6<-!1OoLS!FBGV"YHXero-ZAT@!*j""cYZPiR<[K>'n1%?%HX'o_3F+:k %+LWC$T4:FENk!(*OnN+#7pZMeeK0400;oC8%lcno0VB%b=-T<29RD"qT_Su*CQX2K7MhS9gkXOrdK%.Y9mq&JedLLC[P%INJ56P: %l8mq44e:>rldJ;$ %csl+0*)q8Nj?b;Bf;<.GbC:\lel/TC:hsu!aDu/Us2kPTpN`C8pq7"-:#drQ=5Xh.;-%1u,ql=p*^fQ$_l/N<3rV_N/I5HG[q<$^e %]XdpaVq59C[C^qbO8o1@ld%f-q\oRC^V9R'mH6G&YMXg'Z\o85hnB$]k)R30LZtT5s7"M72o#7bl$[oKTna/.Gk:@`G?qNio(p6_ %GQ7:-Vsb[EqH*,lIsCqVNo7>,=)\*=hn4\(C2Go^'ofs'o_itf@Ish*=hNZZL$kul?M+*cn*d^RhL,+\qqIFQ(gOGl@&CB(>]BhM&T/2s0#BA:@sac*W21S+(fLR#]YCZ7aHhnMWWu$X^3Gbts;R5hXj3 %PeB4F3P#NS,pf1-_70JX_*fJ@#1cc/`bhF9g`?eW1-^%tffQJk"H`)9q1#%boH6Aejfogj64Z&Xlt;r=nJf79426PknAd4K7pYU- %KG[US6Oq(g:"Y2+fS;gR`[P))*KH=<`Y@U'l-R2)]=Nf1bR9TrniqU[Hf(pK@fID8o"-(g<_T?$W]"\T#B0a`,XNZtQ[[Z>dHuT(Kk/I'A-Uf+?(o %QB;srQ;SJ3Q]i5MQP:7$QaP0aep!H:aO8F(&;FLJ@SDP5Aq;ibiW/7/4#*QgV[TDt:"lIMg8>%;,HR)_l16^D$+cO$NG[f5DkLq0 %*?;[%..?2b^^PQfVkuRDaglrO\BVXucNbl=1;TtN(fVnCel:dp9*+j,CW[.0^)Y9-Yee1#_73qMi[2KgntrWHI'_So2fLAMCpCL+ %YU3ctC!MH!kR_tMr=EK>e:6h5huCFbfaODn]?VF`Y+P?5luh^%O\SiA[qRpBoKsQX4sU, %m\DC`_P.&()Z8-NZmbO?j@(MUZ8$g7.,.2D/]temSuf3RQ-*.M:<_R\X%7:'uu6nWun5U-GuK/>Ynj8D-Vg8_IT.M#+L$ %KPcZdN,aetN-1)'N-UA/N.$Y7N.Hq?N.le;7So50OjT:&&di(nj!8+\iMBp/j!J7`j!S>M0o2XTsll>FA72Ou-*]Dng=Yi,O&0E-asH"V5q>`TF2"8spsrKLWCq(4O&[/\hOs%+9WanWVUjT+oq8GS^.Q'g]WTGa %q`!EIJb-f]5CE8*c"E,Na3Wgb7.MlO'MF2'mLL&G'YtL&'Zk[Si]&W?68p,+-\@$`Wh#6KUYoGl!.rRf\V^DVBT(4O_t!e9-/taI %;5;h08Jp^+t.KrQ>%J0fc^ %AnZQLl.&CkA5FmDa^@ookt!Q=$4,4=B]Faj"Y%<"QuQ1S4E0&HY>u]Jfk/PSKcMWR1`bm\G'?bC=(L,YOO8pgl9t49l4+E#'Nc.r %]PNmsV3G.A[F>d$2J^tVj^>r6.*&U.XA"U6f7Um8.:j_/[,#]$F)jt'K,RDuc*[u8%D+=9QnHSWZ4hL.1-.Ml@Y.2WG[Lo?(2.65 %jruYKi>"7E0]*,&ruJ2^"r8XT:D1#KTQ^nB3C/]:j*4W9Gn1pS,9?BqUTkf9%%jCr7bkDh;FNTMB?XFF;^?-kVZ,'j,gA#(;;8<* %$>ds)[V,dpnZY9%Sq+a!?mG,J6Z6A=A_>oI2L9o9*GkZ\B\*8U_2btA#)GVN,*?8rK7R@E8hVOSoZ'-th"bFE=nY`"(JF+QOoJr] %`]:Rl/*H&kc3c=X5dR1u[soU]!?USI95>eKOhaJb[k/=?EVtHr'U\qoX2op4j"opc>lc#*!F+5:L(]mtRS.*;MQ13B^fL48GmZ;R %Ut*!LR$&Vj5SOF@7rBNP"kauU9%kR3?1/6]'c$$nH.Io7=oQk9"[oqY#AQ(.$U@T %b1,Nf$[/TZ[MKgTXVi*&2Lo'N^.TTW"<\luNZHU:#SR+X:*a'%T`mJ4K8:.k#(%ImFuO9!+T(WdKX1hG>G.09LbWlg$rA1\SUfH9 %JFDoV#B.sR#khL)/ffIK3M;!$51dD:*U!+#6E(;g:#/%EXqc>u8%1O$qk%8HXgtKI;nEf\3g@IolX(Y14\04VSGl>RC2J!=2?5JE]bg[$=3ml3 %hZNP]/bm0(TIT[BT9sFVFX6:qSb:@5flmn_n5/Fj`1CL%Ib=(u0J3-JY1>0pMW=#@hVC] %m0%knQIBbil2Rfn+5W+LOWcE1-)?OZ(Zosq1]IB`4)R>R/jP)%3.XIq&"lO&+pGcR%f@8,h9U2/%s2iI_tsAB5OA.AS^J/B>f6bY %M*l#eXs#12,.GK/1U4khX:UfX7!*QIe.h.\2FK_R&P]'e'@Fla;8u*49P.!SG`#m:eg(>5%,?Snjt$Ya'="'\;!s!-14bBN*/-'f %KIATAS:qf+@TUX2K>hCA0/\(F"_d()ZH"mkVrdhNbDVT7:=Xr=W1"Y=k-u=b)#$nDX';2rED=/"es3 %o=k?[km0m[QisY+3[&+0kbs8lclXY/CojLd4kEg5p9=*>/mZIV/1"d<+PZA&_^'q$9dE"#-n2 %[0Ml,0@"_RgFWrX>:.-.I_]-hT6s_rh?.nhqfc %R)mG;O+pAI5RFARD1=[LSpeWSqq:(ich:Ihla-N7lhgLfd6/@9auYCo7$5P= %@[250rW12kGi&#>i02@@m%=!X>8D8eU9_I72J5Z;qf5U*8spJA%4/I"<32AAMVgKRfNKUR+@1'G9/6t$d!tmZeoNU*Db/+7_E'DP %@^.5N*pN`$fW/pG:]InQ-/I,^AJ\nm?9?%^1a);N&S %=0^mWeseUes-Yq41t#-@f$JnU9dd:9L5tn2eB_NgP!mR@7;^i8"9,Q[2?.,S3Jn!u+BF"U=\lM9$eU7u5V3%Y[0jie)=XLZ%p1U' %Y_D#.gh^Y[jI83ScKh1`-t>;iMc,QVs;6ck6A01m-Tm#$%!R)+d.GOD2Kl-+A2cF<)c %GO!I43qN$)I*IAK\aT(.3g(8dMT/A6-!=28:DGOX8]s %eIp&>L'0A6_5`=2l;s:t=?:6'R7_'@Q_CPsUbZ%VP0"+88'Iu+amnY:=;GrbZMP#@GIFa6Z8MJK/Xt9g:.d]!,kVudI[UPl8mITX!:L!q\nO(2s69J` %Na4ZpdN.akg"$5!Q)X=SWD]$S=t4Bg`7;KYN/ffe(JV(nkDXo^I%n)4rF5Z;e4sI;R*0oH-U0f"r,R2-ja3fDG:DDGgf3e[C?Y9U %hLRkpG6+^;ed`4oI*G:.g"A]@*@Xd<1tU=!H&hf8K'2\ekVKDii+]2b[r+6HG1:^(#49p/nnG(F>#dgBcT3p'c>oZ+PJg"q81/?ohaL3M2+/orANlSQ=kl56&W9!8F*)"=kjpDTg@`n7J+$s5]M"tQSLf`d-_ %bP#Duou2k3]L'H;@GB!.&\e$uqCoLFL_."4nmJ,B#5('13c5T=`kf,u1F"6ou>.%&];BHW4o!V0sF'<25'm %OiSh2a:&YI8uctdca@:4V3Xh-m:WoaRB;jb#0Yh2-jsn?DE96&Oi#U4=2KnBiq-+Tb@444'!hAT@MXL#,k'GrT&.Cm>_>0C8K`@r %!)8i0"CRBd4Uu?Rg49;o!VC!Hi@l+CeF:5=`*fL4>;imd1'k1S)-[QpJsVkGA>]@jXR6gjcHR4!]HjQ"\C<1.fUnqDeC4S %;jcu\d1-uk&OR$H6WsDYGXJRr^^nn^ZD%loMco0t\59=`]p\2d*Q#5'>[R0-VSP_f4Iok88Ki>)3EA-C:G$s'iR<[U@J,H)Eq2aj %*[?f=V$jlK5,*OckpIq![.*?!>cj^M)HbgN;,$)[,XWV\C7@uY!\\7l^m6B,YR&ri/F]I?=e[C.:BlpT%5AsB%r %4Hfn2Zf&a?MZ=HEp2NYnc5UgV&dm2&m?^OKRLldj8k1Up#Z7]DQ\?jS=OqVZAF;;oG>_J$gHu;1M`CgWV\QNF5'qm.\?C.n.-dKm*aIH0n2Pa3g3EJo*.Sq9NW=W$HgiRFKA*[.eoLl %]Y%N!=#7Q6T@W[mg0RM.<4'>^(-6821#&a>Gn3%A.p$oJlD@g-_g7:9c[b:mc,5=cMQE\>\sON$@SS?\e3>qpO7jP(QkCh9;?:TC %is&DuE6b%rm/rmW#t8%WUrA%<6.5uj[m3K;If"0%XRh6\q41T/nAau\R17I-CiI*H*oi4HrmBi(_8#aLiQPq8S3*/a]Y'IU#`K"7X/)Dq[?8,#ZR*I)!FH/*QKbAmI./dSd$miAlW^jqS.q(#^c!$^-74K2c*dm+BQNhr@ %#0Z%bO[&CGA\M-&"?ilRFa8('gJ]srVZ+,*-B7Z(h^H1hWn1oa7@0msg3!_/[b\+/PDQm')-B%XDp9pZ0VY"7M^ %\nkSZR;K"J\$`Co?X(WZ`eTbG>S^el@qOq`_FYg@P_-m^4eh!\X]^aj:>P] %#>Y2iBceZGZCLH9o0"4IH\of<#o\2Ja*.`.MV?Q+<+n9Gqb1'QoP1RJ*m2>H7)^SZ5aMt`R5?8X6F6-\g;'(FEe@iDtF)FMt`8C<6IS'e(E^I[cFiqK1Z+L?$%[\$8qK[fq0d, %_T.\)WIU-6+El#XF%uiX2 %P%1(bl^uu$E5OKTGEcLelS%^N\D`k;449A2e[k7.eXqXmdlKZeUOhNKkB@^UM'W(n6)/k+EB4qJF'LhO`W-(`#j?;]!T\e:F@!4f %r6/c3q4d-6RbB+pH`e#@pA(Zq]q4gE^0K+U?e"!igok\b:5/"O='3"5_0"r.0&iJVXDO:?X/pOf8FNu&T?S+Y(W@Ukir1lrV!Sf(lL#R'ZF][DEho\T=)iS`iB^(r=rUFq78Aq('/hh %pI9$h5SmLDE4'^4!]mdTKa8@fZgr5EETKI/=!>Y9eoW:n/ks^!PeWdoX"1[DOtJo*OK5ghfpj[]q12F"^6qCs\@%FDE)N"2"n]ME %E\!!4hSdtqn>]frP,oE_W=rEe%E]kY@$YZ`47i1Vqn6Wko>DI&HaA$,Fn;bC?^^:g\GLZdr,B=FY[)W)?LOaP]sGn/)D4Z[FdLM]]e5#PgfKuoKH/;cMnTMi`^"#6kk':l&O%8fS\!m3I4R]E7kcag/Xldsja)eX!b-O1; %4Mo(Vguo(9W!4pNbrf)\]A;7?2!*'f?QIB^e>6$u5=[G@^H.ifqJn;l=5@1abdA0%AL0Jc(N]SV)bOh`oH0["R,K+*PJW-[2U9%% %Hu]g/]8UaBP*%@p1%f.uE;$0/1NtUV?_h5X?B93r%]"1!C=hipo%k'DWhd>od5O0eK/re&cGC,a8=nQ9S3-e.ZkH&RHH8R7L %\mLgWYPX].II:!6B/'[^VQH0&eLb^IWJR[RQ,M3_g?LD(opJHl9MJ==-_hGD4QMkNP=0Jh@Wpk^.jrE[c\TU`qu1/MXWJk6 %]&*_@"n$ABF\JfaUibm^E&/+bB#;;7@GHEqbS"(_6DU#GB1$ki&X"+?/K>p#UnuDEg07b<"0JMu2%6j*1G.+2Q:=U3YT0"uh`Z#o %mn'LFnX:urkIktAn$5?&Rf.@,1>e:9k!q*']lX_Bj]JU)-16Wb1aG]s-*mLhP`!31=;-G/,*dCobP]iYEar'eunAR#luLk1gts3X8WafP/t %Nh>FV/0>`k]C`L;S4`(SL[EMW^%1[PD!mJZ0HNH6Gl!gJ0X^K30sf7%H"WMCB9*=CUA*,0pf2^gTDo-Pp`J&]8+lLbjn+YNLK]QZ@!)@a;)0G\&BV %&e@L_nRkjYH8b\.KLiGZiHed-pT#UA'f-!d`Pjk5Zn-h4qi`iOdsX3hN2@W&QXsGcH<)3$Xq!WOWEn0>?s-i+IuGXl8KpY+g0Y`1 %36_""RaZm`gN'ETA:JA1N+$6894<*V3(pneA><9+N3$p=$:dQGjD4208uH=!IcI&lTDC>XB&m:gPf)X3(it"V50[YZmcSt`Q*Ud/34PQj3%5Jp'aoi.Q@r$^sO5;:im2U"(L(TYk#gfUcE<,9(fGdTnq1M360UV&"I;8FX28OmO@_4XBVmVC?FQ>3K?E3Q1\$1Ze#FIQA9-<\sPWdGWt00L5Dj_6UlnK/g7de+b!(8fo"92?P5T]VlA#PlfYDo\`Fu` %Mjna_A:VW'^/r7a0^$*k4g(g`1chpg$&PE=86k=>C.1o18126"LdDFR<\bXcTtj8'0+K8@$VBeT178V8HN`_4F?n7q9m]:1UrUOd %<*a";D=$qT]uI>A*.+gJi*k&L*]r3HV?6@j7,gE!Hm+%8!0aX[j-@=S0@=)hE.+UWe %d5K7D=k\ZMM%rP@g8]L]Y-,>Am>Wa&XKN6Z?"#$Gb;F15BX,_1F/\XHV+]!s&dGHJH*mF1klB3jXjWhQCpj=iXccf3'oqN:PI<-^'G:>Z1:f`rld)7uGEcE9>qqdo595kNj9,ca).b %oe`YdY"C"K]/&[gk10NrLS@GcXT9arSm;m%H!M5$ZL.n)&qG!dnDqCs'J8Ic'_H@Tpg\3%?[8<3Cb+n$Uj!qeVRb;lSHI)/drGP?4ohRFm+$WY)/D[t[U;Cs;/4Y$mM()g/U-'%*qIM+K$,IY/4?O!@C\aaH&PP+Hi- %m+Kfm5"/./B_4m7Q33P(4IL[=M.F+(F@WcR]?bA+i=:$!ZJk,#me%ul],CZRdfr6i-%Gi9om94Y:7T\8\pe<0i(<&k'92QJkm-as-\tS:i,W$VWNeHN0$YE+,k"P>-jkiHVhH]3Vh8;qhb^mA*@WLZ;Of %L^t[N<_GTWZ7fZ0/cPTL[@L9<4fQjieVK9\*)_XI*lM-"-YH@@Qd57l)X9?4b0a.KRQFGrX\3es:=Yie=81aSq?ubmS(=H_'[>0L %.%'9AA?-NnTq^t`i_cjo)QOG7<,**JOMj.X7C,mgWDq\`I.`&!QcKmrk=G^5jq^8G)EGjn,3W8VkEoHVSSR:+F,Q]4NLXM(l]]@C %!E_YjsD;N:p@<^bd]T%IuWLKj?]$ub>p?L&f=LECZ>tch[CA0iPi2F([[=5-p>O>tG;PplXfM\RbbaQXIc/<=NQt1_,6shocI)5)Zc1RjXc!,?on1^Lh]01Tb^N %]]hGb/_N/<)-p\YTV,;O7p#bjm,L6J$]k%.c?&>WG&Dd"J0Kbf3Ppm*>`f1/;!D!Jj*fIjPB>&SB@SK73bEjoZ$4E4]>je:)ORZL4^ %eH\j>f5>kII*2pTD9D/T/=kC1H"]4(S:"Fe@*N#*Z22pGD:K0J]?sG;!S'VEhFr7.*U3&E$+;85((t:XS4-j%79L=8;2f'0(-+Ga %YcO_VBoK*MXt$sT@d?b23HHCOp1!?VJ!gYICQ:k?L=]7=C1?R3(PVR\HrTl?rkgY$isuP'89^:/8H%fH1F]?hRZ3 %^SI9VTBs>0*_ICA<(#>`B?:%:_k]/C=g^gqJZK+A(2qX\=[Obdh&--P9X:eE6ch\E-Y:aC,Cc6\=iol)bC6R\(#\%"`SgRN3K&1> %k5N49<.,up#1+uQ.5O<^.P";:1%F^;%3_C/P%O?AiJVHM*OA6p`5T54G!N?/o)FtX2,VV7*j,7[-G=nnJF,WJfYP5pM're+YC,A"N+)!$q$'@ %F)/HsXK`e\P3@L6>(Z*hS4VR.AgeFXJdeSHHtfPtg1R5>=C\ %@WN3Zf/&Q4jI5ZG[ZY9.er`gJWZfGYdTuQA(;62+=`LjJBIeQ!eoVB!k6d$6jcEPNu<1$]#pN13O1T %k9>!Y79<\KV*d;a4Wa,E^N5-p5o0Vf"-[?o\;/W.lR_//l;-CjX)`5!3K%c[5,1crImVe1f=0V]k1%68,^HauMT>"?l7D]q1X_UQ %4(<4@nGS[p,E0&Rd3VsF+IDUrSG"C$hu9_8>)^#=Td\XBVrg9`LIXJMmf[WNk.[-@?&V9<`UDQRQ#TQep-f%6ZclK?cJS9De$+6X %T21p,*$UiW:n8bqb!L6'5UQh5b/,]4^\G$bZM'4pXu7P:T;i6LfFt5s6B>Zk]Wo;W%;igq)M%:D)gr9KQD*NHiWDL<&V<,bcE9f'^Hp"eKsRGg5]>d%sJk(>&YM'R^<8I'1FI.4`t'J71m:9PcY@[Di(L!49g %dcL@Y/qt11S*p__;=]:"l.]+e5#]&K$^"%ebgJ<.(]LIRE5g\=(QY^ir`i(6csj$3>WX*=c/u8SeH*:%"[eM*MflD9H6fbPmOBr4 %UQ5GKR+4l9HSeAIqUp;q.4N[:?Y"hHF+6nW'NTK3Mma50#9M67Knb.pj]/)oL7l>:RKn\R:Y-G3D/BeqYjpJG0S@EAo %Qqp=l`H33ERBjA*(/A/tXLHg([8YZkZX)$F.;=(@9X23%d4K654ElS?apj6AJp^CW=!d[8,X+e,gJZZrRT3;HAEGN)C6kfd;Ia>t21e:jIj&!naY=E5e&jEWH^Q\J1^J+m %phf)Qoc$ZCflHf,aT(M)1-]$f#q/$?QrS*NHneEBpnbeKWPR+Y)9Z8&IC>(uOE;@4.`%o40l3IAZqiBdP:KrsH)Nk4\srSi4*)b2 %DG8pB.*EfWEu0-M_0;c;^T6G2%WQ`BfYc`M*&kc)1QlWkKUtZtBr%=gld^g)WN)4`[HopXZffiGXn:,9s-^K^LJen!@hoPfgQSp` %$g$W$SP?)#c8ZnN]U-=\KV&sb!k]*=rbsUj>n51XT&/Db<\8Cgd]M9I?Xn`?3P068TUeo/k[]$m*.H]3;^=_f]UV3hu/RF]s<=S.G$qG\5YK#KU^P0#918d+leje3*4Mo7RPd$T!]^Gou@2H9;dMgbB-]@D7(CW\k^o.>d]/j\R'D,/M4 %/oT6ChP@QlZb;.DHF8e%O76Wdl,*V6XuW@&M(?i-ObcJ,VuH#.%[]ZV[' %4Ym#)Ag1R"&"Db,6en0UT-Y$gs %T=HK:Uc`<51Q.=HBqWd"R3lY0IhE6)T0EcnU&b3MNjlS!$,WQt,\^&sl&E>uNaOmbRZ.,f'#.P1V(RM&?WgCb;P/bfI\$gcs>@4R-'mp:\24NuQmgM0N?d %8^(W-m/)kQZ'6GY3MO-oP@]RdUGlNFGUhg8[b7Ma*7LVLbla9bdn=hQ>=WbrfN6B.\n1*8Yfj1PB&eb[G-K5+l;ViP3d^(\@8AJ^ %UQsE0NOHe.XkRS\C[J+GG%%p=(JVE11&$5sD7X>ubknWlpHgSnfSH^\k%Tmk1q;E#/_NO$bpIImCa.9-B.YK%Pk9cZJM`,fE,J): %X6$+nE=jHmoSCj7&;KQ-k,-&4"g;*PW\lYK5iW(FMcH*m[8o$pC&gPl8[O,\Aig`5cPT!u8&VSS$MnqCgTL/h$D6OPI)lt*F0/NW*dhVlC# %?h::p/f.CVb"):_.N&F*K=Q41^lj`MP[sH]jt[l!./d_k4]0T@WI8g:\`Vhur)]>?&*Sr9d\#7Y^@+-"r^L_d/rStkVD?kc#tU%h %RFJ#f<>*g&OIkbW3GPJhfPt[f&=J_lIXf]d%f<;>rKG^E3IAi^m+-VD#fq*h$pAR7f`O[!WEHo,jpC.G5m"0#5hqR)d;h$a2V#M. %ZSQY4Z^.5ok!)6MPGZ)WJ%\CFrU@JrOqa:\]-H:orU=H?+82^T&R;K\I(7CIfWqLEL2^hH %*L\K6*M+<@/gNA4fB"m&5*=g7KS;Wn3ku!L[$iB*H2UBLnET@N_.?O9j:%i;e3%UMZptSLln;ot]CiuVkKS.ge7q%:*!bdrG:hE9 %F=t+1cS^V!,hD:Wa"+":e^<[DdV+Q-`:NM$r?&EUkuri"T6:P6Z>@aJC0a]Zq82:Adn&`pf.UG?M-esMrD;_LQ''8PI.6^%K6:t" %q&!IF,Kj.NKU+eg_rR0moD-0lJ?%G%'Yf'bR?/g3H!-s.foH74bNn!u.Y,BU'nB&RMJ^'0rhl>\89cBuo%\pA1T %&e>lm!sRiJ!Ps.IA&ESr-W<8HEaI_QX;RWK`ci"sH39YhD5!=\`URWFshCi%bB;^i+_un\_Oo^&@Hrm>#Vpr3G@@r>4U_ %hr-Mc^\QFGc_'*Bq>^rqq"FUBhoSCHPf(PRH+o?b`]J,-""$OD0r!"^HrnbpN0/J5?j/^M1[,9a= %c$$_pqWf6[s8(d=f3%i]GQ/IYrP.;5:*I7QLj&&FD5Vo.Q\F/Z*:KYVC$rU8YccmN3UV-/qa]m2H><#*TI#4(pO.Q\^71fd_)`VD %k&6e;R.0q._)As4akt"&p+A_!VE*%#.a[5UhXY(>U\VVV0e %QXf!)!q[L'3R;XN-\(SX%O9E_![eWEN$8Q"nfG-E%p5%DrKN0]dAGRn":V$`%?)8IQC]2YBjU00Z]ft_-e;J60+E*u0XDP' %Jg6f:W@b>(&LdUa:@/[l;h2SU1V%-536O$&KFbk:W;duM5j'?`#nDE-6Ga>nq-`YW8t$^[CDnBfFa34G?=]jaYD/"V?f7` %!BYP/P^=*XmL"%?\BnO[$tKr'+T+T.-`;=(5E-VN/ETc`02f@X2sPq6]+@=5;NHD_GB:R0,6BCsWgl`!Fj(us$a0b.i"]q5@$>q>/8[g?b+&/L %"jSeL%PXumP4(,.@eVJUn711I>"a3IgKBIC+8am#m5CB^!*B?(7gM7^RCil#pNB$R/#7OG+m9er[sS6X(6Ak'JiHtHg+*F4G*j,( %=G%0t8!>)PODGl`b9huKTud;C1/5Kd(GLt-#`I%5U5oa+*TcGeQsmf^[]0dJ]!'SlpF/?d'm6S-P+EnKW.YX7j%Z2/LW>U?0f`XX %=32]gg&iso]9B5Dom0(>WtZ,)HCbC!3Ycn4B8OE2n17Ht,'4CQidMl%\=hR.+/DNB+G0QC'2Ff[YWiW_oOXR-UNWtr=d9q %G(hAXa*'#`m27un@k$87)"`O#%qXDG@3=OFeRr9^5l<,@=Z;oaPc&.^*Ftf`9?04a(>anCj83HH %;9I8E1GdjIT*)0>i2FfDnae<(OdcH*"p0nlFq0n1$B.uq3R!lpiMA;NrS7#8$56IS>hU\g3=J.5lj$!d@Dm_ZoM)P)PsO$nDTB`Z %`"QJCJCkm9;pp8HlBl=?$0SEB#]$S]l1fJiM:U('C)`)9r#!Ws"K%Po=aT"2@D]ShoInM#nSZ-&N%l>UpPcuRll5*l5X7D!A]OiO %>4"en%?d>N>#KnX%MF:,Q##!t*D9A!nn`/2RBaK*kLeLZXq(,+q6^^4A(Nb\jjuOJb-%(pf5^,J8j/>;#EZCQ9;FojLr"Gs-OIl" %#FZ`EisTh'6"L-0l@eM7JgqnM3!YL-/,@^ZbnpLGFpX7U_R\mB"KX*41.[`EP.BbB*>UaRNtMVP=0b(&ZfOr6(ulrM@5']?j>EPb %LbfNDEVGk3(GMITF9uPJe4>9"'5VUm=H8.S0Dkerah*4_i="p+i<..A^b&^L_Z8VT*`**?*8kaWGS1)*55L(Y6g#iR'p4=oJ1M=2 %TVLB68%a]^"U..ar90Jn1pSq&%8lY'"?8 %!DBO(r@G,a1gsL>rKcr;/8YCWSFFn!mubqDk)d;j*U0R^0b3?d+SuWs>6.:t,J@fA&+GM1DCop^+L:%L#'E&7.np %PMlS%KX!R,0Z+a]\"'a:-2+9$_d#A-[3n*Yb"k127r9=tX-DD7N.l<6O$`;N[lT+JHdu&Bm?LRsmF>!"o'sfhAtWKobm,R*]*eqN %!3LmU$C*),T4VM;*RtB$Ntdle"4eML$r!Wa8/uN)Fs-ZA&KYYP:k&Au'E8CQqO]?5+s'FKkecNlf@RK5YYU39Q>j^2E8E=;a:e":N]FQ#[,*-euP"s=/BHC#7Xd*k&dB91M+4gSsLB_?uiOp9]TlPbikh&0)$9pLQg++$B %Ss&X9flMfR'67CZnN9\s+np6R5Shjh"?b@3NG/B9`10J95sKRh]#',hCD0&#od(V?W;Y'mg.uQo0pWnMM$M(-&9[BU&LpU[!hQAS %T(8*n!5;,T3:o<6E@<,7R0%cUlcCWm01\$B(mk@S8.$=_.aUqdTrM?`5PN[:_LsGh7YL!kM`S;>IF/t]17G[O]HA"FCF:2)b'@<`+_NsYK'oN0:beo6gb<^iW5SNWsM;t]a4u*l@A2,5=_$5HP6t'+d)8n-6S[PU4@k&8:f:o"AbfJ:b=s'Gq]54*OYot*9q#@ %c2M2bs(=RMJ++SFd"&1j+.G]qYP'%8Kf=3Wd$/Pd)]3#0+INB],EQt5=HA=7?nrf$gh %$3]d":qs!L(5K4%S%P2#'JPo(=tMJr[!!-+D]9*M*\kA'AcP//2GKs\9`]kIW7B=&f6.p>qb[efLsE8Yd/\j*HU8@`[LWmknl2'' %"9f&n+KEb+$q-BVb!/jls.ce/m8D7nZqERRW4",5*SRKbJp""-]&t&J?r4k:p'#"6C0p-"L0>B--H65N&SbS7H%m4I %P\8Ll*RCZHB8kZNWY(DNad"^qUM>Nkj9RMH%%Q3H@cC0BbgKj#7V=/][r=bU#pH;:0""^r*[=C==dAqcgRW*)F^KUN=6:"7K0 %Q`)TH'$CHldB(^$L^FgC)o#Je2Hr?8$4@9BY(XG7)(eGFdtbp;X8"'[>i.MISA3WcP7.k9L1Q&aq[k^h_PF9 %e14(nCaW+H>Zo@8$3nUbN6BQ_r/,+P/2uUt9ik`BZrM0/hb2@KTmWD,cVdG/bW&0Sp?RA09,a;[4$jS$d4mTne7PKo>bbTsNg;4c04oW9jcRJV1_?TD! %KE$5!m=8W_l"]"f&lE(eB[`aPX^l#*VM_9*) %#FNDf@RDf(foZm6bZHfs`6SnB7WI!OoOA,J._d$ORW1OoD&l*BFoO9.^XheM9'cJm%'s.70[.<*p10k?k',s[9tC.jTABJ3s+J,m %3rtlWgjBB=$&\`3E"X(NpM/3K$i9^mdlCg]SFQN1k'quq)Bg6!\I<7s9.F[,_Pq@$i2!m?g>IPMg+^!sHg87ZfD+VO+X$'?JV!#CKA_j1mijAfrfTH_?(&7d%g#' %&/rH]"A"+q]!O^).Fn^/T+Wd]=eH@_QF5Cch2E+K"JSMGE?@7*o_FnVMk87n_dHlX_)'HkS/$iZ&qK!.TMlt;&s+2pF1MRto6QN? %"HbgApJBl",4bn"&)]3s9_>%(!'7;Pg*OQ-1V28A@_i3^F/Ukb2I(rFbg;atAQ5'mN`UlZp@g=ZADKa:JKp&KShc(r3V@th;;lV]0m@:T[B%((^AllYfq$Q,,=PD %^/mB@02=nQ&/SsH9L;1RoPhh!&HYf]7Bs^QoH3oo0m@%%1%5U]u@ZHPF<,=5N%],bPA2#\oVDP=5M&PNDJ-.loBA+CmLeKWIpHWe+42%odE@+9E9V07)e(s3k-c<05H8#8F;p3u$+LKLQpA$a1>,ScST3 %YCV1I3mg02([is5s+K*Ze"3:2:oH#+=R9G!HC/@FlfJ#iJGU,5^up&KF^E6=M28p59bTV@WugEn$ue7%B>Ap'CZ(Iq5!M+*5?Ds8 %O2>G>%N4cf4oofn$.bCUS1Q+eC"FL1T%_5XW'.uBEe9eB"9n0RAAC_4e"^AsoZ7i8B#YAqL['H3H5A[g_3oX&*Ve.jNi6TNZ6ZQ7 %1Z6j*M=uY'V*r`T#eUXAPMMOlR_/nmAB)Co"@b%"@!`(,`,$tdIC#Q(2E=4*43tiM;6WM%IJ)\M/G#"LVHIYh@-+m-Hl9-7iM2L( %ps9X$(&>,;pV_2G$Cdi&1-=u.dt,;'`sW#?B=0?"F?$^cc`/*qLFhI[oc0WOJ^7f$/>6RQ[HKH$FYcf1*ak`p;FVs?p?jKV\76=NTL58_^^W^R2 %rW/BBR1d1`0J"oqX*cQNA'G)@7@jEX%oM&^$tGqZ'h6s6S:F+ab2b0`3YJL"_]&C9n%!33<3JJf1K$k.hk#/oZ^ %ZN,&;WbF^?1Mm+G;O>07+\)iLo@_=QJs.Nh0C\4`7a&,tC9T-ZDb1,[`-=(!u"`*Vogf?2q %Gf@ZLlbcqN#.+oGkeL:\0r);#lO]e*+_Su2?LBC*+;&RQPKl-#G6,"L%==3!ec5pm;-hKgE:!)70\k=i$rL^D7J--ANZHsobQgH; %_Sl86#*Mn?Q)fcM^skg03gn+I9Ib7eGeh7HL7L7tY+'9G^uHp0JdE)V@*l$FrM0ndHDAT2.^]!2.P1kAq0LVKXhYQ]h7Ie: %!'7[%EHo=AP,h9_=RB&tb&f).Mk:N[&PA;&/;Y^bd7GO=$mZe*$oOj75V/q5'Tj&O^;+u4&QF^!dQ %?.ZmY&janoZHO'7BK$,WkgQ+\:\5t\0`WbA^Bj4r1$(kW?(\WX,egUt2-=jS5c=J_n&`3=2lTH=!9#c_/o3Na.`,eK!C><8L6RGM %2+uji2d;o8P6t72IHI,RP.F7)i.,;YK2[J7Eioa)/Fiefca17kK/Q_$3IC,nq$O?t_%jGL6Au`&^*A=nd7KF866l+2,dS(9f2S"R %@2ep-2NV10d73b#GpQjUjCBtFj(ROcVl %h;4PT)Ca+.)2.=eUr",@YH/0mQ,N/!Kkb7g6fi&r'RD'5c5&b)PdCa^Prju?APJMmR4G]$1'cKkUfRDVeAG3_[&;D+$j:=4Q*35+ %0*!uXZ0N5/3Q;qfOV`sc[Bm.lX+DRMP^Ash3U--p[G0WH=0o(=[&o %ChISt)46pHGsGuDc,RlF`R:E16U_+?R35E*D9aV)fj#I=?YH$!OY$Q8i,$QO"<17'N,DNgeLY2I!FVgu%91dg/83IL0i((cD,udS %jEPMA<`Gq]`EWh_oIA/23eUV[VO">&g]3e=GRa_MSEq1;ejW/YoLpSCkafH1f6nmh0AJ;SF[TX&G_M%)BN>U8e&^@1)b:Skb*^6a %)!f=!c;nWjJQ?t][OT&T`'MO.>`8Xq+ODKM($8&;5aJe_?HnDhEYK6!6lsTo'rmr[9UGfc#si3)KbH<$A_hSfo`Fcs6]q_"fP8eS %Jsk,'"2Q9t5Y\=?GJorq/IZG>&&koVR9>4O4;[U:@gj)j-6s!7k\$eYV__.1L7+0Q^Ci6"U82!o>F:$a6AglCJcX:$UW`gVPags# %d7NLI@1>tRY(k6$-j%Xn>QV.S.Kg;80JJe:]dFm\!BT&VF/,5$UTrNum#b#rJ;E1g*DKOsc?P/qhV5,26Vm[55h+0d&T4OuMJQ9L %_PgtFMkW1ec6_PIf96H@=a:WO\(X)j8rtKNoTb"kD[t9?Yg?IQRb`'$(c]WtED7'7-l^9N+#,Hq2F>#f!lk23oGEsWXUTq5i.e8G %_D%@V'!@W+M'@j=/q`PiF@N!umF",?Y*Z]8)ATYK`IP`aeBuRP2,MB:LZ`k,\6kCBgkCKQlmr0&h/S$\3cCm.:p!mV'J\HG-hmd\j]*Ne7.<1b*Ra"f;F %D&`*o>G&CDB^P1S[R$6kIFEgC"emihl5RV[&/u18+"Irt!mSVKSJWmCd\GR$EBWL]Z*a(Ho&47#iS3,DYUeq=c3UB';0X2r` %OFa-[1j5ObUU))P'1EW9osij78d(JAgbNXIF-U0s*#8o/3N9C7.[qn%`if9Gbic4\UsoNgVq)ofI%"pF'>YaBMY+!+^fI@9V%#G< %,LC141#7:q@%J'FW?K.NF9kCBMlJj:oq3-5;I'.]m;Q%I-78OJ+g5$)Msi'nLX.3EnmY %"?)NCecQ1c!Dlcr-m8E!';,l$[E4ka<*cN^'A_F^W+X#bkACEW(ppH5JhTKVGe":)LqsG/hl"n;;0?hd6%FJc3ZnK-)mE7D?mmpp %.gIK1>>C#te]T,'U0)!m3:3dQjKN[+PX44iV^#9Vfm84-1p.-Jg.hng]a%k`&D=f@bMYpCO]hGsl9p\FJA.fj*Y:D@2le %JC%,"7U>?e-uaME.:%G1A"[Q@*NOLr!R5j^?p;%EYUKZH&n`(A7@#AOEgKlIaJkkW.5J-)8*hoA6c2P[Psg1CQ6/;07bs!-A$:P@ %g8l4G/;4EbXHV',>_G@B;Rh'b(XRSRP*ZLEj5\D4$HQBgm %63J)"`,S[#!BT&of!-UVPcILHfY5E9^kp7cfe/kC:fqBY?sof_!n@X4A:.Db;sonQM/JJk-<5e^O[=S>eIFueD$:4aB[Kd^)#7_U %0^0H5Ye^]ucDi4dDD$TC%A'_F=4M;p0*A+qI[NVA7ms6;,%Ps4$1RJY#3;:qAGeYKer_-*fgiNtS98kgo/C+HHaNQYu;'YhTR$;\Xb %9L;@ARZ<=!h8GIbQlGOb%^0oq=N:;PjX5?%X8TY<%S1ZRUh$;=Q."3i6YEF0(=4?oQf( %'p0,M4mA=ID^5b>/%WBZoh=F!>A6K9kARGY(NE$YF&E.1q+/WpZLS9QXcDH%+9P38'>bu,Acdmdh9BE3p,_D'nH*J.;#i^X]M$fRZI#:+-2\YnKANrV5UI]R;M`p;L,8U %XZKQX'f@MQ_2DQ`/\Q*$03,!='JiAS`i4hY"F@77D+p'Q0\=4EOT0nK-0Xc[;jApT/I5@0Ysfl^P#+%@.LM'0M!A-D>LQZ6E9;/Q %%n0gdApqGJT3T,4(uM)V>(piQEPe$m>7G_L/UoLA97F>kt'L,'VdZ''>@Wn*][>TqGt`J0K>UF=cnglX],'A\R8fnH(G#?78IquPFb]njd$C0L7i=[1`>UkjY_US[TJaAXU2J\Z*mk7;SGt,DM$U'BHXY&liLNp&R+9; %Cq"FHX/^IKqkT]/9\rEJ:7=u=9snKYlT4)VT[:Yg^_]VZ(jK<)RjNPro,#=4X)n.r;SmG_;Sq0TBC-3\eoWUIBl)NTS(#>UiV7&3OoL=P5WIQF]e<(73H9=jed;\C>iO %S_9.uo#sQurLKuQj-A2u/p8_U@ESW^Su;OHm%K\IPGmgOlcuLZGG5egB_1M_8(nRi:/qfN3GfmC'rS-2m)WmKlSA&& %WTo/J'hb*R6eYQFWa9O-RAMHX/;>pAierJ79L42D%"f$L4gnkV\n%V#Pa=hpjg97@/O %J5c*Fm$%*RWG-XaYMBOcnXpY'Wggjl9n7AglBt(j:9U[$I0+EkF/M^&Pss#iHh8kj!ao'Z@\mK6J>Xm1H)pO20q2EL:>YcCW$c4: %c1Um?lglD:WS0HPMc*`ClDr^5ed;P\qi>7QZ2fM40m5WeR$--;bG/[O10RSu^Ci5S:^EJG%9tA!-4Q:u+Z:-^BsO$rO"fG@C'/bPd#9,j(qb(NBqnRZcAdaUjN %\A0@>7;Y:)3_oWP.0e-J5H6dfGC-0tVI36"X/EqZPtP-'$b'bVRWVM,eXdr:2U92pJ0&i'FUk`9.KQ;tlCi?.[WtI)94p?nU=$i_ %b-lgLaT6TJg180JnCfc:jb.JK`&p?#'C:0fu]VS7!?ParD&9@.l7J?=hZ$l;7_8b,$D%6:[]#@!2FB#+>pP %W;dDGe:jTk6A9'4_1'i*C49XOXb$r0,Ud\*TE]AK@^Y'*-McYP]AQu4#Te\ %+9m!MqjD_d[iO(7)GnYnA#hJ_YV8e>C+>.b^%Yuk"8Peor\:eahi=+%C/Gnkn,WcF1HB`lVK)qeqZHCN*0P^D/!_22jW*^nOa %fqcrp[^!CH&C@GFT1lrr]NDF[YOq=m\rBa'<2s([JlAiY"B3lT5rjedDC5[36,^RtaYnd_Sl\'Dd&Qjc((MF2Y7V&V6W.FAuDaPiMD9CVc%BZWk$$Io;li`)R_qs %X!c8Y[FOENX9NDB-63oe)78)Z3&M#%`h<7.:9R)S19;ACq`>UZI5'6dqY2Bl:jB@OB^?0gV)(qBcJh%5%AXp.,e_`1f&h8?6fBA( %G$F%=I&=iLn5)R;8duC!23+d-244kjGY!^U$Ec#'&cm[$*3'NtbG(QM/+A=8ij7c2/"4M %J/L4KIAb"((T4,Ze\oFmK'6j,-6_hhD*TQC`;-XWBrnQVe5c$2Qo*WcJAj_W7\CGM6rlTCX"NJ/rD3pQ35leq8)U?(mU[t^b\E">9U)Eth=UbXT_)g\=+Nro %SAp=]\:i3C9ip?.e!,["Tb[`="f5"OSbn75=H1:u*ii8L`X$2%f0[9Kqj+lSKh.&+D;rbjPpSPqbH2aDkUhL&l4];uW,[HmCX8T*IQYDl8*7L['MYrqoF1c$P]0hUXDBLbjqbTSI\f-[heSUN8et&_I2#t)<'eY0. %"m3\SY=]:$%5B;I:bs)k6.f3O$YQgGP*@I@F&5>uVuspWFWkPM*,TW5qTk`(^I@3-NTMBISn2)oH %+:q>48geE,!inf([VN579/Vc(;6OG,f\3.]WfBlRnn"qaJf,tVBFtb7Zg*IjQU4lX7a%NX#CsKYhmR,^U.Hodi5b,$S?&Wqm>:1e %F\u%L'38"lP??IjqB]?:fki,E!e3dbf>7^pm"+G7/>f,0V$j*S:b/`HW%%"A8I",n1lIP9BgEk8'l`&dQr_D+Gj`7AWN5V1G"M)rBso@:oC3>"4OqnhbYk\ae9"26c]5XcP@q&lWNK#H1^3(C=A:HW_:YF)d1R&+(O(K_!h %Amhr*@JIOb^#5=A:8Q](8N-!91e8(R.lBO&2_0LE8TMtR`l6HBU5bd17,f=kltSB`+F)2;@VY)Gb:B*+^l!_kdM0(pSE@rF#4/,p %W/6TUDi.Wg&dP,+#6Sdb;M>g:-_56-LVDpGZY3_R't]^UOcPW64kXo&[Yiqa\r,SA`XN%[8rpM\HN5tDU=_bC,=c?a0=hI?@tYM;:P6O&ocdMC[>%4s4^]L`J>Gt"$Q7p1Aq.:/j8MtQAC+D1i;5]K2lu8CS$FCG&s'Ib+,`:7!bL: %pT.Ib((>B]b$hFWdid";.THb)sqWZ>6LFEqMe\iYoemm@$8Ci[-\AZWdM`Q:=`Fds]_/6^BrV\rSlU@M1"q?,EQ. %Dq&[SG%W>Q)d[$AYQl'rin6lD%HJ:J&>rd,PNM.gTqS`5^oQ]8JL\uSi.D0&.bTnKOe3(j@;E55^G"AqD&BSJV'+nD^+8nb:X#]*sCJr0pUKN4!9`5C8<4\%X9;7C:nSiG0m]0;F4/M#51f_qOi5GI4#rfZ99`<(k2(:YDB%LU$g %$(sZglpDV2NQk0TPSkp,Y6d8JI*=SOB\,g.%.neo3HQleh^Y7`I>-,9M3XRp?r'K(t&0qE%i4JjB):5d8N+%eod9e/!8sGt\kX9orVUn3Ibu"\]am(TFeP&PV07b+2uRT7jRQ&a.OOc.gpG3BYO7i'MVM(YCV8j[Gqf@@g/K*E*FDh9?GWt: %@qmBgc9K1&K/qWdSGF6#8M0Y6mCqQrP!PuA/NLCLS\]AikFJB:AEKhn6PRB/V&5(p;P6(S,Ii&t8dlKiFOY]7IVu&(f[ZR->$CGh %d@P&k6M5pu4[=/Qoob.GJ>#$ieQ=pg9W=FGNL79=G]=Gj[ebI?(g[oT%_X[U0dpG1*LeGL0lTE1VU`0mWu!!`9_H?]/=H0=)`cCm %ZYrW9(PTio[9pVZMPQV,R%)V34Ok*0S/i:l68L[M`9*2`L(;]C<+hJp*_O.Y!Hor\:ocJ-.ckF=++(t?a0C8s@3uoe?GNhq:l;@= %bRn)Y/!,MDeTrIgH4Dg;QXq'"]n"Wegu::J%mfkSe!(04W\+*E=DTmp@,MgTh2?o;i:DaAZ7=GQs]9.ce$kQDOG&285`Wj>mkf %dS3,^aYc'e'YMs!J)*NfcIU^/GaZEK^dDk\g;c#-3Yj1XK^n %/>kL@Z/:^*3V5>OAM>k&&U=NEqtj7*>(QSs)*d01k_"$.HUa=(6+fU>20*[Dd@h*,Pg44uABd!\h9: %0Ph=!@n2j;:;5qRK&,/i%[oITcmg))Fe*Xi*cb>u2L()AEeSJ3cc %9-iQ6[f=fYDO6UB6'@2MmEH'*I"?O#7[RqL$>4#YKu7:1R/&Q"OnbB:`D@0NMb=4C;6[5UhN9=?)/7ih>jF[FG(.0pXcSdg?dli$ %A4%^6&qQQ8Jq=iFP?U&'mqW$bi^huG6boTPb\nOj!1Pg-$3F)^o!RiIQtDcUC:$8gZ'-'irT2KZ5WWt-"'1Vr?j#]S:>sSU>.T]b %JKX*"!FhE$2rM7rFD=?dS5)6^]e+qddA,29G+t%U^CX[i;cHd2+!=fd?TjlIYb9`Kgaim;G0s^%Xa[S8p4ts?%7FE$ehs7&[+kY8 %Jgski%MGg8A\F:RNf'aRJ-9PI96CI*<%W#.Itkj`8M+Rq^BO`O\[_`=CrdNVHS#?;4NSTU,lKMQYr!:c?_\'@R01*`CfZ>8(m@nJ %W3&[R('<51b\CS'+o#29-k_Yr2n,a[/?5+@+NeNiq#B#ofB#&R.o#XBn.,>V,OC6k>^j8KSDFD %rU_JPFihe[Q%cn;J7Oer1Z9[g=B.HO\Lue9ep1+)S?-4u5r(RMb=8E=.a`4@O?gGS!=<,]7PG"na5/-"(ZX'V)E!9lT]G^s5uY`F %(?/dY#m^F//(^'F.MQQIQ3s;.?-:Xg>.fM@`\)N'f,31PllLh?b*:!Oa++MQe"A*N?-9j$cOh5%+/E7r/P.)C?QqmE[@,-q2Y(@B %E6CT<7q*7Kd3c^tLZWJD;0^h*Zq32o=_EJE]XuJB6+C>XF %>>Q5"%(^FG1dP;QN?2>8-#*g8Eq4%_W$0ADa?nB.mS(0UH7^n%b\iS!L1r'M(J`Q1_j?'k#gr_$O0erIEN"4LliHYX7C#"LC?mD/ %\MQQZ;fj&iMTD"Z$+aerOej\q*-S.ZjS[@mY %,]"'8$r71k"+,lKu7'iInaY-r?bZ5*^c.`\DZ8X;dZ`QAc]^&/R]%<]m0r4`Oup_M%6g6eON'\o?%niQDJ+4 %A?Za>./"&Q%+5d!2e9K/YAb)rmfZjcjH?>OKN:d1b,aE.\XO09[N6j"VE %Q$'!D72>@uoFMW %>c?m1e'&c+(8mC3;r`*b6%jCeWULm4^luK6Md+iOK?t_Wj1Nk>>#>Ea3QFH=R7VjX+XK9)FS\8$^`84CgHes\K]=GEOoZj#H=N#f %.#C[FX!&n4:X>_pq)==!^d-S%?Xn[i&%^`i.Vbk69*%l2!%<]!Vi?L'><4jphq5?Fn,uZ2ESK)q+ %BZ3-Em>simnE*"fc%$OBQ.H$3R+G7c"m*WBS:;B2TW*q4K9`fR"N-KU_dQC6\7=G!q;&VJMR8PKpQhB[j`l_fT`IL1HTYX8mi)2F %/4TO:(Y77QE=_IUe`%UVK\'Tun(m]$5'"d#a@KI]/&Ys2Tt]thQp5B*"VXON^ChlJ)NH:@&M&E" %3J$*'!G(WSdC*-WI*4h\7]K:7bk&A#I9(AI;#.USU$'73WFcaBc8)UJ0RYit-P7-Oe3mt#(Q8>Ui+f4g4[kb/WoA.Z(&)9[7NieI %,%Okh'p]s-_Y12`<&>r#h0RX3nLBbBHQqfnomn;f3&(!@W6UF+37:9a%HHc><-,[HXMf%4^/:eT1E'J:qBXigPq>IU3CftpJ&ZBd/$a03U@-TUD!:>8u]c^PtZ445I:M9/u:DuTb_P=TRO?!7tE!13X;_ecDjmZH_W$aIe:1=Y3stkLB!O_G`n"V:)0%4o9N9841+H_o#_#U'`VACsgZc&>7c%qQ2(FTt$M=KR %=uUfZR6_i1DU>VB'j$0ih:]&`$EIeA,:CH\*a)'$oTeoN'I?VaVU(8`[A*+;6H[.s+0bSB1:Y)jMj==8r^8%@rC!UA'pR8@=ikJK %G9n'\Nf\8nW`_56Lo5]f!+nAE@jObicn&LqXq"W<9b@WA@?:KD..i4gEZue'iV!M.K&rms.qu+"N#Mo]6'k8"Xi+ZLmXELoT;3?Z %^a[dRW?V.)TgS!4j!or*P):8mL6;\$KUSD>VL^<4QDn_t#'9a=AelXD=@/l"PDuV>/L.A#?9O4)SEDtJ]#.KoOGc=b[USi&c'ZBnf>HDXUag %`g\=7k_]kJf53At79u@B@8VaEB8>K^n%%`3lXE.;h"9KLM#8,^8ot'e]%!aG7uW_,0cOlE[J&OCA#C-5D:K"\U/3 %9V`/(XG$ENZ`eqF&Nr]Cf_W/j7A'b.B\5/rrUOb;CktGYfd)2EZ.'EW %@Y,6V$IP,(]DR++Pf]1E1*0[f:+B"rk&s'1cf^K@q#LT(b,_bb>p[IuHIa=hY]ZIg:-`iqjJ"6l=;#.Rao!G'&8eM;7%fcP+,gR& %"(9Xrm+/M"P6+:R2W7&kN2hi%3#/SB=/aNRW%th)'`E`5:YGug,=.iYmNarjMm?7&qFY[uLm:7=4;2;=oo-p&GZS7Dg&he3Y\K=urrM`BrDNZ12S6kV4o\WTLZbngZFpmb2.eOn5gKTd-)MF1h> %`h)p*Q:3/n&]4PVc%-n`V)UOB*0\mp8_>E$%19P!EhVRs7/*Oi5fC9)kPSHK3HB3^B/EQ3!J[@p:dml(bK"N*MoC %2-]'OZ#\06Ti[h\0JFIuEWXUrO:GRp^aQ@A?*^V(6:nqW"+sBd($[.:4P]V9Z(T2SKRL,pLkZ+#?SJ9E'U\dhmEnl]*lR?AX+$@e %;2%'XU$oG1UfS0NN(GBQ>mlLB6;O(J>SMsh!VtOI?9BMI+m%XJ'>'&,W$]AI]5PW%N1Ytg:mC?Gc9(0/pPqJW6>'DGEa7[6>=]KK %oE-SORat&;2=0J7>(*aFX9c3AMOpo@/WjrKQmj"R_F?P&6!g@D4isjkl5B$q#^$Fds(YmIb@4o&NTmcICt+LKjV)&@MZ-\8WD(lB %B_YVdocK8XB_7T/DtGq9[[GY#o.1_Ufqj:_[*A:]tW<8u[O&A1X %\/JM6Y[G,3l-S:P^b3!"_,off&Ot5HWJ#4QotY,VoI/rrnrHbFpQ<".AjTR&J/PVtRsc(e5["JF'R;ce<^Y&on'Z2.6?Yet:k).G %1/=GV.*&[u*T)Q#<5V^UU#WIZ+>/[BdC$2&9qR.;Y)[rjl8DH!%MRtJKMl5j>YhP('sk-.dlr_6MG`(0S8>GP0A":`DtSZO76paP %8MWnOTgJ^.,Y2f9>D1O./"s/rHkjQU:NKYn[O:(.r!k4]4qsl/!%SqMUI'B7=9teM8kh#G %]hu\JF#k\5/&.pL@&egY@'ih/F#ofjF%KFc3bR"qLf!\h-LR,FcRMu9V\/>t8:sm?dipXllY!1@TYfg@JF0]D,N=0Wg/,@*@6,*= %T48:hmmfol=7/`ol3DG*:7el,jp&=Z22&pt>`$G%[CtK5D?O7VdqaGd)aV;OG[gVf+n2MXKN^?)bU[Zo;<,\GN/3W4]MIAhh<[Ej-)dK3N6-RjZ<@gK*<#C&Z!6>+=W#q,,+Oau"*c,d!N$M%QP:/#-J*P]T^D&XQCcb'rh@<4f-]88C:?% %AVhT>"fPO2G,!.OMBjU!X%p3n.;)#5$=Rcd=h-T'5g\R`Pu2DUR>bspmFOiN!>8g/8KHH`H$;(WUBBd(/!g[=h-Gsq@:a?,i`I7e %KW$BU:/i=7(@(e1d3sBf[cGKY6DDM]<=at.`+p\l!LD?H[r14$9b.uSY^T[T73]&A?I-Ta@'gZI,O2]C"o_Hdi5G)`SqH<27HMJ) %BK5S*X&)$R.&tCql=Ge3XYM:c'XqrE8%i(L>LG;C$Mu"=-,J/FbB/:=7Tk[G3iSF^mJt)*=3@(B[RFJ/;Dcsc!8hN?!Mpkq!D=*&$tkm)mmru/foX_);:6El2eFF4KL?e]Hnlm@U[P+* %`1.AuYu$rO.b"ubAN"s;>jJf%\.a\XW#OQ:P)'CU4fH5_\.Y"o`[niD"@Q@HYaEkhZSJ\$,V5Jll"JqB"'<"PWis!bF2=`jSkG95 %%sShE0n1X`D%AucUru3a=#"C79"nQVOUNNITDjuZM_37pK^#g`U-TWkIPm2aHkd>G_\M_pb"?-CG'(oC*ho1g,1G-Q-breZG04]& %/HOi`k1AoV1e*b.cUt"`8[66O@4^Y1Q+4sYNFKj2>0XF)T2G=O+di=nNf%C0'fNo]i2O?S3e$i*'\Cp+"Zi7A5jOY&;CI&1Sq?ncoMnWIB"=H-9^$-GlH-^e-`#Fj3_q@3%E<[Y:Cp`)ACs5?3N>b0:28-O-SI5G5(eP@k+lq]0TR,,jEGCho+bX^#-N %WUNgh]f5U>[3Z4/G>.2!k++ccYQp+N.Q&5c#Y:55M3,fuo_hXgQc9g-f.bVVY8UeDil\S('B*[[; %.2Rq@/PO$W?YqI6Qtm^1W=9/6 %9ds'T$Im1p;69R]fGC_b,t=bjf0T%fIm]T<>R$=k'<=s]Z*)dM=\:%+j9&[=VSaP[&!aT$16V*WHgoi!(T[RprfjYP>j'"E]bX:"@-r-3QOKX'OPcc-OqLQ;/ %C8((7<60@Wg$82O$G!r?8/"qiPTh`6\m\npB7pqZ*J@ZX>=ir/"!JN?Q-mNnS-D8ffi/#`#hl2]-Mnih2>5u]rQk`JQ0.%]!3s#5g[o1DYl\0R3(U$bfVD2-8$%t;d#TTE:WV.Qm***:'Fj(:+!i? %/>j,A@/'1lK-/F+RnC!eC5`_BKeom3^b3m3TM#r,.U4nGZ'OJga!Dit>:O1iogk0jZ"4Mh7bjU#jf\GK1oT.2;`fFUiZP5=eJJQ_ %QWqfCY.dBnNYh]efhkjjoqO2r1W]7pOO[[KX56\2]?8PG)j6cAd1*EJN*Pp[KN8,ab%F_jj[9%13-LuKLfuA@3GP*U3RCu)K'MCO %l?T704W`df->>u,?rWO*:^arf3@ap:FYQsr8_[ro<@o2anZIK?<%.P,=g*1_cJKLn*Kdbo[5pp,JL+0-ARuS_@>H_ukY[n.[7JU\ %6`C][`\>gd=_Wg_9qI>>T.S$'4k#%E6N+\ji_hp$$;2^3/K@K]M-)9Y?so@>7FUt=Kqf$&,'I-fetZ2BTp@3m+T7bk1AZ$a:7d_Y %*pu)&mCh)<]jqX/$$*+KjjD/EX[ej((`>.EDBlIeuI%gL:uOJ5r'e(:/XB2?Y^ %6*tohXL^37eiL9o'L:7\<+98qZ;bpC %o!J]Sb$#0Cd/R(HP^0YjNFg#8XgJcs-JHtq7P,d[WQ$Jg/Arh6\0U00T9[(*.MlM;N2[b['M!.7pl._*r8L@%'.+C*KfsAB>[H6FB<+R9)@NcSl&/Q(5F<[gG>naK[^lg#bf(#o=Kp*hp<4%/`7o,aW9.c/f,3ZgW,7J'#oU,2T %0f&B)i"Q&E8MeQ\a_!&3M>;u1G4Ou:+"Unu$OKm^g($SQ82`!G:U1jpZ06K\%V%rf^>KaV;,RF\b`q*\86+qfV2E405b/0N9<]%5 %:'*MK@#-qs0:]INKI+tm#JfD'NV*$$41>t@%"aO8(#TVQU@:Sq_P`Q>UO99
:S&:Bb:4[9&iqB4dLT;de^VTrA0ZhY,+Nm(7^;BSdD:T#Otdia;\RPZahXA?4$JLA %]Li/gU_("g>iJ*[0pRdpgm,iW-$`ETeloTF<2lLt)Fat^S1jC?B7):1^Qd`;-I;PF8a9D\h6i>PSE0jJ\Ei>(C2mutj\cjTWr&q@ %d+iPMJJATRd%LU$ptHRQE=.W6!`;uWZl.!6`irEFhn8:j,#CE1E1RZ[HrMr@.',`$Q.U.Ek4Eg(`Q_)8F5#1pRi#i_50TU`[(Hb# %3u(eL*gK\XZLO,>",UN5^#Eu'A\DAB-H;DX>W[p\@E"NdMOd_UU'iW=N!E>b+u>4>_P0eGWRq""d3>NDF;.=kM1/hHCMBA4;$Uf% %+kIL=3Qq&;+^h7?//9#frY)H3()CIX5Tc2&L"cZC0^:9MRTcOSrIFAG9V3X)72?*&.]u_n=.t(.-o\$LArT,nO7/P7-3q<&eh<@rX.S\(GpDDuR,N.E\3\TMoBh4:H]/!o@D-EcoGjr#o^fec?i2pE>5Km]J(mS>W3BIfiK5L@V< %g<*B@2uBkC"OkSE>0)t4aK'&f?o>9uR[II+*3b-EZ"[s@-9a>.ckc3&(380`=`Cu.k"9f&1CnCIB5\s.n((1J`N6m*_m#Pe\<+2P %aDl$.6S;tG2R=qRq3VQ#RgXM5c&C!ifqXa)dq2?i1Olg#lai;q].8NBAD9$6EqdZ6/c!-*bi"1+ib$2M.ku=4^T?l^nsm0EU>Hu. %MlZ4/7\99>:A.$RFu.ToB3'8B6/KgCDl'9h1YA2-m`TnGZP<7JY5L[nIPZboRI.c)%+&MsB^uW!jhO8h29AFLp4EF4d\t/21%Apacq"'qZHVIPT %-A,ZhmB8qdfHq/G;%5ED$$YqV=?#=9&1B\DNgo@M:&fSrnHK??JlN(i#f[uWHa!E %\B07`iC[G7V$f'0)*pPXnop";/FS5_BqH_@a2/dYr@=*Qb]><:YjS3'B")i482d+-:(s/96j\;?<-7=,' %5CJ)sI0V9LS%sG2.t!OH^<&7I`(T"KYeQaq*j3jgI=KD6Il/$DN;G2ErWOAC-KflR3l"'.JVC*+c2%Q)CDiAJ#L*S^HW3qB.kf+= %1pi0$[*(WilU*5RP1[Md`NEqkan8q0bEsON`!qY!q.,6u0*+/MO:a=kO_[D**%".S@2TF^0i8Y!ki>V6*BpZ3>up"ZF$L*.(CD^,C%>Mrh.a#h\2JD",Zj %#dcSUk2^XoSic&5gS2Hn:nR,!<,7Z#/^^rmU3%@-hjQBA$^>Z@qRIqM %h&`A8K`J;JQ+'#Zf;.?:SZ?[[eo*kUfH^j[+r8Z=1e@t^#RfP7Sup'CRl#p/P_j7'`?l1,S$]FlnCXCc>bI'm;+rmi.$o`?Rj==P %2U%`1R2,Lo8]SA,h:\V"C_D?f,S-FWNA`4WQfq(H<2WGge-,p(#2*aTQ?@bq[7U,(6k$\%/[m=7C$8`RFYe'M1#lc0-#u-^2_n#! %a\up9Zo#*rR[GqUXI=k@RtY+d9HRMep0fi$)=W`BJX;RTUVZ`BJr[ZrMSjTO?7^bcShgS=!\,f4LX %'/q`&G3-t#jOc>rnJ3nSRTY*AFMOH8K-eRBR>\R2Dm@T-Ch5sdA55%g/=ZI&Mn,>E4O;b<65QptX%^uS:?p.&eLK0N>J!Z8D)9qT %R?tOI_qWE0D.a(Aas*uDNgmT$47ei?PikMNF?>>jQ#>F!b?i9K?HDkYAqk58O_Y%;)<\?moXD/>lV."tcMKqWr'E#a1[BK56bf&6 %hp2,V`=Yr:#rJ%TG-Vf=)%Cc\,W%LrRd:DT9FWRSLF3&=:9KD1=/*f%EB@;l'eO,T?nANn1mp3:3&h]K3h"hF9brg+@n;ehUs294 %aB?sP2eb%@/?l!.)-5Hr/@Y5Z1c\lc1WM=TAet/TG&Z&,G]"FY3",(5$VWWV:7e$S4VcREP81%<+Ojp@>2U^\_-p=5*As7IG-WMj %(meFU9PkE?3SdVt(M]("Wl[3MA>\)&@T>-h27Tn,GdNp0>79e&4.*Z-XC"\NYQZYa-LY'#Tkl*G=iGbHk=Ah8;d86fCU1>7@!&I% %hjQZI$_25Fr,YT0\m;+T,Q1o#-Z=Q7YK=Q2AEqpkl8N8SCiKV2n-V'5#b,Xa$d=>5/;R$7`#[Wj'->.?@q1_YZ,m.%jG[@%QY^\> %[TG$r(bXQZQqcG]SK++450a@Rk5rh>P7_maGA*1QFM^W'A1q4r3c2*q2Yg9qEii)]=doi&9t&Y#1[G0uljga4:t+^;g>K2PoA)=8 %EL0dLG;ASem(=ngh^7B%P9%/-,MZ`JDR'p/nJEou*k1s-RnUu:=I1OmjsHGd%c6@T7s'AXH@^?fJYfs"B>'N+]!,^(fX0DWgJ+"% %2P9_-gts>PG`,DrG4+mhVnBiY^;,-QA4^_1W@r:q[qOK"FRCa?pBF'6P=p?Pn,/D2^VONsaF)lUa`$b706$A=H28J=rX8)mX\&W= %RKC+e%np^Q1ohP%.NgRK,rEdp//;Q+Q"k!^FBGLAYYZjE=]Jq)!_'G!7C0/9NZ&auH5Uj6NU=S&gGLsZofAP,4a'g+W@N_1C5Xq7 %O>La=9T,Cq=pLm,1M*8kb!ID?B%<2ZI?tt^@&gdmXTC9d[:g?@f!Hs_[&`.B.d'Jum-*$#Mt)an[^p:95$=6HREH?q!EE-PRe;@M %C(W>h(,[T^2/=?mX!T^i.lD)s2=!.P<-VTF#1]dpeZ:L5<0+%Z];f#qC5[bJHsdkOXO(`=WjM*ViE`^g/b-#]EOD'6nr21;c2m\- %BNna5`O2)p=tFbi`k"(;h+f$(MDMHXY.)Kj2eVMno)#i)j_!M0LTWpF[nU_;e9"o:51aP;c`)D_,XK';KVm6d9p27*$&pG*UF&^` %!i8eYIVFA3Bd]lY9`W_3)jR"5BRum(rB_iJmrL3A.9qoF/Uk2MH_Br:A!j,n#!qCH>`!'VhRY7q7f=4*5 %fV!e3&k9=O-(@;eD9C",m$8@uArABbM-G&@_V(aNgkXUiU&f*DL@-0#SIgoA.8(K@9q,+\%FW`1V]:Var,YT0\f%R)_iW;(3U*-j %KpRh,e&%q^1X32*.1#[Tg&;MUT6m=9FFQ=1?Sn7%Q"P\%&@:5Ycj:[!?VeX,b_5MA)j7u^;qnK.LjSjmHsJZ8.V:k8!f#lKaT'`/ %#-;8/=U3!Q2Hr:h6))Y3Di#M#"B?]0'$l*6m8k+B#eWVITlWHX/HNg3h1YI!RM8WDiUADFB=DWs92XWeiL)nJ%E:=rpo%PrVMf%o@KHf7(U*=1reL'`W`Li,?G3mqI><9RW^ke>BqJ_F^3kA.e))g^nD%=j %HZAWd]sF`a9tE(HiV-ug/tTbhpqLb<)LJr++-GHfWr?jX@bS^9Dm'+\rqc!KhG\)he[N-cs)HeWs06\NT&*`PI.QXoodZ$5nNC`=JHA%bBKlZM&`lH'VIDX$>KH^,jnn#CCAPp>3B@jG,Ver2TU:0_\Uk:`R]mK=Q1[pX[fiK=SJ.Ib`!!>M&h# %0_\Udmeu,2c)Xp4B.k<5^%iL0Ich[1:570jgkk\TO1&J=8*,8Ep8Y^CWkm39HiE*cmH#5Bs"$luBa=':/H"Ub+'r6crp2Si%<^_$ %(Uf#uG9kE,cLZJWX`a#uk;.PPq7[3fau]+:*B3mT5@9qq\N5*523d:ZqN$)>s7POF`Ts_Hn6"MGZgVoucK7sTX_K;t[g@$of%-+S %(%FNcG/^V%>5m^D4V;nL)IMS8s-GZ+Sj(qf&$8dQ0me6,4EK"tH,nA*rkI"5a&3>M"0_*+iOd-M@7YC$bT5goRM3 %pY#$$R[3c(h]#I?]J:o#]0#HP6aluLSs"G5l[Q[Tlf=/.Itq;-Fj8a[k3B,X7l\cDJ%tl'A_5?n0%b#WcH\)G %04)Va$`cG]@`rc,J5Pq>QDQ^TFMKo1j+U/`3aqO&jfQ %Gpi$98A2T[q5:RscnB1IM!eXr?#(h=1H5%eO4IlnhtK08f>2['lY'Sq1;AjJ!W1S3h+%GEB(f:^q.5$2gj>IZffXf?XLP'pLnes6/J&1F_g?\>"T\mhWD0[-4eiAsQ. %*WQ\V[YsAk=7!LnNF+UaAo3`O:H6So\fu=le>g9V4hn.F\K;f'?&J:U%Wd0<*8iLmA8^gR+K`g5HJe%%AV^%DY+p-abBotq3=BW`laT.pj^HOfG@E?b.q=r.YSh=KK\+eGHPC-s=%D,. %bjb8ek3DL5d-63g20m`D>KG9q:%j80.bg[E]N+pT%?_hiOrdI)%L`Dq%m%4Bl@7c\N_Xl)UZG^6VG %2>(p]XlM`OQU:77&%&6:[Kd9/E1S)qZd8A.>F.CVK(Eea"7j!oB5:##]LRp1>l]gF`V;[AI];N*]60+Y@G@kqgS@h$N4!MlFcF]0 %\S]%h-EWUNf/LA\iYY.G+FSa>Pr/_VqnQQ5Zm&@qJaKk]!;nij?,DKH27<7l\j@F42gT90!+a\T5/WMg4Alu %Beh6.^"&5cZ)Z47Yca#]=\!XooNF=cAf]S!oNp5!Z?NrK&)#M-aKAk:"h2eDd_0+PJ%bdAip*^KBCEQ=foZ3eZK1.Rh$(IBH>U]"#ntE!LMIY0.Va21KD`rQjTuS,N.lqfR%^[/Qat0(3?"5A,mb?0AJD5GMqe3_;NQ0lS_h#PS*[JO`*"1jgeMcorfHfm].DBQdH44dE$khNS"D@ZZXWOs %i-.6WSIU+H:YiD`nN2SoM>^3/KHg0>_=.#1'SqD!l/6bHpmjTB2\1A8VHUHP^XM%?ma^_D3M5*H4ZLhI#:J6BW4Wc?C2Fi(?bRcP %^"bDH2dTLnDYME>iju13AmH?uhMZ`mB?[sc1T`ZbqTI2fqq-B.=4Y8l0+R7;l^==@VTXHqQe8L34CbLWokW[9=Cn#jSd3-_jm0[Q %?1,;*50).19;Tp91UY\TVtT8u=I1(Ui6GG/h"MlF)(V2=]5hP3+a<*qFd\#q5M*;K%N"?lVXb^OVcJ">+*a^7[^6OW;]h'EC7Q0q %(Vr,>A+tEB.-Q5'C)JV73YIe*RWIc0Sa\)pJ1m!GiB?r?eo_>WK5][$5Q($9@[5T=4)LQ.l3>ObQP\!"\)tDPR)SZ@HhM#V2)!AD %XcDaE5M"PN?Ol5C7l,'aIbNR;`;4&hb1^?0T;CNBbthuuDuP/m3rZKekJ8u:Qt?TPCen13Wk*:+buUtu*DEffQ[VpT\VFn-ZAonu %Z\)t80[1*)g&;*Nn&snk-f"Oc2ldipC&E'!s)bM-K6-CB>?R<"p!Z+lH`nK[YcdEeDn,'Fm(XHDor80I/P2)`P+"2^^[!NIDTXo'F %Dt`%*l`-\2L-IM/$b(/[iV;Bng%js?X$>KHXt4@tI.;VJo&o8[4cF3Tm'Pf\Oe`W4hS[8\_8QRWt3Yh %^3F_tQb8%/mQH1QA#-*Ys.82Co9B>(B#11S);%u5BX"u,%Z^07,SbL9U&.tBm&uq0ASiCKJH?j9GIG4L>?_m4_:R0A2@f(]J&^7N>CY[EQf[AR58&rZRNW4(2p9PlX`'!*ce<0&7%BZa.lh2mR%,rHLP3c)A"![tB1o %@.50F^+\!oqf:^dX&BN=-Jr*&^3(a'5HMi5Y.bo-^4XCKYkS\Dhne;fG3NE)XfroA[eSG8:d/!/X1.j6'G2GE2Ypl<2W"n[[(8ht %T2P,DGd/mUkl]gFf9H[^Y?B1kmpm.>S-Tn^V;fk %s4:\n9G(08`h1)TPj"$\t2*+-,XqKO!NmZ"]GGl&KGoVV.YK4C$6BBUgFm6&3.SmQHkgr`$qkO%!Sm51\mB=LB]Y5V7h\AEl %doVid0tZj,Y&YKL6>a99r4&d&dsdkdcfOhhrBi2T?*<59qM1(uh<@[?A%gfQlX88l1I#8l_S/#pgY8`1=2*sqrR7oTaVB*6LE]ZC %p[=a*`mV3LN@gJ'YHlWH(N_6YQ?,%O_j8FAk2d+dk8/>FU[,KDVB*11[eGd2[6:I8&#/KoC0;O`]nh9uOn&;Ib)XnW\UVG_[lrWWT?gD7Y\O+.LE[\$;TleT_6-I'IW`'FK)P"LRI/VOe`S---mX6R4 %:9`&omDq"'OnPj@#b&HWOW?E@[3gB1E\=DuROc9@;iS!SUcb7FRBR@is"g55LH`k>1A %5NIR3g)\":`PK:_hHB)c2>7JT"84q=2P'dGf&)?qO*]6,]+M4-DR.04ge!$BTZ0kF39;brm6PTjnj&^A.6h7K!`eJ,YkMiVB+[ %H$B5cc.13[h=Jluhn;.a^3mZj>@%Kjhu*@q8)<<)rnfs?IInlds).FpUCe@:cZf1Lrh'+Ts-#nOhY>?f2ZN7Gf57,>q7dpjV\9_L %8=O*&:;$8uk5)#lLR_VVp@"Lo%Y)V4)0`c\J:u.Y*mPp+-673 %dt\Jmj.A[oS_G-N^SJ^?-a>I>e(_Sul(`BjIpO37G;<9=2u71Q`Fr%f++/Ml`fn73@Is9l.%GCQcOJGip\VqM1cU+*P1u591gbAQ %_)o:IEl5HhDq^C=s1@1PT*t,`cm?=A:HDu!?JMHB^,lY;d>M.B3f?c4OQZE/j1IPG5?>tdj3;kiPFfA:V!$V0)#K<7KBo)c(j"+O %2f+NQ8a#ZGa:t"(b.1_*:W>(j9R8h+f(Nff;P&JNRkFtqi_@4Y)ba_ZE0ram0)lL:D:5#jL[j9^^"as`pDA@/@Vf@-O8!FfpF"OI %L_kiZA@ABfI=bV._qJ_I%R\C6mlHraL:sLe4,KZK$R_oLDL(*5[6/A5-gucQqV:a++%$k!mtHs=9[=Y?on23>qp%6pnd`."ceEs. %c-@[n[8/0qV;VGUb&>"@PQ06OreCHB]?tcHCi9'ls/)]p'*5:jBO\ad@5`VXK&bX`U!FC2'bf!SCIn&<55#;@bN4aDX>gg(gpd3g %b@c&`_7jf9"4C9HJ,dUi)`GJ0h<(@0KtH[6q?!GXCQDg"C]@&1DF`;KTDOe,2G^VGMc2f#9g2#5M9cj-pP@)/@:J$A^!6T0k7r/d %7)D.6!X\I!)!JMXC?IGV;'5?>ON:TIa+<5O!tP!61Rt6PoM%F.?T0_>I.-i##F?6V),'eQe-AW5(K9>V69k)fb."8(9W''0]Wh". %kZ6O\=m#<$HWjFPmi3DR\\n6^EIdW;\q(b=o9"U+"I[A;``(`<,RGj<@p!=FH[\qB4g3Lo^Pjbcf:+^Jda1+2pc%VN1)AmVU$HrJ %o#H%o$ZDbq6Ls1+SC=NVaCDh>N*Y'Wm!QHfI[h(#FVG`T,P0%)GmnMT"P:3/FP4\ekd^2(0tD"hfi1ToT0eB)Chm;%0s87"1`BLU %8ND":T79$#9p\AKb:W/;e)X<\e*,WJnB=$M %O6j4B`1;(8s5td0Q/CHpIuh:PqY,BpjA4r=p,&Cb0qLju4PoldX5'm+>4lgJ)m(#nq01?@Ms'!roo+mthgCd@jmVEUb6t]2e+o'f %7o?j72G]?Pb#N)jd/3aqS&sVI4VgeIDWp[?o>1.Y\*,>*IHrd;T-)cNE:ZquE%Ci*-Y&nhr/L)ud,@$(9'[/f*Ni2H&(l/Kmr5S` %NGpN94`n!,KOZ@tJ(GtdMKrPoIE%;T]sF2"7r?>)e#A<$&0)'fhUmoLDgEH8+75?s,BSB6]nZ\>3pt(Np`pAlggG!nrA]Dl7pA;E %n8lUBTimOYoR8S:qdboWI+S+TGCBtq*H[^0]"IW%T.ddt^]]isY]C_a_99"Tndqc#1jTaH_JD@+cfMnNq3%D?$>7\)5([Sj!hF.U %U'!4/3k_HW`ro&k1O1?je/+%`2q@]c1MfT!rG`l4"C45ck5iV1ejCdZOAEPB:.6L*F2!&L6^l'3iK1)c\Jl\6NoQ%b_Rre;DcX/k %0Y8GdOr]_@25)atV_k%feeQ:fgnIq,TO3EfTDm*f7XaSndFjFkpH$7ulqODs*WDCqP2IF4DP5_6TnKa-ZDnc1f %GMi=?p@H8\`J[X.C)0&0S*t;YJ&%iH7D$gZhsoU9B"3etkDo!/r#c*:1\!sZ8Nsoam`F/JZg[ngjL[XIrQL==2^o[Q/o*bfs4bNG %e`O>:0!bTPqVpVo?9IDkTbE1Oc[UR/m)?rE=4P&u*O>V?UDH.$?'Kj9Wq9g#UNsP@>CNs&lJueHg-N,LqU+]HGkB&8];NDKSA.?' %VF/6smTO?056:gs?YDreOB)]ZgiBiMtK^J2OV>T+A=ZJ'P+6&9HTdW+dgbW,=`Ku\A@Y8 %Qdl]"I^),Z%qQD-l^[=Jau3QiE8:L71nLLj472j-m&A.mL8U6m=G,q5ok$D$ZPn`\Zg!(BPrp+*L]]8u5$q)onO55nIPI7A>ZH,n %dgk',\"9_p^;j#%ql2j&V"\;7Zd(b4r9r]g+p2Mn=l8\eX=rLTT"(ipS\(J`&B3&&kcahB1Ujsob$H3rHLl!fY]lPj'lGDa1`QL- %l,B_W"SEi/_s$#>&QW7?D%W8I[nuaPQ&&-2HVrAr5moiSLeWU74>JYj6]$tEQ6i4sIA@Cu_W?2ICAt*7sqQ+;t %Ii=[(fF2a^+b$)5$?8jQo?,`o7h8YV:%9.O+s6Ehe:Kl.DuB(`q4[9:`_lIAI[T=t4\1d1'0d.@1%]X27mYQ.(Ik#sSh7>SMJJ,\ %A?;cr"qiZS`,c$;fI=dZ6aD9FPaIe#r>[q#$^1'a2N*`hI,+JL*/\k@EZ:uH`PXME_%2f\hGX-H330&F.6akRjM^XINib:]Aoi-U %3U9USbGVZn5N4^WI^j3Ac)9q+BNto(Go@KW32c%abmph&Co!^KkRtJfN+Eq]hrf/=>D)Z.SQrUl@6-Qgl-[%Sc^kU%j/5i)l18m] %R@'mDigG)[_U.tf]MB&b-]Yp=]V\AomJM$XG?M>Jq+_chL@;+hLocZ`S&(/'2l-+t]6TucC$Zj&:N[o'KnL,f3Hg16T*[->(ujb: %Wd?2OJ1S"7;[7lo,M!)E5)%Wbh@WNn]7TtEm_LOe]rsObouO,i#h-Slle9*!cMlN(PK68^GeqS<[#%iYV26o27?n %#h/I&eE4cu*2\pI6mJ]i6mFlDCZo(uTc;W9e`UEFX"drhZCZBjVWnmc6d0sO_$o\Db5)f8AV]&"EEi-K1LHUFp>/#^H91,`nE`". %a%qkFlFTRcag7u@rn$LXqCkFn(ZfX'Ui>#_P8D7+c6&PMd@EEq4Zp6`\@H'4Qu;^sLZmC2p,Hnohpl$\>TFT'1a!jdl8W1iC+PAI %$<_hk'h-7mP6Qt4E3]U.4?*;uU2bN1Ah%#l(5@;6dmJVlFP$%idL`^\(YJpII(KA72<5RZ7TfY+]U8U'SX=h+.^LH.3tlpS^9&t\ %#l\n[?R,a(R!b1[UI"q.HIWP-,3N#@S/;jA,1M_cD#%T"2.pE.1UHBb:pEe#m@>'SA*+;,D4*6Ie4oO?=$%T1:Zm;R?TmR6N[]TpUlE="r0b6_l/r1*4r:o;%.EkiB<-a,66=\ %f/j*iYF#1<+@EFtKm?M<[lkGBT)KqKDmP:6UYXEM1L&nRdm4_,3D8t6=X*pKcI"'%55/m2.ZUP^P:;VQ %77bnRmHa7!&d@IHA0"cG(bMD#\N%$H`td]T:/0<1cXR\003;GM^7`)[!U%(u&!LRr9b=g.BkVWBjH7s%!UlA+(K"ZdcY4TFUQ(lP %KC-YR_$=70gOa?;jh:'/;]!,qjA&M"j%&q9Ga9D]BHFcuT;Np;*-R`jfJln_/*%3b`L+%#=$H#@$ %_^uQArGX,L/dh?..7,Y*'@2amQNi;M._M5)OGI>o+]U]9(EO"I+9j %r04#n!"p8+f!C2mV42r'LjBIp@grM^@KP[["L_!1Lcr]+fMnL7U]\4[Neg %]X-l'NCgm/AB7!\9oAAlOIeU^f"%]('0WZ"oKr@24#fImC&TD= %4ql5&>9'8kE8KT,b\C1k]Ao(V>dl[VLNol[1IBdn"HH9a"h37#nZIokb6@3hO<7S+-I&n<2FC]@>P+04>DKT87DGgk%C^jRp;*1&4'9*1,@d_/"\(1*R3VuZA)^d_VDIbeIk4d&[as1n_]!pFl)G]M_Y3nh7T %D]8>!3/#$8k$D?$(/B,Jn(?:5*D!h=[3"n;X`6ejHR6M,b#c+V7JC!tqn;5C0hK'Pf%ah7JOHKNG.3%p52E$kNk5-6P=k74P=VUo %6U9q_rqehMfjZG1FVZj0WPdjj'ZFdYm,0"D!7mS]Es/)2[DE/gW@5\:2P]1PEu:!JIos %n>1t/(5SlCf+o#1bV2Ef=,+MpKf'jWo5Iej4+WGiJao)DH %4$tU5GKqc?)s8frpI!-BS[WL&UaA#l]7kG14>-?dDKnZh7<)VmqTaH;%ASDoTJJ9^0$o?N"sPGO*2"A:^QTq6_tVf&"d7o-*I3AZ %Nl/u#cQ@>%%07TnjK+"k&q!),%Q"i_P%AVn42W1'"%ruHSc-?*`!L_YD4o6Y#>PWA0$.hbdE:CDg"7bJ55WUhe&TJ>B2AA:q7LlHdc91IH?RC*XmhZ!n`9Y3glhb$5IVs# %Nj-bT6o+'dmt&[#h6[$S%^CssIPbiBbN[%hcol)YpS7u/JHOTR+Qd*86o[3uEgpbZ0u:*F.-n\712h06bLuWUr>)l:1@n<)>CKNM %*/Fu;F'S]2KQMheJ3&RNPPrW*.o:L*k)ojXOQLT@m:AYgqb)io!cBD%\`(AQ5SIZ[Kq/e&GQU;+'A%3SR4#a@i7Y@k=1^?.K! %5bgO[?F6q?ks^Ia52NK0Tk"!`4"@i@f(@lr[gK4I*R&0&F^XD7buYs64rri8#&Gp/J7)9$:7r(!DJcJ,+V1j"cQPNKcXYdW0:?YA %du:f<3$gYj1GUm;.t.MdCZL!4o7Q*cg>b?7l4\V#juMgUR`Tt])R>5$1QB2c'\Qc87"2_(1q3&3IJepiJr/=Qo5X5U`#N1e6'moQ %rM>?E(f6Yl':%ub%"*P]ZMk3[kA&NX`GM\ %KO_1mJrh^$=MfY=8F5ciAjjK[E5Zh=!(,,k)3'tQg6./T,%F#9I,B3AndP`]`R"](!PQ7GCfnRJ7$HNGE95mgHXZ&XQI-LSEP%(* %&C(c&CCt#gF;%P:,XqJ\Y>G#0qTJp>0%[;9')]<\?UYMr'oO(pWpY(hu=IF9jB>W*?ZU;P7CAT/tbJpP_MVMUu#'%SqM-Y]k7 %+WDg>9"c11Si'&@4/HL"nDA5IFE5/*@G*A>hfOu7`c-IJLuXa?HmqiTZCqMpNQl"akBd#,IGZM/r9dVMT9FuLBf!1"YGE+61"PjP4P:o<_&.gAQlbS`. %itD/,@Rh(dRt,RK!445ZU-Li)(5k.*@E7VjgJ`'0o@6%0k".I4e)P)lFma6s4?RqUglp(5FkOA-BJq+LAVG>9f-U=3GIT7i]TP!1 %0)L%bOWQgV!TO>_C+[_e\`\"iYf\:6S$m/HCZ?,L1MpIY]6EjNhU7+i>WU:;GL@Yi5dq7!"i+ps4C:MOQ%'/*>$_2Ug3;/&1uY8U %RB'S(1dJb/&srtlZc?fhT+LnX&2=Li[]>EYF9:16/O:d.LpD\BH_Iq)KE_rV:0),j1^WY?O^E;$M)61AD\V7p`T&/9a9TjDi8XrF %'EmP>ka.CYm)]j^^qP+akt!q7!QNdsOXK?QSjDSoJ^Y!8XR.GrV2HG"_#3/O>_n46>3:q2fS+-Nep&E.l\tKNo-.![/@&br=;-Q6 %P0!E>n%-S(fR/aA,2am+7+].GQI?Q/":$nLGrfo^5c:X/:BA?mR,[ikN]bR;(k&^>!`R?0rW;3Oe^LE^Y9N1mkaa1g0ke+0_>.S%I4:Rj4;HFXS(H+K:-TIgX=b:OBLC3T\(jrkQg`f\gG3j(YAE!)8OEk`_4SP(#RBI-!MT%^@<)a)NPij/4FQ(f/+;YBDS"`:NEd:&Gq,@[J/21f)pPT*T9GF1P'@V'ARaQLB %+pER'=GSLh+[6>gV@\[g87CJj'V+@\&i@_NqfNR,5qqZ!+k60K^rh_N%aqSmK`ESDbFukU[bY@8m.kB_9X8muq:.X+dm3:@4`7kD %Pok90h(I(Ha.?#r%oW*33=*ONd'i[+S[+^eUrP_QjT7ledX.5cc0KhD*Y^H^"2h_?h&Gr+8^urgh_o[4e4I##!L?ob_<<+A>ka>'G %>^jf2];Xaf4>Gk]%2$mfn\51&DiOe!mP[a$r9Nj5_>uj9-(+ah@AnfK%[`#C@0]+h5iYYnOr@(nhG8)(Fo@Cd"X=-X%OalcI_n4. %SJ">;C`MKJ-^>ef)4b3bbWU@V) %P>mTP]gB^*R)gEeMJJB&Q[\R4DGB=T9dm7"fY[]6djOR'pXD?SH@";AiH%FKp:ZCF.7P:]&rpfN;qd#/n\\\pUUMpq)s0X"H*9_iAYtji %0,,\E"mn:X/t_11p+ZneX+`FjAno4A>'UpNiQcnb&)pHWJ4,\@&U.):+^<`s,>l';3_eO6kmY+&5gW(%l0.mhB%Uk2`17*>]V09m %qs]F>d#h0IaTVpBEY8?uP':Va$f<(#M3.ITZpFD/5*s`q*ph9I35QGh5B.$T.UL.IB*46R;thRXRd/iOI:T)lFk[sV5uYWBm?3Z-@,['67pOU3(;M@gHQ)o3HBrF,2(SgujJ %V0eF58)tJ;piR/Z$\jh9/O=">92\6uLaN`PBHSRoB2V9"1bnLEoopgkMoZiD-,`Aa'%J8t-Rk3G3hl*W'pGH_*W[^hlsi*HN_$@Z %_WU1W9rY>P`W4SY?Ak^8[ZSA6]e@Gr9ZI_CB"fGVIF@lKl!nMa1K6&Rp;fB+_m;H1#@-9tfD+=NfIt>m(nD,Fj]j%;E>tj])fr=Z %G6nJhc'Nq0J1^ee+3dF;- %34'nR)M]!inbPc9[/jD5";(be0E;9;JITq<]a*bPs4m);(sa%=EGWd)>-CC@PBI"],UYaA1Ir?+rH$r:X9;%BOZr;[T0A!cLm_aK %"/S]HL1^?/e"8:dgC\CBE0eADA3lmnKooo(gpB?oK[bW$7>m+ZBNN=R3qt/5",smK#&pYTIh?Pg#MuP<<=Or??Rh %GJ9HB!QK4f3_5BCDSgg*)RCXH#]plV35f[#DYj"s(fiSTA=/*6>YsMTT#Nm[fq8fXB'_fN]/5RF!bikCDIrR79sF="52k5/b\u4f %&UZ>g2`mcPZSbI#^IOiHp7'uEU=PJK-qZV2Rb15.PW.2k6]OENHdcc0p)fu80G`V'Waj%Md[>Lh'KT=@2=\e8eS20E_:>%;)[L[ %>@SmTrC#"V+p"Lgg'OX>-ATtf`!:!!iTe21MB383r1u0)]FOPA%SXRtM<`9-S>QQ41YQ5UcG^Ahj&)dU,RSA/ef %/,Nrp;3i2u&Q9MQf0u>gRcf'FiSg,Ln43?bQ""\H#@Nmu7IITb*p+MS1Xu,UpWR4^CE(hQ.[7TA(3soI9I8>B1=&@XRCc'_e]4GW %1bVuU<\:\F\t*Ud9VT4j0OY`iDLDrSUWYERQq[Pd%Dm;..I^:PK8V!bkMUT?=1r+t9`sB6DqIY?(k`62$llE\16oP/<=kS&9X\`T %4V]p^N:#E`#6A$t#SVK4L))KPA8<*iFakfNkKRMsStc'os3s2[f(Gt(qRQGlZeb_d;oH7ic"lHb5imc$F=K,Dm/_3Z %YMLI'@,XGBJgtDmX)7=1H.t$FTV26d',r%,,GK3k2st\iN_L,[-uHU,XPCUDG@$(A':hNZ@l`e'5"\JehZ0l?a^XWEKVYqQ!=`7u %c&?RbFYYcN@I3E_nX'Jh=%"(,mkXP^H+b]e9DWRBp^$/`OQD"g0e;m]W+UYm)A-bQSkHP>ik'8P_&EaI&3Fd$b<4Y",#2H0<0*`1 %4dmd[2fdMrO89';F,[s+"(WKo=?'hTNjsE&+R4;sjDgj(LCQrT+b\ciRW-H7%nGqHY'qlc%H:&c2pYBQ+T[R4jK,5[k>(d!+F0FS %Uq#XH03#Ltel_J`:>ZMVHiW5aMIo#o1`4Bmk_M'\;2bRP8,_k9UM;6HC1<0'G#M0kn;pM<^+9>h5a$(/;MDK@%sb]GV?U[9*4V5V %[c=^"J]lsD'SoJ>V;Zkg,(FJao9hpPo1hTM(:>.R`R@>n]++i]1oOSD(]2cGSanmSQ&:o.P.:_0T=h5@cfaQlKq^"+%;4siVocM_ %H"hFMhK*Y=$K1JbS^1Z+CR#0-QbAoAmr&@nqV-O]Mlp%bC8kD[StP;Wj[\nOoL\?CKI5DN(Y89,I'(VZe9'rcBnFF97[G6@4"sfT %Yep7l+d;JaHj@rSmiX<'#T!f-m,C)LL:_8X.:4pU_rdHa6Kj^*NO$(9/!GpiPRC92rgpkR@*:j[R=*aY!1[4GG6;nCpGV+&62C\9 %/HahIq)1bJ;8IrfKqp>GnWrUrf.Q%!TH?TapVL-`b`raa)OEcKLHSMBJ@B.Te^dpVo2W`Br7'?0mq`'!Tl.]V(Z=kZ:1q&Mkp.&l %\IHW88Z=fKn*R3`L-SUU3+&#t"iH%A-Orsrf63CB47pSq?!7ZY0`Vh-K0I@;ni[*E"sbBEY9O_?eCT'9L%O>4QfNU88Ya;[DV(1) %[6WFqTBl464tYn0<*V&kisOBLm@[3SBu4\Zc3lXd,+,>Bq;hl?B6r[>6FN>mKW)6sBEp$Um$?gXbHX/'ku8:=8ra!Hom5b\51kL, %^(OWbqaegS!O?5)8EPe8cgX^#Ne5Obl$cCEh4\?;b=g%Ep%G.HQ]`k6mq\kI/60'$@J_kU7e[hbW-<59[Q; %9nfbr0-O2V$,3]i&rYL@]o<2%W=I$i/JbN9/CqbG8"NFqI29ldgc(ZJ4]8#ql0)jLLo6KA4S^r!:-FL\G=&=8?bgtC)e#"Y,)\^g %?%O#A'Op)#u'8kGAG8H)2T&^0L)]U*/Jo+E+#/_+[;X[Y:E$A1p$1M92\-J\9B2Zb[UA),hZfKH[RF4jq@*bQM< %4YnM>G5Ab8aWC$?8rGU(5/d/W\fV@PK3[p2@mk\79!m)%)eIKchWHh9!FLk(b3+&fp1tVGNKu/!^AGJWDeo=K5VCSK#dP5CPZ//; %\JY;/@[t&)+GlQ!%Gsq,#\tY1P&i:Fc'o[*46:Pb0oVl59#TM`rTqY>(O[Po3R2R3ORh]C2/eIOn#B3a=^hJ#6=61W`"!lLa2cNB33@::UncffGJLmT1#=i`)o2P"m:;R::TSiK@6SiSGDN %#fDMPdHBc`%<*SEY_O^N#',P1'"dKB8P=0b=WF7mcNF$-J'"J4O+Q'L0IGC)-m]HGZF'Y25WYj(X-k6=8@n'gEbCIg".*n3*"Lq% %dSbA\"H%%fm.D&/6oH@T\0ZG&93>N3_?m@Oa"Qs#62-2PJF&CqDQrX$S+)UC!D84?'4<,@[jtI*(len?;V`(JC#sPBY4R&^r(l7. %[dIit/r=XFPAsCXUI,cd)'&5MT=SBq__BkHs2KY*ml":D$1@o6"E8hc2g^MX/\c#uV^[*/Dd1$LXR>K54Ski;^3f_9q)@cF^V@=R %s7Y>5^A.6hKh-[illpA;MjM2ZDsK?G?m)!hNl&!j\,C71">_'G+?l>mcIMSbP"YE!#NkVP!.k386M8(hc*qr9-cF-?@q.JAqua$Z %c\Eq$F;"X/`1_+;T&fMlM\;]j49,Idj[4//,2.0-lX;^?Nfk5ca"EtU+og:3?L,Dqi@)R//LlV1_+_U6kmDb3^(>UYm#Fn5P>pm**CO`'t`_E$AOaaV)@3Ls10<4ICZr">E/6M)N.>I1L6$7ll".brna" %a35\LOn+GoU9Sd(S^:$bc,hn?O$'9=%5a?G89rXnnfp:i6%h?S=V?Obg4;6fG<8($BLrt]@$CE[.,Y0BPiUeRH&+5u"94HSJC,9i %a[)!i'YGu*E\WVtT'\)eFrbO'??D6P7k"C"ct>M>bQi*9MeeGiXQ3a^bb]l57e'??$jTafIN+2/TQi5A(:beL[*36D2%PHE>Y';$ %9gJM'q$AD&_%6eX(F!Xepg/@+anlu#6L3!B^qLXI:`OH*qSk?jG3=ZO9QnfRFTsCJT-K(5(Mr6Hb%2^araB@=EoKi2B]Be\,[+X4R0J^]IsZn9@sDERkak@k[XA->bho.H8)>Q. %<*.c5a,eNlhd$3Kk4KU`XYg*/G"Ka:5:kn(jYJV.9(&Ct+iR?X_?ALG"n-E#NtNXopX"=OL?pnnXJ^>'#4crL3\jeD\PE^,NiXGN %55b+AFbTk:="3fsdXQ!*,FD!7Tl"L(N?+R`!nFh;KKJ,;&3lp+Ag2>OCR+&-d(IT:qf&*G4^iu!CiOE9@t=Xha/ML$hBN.gVKk[gLbuMiW_^Oh#Bq?.kS9PsBoA*(UKEZ^s*?=K8_Z%\;(78gjBC %^tL\rQn8d0T\o1gK+B4N-tFIlhuACF.h55Z(d2+0Zm<_6l*rDW`igV5W/dl-==Qg2j%NITc]9&$f$UbDW=`2cOc@Dfq09g1!Br/Y %-i\CO7#l2J.o#hT=[EV=Duutl+dcie)EO(.G(.Z!$j)sVpL`Pdq`c=(t!,\K@Q;_%^+Yc>:Q_`mA,RqH:,NjD\0*=1$OX$1"`QM+$+TSR-4)PoUn;#2j_)-C#,piJ?m]7L*]/3YSaM\1e3=%O8r6j.Q9[?'QiCknRAY?>Or9%h[WNH:7\8\WKj_q@lOVe*1:CTbQZi %g%,ACqYKnZ5Fh..g'S"*Lu#r.I*1gpaR+c,0:\KWX?O?P?Dl,OWbm_0t9JZ_QR#,$&\FF3lM.1$p&5,E;LYinG*6fqaFTQ %.?o4sod'[Xp\6**(@+0U@Up#qST:nsZS0507rUd"N_GJcJTDYe,aI\hRc,Sa[WWo,YU.@7obNV_ij`Qu+H>e<;YUNK%_sBtDerQc %/V;Z6&D_.<+)91g-\?V3KsiEl8!c7b2gZ3$2EGX?8LEt3*%@J;Wf_3I%u<4%$Vb^A9&MRf,""=/:ni_#lQ*SrTiEASb7j^"4*Xc) %>SE8G2!1g8!F]!cdN^*CG"/WU#\Y5*aeGKE+l!(2!<;Y$=P8g":.nBA$b^"mHO?^gO%]I^sOW6L0ndt:MZJ^[#0Mdgd1Z.j?lJ-Q:X0bdB)WmKh]fonFc[fq%aXpOJ65oAPo %K/KUJE$&UPPk]p;F[0o-HrW5+*(p'eCF1\LGOCSRtU2IB[Zlhb@D5>$ZEO&ML_JDi\YS6X-4IS")QpREONITM`f]kq1Rb"=s5;jC]'V!!:'C %*D1M[,8-N&?JsBg\h0n:jQ<_5&NnDf%!eu-7u'DhI<#\0Vo'tSkKt(*%I$jpkb$r,B(Zfb4(9Vj\':'(qePPA2jh&(g473SQQ3\EA0-Ka%<51B_"0KIR>!UCRAG %G^3:dR-.\r';^#Tj9;;?&5*]Y7Gj#dNVl:*0Mr!$&!/l)mbYb*:sPf!'fg'P/Nnm#h"AeXeT:R5GdsED^dEl@k)2Blj&eHLTEF$d %JlG/kk)hU)Zg?R7AA+aN+p-iN#/C&nhNO@+kF0[< %>/s*#>iZG7'i\@(#9-Q(M5A%P]@pfEMjLduZ=Y$0X!8Zk`1+rX\FjnRAVSLc/Y$#da>(c:\mrcAN_8)$DkYl^)/t8VLV.q]a6,CG %+e5amnY'J=e8c&tOc2K&?NSodX;_b%i[nneO^2b$`ZsLOS>4"DMC5&`%(mD'6[U936-6^4689I\T.&C]k$>UqTS=8]kNR)p'XXd% %!I#6C42o>"M0H]^`]VNW>tmS_\1_!m3Glr^TTP(Q3+/#k8#oklH)OXqRK3%/S-`"E.j %V0M[o89AAR'%`F^a6EDI!Zl*j"5-%pC?\OtKIRKG\-&WdEH>u2m,-fZ_,=,:XP6KhPW#hB$V*=iP'L\%B=ZkZeK?!`!==%uKIP.d %97r/-:E/l@UEC$`U4N4BJNu6I8;q(k;g;fOf!RsrOBZ[iEjA__"qBL6t-2*(i"Q05:O@-tc$hP.MYII)K:Netm %b0a?^W)otM+MgK+EUa4Y'dZ-B3WoKk6$&*Wg.6rP**'p%-_)E,ON<_]*(W8I-S+7`PQh!co,&AGP!oU@OEqfu%RF%JEG%>Yq2^2G %O*poDbSk$(kM),%=$&1B:>r)5Elf#aEgB(B8ZY_c.k^D6^/0+qWcnM*2:1Nt`(gcaU"pX*LK];%q*I+ZGmL[SW1[3;i[EeuLdY'qFFCYZ=DroXM=D^s-q0Oh+h;cur;%MG=+Lpb&@m#Pf0mOFekkTNrd5rni70naU?C<^_KNgMoe9*'1W9=;)AR#\8nRc?T%:e'tWI2ub^; %$.l]ARG,2]QTc9c7(>e\etA=W$a4(g.G])_j_[9H25bmiPYiShAF>6s[!\Nu$\< %:mIHM>*'1"a.]D_=6/OQa)13JF=7JG)"\WIlm++1S,?EgX_&O%9?0V3h5-C$MC>]NJ7VN:DO0u?W%$MYBs5)80T %U*8kb-GLpRHP!mFqWfo>H(b\$qJ/!';1UonJlcS2cFR %:C9.hd'BW<)E_:U849_6Tt^j7ctZ)+fFgD,;;NIo;s:;76XEO+s %2ArNMNkcJh":4d_3%.(p@%J:b(F,G?]j]eW[%QVZN\lQm?iZ]KG)TUt-ln9-5kU^p1&S;=Arcp%KRbZMbFj3qUC`BL\d)cT>sZCg %/n.9-a:1XJObJEia]em[.B!I`;%JF-(FQj(*7ib#)]R76'^]nM57fgdTFoiXZVc%QG"%4l[DRr=74p-7-*O %rUTd-I'Br$&.lIS,6G8!N^2SF-"mm!mLl_K[hRSWSd3uBdcB$Ol1k+K,.I\oK+FHWm&k>@;6gmq1e"EcbG$i'6N]J&^aQ=9)XRWr %&r85>Y#,rGN@tD:Wq)`*QHe@r8!U[T#fZ20j'_\DUnm!_a]1!.Li7YGjQ4e(6fV2oX9:0N/EVBF.I*lGj^9+232nt#k\BH;Z_ %hkIs(Ns00bVa)b`WsF=a'uBY22(!8ikXjt>n%jR#9]:YbL78l-N%R-A&::7B*mc2<3gTpY(igNuGYN+"gfp(+\id(4*32`)ZjR&'p$'*)MJE70T$Kq1=(h["06P:=.dFG5nGjE]_#mt*/=.<7iO:l;jhb'bQ@GJ7MdW+:Nsi+W#D %`dnb+p5ThDr$Q?'0fpJii+N`9=T_#:ks597OM[=1Q[qRUu]c^9_W@fX/4L9a!7&D4aZ %FAY$@!4>5)3R545f3#m-3A;A;f^)PWZ#U*aYQ[r[dGU/3:SUR]n;[ld!4n.oO/BjX17hl)&@0ik@imA7 %D@i`sIb?J3KlF.j*uK)o*\K+"DLd]nr%Y8V4T*$WUDO4kBtR]8f7`Ui'$?&'!,l="YS@\Gpj?@sM^sb!Q"Vl=mhc2 %(O-]l)2[[$#VrX^E%E_Y?6:2_4qteQ*`+6V.If!"kr(b$NZ?bT>jsXV %j_lD2s54RO]A*>I_n!<]LFC`?q@I@6?UOkPkaLI9#piKC*$'V/6I.Y24WrttMrK'I3#lAVbg7d6l?*/DJ;EYG^1\a1&Gc)i^M/:^ %K(#YX&98?G8k7oL9VInTh_Tq)5aq,Bq54b"X&40dq0]-Of=6bW6\p?WJ@iT#6!ip5=]?$U]+nEn!gP)%huFcg`NrD^*N.$QG<`an %LQWc:ddT6h;VF*+n\CC"jL.0/Edh5L^q>jBE_"FF5Z-$IG'Tr@ZVL!0"AC[=N&/Uhle'N#a:9BDPmH3WU#VNPQaehO#,4'[Q;o2X %4?Qbo[n/7sT2qc`1W(S#/X(-n&nrHu9kb1/mgTt(,@hM!pRs8SVO4%-W1OfUD$=;PQc\sBHuMRW/Q3!q>#kqh<)7]Y*!C53+-R`2 %M"HbTbMQ4aOP!C('\sr_6(8]d()]4kqYWl!YR.88p'I<=jmJ+fR*IS=SVa.=`PGKuSf %\p8SsI.QaEqD6`'k,,J8.)8SN&Z*?Co2dSfjb2A(?RC"K>ars@#o=,KI$$_C;cT-d#H/VgqnNbPZI4M[5)MVC,t!G1eS[tn.Neit!S\6Kn%aiM%[?,YG6$,9+,EHK %5^g6(+b/'[L<-L[AOP`$`hK1=3Xf7QKY(R1&JE`DODn8+@E'Gs=)/n6e'('oTL5aB[:U!JU_6=K^(rk3`e2Tu1@("m112X5DFVe, %,\XGQ$p9JOQ(0rGlT@S\`uuAc/4td4"`+Jf+fM-^K5jH1PSqe2VK4fDkcBIZ%"B+3_E9Q(I\(sonCJ:t'?D-1gp9kqnq=cO4?_7U %%3^c:,#"nBK0e5B5a;@5eiBFL%4AGV %d>J.f:6OJWcR"d*eaVi]L3&.F_'Ms7\24f"1^&qM8drT7&m]G%S3WV-$605rC[\MDK**>4,.1^.-?V9lNpTc %i&/_.AM?H8[8RhQX0+u;8Kgng[''FYp>11jNFU]ara(,!:^.P._Hf<)\#1&GGeu0> %N'ep9KE/tX,*Ho.qoA0Y^KPFA*]*p)8aKrXF72\"<-Qr!HWYX^<:%^H)XMS.,]++8Q?o?)8shA1@Re^9K;`?W6C"+a&o&0XASIKe %Z2`eN$Im)2q(d&C;QES=aO@qe"D!tu>cA+OnkpOZJSINC"5)"u]FWi!2r?kDLuNJmAZJe6U8);;is"%QQ'@ %;6=f>&T!:I9s']]oHPZ2bg'oV.`sSg3Rs*t!^0a"aNXnh_ZN,KK?pAl64"W5Dns[(U)-6$qF)q@C#*6\oqW(9DQ:d00SgV"k=U7f %_gi;_TF>g1]8BYm8n)+LWET'.LH,>7)W1L`=3M,Uur9Lp)[SqGE99k;;&/I1u<+&h/&RM!G8*--(j:T"N;NYlq( %ABrb:%^F_oXR*MJU3(AQ^kddk65GmU/jc"@\:uT*Gr.W%;540cGO*KLEi!5bq!]7@;B^in:>*j--sIeU=4\2]<`"+#YS*+4%cX8n %N0q-=-_[2(PH>%T,fh`W6j\iAi_4_'HA;L8\3WcH":Cgt&X"Ts6sNjB,I\(+'JXM1pCk1Gpb_/!6FB`+&D&>BP$?2N`MQ>b0lCJ] %?"$a2>)NY_An=A-JlJ'b@ZhN1/>]W&_=08Ad4KAX9DBga&JRKk7H+`-43iROjs)%CObb6I6iu`ESPWRKORefc"CY*A/>^'7)6gB- %c-ei[WQ'N0@;a,^:?iLN,4[L>Tdl2P`S!dYI2Z&F(%up2_\HoX-r*/XBXeq#]9cClM"gurhkm\f,jkb^=,G%o.mpgM&g0_&PpS9r %>=haGr;.(XZ;?.>1#"&3@8h^bTRbre'_o97CWTXblEK13K=-JNd,`c2N^N\jN3$;h't2t%;.R2h`H/rU:u_5 %V6Uk]E\c,Q;)KD`(^e7d&k%Tu`3bYhm)6KOj2qlXVOL(6G'5'#!;`jt;S',i6T'So_MQ]kF.=-hY"?-4@(1nH)DS"B&Nd^o?qJX1 %1VSoL96>;'quf01Skr5$JVNcNf<21mnn_2l(HPG9cg,t^'7@: %*7L-a`%/Yd*Y!A6h749IjT)qZ8GSLPV7_Xu-Etq6q2m@K$+gI1a,AS_BHVGRLh_ZT<=do'6Ki1$n8el_&Gnc6!XfL(LB1ndZKE)3 %Oob?o;!Kj\\'1Pb-A%'B1W#JDCtS8o+u!()#7LcV'cN5&%G_-ac-U?!:9Hkkn)?6\1^p&j(SSpl&r$k1V!'a6,oG`3]rso\4/<(H %7'%P_aanU9HAk8]VKDGs,rSk^b"7dHIMZhD2qLcODki2s1i5sn1LpiOAl;h/u85@6K*.r-:Z!6dAV+Ug'-c]o_#-`_i@-` %Mc*.i)teT!p&N8V,Qt?.,R@mOLn,r69!Kb4+lF?Y*asslb_&!8MKGq+2Nm6V,1;3BNEPF %.u&>ih/-gYN>^Aa0kMDC!KnV!Lt;s9pK1tX,SkV[Lh9d$J_MrA1h(hZJPgqf)SN[Y_B^fti]o(]@2D&d#kF<27>]?W#RWMBVnhd6 %0K2N'U:i:`WAQ.\dfdI\&6sGo2JGuRJ2['MKfJ*P:6cX$pb92U&V.!T`VoZsa9*fJX+Y@XS9+l97ON7aF&"FnA %dhD4oC5an"=fa;4a-6b4Cf4jT;ta%ECk7P#A'\5_@UfGJ1/'YaHGQ?`7l@%rOb#.2-3V4b7*RANm$QlWP*q0;@K;fr/VC42:l#c/ %``D"'E%22e%ffSMnOH': %J64%*kBXg0Dh.86)\iQElt2i;*[s.'>*S"bY;$03-cBP8-.)CYE9CfqJHtKeVpCOQ5blFg-2GQ!d`?aO%>6+5^G%YSNW!h9V]KPJ %BYK+e)Iegs-_tbgaj-^qeK?ag1--0c5V1j$^c`?E]0jHe3HWJ:h4Ve&![g=DJ-)H:,[m?(0o.!J";q*ZaB9Z\!/;hnM^QJhA5eKK %Mg/?%#,\IP/.626A+hB=e3(a",m#rSoO5j2'SO,cTLlt_JkuK<_i^PbN"(b<0&bQ@!N:>D_tHdh3?'\>)&AiOr$@^!#6..=S18jjV(tRk>BZ4If\R;aO&b(,<.?+?sAtYFmkq)]G>@Kq01p((>"IP21qX88TSLLC>=C@)h\(R)&2W %JrDeu(W,&]PF"SF1,5Doe;IYkI_e(%6u5M4`(rc67g)EqS@"uQ6,[NX%lAkmVX$.c.?DS+7l)EuF9oMcRk>1.KEs>0%:D1,jptji)(nN!Ju]Ob-$>G+aW,2!k%PT&!hB#j$kEk#+pJ"q)_E!E8L"`DQ]r).S)bI'8d#fRH@*4+Tp*$sKJq6tq322XKBL %6W#PV6iut_8/.;S8;u[[@9,qB/+0D[PW0mc+i,IB.EH9'/.sfC6"(G1Ob,1W3I")aM_MGu"uuhaTgo]5Jq,Kd5;,?Akq5F3/@Oal %q,!#V."P,I$8hJW*!Kk#6-%W3[$%msN)0mD#5,EYGEd?]qF%h(A7bnFcG0JoGW&BLrhM'4m>7D(B"5r7.JAT]*I %+Z$B"/jSET;R'XrBb$rRQF8)EA:e)2G`=E]+ap]2OJ^B(U5W!3@P">k-e_5a>p@"&^'cA_S.25H.=:;oJP-ppVB;^nN/@='bhQ&( %3L2?$">(MMgn55cH=+VO05BncGuQ.P41*1>Do2EE*!hBHR!h;u#GOWe_KdB?90)K]#tIV]5uV)4;Pjj)m->3MI)U1>S&:"PFs2ES %Xp>hfC)$A1_9F`^(h,Mt+:WI,;/[7Mf.FFXm#&\,dHdQdF"p"sWbNBb@%,]Oo6?HlcjP %B@>"`\YD%pMK&jdML9Q?RdAt\--/=!it'm7pH+7o80(,ROD60tWU)<7^s^qd*b(6,JXB06XA%8=TAr#clWbt-B's!7V*9G!LSE)H@_TFN8-7)18W;l %0Y#9`Q6[*P66,PoJ_%i'S830F_DW1OnJ!`r)f[:sj\YKbOG/Xd+Unr7 %=JS'Zmn5Ys)S'Rtn3iH\=+f;)i'N$\%a-(CE6af3a9W8"MEBB*Pj-\1][[D@_-:DQ&&&5nH>Qd@p19@HH74ZK`EnT %lr8(:#VV)J64p,1L15pl^l@D@YehUO\2#]a<`/"Yp<,T"5q(9FF@6VT@Vtb3-?3`4.3u]^)7TbQABUHH%Y)'-+9L##NBt"0P2ZP^ %^e>DB:J"oG@&t(NJ.V@KJi=(ps6YiL_'+/G3A]Z>7k9C:4jP#CrL)1pA&MnDP_E2)@K,?2dg7e4U %i43P=K:`BnU0&**1AhD-:9<5<Fm*HlV!nMrg4M;2o3!'FW&WV5Q %d&e=e`B(GR=JI!Ji,G3g;+sIoac#tR0,>mTQbo+5'5"63pcP??h+)R(C_bpKR&cHY&jju2&I`X",3Xgk2%e@e)q%T78YQ"%(^:/O %',Z62&_Kq=MrRs?VfsD(5WUEtV`6,MoO+-K;2c#S3*s^o%8SS?E["l'".*P#,'!%G/iCQ:*<3!0< %fH!>a?_sG%i:&t[RZn!pC]s2\bUTSFP&ln&!?&hDHKsk:R0,-PP2XWd1:8Hclp^[TIF<TY\Oh<`(UCq %2R.YMd%AdL^@9+O/).ZUA@]!?%A)]r&>44n8GMNDYE,<6C/c1!5og %>j;bH_=a+?))0L;Q_;@].'Bc_fA["X(kBdb2[Mh^;RRN__DV"G0pN'IetK=eSn_DkPsrPeaL*BA-Irf;91_41&4F;ZHeH$hf\DQD %CU,f$r\5Y@bLhLKi!$#hp..NL'i*US*eJ:bg/Y%l&l7\,>X1kM)HU$90l`,YmJs"b.J(W3$l/U(HOKYi=52(_Pb?7q,/K*:;Tl1Q?X$lkcRR0qpIH,,F"Of<0Ycu9It,'\Gns) %@>8#D0p-O!WO]?unBHc&2VR;o6n&0+jh^%m"?dX_p*Z;0W*\`\,BA;?gK6eWR4m.IJpJXH2G2K4S;E %YGccA1F")\,Ort#Es2-@N*F-]pdb\tHZg^UK#%HaET[06Qm@7$_@)cFJ+4>[`Lq^p-.?o\i]X,8k1.Cl8/`TS\H#Z'eJlhC',$Ak %M>/YK$KPcTRhp<0TreAO:\"P#?)X2S%3P5AaVs13-%(jqUlZ$kOV1uR"Cn[o.2/&,ZZVFI/KS?6"+X/WclD0ku!`A6mHW"3]ZmmU40\@YB7e&l$%?=2Vo-M?_ecA-Jdk".F26sK2;9*2! %?nBN6WGWRSqRVXijW^R"8+!s?QJa:70*:#`@>?RW/I59&JhWq1.@IOCOX4*6^gMt]=U-@*&-cRL7@n%PALO8^+A.:r2\nSE.0.MQ %b.K+COuOS*5TFRD$BbbsjLmis(kto8*!V\c=76`aSRS %?S^s]6nd?l.,`YcP[4W#NJV79;ZmdWGdOhfH341"&5YX)0Q7SMb[6MeEJr8H_60s-#Gcd.HkD$/5jDbJ[><..!"=O06/Wp)9":TM %g!VjkhT4stGg%iil#93cYGp%hE4EMFc`n443M#gT"':X]bPq'j9$G.'L$fIgoPDJE@(VqRJ@MVDH#/\0o %]JuJCrj<"<7RDIp-cIZd,:J %?so_TesCdpUHaiG`Y13Vp4Vc=pfB^t#d.a#!!%AaDg;t/&.#mkXI6-)"(NSu&X\CPYTh.j6_etK-#+9-_N3'd"\pmK0,6:'C&7R4l&8_NBSV2FE`kkh-_3UNgPHYtIRM7Jq`:E\W?m]'8NPp`@-P`_E2Y.Z[e6t^=(!<)!2fh7i %8lB2Q"AV_H1c=8Wjlh6`LBh"_/f^q6563a:Z\[aA6E&h6UOp?JgI*$h[-]P:L$>=j8AYfidTD&)pd1C&F$7YkcqsXT?6[dI?D<0o %*@iB.g"9h?B7V&%\7-aO;CIYJE[lCLk_O0tA/+Qr>ap*44/\3[@nB^q=LhNOhYOh-7T] %=:$uH2;J>L7m8(s^:=**k\V+I.5*B<3[IM^i3uQ5q%br*n`%tTskIS.+J`',M75deXh$mLZO75-.:8V6r`(ul06Oi6O;'5Gu5U4E_[T\q<"a].qCJdd'#PR)l11+.M. %C$o+qdY&US4:EE:?LVLKLJfj_&/XU8U%n>+SAR??*^VA4%asqo^18Xe9'I[H8JAc;PQ!#mKkQcYU12UO`/a*G`J7!Q3s/Bm_'clkN%ZdREE`cLg,Y$g$0>p)A_cQiD#*D!LGZ0"q$N' %GZL8hGFH>_9S-ebEUD5Agn;+"Lk.$9XEg*Vh%RJWaO$hiEJV*e[71k/"R63WH`KF).h/1&U;I,nM<&3gh?JLqOfXj69ZP%,G52b;X"6;CJHlfUC'k#^'[_jiIQ`=5Za"V-G2_P#m)ITY^'m?9]1pG9I\@'oH,Rh$@C9d'U=E`BLqkN'>huHE`[@*%56_hD%n`'!eX_WXC*/ %$>2[N(bNQ0q*qUU<@5M<-.<(W<`XEE".;:tfcV9K=M9Of%g='o9BnK%/G-LgFC%4JA0C\2_.SUh6G=$=.Rp7e=YQSc5c#We9:Ih` %9#pF:5QEZ6RLV%pN_Dm7e@n1fae"$66Un:ZaS[7mAL(Fg74&V^%:T8NX$"0C4;u"%L/m42aEna:M+a)(KN+,:+8OiG#BpD9:<67M %W)1U:KH!&tSM?@1^b4QDbVFkPVi1';JDpai#bdX=5p1(KZ(U5hANAWO5rYVU8=K<$@o3Xi$jZqle&M:#%1,=ENbsR@p(jsDItkZKa@-XnE1Dk-A7B&_1@haC %k.\b:&]VWqlTR`Nim`Xr(#XCF>TZfoW#$dT[PYFg"JI!T%])RV&0Wb.cKdX;:6\A&6L(QN`i#L9%[%1L,8Us@0k9`.72I.$64#s8 %"0=:DCdjZB!21X:a4u@;MX4bO)+7@9LPU1a+hNC.6^!*7%08.2R3<-DR0J>Eo8WsN23@`Qb_$K]_6?JfP"(]CB1&/D6=Pf`S<0Rn %7ES1KVBq"]^fQqQ#-f'$He<%C?DQGrN?rQ>:d\4q3>=g))%0P`+F.Be&lR18"]UI0RtaD.A1W3uWpF1?H#/-`7l-gXV`[]K'YZku %+dSL7!Tq84K2>*hP9D)oN-:oX'g<96E8t=lg^mtWR,)Y40[ %[Yis%H@;8Qj!roU"Q>YLJ;@ATr=BM?J=RuU_J4>UVhBc0^I$>0ZJRhSB+1Vj*oL'-8+cO_?q %;Ek:dU_tIgi9+6]A'&FM'Vt1PYZVDtZ++Mp3o\k4nU!rK79R#f1+OGj0:_KAF2i4eZ\fk`E3sj0$=?>^8G0hs'.d5+oI)]#RF_aI %0#B!42TYP`Ar0&kEJ+1l4S<*>K=t2uH!#iX)/#IRXJ>grg,(3%.L,_NjGMn/fSg7"tYR?-t+)N5+D+K\-?ZO;Ql^*0I^7r5Z!;M_@Q/Z;+`*=b8]eH??6oTq@clD34ocgq-EG-9L!)&#] %P3P9.>.V=ZJn@g]4PQ0>^G&L.>=Mp.&n!C!m#ec2FN'1qA@SikbQtF0i;2:Trtj=1&2k[YIo %!"EbX`9n2g6=W"\MZtMU4jp^f)QO"I>fIsbggm?tgQfIRlrKOh(O,=J!^)>d$?'&mS]fiB4,_/PCL8;O!8 %!%*S]JI2f9K8,1qA-O>f@q0&N)!-J3"XVNd=9>'#`(G>B!CtU/P+_#0&L8W'"L!g&U %BaDop>oH":l(2m@M7?S;(FrT"@'PNe^*9B/WV[iK1aqn_5p>o0eVk2)8kb]fb[@hgdPX@1&GmZ_"$fmQ86U(k;?j=g7pc[*p*3L%3 %\Ihb:`+1@J"V:^)arge$;c+s;%505'Aaa__7O?F@<'ro,Eo#0Y!jrEBV4=MoSAtbfFD!jk?oXAofaMkP'Jb)+6cY>0A0j&7W)f%ZUj1m$1@Ed8#+O]8*U^b'"$Y+WB9c5?YkCS3VMoU#uj %(9.5fXU!?OKPeg[J]*'U!@4EAPVZ/31)XLOgio_FR"jE#-I*)mm7Rm&=?!.Do,YPa6GYdQWb\hnLgF7";[p6fj9k3`P%J,4^8Qp& %P`Z*)N+Pif3E$7J91^e;Aop8!\CT.:a,o`t(MK7nld,=D5G.)nXtU+gd*]p`9bb?5Ous^s#e%e!:Z8;f>APi3gE`\L,r^DfME9J* %"3kb$JafR]he@)W9W`Q(C"$SQ8n)gg=\-\$!c>mFXEFT5WalcX$7nGKT`4PN;NWZQ7q@O^M8XhH!0p^Fl\>NG7G(^]H&rF_i58h< %9!#JAi%1ocl[%mW=LT49aom%##sbL,"9^migDVk0Ju2%Y]gi>Air\>U+V?2_ek8C^U_TB?)+sp/mQ[=0q[!2?E$bht,OH1j8ZJ"; %!g6'q8E"kgGr[T):V_;7LV[+BWO\^J97eOc3CO(Uf\*P+QPh^d"tnuDJ4uTIH=#_@5oV^t:AH$^bQOra?+'MlH^g2SlV5kn<)Q*0@E<`^2dU3(]L9l@K]&MD)-KXOf.cj"j0XNQK`l0q11)C*5h0YppCg %"Hhaj[#FGdN_Bf_g(J(2(J5BB4"iieGCLn/nONX++V[fn$]9aC\g-04,a(_!b9X$kMVLJuK7"Q6!cpA!h-hf1-MI*U#"Ts'-&Nrf %NW9V0bOU`17rb'AU*ml>&]c._H3-N)'88i]?t<8:(CEAFodRF=9Et)sC*c`'/C5N/Lsqp9BhTI3G=L'>5TEDGcm+Wn0>ecmX&FE$ %4<,3;/K*3sNa[9oB#^Pcg*WQ),-]FIgr+MhkGaRVR)q2"P+05ek:*g]+;U2:)Wlo*bZ1>#9OegK_cXeH:dFb)(dbHMJGrL@.([bm %3Vo-a/>me)+Pi'(p`NrPpH')"8;KCEOGH8lpam>Q&g]gVZti!+ %70^0Mp^lDmM:hh6ed<^X.m")GU]gGs7lhg`YdZ-N++^0]&:):r5SF)6;q!_F)+EW@$oN)K@^lJ>4tGPf %_G13,9ZML^&ql!+%$.lnYtu<-j;Wa0E%f$G9I#0X*I0ng\@`B+.//-3Dl&-R4\NqAE3\?T"%0\9g@?VEO4Bkb*mEq:dB$=@J*!D-)g_4,#WBN^< %Ah$8Gm17&D@ldit+WMjQATq&=il-bi`1b-]EX/?gc7"@!$GBLb#(0elIG'NE8clt63E!D.6)P8aiap0#\P&:qbtqkR8c=S%LNJ#J %QBGC%7u+V(EQV[-+:2X"=Jok0_IB22&VaB5'=Qptl.&@99iuL& %%UESo_$'OUl@`/llW=;mi8mcGn8\g_`f!.fJODhM[3mVg9Ld0@"oUaI3uHU-^S^c'S]8WrR2 %m%U;udsru_#%S3=)/9ne+!+s$N7ghA5G8o03*$H//4-GFlKpoWL@FFRYnFm@=>A^Sm_IId7LbM,443PG:rgaf"[m^S+=\n(7sHZ: %$2:MHY!rEnHLTZ6gJ'0!CFC@^Tke0GJ_:;\09]pCm%KUpPoDlO^l3#?p82I+c?b>BO9BP9WgoqQf*V=.O]+4Y66`V$OH5c8W2VcQ %XkGJ0fXNV2@Ko,B>(o"H)$CDl*"8K.mULek^l.>G"Do)PP/N8(d+CIdjZ5+EPlt]=,lXc.Q5bCk]6%JDFX@GE/-a6">n%MZ]EeG' %5b@P"e0!PcJ4Ks"2seAs-q%06*6=gb"@b]*E(_8RJZW>rj:&ppB#7>C/(e@3<5Pi?VXfAm)GDH]K<(^H+]def\Q&sCLWu(qiK0`6 %A5]?M:)oTB'+YF2$#1hMmD,\G3G^R0,gq1'?qZ6K@j)sSL5M1[,WP9I-GJ]XNGS8Z;?DK9 %iioIga=112TL'AbYQG=c8Mh]_X4HhEK'Xf[#U0BpUaJ`gC%WZQgGC6Z[OB?j-Ess)mCR!V=:Mn^4H.`W!.,#nZDHohjo@\V)W2Yk %YY7hbg'K"e4?";I846=k8Kh4=OQquC$F-Ir*/eF^];AsZJq9>T<-_>9V2V3UJ_H&c!d?^tA;l1@>,+&+.q&mGj^XrjTE'\*$*V+@ %_!rVB'XB`YH+6UP`7PSCHEuV!]Q&ePUVr!=KZo+lLD+@b.1.?$;H772.Q2?V5Y#dfj*Xq`WraI%hqNklK$cTc'$+$UcdQ %$)DKoLY3oR)GVD.'])JB5%31RYY"n_@($(AeWG)1RHY(*[?u@&UnI?*,@DWB'(X#YZc0^:W2CE*#4Rlahs*iiMCJqDKqb!"&Oc$^ %A7LhYD?.Sl>=+Bbif80TOR5!+0PHm`pGFu]f/23jVPG(#.X.M-#*g,u/ll\.:X?W8S\n)"UjgmrS9>F4nqsKNbDDjSO@(7de?FH! %0KLCUhU;?;1;VW!X_,9FZL0pILO4ab$T@='6*o07\(e#SF1Y:f]*:C^[16P#s-1j@a&]e-p/(.a:ApjAHue()D"a]k.JfK7qW"[3 %)smKJVB(Z9X)'YS>Q$jKSLc6s2)X-P?F/=a/GFJHhhRB"SWhl]RFj-[@h%or;?8$)P];\U[1f;NZC'gi_=d8GPC\q7=3TRsF"4\o %nkX[[kiJXrX'31t;IT4lb(2X5DS54UlDMnEb&OV6fP7tu[JimD%0>\Hcg6-_Nl;Er&e$>k`%J$;63]>EXJBlAI0Zq]`j.0ZNu],b,,jfYq0.ARtmM4"'LX'E,bnVPe9:3LMk35oSY!na$qp"#a)JdV`/L %UrW*6J1F@&7gG>Y\(mJUq#_'3j]*50.BB;`[ic=7%lIXT)g*16`Vjjqp+?1qq?#Jk`kT/omF&G[A+!Orh3G[thN;E:T=\E)>p8^: %6ru(7Jh,V)(F$?i3XH1f'2Y8R'c(9f&1TLlPYS68=0gh=ZLYKF>)C,1qgY-Bfb*;*PdBqk,.S^I*hpj@Ft>S)')sCGk&;MuKK2Yh %$j)lcl4d9(/(!-@P$_a&opE'1,t(4=T]gJCPc(,6+O:BGj2^tSQ9]=BVGtNJm_l1,*(5W%ZaIkeA52;3\6Jk^?(I5D*0d$]ObUG^ %_V>PZ?="%45mW"Q"F"F"(p+b`PppQcAG7<==K5O%kS]7HGp'k9U'P>2e>im#NX>OjKG>Yr>`/X(2,f@#&L!.%_)4am*p^tq3b4Hj %K*&j:TclEa_njpi.EsEm]^p3?k/fj.-DbG(VQj/tkSj>j6q.,C-"kFkW3lJF&-L@1L-mgHmq4FR0(AF%X9:%#ZtEnQ^61Hf^QF@3 %ZK4S%bbV0<9,E[Vq/=GF;LS]<*)M/'$9f'EP(6j]aZh>d"(168BLX0jDK^V_)*K^[Pn6(:8Kt95e+@p;]k:Z31bLqS#DW9h:95T/ %I=U:DVLCG@oe`Y4c4Y^MC?Pqg2j=m*D2%CA&S8WI3tgu(]He&+f^(PO`q)f@a@O1R!f4KU&=XEM=UCQq?=9%hU\kZ/G^seam$(LM %$;79EIlf6P&\DJN7`=57?=:!>PTJ6&'f*SNk=TBE-XWWA#l@834M57,C`+Dt#sq9&e^4S&a88gF2236W %K7P0LNXSTZ.Odij.*I@ToUO2n?BS)`?BS#o;+9ZZ.*.`B\O\K6@RW"ASuem]h5P1m8h0KZad4:l7>lN$DC6uP,.qW9'e2f;KT&GS %,26VE%QZ*(_`*kl]*HSQXkms)S>^IOdV;`^HKY6jb)TC6DXtf*U<7\L$]FGl(/\ign5k(C^:q7g]!`6Q^o?d?Y'"[H5N0sBp[lOV %k>W_Nbbn`$1Z4bh5F/Nf^aGK[X#COFHD]L_SM>6[!Z-iV3-LC"JlkV.$"ri*X+57_L^]r0lkq`ZI"@YLA!FF %%iiU'@BSl0#6eO.54rWf^W.KD^Y<%@kqSrl\Tn3G^@VPW-[[?c,u!pU/8E-:n/54S %-qAkG84Z2&"W7d_`i:`2TNEHtHNlo$*fUoKMNA>+&Dn32EOLh3cQN'T@:*gV)@EOJ2RNB\XtBXsqO.<-"sWqMN)`nV$trt1%=2>W %bY2>rUE-"tORYD02SVquS4(&CmBt.h'N!KE4rhhc#NmP]l4#A20[K5%?Q)I#44"bRSn[Z@J"aDTg$8DEZG-EW[e` %HHK?SC6koq3qb!HAXF;oT`h8;B.CRYL/?:F4X7hU&bc[;RhA[<.*@<*c\ItQAWNOE&rDA\7)8Zi-3F0?r7Ul/j[Y&dY*XTAI!MM\ %''os%S/0&35?30o#?_X7RhE&1qE&tROt;_cWBdNU-]o2NK[PHKooeZ#A>C>P?;^h`3EMRH#$6(P]R`(GB_KYC1qRlYO=eCmJc@(D %CfZY@/6rq'!nuV6o\eD$3d\b54sXa]TR)cB1QiB%S&HNj/J*3E!jRLIDaHmb7?VIac+uM2N'rT0I7"1XC2u9_@NK6uW+';dPmWK. %KhBYkhB(nVao^S<"&jM5 %f7jI8jo8LP6J-T\8)b*3+2a^>gL9o+jG>SS#WDqKiX4^&EGjF51ZqJ%M?IA,N)N5g7\AlJ[2_n^/&"VeI4n*K9)ml2KBYc,Mc4 %0K_0QbZ@uk`kAk5E#YcCa2k>VE]N$;ru_)\gfrPNmPZ#:DQg?KDnN-Pe2s45n)gPWD^reoOjOVKF9):?).hq:+5TjUg+>sRGt9bZ %&3/MZb<3Lq:ln;:!Vu;"'FU2+"bK()R'G;_Db6X+4AfZT %M'(n\KY>MY(J"mldPF9jflX/"EMu;lP**^pNFrj0(Mho)5fkeI4ps[`R#cr0Nja:bq"12;W'dd-n0LJo,hdVnC'@4=M+#^@,lf\L %3FH@VR$'"9$in-GC.pIJ0Ec?*YU,ggP71K+#`q\'!fgfSM)j2g\\)6JAR^YQ]$,g_U7`hS3\W*$C8![_'CnUpc5i,JEj8`9K7f&>q!#bXUT*\>rk?IKjM>A$#A40!)fI`miaI/G._35Nhj[0Blajthh %3UM>_bdI\:eI]m6D\BYAKbcUcYn]Jd*eIM:*1HuN!X$h(YhnI/_^MdA(n7PY0Z%u=E+_$IkA2!8fj''J9&]*+Y7R]HA)XKAK]Wt: %BY0OWI_NZ.Y0+^n`S)Y,Mtm\faW;".QV8s!Z6uZc/C^ml7$Xt<5fmB+eYEfhNaORsr%MpqE-^S\1;uq<,le^2g-Rum %nWKnZ3o)Ls+GFTt$Ndu;M(mj(78Xs:6_,#=&g!MWA6BX?%l$pc>'^IJ3[@AD$]qJXFS+!rUkQHd&.l-,Z0r6[6InOYDeD0*8gWUa%2i+VTYI^S1&CA=L7JYY)o_A06R&9>[]k[_XA#]7GA/bkFp+e%n6\5d/gkeQ^,1&Bf-=\>Ua((6$EXRN"c\"PMl.MUB$3:-jGY70@N[7/C"?H`\Hik4\S@XHZb;d\sY/_!( %N-q[?j9$H@KOc$qk2GioOQ%l>pg(I"Vhe3-*]06m:1WRE"j0KT!3D,=M7$92UAQ`P=utM=&VJ5MJhgpRCG8W"mF'6'f5AjpOnOc^ %DPuE6P_:)#K`_#glqh6$MKuHnk$g/TXFsKqROgn;X5YD.!p3[=\=TcEaB;a?V=:h=h3iaM+:+G>6GkCeb,L\6E#`_QDIj&A(.mC@\"5:.]$YZ5`coH$-Gk,Ag7R2`UAVgA+huf'$DGj@.QbF.EX\Ml>rq %C'o[+\lNKnO_b1]!pTMnpao7_5Y,NYBO+i`&(3u_-D%Rf_#t1^Pd?`T5@NJL/pLW*-8Z5`fm-=.+[k__OUoHm8,Y&lX@+qg %BaU0XLp:E0]7@h\.ji#]O=)*.A,.,[X&M3i1i)-P<=c;)r:m#/N!Llcf*q77?!uZC5`.OL=Iu>;bk=4(VM&lJW/$ML;6\Jj$M^>o %P$1lMLN%OSdVG)#?A0H+6RKZga/!fH+=#Ys4N(,Yc5A6;>:>Bq'&!!$"iTAdIYX'ULS"#M]q6#NX<*TI!hX+)IK\hk(FATJ'e@1j %Q\:f#^#`G;^"4VB_:X)*1ehadh;9a@?oN(C81*7iZ`X`!tk8Jg/-9jn"4B']Z/Kb?L6O5Xb]`)N13r366PPTuAI\ %)oS*+e\Qp"=E"/+;%2U;ES\dj/^);"H?s+eeOGn]`YGX(C)#bAnUN_`/JT/FMjkMJ]HSk".Mb@JCJ1S<%?`!>>4,8':"%/'_&7>K*S)\O/n$Ceaa'7SJcYXcX?0VgYOp7\9N:,&K\BDdGiDAlPc4XV9opU;1Bm %8l:fYb>,Tu+Y[E,Y;X*;oicVsNiQ$5rhU=n8-:h3+bhu0.$c+d7O-cj)1<"U-5$F=#c9PFQXPkC"[ %!,;.K/^S)@Ong9GJs%=a()$\+dEN2T^!d=T)rfhYcu[&qM@`&5HU?WSHb-`1]r@!8&Ao8p>]lJ*H\s"e/]Of=,*t!O5[oGf7ETcZ %USe=l6MsW5e6(-U,AI?4&7i.)o-Y8k$&Hs"`')UHNOjsW=`j3E06+`dTI7NW\LJHD\o<$99G/9ERuJs#)=k].Z/P@,gdWI %aLk*\P8mJ2/B%?O;:8O/+`O>5^P&X]K'on[R%=m!-U[)#F`TPr3`KZmBgE@E+KucjCCm^GkXj]Mc?BYId]r<N#rcJZ^chYb6<^.)I[dgt]Ord*G6=+YaOX69iN2@W\t(N9KJmO3Pf1]F"C:'InDYAuZVmKUBssiW+cb5^UYLNoKC3PYhMc %1U8&Gc,WI(FHGdJN84(#`N.6&0&)&p?eI#@NB8HbS)jKDVB;?+d#0Wge5W-#dl<3"p4.#d]E`C='QLLrd7[(J6m@1"@D][;c2IG& %(`S5"OW#1^naX>bYq,<&GRSh)T<5W0_ErtIbmBjoFX,VZ"Z%J=]E+11\o`bnKJ%,I %bUX!uX,oWse$Sjgqtah7)(XE+OlXJ+geebb$FEhshg!/-3/E[.[Pg<1e"c95G[h!t>Q4M[:bSW6bljB[0L6mCLUc9`n\pSH,Nf4A %N&EI_^a&@jCC.L4i=PJ^q%j:)Kn`XT58U>gV980bER)!/8H%ktS!ZlZjQ#^4XikU0M_9URP"-])g^-\j9Z\5g3),"%[)mG\lSeZ8 %Q@#J9e?Ydm3$A`R>ETD@i\q-W-#AWli7dm%+ClZcF*a?/&:b*C29Pn^cR0kTJ?9N#9cM9:ZrNRhUV1%]9b(Fd,^!d]^%f/W>TD;W %)U@:U3/lFP@<)*m;^UqE?I-UKfj\q#>1VA3^qDo4pR5^TP7VE2B<6thncP"\YGYV)^%?V6rLidDQWC:?=`h[&FB:FSW3b$LU:P-bR'=<7Ii37^e[i?-mQUAH7!9Hj^V;EJ!rcZp[HlS7GjifSMLa"o?X:ToO8Te:T8gL` %R-u*m$\H*>l7[tif/Jng`]_qFEOnuaJn!SfY9)NEqe-lghQE"nAt$Ee?"[X`>= %0n!KIpY4G)42g4^5I7/jLF5'R&(lJU9+@uugP#YDhTHDc5Ilr@Bb%M@)Oo5Bn^p!BJ-a34'_XN[=;84)LII9N@H]h.KAk/rFeC7po*-VX3c0(ONg#Z>rsg_mU!Zn+CF:AR'baV]KQl&Oh+cU %E&e63@&W3@mX$D^HS[[YU#eXUC1E5f\[@]S3aF*PkM/;McJd5qUnteL62S,R"0I3(%PM^SL8:`12q'`'R;:r[ns@:].jdVmI<8VlG/'8PeD=urY\`@^oQ_4U+, %J)TgR:A=JmIlO^#P-\(@^3/7O,3Rcn-SiGTAq.KudhE\cXgT0oe9@fcX&G,f;C\XUmV8"K:)q$\gZl8<=H"&V^L;HhcCi@q@AVh! %2+e>AFq2i&K?HB'J"^n,ZecWpDT>b(1=D1U:qKGIdg^SY[8D4KhE#^V+B.YKC$K6a(k9)s[aQ/a/O!P!IasYB$8!eZ4Dmd'K<8a\ %l\+pupW"iV8PY8Qg,s.o%flXHh!IOf'd:D:p-aDu`]M'3Gumt!p=,]`LB,9`#UiU3j,O.=(u:q9I" %i)';+3j>=?jge\gp=48ZMd+jrh6B2(%Kufp]lE7sdHL=$=;HlGGMdLGNUC42e(7Z*rNg\G:\fk$WAha]`aO8S[eH*RU=7K4n%+V& %XaE#lU":#W)Adj4BMe+u\4S74XYI,c=5'gt=4e=qBQ0V^;42_NpS.rMAFG!HnanYLColD;S# %I,uA&Bfc9fPO?uK;85,i#SZ:#dnM.s^ai&H;7$(!*SDT#H23QE-q72XJo.lW]q.]hB %TB=6#DGBpl2u4NB1(hqIpn%!e0:es`1+*(F&mAhbSV%S+T/`.udf:ba33fa"NL=_#9BN1k3@aRZ3PssX`;)tg7jWUL@&,'4VH,oJ %^tB]mphqaIki5qoF&_/\k4i-+JPQrER!di+a18V\qm)(GBtL#!jpJG^T&pnu#pe0Sp5J2h2?HUIIJ;(k9O8R%$5#-BA]) %+J5,cjp1bQF0ipb5bFN/4s4.OQoXF)I$%ZIoe7KT,+0B5/igsnUrVB#H%^7.a5#fs?';M$JX$@k?BW(aBIj3nR(57u(/'#`k<$/D9,-ndfAh'SLn53A/lO68Wt><_0SqV:Z3!@^.I[CUYHQB2'f7:O`,GEL*$+.&JWCW1^MU8Eub %DYf`i5->@_i?s'[PqS/GO,V5J(7"'kO&&,Br^:QE^59)lA%/>Q/+%u""_;KOq9Y/p\HQMmXNrI@+->JlU6!m+5<",jC\XP_aiFFm %!@47(5Q7ha,G*XSk4Xl%&X4FLVgd]*0_XN`:5JdC_B>E(4[*uhq9uQpUqR.u8>&^QopZmak(\qXpH5&e53D&)h!jiB.6QJ-ld_V3 %55qZQ@QrX;1:MX9'&GF"If)phLQbIsCt$EpT9#KL;<3#BY<85em_cfCmej+X/2Ci;&"c[b5+P0?l)N@V?aJhlLF:W%PA@e^3,pNr %dVCa&+80D+2q3:MMS5!3+'O&.dl8LIa*PJgdgTgIE4T6A:;76%7\QsArQi/V_0qLS5E\]X90*Nh:ab5d2+?^!^-r$?spe034P'G&Oj5qa]!iI/jaEG,d?^D!]NeK170'CP(8UjmtX``CS?KGn7 %I5L/2RNIg/qeo-3J(756F_f]dU<.ntB7b]>IOU)H?WX7)Zt*tUN(=ZX+-CceR"+1)puGN#"l]Y]bZ0H*U#A47/0a,?;#F0BSq#m' %q;`@<`$>=(=%i`qL-'=*F=Bq$lILoRdeITNhDYV16BHhjmpk'lZh;&eAq[][.p'dcfb%prHe&&s(\Zk_%$<;j"E;3[.<+H-i!XUn[jG27K(QI_XD[T5`Ak2b"ZqrZB+blLIs*^cLidouLIe]b&9Mu&EZ]=H>S1pada"r?[qYLa_rrF>SSSq8G/)Gcq#)q4BcV[SQ1Dh;@B^i5`JHs#1?>o&"XmAcdcoUNiQ//?>6u>^?GcE %VqeKgRg4(HEP"I@:m7>08u2LCc4n6\afBh2/&9_YmB1,\iW1c`Id4ZCG5Eg<486NH0')B?F/I2gC/Qe,C^?-DY=mM %oU":(p$<3$kRT32o4J!tnfM2hO.AmBQbP*iaWJWHP-"6$Q+VJM)5S4MJc:b`nj'ao\s:V$NR\YW)gd%%G-L. %%^J][.embh:(WD5ckR">E60>J*c7*EBR\h5XHHp/d"f?5'WW@C[TQBp^;U)\4O$@=6*V;l[g>E41X--L65LIhVd.M%8l8N(Wc%#!:am9(c`*q5EOJ7<_J*EQ+pt %T!M=caI?9ZOT1R0ha4SL %*lBD,(eZBT1>3;G1AW%%2)j%-V<3MXeU0cm$+;slGn]PkL^$uqP#?XZ]Eu\VHaBp!^*o%0*+`>8-s*i[-)@m)l.:WdX]?NRj`sdd?JM5X&B)D&mh>04+G58^A+L?>]D,,ZiY_ %n+<(c2fcG%`$X'HB4jstP3uTM_Vs3nTbF:"-Pa%%hAgiFrqf(I("6ZN%7@a0!%\J?Y96mQ]ZT]l^cQ %Fg[BC]NR'q/]QQ3GVqQf/OHiONJg<,NRru@CBRR>*tDBDVmJW)Y%FQ88.BU$cn9!sS[A-;7e%rTVc3YHTo %-F35q(J='.)K%\5e+TE3#Mh:EoDbMDNH[?SDQGe_K+k.k\YA5k3s^&"Ygg:5mEVi!HDeYFXh0n-%Yt$1Df^C9%P+#up?JRDmorQQ %38b@P&!c6_&&4nLY1;VL9^dfJoP1jTId0\hebYrQYdf0Aqs?3dr$prYq#0$lNGmcr`fD'G*,8cWCLoKu5>KrR=.tNOJKl8jguA=o %^V?s>2.2,;Q.kf$#Ci?0?gkQIegIl`ZoP(CJ,8Ul_#1SE]E]_=l,VOQm-anf&c[+qrlnN0"]fLpF&\A`]iJ+*>i%DD:3Vn_\tWdfLjeP_n8Is2fg5)`8Cs)bfs29u)OmcfM\]qJf^QfDFX"`@f*ErD:+ %Em[u0ZoX!1n)hM,W,aQ2QU2W-lJ]_\lNkf$"7'1BqL[asda="eM#AL^:rM/9MZQ$.+DDhD@Y!7)?]6iCM1fkf/Iuo'sDY!7u %6\b0WDIs`SV'$).bbO`[/9bt/pdCW/Tf$0//`R_HAgc^ClW2U5nUCF^EL3Dre9ks$o]JWijMJY+acZtJkQC.p+-Sa,clG+)Bqor1 %Gh$R9QMH,Xb.ODi8?^#pn:BB%mUH%60A>a(D6Bl.-0rIELSN)$h\B5hidQGY5%m49T-q,plEW:d7[HJSA&EX[:j5HgE'#Sk\NYTfgo1JY#]ttX;o#[Y=&Ll/&1C0Bt*CHGMMMUT1RQmMLqc`)"lbDTNgk*0k.K5\mrZ&"+GGo$A$ap.iP#/id8<4Cpe*j4kM;KT\@K701*Fp>=_$"C>AdffW'MnlQ\sa)gp_!Z %N"1lou %2@jg-m2!1Rn/lkcB2ei="c7*]?WVK_mZs\q1HONbc!LFOacUr0Njen'i6mNHR`,Vne3\esZ@+ZTk71dEgWfH@qS3R27b>ZT<'/"Q'?Kje+\,:(@]\Uj[J(HjK]&HWH;8+C&ZCTm$hs?oM4Pq5eN2(6/.o'<: %KRp*JJVc%K!`&#m]A@8QRdKh&++sL6SCT06B")!8Au/:jV7%d'/O<[lkkXQ93_l]t7e;&7XkU*?M2,Elj,Huc0A_\@\nb1ggC!aK %S(RR=BD"`C*1"qIM7)r?1p)7eG3dB>*gh3PE9I2)S#HdMSaTk+(OdOP:Kkm+ogUb#j?_nGL/Zs@hX5Q6:PS;"amWe0TrlJUJ8&"< %bJgkCI:OcQQNn;bqjr#jE`2l][V3/,C%Y9W3lp>jVN2n7a(7e4+n)mW`3[[:MP%HUA&Y17pfK_0:YK*`&@\*@kO&7:iFgTQ(q=?b %2dpOY-8at@kFeEJj.eJ[.IiO_[5>;'`C9O&F4gD#^")F]9gn<10YCX(3Fm0WQPpb:2R]q]]!R,DrOmSAN.'!KdH-Csr"YtSgL\E> %]@lCkoX"mfWEWrCebn5tRhImg`L4]*g@QislgEV-2l#UZj^s(@72X>e>7S\NTNd2bIbe9PmkK@:YSGh[oHeNT\:q-&'A?%C`2^B/AXa>N]@4CkmqFm[/jb`\@hb:X6:q*g\mc0iu!dd=S)?jf8."Q7nX_ht=E3)[FF/Wj4 %La#s8biK^>*:G@J@AS@2%kE71r(<$oSc$Pc;sS7d`JsD&2;HnC]sY>l\+UO#Hq5g/)eR1NKn+%Ts>.7H3fWO6+#`]o_ %\!_!?4ERt3k9H<5De\phi?#!SFgP<;mgM*]0RKl/,=eY9aM*p?LLM,X`_1*YbD %T4sfJAYOF90V,1]0@am/rqUG6@i23/]%"r"Tc7p9[[/I^Rg3h5SK)ZPq=2JugK0k/hQ4Baa&U6d:Nhe&mH2W)S[uk<689G@._W`+ %InAGUg7m8mAc6qQdk+U`XQ?]ZR=s(^0u?iY][OB`9!\V2m-lK>GPN8/S1Sm'$jIpk\n?f](KBU*oS,hZqHUN;cnK'5k]RMH,T>7X %De[H_k2`KsWTJ2=jUG\f<9<*3GFJd'I)*>mh3c_pY@]ZHYE`Xj04YCtb]=4#s#6t<2SlI]ga0Y34juchRfH(j1qd6r? %(T\e0?j#`nK@\tf5%CVaWhoYUl*SOt*N7#$f!c0ZrRPuOU6.Q"lRgN84JH#>Ph_K4Nr4[AAk %je%VJY8I40D.:J5(48$8cHtf4Gmpq*h3)U+c^*EpZJN^iNAGP-CM%=RGkSa1rC3R2T/#V/kH*L\Cs(Vag;,X@7gmL[DG);)ai*-`p1Di#?]Vp#1 %l:]VICA$YON6['.H>hBo7_N+WhXlE"BD#a^mN-L(qJrdhP8Vf\ej67cZjn09O.a[\!&QL7YG0I)e`N!@m'(O"B4\L6[SlRGHc/'R %8-CjD-T9%GC7VpZ(gal;K$"l^K"U4L$QuWS9`C!:Q>c"*D(H.M6rhE13>=F.N#?c'Y+Tt1#ApSlG'5kDe#9.9cKecqc)rZ/U36j7 %EJ]GnQo05]0l+V4#"ebeLFGZfcdMBqD1o"#D,t>mpN$Qo[,^8LEi&8*?.JIM[MVEO".QDWRdJ@3n#2YfGhCptp6/-O4@Y5gB;?esXup3q"]QaB>N)la`E7om(dr4RX=RF!km?@9B"beqT5( %PuhT8qL57D)Rs09IOO_\^/p-W=o)3b%q\^3ZP"Pe(FO;MIc8LTW1Skg0C1eAD]d#6u`HmptAf"qd'qnVsoh9)KCk(L38`G\8C6i!#A[g-*SFjCjbt6`ZCh=U^<:SVJHf,MU %:&tJRT=YZ)0L^c/4@!f('&=8Vla'@(*JO-E[9M\a7H]e#bFZ7,(cMYB1Haclc$no-TZB%ZE?/+-dXUQ_>eI1!G`,k;Y@ltbS %0l*Gj#>Qmjf;pT)J!)9GAc4`DjLT`cI6U@nS3!hK3Bq<4AK\TrVgf]9#93>#S%TDIbNqqYEA2&"EqlRMmGtA"N_\KY0"K^"C_`-4 %PnkAgdqJZ-G3B]Kl_p'V4>TcfiBEWbG7LQ %VVib($80j1ff#m>;pM+11t"$/C"V`AO3reb^WWCm-Mof8?#s)XYHieU,ROXJlW-W[IO7>9=0LD;fNo&+76SpJpbSOU=$'LkS:7%g@[Z2-$Re3>;idNqr`qP2"+R[Pn&r92=e/8)piZX]'`Gcq,Y7NhK]@G\>@C9HhZepYB>$M %o4$bh]m)WM"/[X,:,.*TMSjA%=$GG5kKAsAG/478RdJ\JO(l'th_l!qR*$.D="\-//_:HPX:a4[pW]%B@CFtZ>TVJJbM_Oq'?=7h %;mKiT]>ahF-f*[P[W:Pk's)J'mIs5>knbnHnH!&\]?tg1?uU/` %;>eE/qJ,fegQc.#?b]lK>WqYL+&%(8QSq"4]a$4e(^O>e0lEeB@T<2(V?b]k&Y("c\2LJRj4C;2aJ%]j6Z.=_;hl**! %qtD0`0*Ye>?MX/r>km>FaNLhj$^Ut]Xr=@COQ$%^"1NU%p.JChgA_sh>ZqlH"6`PhpD@lO7,:t %#o4<:qn#'U?LBYa5/$pajo)gboZ)_=C[^tXK&p>!RCW:aT#omB=FK&`Fi.h+DVDRNGBg;k]3BLNCL03;;8(F`C"pm2l+u5rioAb! %#@G,L]9>^42_WL+Lqe1FCYbV$5M/-siLYPg`D:mKUX#V"d%gBe(RU@-ij\ID%`[b\b.F-_2c-ej$eFI1K\A %nVi+uQ2uCelVnFb=1Pakk %IJ:oDkP5\2WZ>9?5JJ^TQF*!):U:A^l`M:GY8qXGh.u=8Da4*Xr`bd6]Qmq*D;X.*>m\8m^AbXo4*_LrHhm@Sc;5.]HEisP>Batg %FOQjPLN9obj`/Vd8L>4V>$/Feqr.@1p!pKRnX`8Fh#BM,>4S7TnNlp>rLLdfb<+#TkMnoi16\PScR/Y'hIe7kETbtm9&EtZGJ*)#_u"^HA2s.rfQa^7s4hS$4fJ@cNh-#UC%^/_[Ouo6-8aETmI\BgX.NI"Y1J]*-_>U'E4B49 %4Pf&V3FNDhXL.#CDi8h[K8kZDY<:Y:io*EI()C1+R]fba]N]3`:VD4-'.34/m_/"J[s#,b_u8>\_3;4O&(:+DrUAR(&\7qCh`\!I %qQ1U4AbCgQs5k-DSef#Nhn8^6WS>O!2mL#%hL>7tqrcX&O+297=Q'1i\8giV@/o_5nB]TfZXtI=;.XB.***JX\##gOOh^2Jj6uGkDOT#&\(i;+Uq:e_Vt&,nip4'k@t477m7.]I %J:Ck]^@Sj5CUIIjU2-Bpb0K:1(Jh*t&([JEr%%VaI&eLBG@!I>>\QFsQ7uB)'`6?+hm@9TO*;-&gV[nHaL":r/B-9)1JaH:os1Qrf"T&pLe9?o"^gq$Ohpr//O?iudAYgh.A/As5qu)dHb*H^:KWkb`G=NPaoGT^4jLI@3,u&#H2Z3SA@6/Gb=JY9j_DaA-#Cb_P]H82p,p\MsGDDh_Ip/"Yj07mAW4Ru %KWT8ZDrG;WGfV(o^8uAqq:a"%Ff>g+f*dAhbs'-%J+o^0#9^XEDp>=76V`GrfRs)(Cu\QdR%(;SD_h69:MmbVFQ8efPk&DIN(WifedL-IIg_,b(==?@8uk5M3O>pqF65g$Q3'n"+,m=nTt$3)PhG7^]%44h$TJ(l7tHY2J%\ %e]aga@8Eq:=j&hQ:-3]jNjHqU;e4(N3YB3E]S[B(=]@ri9X,7DFh, %`Eh4_0'0[^dVR`J[cRSS,1@S%12GeFe9nNIoX_ec\$c$a':[U&X,4J0pn.R?>8`m0$8!fpQ(_Z@U2-K3J%,>jIJ)4$qmG"Yn_O(4 %Vi/Sj^:e+5Qot5ag9&7F)HSNO,8F^tgHQFVE[t:"p:mD+`4'c6^n]H?lHO8."0[>I^GnOHe^q3mgO$??X[`ojl!+[YduZ3Qc7Spi %og076k?*!>2P5$bh+*)N?p*)'26VqEe<"B:`E/+2SJN5Qo4crn(5;ZN/H(nRR_EROW4qY@s/n##J&]DhCt\%YsOl^\"70;bY(cMiGX?f(`)Z&Ob+/$ClR]>!X& %I]EhTq;1-%lYj7Vf2ll3Aq)3EHhT&:^,nR3oJU"qS/"*UW6N0YrgfOFg<#DJh7NXLao6atZ@5tt1V!'djk\,7::/n@.e`3l=B^/[ %H07EiXS>/##k77&T!gde,2Zk:^FuZ/:?.i5mHabW84qd*\*hqtleC=`epkk,Y[\d4J$JaY;]ee!)h.O^jm=FN^Ue]9f^g3"q(1VI %E!@B?3;8nEE_$%[43,&ql(<$[e(="aF^OsTmU!0I?e[e$#ES>gq0K#N,kIf)kP(%_2h,,iGuNUA+1Tqrepi&e\CNdEk,7gL!FoOm %D6J/EVQC]!fA+JkDu!t2gq?#,U,[N"H@EO)e`oHQgqIb%Q5YA2HgFf(qT[:YrUn_)HiNf7]q92%^[Vq?Id+6ZV;8bhZ%'X\FS#&O %IX]#BZuoK!I.,fshrRqh:Ajp6Vl$=W\+lt9^NEb]GJCci3#g2IRs.Ys5Q??*ltbXQX?P,Io^0O%f=\k=qWa3T`J+MVDo7iAkJ?n1 %W42V=[r95UV&QI;G?@K-QXBZV4MLR`\(:MQV[(8'msVZOI[-GUU:[<.$]D[&+5GP-TCUg7]3B&s2k6I'BXmm8rr-[(m*u3!g %n-bKVX"SX&IU7EYm^>&tgdUt^QYZJ)kGQk*S^jKh`O.e`QflQ>j5hB6)Op,`,N=ki-BAu#\H=_fh"L2c]=Y_^nJL"7Xc>@>_2ZLK %C3mV,\TRYEH``q?s4X&c4dfWs/)VI8#bf0.67SNOUm'XCkm=%oc^m@Jm43INB:'%=ce3`]i0f^D=j=6`.5*C8B3CT=9M+JO]HXk.PLJH`/Pn+ %Iu?1'LYf?Q.,snCYa8Z"V:+%kUFBX3kHtPIZkL\fjT\u.c)l'6A+b4N1h28DDq30+UK`l2UK:I*YC=A3X,Q3lBF#YuWK\k0jL_:9#-4url,MoKlMBre %fZLB>B%[>UYPOY*Dc_XN`KU#L[?(_Q;VfU(5tMlr&^0@g*\9MoI9Q'7bs#=KD2`VSE()qk98#sg!`d2Ngd^>XZ %kPFeZR]#m2TP%uco)#&_QN#F!E<#o3Ua4LG^!II2DQj(;Io3\ilAsWmUtW@$Xu7e;5Dpd,lJNJGIGDsqn't%^opqZ(P3/caLW>*\ %K7-Z#ub.#CIeRm7Dqkb$8V4$3:Y,H9jH\lA5@/%1!r"VK-SFp2Iq3O %qSR==\s7*f.)7L.J(2[%:@e[%IrgIV,%Q`IrFBV`[pIj>>G\iQ?-;o2fh>]R2b6KV;I]6UCc8Hge>H5n$VoD>Tgq_1+?$al8q,/k %^eaG:D74qd?^g5MQ:aq.iRPj3"?uU\*'aG:BWFQs>(!H$0.J'.VmP.V*>h[gfb]8%N*h!pP-<4sp@)'@#";KU=mNgScg[HX+[9n5p4SIN`JG6XuB/bg*qlRj&GA`g(cj#P.hT*Xm3R%+W[;YL67`jK)8C=*Cgqb8EZNG0W %\+U5g9[r7G0Ql5Wrql(_Ktf+=FC:q>Xi\[8he<6NBX.)-rV/A)XD^6DNpGHaF;),L\$URYb1FNiEK(msjfQ%DH2A,bnO_oOj6"2C %DX9(IN-ptq*+nZT69]h(Zo[(C)`(]"X]:-=k[OVujf)J@]7'TmhVWA2aCDlnR=7`6dTWhHWIL.RN=JPBo*UGoH+O!\r0ref46*a2 %h,gjl_t&8GItcPmA``K"mMP\NEmAsh1I!u]"N!Mp8>Z/4HaZkQ.':l6Nt$V,\+O^S3QdjFep"Q@#5-jgetpg.DEN(mBD#>Gq;%aX9Z:T,/CR4,H:jfm#+:BOP&*G8 %hQBlac-!lbDg?R!f=-M>-#(/p8+ie6_e2.0?@%c9q*qQ-q6JO)_is/HA!$KG-JG>PMGbiT@P"dg)k&\7JK?FE`D!T@HL/1IJ#0NKrk+`IWN=S:UiOuRge6scbU:)77N,?,X.;`ZV@)X; %M>O`5Z\2FgH`u=X@dA[5G5^sDG6H@&hJQWSrSA2.Bo7rVjitopj+M3@^^JD?1d#SmJEsNB.XG`(-!`:#UYK:(N;U%4SK'bY5Z1DK %bp8d5Fn=Qh^:kV;@H\;:0E8?+l/8C)9L:PgOin6ek0(PMc/m.#TDD4\-:^BmY46:5eQ3KE%X2-,`S]Fmc=KJMAfm'6U`*$YMmpiX %S+!A)IX@o:QTm&``aZgL2YmoiD231>H[T\,E7\=!FkHoe/%$l*_5N$b48.u!mhZ:V\(X^[jm@iP?#0AHAb7/@^Uq`i/(n`gS'*!X %+It)!leAt'87VW;0/]=Bo?VZ=i/HF;>JCu@ET6H6?X'p,\o6ZSQ.s/_V-B/P@+G&]/*p0mU!g.:RTAT.."&V3ZFP!s;O)a?\nq?- %onJ+lrpeTPaT)PAint^8msPoTCi`#ac/i!hf/epkN%_60P-k2e.Wl+8QWtbAW0Z:hSfa9JfgN/(QE&^EcdF]EBR?h>8Qa>=IhXAQr7f\%uPDO %j'S=\H'!'1ZgK0O5L\k#3nAFsOc?1OOO$?7;YcK`L*3>`ECi0%G4Gm2[8(^D,_=^[cA,^O':J(RSKg %.BQmO$$m^tk"ln7UL!(gr=]H^^Womq?3))@I7]I1OSp0b.FZ#sJR^naY-0uho"TP+RlfnK?"pL6'q>.piNt>P^1?Mqc&6I\Xg7Z= %Ah3G5NeLh$bgd'R,J_on]S:U@J+H41rlNLD?"[FH!Y(hk'[X(n:hg_!c6sO\))uqPC\pC %WIG[V,Gc\7K9ZuBg%p<(0C!_Vf>F*6lU,ll/brEuDqu17Okq_XJ_>1=[?+#L40>;?da`Sg3+A(=GGGK1[BR`;ZPLtkdR$#fj`_(R %8B&(16gCE)N`=))k>o,ppQ7'dDhV:KEUs"WE>pFWXR9nN+I*R45Jt^6#L\N7VYRNAC`t+F:ee=!q!'WHIFiU1g1k\7:\&OmleQo> %'R9/Q@@u")i8j4=oa[_@9[7DLK"q.k1OrHg:U!`PWTm"b;CMiK;>e0*[?+R^XJ*As@Q+*P!CXXC]rf9A^aKUq)boo"'Mhk/GVM$*Lc"E_)G?)+gV(=CoMFHGXo.MGhp0d6K*P:'+b)[7DnV7` %RGI4h8s#2^WdUsQKC\0FE::j_l1%B'pI)UA46@D>Uo=*CWrd?iQW\DLlY(:9h:oQQbbSO,Su-sC4cpf#*Ss!nUp9"A=KboPl-Aat %444V24DA]9Y.5eUh-P1j$9B'PT&-jj`uYAtg1S\hG3\KdGLmdX[tcn$Y"3L)5IUnrZnIVQrOp[S-oY:@0e %.:=<4n$WQfScg)]O)o:OU_bCPj8F>Z'reK?=H%1T'L7][g@E$.1k0`?SW.n=Qm#!J]*1a1O!=PPP:26W-!Z=EKXKZ/<1^`cV6SpM_M544QMt^?q7MT3`MChksdVhjF+co$;VCU%q"IesAP6L,iA] %eVns*oOQ!@8R_)!qUF\Mqhn72D3(lc %p2YNQA>DA:8I\Y>[jS_1_`<-R(X!I+4*fUFrc*:fBt8QXF6NGl/GWD*HU#3HQe)Y'\NIW&hTAK_:Hui(^MV;pT;Pred!@`=Z1$$$ %qQ8B$d&"VpdIZT\-`iqe;_7b:o6B'\qKb09]QKee*JEGd4(p38'qRDrF](iq^NicppX*f`/NVmYNa;_$PX %qc:.74VpRSrlDeTX"hr"X.$2@mZV#QoN,C[2Xa%.oi1g`4manl*ok75\AG>d$esqMX=ulMpeMLVRdke(W.t>BOnG3SHIHthNpkr* %C1t??,*uIp.-ULIei>XX8Jc$*IIbjWc`;!n@bolp_'Ft[Dr\hVo?[Fn%Mo.WS?B@/8:e(.if.r;?GH1 %=7/V5Mb?jA?pm1\LHe7hQ)o'iOeTsEnj<1H,8H5IND-$Gp8Z.Idc]`RKS>Y8s!CY#6!j3_c&oHKCe->uAG&Qi[1RYCo0c3`Ih/?Z %*X(s3ej9^RZ&SFr'.FK;,^:P&n)"dm/;aB+S,6;hj$c2.SWkL"i_rrM;>+j?dAQ3^B!nNTkfI3.6tC&!cei0f]D_X+Tk3-A9dqg, %D4L&"^*gYZI&Cb<.ZF27U2.pYdCi>*,B]$F!6oi]Dl>1Qjl9'j`0]0mL_"94P5;9UT?gT.0oEj#R[Ii%N-d@.$BTH;WRI-Isf+CZ6*q'"#L)s9F/tX+K__O9[Ip%Cb %Rbt9K@ql,ObB/!1%-m3<8;PBZ(s6D %nrMrB)Y80c(d*9SF*q,]a4s.?cKg;tZ,4goTCAbeZ3X#Q+(/onqU+p<'aqqI#-h29OZ:PD/"8uY33.0bLe`4s\q>'FWH7XSPio'5 %lF&q5A)>/0X.IP2lFCca<=ePtH=B1AgUQ)YdKDD=Ca7lDVL%$3GDk]h#(\r6PAfNiIrsDL5OPnj.)\:![[0sVGb"*H/f(2mNOE;, %E;[^iG;k?-Xds$O2o2mHopfMkZk]?*eN503la&gL7N6m>Zla!IDAi_(#F9Go'Q$Q!V"spPZOEBdYBrrArg/%89!q54ZoJ)MKOMNq %oNOPhAoJ7!aX!hF%ZCi)bRG8[4137qSWpaAAluV8QTD@9%u]V#^2o]Mo-\>qs1-9LRhQNP!Lbb!fQ!BUTGThcp^^&s'o8IB%2b_: %"XeS*s3U*FeLr\DEQbb&l`J3if-!#?hY<>$`eS;Pu0*sBp_6^N7Q21c!65kbu-)1AU[iSPBM':a\DK$ %>BW0s6EK"WAU&X71u?mY[$CMYH@NfAFO2=PLX)9u=>JY?_CFHpYmBprD):sNoQ;]/b[9\ogB+3kndN)K!rZiF/I&m.>#tgNELH&lU7[]=(+i],&X]XK$(2iE.c%E"\A%$A5C0@"AFr&AGiT%0i#Mssj_t'_>A*$4^n07;2lliDT+BClB[h6dtEUj:JUjeWr!ksY(Z&?-X %W]N2O"C/PU/jeP69A"EBA=^F($ctFR,i@@"&)Len*#t,qTi$E;c[Oq/aYo_`fF8eV0NUikY&+-kc12S-%H)j>7g;@VW_CW;ppkFt %<0+Ob/EmtIqqf?;h2@]\5"M!t=J%qqGf4BZ3`7A$VY$`;ddV$nV)SFEXu,X!G;)nGaW[0gV"0PpQ&\0mbo\2/8c&0/Cj^fk30@,L %NhFs4OUU3/_\8V:?HS$@s.KVfq2T%a9`$S62#;F:C%o7E'MJ:A3q/0ckY7fP2GTEE/7?c@&`t\g80;o?3\OhUW8fRR6$A(XA[Sd> %V@GPc;Y9bo*#5i7@0TN,UH#dgr@(3oGu'Irr7K9JflokPDa=FYYB[*PZrL=5GfYSBu%%S@A:3=*\Y4l4PfldXr),^;1@#B1Fq6\uc:$ArO*Vmg+_(G %M$Xr2S]c!ue3C,!Y]O)`4$7'p_sm:%mY3o(6Ba/H@e]9fI$RmB,L-h8AsI86?S8YOJ(E>/@\MR_@jVeGf89jrZ5?3ZIkS$Jo6?l$aYf.P54jdA8'2C[of/DtBj1T"\T_OQHbpi&#@RJXb"cRj&JCb( %*6lIl3.m#CGukChK@PKt#lB>EiEM9d@Rg8Z<2W''`.W*o(0M;VbFYho]0EGK$[iLU[bU((?MHOnMs!lS)t?7K^W!jrL0FkQG&tjn %3HVVCS'7OHA.22'6g((-7s+;AEp,WJOpjCtCr(ofFT*/"FLL*Y3HY6g=@L)`8S$p%V$i!_VfrY]fAfn,?,kkm7#8@IFrEp3GY %drVR&cCp^=>[%E'\[%SWLX&,:Nqd,#3HV\3aZ^SS#H=Si\*\SJhE)ClES)R*QWtcKp#(JWfl6ab9ue/tlGKiKVt]Ki*!dMJ]rKhh %IC,uKpA!pu!uk1fBdIP)=*q*KC#dZNP/2Gd^!iVsMLCQ3&"*AWXDm2EZ+cmT\^9AX7'7lu,s9RJdC\J%q%s[Ro';HCarHEf;USeu %?.3a4"gQAH6qa0k7lh!OSKDo9$kb^>lkM?(2hT?pYIZ,-r.c$qRI"NM#oPTS82qLLI+F+YQL*bAD.?p!"XUd+Y>>*U*%5[Wn3%1h %>FGaJ6Q1u$#$[sD3+2G)=R>+/bp,.Qb'XVqZQ>Qt(;3*c]p??m]_<#\81CD]pMDj"em\(%*f/pdQYlS/PG,=U^u;3^lNi]i[jS>6 %AuF:dC3dBrSloHcVrZ&($Zs!IkOJKSSUli`a7gF8s,sSiXh7T]]TZb$?0THen>Wh)KNG'0h,6)Ck:c<5I-=K3cRjJHdrkZ,k4'n< %TUZi`B!@n&7ppD]&04q9+'t?a;1JgkI!CP%"0=:V/20dTr#dSN2AO3tJR>R+ISmKrO\;LNf\-3*T@_O""bY%J/`(dJL %?]JAB+O)pbQ7!Q3s-4t:M<1"`+'BXZ*9BuJa!!uKm>Q:0o#FesY4oMXHX_?Z6mkd,h %$)4E`oG/!PLcLb6hCK3m,%Kr%/KYik`C1)_piOV1be[?(LJC1g0);,7%o/#Rl]Ul-NhRctX/.)d,9jHg+u1sG;?K^>.7?Qnhr>)8 %cWM_6QY2/r;!\)Ifcr6P+RO6],=3=&1_H.4Cr+dL173gYLragPU^#rD$'?DeY&XI.&Eu46P&iS7V/1 %j'eHhIcD]?#f-rK3JkL4o/XpCo27bGbpTFl6S#&:cLci_6_!WH4)J=YJ]p3e'Hqm@ioku0[U;p"9hpV7thSJ8YUt?I2cl"k4?3c\VP7NFNk&I9D59DNSrF==;_mu=i55:^n526Ql((p,rr(a390-:\!eh]p+LjV1K %)aQWN\>IT-Z^lh+^.HR2+3o0#W0S#SmsMX\>60Lbd#;b%Fc`BV=2n(T*!6Ta;d`]*.F!gIb+6lO1OR/#l %q,uO()EAopHT!p9P7O,\ODr(tOa'4?r%S7c%[gQ8-Q.L8/jp=daGeW(`Q'YUK7Hq9\R_LB&*B(n#%l(.1SAS@]i3G:FRmcgQ4TB-+$kY4FFC<4M2QQ?J/]YMCG).q_D,U[KL#[A=0;rnMP@n;1:2Y7;eQmN.LZ:3$7Wd/! %4BV04^%XhH.]=%ZB.d4F2km$c %c=Almr2jI0-?Q&6/Z/K0h:SG(WP'A1b-tH,SWlYRUq^]KA@F)(XKujF%(gttl\T_odsHH86JD%7a*2drNO5s7eab!SdLX*5kCrQT %Smb-$'a.PZ2>Ko.o5_qHGBr$/o(ACF6hLP_HokI(jSC2qNPRkEe#0Jd=i\]"]BnhPPMSQd`&[$d!3flV,:Gk[EqZXhP< %aJ-kZlhtl3P>15+ %9BUA-m#9.;RkE@-bTiV&N>Rs?5-Je6TM2NaACJ*NdWsF(Rsb<>YSMbtqI5SiDXssi2-Ha' %=dpXHimT#8fPSPCqHgRGVQX&[dA8Sco$"^PS[WeTN_\V>.MA:'.bRQ`@SUO.@hFk-C^CFi=jLEFEc`b3.L8mWcFu"j/\S>FJL8crg)l3mAjt8?^LkM2,ban1>p_UN2\]gV1q\E#l0&5U:n'2p@\`,PC=T:r$T4bDb[j+M[4-n&QFY415D(QEe5&F&?tpL4,e-7%&r8)qQk6`\-cGj3K\@E'B,deSmurU)p2s2VfhJlAR_"n1__WD %^j5FrVkF)ii;'Y)VkF)m\.d]t#FgS$#*8QgG"P*=;b3BGKt51*:-? %6\EeY$?pQjPS]]_'Wt?jXSG7rV7bL#d&4aO4YJ6XI`O>\mel@`@ZA"`(%/rqC6$tCZR==1%kKZ[C\8T,Ynhin]/d,MNfI/0DS!bi %BBGsKC]"J0$[5n*TqgFb7Gpk52^e$L5WEi,kM0XcXi1A#Giuq)P*f]Ef1_9HGu=.eh3+/h>u=Q4q$Ac,VZS7i6sRp6q\CrH.81@Q %C@0T_&uD[3Qo$/e+9Q)N(+=614O]\?kti8_^<:[u.a.'1;Agg<.CJm0FM=YY=.VoS@e)QGKXDJA/8[5an6F;uS`*UuLL]Og=lT72 %X-GWCThmHT5:W5g-2PbHJ?KFA:5\Hgg07'k9Ti'F[380Rci;IB.gU+=P!rl$11WqA,S&b'&MKb&WP;+%i7m!&uQNNFK!>g %LTOgn](!drbBPDn%KGk>XBd28ddWX*=72]F=H\_#2dT(#f:GNA/;qb[hK,bl.rfjoM);X5=FBeA_j7QhR[ICrJIb//6>B:j)l;V, %X,\=kaE#M#2m0mMON*GS?t[_E>8l@N1\ZqWn':3L#?!"5'_^hdR:Ec=72+gQC3C\?O0E)e(h%PUHNe\=n@I`Rt`QVYt6(iI:$s@9F-T!\1`PV//A()sn %proZok1rJ/ZKT]4M,RSQGmR4;8>ih(8\\#Ga,-R6$+-Q'3A%p/'5(eqlDej;T!`KC2^W=;9Xg5dfNTN%^(,t8hDXM=H/h=:*q"d# %&D9UgiT7;U4L^;QDPFOZ&gsi@Rk!+9IEO\"^"0ZP.3m%0>;S&BE7RZqhq61[V?SQ>l"5a(34?\9sjLB?iJdE6+'hj7A50#_Rs9"JF2:`qYG(e-++=`!C)o;UiOoX>kt/s#*h"TQp5BLrOEZ5W"YU;*-I6HX3KPM*+'C!AOhP!]L.C0#ljoC.MLVt]//6!+Pcft'5=b'q%!%6gK;6g2>joEgg*(J6U%%@>iU=N7U!SUYpB8,S4#9,6&0Ph4A %;Jc1\5`;65HGc=a'f?@QC_!,K7\2(;d%a5I3IpaNV:M9\;9`F30763s=c2cIA,1mKq'MgCs.h&M:dqhg']mea7f49kfo,F?OtL)" %gl(_tejo]U7JXU^,L<\E?`=Vh,#oZoqR7"LV'7mlM?SEkRUTU6haUg7K2.Kq,TM2LK"a#0nqSeV[!kOtGrVVH5Lg<\[f?`$1M5l#';ugp?lfUJT[hGdj %eFdlW8+aFD4?R%=B?IgB"[,:[5Q@4fbWYJ6lh^Dq\f.h_F/\Ef*u9lY"-lYf5Q@R_lRD$HlMA&f8QqiI>plM=ZZ>Ah+;\E@Vl %\pjV],Tc:llMC=tg?=`m;a%jr5EsOfp]AU[Ks&HT;dDU$MQ?M?c/tCllfXK+&9up;(U^E<^F,($*mCC^T9g!OS_Qf,/q5C)4)aI2 %#)Qbb>sJAfB)=$/l0J3!WU3qB:0Wc4g*$poH@0cF+1&!)m.L.j,V]JYhCs4U,?cN[B1D0&Fo?--m>7il>/nqUFoBN`.DNHg1Y;"eFiF:l5-uPhc*ag%W+4/f5LLrGcIbcKk7-mIZpI9\uMCS/S@rHqY;6%E`fTGlh^E! %FE5fqj125(-)Pe`.;LSF5#luEGC?O5UjqC#VlO0U+22SN %f=u4Q_inoJn=<-N#?@Z"\lVH3ri/loqVdit^[=%EU9`3RhVB7nM1a-4X&r78Mo([`gH7.W'Sg\5dh;)L8"V.JccRCAp?!>oXN5V873h3eUGNrrpT`A@Ra?)U-Zt4s^NASCF/N'1%Y&IaD3f^jHBNdP %Cbf5Jltj9GM\#uF4'opPiKrPq@jN"Pl%`7,+E;_\?!mFGQC?!enG8LHHB(4"-L%t$*#ek#rsF*t?>]FljeB@fJJF*"%D8mpaKiI %eh8GAX^Ck6Q7!RtOTI%V22$]fdJ0qKC,WS-"i.R7>Wn_WCSoij>AQLrp>'ui*2lPF?-\Ol@cqX]ClM`"]g%``Gd*L/*]u"(em_52 %;6=4hii8=m)odN4P4a?4>'[4e&,'/t_6$J@elpX>ZS801Dq4F.,K-_%Bn=b9-*f5QlPtpF_qg885QS;M>DA7>/eX6PgRe:J%m3rl&/&&B;r5ljch-=h\Z'rJ+3C$F=AkEj[M_+TMja5MsHfR7X32sr7'gZIc<+iG6sh4/fk.Z %#S2GsXQiaY\6g@pY;>_/8P*Rla)cu`ltg7kY:J1[oTgP:\TN%QK6_fki/PLC"Th#_jNf%PYs9:+pj$2o^\tfSN5'6^^3]uuf3(%X %m.6XC*o4j3]B3D]C59FY*@1<_I""^VcM=KW.kA5@\D+[R9rbRM7$OF8^".%J(#6<(6h`PKeOnMKiJ*jP0D@IMQ>E'k#H+49Zh9h<$EJoUr7ul. %]A*"nLP(#"YdVqYQ]@YQ2qs2_qI&R"j1M?V>M+bdhtd`^dF#@+!lj*BBR24B]Q?2"@5"@L7!?9ciRE+L\%rIS2O2-RijAdAjOn.)?[B.,t<:;5sr0&B^"2Ka+A0t %`['`7V[.+O__7;,/;L\q&^*"IY-m^iHZ4sK&PVB8(d5Q"P5B0CYalB7(8+\'dp?C1;KaIlQaF`Pl&c;3^ih.0!YDZ>Uk0iMuDu$]->EZ'?eI<'cbHu1V!)uT*!4I10@L7Um;Zp*+`7HWi`$HhFYFdY-F&RD2Qe.(p@^M[9N4+XQ %l$`RZa"OQth@lHuDk-7_fK9W`Z]M^EQ&F2&M$/l>:I2AKQGDE_W[;1j5'FLa?o)<#?DW %O?)7\rD26>jo/B*4XHr" %,&Hg1>LDtfK*Xfc+p.K#doh">MZgi;"RS\So>_t?ekp"i@!Ts7;Va&S;\FZbCL[u#+l*)6[tkS37T[cApgBkE0\.,RRb9Ded(Uq] %I[h6#-l-oCI.FQUEt;TP@[ZmsV..7[J@9e1!+>LfEoR9.ErTRX5%n`:8J'tN[TS>N@U4^Z=k2T.%-+-g$8EKK;@2J43t"ijq-#Q: %!2*7A/1!!a;@"2\_s3fsJA:qi'fqr1k'q0*lS(Yg&e-0\!/q[tm:sqZod6!K?4H]2ok(6caQRP#5M2LLrAZj15MW)IjK[Q300L88 %FbHIm^lufd6/6?5Zgq5`/Nk&60g?Nd*X`FOPKO1d#Ru:m_TlZ#EcIDu+F]e!!8t,d+M`C5(0>\[qWa>_SYSX=55.7r(>VQ=I3A@_ %J[p %aj#b!c/7eel2?!7,_rf^esA&Q814k17Ut1)jbguX*5Pj,E2!RS*I<\6Qu.2ge2mD.aKMX;/O(`kY$H3gd`cY/c);NIpn:>[RK)u\Z?9NHF]6/a)8j %(@n_q=K/UFZ6ql_rT:?9lh:=%>jjoUIJ831$g!(?jg_b,V24g$;uaD;OOnY6/2#$09W0a"^"[?b>IB()J(=CRgA5V5Nn,9:0?hBr %`U>((Oo"GTiq^'EFt=NW4Va1Nr8$sE4O5mGj6?7cO$>;)J;69qBo>%cFd#PLHc,,U,IcDfX7'lDNu^<5l@$.L7Uk,cUWq6NFg]`% %>jg)pS#=;rV(pFHp=LK0]s1@M8A"4q%u8qb3M'C0'B4^Dl4iut_4QT*7+)F\)Z.-@YfW1 %coPR&b@sX9fs9brS\\J7I3Lm1:"E^#nqs-Zdt+Y-58T/=/8<+Y8Jb$'A/nXYC&P5r?<.k$i$qpcaNnlF`O;n&Xmt1j8'jQ7S_rc[W=FB__[:;*@Trb/\#tDD4-0C&'9Q+bnWRFL1tOjLk4&h5ii4A"E)FU7:h2 %Z-7K3dEVMdnhR,V75sNSF58".AT,t5B/,^BpYMY!c6>8+1Y9-<.;i\KCk))mr2(e)&bA^E$NkcGAJXPWZ]QpZX.1qEM:7X6]VZc0Apr[tS`W?59TTsk-=:A2?/"4K:-Fs*s>EA&m@G$qQs %I4*6^O3%/BfRR,5"3ID.)@>](A!7&l%]r$M^T2dH#`d=>q4,X"W.P6Nk$^.5nnZ^Zgc-ciT).5!oJhX[#6\pt-.DcAm[Zr.Lu1@KonhjQSKa)mi^ldiml+,u7a` %oH&bE2LF/PK@L4-[RM\DA2-!kXrfls,qFEa`u6cf6n?%"XWCX[]=;iSNqMP!$tAJVl$3\268<9u4Et[3M,2TBR$,L'lXNl,ScC*^ %N0\]a2Pi]!LI$j!5tVq7o:n^LfrtHQVuAKG.,fA$LR*0h+7*%P(PIR^LRCnS?(%s0A'37hZn\-tV.!a/5u845FVk5]hF_ZZk`iu( %;d>>H^fYu2&OJ\AWVZ:]%Y,MSg&W%;5r2=]CN62#+&%STfaEQ]MV\Sr/#Up`fe?ZFg*%[;:.piEk=b8-OQBp>UK>m1qF9ut>eNT4 %%8IcX`78XVd,:.>6";8rA8#r)^n;b7$QC"S1,+NS*$I-uARH'^5=0%&b.sZm)cioai08dYZJQK_1cT&S&Eb?+BQ2,0?n>JpE6>th %.Jr'jK2VsYE@_\gK2ZXrRQ2J0f&/dG(aO5jkcM[NZ8%.LF""2@YVCs]*o#9(*&\"&5WN_els8Z7RGRh!-'Q\rg`-:liX=aO[J0Os %ds:_,D\ut#[/VlM5Q!/^M@6_Is2Q[Hf[tJ.V8)l1rQIS5.!&Ii%*/&8Vt#-6k@+/CKebQWmrhI7l3l\WrPb%U1j"A\K3+a0K0,': %d'^J&ZVZ5Q5Q=OG0:)Qh^\2/2;&1D]O;0'EPSO,",c`]u=&B\u=SRh0HKX4us2'h6pu;IFrj*^uln2Q!0FQ24ngGi(n;4Zja[J[a %jb<.?0,5e)05K*c% %.#=U.[YS`s@O5mm+Miu+oij#RU;Xqc7Z5%r%7X1q2HLSl%baorQUSh=-o/!b:cVib&-Q\*i(^b\a:+!A'pY%""R%_DrKe1B %%_lBOQH3Nn.Yp3I9J3UZINu\@!kZ5M/-^n5YXCq,Lr/b>S5VBM_)"MW&BKA]Q<+k^'n-667)#T*n=fY^#,L;fUI>fQ,/RD`=]gd8 %U*'PdaClFQ %=cuaWO2Mgm6e;/EK+_^OHssA^,t4ITn-U\^Q_I<@(aL(0?O#?fZ:HOmlSpkh`UQL)Uu4?kS>7>P14_NHqS#"FOs&s3b/SIoBX%DiWCWCYZNHo9:q_&T^"Ek)T0_LiOt[THnYaBpLe %em`)I^RAhe;5bmG`GtBj-='u:RbSUVoXQ%/IJu1qDC3e0e$OR02_@Ui=M(i!%2[G6K8fk^n>Cbs@d$"hE0IdUM$`Zj35rc)I*;02c %N/O#fEuIanWX/fu,L^'Z&P3#""(N-HJOgdl50ng1BKFT:r=i15QuA"ohI&0GNgpX)$AbfX'VNM[r<.`f7$^3^jqo.P*9b:3%,jH; %@0M>".\NaMD4uR,#=5SY#Ksol!ckR&`%j)%%B)^W@$"$tC&h,n79e#Ir31Kn2; %)-Q%I[]'W4>CrhP=H+u@(76'Vj9m*O1?_ft>Xeqg!tLI$IKF409bEjJJ5K:f$_3m,(kL*joDl"n$lEuGT^"q5QjF(R[U>*uHGPEM %9Jq@RQ@RS%PG>PHK0`ssJHt=6.?B#@=F?;iRoi]B15nKJ*fFdhC]Jn(U[r(#_WjZY?C$['M)Jei%a+oNNNYUF!<_,(gPjP9rjXqqpS'+YMC&JYb9hA$kX%gm3e(b%h^o3gNnb\33PJEkd %#5`(/PK=A2VQgOMR!Ee56sAc*(Vl^i)!VMV9LSF1/=f9g;%a;[9P$6+XU4nIln.ndA.*]Z*,l!:JRKf6*&*i\'"e^_?_ppoi$[M, %Jn'V>,W*UkE2lHQ^c=SNSD[[>64eO$7G+9t(ui;F8eYAl!N&Q_*CV'``>eluJ>s1.WLI^4JVPN!&I%>oF_sGIXKi3/&H*nXFDF35 %R-3`&--"hJn3i>U=(/E7`"0jXk5X7d4?tS%Aj]ZSl7EG35mM8fg>.1ASMlbjX>iIgui3C]mQ/-dX-ZiP)'ETltfWrZ[g6>QQ9d#B@JdVJuA@V#*m%3Qi' %"#tG>6tA-i7lUu"`6N`83/1:!ipRN-kCBIA1h'j"M;[Da0G[nP!3'?\J-(UI(_QTfibDFD>!Vfr?4)O@c"OjRH6P_):4a_8JN %oO1tmk_(\7Z:R1:CgJ3I6"3Zs*3R2n@cfKIgBbl5k!YUWiT(nMc#W#J0apRqPL0O4*[>B6_e9[>-3Bb?pPc28N7h%Cg#*!iShV,\ %>>F7\G9XMl#+/pjV.RMZi_`B@r.%5l7P$"+ULe&2VkU%3M.(pG-&bcbbm"S"!%0:KAA,k\/Wc_:+Q+@5+tqp_6P5-h %!6,n$;BT"F'I<#GL_l,%#j@T%%D(#>+6cL-QSm;')P&1/=tGQhG*(R#(um=hT#_`P;%&PKV@M.0EZe"sPHbfl6BEStE0UK"$8c/S %8*8&#ljo%FA0gI]d-;fu*ZDhN5Y=Rn9Lj=*n09W'P,PJl'V$s)(MJ)gdWlE@l\qpaL(%\P=^DW)QjglRqF]UlLI:LL+G,-K2X<;V %IQ6?>R8"I39JD1*k-/M%"Q:Vc>L6(X'sjl,-m0Zh)GNa'(>"A8eJK?.P?%e4;kHLR"Uq_j0f8qTMR)>*+sKnBc/1L;3ZD8+huXp( %4^>Yhpg:7s^hX:689&/dN^EdR&N:FL1$4S%/$(up.%5ccRiJkbn\M!3`TSiHkh%(P/15JD/G`dBI %@%[r$*:^F&!oOY`Zo-D2BQ=:$.!,_3 %F=i?9L'qA$Z]J9/:,;lX;ROKQd=>XmjD@lc`]G#S_'K1;.=+PIDr=2i+nMeEJ?"jM"$sj*";X.(FI!ba["1W_@O)nL-GrA"9p(Wo %-dl49]je^nl:+U("qJ4rp5[OpKnLH8OX,MH6ma#<;atU4dmo^2L::VK!5">DBch%`i:kABJ-H\rE0=UtJVi@gUGjNpaQTcL9,alW %UGA*Nm%uHTf9l$"Ij"#lG+;^.*A9.!l%!O0e=%rV#O>%ZjjI]+.st2g?t9D72IN&F8?n;Jd@LbP$F<+N159`m#7^uu7eMtt1!bclk>1IG6M?th_ %U+"MQZ6k46QQ^u.&PslqF`2eaO#W*X$,g&%jVU$j!mD9*"X6JmZ3IN8bW?jB#3:XenOh+ %BIIhc[tf2F5u9#E'fb^CH-T4^khW6QG@27Re!s_"$0E`pCt2l%Of4m]+mdWo`h2q %XD]@a[b_%o7$b6GO9Pm%)\M/c_":%kAF*I?%*OcW^u?$p%Ef&h_.@p*ZT'%EWk#8+eq!ke<.YslcK>Egh:5XUgWE&f=1'Om^Fa?S5)Z'nXNTo0g6l6!So=Wb@Cf2]LsaZC;Lco?lBC:'X4 %T=[#0T6kDQ&pgejl,lg%#L0nI0G"_Q%fr@`:*O[%67<56UhqnbZn\!tg-D"?Cln_4q5%;bor/1=/9E]lbcds7$9\!pHRfOJ'R`Bh %U^sUKGd=SK+r,crJ3FV2##KB6^PebK#_=\L.B-8cNZ;-u(e$@:XKI/nP'naYKcrOU24B?ZnM2Bb6&jZr:&i_oAAAFS%Dm#U@&!*I %kB+4m%U*/XLI@_KKXNlsa((TGf2cs_[`/Rt%EedRaT5F5#_3A#^cea#-I4lJq/'%b4e6RC&V+9kmLa;Ml5&'9q!$[cUDHXq^2\lc19non3j+M`S,PlO!bC$`&*0]P/$h!?u$j`a7b/RWf> %fnX<__X^4QWG2[I)F)R/fN+[W9-t/j?@1Me_u!MR(jd8dr(h7iiTI+'IMhg.iQ8t&YW!KpLV8Dh>Q6q?!hU=5-^0PgB'fNu"eAM7~> %AI9_PrivateDataEnd \ No newline at end of file diff --git a/packages/stacks-docs/assets/img/logos/se/se-logo.png b/packages/stacks-docs/assets/img/logos/se/se-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..261ca8cb573f5e2b010ec987c9e5cefe4cea483b GIT binary patch literal 5751 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 literal 0 HcmV?d00001 diff --git a/packages/stacks-docs/assets/img/logos/se/se-logo.svg b/packages/stacks-docs/assets/img/logos/se/se-logo.svg new file mode 100644 index 0000000000..17e8ab78e8 --- /dev/null +++ b/packages/stacks-docs/assets/img/logos/se/se-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/stacks-docs/assets/img/logos/sf/sf-icon.png b/packages/stacks-docs/assets/img/logos/sf/sf-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3ead895d9d1700a348d9e086de797b2a1922e1de GIT binary patch literal 1168 zcmeAS@N?(olHy`uVBq!ia0vp^^FWw`4M-kt-CPZ%BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztuo!u|IEGZ*dUN-D-)$F}10V0-@Y`j}u&U}o%Mn?wrsa+? z0*?e=OjdaJLE?jy1HbF7Y2G)tZOFX!M(wP)X~TH`hG-JTYul)d`i!`8It| zI)ks5GVWA;sA$u|e#p5(0Zz4lIKzY@0Fvh5Z)yMFfS~RbRM`KmS$(4DcJ}p4*7s|q z^J~A?=B$tZ|9k)DGp@B&v(DN5*I8!1zc0(`tkpMnb32dxM}=DRZS|Ty2*@2`2HJ|C zK$de|eDj;3G<2y_`nq+CJvH5S`@iqjJYgjM^~15R$>D#CUp%*eeS=;2UeQ*qO}oFn zG&;9^wuD}D_HMJ!Mpuv4?CuTyFSE+q>VI{6`SW-Au5Hur%{x+5Bz3w>ICJwEtFr6; zmUSkbiyuFJk+ykFa{aH9$J+((t-7FmuV9H}pVjBYm#1rv-2PS{{(EEl^9xg}j;vl~ zw0}O&`ro3@D{k%+e0T2SujdzHFa6BFcOZGnu4s+e2Qf0YZv20FnE7WoPjCa!M;!bQ z8xho@<~OsLD|=2qD-Cbr319mE{&kOB{em}#IoD^-%AM%#diltTb;;4Z*N^V4*uObO z@K#vp70th!|9vw$d;i|UyY`lvMJrdFKlkWkiqz(xoBBUwUfX#6`R9uAt$p8r{V-dq zx0PSsPRDr9=gmKge_5z~4!!bK>GchN@y`-pAMU;XfA@_Kzm{%0^TBQL-5~3C({EaR ze)>FjPtnS+YsHFcl(#-t`XBQr`%QfQ{cX>gpmB=qc8>nToBzLMd$sGtZQd(~{r@f( z@%^5&`Ear3`PtWwu2_|1Bj?Ujzn4G%j>hXU=I*15PWb1<|0nSJ%>G~h zu1=4aajTepcG-y!NqhTBZy(cox?ia5vV7|FzZc6Qa?SG018!{J^shAhujRdhy6|+l z-LmJjgTLnN_r5(%GH%D0ze>*zy=6m6pJ-m%^!;nap_OCKz zjeNG~_3_((KYXwF^J(JZHD~Sk-`&^$ENm@x^kt6N<+EmPuSJ)_Jo!7eyY9VR zF1Y*e*2tyLAM+Q_51RRKX~+}JdyaeFJ+xdBbeMZ~tzME|&NoIxW \ No newline at end of file diff --git a/packages/stacks-docs/assets/img/logos/sf/sf-logo-med.png b/packages/stacks-docs/assets/img/logos/sf/sf-logo-med.png new file mode 100644 index 0000000000000000000000000000000000000000..808db99e7b1aff54cdc50493639ab3aeac9153d6 GIT binary patch literal 1831 zcma)7X*8P&8;!Ln6&1BqDxso=D(y=xT`VybM2UoMh#Hz#7g|EKrnQEM(6M{1iS1a5 zj+Tki8Xam&RbnZM7NcTqX_?WHe3|q8`u=^-dCqh1bIv{Y{=9T|w{uDgS_&{2ObO?N zCBR@3TrrQ6lM-Lm*#KQJ5Zzsgjv|prOwmZ4|9>xBxFi-=RoBJFB`z8m8zT^TXuSYs zHJLqfdOD~f-tc+(oE5RDN;tvI69#)3W4msOf|E-IXF}c68)Qy>6o<>+#$oM`?PSfvI7O(v;Yl!*(PUzO+TUi*K#zr9}yM*_38y#Wjg!$r|54g`py6Z5^{%FKO z`oai>MoGcoApqndxFKbR5RiW6+87)^6pg?S5wE>Y^HQV5!jhLTAYR|g>*KUYL|`!y zXt|2jOLGHrCi8#VqVg-E3MMIA-izGW(o!5nD*?m8QP$9aJRTUrs&XxS0*}-O{28VM zEts#0@{n z`}Z!S7=b}=Q!*BKX;sB}JCBorD3t-HA<8}Arh}?Dg(F@pIc-%3dC{O03rI65jIbL=d zF*-h0>M+V6!JAgLSzw(J`U?(L#*0h(`?tHpslp|yCi)ZH2ioPe+3YV!{xV1ie8Z^M zux`Ikw%kQ^?1P5WAF4y$B(t8n-c199cO6$cZ-JU3XdQWH`m?!HL#vlwo7P+61~2op zF5ac7hgKL-D$N1|3)m|@@a}QjGoj4k>_!0(n}^-<1Ru0_EARD)ou2=ZLkqI$oWVqS z84burH7$P!Duh2kD@Z1C`ZzH$CR{gG%>>ZznpFx(gBRWKHaI8DglD$d1B}|W=*(8X zeDtJ2{XU;0{A8{T96yiN<57)Vv8Y_+lg|k`K~Bq`^tWtlE#}xs^|iY7jm>v%ukx{l z#bLg&rb%r2UfBxHV{(JX)mtxEbScEiYVLORGW2GCZ)@DT9J8YO}D!ydBM&lm= zh3piHKdin}I71Ms@}f;=T1W+E`GVNmgPb(*xJt7q9mZ!@*{f5-@G16yaZdBA=_l<(IOV7zt$w9JV!UcdSXFC8)+{dung zNrpNu_MZq$N)5Vg368F3FRJBCxSlZCg#--b&MQi5@aspFKOTIj2n~El6cU@8dBZLv zzDT9~rv*V>eN9z>r}-=#aPhr5)mH%K_{EzzE+>o54V9xx9h!s(SNtiJ_F*{v8*F-h z7vX93)^-W*#OUFT6t|CROZ~vEEF^koRW>bWhmupzQM&?XhOCN2EWFG4@KQ>Yo}g_? zTQh9Ci)wc9jIajr+1Eqw^WSKdtVt9f&)2`@XQ*gWxy3gwNl9x6m5b!LMU=~<$xM6x z_^6Rpb5q&PFfD=g*25MPwn*DxyQY@i>ed8rkedsy`C zea_FfetK0`%p*!@iGqTaxl2S9Degw(POgWK#OM(q`%ALI^WvV>i>(%1{rKRj9o#n_ zwotqO^rECuTHcaEBds(a(Xgw{=(^_`9hBd5ssh}UwtE;{fT7VzwyFk-UDX+tzjjhC zX~tlBG$+2cSk#n79eqcs;d0rb(kIK}hQmo0g^z-d$g5*_dVj65`ipa?^6|i$c9>Gh zUcRv*2!qnUH4H|4i21if?A%4(C$Sfl{#z*8Ez=f`M+eTc{(W(dZrFNza@>Ca=YUX~ literal 0 HcmV?d00001 diff --git a/packages/stacks-docs/assets/img/logos/sf/sf-logo.eps b/packages/stacks-docs/assets/img/logos/sf/sf-logo.eps new file mode 100644 index 0000000000..79ddf390c2 --- /dev/null +++ b/packages/stacks-docs/assets/img/logos/sf/sf-logo.eps @@ -0,0 +1,6143 @@ +%!PS-Adobe-3.1 EPSF-3.0 +%ADO_DSC_Encoding: MacOS Roman +%%Title: sf-logo.eps +%%Creator: Adobe Illustrator(R) 14.0 +%%For: JIN YANG +%%CreationDate: 5/13/11 +%%BoundingBox: 0 0 442 77 +%%HiResBoundingBox: 0 0 441.4063 76.5157 +%%CropBox: 0 0 441.4063 76.5157 +%%LanguageLevel: 2 +%%DocumentData: Clean7Bit +%ADOBeginClientInjection: DocumentHeader "AI11EPS" +%%AI8_CreatorVersion: 14.0.0 %AI9_PrintingDataBegin %ADO_BuildNumber: Adobe Illustrator(R) 14.0.0 x367 R agm 4.4890 ct 5.1541 %ADO_ContainsXMP: MainFirst %AI7_Thumbnail: 128 24 8 %%BeginData: 5164 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C45FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8FFFF93B58DB68DB5C3FFA8FF %A8FFA8A9A8FD60FFFD0FA8FFCAB58D938DB58DC3FFFD06A8FD61FFA8A8A9 %A8A8A8A9A8A8A8A9A8A8A8A9FFCF8DB58DB58DB5C3FFFD07A8FD60FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFCACAA1CAA7CAA1FFFFFFA8FFA8FFA8FD %E1FF7DA87DA87DA87DA87DA87DA87DA87DFFA8756F766F756FA7FFA87DA8 %7EA87DFD61FFA87D7E7DA87D7E7DA87D7E7DA87D7EAFCA696F696F696FA0 %FF7D7D7DA87D7DA8FD60FFFD0F7DFFA76F446F446F44A1FFFD067DA8FD3D %FF7D527DA8FD14FFA87D7DA8FD07FFFD0FA8FFFF9AA076A19AA0A7FFFD07 %A8FD3CFF522027F8A8FD14FF7D27F87DFFFFA8A8A8FD5DFF7DF827F8277D %FD14FF7DF82052FFFF7DF8277DFFA87DA87EA87DA87EA87DA87EA87DA8FF %FF767CFD0476A7FFFD07A8FD3BFF5227F8527DFD15FF7627F87DFFFF52F8 %F8A8FF5253527D5253527D5253527D525352FFA7442045204420A1FF7D52 %7D525952A8FD0EFFAFFD2CFF52F827A8FD05FFA8A8A8FD05FFA8FD05FFA8 %FFFF7DF82752FFFF77F8277DFF7D527D527D527D527D527D527D527DFFCA %444B4445444B7CFF527D527D527D7DFD07FF7D7D76A8FD05FFA8527D7DFD %04FF7DA1FF7D7D7DFF7D7DFD05FFA87DFFFFFF7D7D7DFD04FFA87DFF7D7D %7DFFFF7D2727275252FFA8522727275252FFFFFF272752FFFFFF27274CFF %7D27F87DFFA127272152527D7D777D7D7D777D7D7D77FD047DFFA84B4B6F %4B4B4BA1FF7D527D527D52A8FD05FFA22727F821F852FFFFFF7DF820F827 %52FFFFFFFD0427F8F85252F8A8FD04FFF852FFA82727F8F827CAFFFF5227 %2727F8F827FF27F82027F8F8A14BF821F8F8F8204BFFA827F827FFFFFF27 %F827FF7DF82776FF27F82027F8F8FD25FF27277DCA7D5227FFFFA8F852A8 %A84B2052FFFF4BF8277DA827A87D2752FFFFFF7DF877FF27277DFF522727 %FFFF76F82776A85252FF7D2727275227FF7D2727775227F827A8FF272727 %FFFFFF272727FF7D27F87DFF7D2727275227527D527D527D527D527D527D %527D52FFA8524B524B524BA8FFFD067DA8FD04FF7D2152FD07FF2727A8FF %FFFF2727FFFF2727A8FD05FFF827FFFFFF52F8FF7DF87DFFFFFF52F87DFF %52F852FD06FF52F827A8FFFFFF7DFFFFFF52F8F87DFF27F852FFFFA827F8 %27FF7DF82052FFFF52F8277DFF525252275252522752525227522E52A8CA %20202027202076FF5252285252527DFD04FFA8F852FD07FF2752FD04FF7D %F8A8FF2727FD06FF5220FFFFFF2752FF5227FD05FFF87DFF76F8FD07FF52 %2727A8FD04FFA8A8A876F8277DFF272727FFFFFF272727FF7D27F87DFFFF %522727A8FF275227522752275227522752275227FFA120F820F820F87DFF %5227522752277DFD05FF4CF827275276FFFFFFF8274B524B5227207DFF21 %52FD06FF7D2052FF7D2076FF27274B52275227F852FF5227A8FD06FF52F8 %27A8FFFFA82727F827F827F87DFF27F852FFFFAF27F827FF7DF82152FFFF %52F8277DFF7D527D527D527D527D527D527D527DFFCA27524B51274B7DFF %FD06527DFD05FFA8522727F82727FFFFFD04274B272727A8FF2727FD07FF %2752FF52F8FFFF52F84B2727274B277DFF7620FD07FF522721A8FFFF2727 %20FD05277DFF272727FFFFFF272727FF7D27F87DFFFF5221F8A8FD29FFA8 %A852F852FFF852FFFFA8FD05FF2752FD07FF52F8FF2727FFFF2727A8FFFF %FFA8FFFFFF5227A8FD06FF52F8277DFF52F8F852A8FF5227F87DFF27F827 %FFFFFF27F827FF7DF82752FFFF52F8277DFFA17DA87DA17DA87DA17DA87D %A17DA8FFFF7DA87DA87DA8A8FFFD04A8A1A8A8FD0BFF2752FF4B27FD08FF %274BFD07FF7D2752277DFFFF76F8FD08FF7D20FD07FF522727A8FF7DF827 %7DFFFF76F8277DFF272727A8FF7D202727FF7D27F87DFFFF5227F8A1FFF8 %27F827F827F827F827F827F821F8A8A827F827F827F87DFF27F8272127F8 %76FD04FF7D52A8FFFFFF7D2052FF52F876FFFFFF5252FFFF2752FD08FF27 %2727A8FFFF7DF827FFFFFF7D52A8FF5227A8FD06FF52F8277DFF7D20F827 %5252F827F87DFF52F82727522127F827FF7DF827274B7D7DF82727522727 %27202727272027272720272727A8FF2727202727277DFF2727F827272052 %FD04FF7DF827527D522727FFFFFF2727527D272027FFFF274BFD08FF52F8 %52FD04FF52F8277D5227F8A8FF52F8FD07FF4B2727A8FFFF2727F827F827 %F8277DFF7D272027F8FD0427FFFF4BF827F87DFF27F827F8F827F827F827 %F827F827F827F827F8A8A827F827F827F87DFF27F827F827F852FD05FF7D %2720F82727A8FFFFFFA82727F8274BFFFFFF2752FD08FF7D2752FD05FF52 %27F82727A8FFFF5227A8FD06FF52F827A8FFFFA82727F8525227F87DFFFF %7627F8275252274BA8FFA85221277DFF7D522727 %%EndData +%ADOEndClientInjection: DocumentHeader "AI11EPS" +%%Pages: 1 +%%DocumentNeededResources: +%%DocumentSuppliedResources: procset Adobe_AGM_Image 1.0 0 +%%+ procset Adobe_CoolType_Utility_T42 1.0 0 +%%+ procset Adobe_CoolType_Utility_MAKEOCF 1.23 0 +%%+ procset Adobe_CoolType_Core 2.31 0 +%%+ procset Adobe_AGM_Core 2.0 0 +%%+ procset Adobe_AGM_Utils 1.0 0 +%%DocumentFonts: +%%DocumentNeededFonts: +%%DocumentNeededFeatures: +%%DocumentSuppliedFeatures: +%%DocumentProcessColors: Cyan Magenta Yellow Black +%%DocumentCustomColors: +%%CMYKCustomColor: +%%RGBCustomColor: +%%EndComments + + + + + + +%%BeginDefaults +%%ViewingOrientation: 1 0 0 1 +%%EndDefaults +%%BeginProlog +%%BeginResource: procset Adobe_AGM_Utils 1.0 0 +%%Version: 1.0 0 +%%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved. +systemdict/setpacking known +{currentpacking true setpacking}if +userdict/Adobe_AGM_Utils 75 dict dup begin put +/bdf +{bind def}bind def +/nd{null def}bdf +/xdf +{exch def}bdf +/ldf +{load def}bdf +/ddf +{put}bdf +/xddf +{3 -1 roll put}bdf +/xpt +{exch put}bdf +/ndf +{ + exch dup where{ + pop pop pop + }{ + xdf + }ifelse +}def +/cdndf +{ + exch dup currentdict exch known{ + pop pop + }{ + exch def + }ifelse +}def +/gx +{get exec}bdf +/ps_level + /languagelevel where{ + pop systemdict/languagelevel gx + }{ + 1 + }ifelse +def +/level2 + ps_level 2 ge +def +/level3 + ps_level 3 ge +def +/ps_version + {version cvr}stopped{-1}if +def +/set_gvm +{currentglobal exch setglobal}bdf +/reset_gvm +{setglobal}bdf +/makereadonlyarray +{ + /packedarray where{pop packedarray + }{ + array astore readonly}ifelse +}bdf +/map_reserved_ink_name +{ + dup type/stringtype eq{ + dup/Red eq{ + pop(_Red_) + }{ + dup/Green eq{ + pop(_Green_) + }{ + dup/Blue eq{ + pop(_Blue_) + }{ + dup()cvn eq{ + pop(Process) + }if + }ifelse + }ifelse + }ifelse + }if +}bdf +/AGMUTIL_GSTATE 22 dict def +/get_gstate +{ + AGMUTIL_GSTATE begin + /AGMUTIL_GSTATE_clr_spc currentcolorspace def + /AGMUTIL_GSTATE_clr_indx 0 def + /AGMUTIL_GSTATE_clr_comps 12 array def + mark currentcolor counttomark + {AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 3 -1 roll put + /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 add def}repeat pop + /AGMUTIL_GSTATE_fnt rootfont def + /AGMUTIL_GSTATE_lw currentlinewidth def + /AGMUTIL_GSTATE_lc currentlinecap def + /AGMUTIL_GSTATE_lj currentlinejoin def + /AGMUTIL_GSTATE_ml currentmiterlimit def + currentdash/AGMUTIL_GSTATE_do xdf/AGMUTIL_GSTATE_da xdf + /AGMUTIL_GSTATE_sa currentstrokeadjust def + /AGMUTIL_GSTATE_clr_rnd currentcolorrendering def + /AGMUTIL_GSTATE_op currentoverprint def + /AGMUTIL_GSTATE_bg currentblackgeneration cvlit def + /AGMUTIL_GSTATE_ucr currentundercolorremoval cvlit def + currentcolortransfer cvlit/AGMUTIL_GSTATE_gy_xfer xdf cvlit/AGMUTIL_GSTATE_b_xfer xdf + cvlit/AGMUTIL_GSTATE_g_xfer xdf cvlit/AGMUTIL_GSTATE_r_xfer xdf + /AGMUTIL_GSTATE_ht currenthalftone def + /AGMUTIL_GSTATE_flt currentflat def + end +}def +/set_gstate +{ + AGMUTIL_GSTATE begin + AGMUTIL_GSTATE_clr_spc setcolorspace + AGMUTIL_GSTATE_clr_indx{AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 1 sub get + /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 sub def}repeat setcolor + AGMUTIL_GSTATE_fnt setfont + AGMUTIL_GSTATE_lw setlinewidth + AGMUTIL_GSTATE_lc setlinecap + AGMUTIL_GSTATE_lj setlinejoin + AGMUTIL_GSTATE_ml setmiterlimit + AGMUTIL_GSTATE_da AGMUTIL_GSTATE_do setdash + AGMUTIL_GSTATE_sa setstrokeadjust + AGMUTIL_GSTATE_clr_rnd setcolorrendering + AGMUTIL_GSTATE_op setoverprint + AGMUTIL_GSTATE_bg cvx setblackgeneration + AGMUTIL_GSTATE_ucr cvx setundercolorremoval + AGMUTIL_GSTATE_r_xfer cvx AGMUTIL_GSTATE_g_xfer cvx AGMUTIL_GSTATE_b_xfer cvx + AGMUTIL_GSTATE_gy_xfer cvx setcolortransfer + AGMUTIL_GSTATE_ht/HalftoneType get dup 9 eq exch 100 eq or + { + currenthalftone/HalftoneType get AGMUTIL_GSTATE_ht/HalftoneType get ne + { + mark AGMUTIL_GSTATE_ht{sethalftone}stopped cleartomark + }if + }{ + AGMUTIL_GSTATE_ht sethalftone + }ifelse + AGMUTIL_GSTATE_flt setflat + end +}def +/get_gstate_and_matrix +{ + AGMUTIL_GSTATE begin + /AGMUTIL_GSTATE_ctm matrix currentmatrix def + end + get_gstate +}def +/set_gstate_and_matrix +{ + set_gstate + AGMUTIL_GSTATE begin + AGMUTIL_GSTATE_ctm setmatrix + end +}def +/AGMUTIL_str256 256 string def +/AGMUTIL_src256 256 string def +/AGMUTIL_dst64 64 string def +/AGMUTIL_srcLen nd +/AGMUTIL_ndx nd +/AGMUTIL_cpd nd +/capture_cpd{ + //Adobe_AGM_Utils/AGMUTIL_cpd currentpagedevice ddf +}def +/thold_halftone +{ + level3 + {sethalftone currenthalftone} + { + dup/HalftoneType get 3 eq + { + sethalftone currenthalftone + }{ + begin + Width Height mul{ + Thresholds read{pop}if + }repeat + end + currenthalftone + }ifelse + }ifelse +}def +/rdcmntline +{ + currentfile AGMUTIL_str256 readline pop + (%)anchorsearch{pop}if +}bdf +/filter_cmyk +{ + dup type/filetype ne{ + exch()/SubFileDecode filter + }{ + exch pop + } + ifelse + [ + exch + { + AGMUTIL_src256 readstring pop + dup length/AGMUTIL_srcLen exch def + /AGMUTIL_ndx 0 def + AGMCORE_plate_ndx 4 AGMUTIL_srcLen 1 sub{ + 1 index exch get + AGMUTIL_dst64 AGMUTIL_ndx 3 -1 roll put + /AGMUTIL_ndx AGMUTIL_ndx 1 add def + }for + pop + AGMUTIL_dst64 0 AGMUTIL_ndx getinterval + } + bind + /exec cvx + ]cvx +}bdf +/filter_indexed_devn +{ + cvi Names length mul names_index add Lookup exch get +}bdf +/filter_devn +{ + 4 dict begin + /srcStr xdf + /dstStr xdf + dup type/filetype ne{ + 0()/SubFileDecode filter + }if + [ + exch + [ + /devicen_colorspace_dict/AGMCORE_gget cvx/begin cvx + currentdict/srcStr get/readstring cvx/pop cvx + /dup cvx/length cvx 0/gt cvx[ + Adobe_AGM_Utils/AGMUTIL_ndx 0/ddf cvx + names_index Names length currentdict/srcStr get length 1 sub{ + 1/index cvx/exch cvx/get cvx + currentdict/dstStr get/AGMUTIL_ndx/load cvx 3 -1/roll cvx/put cvx + Adobe_AGM_Utils/AGMUTIL_ndx/AGMUTIL_ndx/load cvx 1/add cvx/ddf cvx + }for + currentdict/dstStr get 0/AGMUTIL_ndx/load cvx/getinterval cvx + ]cvx/if cvx + /end cvx + ]cvx + bind + /exec cvx + ]cvx + end +}bdf +/AGMUTIL_imagefile nd +/read_image_file +{ + AGMUTIL_imagefile 0 setfileposition + 10 dict begin + /imageDict xdf + /imbufLen Width BitsPerComponent mul 7 add 8 idiv def + /imbufIdx 0 def + /origDataSource imageDict/DataSource get def + /origMultipleDataSources imageDict/MultipleDataSources get def + /origDecode imageDict/Decode get def + /dstDataStr imageDict/Width get colorSpaceElemCnt mul string def + imageDict/MultipleDataSources known{MultipleDataSources}{false}ifelse + { + /imbufCnt imageDict/DataSource get length def + /imbufs imbufCnt array def + 0 1 imbufCnt 1 sub{ + /imbufIdx xdf + imbufs imbufIdx imbufLen string put + imageDict/DataSource get imbufIdx[AGMUTIL_imagefile imbufs imbufIdx get/readstring cvx/pop cvx]cvx put + }for + DeviceN_PS2{ + imageDict begin + /DataSource[DataSource/devn_sep_datasource cvx]cvx def + /MultipleDataSources false def + /Decode[0 1]def + end + }if + }{ + /imbuf imbufLen string def + Indexed_DeviceN level3 not and DeviceN_NoneName or{ + /srcDataStrs[imageDict begin + currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse + { + Width Decode length 2 div mul cvi string + }repeat + end]def + imageDict begin + /DataSource[AGMUTIL_imagefile Decode BitsPerComponent false 1/filter_indexed_devn load dstDataStr srcDataStrs devn_alt_datasource/exec cvx]cvx def + /Decode[0 1]def + end + }{ + imageDict/DataSource[1 string dup 0 AGMUTIL_imagefile Decode length 2 idiv string/readstring cvx/pop cvx names_index/get cvx/put cvx]cvx put + imageDict/Decode[0 1]put + }ifelse + }ifelse + imageDict exch + load exec + imageDict/DataSource origDataSource put + imageDict/MultipleDataSources origMultipleDataSources put + imageDict/Decode origDecode put + end +}bdf +/write_image_file +{ + begin + {(AGMUTIL_imagefile)(w+)file}stopped{ + false + }{ + Adobe_AGM_Utils/AGMUTIL_imagefile xddf + 2 dict begin + /imbufLen Width BitsPerComponent mul 7 add 8 idiv def + MultipleDataSources{DataSource 0 get}{DataSource}ifelse type/filetype eq{ + /imbuf imbufLen string def + }if + 1 1 Height MultipleDataSources not{Decode length 2 idiv mul}if{ + pop + MultipleDataSources{ + 0 1 DataSource length 1 sub{ + DataSource type dup + /arraytype eq{ + pop DataSource exch gx + }{ + /filetype eq{ + DataSource exch get imbuf readstring pop + }{ + DataSource exch get + }ifelse + }ifelse + AGMUTIL_imagefile exch writestring + }for + }{ + DataSource type dup + /arraytype eq{ + pop DataSource exec + }{ + /filetype eq{ + DataSource imbuf readstring pop + }{ + DataSource + }ifelse + }ifelse + AGMUTIL_imagefile exch writestring + }ifelse + }for + end + true + }ifelse + end +}bdf +/close_image_file +{ + AGMUTIL_imagefile closefile(AGMUTIL_imagefile)deletefile +}def +statusdict/product known userdict/AGMP_current_show known not and{ + /pstr statusdict/product get def + pstr(HP LaserJet 2200)eq + pstr(HP LaserJet 4000 Series)eq or + pstr(HP LaserJet 4050 Series )eq or + pstr(HP LaserJet 8000 Series)eq or + pstr(HP LaserJet 8100 Series)eq or + pstr(HP LaserJet 8150 Series)eq or + pstr(HP LaserJet 5000 Series)eq or + pstr(HP LaserJet 5100 Series)eq or + pstr(HP Color LaserJet 4500)eq or + pstr(HP Color LaserJet 4600)eq or + pstr(HP LaserJet 5Si)eq or + pstr(HP LaserJet 1200 Series)eq or + pstr(HP LaserJet 1300 Series)eq or + pstr(HP LaserJet 4100 Series)eq or + { + userdict/AGMP_current_show/show load put + userdict/show{ + currentcolorspace 0 get + /Pattern eq + {false charpath f} + {AGMP_current_show}ifelse + }put + }if + currentdict/pstr undef +}if +/consumeimagedata +{ + begin + AGMIMG_init_common + currentdict/MultipleDataSources known not + {/MultipleDataSources false def}if + MultipleDataSources + { + DataSource 0 get type + dup/filetype eq + { + 1 dict begin + /flushbuffer Width cvi string def + 1 1 Height cvi + { + pop + 0 1 DataSource length 1 sub + { + DataSource exch get + flushbuffer readstring pop pop + }for + }for + end + }if + dup/arraytype eq exch/packedarraytype eq or DataSource 0 get xcheck and + { + Width Height mul cvi + { + 0 1 DataSource length 1 sub + {dup DataSource exch gx length exch 0 ne{pop}if}for + dup 0 eq + {pop exit}if + sub dup 0 le + {exit}if + }loop + pop + }if + } + { + /DataSource load type + dup/filetype eq + { + 1 dict begin + /flushbuffer Width Decode length 2 idiv mul cvi string def + 1 1 Height{pop DataSource flushbuffer readstring pop pop}for + end + }if + dup/arraytype eq exch/packedarraytype eq or/DataSource load xcheck and + { + Height Width BitsPerComponent mul 8 BitsPerComponent sub add 8 idiv Decode length 2 idiv mul mul + { + DataSource length dup 0 eq + {pop exit}if + sub dup 0 le + {exit}if + }loop + pop + }if + }ifelse + end +}bdf +/addprocs +{ + 2{/exec load}repeat + 3 1 roll + [5 1 roll]bind cvx +}def +/modify_halftone_xfer +{ + currenthalftone dup length dict copy begin + currentdict 2 index known{ + 1 index load dup length dict copy begin + currentdict/TransferFunction known{ + /TransferFunction load + }{ + currenttransfer + }ifelse + addprocs/TransferFunction xdf + currentdict end def + currentdict end sethalftone + }{ + currentdict/TransferFunction known{ + /TransferFunction load + }{ + currenttransfer + }ifelse + addprocs/TransferFunction xdf + currentdict end sethalftone + pop + }ifelse +}def +/clonearray +{ + dup xcheck exch + dup length array exch + Adobe_AGM_Core/AGMCORE_tmp -1 ddf + { + Adobe_AGM_Core/AGMCORE_tmp 2 copy get 1 add ddf + dup type/dicttype eq + { + Adobe_AGM_Core/AGMCORE_tmp get + exch + clonedict + Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf + }if + dup type/arraytype eq + { + Adobe_AGM_Core/AGMCORE_tmp get exch + clonearray + Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf + }if + exch dup + Adobe_AGM_Core/AGMCORE_tmp get 4 -1 roll put + }forall + exch{cvx}if +}bdf +/clonedict +{ + dup length dict + begin + { + dup type/dicttype eq + {clonedict}if + dup type/arraytype eq + {clonearray}if + def + }forall + currentdict + end +}bdf +/DeviceN_PS2 +{ + /currentcolorspace AGMCORE_gget 0 get/DeviceN eq level3 not and +}bdf +/Indexed_DeviceN +{ + /indexed_colorspace_dict AGMCORE_gget dup null ne{ + dup/CSDBase known{ + /CSDBase get/CSD get_res/Names known + }{ + pop false + }ifelse + }{ + pop false + }ifelse +}bdf +/DeviceN_NoneName +{ + /Names where{ + pop + false Names + { + (None)eq or + }forall + }{ + false + }ifelse +}bdf +/DeviceN_PS2_inRip_seps +{ + /AGMCORE_in_rip_sep where + { + pop dup type dup/arraytype eq exch/packedarraytype eq or + { + dup 0 get/DeviceN eq level3 not and AGMCORE_in_rip_sep and + { + /currentcolorspace exch AGMCORE_gput + false + }{ + true + }ifelse + }{ + true + }ifelse + }{ + true + }ifelse +}bdf +/base_colorspace_type +{ + dup type/arraytype eq{0 get}if +}bdf +/currentdistillerparams where{pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse +{ + /pdfmark_5{cleartomark}bind def +}{ + /pdfmark_5{pdfmark}bind def +}ifelse +/ReadBypdfmark_5 +{ + currentfile exch 0 exch/SubFileDecode filter + /currentdistillerparams where + {pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse + {flushfile cleartomark} + {/PUT pdfmark}ifelse +}bdf +/ReadBypdfmark_5_string +{ + 2 dict begin + /makerString exch def string/tmpString exch def + { + currentfile tmpString readline not{pop exit}if + makerString anchorsearch + { + pop pop cleartomark exit + }{ + 3 copy/PUT pdfmark_5 pop 2 copy(\n)/PUT pdfmark_5 + }ifelse + }loop + end +}bdf +/xpdfm +{ + { + dup 0 get/Label eq + { + aload length[exch 1 add 1 roll/PAGELABEL + }{ + aload pop + [{ThisPage}<<5 -2 roll>>/PUT + }ifelse + pdfmark_5 + }forall +}bdf +/lmt{ + dup 2 index le{exch}if pop dup 2 index ge{exch}if pop +}bdf +/int{ + dup 2 index sub 3 index 5 index sub div 6 -2 roll sub mul exch pop add exch pop +}bdf +/ds{ + Adobe_AGM_Utils begin +}bdf +/dt{ + currentdict Adobe_AGM_Utils eq{ + end + }if +}bdf +systemdict/setpacking known +{setpacking}if +%%EndResource +%%BeginResource: procset Adobe_AGM_Core 2.0 0 +%%Version: 2.0 0 +%%Copyright: Copyright(C)1997-2007 Adobe Systems, Inc. All Rights Reserved. +systemdict/setpacking known +{ + currentpacking + true setpacking +}if +userdict/Adobe_AGM_Core 209 dict dup begin put +/Adobe_AGM_Core_Id/Adobe_AGM_Core_2.0_0 def +/AGMCORE_str256 256 string def +/AGMCORE_save nd +/AGMCORE_graphicsave nd +/AGMCORE_c 0 def +/AGMCORE_m 0 def +/AGMCORE_y 0 def +/AGMCORE_k 0 def +/AGMCORE_cmykbuf 4 array def +/AGMCORE_screen[currentscreen]cvx def +/AGMCORE_tmp 0 def +/AGMCORE_&setgray nd +/AGMCORE_&setcolor nd +/AGMCORE_&setcolorspace nd +/AGMCORE_&setcmykcolor nd +/AGMCORE_cyan_plate nd +/AGMCORE_magenta_plate nd +/AGMCORE_yellow_plate nd +/AGMCORE_black_plate nd +/AGMCORE_plate_ndx nd +/AGMCORE_get_ink_data nd +/AGMCORE_is_cmyk_sep nd +/AGMCORE_host_sep nd +/AGMCORE_avoid_L2_sep_space nd +/AGMCORE_distilling nd +/AGMCORE_composite_job nd +/AGMCORE_producing_seps nd +/AGMCORE_ps_level -1 def +/AGMCORE_ps_version -1 def +/AGMCORE_environ_ok nd +/AGMCORE_CSD_cache 0 dict def +/AGMCORE_currentoverprint false def +/AGMCORE_deltaX nd +/AGMCORE_deltaY nd +/AGMCORE_name nd +/AGMCORE_sep_special nd +/AGMCORE_err_strings 4 dict def +/AGMCORE_cur_err nd +/AGMCORE_current_spot_alias false def +/AGMCORE_inverting false def +/AGMCORE_feature_dictCount nd +/AGMCORE_feature_opCount nd +/AGMCORE_feature_ctm nd +/AGMCORE_ConvertToProcess false def +/AGMCORE_Default_CTM matrix def +/AGMCORE_Default_PageSize nd +/AGMCORE_Default_flatness nd +/AGMCORE_currentbg nd +/AGMCORE_currentucr nd +/AGMCORE_pattern_paint_type 0 def +/knockout_unitsq nd +currentglobal true setglobal +[/CSA/Gradient/Procedure] +{ + /Generic/Category findresource dup length dict copy/Category defineresource pop +}forall +setglobal +/AGMCORE_key_known +{ + where{ + /Adobe_AGM_Core_Id known + }{ + false + }ifelse +}ndf +/flushinput +{ + save + 2 dict begin + /CompareBuffer 3 -1 roll def + /readbuffer 256 string def + mark + { + currentfile readbuffer{readline}stopped + {cleartomark mark} + { + not + {pop exit} + if + CompareBuffer eq + {exit} + if + }ifelse + }loop + cleartomark + end + restore +}bdf +/getspotfunction +{ + AGMCORE_screen exch pop exch pop + dup type/dicttype eq{ + dup/HalftoneType get 1 eq{ + /SpotFunction get + }{ + dup/HalftoneType get 2 eq{ + /GraySpotFunction get + }{ + pop + { + abs exch abs 2 copy add 1 gt{ + 1 sub dup mul exch 1 sub dup mul add 1 sub + }{ + dup mul exch dup mul add 1 exch sub + }ifelse + }bind + }ifelse + }ifelse + }if +}def +/np +{newpath}bdf +/clp_npth +{clip np}def +/eoclp_npth +{eoclip np}def +/npth_clp +{np clip}def +/graphic_setup +{ + /AGMCORE_graphicsave save store + concat + 0 setgray + 0 setlinecap + 0 setlinejoin + 1 setlinewidth + []0 setdash + 10 setmiterlimit + np + false setoverprint + false setstrokeadjust + //Adobe_AGM_Core/spot_alias gx + /Adobe_AGM_Image where{ + pop + Adobe_AGM_Image/spot_alias 2 copy known{ + gx + }{ + pop pop + }ifelse + }if + /sep_colorspace_dict null AGMCORE_gput + 100 dict begin + /dictstackcount countdictstack def + /showpage{}def + mark +}def +/graphic_cleanup +{ + cleartomark + dictstackcount 1 countdictstack 1 sub{end}for + end + AGMCORE_graphicsave restore +}def +/compose_error_msg +{ + grestoreall initgraphics + /Helvetica findfont 10 scalefont setfont + /AGMCORE_deltaY 100 def + /AGMCORE_deltaX 310 def + clippath pathbbox np pop pop 36 add exch 36 add exch moveto + 0 AGMCORE_deltaY rlineto AGMCORE_deltaX 0 rlineto + 0 AGMCORE_deltaY neg rlineto AGMCORE_deltaX neg 0 rlineto closepath + 0 AGMCORE_&setgray + gsave 1 AGMCORE_&setgray fill grestore + 1 setlinewidth gsave stroke grestore + currentpoint AGMCORE_deltaY 15 sub add exch 8 add exch moveto + /AGMCORE_deltaY 12 def + /AGMCORE_tmp 0 def + AGMCORE_err_strings exch get + { + dup 32 eq + { + pop + AGMCORE_str256 0 AGMCORE_tmp getinterval + stringwidth pop currentpoint pop add AGMCORE_deltaX 28 add gt + { + currentpoint AGMCORE_deltaY sub exch pop + clippath pathbbox pop pop pop 44 add exch moveto + }if + AGMCORE_str256 0 AGMCORE_tmp getinterval show( )show + 0 1 AGMCORE_str256 length 1 sub + { + AGMCORE_str256 exch 0 put + }for + /AGMCORE_tmp 0 def + }{ + AGMCORE_str256 exch AGMCORE_tmp xpt + /AGMCORE_tmp AGMCORE_tmp 1 add def + }ifelse + }forall +}bdf +/AGMCORE_CMYKDeviceNColorspaces[ + [/Separation/None/DeviceCMYK{0 0 0}] + [/Separation(Black)/DeviceCMYK{0 0 0 4 -1 roll}bind] + [/Separation(Yellow)/DeviceCMYK{0 0 3 -1 roll 0}bind] + [/DeviceN[(Yellow)(Black)]/DeviceCMYK{0 0 4 2 roll}bind] + [/Separation(Magenta)/DeviceCMYK{0 exch 0 0}bind] + [/DeviceN[(Magenta)(Black)]/DeviceCMYK{0 3 1 roll 0 exch}bind] + [/DeviceN[(Magenta)(Yellow)]/DeviceCMYK{0 3 1 roll 0}bind] + [/DeviceN[(Magenta)(Yellow)(Black)]/DeviceCMYK{0 4 1 roll}bind] + [/Separation(Cyan)/DeviceCMYK{0 0 0}] + [/DeviceN[(Cyan)(Black)]/DeviceCMYK{0 0 3 -1 roll}bind] + [/DeviceN[(Cyan)(Yellow)]/DeviceCMYK{0 exch 0}bind] + [/DeviceN[(Cyan)(Yellow)(Black)]/DeviceCMYK{0 3 1 roll}bind] + [/DeviceN[(Cyan)(Magenta)]/DeviceCMYK{0 0}] + [/DeviceN[(Cyan)(Magenta)(Black)]/DeviceCMYK{0 exch}bind] + [/DeviceN[(Cyan)(Magenta)(Yellow)]/DeviceCMYK{0}] + [/DeviceCMYK] +]def +/ds{ + Adobe_AGM_Core begin + /currentdistillerparams where + { + pop currentdistillerparams/CoreDistVersion get 5000 lt + {<>setdistillerparams}if + }if + /AGMCORE_ps_version xdf + /AGMCORE_ps_level xdf + errordict/AGM_handleerror known not{ + errordict/AGM_handleerror errordict/handleerror get put + errordict/handleerror{ + Adobe_AGM_Core begin + $error/newerror get AGMCORE_cur_err null ne and{ + $error/newerror false put + AGMCORE_cur_err compose_error_msg + }if + $error/newerror true put + end + errordict/AGM_handleerror get exec + }bind put + }if + /AGMCORE_environ_ok + ps_level AGMCORE_ps_level ge + ps_version AGMCORE_ps_version ge and + AGMCORE_ps_level -1 eq or + def + AGMCORE_environ_ok not + {/AGMCORE_cur_err/AGMCORE_bad_environ def}if + /AGMCORE_&setgray systemdict/setgray get def + level2{ + /AGMCORE_&setcolor systemdict/setcolor get def + /AGMCORE_&setcolorspace systemdict/setcolorspace get def + }if + /AGMCORE_currentbg currentblackgeneration def + /AGMCORE_currentucr currentundercolorremoval def + /AGMCORE_Default_flatness currentflat def + /AGMCORE_distilling + /product where{ + pop systemdict/setdistillerparams known product(Adobe PostScript Parser)ne and + }{ + false + }ifelse + def + /AGMCORE_GSTATE AGMCORE_key_known not{ + /AGMCORE_GSTATE 21 dict def + /AGMCORE_tmpmatrix matrix def + /AGMCORE_gstack 32 array def + /AGMCORE_gstackptr 0 def + /AGMCORE_gstacksaveptr 0 def + /AGMCORE_gstackframekeys 14 def + /AGMCORE_&gsave/gsave ldf + /AGMCORE_&grestore/grestore ldf + /AGMCORE_&grestoreall/grestoreall ldf + /AGMCORE_&save/save ldf + /AGMCORE_&setoverprint/setoverprint ldf + /AGMCORE_gdictcopy{ + begin + {def}forall + end + }def + /AGMCORE_gput{ + AGMCORE_gstack AGMCORE_gstackptr get + 3 1 roll + put + }def + /AGMCORE_gget{ + AGMCORE_gstack AGMCORE_gstackptr get + exch + get + }def + /gsave{ + AGMCORE_&gsave + AGMCORE_gstack AGMCORE_gstackptr get + AGMCORE_gstackptr 1 add + dup 32 ge{limitcheck}if + /AGMCORE_gstackptr exch store + AGMCORE_gstack AGMCORE_gstackptr get + AGMCORE_gdictcopy + }def + /grestore{ + AGMCORE_&grestore + AGMCORE_gstackptr 1 sub + dup AGMCORE_gstacksaveptr lt{1 add}if + dup AGMCORE_gstack exch get dup/AGMCORE_currentoverprint known + {/AGMCORE_currentoverprint get setoverprint}{pop}ifelse + /AGMCORE_gstackptr exch store + }def + /grestoreall{ + AGMCORE_&grestoreall + /AGMCORE_gstackptr AGMCORE_gstacksaveptr store + }def + /save{ + AGMCORE_&save + AGMCORE_gstack AGMCORE_gstackptr get + AGMCORE_gstackptr 1 add + dup 32 ge{limitcheck}if + /AGMCORE_gstackptr exch store + /AGMCORE_gstacksaveptr AGMCORE_gstackptr store + AGMCORE_gstack AGMCORE_gstackptr get + AGMCORE_gdictcopy + }def + /setoverprint{ + dup/AGMCORE_currentoverprint exch AGMCORE_gput AGMCORE_&setoverprint + }def + 0 1 AGMCORE_gstack length 1 sub{ + AGMCORE_gstack exch AGMCORE_gstackframekeys dict put + }for + }if + level3/AGMCORE_&sysshfill AGMCORE_key_known not and + { + /AGMCORE_&sysshfill systemdict/shfill get def + /AGMCORE_&sysmakepattern systemdict/makepattern get def + /AGMCORE_&usrmakepattern/makepattern load def + }if + /currentcmykcolor[0 0 0 0]AGMCORE_gput + /currentstrokeadjust false AGMCORE_gput + /currentcolorspace[/DeviceGray]AGMCORE_gput + /sep_tint 0 AGMCORE_gput + /devicen_tints[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]AGMCORE_gput + /sep_colorspace_dict null AGMCORE_gput + /devicen_colorspace_dict null AGMCORE_gput + /indexed_colorspace_dict null AGMCORE_gput + /currentcolor_intent()AGMCORE_gput + /customcolor_tint 1 AGMCORE_gput + /absolute_colorimetric_crd null AGMCORE_gput + /relative_colorimetric_crd null AGMCORE_gput + /saturation_crd null AGMCORE_gput + /perceptual_crd null AGMCORE_gput + currentcolortransfer cvlit/AGMCore_gray_xfer xdf cvlit/AGMCore_b_xfer xdf + cvlit/AGMCore_g_xfer xdf cvlit/AGMCore_r_xfer xdf + << + /MaxPatternItem currentsystemparams/MaxPatternCache get + >> + setuserparams + end +}def +/ps +{ + /setcmykcolor where{ + pop + Adobe_AGM_Core/AGMCORE_&setcmykcolor/setcmykcolor load put + }if + Adobe_AGM_Core begin + /setcmykcolor + { + 4 copy AGMCORE_cmykbuf astore/currentcmykcolor exch AGMCORE_gput + 1 sub 4 1 roll + 3{ + 3 index add neg dup 0 lt{ + pop 0 + }if + 3 1 roll + }repeat + setrgbcolor pop + }ndf + /currentcmykcolor + { + /currentcmykcolor AGMCORE_gget aload pop + }ndf + /setoverprint + {pop}ndf + /currentoverprint + {false}ndf + /AGMCORE_cyan_plate 1 0 0 0 test_cmyk_color_plate def + /AGMCORE_magenta_plate 0 1 0 0 test_cmyk_color_plate def + /AGMCORE_yellow_plate 0 0 1 0 test_cmyk_color_plate def + /AGMCORE_black_plate 0 0 0 1 test_cmyk_color_plate def + /AGMCORE_plate_ndx + AGMCORE_cyan_plate{ + 0 + }{ + AGMCORE_magenta_plate{ + 1 + }{ + AGMCORE_yellow_plate{ + 2 + }{ + AGMCORE_black_plate{ + 3 + }{ + 4 + }ifelse + }ifelse + }ifelse + }ifelse + def + /AGMCORE_have_reported_unsupported_color_space false def + /AGMCORE_report_unsupported_color_space + { + AGMCORE_have_reported_unsupported_color_space false eq + { + (Warning: Job contains content that cannot be separated with on-host methods. This content appears on the black plate, and knocks out all other plates.)== + Adobe_AGM_Core/AGMCORE_have_reported_unsupported_color_space true ddf + }if + }def + /AGMCORE_composite_job + AGMCORE_cyan_plate AGMCORE_magenta_plate and AGMCORE_yellow_plate and AGMCORE_black_plate and def + /AGMCORE_in_rip_sep + /AGMCORE_in_rip_sep where{ + pop AGMCORE_in_rip_sep + }{ + AGMCORE_distilling + { + false + }{ + userdict/Adobe_AGM_OnHost_Seps known{ + false + }{ + level2{ + currentpagedevice/Separations 2 copy known{ + get + }{ + pop pop false + }ifelse + }{ + false + }ifelse + }ifelse + }ifelse + }ifelse + def + /AGMCORE_producing_seps AGMCORE_composite_job not AGMCORE_in_rip_sep or def + /AGMCORE_host_sep AGMCORE_producing_seps AGMCORE_in_rip_sep not and def + /AGM_preserve_spots + /AGM_preserve_spots where{ + pop AGM_preserve_spots + }{ + AGMCORE_distilling AGMCORE_producing_seps or + }ifelse + def + /AGM_is_distiller_preserving_spotimages + { + currentdistillerparams/PreserveOverprintSettings known + { + currentdistillerparams/PreserveOverprintSettings get + { + currentdistillerparams/ColorConversionStrategy known + { + currentdistillerparams/ColorConversionStrategy get + /sRGB ne + }{ + true + }ifelse + }{ + false + }ifelse + }{ + false + }ifelse + }def + /convert_spot_to_process where{pop}{ + /convert_spot_to_process + { + //Adobe_AGM_Core begin + dup map_alias{ + /Name get exch pop + }if + dup dup(None)eq exch(All)eq or + { + pop false + }{ + AGMCORE_host_sep + { + gsave + 1 0 0 0 setcmykcolor currentgray 1 exch sub + 0 1 0 0 setcmykcolor currentgray 1 exch sub + 0 0 1 0 setcmykcolor currentgray 1 exch sub + 0 0 0 1 setcmykcolor currentgray 1 exch sub + add add add 0 eq + { + pop false + }{ + false setoverprint + current_spot_alias false set_spot_alias + 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor + set_spot_alias + currentgray 1 ne + }ifelse + grestore + }{ + AGMCORE_distilling + { + pop AGM_is_distiller_preserving_spotimages not + }{ + //Adobe_AGM_Core/AGMCORE_name xddf + false + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 0 eq + AGMUTIL_cpd/OverrideSeparations known and + { + AGMUTIL_cpd/OverrideSeparations get + { + /HqnSpots/ProcSet resourcestatus + { + pop pop pop true + }if + }if + }if + { + AGMCORE_name/HqnSpots/ProcSet findresource/TestSpot gx not + }{ + gsave + [/Separation AGMCORE_name/DeviceGray{}]AGMCORE_&setcolorspace + false + AGMUTIL_cpd/SeparationColorNames 2 copy known + { + get + {AGMCORE_name eq or}forall + not + }{ + pop pop pop true + }ifelse + grestore + }ifelse + }ifelse + }ifelse + }ifelse + end + }def + }ifelse + /convert_to_process where{pop}{ + /convert_to_process + { + dup length 0 eq + { + pop false + }{ + AGMCORE_host_sep + { + dup true exch + { + dup(Cyan)eq exch + dup(Magenta)eq 3 -1 roll or exch + dup(Yellow)eq 3 -1 roll or exch + dup(Black)eq 3 -1 roll or + {pop} + {convert_spot_to_process and}ifelse + } + forall + { + true exch + { + dup(Cyan)eq exch + dup(Magenta)eq 3 -1 roll or exch + dup(Yellow)eq 3 -1 roll or exch + (Black)eq or and + }forall + not + }{pop false}ifelse + }{ + false exch + { + /PhotoshopDuotoneList where{pop false}{true}ifelse + { + dup(Cyan)eq exch + dup(Magenta)eq 3 -1 roll or exch + dup(Yellow)eq 3 -1 roll or exch + dup(Black)eq 3 -1 roll or + {pop} + {convert_spot_to_process or}ifelse + } + { + convert_spot_to_process or + } + ifelse + } + forall + }ifelse + }ifelse + }def + }ifelse + /AGMCORE_avoid_L2_sep_space + version cvr 2012 lt + level2 and + AGMCORE_producing_seps not and + def + /AGMCORE_is_cmyk_sep + AGMCORE_cyan_plate AGMCORE_magenta_plate or AGMCORE_yellow_plate or AGMCORE_black_plate or + def + /AGM_avoid_0_cmyk where{ + pop AGM_avoid_0_cmyk + }{ + AGM_preserve_spots + userdict/Adobe_AGM_OnHost_Seps known + userdict/Adobe_AGM_InRip_Seps known or + not and + }ifelse + { + /setcmykcolor[ + { + 4 copy add add add 0 eq currentoverprint and{ + pop 0.0005 + }if + }/exec cvx + /AGMCORE_&setcmykcolor load dup type/operatortype ne{ + /exec cvx + }if + ]cvx def + }if + /AGMCORE_IsSeparationAProcessColor + { + dup(Cyan)eq exch dup(Magenta)eq exch dup(Yellow)eq exch(Black)eq or or or + }def + AGMCORE_host_sep{ + /setcolortransfer + { + AGMCORE_cyan_plate{ + pop pop pop + }{ + AGMCORE_magenta_plate{ + 4 3 roll pop pop pop + }{ + AGMCORE_yellow_plate{ + 4 2 roll pop pop pop + }{ + 4 1 roll pop pop pop + }ifelse + }ifelse + }ifelse + settransfer + } + def + /AGMCORE_get_ink_data + AGMCORE_cyan_plate{ + {pop pop pop} + }{ + AGMCORE_magenta_plate{ + {4 3 roll pop pop pop} + }{ + AGMCORE_yellow_plate{ + {4 2 roll pop pop pop} + }{ + {4 1 roll pop pop pop} + }ifelse + }ifelse + }ifelse + def + /AGMCORE_RemoveProcessColorNames + { + 1 dict begin + /filtername + { + dup/Cyan eq 1 index(Cyan)eq or + {pop(_cyan_)}if + dup/Magenta eq 1 index(Magenta)eq or + {pop(_magenta_)}if + dup/Yellow eq 1 index(Yellow)eq or + {pop(_yellow_)}if + dup/Black eq 1 index(Black)eq or + {pop(_black_)}if + }def + dup type/arraytype eq + {[exch{filtername}forall]} + {filtername}ifelse + end + }def + level3{ + /AGMCORE_IsCurrentColor + { + dup AGMCORE_IsSeparationAProcessColor + { + AGMCORE_plate_ndx 0 eq + {dup(Cyan)eq exch/Cyan eq or}if + AGMCORE_plate_ndx 1 eq + {dup(Magenta)eq exch/Magenta eq or}if + AGMCORE_plate_ndx 2 eq + {dup(Yellow)eq exch/Yellow eq or}if + AGMCORE_plate_ndx 3 eq + {dup(Black)eq exch/Black eq or}if + AGMCORE_plate_ndx 4 eq + {pop false}if + }{ + gsave + false setoverprint + current_spot_alias false set_spot_alias + 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor + set_spot_alias + currentgray 1 ne + grestore + }ifelse + }def + /AGMCORE_filter_functiondatasource + { + 5 dict begin + /data_in xdf + data_in type/stringtype eq + { + /ncomp xdf + /comp xdf + /string_out data_in length ncomp idiv string def + 0 ncomp data_in length 1 sub + { + string_out exch dup ncomp idiv exch data_in exch ncomp getinterval comp get 255 exch sub put + }for + string_out + }{ + string/string_in xdf + /string_out 1 string def + /component xdf + [ + data_in string_in/readstring cvx + [component/get cvx 255/exch cvx/sub cvx string_out/exch cvx 0/exch cvx/put cvx string_out]cvx + [/pop cvx()]cvx/ifelse cvx + ]cvx/ReusableStreamDecode filter + }ifelse + end + }def + /AGMCORE_separateShadingFunction + { + 2 dict begin + /paint? xdf + /channel xdf + dup type/dicttype eq + { + begin + FunctionType 0 eq + { + /DataSource channel Range length 2 idiv DataSource AGMCORE_filter_functiondatasource def + currentdict/Decode known + {/Decode Decode channel 2 mul 2 getinterval def}if + paint? not + {/Decode[1 1]def}if + }if + FunctionType 2 eq + { + paint? + { + /C0[C0 channel get 1 exch sub]def + /C1[C1 channel get 1 exch sub]def + }{ + /C0[1]def + /C1[1]def + }ifelse + }if + FunctionType 3 eq + { + /Functions[Functions{channel paint? AGMCORE_separateShadingFunction}forall]def + }if + currentdict/Range known + {/Range[0 1]def}if + currentdict + end}{ + channel get 0 paint? AGMCORE_separateShadingFunction + }ifelse + end + }def + /AGMCORE_separateShading + { + 3 -1 roll begin + currentdict/Function known + { + currentdict/Background known + {[1 index{Background 3 index get 1 exch sub}{1}ifelse]/Background xdf}if + Function 3 1 roll AGMCORE_separateShadingFunction/Function xdf + /ColorSpace[/DeviceGray]def + }{ + ColorSpace dup type/arraytype eq{0 get}if/DeviceCMYK eq + { + /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def + }{ + ColorSpace dup 1 get AGMCORE_RemoveProcessColorNames 1 exch put + }ifelse + ColorSpace 0 get/Separation eq + { + { + [1/exch cvx/sub cvx]cvx + }{ + [/pop cvx 1]cvx + }ifelse + ColorSpace 3 3 -1 roll put + pop + }{ + { + [exch ColorSpace 1 get length 1 sub exch sub/index cvx 1/exch cvx/sub cvx ColorSpace 1 get length 1 add 1/roll cvx ColorSpace 1 get length{/pop cvx}repeat]cvx + }{ + pop[ColorSpace 1 get length{/pop cvx}repeat cvx 1]cvx + }ifelse + ColorSpace 3 3 -1 roll bind put + }ifelse + ColorSpace 2/DeviceGray put + }ifelse + end + }def + /AGMCORE_separateShadingDict + { + dup/ColorSpace get + dup type/arraytype ne + {[exch]}if + dup 0 get/DeviceCMYK eq + { + exch begin + currentdict + AGMCORE_cyan_plate + {0 true}if + AGMCORE_magenta_plate + {1 true}if + AGMCORE_yellow_plate + {2 true}if + AGMCORE_black_plate + {3 true}if + AGMCORE_plate_ndx 4 eq + {0 false}if + dup not currentoverprint and + {/AGMCORE_ignoreshade true def}if + AGMCORE_separateShading + currentdict + end exch + }if + dup 0 get/Separation eq + { + exch begin + ColorSpace 1 get dup/None ne exch/All ne and + { + ColorSpace 1 get AGMCORE_IsCurrentColor AGMCORE_plate_ndx 4 lt and ColorSpace 1 get AGMCORE_IsSeparationAProcessColor not and + { + ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq + { + /ColorSpace + [ + /Separation + ColorSpace 1 get + /DeviceGray + [ + ColorSpace 3 get/exec cvx + 4 AGMCORE_plate_ndx sub -1/roll cvx + 4 1/roll cvx + 3[/pop cvx]cvx/repeat cvx + 1/exch cvx/sub cvx + ]cvx + ]def + }{ + AGMCORE_report_unsupported_color_space + AGMCORE_black_plate not + { + currentdict 0 false AGMCORE_separateShading + }if + }ifelse + }{ + currentdict ColorSpace 1 get AGMCORE_IsCurrentColor + 0 exch + dup not currentoverprint and + {/AGMCORE_ignoreshade true def}if + AGMCORE_separateShading + }ifelse + }if + currentdict + end exch + }if + dup 0 get/DeviceN eq + { + exch begin + ColorSpace 1 get convert_to_process + { + ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq + { + /ColorSpace + [ + /DeviceN + ColorSpace 1 get + /DeviceGray + [ + ColorSpace 3 get/exec cvx + 4 AGMCORE_plate_ndx sub -1/roll cvx + 4 1/roll cvx + 3[/pop cvx]cvx/repeat cvx + 1/exch cvx/sub cvx + ]cvx + ]def + }{ + AGMCORE_report_unsupported_color_space + AGMCORE_black_plate not + { + currentdict 0 false AGMCORE_separateShading + /ColorSpace[/DeviceGray]def + }if + }ifelse + }{ + currentdict + false -1 ColorSpace 1 get + { + AGMCORE_IsCurrentColor + { + 1 add + exch pop true exch exit + }if + 1 add + }forall + exch + dup not currentoverprint and + {/AGMCORE_ignoreshade true def}if + AGMCORE_separateShading + }ifelse + currentdict + end exch + }if + dup 0 get dup/DeviceCMYK eq exch dup/Separation eq exch/DeviceN eq or or not + { + exch begin + ColorSpace dup type/arraytype eq + {0 get}if + /DeviceGray ne + { + AGMCORE_report_unsupported_color_space + AGMCORE_black_plate not + { + ColorSpace 0 get/CIEBasedA eq + { + /ColorSpace[/Separation/_ciebaseda_/DeviceGray{}]def + }if + ColorSpace 0 get dup/CIEBasedABC eq exch dup/CIEBasedDEF eq exch/DeviceRGB eq or or + { + /ColorSpace[/DeviceN[/_red_/_green_/_blue_]/DeviceRGB{}]def + }if + ColorSpace 0 get/CIEBasedDEFG eq + { + /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def + }if + currentdict 0 false AGMCORE_separateShading + }if + }if + currentdict + end exch + }if + pop + dup/AGMCORE_ignoreshade known + { + begin + /ColorSpace[/Separation(None)/DeviceGray{}]def + currentdict end + }if + }def + /shfill + { + AGMCORE_separateShadingDict + dup/AGMCORE_ignoreshade known + {pop} + {AGMCORE_&sysshfill}ifelse + }def + /makepattern + { + exch + dup/PatternType get 2 eq + { + clonedict + begin + /Shading Shading AGMCORE_separateShadingDict def + Shading/AGMCORE_ignoreshade known + currentdict end exch + {pop<>}if + exch AGMCORE_&sysmakepattern + }{ + exch AGMCORE_&usrmakepattern + }ifelse + }def + }if + }if + AGMCORE_in_rip_sep{ + /setcustomcolor + { + exch aload pop + dup 7 1 roll inRip_spot_has_ink not { + 4{4 index mul 4 1 roll} + repeat + /DeviceCMYK setcolorspace + 6 -2 roll pop pop + }{ + //Adobe_AGM_Core begin + /AGMCORE_k xdf/AGMCORE_y xdf/AGMCORE_m xdf/AGMCORE_c xdf + end + [/Separation 4 -1 roll/DeviceCMYK + {dup AGMCORE_c mul exch dup AGMCORE_m mul exch dup AGMCORE_y mul exch AGMCORE_k mul} + ] + setcolorspace + }ifelse + setcolor + }ndf + /setseparationgray + { + [/Separation(All)/DeviceGray{}]setcolorspace_opt + 1 exch sub setcolor + }ndf + }{ + /setseparationgray + { + AGMCORE_&setgray + }ndf + }ifelse + /findcmykcustomcolor + { + 5 makereadonlyarray + }ndf + /setcustomcolor + { + exch aload pop pop + 4{4 index mul 4 1 roll}repeat + setcmykcolor pop + }ndf + /has_color + /colorimage where{ + AGMCORE_producing_seps{ + pop true + }{ + systemdict eq + }ifelse + }{ + false + }ifelse + def + /map_index + { + 1 index mul exch getinterval{255 div}forall + }bdf + /map_indexed_devn + { + Lookup Names length 3 -1 roll cvi map_index + }bdf + /n_color_components + { + base_colorspace_type + dup/DeviceGray eq{ + pop 1 + }{ + /DeviceCMYK eq{ + 4 + }{ + 3 + }ifelse + }ifelse + }bdf + level2{ + /mo/moveto ldf + /li/lineto ldf + /cv/curveto ldf + /knockout_unitsq + { + 1 setgray + 0 0 1 1 rectfill + }def + level2/setcolorspace AGMCORE_key_known not and{ + /AGMCORE_&&&setcolorspace/setcolorspace ldf + /AGMCORE_ReplaceMappedColor + { + dup type dup/arraytype eq exch/packedarraytype eq or + { + /AGMCORE_SpotAliasAry2 where{ + begin + dup 0 get dup/Separation eq + { + pop + dup length array copy + dup dup 1 get + current_spot_alias + { + dup map_alias + { + false set_spot_alias + dup 1 exch setsepcolorspace + true set_spot_alias + begin + /sep_colorspace_dict currentdict AGMCORE_gput + pop pop pop + [ + /Separation Name + CSA map_csa + MappedCSA + /sep_colorspace_proc load + ] + dup Name + end + }if + }if + map_reserved_ink_name 1 xpt + }{ + /DeviceN eq + { + dup length array copy + dup dup 1 get[ + exch{ + current_spot_alias{ + dup map_alias{ + /Name get exch pop + }if + }if + map_reserved_ink_name + }forall + ]1 xpt + }if + }ifelse + end + }if + }if + }def + /setcolorspace + { + dup type dup/arraytype eq exch/packedarraytype eq or + { + dup 0 get/Indexed eq + { + AGMCORE_distilling + { + /PhotoshopDuotoneList where + { + pop false + }{ + true + }ifelse + }{ + true + }ifelse + { + aload pop 3 -1 roll + AGMCORE_ReplaceMappedColor + 3 1 roll 4 array astore + }if + }{ + AGMCORE_ReplaceMappedColor + }ifelse + }if + DeviceN_PS2_inRip_seps{AGMCORE_&&&setcolorspace}if + }def + }if + }{ + /adj + { + currentstrokeadjust{ + transform + 0.25 sub round 0.25 add exch + 0.25 sub round 0.25 add exch + itransform + }if + }def + /mo{ + adj moveto + }def + /li{ + adj lineto + }def + /cv{ + 6 2 roll adj + 6 2 roll adj + 6 2 roll adj curveto + }def + /knockout_unitsq + { + 1 setgray + 8 8 1[8 0 0 8 0 0]{}image + }def + /currentstrokeadjust{ + /currentstrokeadjust AGMCORE_gget + }def + /setstrokeadjust{ + /currentstrokeadjust exch AGMCORE_gput + }def + /setcolorspace + { + /currentcolorspace exch AGMCORE_gput + }def + /currentcolorspace + { + /currentcolorspace AGMCORE_gget + }def + /setcolor_devicecolor + { + base_colorspace_type + dup/DeviceGray eq{ + pop setgray + }{ + /DeviceCMYK eq{ + setcmykcolor + }{ + setrgbcolor + }ifelse + }ifelse + }def + /setcolor + { + currentcolorspace 0 get + dup/DeviceGray ne{ + dup/DeviceCMYK ne{ + dup/DeviceRGB ne{ + dup/Separation eq{ + pop + currentcolorspace 3 gx + currentcolorspace 2 get + }{ + dup/Indexed eq{ + pop + currentcolorspace 3 get dup type/stringtype eq{ + currentcolorspace 1 get n_color_components + 3 -1 roll map_index + }{ + exec + }ifelse + currentcolorspace 1 get + }{ + /AGMCORE_cur_err/AGMCORE_invalid_color_space def + AGMCORE_invalid_color_space + }ifelse + }ifelse + }if + }if + }if + setcolor_devicecolor + }def + }ifelse + /sop/setoverprint ldf + /lw/setlinewidth ldf + /lc/setlinecap ldf + /lj/setlinejoin ldf + /ml/setmiterlimit ldf + /dsh/setdash ldf + /sadj/setstrokeadjust ldf + /gry/setgray ldf + /rgb/setrgbcolor ldf + /cmyk[ + /currentcolorspace[/DeviceCMYK]/AGMCORE_gput cvx + /setcmykcolor load dup type/operatortype ne{/exec cvx}if + ]cvx bdf + level3 AGMCORE_host_sep not and{ + /nzopmsc{ + 6 dict begin + /kk exch def + /yy exch def + /mm exch def + /cc exch def + /sum 0 def + cc 0 ne{/sum sum 2#1000 or def cc}if + mm 0 ne{/sum sum 2#0100 or def mm}if + yy 0 ne{/sum sum 2#0010 or def yy}if + kk 0 ne{/sum sum 2#0001 or def kk}if + AGMCORE_CMYKDeviceNColorspaces sum get setcolorspace + sum 0 eq{0}if + end + setcolor + }bdf + }{ + /nzopmsc/cmyk ldf + }ifelse + /sep/setsepcolor ldf + /devn/setdevicencolor ldf + /idx/setindexedcolor ldf + /colr/setcolor ldf + /csacrd/set_csa_crd ldf + /sepcs/setsepcolorspace ldf + /devncs/setdevicencolorspace ldf + /idxcs/setindexedcolorspace ldf + /cp/closepath ldf + /clp/clp_npth ldf + /eclp/eoclp_npth ldf + /f/fill ldf + /ef/eofill ldf + /@/stroke ldf + /nclp/npth_clp ldf + /gset/graphic_setup ldf + /gcln/graphic_cleanup ldf + /ct/concat ldf + /cf/currentfile ldf + /fl/filter ldf + /rs/readstring ldf + /AGMCORE_def_ht currenthalftone def + /clonedict Adobe_AGM_Utils begin/clonedict load end def + /clonearray Adobe_AGM_Utils begin/clonearray load end def + currentdict{ + dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ + bind + }if + def + }forall + /getrampcolor + { + /indx exch def + 0 1 NumComp 1 sub + { + dup + Samples exch get + dup type/stringtype eq{indx get}if + exch + Scaling exch get aload pop + 3 1 roll + mul add + }for + ColorSpaceFamily/Separation eq + {sep} + { + ColorSpaceFamily/DeviceN eq + {devn}{setcolor}ifelse + }ifelse + }bdf + /sssetbackground{ + aload pop + ColorSpaceFamily/Separation eq + {sep} + { + ColorSpaceFamily/DeviceN eq + {devn}{setcolor}ifelse + }ifelse + }bdf + /RadialShade + { + 40 dict begin + /ColorSpaceFamily xdf + /background xdf + /ext1 xdf + /ext0 xdf + /BBox xdf + /r2 xdf + /c2y xdf + /c2x xdf + /r1 xdf + /c1y xdf + /c1x xdf + /rampdict xdf + /setinkoverprint where{pop/setinkoverprint{pop}def}if + gsave + BBox length 0 gt + { + np + BBox 0 get BBox 1 get moveto + BBox 2 get BBox 0 get sub 0 rlineto + 0 BBox 3 get BBox 1 get sub rlineto + BBox 2 get BBox 0 get sub neg 0 rlineto + closepath + clip + np + }if + c1x c2x eq + { + c1y c2y lt{/theta 90 def}{/theta 270 def}ifelse + }{ + /slope c2y c1y sub c2x c1x sub div def + /theta slope 1 atan def + c2x c1x lt c2y c1y ge and{/theta theta 180 sub def}if + c2x c1x lt c2y c1y lt and{/theta theta 180 add def}if + }ifelse + gsave + clippath + c1x c1y translate + theta rotate + -90 rotate + {pathbbox}stopped + {0 0 0 0}if + /yMax xdf + /xMax xdf + /yMin xdf + /xMin xdf + grestore + xMax xMin eq yMax yMin eq or + { + grestore + end + }{ + /max{2 copy gt{pop}{exch pop}ifelse}bdf + /min{2 copy lt{pop}{exch pop}ifelse}bdf + rampdict begin + 40 dict begin + background length 0 gt{background sssetbackground gsave clippath fill grestore}if + gsave + c1x c1y translate + theta rotate + -90 rotate + /c2y c1x c2x sub dup mul c1y c2y sub dup mul add sqrt def + /c1y 0 def + /c1x 0 def + /c2x 0 def + ext0 + { + 0 getrampcolor + c2y r2 add r1 sub 0.0001 lt + { + c1x c1y r1 360 0 arcn + pathbbox + /aymax exch def + /axmax exch def + /aymin exch def + /axmin exch def + /bxMin xMin axmin min def + /byMin yMin aymin min def + /bxMax xMax axmax max def + /byMax yMax aymax max def + bxMin byMin moveto + bxMax byMin lineto + bxMax byMax lineto + bxMin byMax lineto + bxMin byMin lineto + eofill + }{ + c2y r1 add r2 le + { + c1x c1y r1 0 360 arc + fill + } + { + c2x c2y r2 0 360 arc fill + r1 r2 eq + { + /p1x r1 neg def + /p1y c1y def + /p2x r1 def + /p2y c1y def + p1x p1y moveto p2x p2y lineto p2x yMin lineto p1x yMin lineto + fill + }{ + /AA r2 r1 sub c2y div def + AA -1 eq + {/theta 89.99 def} + {/theta AA 1 AA dup mul sub sqrt div 1 atan def} + ifelse + /SS1 90 theta add dup sin exch cos div def + /p1x r1 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def + /p1y p1x SS1 div neg def + /SS2 90 theta sub dup sin exch cos div def + /p2x r1 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def + /p2y p2x SS2 div neg def + r1 r2 gt + { + /L1maxX p1x yMin p1y sub SS1 div add def + /L2maxX p2x yMin p2y sub SS2 div add def + }{ + /L1maxX 0 def + /L2maxX 0 def + }ifelse + p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto + L1maxX L1maxX p1x sub SS1 mul p1y add lineto + fill + }ifelse + }ifelse + }ifelse + }if + c1x c2x sub dup mul + c1y c2y sub dup mul + add 0.5 exp + 0 dtransform + dup mul exch dup mul add 0.5 exp 72 div + 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt + 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt + 1 index 1 index lt{exch}if pop + /hires xdf + hires mul + /numpix xdf + /numsteps NumSamples def + /rampIndxInc 1 def + /subsampling false def + numpix 0 ne + { + NumSamples numpix div 0.5 gt + { + /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def + /rampIndxInc NumSamples 1 sub numsteps div def + /subsampling true def + }if + }if + /xInc c2x c1x sub numsteps div def + /yInc c2y c1y sub numsteps div def + /rInc r2 r1 sub numsteps div def + /cx c1x def + /cy c1y def + /radius r1 def + np + xInc 0 eq yInc 0 eq rInc 0 eq and and + { + 0 getrampcolor + cx cy radius 0 360 arc + stroke + NumSamples 1 sub getrampcolor + cx cy radius 72 hires div add 0 360 arc + 0 setlinewidth + stroke + }{ + 0 + numsteps + { + dup + subsampling{round cvi}if + getrampcolor + cx cy radius 0 360 arc + /cx cx xInc add def + /cy cy yInc add def + /radius radius rInc add def + cx cy radius 360 0 arcn + eofill + rampIndxInc add + }repeat + pop + }ifelse + ext1 + { + c2y r2 add r1 lt + { + c2x c2y r2 0 360 arc + fill + }{ + c2y r1 add r2 sub 0.0001 le + { + c2x c2y r2 360 0 arcn + pathbbox + /aymax exch def + /axmax exch def + /aymin exch def + /axmin exch def + /bxMin xMin axmin min def + /byMin yMin aymin min def + /bxMax xMax axmax max def + /byMax yMax aymax max def + bxMin byMin moveto + bxMax byMin lineto + bxMax byMax lineto + bxMin byMax lineto + bxMin byMin lineto + eofill + }{ + c2x c2y r2 0 360 arc fill + r1 r2 eq + { + /p1x r2 neg def + /p1y c2y def + /p2x r2 def + /p2y c2y def + p1x p1y moveto p2x p2y lineto p2x yMax lineto p1x yMax lineto + fill + }{ + /AA r2 r1 sub c2y div def + AA -1 eq + {/theta 89.99 def} + {/theta AA 1 AA dup mul sub sqrt div 1 atan def} + ifelse + /SS1 90 theta add dup sin exch cos div def + /p1x r2 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def + /p1y c2y p1x SS1 div sub def + /SS2 90 theta sub dup sin exch cos div def + /p2x r2 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def + /p2y c2y p2x SS2 div sub def + r1 r2 lt + { + /L1maxX p1x yMax p1y sub SS1 div add def + /L2maxX p2x yMax p2y sub SS2 div add def + }{ + /L1maxX 0 def + /L2maxX 0 def + }ifelse + p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto + L1maxX L1maxX p1x sub SS1 mul p1y add lineto + fill + }ifelse + }ifelse + }ifelse + }if + grestore + grestore + end + end + end + }ifelse + }bdf + /GenStrips + { + 40 dict begin + /ColorSpaceFamily xdf + /background xdf + /ext1 xdf + /ext0 xdf + /BBox xdf + /y2 xdf + /x2 xdf + /y1 xdf + /x1 xdf + /rampdict xdf + /setinkoverprint where{pop/setinkoverprint{pop}def}if + gsave + BBox length 0 gt + { + np + BBox 0 get BBox 1 get moveto + BBox 2 get BBox 0 get sub 0 rlineto + 0 BBox 3 get BBox 1 get sub rlineto + BBox 2 get BBox 0 get sub neg 0 rlineto + closepath + clip + np + }if + x1 x2 eq + { + y1 y2 lt{/theta 90 def}{/theta 270 def}ifelse + }{ + /slope y2 y1 sub x2 x1 sub div def + /theta slope 1 atan def + x2 x1 lt y2 y1 ge and{/theta theta 180 sub def}if + x2 x1 lt y2 y1 lt and{/theta theta 180 add def}if + } + ifelse + gsave + clippath + x1 y1 translate + theta rotate + {pathbbox}stopped + {0 0 0 0}if + /yMax exch def + /xMax exch def + /yMin exch def + /xMin exch def + grestore + xMax xMin eq yMax yMin eq or + { + grestore + end + }{ + rampdict begin + 20 dict begin + background length 0 gt{background sssetbackground gsave clippath fill grestore}if + gsave + x1 y1 translate + theta rotate + /xStart 0 def + /xEnd x2 x1 sub dup mul y2 y1 sub dup mul add 0.5 exp def + /ySpan yMax yMin sub def + /numsteps NumSamples def + /rampIndxInc 1 def + /subsampling false def + xStart 0 transform + xEnd 0 transform + 3 -1 roll + sub dup mul + 3 1 roll + sub dup mul + add 0.5 exp 72 div + 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt + 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt + 1 index 1 index lt{exch}if pop + mul + /numpix xdf + numpix 0 ne + { + NumSamples numpix div 0.5 gt + { + /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def + /rampIndxInc NumSamples 1 sub numsteps div def + /subsampling true def + }if + }if + ext0 + { + 0 getrampcolor + xMin xStart lt + { + xMin yMin xMin neg ySpan rectfill + }if + }if + /xInc xEnd xStart sub numsteps div def + /x xStart def + 0 + numsteps + { + dup + subsampling{round cvi}if + getrampcolor + x yMin xInc ySpan rectfill + /x x xInc add def + rampIndxInc add + }repeat + pop + ext1{ + xMax xEnd gt + { + xEnd yMin xMax xEnd sub ySpan rectfill + }if + }if + grestore + grestore + end + end + end + }ifelse + }bdf +}def +/pt +{ + end +}def +/dt{ +}def +/pgsv{ + //Adobe_AGM_Core/AGMCORE_save save put +}def +/pgrs{ + //Adobe_AGM_Core/AGMCORE_save get restore +}def +systemdict/findcolorrendering known{ + /findcolorrendering systemdict/findcolorrendering get def +}if +systemdict/setcolorrendering known{ + /setcolorrendering systemdict/setcolorrendering get def +}if +/test_cmyk_color_plate +{ + gsave + setcmykcolor currentgray 1 ne + grestore +}def +/inRip_spot_has_ink +{ + dup//Adobe_AGM_Core/AGMCORE_name xddf + convert_spot_to_process not +}def +/map255_to_range +{ + 1 index sub + 3 -1 roll 255 div mul add +}def +/set_csa_crd +{ + /sep_colorspace_dict null AGMCORE_gput + begin + CSA get_csa_by_name setcolorspace_opt + set_crd + end +} +def +/map_csa +{ + currentdict/MappedCSA known{MappedCSA null ne}{false}ifelse + {pop}{get_csa_by_name/MappedCSA xdf}ifelse +}def +/setsepcolor +{ + /sep_colorspace_dict AGMCORE_gget begin + dup/sep_tint exch AGMCORE_gput + TintProc + end +}def +/setdevicencolor +{ + /devicen_colorspace_dict AGMCORE_gget begin + Names length copy + Names length 1 sub -1 0 + { + /devicen_tints AGMCORE_gget 3 1 roll xpt + }for + TintProc + end +}def +/sep_colorspace_proc +{ + /AGMCORE_tmp exch store + /sep_colorspace_dict AGMCORE_gget begin + currentdict/Components known{ + Components aload pop + TintMethod/Lab eq{ + 2{AGMCORE_tmp mul NComponents 1 roll}repeat + LMax sub AGMCORE_tmp mul LMax add NComponents 1 roll + }{ + TintMethod/Subtractive eq{ + NComponents{ + AGMCORE_tmp mul NComponents 1 roll + }repeat + }{ + NComponents{ + 1 sub AGMCORE_tmp mul 1 add NComponents 1 roll + }repeat + }ifelse + }ifelse + }{ + ColorLookup AGMCORE_tmp ColorLookup length 1 sub mul round cvi get + aload pop + }ifelse + end +}def +/sep_colorspace_gray_proc +{ + /AGMCORE_tmp exch store + /sep_colorspace_dict AGMCORE_gget begin + GrayLookup AGMCORE_tmp GrayLookup length 1 sub mul round cvi get + end +}def +/sep_proc_name +{ + dup 0 get + dup/DeviceRGB eq exch/DeviceCMYK eq or level2 not and has_color not and{ + pop[/DeviceGray] + /sep_colorspace_gray_proc + }{ + /sep_colorspace_proc + }ifelse +}def +/setsepcolorspace +{ + current_spot_alias{ + dup begin + Name map_alias{ + exch pop + }if + end + }if + dup/sep_colorspace_dict exch AGMCORE_gput + begin + CSA map_csa + /AGMCORE_sep_special Name dup()eq exch(All)eq or store + AGMCORE_avoid_L2_sep_space{ + [/Indexed MappedCSA sep_proc_name 255 exch + {255 div}/exec cvx 3 -1 roll[4 1 roll load/exec cvx]cvx + ]setcolorspace_opt + /TintProc{ + 255 mul round cvi setcolor + }bdf + }{ + MappedCSA 0 get/DeviceCMYK eq + currentdict/Components known and + AGMCORE_sep_special not and{ + /TintProc[ + Components aload pop Name findcmykcustomcolor + /exch cvx/setcustomcolor cvx + ]cvx bdf + }{ + AGMCORE_host_sep Name(All)eq and{ + /TintProc{ + 1 exch sub setseparationgray + }bdf + }{ + AGMCORE_in_rip_sep MappedCSA 0 get/DeviceCMYK eq and + AGMCORE_host_sep or + Name()eq and{ + /TintProc[ + MappedCSA sep_proc_name exch 0 get/DeviceCMYK eq{ + cvx/setcmykcolor cvx + }{ + cvx/setgray cvx + }ifelse + ]cvx bdf + }{ + AGMCORE_producing_seps MappedCSA 0 get dup/DeviceCMYK eq exch/DeviceGray eq or and AGMCORE_sep_special not and{ + /TintProc[ + /dup cvx + MappedCSA sep_proc_name cvx exch + 0 get/DeviceGray eq{ + 1/exch cvx/sub cvx 0 0 0 4 -1/roll cvx + }if + /Name cvx/findcmykcustomcolor cvx/exch cvx + AGMCORE_host_sep{ + AGMCORE_is_cmyk_sep + /Name cvx + /AGMCORE_IsSeparationAProcessColor load/exec cvx + /not cvx/and cvx + }{ + Name inRip_spot_has_ink not + }ifelse + [ + /pop cvx 1 + ]cvx/if cvx + /setcustomcolor cvx + ]cvx bdf + }{ + /TintProc{setcolor}bdf + [/Separation Name MappedCSA sep_proc_name load]setcolorspace_opt + }ifelse + }ifelse + }ifelse + }ifelse + }ifelse + set_crd + setsepcolor + end +}def +/additive_blend +{ + 3 dict begin + /numarrays xdf + /numcolors xdf + 0 1 numcolors 1 sub + { + /c1 xdf + 1 + 0 1 numarrays 1 sub + { + 1 exch add/index cvx + c1/get cvx/mul cvx + }for + numarrays 1 add 1/roll cvx + }for + numarrays[/pop cvx]cvx/repeat cvx + end +}def +/subtractive_blend +{ + 3 dict begin + /numarrays xdf + /numcolors xdf + 0 1 numcolors 1 sub + { + /c1 xdf + 1 1 + 0 1 numarrays 1 sub + { + 1 3 3 -1 roll add/index cvx + c1/get cvx/sub cvx/mul cvx + }for + /sub cvx + numarrays 1 add 1/roll cvx + }for + numarrays[/pop cvx]cvx/repeat cvx + end +}def +/exec_tint_transform +{ + /TintProc[ + /TintTransform cvx/setcolor cvx + ]cvx bdf + MappedCSA setcolorspace_opt +}bdf +/devn_makecustomcolor +{ + 2 dict begin + /names_index xdf + /Names xdf + 1 1 1 1 Names names_index get findcmykcustomcolor + /devicen_tints AGMCORE_gget names_index get setcustomcolor + Names length{pop}repeat + end +}bdf +/setdevicencolorspace +{ + dup/AliasedColorants known{false}{true}ifelse + current_spot_alias and{ + 7 dict begin + /names_index 0 def + dup/names_len exch/Names get length def + /new_names names_len array def + /new_LookupTables names_len array def + /alias_cnt 0 def + dup/Names get + { + dup map_alias{ + exch pop + dup/ColorLookup known{ + dup begin + new_LookupTables names_index ColorLookup put + end + }{ + dup/Components known{ + dup begin + new_LookupTables names_index Components put + end + }{ + dup begin + new_LookupTables names_index[null null null null]put + end + }ifelse + }ifelse + new_names names_index 3 -1 roll/Name get put + /alias_cnt alias_cnt 1 add def + }{ + /name xdf + new_names names_index name put + dup/LookupTables known{ + dup begin + new_LookupTables names_index LookupTables names_index get put + end + }{ + dup begin + new_LookupTables names_index[null null null null]put + end + }ifelse + }ifelse + /names_index names_index 1 add def + }forall + alias_cnt 0 gt{ + /AliasedColorants true def + /lut_entry_len new_LookupTables 0 get dup length 256 ge{0 get length}{length}ifelse def + 0 1 names_len 1 sub{ + /names_index xdf + new_LookupTables names_index get dup length 256 ge{0 get length}{length}ifelse lut_entry_len ne{ + /AliasedColorants false def + exit + }{ + new_LookupTables names_index get 0 get null eq{ + dup/Names get names_index get/name xdf + name(Cyan)eq name(Magenta)eq name(Yellow)eq name(Black)eq + or or or not{ + /AliasedColorants false def + exit + }if + }if + }ifelse + }for + lut_entry_len 1 eq{ + /AliasedColorants false def + }if + AliasedColorants{ + dup begin + /Names new_names def + /LookupTables new_LookupTables def + /AliasedColorants true def + /NComponents lut_entry_len def + /TintMethod NComponents 4 eq{/Subtractive}{/Additive}ifelse def + /MappedCSA TintMethod/Additive eq{/DeviceRGB}{/DeviceCMYK}ifelse def + currentdict/TTTablesIdx known not{ + /TTTablesIdx -1 def + }if + end + }if + }if + end + }if + dup/devicen_colorspace_dict exch AGMCORE_gput + begin + currentdict/AliasedColorants known{ + AliasedColorants + }{ + false + }ifelse + dup not{ + CSA map_csa + }if + /TintTransform load type/nulltype eq or{ + /TintTransform[ + 0 1 Names length 1 sub + { + /TTTablesIdx TTTablesIdx 1 add def + dup LookupTables exch get dup 0 get null eq + { + 1 index + Names exch get + dup(Cyan)eq + { + pop exch + LookupTables length exch sub + /index cvx + 0 0 0 + } + { + dup(Magenta)eq + { + pop exch + LookupTables length exch sub + /index cvx + 0/exch cvx 0 0 + }{ + (Yellow)eq + { + exch + LookupTables length exch sub + /index cvx + 0 0 3 -1/roll cvx 0 + }{ + exch + LookupTables length exch sub + /index cvx + 0 0 0 4 -1/roll cvx + }ifelse + }ifelse + }ifelse + 5 -1/roll cvx/astore cvx + }{ + dup length 1 sub + LookupTables length 4 -1 roll sub 1 add + /index cvx/mul cvx/round cvx/cvi cvx/get cvx + }ifelse + Names length TTTablesIdx add 1 add 1/roll cvx + }for + Names length[/pop cvx]cvx/repeat cvx + NComponents Names length + TintMethod/Subtractive eq + { + subtractive_blend + }{ + additive_blend + }ifelse + ]cvx bdf + }if + AGMCORE_host_sep{ + Names convert_to_process{ + exec_tint_transform + } + { + currentdict/AliasedColorants known{ + AliasedColorants not + }{ + false + }ifelse + 5 dict begin + /AvoidAliasedColorants xdf + /painted? false def + /names_index 0 def + /names_len Names length def + AvoidAliasedColorants{ + /currentspotalias current_spot_alias def + false set_spot_alias + }if + Names{ + AGMCORE_is_cmyk_sep{ + dup(Cyan)eq AGMCORE_cyan_plate and exch + dup(Magenta)eq AGMCORE_magenta_plate and exch + dup(Yellow)eq AGMCORE_yellow_plate and exch + (Black)eq AGMCORE_black_plate and or or or{ + /devicen_colorspace_dict AGMCORE_gget/TintProc[ + Names names_index/devn_makecustomcolor cvx + ]cvx ddf + /painted? true def + }if + painted?{exit}if + }{ + 0 0 0 0 5 -1 roll findcmykcustomcolor 1 setcustomcolor currentgray 0 eq{ + /devicen_colorspace_dict AGMCORE_gget/TintProc[ + Names names_index/devn_makecustomcolor cvx + ]cvx ddf + /painted? true def + exit + }if + }ifelse + /names_index names_index 1 add def + }forall + AvoidAliasedColorants{ + currentspotalias set_spot_alias + }if + painted?{ + /devicen_colorspace_dict AGMCORE_gget/names_index names_index put + }{ + /devicen_colorspace_dict AGMCORE_gget/TintProc[ + names_len[/pop cvx]cvx/repeat cvx 1/setseparationgray cvx + 0 0 0 0/setcmykcolor cvx + ]cvx ddf + }ifelse + end + }ifelse + } + { + AGMCORE_in_rip_sep{ + Names convert_to_process not + }{ + level3 + }ifelse + { + [/DeviceN Names MappedCSA/TintTransform load]setcolorspace_opt + /TintProc level3 not AGMCORE_in_rip_sep and{ + [ + Names/length cvx[/pop cvx]cvx/repeat cvx + ]cvx bdf + }{ + {setcolor}bdf + }ifelse + }{ + exec_tint_transform + }ifelse + }ifelse + set_crd + /AliasedColorants false def + end +}def +/setindexedcolorspace +{ + dup/indexed_colorspace_dict exch AGMCORE_gput + begin + currentdict/CSDBase known{ + CSDBase/CSD get_res begin + currentdict/Names known{ + currentdict devncs + }{ + 1 currentdict sepcs + }ifelse + AGMCORE_host_sep{ + 4 dict begin + /compCnt/Names where{pop Names length}{1}ifelse def + /NewLookup HiVal 1 add string def + 0 1 HiVal{ + /tableIndex xdf + Lookup dup type/stringtype eq{ + compCnt tableIndex map_index + }{ + exec + }ifelse + /Names where{ + pop setdevicencolor + }{ + setsepcolor + }ifelse + currentgray + tableIndex exch + 255 mul cvi + NewLookup 3 1 roll put + }for + [/Indexed currentcolorspace HiVal NewLookup]setcolorspace_opt + end + }{ + level3 + { + currentdict/Names known{ + [/Indexed[/DeviceN Names MappedCSA/TintTransform load]HiVal Lookup]setcolorspace_opt + }{ + [/Indexed[/Separation Name MappedCSA sep_proc_name load]HiVal Lookup]setcolorspace_opt + }ifelse + }{ + [/Indexed MappedCSA HiVal + [ + currentdict/Names known{ + Lookup dup type/stringtype eq + {/exch cvx CSDBase/CSD get_res/Names get length dup/mul cvx exch/getinterval cvx{255 div}/forall cvx} + {/exec cvx}ifelse + /TintTransform load/exec cvx + }{ + Lookup dup type/stringtype eq + {/exch cvx/get cvx 255/div cvx} + {/exec cvx}ifelse + CSDBase/CSD get_res/MappedCSA get sep_proc_name exch pop/load cvx/exec cvx + }ifelse + ]cvx + ]setcolorspace_opt + }ifelse + }ifelse + end + set_crd + } + { + CSA map_csa + AGMCORE_host_sep level2 not and{ + 0 0 0 0 setcmykcolor + }{ + [/Indexed MappedCSA + level2 not has_color not and{ + dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or{ + pop[/DeviceGray] + }if + HiVal GrayLookup + }{ + HiVal + currentdict/RangeArray known{ + { + /indexed_colorspace_dict AGMCORE_gget begin + Lookup exch + dup HiVal gt{ + pop HiVal + }if + NComponents mul NComponents getinterval{}forall + NComponents 1 sub -1 0{ + RangeArray exch 2 mul 2 getinterval aload pop map255_to_range + NComponents 1 roll + }for + end + }bind + }{ + Lookup + }ifelse + }ifelse + ]setcolorspace_opt + set_crd + }ifelse + }ifelse + end +}def +/setindexedcolor +{ + AGMCORE_host_sep{ + /indexed_colorspace_dict AGMCORE_gget + begin + currentdict/CSDBase known{ + CSDBase/CSD get_res begin + currentdict/Names known{ + map_indexed_devn + devn + } + { + Lookup 1 3 -1 roll map_index + sep + }ifelse + end + }{ + Lookup MappedCSA/DeviceCMYK eq{4}{1}ifelse 3 -1 roll + map_index + MappedCSA/DeviceCMYK eq{setcmykcolor}{setgray}ifelse + }ifelse + end + }{ + level3 not AGMCORE_in_rip_sep and/indexed_colorspace_dict AGMCORE_gget/CSDBase known and{ + /indexed_colorspace_dict AGMCORE_gget/CSDBase get/CSD get_res begin + map_indexed_devn + devn + end + } + { + setcolor + }ifelse + }ifelse +}def +/ignoreimagedata +{ + currentoverprint not{ + gsave + dup clonedict begin + 1 setgray + /Decode[0 1]def + /DataSourcedef + /MultipleDataSources false def + /BitsPerComponent 8 def + currentdict end + systemdict/image gx + grestore + }if + consumeimagedata +}def +/add_res +{ + dup/CSD eq{ + pop + //Adobe_AGM_Core begin + /AGMCORE_CSD_cache load 3 1 roll put + end + }{ + defineresource pop + }ifelse +}def +/del_res +{ + { + aload pop exch + dup/CSD eq{ + pop + {//Adobe_AGM_Core/AGMCORE_CSD_cache get exch undef}forall + }{ + exch + {1 index undefineresource}forall + pop + }ifelse + }forall +}def +/get_res +{ + dup/CSD eq{ + pop + dup type dup/nametype eq exch/stringtype eq or{ + AGMCORE_CSD_cache exch get + }if + }{ + findresource + }ifelse +}def +/get_csa_by_name +{ + dup type dup/nametype eq exch/stringtype eq or{ + /CSA get_res + }if +}def +/paintproc_buf_init +{ + /count get 0 0 put +}def +/paintproc_buf_next +{ + dup/count get dup 0 get + dup 3 1 roll + 1 add 0 xpt + get +}def +/cachepaintproc_compress +{ + 5 dict begin + currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def + /ppdict 20 dict def + /string_size 16000 def + /readbuffer string_size string def + currentglobal true setglobal + ppdict 1 array dup 0 1 put/count xpt + setglobal + /LZWFilter + { + exch + dup length 0 eq{ + pop + }{ + ppdict dup length 1 sub 3 -1 roll put + }ifelse + {string_size}{0}ifelse string + }/LZWEncode filter def + { + ReadFilter readbuffer readstring + exch LZWFilter exch writestring + not{exit}if + }loop + LZWFilter closefile + ppdict + end +}def +/cachepaintproc +{ + 2 dict begin + currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def + /ppdict 20 dict def + currentglobal true setglobal + ppdict 1 array dup 0 1 put/count xpt + setglobal + { + ReadFilter 16000 string readstring exch + ppdict dup length 1 sub 3 -1 roll put + not{exit}if + }loop + ppdict dup dup length 1 sub()put + end +}def +/make_pattern +{ + exch clonedict exch + dup matrix currentmatrix matrix concatmatrix 0 0 3 2 roll itransform + exch 3 index/XStep get 1 index exch 2 copy div cvi mul sub sub + exch 3 index/YStep get 1 index exch 2 copy div cvi mul sub sub + matrix translate exch matrix concatmatrix + 1 index begin + BBox 0 get XStep div cvi XStep mul/xshift exch neg def + BBox 1 get YStep div cvi YStep mul/yshift exch neg def + BBox 0 get xshift add + BBox 1 get yshift add + BBox 2 get xshift add + BBox 3 get yshift add + 4 array astore + /BBox exch def + [xshift yshift/translate load null/exec load]dup + 3/PaintProc load put cvx/PaintProc exch def + end + gsave 0 setgray + makepattern + grestore +}def +/set_pattern +{ + dup/PatternType get 1 eq{ + dup/PaintType get 1 eq{ + currentoverprint sop[/DeviceGray]setcolorspace 0 setgray + }if + }if + setpattern +}def +/setcolorspace_opt +{ + dup currentcolorspace eq{pop}{setcolorspace}ifelse +}def +/updatecolorrendering +{ + currentcolorrendering/RenderingIntent known{ + currentcolorrendering/RenderingIntent get + } + { + Intent/AbsoluteColorimetric eq + { + /absolute_colorimetric_crd AGMCORE_gget dup null eq + } + { + Intent/RelativeColorimetric eq + { + /relative_colorimetric_crd AGMCORE_gget dup null eq + } + { + Intent/Saturation eq + { + /saturation_crd AGMCORE_gget dup null eq + } + { + /perceptual_crd AGMCORE_gget dup null eq + }ifelse + }ifelse + }ifelse + { + pop null + } + { + /RenderingIntent known{null}{Intent}ifelse + }ifelse + }ifelse + Intent ne{ + Intent/ColorRendering{findresource}stopped + { + pop pop systemdict/findcolorrendering known + { + Intent findcolorrendering + { + /ColorRendering findresource true exch + } + { + /ColorRendering findresource + product(Xerox Phaser 5400)ne + exch + }ifelse + dup Intent/AbsoluteColorimetric eq + { + /absolute_colorimetric_crd exch AGMCORE_gput + } + { + Intent/RelativeColorimetric eq + { + /relative_colorimetric_crd exch AGMCORE_gput + } + { + Intent/Saturation eq + { + /saturation_crd exch AGMCORE_gput + } + { + Intent/Perceptual eq + { + /perceptual_crd exch AGMCORE_gput + } + { + pop + }ifelse + }ifelse + }ifelse + }ifelse + 1 index{exch}{pop}ifelse + } + {false}ifelse + } + {true}ifelse + { + dup begin + currentdict/TransformPQR known{ + currentdict/TransformPQR get aload pop + 3{{}eq 3 1 roll}repeat or or + } + {true}ifelse + currentdict/MatrixPQR known{ + currentdict/MatrixPQR get aload pop + 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll + 0.0 eq 9 1 roll 1.0 eq 9 1 roll 0.0 eq 9 1 roll + 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq + and and and and and and and and + } + {true}ifelse + end + or + { + clonedict begin + /TransformPQR[ + {4 -1 roll 3 get dup 3 1 roll sub 5 -1 roll 3 get 3 -1 roll sub div + 3 -1 roll 3 get 3 -1 roll 3 get dup 4 1 roll sub mul add}bind + {4 -1 roll 4 get dup 3 1 roll sub 5 -1 roll 4 get 3 -1 roll sub div + 3 -1 roll 4 get 3 -1 roll 4 get dup 4 1 roll sub mul add}bind + {4 -1 roll 5 get dup 3 1 roll sub 5 -1 roll 5 get 3 -1 roll sub div + 3 -1 roll 5 get 3 -1 roll 5 get dup 4 1 roll sub mul add}bind + ]def + /MatrixPQR[0.8951 -0.7502 0.0389 0.2664 1.7135 -0.0685 -0.1614 0.0367 1.0296]def + /RangePQR[-0.3227950745 2.3229645538 -1.5003771057 3.5003465881 -0.1369979095 2.136967392]def + currentdict end + }if + setcolorrendering_opt + }if + }if +}def +/set_crd +{ + AGMCORE_host_sep not level2 and{ + currentdict/ColorRendering known{ + ColorRendering/ColorRendering{findresource}stopped not{setcolorrendering_opt}if + }{ + currentdict/Intent known{ + updatecolorrendering + }if + }ifelse + currentcolorspace dup type/arraytype eq + {0 get}if + /DeviceRGB eq + { + currentdict/UCR known + {/UCR}{/AGMCORE_currentucr}ifelse + load setundercolorremoval + currentdict/BG known + {/BG}{/AGMCORE_currentbg}ifelse + load setblackgeneration + }if + }if +}def +/set_ucrbg +{ + dup null eq{pop/AGMCORE_currentbg load}{/Procedure get_res}ifelse setblackgeneration + dup null eq{pop/AGMCORE_currentucr load}{/Procedure get_res}ifelse setundercolorremoval +}def +/setcolorrendering_opt +{ + dup currentcolorrendering eq{ + pop + }{ + product(HP Color LaserJet 2605)anchorsearch{ + pop pop pop + }{ + pop + clonedict + begin + /Intent Intent def + currentdict + end + setcolorrendering + }ifelse + }ifelse +}def +/cpaint_gcomp +{ + convert_to_process//Adobe_AGM_Core/AGMCORE_ConvertToProcess xddf + //Adobe_AGM_Core/AGMCORE_ConvertToProcess get not + { + (%end_cpaint_gcomp)flushinput + }if +}def +/cpaint_gsep +{ + //Adobe_AGM_Core/AGMCORE_ConvertToProcess get + { + (%end_cpaint_gsep)flushinput + }if +}def +/cpaint_gend +{np}def +/T1_path +{ + currentfile token pop currentfile token pop mo + { + currentfile token pop dup type/stringtype eq + {pop exit}if + 0 exch rlineto + currentfile token pop dup type/stringtype eq + {pop exit}if + 0 rlineto + }loop +}def +/T1_gsave + level3 + {/clipsave} + {/gsave}ifelse + load def +/T1_grestore + level3 + {/cliprestore} + {/grestore}ifelse + load def +/set_spot_alias_ary +{ + dup inherit_aliases + //Adobe_AGM_Core/AGMCORE_SpotAliasAry xddf +}def +/set_spot_normalization_ary +{ + dup inherit_aliases + dup length + /AGMCORE_SpotAliasAry where{pop AGMCORE_SpotAliasAry length add}if + array + //Adobe_AGM_Core/AGMCORE_SpotAliasAry2 xddf + /AGMCORE_SpotAliasAry where{ + pop + AGMCORE_SpotAliasAry2 0 AGMCORE_SpotAliasAry putinterval + AGMCORE_SpotAliasAry length + }{0}ifelse + AGMCORE_SpotAliasAry2 3 1 roll exch putinterval + true set_spot_alias +}def +/inherit_aliases +{ + {dup/Name get map_alias{/CSD put}{pop}ifelse}forall +}def +/set_spot_alias +{ + /AGMCORE_SpotAliasAry2 where{ + /AGMCORE_current_spot_alias 3 -1 roll put + }{ + pop + }ifelse +}def +/current_spot_alias +{ + /AGMCORE_SpotAliasAry2 where{ + /AGMCORE_current_spot_alias get + }{ + false + }ifelse +}def +/map_alias +{ + /AGMCORE_SpotAliasAry2 where{ + begin + /AGMCORE_name xdf + false + AGMCORE_SpotAliasAry2{ + dup/Name get AGMCORE_name eq{ + /CSD get/CSD get_res + exch pop true + exit + }{ + pop + }ifelse + }forall + end + }{ + pop false + }ifelse +}bdf +/spot_alias +{ + true set_spot_alias + /AGMCORE_&setcustomcolor AGMCORE_key_known not{ + //Adobe_AGM_Core/AGMCORE_&setcustomcolor/setcustomcolor load put + }if + /customcolor_tint 1 AGMCORE_gput + //Adobe_AGM_Core begin + /setcustomcolor + { + //Adobe_AGM_Core begin + dup/customcolor_tint exch AGMCORE_gput + 1 index aload pop pop 1 eq exch 1 eq and exch 1 eq and exch 1 eq and not + current_spot_alias and{1 index 4 get map_alias}{false}ifelse + { + false set_spot_alias + /sep_colorspace_dict AGMCORE_gget null ne + {/sep_colorspace_dict AGMCORE_gget/ForeignContent known not}{false}ifelse + 3 1 roll 2 index{ + exch pop/sep_tint AGMCORE_gget exch + }if + mark 3 1 roll + setsepcolorspace + counttomark 0 ne{ + setsepcolor + }if + pop + not{/sep_tint 1.0 AGMCORE_gput/sep_colorspace_dict AGMCORE_gget/ForeignContent true put}if + pop + true set_spot_alias + }{ + AGMCORE_&setcustomcolor + }ifelse + end + }bdf + end +}def +/begin_feature +{ + Adobe_AGM_Core/AGMCORE_feature_dictCount countdictstack put + count Adobe_AGM_Core/AGMCORE_feature_opCount 3 -1 roll put + {Adobe_AGM_Core/AGMCORE_feature_ctm matrix currentmatrix put}if +}def +/end_feature +{ + 2 dict begin + /spd/setpagedevice load def + /setpagedevice{get_gstate spd set_gstate}def + stopped{$error/newerror false put}if + end + count Adobe_AGM_Core/AGMCORE_feature_opCount get sub dup 0 gt{{pop}repeat}{pop}ifelse + countdictstack Adobe_AGM_Core/AGMCORE_feature_dictCount get sub dup 0 gt{{end}repeat}{pop}ifelse + {Adobe_AGM_Core/AGMCORE_feature_ctm get setmatrix}if +}def +/set_negative +{ + //Adobe_AGM_Core begin + /AGMCORE_inverting exch def + level2{ + currentpagedevice/NegativePrint known AGMCORE_distilling not and{ + currentpagedevice/NegativePrint get//Adobe_AGM_Core/AGMCORE_inverting get ne{ + true begin_feature true{ + <>setpagedevice + }end_feature + }if + /AGMCORE_inverting false def + }if + }if + AGMCORE_inverting{ + [{1 exch sub}/exec load dup currenttransfer exch]cvx bind settransfer + AGMCORE_distilling{ + erasepage + }{ + gsave np clippath 1/setseparationgray where{pop setseparationgray}{setgray}ifelse + /AGMIRS_&fill where{pop AGMIRS_&fill}{fill}ifelse grestore + }ifelse + }if + end +}def +/lw_save_restore_override{ + /md where{ + pop + md begin + initializepage + /initializepage{}def + /pmSVsetup{}def + /endp{}def + /pse{}def + /psb{}def + /orig_showpage where + {pop} + {/orig_showpage/showpage load def} + ifelse + /showpage{orig_showpage gR}def + end + }if +}def +/pscript_showpage_override{ + /NTPSOct95 where + { + begin + showpage + save + /showpage/restore load def + /restore{exch pop}def + end + }if +}def +/driver_media_override +{ + /md where{ + pop + md/initializepage known{ + md/initializepage{}put + }if + md/rC known{ + md/rC{4{pop}repeat}put + }if + }if + /mysetup where{ + /mysetup[1 0 0 1 0 0]put + }if + Adobe_AGM_Core/AGMCORE_Default_CTM matrix currentmatrix put + level2 + {Adobe_AGM_Core/AGMCORE_Default_PageSize currentpagedevice/PageSize get put}if +}def +/capture_mysetup +{ + /Pscript_Win_Data where{ + pop + Pscript_Win_Data/mysetup known{ + Adobe_AGM_Core/save_mysetup Pscript_Win_Data/mysetup get put + }if + }if +}def +/restore_mysetup +{ + /Pscript_Win_Data where{ + pop + Pscript_Win_Data/mysetup known{ + Adobe_AGM_Core/save_mysetup known{ + Pscript_Win_Data/mysetup Adobe_AGM_Core/save_mysetup get put + Adobe_AGM_Core/save_mysetup undef + }if + }if + }if +}def +/driver_check_media_override +{ + /PrepsDict where + {pop} + { + Adobe_AGM_Core/AGMCORE_Default_CTM get matrix currentmatrix ne + Adobe_AGM_Core/AGMCORE_Default_PageSize get type/arraytype eq + { + Adobe_AGM_Core/AGMCORE_Default_PageSize get 0 get currentpagedevice/PageSize get 0 get eq and + Adobe_AGM_Core/AGMCORE_Default_PageSize get 1 get currentpagedevice/PageSize get 1 get eq and + }if + { + Adobe_AGM_Core/AGMCORE_Default_CTM get setmatrix + }if + }ifelse +}def +AGMCORE_err_strings begin + /AGMCORE_bad_environ(Environment not satisfactory for this job. Ensure that the PPD is correct or that the PostScript level requested is supported by this printer. )def + /AGMCORE_color_space_onhost_seps(This job contains colors that will not separate with on-host methods. )def + /AGMCORE_invalid_color_space(This job contains an invalid color space. )def +end +/set_def_ht +{AGMCORE_def_ht sethalftone}def +/set_def_flat +{AGMCORE_Default_flatness setflat}def +end +systemdict/setpacking known +{setpacking}if +%%EndResource +%%BeginResource: procset Adobe_CoolType_Core 2.31 0 %%Copyright: Copyright 1997-2006 Adobe Systems Incorporated. All Rights Reserved. %%Version: 2.31 0 10 dict begin /Adobe_CoolType_Passthru currentdict def /Adobe_CoolType_Core_Defined userdict/Adobe_CoolType_Core known def Adobe_CoolType_Core_Defined {/Adobe_CoolType_Core userdict/Adobe_CoolType_Core get def} if userdict/Adobe_CoolType_Core 70 dict dup begin put /Adobe_CoolType_Version 2.31 def /Level2? systemdict/languagelevel known dup {pop systemdict/languagelevel get 2 ge} if def Level2? not { /currentglobal false def /setglobal/pop load def /gcheck{pop false}bind def /currentpacking false def /setpacking/pop load def /SharedFontDirectory 0 dict def } if currentpacking true setpacking currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def end setglobal currentglobal true setglobal userdict/Adobe_CoolType_GVMFonts known not {userdict/Adobe_CoolType_GVMFonts 10 dict put} if setglobal currentglobal false setglobal userdict/Adobe_CoolType_LVMFonts known not {userdict/Adobe_CoolType_LVMFonts 10 dict put} if setglobal /ct_VMDictPut { dup gcheck{Adobe_CoolType_GVMFonts}{Adobe_CoolType_LVMFonts}ifelse 3 1 roll put }bind def /ct_VMDictUndef { dup Adobe_CoolType_GVMFonts exch known {Adobe_CoolType_GVMFonts exch undef} { dup Adobe_CoolType_LVMFonts exch known {Adobe_CoolType_LVMFonts exch undef} {pop} ifelse }ifelse }bind def /ct_str1 1 string def /ct_xshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_yshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 exch rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_xyshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { {_ct_na _ct_i 1 add get}stopped {pop pop pop} { _ct_x _ct_y moveto rmoveto } ifelse } ifelse /_ct_i _ct_i 2 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /xsh{{@xshow}stopped{Adobe_CoolType_Data begin ct_xshow end}if}bind def /ysh{{@yshow}stopped{Adobe_CoolType_Data begin ct_yshow end}if}bind def /xysh{{@xyshow}stopped{Adobe_CoolType_Data begin ct_xyshow end}if}bind def currentglobal true setglobal /ct_T3Defs { /BuildChar { 1 index/Encoding get exch get 1 index/BuildGlyph get exec }bind def /BuildGlyph { exch begin GlyphProcs exch get exec end }bind def }bind def setglobal /@_SaveStackLevels { Adobe_CoolType_Data begin /@vmState currentglobal def false setglobal @opStackCountByLevel @opStackLevel 2 copy known not { 2 copy 3 dict dup/args 7 index 5 add array put put get } { get dup/args get dup length 3 index lt { dup length 5 add array exch 1 index exch 0 exch putinterval 1 index exch/args exch put } {pop} ifelse } ifelse begin count 1 sub 1 index lt {pop count} if dup/argCount exch def dup 0 gt { args exch 0 exch getinterval astore pop } {pop} ifelse count /restCount exch def end /@opStackLevel @opStackLevel 1 add def countdictstack 1 sub @dictStackCountByLevel exch @dictStackLevel exch put /@dictStackLevel @dictStackLevel 1 add def @vmState setglobal end }bind def /@_RestoreStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def @opStackCountByLevel @opStackLevel get begin count restCount sub dup 0 gt {{pop}repeat} {pop} ifelse args 0 argCount getinterval{}forall end /@dictStackLevel @dictStackLevel 1 sub def @dictStackCountByLevel @dictStackLevel get end countdictstack exch sub dup 0 gt {{end}repeat} {pop} ifelse }bind def /@_PopStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def /@dictStackLevel @dictStackLevel 1 sub def end }bind def /@Raise { exch cvx exch errordict exch get exec stop }bind def /@ReRaise { cvx $error/errorname get errordict exch get exec stop }bind def /@Stopped { 0 @#Stopped }bind def /@#Stopped { @_SaveStackLevels stopped {@_RestoreStackLevels true} {@_PopStackLevels false} ifelse }bind def /@Arg { Adobe_CoolType_Data begin @opStackCountByLevel @opStackLevel 1 sub get begin args exch argCount 1 sub exch sub get end end }bind def currentglobal true setglobal /CTHasResourceForAllBug Level2? { 1 dict dup /@shouldNotDisappearDictValue true def Adobe_CoolType_Data exch/@shouldNotDisappearDict exch put begin count @_SaveStackLevels {(*){pop stop}128 string/Category resourceforall} stopped pop @_RestoreStackLevels currentdict Adobe_CoolType_Data/@shouldNotDisappearDict get dup 3 1 roll ne dup 3 1 roll { /@shouldNotDisappearDictValue known { { end currentdict 1 index eq {pop exit} if } loop } if } { pop end } ifelse } {false} ifelse def true setglobal /CTHasResourceStatusBug Level2? { mark {/steveamerige/Category resourcestatus} stopped {cleartomark true} {cleartomark currentglobal not} ifelse } {false} ifelse def setglobal /CTResourceStatus { mark 3 1 roll /Category findresource begin ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse end }bind def /CTWorkAroundBugs { Level2? { /cid_PreLoad/ProcSet resourcestatus { pop pop currentglobal mark { (*) { dup/CMap CTHasResourceStatusBug {CTResourceStatus} {resourcestatus} ifelse { pop dup 0 eq exch 1 eq or { dup/CMap findresource gcheck setglobal /CMap undefineresource } { pop CTHasResourceForAllBug {exit} {stop} ifelse } ifelse } {pop} ifelse } 128 string/CMap resourceforall } stopped {cleartomark} stopped pop setglobal } if } if }bind def /ds { Adobe_CoolType_Core begin CTWorkAroundBugs /mo/moveto load def /nf/newencodedfont load def /msf{makefont setfont}bind def /uf{dup undefinefont ct_VMDictUndef}bind def /ur/undefineresource load def /chp/charpath load def /awsh/awidthshow load def /wsh/widthshow load def /ash/ashow load def /@xshow/xshow load def /@yshow/yshow load def /@xyshow/xyshow load def /@cshow/cshow load def /sh/show load def /rp/repeat load def /.n/.notdef def end currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /AddWidths? false def /CC 0 def /charcode 2 string def /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def /InVMFontsByCMap 10 dict def /InVMDeepCopiedFonts 10 dict def end setglobal }bind def /dt { currentdict Adobe_CoolType_Core eq {end} if }bind def /ps { Adobe_CoolType_Core begin Adobe_CoolType_GVMFonts begin Adobe_CoolType_LVMFonts begin SharedFontDirectory begin }bind def /pt { end end end end }bind def /unload { systemdict/languagelevel known { systemdict/languagelevel get 2 ge { userdict/Adobe_CoolType_Core 2 copy known {undef} {pop pop} ifelse } if } if }bind def /ndf { 1 index where {pop pop pop} {dup xcheck{bind}if def} ifelse }def /findfont systemdict begin userdict begin /globaldict where{/globaldict get begin}if dup where pop exch get /globaldict where{pop end}if end end Adobe_CoolType_Core_Defined {/systemfindfont exch def} { /findfont 1 index def /systemfindfont exch def } ifelse /undefinefont {pop}ndf /copyfont { currentglobal 3 1 roll 1 index gcheck setglobal dup null eq{0}{dup length}ifelse 2 index length add 1 add dict begin exch { 1 index/FID eq {pop pop} {def} ifelse } forall dup null eq {pop} {{def}forall} ifelse currentdict end exch setglobal }bind def /copyarray { currentglobal exch dup gcheck setglobal dup length array copy exch setglobal }bind def /newencodedfont { currentglobal { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } { FontDirectory 3 index known {FontDirectory 3 index get/FontReferenced known} { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } ifelse } ifelse dup { 3 index findfont/FontReferenced get 2 index dup type/nametype eq {findfont} if ne {pop false} if } if dup { 1 index dup type/nametype eq {findfont} if dup/CharStrings known { /CharStrings get length 4 index findfont/CharStrings get length ne { pop false } if } {pop} ifelse } if { pop 1 index findfont /Encoding get exch 0 1 255 {2 copy get 3 index 3 1 roll put} for pop pop pop } { currentglobal 4 1 roll dup type/nametype eq {findfont} if dup gcheck setglobal dup dup maxlength 2 add dict begin exch { 1 index/FID ne 2 index/Encoding ne and {def} {pop pop} ifelse } forall /FontReferenced exch def /Encoding exch dup length array copy def /FontName 1 index dup type/stringtype eq{cvn}if def dup currentdict end definefont ct_VMDictPut setglobal } ifelse }bind def /SetSubstituteStrategy { $SubstituteFont begin dup type/dicttype ne {0 dict} if currentdict/$Strategies known { exch $Strategies exch 2 copy known { get 2 copy maxlength exch maxlength add dict begin {def}forall {def}forall currentdict dup/$Init known {dup/$Init get exec} if end /$Strategy exch def } {pop pop pop} ifelse } {pop pop} ifelse end }bind def /scff { $SubstituteFont begin dup type/stringtype eq {dup length exch} {null} ifelse /$sname exch def /$slen exch def /$inVMIndex $sname null eq { 1 index $str cvs dup length $slen sub $slen getinterval cvn } {$sname} ifelse def end {findfont} @Stopped { dup length 8 add string exch 1 index 0(BadFont:)putinterval 1 index exch 8 exch dup length string cvs putinterval cvn {findfont} @Stopped {pop/Courier findfont} if } if $SubstituteFont begin /$sname null def /$slen 0 def /$inVMIndex null def end }bind def /isWidthsOnlyFont { dup/WidthsOnly known {pop pop true} { dup/FDepVector known {/FDepVector get{isWidthsOnlyFont dup{exit}if}forall} { dup/FDArray known {/FDArray get{isWidthsOnlyFont dup{exit}if}forall} {pop} ifelse } ifelse } ifelse }bind def /ct_StyleDicts 4 dict dup begin /Adobe-Japan1 4 dict dup begin Level2? { /Serif /HeiseiMin-W3-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMin-W3} { /CIDFont/Category resourcestatus { pop pop /HeiseiMin-W3/CIDFont resourcestatus {pop pop/HeiseiMin-W3} {/Ryumin-Light} ifelse } {/Ryumin-Light} ifelse } ifelse def /SansSerif /HeiseiKakuGo-W5-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiKakuGo-W5} { /CIDFont/Category resourcestatus { pop pop /HeiseiKakuGo-W5/CIDFont resourcestatus {pop pop/HeiseiKakuGo-W5} {/GothicBBB-Medium} ifelse } {/GothicBBB-Medium} ifelse } ifelse def /HeiseiMaruGo-W4-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMaruGo-W4} { /CIDFont/Category resourcestatus { pop pop /HeiseiMaruGo-W4/CIDFont resourcestatus {pop pop/HeiseiMaruGo-W4} { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } ifelse /RoundSansSerif exch def /Default Serif def } { /Serif/Ryumin-Light def /SansSerif/GothicBBB-Medium def { (fonts/Jun101-Light-83pv-RKSJ-H)status }stopped {pop}{ {pop pop pop pop/Jun101-Light} {SansSerif} ifelse /RoundSansSerif exch def }ifelse /Default Serif def } ifelse end def /Adobe-Korea1 4 dict dup begin /Serif/HYSMyeongJo-Medium def /SansSerif/HYGoThic-Medium def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-GB1 4 dict dup begin /Serif/STSong-Light def /SansSerif/STHeiti-Regular def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-CNS1 4 dict dup begin /Serif/MKai-Medium def /SansSerif/MHei-Medium def /RoundSansSerif SansSerif def /Default Serif def end def end def Level2?{currentglobal true setglobal}if /ct_BoldRomanWidthProc { stringwidth 1 index 0 ne{exch .03 add exch}if setcharwidth 0 0 }bind def /ct_Type0WidthProc { dup stringwidth 0 0 moveto 2 index true charpath pathbbox 0 -1 7 index 2 div .88 setcachedevice2 pop 0 0 }bind def /ct_Type0WMode1WidthProc { dup stringwidth pop 2 div neg -0.88 2 copy moveto 0 -1 5 -1 roll true charpath pathbbox setcachedevice }bind def /cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_BoldBaseFont 11 dict begin /FontType 3 def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /Encoding cHexEncoding def /_setwidthProc/ct_BoldRomanWidthProc load def /_bcstr1 1 string def /BuildChar { exch begin _basefont setfont _bcstr1 dup 0 4 -1 roll put dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def systemdict/composefont known { /ct_DefineIdentity-H { /Identity-H/CMap resourcestatus { pop pop } { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse } def /ct_BoldBaseCIDFont 11 dict begin /CIDFontType 1 def /CIDFontName/ct_BoldBaseCIDFont def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /_setwidthProc/ct_Type0WidthProc load def /_bcstr2 2 string def /BuildGlyph { exch begin _basefont setfont _bcstr2 1 2 index 256 mod put _bcstr2 0 3 -1 roll 256 idiv put _bcstr2 dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def }if Level2?{setglobal}if /ct_CopyFont{ { 1 index/FID ne 2 index/UniqueID ne and {def}{pop pop}ifelse }forall }bind def /ct_Type0CopyFont { exch dup length dict begin ct_CopyFont [ exch FDepVector { dup/FontType get 0 eq { 1 index ct_Type0CopyFont /_ctType0 exch definefont } { /_ctBaseFont exch 2 index exec } ifelse exch } forall pop ] /FDepVector exch def currentdict end }bind def /ct_MakeBoldFont { dup/ct_SyntheticBold known { dup length 3 add dict begin ct_CopyFont /ct_StrokeWidth .03 0 FontMatrix idtransform pop def /ct_SyntheticBold true def currentdict end definefont } { dup dup length 3 add dict begin ct_CopyFont /PaintType 2 def /StrokeWidth .03 0 FontMatrix idtransform pop def /dummybold currentdict end definefont dup/FontType get dup 9 ge exch 11 le and { ct_BoldBaseCIDFont dup length 3 add dict copy begin dup/CIDSystemInfo get/CIDSystemInfo exch def ct_DefineIdentity-H /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefont exch def /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefonto exch def currentdict end /CIDFont defineresource } { ct_BoldBaseFont dup length 3 add dict copy begin /_basefont exch def /_basefonto exch def currentdict end definefont } ifelse } ifelse }bind def /ct_MakeBold{ 1 index 1 index findfont currentglobal 5 1 roll dup gcheck setglobal dup /FontType get 0 eq { dup/WMode known{dup/WMode get 1 eq}{false}ifelse version length 4 ge and {version 0 4 getinterval cvi 2015 ge} {true} ifelse {/ct_Type0WidthProc} {/ct_Type0WMode1WidthProc} ifelse ct_BoldBaseFont/_setwidthProc 3 -1 roll load put {ct_MakeBoldFont}ct_Type0CopyFont definefont } { dup/_fauxfont known not 1 index/SubstMaster known not and { ct_BoldBaseFont/_setwidthProc /ct_BoldRomanWidthProc load put ct_MakeBoldFont } { 2 index 2 index eq {exch pop } { dup length dict begin ct_CopyFont currentdict end definefont } ifelse } ifelse } ifelse pop pop pop setglobal }bind def /?str1 256 string def /?set { $SubstituteFont begin /$substituteFound false def /$fontname 1 index def /$doSmartSub false def end dup findfont $SubstituteFont begin $substituteFound {false} { dup/FontName known { dup/FontName get $fontname eq 1 index/DistillerFauxFont known not and /currentdistillerparams where {pop false 2 index isWidthsOnlyFont not and} if } {false} ifelse } ifelse exch pop /$doSmartSub true def end { 5 1 roll pop pop pop pop findfont } { 1 index findfont dup/FontType get 3 eq { 6 1 roll pop pop pop pop pop false } {pop true} ifelse { $SubstituteFont begin pop pop /$styleArray 1 index def /$regOrdering 2 index def pop pop 0 1 $styleArray length 1 sub { $styleArray exch get ct_StyleDicts $regOrdering 2 copy known { get exch 2 copy known not {pop/Default} if get dup type/nametype eq { ?str1 cvs length dup 1 add exch ?str1 exch(-)putinterval exch dup length exch ?str1 exch 3 index exch putinterval add ?str1 exch 0 exch getinterval cvn } { pop pop/Unknown } ifelse } { pop pop pop pop/Unknown } ifelse } for end findfont }if } ifelse currentglobal false setglobal 3 1 roll null copyfont definefont pop setglobal }bind def setpacking userdict/$SubstituteFont 25 dict put 1 dict begin /SubstituteFont dup $error exch 2 copy known {get} {pop pop{pop/Courier}bind} ifelse def /currentdistillerparams where dup { pop pop currentdistillerparams/CannotEmbedFontPolicy 2 copy known {get/Error eq} {pop pop false} ifelse } if not { countdictstack array dictstack 0 get begin userdict begin $SubstituteFont begin /$str 128 string def /$fontpat 128 string def /$slen 0 def /$sname null def /$match false def /$fontname null def /$substituteFound false def /$inVMIndex null def /$doSmartSub true def /$depth 0 def /$fontname null def /$italicangle 26.5 def /$dstack null def /$Strategies 10 dict dup begin /$Type3Underprint { currentglobal exch false setglobal 11 dict begin /UseFont exch $WMode 0 ne { dup length dict copy dup/WMode $WMode put /UseFont exch definefont } if def /FontName $fontname dup type/stringtype eq{cvn}if def /FontType 3 def /FontMatrix[.001 0 0 .001 0 0]def /Encoding 256 array dup 0 1 255{/.notdef put dup}for pop def /FontBBox[0 0 0 0]def /CCInfo 7 dict dup begin /cc null def /x 0 def /y 0 def end def /BuildChar { exch begin CCInfo begin 1 string dup 0 3 index put exch pop /cc exch def UseFont 1000 scalefont setfont cc stringwidth/y exch def/x exch def x y setcharwidth $SubstituteFont/$Strategy get/$Underprint get exec 0 0 moveto cc show x y moveto end end }bind def currentdict end exch setglobal }bind def /$GetaTint 2 dict dup begin /$BuildFont { dup/WMode known {dup/WMode get} {0} ifelse /$WMode exch def $fontname exch dup/FontName known { dup/FontName get dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse exch Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index/FontName get known { pop Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index get null copyfont } {$deepcopyfont} ifelse exch 1 index exch/FontBasedOn exch put dup/FontName $fontname dup type/stringtype eq{cvn}if put definefont Adobe_CoolType_Data/InVMDeepCopiedFonts get begin dup/FontBasedOn get 1 index def end }bind def /$Underprint { gsave x abs y abs gt {/y 1000 def} {/x -1000 def 500 120 translate} ifelse Level2? { [/Separation(All)/DeviceCMYK{0 0 0 1 pop}] setcolorspace } {0 setgray} ifelse 10 setlinewidth x .8 mul [7 3] { y mul 8 div 120 sub x 10 div exch moveto 0 y 4 div neg rlineto dup 0 rlineto 0 y 4 div rlineto closepath gsave Level2? {.2 setcolor} {.8 setgray} ifelse fill grestore stroke } forall pop grestore }bind def end def /$Oblique 1 dict dup begin /$BuildFont { currentglobal exch dup gcheck setglobal null copyfont begin /FontBasedOn currentdict/FontName known { FontName dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse def /FontName $fontname dup type/stringtype eq{cvn}if def /currentdistillerparams where {pop} { /FontInfo currentdict/FontInfo known {FontInfo null copyfont} {2 dict} ifelse dup begin /ItalicAngle $italicangle def /FontMatrix FontMatrix [1 0 ItalicAngle dup sin exch cos div 1 0 0] matrix concatmatrix readonly end 4 2 roll def def } ifelse FontName currentdict end definefont exch setglobal }bind def end def /$None 1 dict dup begin /$BuildFont{}bind def end def end def /$Oblique SetSubstituteStrategy /$findfontByEnum { dup type/stringtype eq{cvn}if dup/$fontname exch def $sname null eq {$str cvs dup length $slen sub $slen getinterval} {pop $sname} ifelse $fontpat dup 0(fonts/*)putinterval exch 7 exch putinterval /$match false def $SubstituteFont/$dstack countdictstack array dictstack put mark { $fontpat 0 $slen 7 add getinterval {/$match exch def exit} $str filenameforall } stopped { cleardictstack currentdict true $SubstituteFont/$dstack get { exch { 1 index eq {pop false} {true} ifelse } {begin false} ifelse } forall pop } if cleartomark /$slen 0 def $match false ne {$match(fonts/)anchorsearch pop pop cvn} {/Courier} ifelse }bind def /$ROS 1 dict dup begin /Adobe 4 dict dup begin /Japan1 [/Ryumin-Light/HeiseiMin-W3 /GothicBBB-Medium/HeiseiKakuGo-W5 /HeiseiMaruGo-W4/Jun101-Light]def /Korea1 [/HYSMyeongJo-Medium/HYGoThic-Medium]def /GB1 [/STSong-Light/STHeiti-Regular]def /CNS1 [/MKai-Medium/MHei-Medium]def end def end def /$cmapname null def /$deepcopyfont { dup/FontType get 0 eq { 1 dict dup/FontName/copied put copyfont begin /FDepVector FDepVector copyarray 0 1 2 index length 1 sub { 2 copy get $deepcopyfont dup/FontName/copied put /copied exch definefont 3 copy put pop pop } for def currentdict end } {$Strategies/$Type3Underprint get exec} ifelse }bind def /$buildfontname { dup/CIDFont findresource/CIDSystemInfo get begin Registry length Ordering length Supplement 8 string cvs 3 copy length 2 add add add string dup 5 1 roll dup 0 Registry putinterval dup 4 index(-)putinterval dup 4 index 1 add Ordering putinterval 4 2 roll add 1 add 2 copy(-)putinterval end 1 add 2 copy 0 exch getinterval $cmapname $fontpat cvs exch anchorsearch {pop pop 3 2 roll putinterval cvn/$cmapname exch def} {pop pop pop pop pop} ifelse length $str 1 index(-)putinterval 1 add $str 1 index $cmapname $fontpat cvs putinterval $cmapname length add $str exch 0 exch getinterval cvn }bind def /$findfontByROS { /$fontname exch def $ROS Registry 2 copy known { get Ordering 2 copy known {get} {pop pop[]} ifelse } {pop pop[]} ifelse false exch { dup/CIDFont resourcestatus { pop pop save 1 index/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get} {false} ifelse exch pop exch restore {pop} {exch pop true exit} ifelse } {pop} ifelse } forall {$str cvs $buildfontname} { false(*) { save exch dup/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get not} {true} ifelse exch/CIDSystemInfo get dup/Registry get Registry eq exch/Ordering get Ordering eq and and {exch restore exch pop true exit} {pop restore} ifelse } $str/CIDFont resourceforall {$buildfontname} {$fontname $findfontByEnum} ifelse } ifelse }bind def end end currentdict/$error known currentdict/languagelevel known and dup {pop $error/SubstituteFont known} if dup {$error} {Adobe_CoolType_Core} ifelse begin { /SubstituteFont /CMap/Category resourcestatus { pop pop { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and { $sname null eq {dup $str cvs dup length $slen sub $slen getinterval cvn} {$sname} ifelse Adobe_CoolType_Data/InVMFontsByCMap get 1 index 2 copy known { get false exch { pop currentglobal { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } { FontDirectory 1 index known {exch pop true exit} { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } ifelse } ifelse } forall } {pop pop false} ifelse { exch pop exch pop } { dup/CMap resourcestatus { pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS } { 128 string cvs dup(-)search { 3 1 roll search { 3 1 roll pop {dup cvi} stopped {pop pop pop pop pop $findfontByEnum} { 4 2 roll pop pop exch length exch 2 index length 2 index sub exch 1 sub -1 0 { $str cvs dup length 4 index 0 4 index 4 3 roll add getinterval exch 1 index exch 3 index exch putinterval dup/CMap resourcestatus { pop pop 4 1 roll pop pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS true exit } {pop} ifelse } for dup type/booleantype eq {pop} {pop pop pop $findfontByEnum} ifelse } ifelse } {pop pop pop $findfontByEnum} ifelse } {pop pop $findfontByEnum} ifelse } ifelse } ifelse } {//SubstituteFont exec} ifelse /$slen 0 def end } } { { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and {$findfontByEnum} {//SubstituteFont exec} ifelse end } } ifelse bind readonly def Adobe_CoolType_Core/scfindfont/systemfindfont load put } { /scfindfont { $SubstituteFont begin dup systemfindfont dup/FontName known {dup/FontName get dup 3 index ne} {/noname true} ifelse dup { /$origfontnamefound 2 index def /$origfontname 4 index def/$substituteFound true def } if exch pop { $slen 0 gt $sname null ne 3 index length $slen gt or and { pop dup $findfontByEnum findfont dup maxlength 1 add dict begin {1 index/FID eq{pop pop}{def}ifelse} forall currentdict end definefont dup/FontName known{dup/FontName get}{null}ifelse $origfontnamefound ne { $origfontname $str cvs print ( substitution revised, using )print dup/FontName known {dup/FontName get}{(unspecified font)} ifelse $str cvs print(.\n)print } if } {exch pop} ifelse } {exch pop} ifelse end }bind def } ifelse end end Adobe_CoolType_Core_Defined not { Adobe_CoolType_Core/findfont { $SubstituteFont begin $depth 0 eq { /$fontname 1 index dup type/stringtype ne{$str cvs}if def /$substituteFound false def } if /$depth $depth 1 add def end scfindfont $SubstituteFont begin /$depth $depth 1 sub def $substituteFound $depth 0 eq and { $inVMIndex null ne {dup $inVMIndex $AddInVMFont} if $doSmartSub { currentdict/$Strategy known {$Strategy/$BuildFont get exec} if } if } if end }bind put } if } if end /$AddInVMFont { exch/FontName 2 copy known { get 1 dict dup begin exch 1 index gcheck def end exch Adobe_CoolType_Data/InVMFontsByCMap get exch $DictAdd } {pop pop pop} ifelse }bind def /$DictAdd { 2 copy known not {2 copy 4 index length dict put} if Level2? not { 2 copy get dup maxlength exch length 4 index length add lt 2 copy get dup length 4 index length add exch maxlength 1 index lt { 2 mul dict begin 2 copy get{forall}def 2 copy currentdict put end } {pop} ifelse } if get begin {def} forall end }bind def end end %%EndResource currentglobal true setglobal %%BeginResource: procset Adobe_CoolType_Utility_MAKEOCF 1.23 0 %%Copyright: Copyright 1987-2006 Adobe Systems Incorporated. %%Version: 1.23 0 systemdict/languagelevel known dup {currentglobal false setglobal} {false} ifelse exch userdict/Adobe_CoolType_Utility 2 copy known {2 copy get dup maxlength 27 add dict copy} {27 dict} ifelse put Adobe_CoolType_Utility begin /@eexecStartData def /@recognizeCIDFont null def /ct_Level2? exch def /ct_Clone? 1183615869 internaldict dup /CCRun known not exch/eCCRun known not ct_Level2? and or def ct_Level2? {globaldict begin currentglobal true setglobal} if /ct_AddStdCIDMap ct_Level2? {{ mark Adobe_CoolType_Utility/@recognizeCIDFont currentdict put { ((Hex)57 StartData 0615 1e27 2c39 1c60 d8a8 cc31 fe2b f6e0 7aa3 e541 e21c 60d8 a8c9 c3d0 6d9e 1c60 d8a8 c9c2 02d7 9a1c 60d8 a849 1c60 d8a8 cc36 74f4 1144 b13b 77)0()/SubFileDecode filter cvx exec } stopped { cleartomark Adobe_CoolType_Utility/@recognizeCIDFont get countdictstack dup array dictstack exch 1 sub -1 0 { 2 copy get 3 index eq {1 index length exch sub 1 sub{end}repeat exit} {pop} ifelse } for pop pop Adobe_CoolType_Utility/@eexecStartData get eexec } {cleartomark} ifelse }} {{ Adobe_CoolType_Utility/@eexecStartData get eexec }} ifelse bind def userdict/cid_extensions known dup{cid_extensions/cid_UpdateDB known and}if { cid_extensions begin /cid_GetCIDSystemInfo { 1 index type/stringtype eq {exch cvn exch} if cid_extensions begin dup load 2 index known { 2 copy cid_GetStatusInfo dup null ne { 1 index load 3 index get dup null eq {pop pop cid_UpdateDB} { exch 1 index/Created get eq {exch pop exch pop} {pop cid_UpdateDB} ifelse } ifelse } {pop cid_UpdateDB} ifelse } {cid_UpdateDB} ifelse end }bind def end } if ct_Level2? {end setglobal} if /ct_UseNativeCapability? systemdict/composefont known def /ct_MakeOCF 35 dict def /ct_Vars 25 dict def /ct_GlyphDirProcs 6 dict def /ct_BuildCharDict 15 dict dup begin /charcode 2 string def /dst_string 1500 string def /nullstring()def /usewidths? true def end def ct_Level2?{setglobal}{pop}ifelse ct_GlyphDirProcs begin /GetGlyphDirectory { systemdict/languagelevel known {pop/CIDFont findresource/GlyphDirectory get} { 1 index/CIDFont findresource/GlyphDirectory get dup type/dicttype eq { dup dup maxlength exch length sub 2 index lt { dup length 2 index add dict copy 2 index /CIDFont findresource/GlyphDirectory 2 index put } if } if exch pop exch pop } ifelse + }def /+ { systemdict/languagelevel known { currentglobal false setglobal 3 dict begin /vm exch def } {1 dict begin} ifelse /$ exch def systemdict/languagelevel known { vm setglobal /gvm currentglobal def $ gcheck setglobal } if ?{$ begin}if }def /?{$ type/dicttype eq}def /|{ userdict/Adobe_CoolType_Data known { Adobe_CoolType_Data/AddWidths? known { currentdict Adobe_CoolType_Data begin begin AddWidths? { Adobe_CoolType_Data/CC 3 index put ?{def}{$ 3 1 roll put}ifelse CC charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore currentfont/Widths get exch CC exch put } {?{def}{$ 3 1 roll put}ifelse} ifelse end end } {?{def}{$ 3 1 roll put}ifelse} ifelse } {?{def}{$ 3 1 roll put}ifelse} ifelse }def /! { ?{end}if systemdict/languagelevel known {gvm setglobal} if end }def /:{string currentfile exch readstring pop}executeonly def end ct_MakeOCF begin /ct_cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_CID_STR_SIZE 8000 def /ct_mkocfStr100 100 string def /ct_defaultFontMtx[.001 0 0 .001 0 0]def /ct_1000Mtx[1000 0 0 1000 0 0]def /ct_raise{exch cvx exch errordict exch get exec stop}bind def /ct_reraise {cvx $error/errorname get(Error: )print dup( )cvs print errordict exch get exec stop }bind def /ct_cvnsi { 1 index add 1 sub 1 exch 0 4 1 roll { 2 index exch get exch 8 bitshift add } for exch pop }bind def /ct_GetInterval { Adobe_CoolType_Utility/ct_BuildCharDict get begin /dst_index 0 def dup dst_string length gt {dup string/dst_string exch def} if 1 index ct_CID_STR_SIZE idiv /arrayIndex exch def 2 index arrayIndex get 2 index arrayIndex ct_CID_STR_SIZE mul sub { dup 3 index add 2 index length le { 2 index getinterval dst_string dst_index 2 index putinterval length dst_index add/dst_index exch def exit } { 1 index length 1 index sub dup 4 1 roll getinterval dst_string dst_index 2 index putinterval pop dup dst_index add/dst_index exch def sub /arrayIndex arrayIndex 1 add def 2 index dup length arrayIndex gt {arrayIndex get} { pop exit } ifelse 0 } ifelse } loop pop pop pop dst_string 0 dst_index getinterval end }bind def ct_Level2? { /ct_resourcestatus currentglobal mark true setglobal {/unknowninstancename/Category resourcestatus} stopped {cleartomark setglobal true} {cleartomark currentglobal not exch setglobal} ifelse { { mark 3 1 roll/Category findresource begin ct_Vars/vm currentglobal put ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse ct_Vars/vm get setglobal end } } {{resourcestatus}} ifelse bind def /CIDFont/Category ct_resourcestatus {pop pop} { currentglobal true setglobal /Generic/Category findresource dup length dict copy dup/InstanceType/dicttype put /CIDFont exch/Category defineresource pop setglobal } ifelse ct_UseNativeCapability? { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } if } { /ct_Category 2 dict begin /CIDFont 10 dict def /ProcSet 2 dict def currentdict end def /defineresource { ct_Category 1 index 2 copy known { get dup dup maxlength exch length eq { dup length 10 add dict copy ct_Category 2 index 2 index put } if 3 index 3 index put pop exch pop } {pop pop/defineresource/undefined ct_raise} ifelse }bind def /findresource { ct_Category 1 index 2 copy known { get 2 index 2 copy known {get 3 1 roll pop pop} {pop pop/findresource/undefinedresource ct_raise} ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /resourcestatus { ct_Category 1 index 2 copy known { get 2 index known exch pop exch pop { 0 -1 true } { false } ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /ct_resourcestatus/resourcestatus load def } ifelse /ct_CIDInit 2 dict begin /ct_cidfont_stream_init { { dup(Binary)eq { pop null currentfile ct_Level2? { {cid_BYTE_COUNT()/SubFileDecode filter} stopped {pop pop pop} if } if /readstring load exit } if dup(Hex)eq { pop currentfile ct_Level2? { {null exch/ASCIIHexDecode filter/readstring} stopped {pop exch pop(>)exch/readhexstring} if } {(>)exch/readhexstring} ifelse load exit } if /StartData/typecheck ct_raise } loop cid_BYTE_COUNT ct_CID_STR_SIZE le { 2 copy cid_BYTE_COUNT string exch exec pop 1 array dup 3 -1 roll 0 exch put } { cid_BYTE_COUNT ct_CID_STR_SIZE div ceiling cvi dup array exch 2 sub 0 exch 1 exch { 2 copy 5 index ct_CID_STR_SIZE string 6 index exec pop put pop } for 2 index cid_BYTE_COUNT ct_CID_STR_SIZE mod string 3 index exec pop 1 index exch 1 index length 1 sub exch put } ifelse cid_CIDFONT exch/GlyphData exch put 2 index null eq { pop pop pop } { pop/readstring load 1 string exch { 3 copy exec pop dup length 0 eq { pop pop pop pop pop true exit } if 4 index eq { pop pop pop pop false exit } if } loop pop } ifelse }bind def /StartData { mark { currentdict dup/FDArray get 0 get/FontMatrix get 0 get 0.001 eq { dup/CDevProc known not { /CDevProc 1183615869 internaldict/stdCDevProc 2 copy known {get} { pop pop {pop pop pop pop pop 0 -1000 7 index 2 div 880} } ifelse def } if } { /CDevProc { pop pop pop pop pop 0 1 cid_temp/cid_CIDFONT get /FDArray get 0 get /FontMatrix get 0 get div 7 index 2 div 1 index 0.88 mul }def } ifelse /cid_temp 15 dict def cid_temp begin /cid_CIDFONT exch def 3 copy pop dup/cid_BYTE_COUNT exch def 0 gt { ct_cidfont_stream_init FDArray { /Private get dup/SubrMapOffset known { begin /Subrs SubrCount array def Subrs SubrMapOffset SubrCount SDBytes ct_Level2? { currentdict dup/SubrMapOffset undef dup/SubrCount undef /SDBytes undef } if end /cid_SD_BYTES exch def /cid_SUBR_COUNT exch def /cid_SUBR_MAP_OFFSET exch def /cid_SUBRS exch def cid_SUBR_COUNT 0 gt { GlyphData cid_SUBR_MAP_OFFSET cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi 0 1 cid_SUBR_COUNT 1 sub { exch 1 index 1 add cid_SD_BYTES mul cid_SUBR_MAP_OFFSET add GlyphData exch cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi cid_SUBRS 4 2 roll GlyphData exch 4 index 1 index sub ct_GetInterval dup length string copy put } for pop } if } {pop} ifelse } forall } if cleartomark pop pop end CIDFontName currentdict/CIDFont defineresource pop end end } stopped {cleartomark/StartData ct_reraise} if }bind def currentdict end def /ct_saveCIDInit { /CIDInit/ProcSet ct_resourcestatus {true} {/CIDInitC/ProcSet ct_resourcestatus} ifelse { pop pop /CIDInit/ProcSet findresource ct_UseNativeCapability? {pop null} {/CIDInit ct_CIDInit/ProcSet defineresource pop} ifelse } {/CIDInit ct_CIDInit/ProcSet defineresource pop null} ifelse ct_Vars exch/ct_oldCIDInit exch put }bind def /ct_restoreCIDInit { ct_Vars/ct_oldCIDInit get dup null ne {/CIDInit exch/ProcSet defineresource pop} {pop} ifelse }bind def /ct_BuildCharSetUp { 1 index begin CIDFont begin Adobe_CoolType_Utility/ct_BuildCharDict get begin /ct_dfCharCode exch def /ct_dfDict exch def CIDFirstByte ct_dfCharCode add dup CIDCount ge {pop 0} if /cid exch def { GlyphDirectory cid 2 copy known {get} {pop pop nullstring} ifelse dup length FDBytes sub 0 gt { dup FDBytes 0 ne {0 FDBytes ct_cvnsi} {pop 0} ifelse /fdIndex exch def dup length FDBytes sub FDBytes exch getinterval /charstring exch def exit } { pop cid 0 eq {/charstring nullstring def exit} if /cid 0 def } ifelse } loop }def /ct_SetCacheDevice { 0 0 moveto dup stringwidth 3 -1 roll true charpath pathbbox 0 -1000 7 index 2 div 880 setcachedevice2 0 0 moveto }def /ct_CloneSetCacheProc { 1 eq { stringwidth pop -2 div -880 0 -1000 setcharwidth moveto } { usewidths? { currentfont/Widths get cid 2 copy known {get exch pop aload pop} {pop pop stringwidth} ifelse } {stringwidth} ifelse setcharwidth 0 0 moveto } ifelse }def /ct_Type3ShowCharString { ct_FDDict fdIndex 2 copy known {get} { currentglobal 3 1 roll 1 index gcheck setglobal ct_Type1FontTemplate dup maxlength dict copy begin FDArray fdIndex get dup/FontMatrix 2 copy known {get} {pop pop ct_defaultFontMtx} ifelse /FontMatrix exch dup length array copy def /Private get /Private exch def /Widths rootfont/Widths get def /CharStrings 1 dict dup/.notdef dup length string copy put def currentdict end /ct_Type1Font exch definefont dup 5 1 roll put setglobal } ifelse dup/CharStrings get 1 index/Encoding get ct_dfCharCode get charstring put rootfont/WMode 2 copy known {get} {pop pop 0} ifelse exch 1000 scalefont setfont ct_str1 0 ct_dfCharCode put ct_str1 exch ct_dfSetCacheProc ct_SyntheticBold { currentpoint ct_str1 show newpath moveto ct_str1 true charpath ct_StrokeWidth setlinewidth stroke } {ct_str1 show} ifelse }def /ct_Type4ShowCharString { ct_dfDict ct_dfCharCode charstring FDArray fdIndex get dup/FontMatrix get dup ct_defaultFontMtx ct_matrixeq not {ct_1000Mtx matrix concatmatrix concat} {pop} ifelse /Private get Adobe_CoolType_Utility/ct_Level2? get not { ct_dfDict/Private 3 -1 roll {put} 1183615869 internaldict/superexec get exec } if 1183615869 internaldict Adobe_CoolType_Utility/ct_Level2? get {1 index} {3 index/Private get mark 6 1 roll} ifelse dup/RunInt known {/RunInt get} {pop/CCRun} ifelse get exec Adobe_CoolType_Utility/ct_Level2? get not {cleartomark} if }bind def /ct_BuildCharIncremental { { Adobe_CoolType_Utility/ct_MakeOCF get begin ct_BuildCharSetUp ct_ShowCharString } stopped {stop} if end end end end }bind def /BaseFontNameStr(BF00)def /ct_Type1FontTemplate 14 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /PaintType 0 def currentdict end def /BaseFontTemplate 11 dict begin /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /BuildChar/ct_BuildCharIncremental load def ct_Clone? { /FontType 3 def /ct_ShowCharString/ct_Type3ShowCharString load def /ct_dfSetCacheProc/ct_CloneSetCacheProc load def /ct_SyntheticBold false def /ct_StrokeWidth 1 def } { /FontType 4 def /Private 1 dict dup/lenIV 4 put def /CharStrings 1 dict dup/.notdefput def /PaintType 0 def /ct_ShowCharString/ct_Type4ShowCharString load def } ifelse /ct_str1 1 string def currentdict end def /BaseFontDictSize BaseFontTemplate length 5 add def /ct_matrixeq { true 0 1 5 { dup 4 index exch get exch 3 index exch get eq and dup not {exit} if } for exch pop exch pop }bind def /ct_makeocf { 15 dict begin exch/WMode exch def exch/FontName exch def /FontType 0 def /FMapType 2 def dup/FontMatrix known {dup/FontMatrix get/FontMatrix exch def} {/FontMatrix matrix def} ifelse /bfCount 1 index/CIDCount get 256 idiv 1 add dup 256 gt{pop 256}if def /Encoding 256 array 0 1 bfCount 1 sub{2 copy dup put pop}for bfCount 1 255{2 copy bfCount put pop}for def /FDepVector bfCount dup 256 lt{1 add}if array def BaseFontTemplate BaseFontDictSize dict copy begin /CIDFont exch def CIDFont/FontBBox known {CIDFont/FontBBox get/FontBBox exch def} if CIDFont/CDevProc known {CIDFont/CDevProc get/CDevProc exch def} if currentdict end BaseFontNameStr 3(0)putinterval 0 1 bfCount dup 256 eq{1 sub}if { FDepVector exch 2 index BaseFontDictSize dict copy begin dup/CIDFirstByte exch 256 mul def FontType 3 eq {/ct_FDDict 2 dict def} if currentdict end 1 index 16 BaseFontNameStr 2 2 getinterval cvrs pop BaseFontNameStr exch definefont put } for ct_Clone? {/Widths 1 index/CIDFont get/GlyphDirectory get length dict def} if FontName currentdict end definefont ct_Clone? { gsave dup 1000 scalefont setfont ct_BuildCharDict begin /usewidths? false def currentfont/Widths get begin exch/CIDFont get/GlyphDirectory get { pop dup charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore def } forall end /usewidths? true def end grestore } {exch pop} ifelse }bind def currentglobal true setglobal /ct_ComposeFont { ct_UseNativeCapability? { 2 index/CMap ct_resourcestatus {pop pop exch pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 3 index def /CMapVersion 1.000 def /CMapType 1 def exch/WMode exch def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search { dup length string copy exch pop exch pop } {pop(Identity)} ifelse } {pop (Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { 3 2 roll pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def setglobal /ct_MakeIdentity { ct_UseNativeCapability? { 1 index/CMap ct_resourcestatus {pop pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 2 index def /CMapVersion 1.000 def /CMapType 1 def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search {dup length string copy exch pop exch pop} {pop(Identity)} ifelse } {pop(Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { exch pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def currentdict readonly pop end end %%EndResource setglobal %%BeginResource: procset Adobe_CoolType_Utility_T42 1.0 0 %%Copyright: Copyright 1987-2004 Adobe Systems Incorporated. %%Version: 1.0 0 userdict/ct_T42Dict 15 dict put ct_T42Dict begin /Is2015? { version cvi 2015 ge }bind def /AllocGlyphStorage { Is2015? { pop } { {string}forall }ifelse }bind def /Type42DictBegin { 25 dict begin /FontName exch def /CharStrings 256 dict begin /.notdef 0 def currentdict end def /Encoding exch def /PaintType 0 def /FontType 42 def /FontMatrix[1 0 0 1 0 0]def 4 array astore cvx/FontBBox exch def /sfnts }bind def /Type42DictEnd { currentdict dup/FontName get exch definefont end ct_T42Dict exch dup/FontName get exch put }bind def /RD{string currentfile exch readstring pop}executeonly def /PrepFor2015 { Is2015? { /GlyphDirectory 16 dict def sfnts 0 get dup 2 index (glyx) putinterval 2 index (locx) putinterval pop pop } { pop pop }ifelse }bind def /AddT42Char { Is2015? { /GlyphDirectory get begin def end pop pop } { /sfnts get 4 index get 3 index 2 index putinterval pop pop pop pop }ifelse }bind def /T0AddT42Mtx2 { /CIDFont findresource/Metrics2 get begin def end }bind def end %%EndResource currentglobal true setglobal %%BeginFile: MMFauxFont.prc %%Copyright: Copyright 1987-2001 Adobe Systems Incorporated. %%All Rights Reserved. userdict /ct_EuroDict 10 dict put ct_EuroDict begin /ct_CopyFont { { 1 index /FID ne {def} {pop pop} ifelse} forall } def /ct_GetGlyphOutline { gsave initmatrix newpath exch findfont dup length 1 add dict begin ct_CopyFont /Encoding Encoding dup length array copy dup 4 -1 roll 0 exch put def currentdict end /ct_EuroFont exch definefont 1000 scalefont setfont 0 0 moveto [ <00> stringwidth <00> false charpath pathbbox [ {/m cvx} {/l cvx} {/c cvx} {/cp cvx} pathforall grestore counttomark 8 add } def /ct_MakeGlyphProc { ] cvx /ct_PSBuildGlyph cvx ] cvx } def /ct_PSBuildGlyph { gsave 8 -1 roll pop 7 1 roll 6 -2 roll ct_FontMatrix transform 6 2 roll 4 -2 roll ct_FontMatrix transform 4 2 roll ct_FontMatrix transform currentdict /PaintType 2 copy known {get 2 eq}{pop pop false} ifelse dup 9 1 roll { currentdict /StrokeWidth 2 copy known { get 2 div 0 ct_FontMatrix dtransform pop 5 1 roll 4 -1 roll 4 index sub 4 1 roll 3 -1 roll 4 index sub 3 1 roll exch 4 index add exch 4 index add 5 -1 roll pop } { pop pop } ifelse } if setcachedevice ct_FontMatrix concat ct_PSPathOps begin exec end { currentdict /StrokeWidth 2 copy known { get } { pop pop 0 } ifelse setlinewidth stroke } { fill } ifelse grestore } def /ct_PSPathOps 4 dict dup begin /m {moveto} def /l {lineto} def /c {curveto} def /cp {closepath} def end def /ct_matrix1000 [1000 0 0 1000 0 0] def /ct_AddGlyphProc { 2 index findfont dup length 4 add dict begin ct_CopyFont /CharStrings CharStrings dup length 1 add dict copy begin 3 1 roll def currentdict end def /ct_FontMatrix ct_matrix1000 FontMatrix matrix concatmatrix def /ct_PSBuildGlyph /ct_PSBuildGlyph load def /ct_PSPathOps /ct_PSPathOps load def currentdict end definefont pop } def systemdict /languagelevel known { /ct_AddGlyphToPrinterFont { 2 copy ct_GetGlyphOutline 3 add -1 roll restore ct_MakeGlyphProc ct_AddGlyphProc } def } { /ct_AddGlyphToPrinterFont { pop pop restore Adobe_CTFauxDict /$$$FONTNAME get /Euro Adobe_CTFauxDict /$$$SUBSTITUTEBASE get ct_EuroDict exch get ct_AddGlyphProc } def } ifelse /AdobeSansMM { 556 0 24 -19 541 703 { 541 628 m 510 669 442 703 354 703 c 201 703 117 607 101 444 c 50 444 l 25 372 l 97 372 l 97 301 l 49 301 l 24 229 l 103 229 l 124 67 209 -19 350 -19 c 435 -19 501 25 509 32 c 509 131 l 492 105 417 60 343 60 c 267 60 204 127 197 229 c 406 229 l 430 301 l 191 301 l 191 372 l 455 372 l 479 444 l 194 444 l 201 531 245 624 348 624 c 433 624 484 583 509 534 c cp 556 0 m } ct_PSBuildGlyph } def /AdobeSerifMM { 500 0 10 -12 484 692 { 347 298 m 171 298 l 170 310 170 322 170 335 c 170 362 l 362 362 l 374 403 l 172 403 l 184 580 244 642 308 642 c 380 642 434 574 457 457 c 481 462 l 474 691 l 449 691 l 433 670 429 657 410 657 c 394 657 360 692 299 692 c 204 692 94 604 73 403 c 22 403 l 10 362 l 70 362 l 69 352 69 341 69 330 c 69 319 69 308 70 298 c 22 298 l 10 257 l 73 257 l 97 57 216 -12 295 -12 c 364 -12 427 25 484 123 c 458 142 l 425 101 384 37 316 37 c 256 37 189 84 173 257 c 335 257 l cp 500 0 m } ct_PSBuildGlyph } def end %%EndFile setglobal Adobe_CoolType_Core begin /$Oblique SetSubstituteStrategy end %%BeginResource: procset Adobe_AGM_Image 1.0 0 +%%Version: 1.0 0 +%%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved. +systemdict/setpacking known +{ + currentpacking + true setpacking +}if +userdict/Adobe_AGM_Image 71 dict dup begin put +/Adobe_AGM_Image_Id/Adobe_AGM_Image_1.0_0 def +/nd{ + null def +}bind def +/AGMIMG_&image nd +/AGMIMG_&colorimage nd +/AGMIMG_&imagemask nd +/AGMIMG_mbuf()def +/AGMIMG_ybuf()def +/AGMIMG_kbuf()def +/AGMIMG_c 0 def +/AGMIMG_m 0 def +/AGMIMG_y 0 def +/AGMIMG_k 0 def +/AGMIMG_tmp nd +/AGMIMG_imagestring0 nd +/AGMIMG_imagestring1 nd +/AGMIMG_imagestring2 nd +/AGMIMG_imagestring3 nd +/AGMIMG_imagestring4 nd +/AGMIMG_imagestring5 nd +/AGMIMG_cnt nd +/AGMIMG_fsave nd +/AGMIMG_colorAry nd +/AGMIMG_override nd +/AGMIMG_name nd +/AGMIMG_maskSource nd +/AGMIMG_flushfilters nd +/invert_image_samples nd +/knockout_image_samples nd +/img nd +/sepimg nd +/devnimg nd +/idximg nd +/ds +{ + Adobe_AGM_Core begin + Adobe_AGM_Image begin + /AGMIMG_&image systemdict/image get def + /AGMIMG_&imagemask systemdict/imagemask get def + /colorimage where{ + pop + /AGMIMG_&colorimage/colorimage ldf + }if + end + end +}def +/ps +{ + Adobe_AGM_Image begin + /AGMIMG_ccimage_exists{/customcolorimage where + { + pop + /Adobe_AGM_OnHost_Seps where + { + pop false + }{ + /Adobe_AGM_InRip_Seps where + { + pop false + }{ + true + }ifelse + }ifelse + }{ + false + }ifelse + }bdf + level2{ + /invert_image_samples + { + Adobe_AGM_Image/AGMIMG_tmp Decode length ddf + /Decode[Decode 1 get Decode 0 get]def + }def + /knockout_image_samples + { + Operator/imagemask ne{ + /Decode[1 1]def + }if + }def + }{ + /invert_image_samples + { + {1 exch sub}currenttransfer addprocs settransfer + }def + /knockout_image_samples + { + {pop 1}currenttransfer addprocs settransfer + }def + }ifelse + /img/imageormask ldf + /sepimg/sep_imageormask ldf + /devnimg/devn_imageormask ldf + /idximg/indexed_imageormask ldf + /_ctype 7 def + currentdict{ + dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ + bind + }if + def + }forall +}def +/pt +{ + end +}def +/dt +{ +}def +/AGMIMG_flushfilters +{ + dup type/arraytype ne + {1 array astore}if + dup 0 get currentfile ne + {dup 0 get flushfile}if + { + dup type/filetype eq + { + dup status 1 index currentfile ne and + {closefile} + {pop} + ifelse + }{pop}ifelse + }forall +}def +/AGMIMG_init_common +{ + currentdict/T known{/ImageType/T ldf currentdict/T undef}if + currentdict/W known{/Width/W ldf currentdict/W undef}if + currentdict/H known{/Height/H ldf currentdict/H undef}if + currentdict/M known{/ImageMatrix/M ldf currentdict/M undef}if + currentdict/BC known{/BitsPerComponent/BC ldf currentdict/BC undef}if + currentdict/D known{/Decode/D ldf currentdict/D undef}if + currentdict/DS known{/DataSource/DS ldf currentdict/DS undef}if + currentdict/O known{ + /Operator/O load 1 eq{ + /imagemask + }{ + /O load 2 eq{ + /image + }{ + /colorimage + }ifelse + }ifelse + def + currentdict/O undef + }if + currentdict/HSCI known{/HostSepColorImage/HSCI ldf currentdict/HSCI undef}if + currentdict/MD known{/MultipleDataSources/MD ldf currentdict/MD undef}if + currentdict/I known{/Interpolate/I ldf currentdict/I undef}if + currentdict/SI known{/SkipImageProc/SI ldf currentdict/SI undef}if + /DataSource load xcheck not{ + DataSource type/arraytype eq{ + DataSource 0 get type/filetype eq{ + /_Filters DataSource def + currentdict/MultipleDataSources known not{ + /DataSource DataSource dup length 1 sub get def + }if + }if + }if + currentdict/MultipleDataSources known not{ + /MultipleDataSources DataSource type/arraytype eq{ + DataSource length 1 gt + } + {false}ifelse def + }if + }if + /NComponents Decode length 2 div def + currentdict/SkipImageProc known not{/SkipImageProc{false}def}if +}bdf +/imageormask_sys +{ + begin + AGMIMG_init_common + save mark + level2{ + currentdict + Operator/imagemask eq{ + AGMIMG_&imagemask + }{ + use_mask{ + process_mask AGMIMG_&image + }{ + AGMIMG_&image + }ifelse + }ifelse + }{ + Width Height + Operator/imagemask eq{ + Decode 0 get 1 eq Decode 1 get 0 eq and + ImageMatrix/DataSource load + AGMIMG_&imagemask + }{ + BitsPerComponent ImageMatrix/DataSource load + AGMIMG_&image + }ifelse + }ifelse + currentdict/_Filters known{_Filters AGMIMG_flushfilters}if + cleartomark restore + end +}def +/overprint_plate +{ + currentoverprint{ + 0 get dup type/nametype eq{ + dup/DeviceGray eq{ + pop AGMCORE_black_plate not + }{ + /DeviceCMYK eq{ + AGMCORE_is_cmyk_sep not + }if + }ifelse + }{ + false exch + { + AGMOHS_sepink eq or + }forall + not + }ifelse + }{ + pop false + }ifelse +}def +/process_mask +{ + level3{ + dup begin + /ImageType 1 def + end + 4 dict begin + /DataDict exch def + /ImageType 3 def + /InterleaveType 3 def + /MaskDict 9 dict begin + /ImageType 1 def + /Width DataDict dup/MaskWidth known{/MaskWidth}{/Width}ifelse get def + /Height DataDict dup/MaskHeight known{/MaskHeight}{/Height}ifelse get def + /ImageMatrix[Width 0 0 Height neg 0 Height]def + /NComponents 1 def + /BitsPerComponent 1 def + /Decode DataDict dup/MaskD known{/MaskD}{[1 0]}ifelse get def + /DataSource Adobe_AGM_Core/AGMIMG_maskSource get def + currentdict end def + currentdict end + }if +}def +/use_mask +{ + dup/Mask known {dup/Mask get}{false}ifelse +}def +/imageormask +{ + begin + AGMIMG_init_common + SkipImageProc{ + currentdict consumeimagedata + } + { + save mark + level2 AGMCORE_host_sep not and{ + currentdict + Operator/imagemask eq DeviceN_PS2 not and{ + imagemask + }{ + AGMCORE_in_rip_sep currentoverprint and currentcolorspace 0 get/DeviceGray eq and{ + [/Separation/Black/DeviceGray{}]setcolorspace + /Decode[Decode 1 get Decode 0 get]def + }if + use_mask{ + process_mask image + }{ + DeviceN_NoneName DeviceN_PS2 Indexed_DeviceN level3 not and or or AGMCORE_in_rip_sep and + { + Names convert_to_process not{ + 2 dict begin + /imageDict xdf + /names_index 0 def + gsave + imageDict write_image_file{ + Names{ + dup(None)ne{ + [/Separation 3 -1 roll/DeviceGray{1 exch sub}]setcolorspace + Operator imageDict read_image_file + names_index 0 eq{true setoverprint}if + /names_index names_index 1 add def + }{ + pop + }ifelse + }forall + close_image_file + }if + grestore + end + }{ + Operator/imagemask eq{ + imagemask + }{ + image + }ifelse + }ifelse + }{ + Operator/imagemask eq{ + imagemask + }{ + image + }ifelse + }ifelse + }ifelse + }ifelse + }{ + Width Height + Operator/imagemask eq{ + Decode 0 get 1 eq Decode 1 get 0 eq and + ImageMatrix/DataSource load + /Adobe_AGM_OnHost_Seps where{ + pop imagemask + }{ + currentgray 1 ne{ + currentdict imageormask_sys + }{ + currentoverprint not{ + 1 AGMCORE_&setgray + currentdict imageormask_sys + }{ + currentdict ignoreimagedata + }ifelse + }ifelse + }ifelse + }{ + BitsPerComponent ImageMatrix + MultipleDataSources{ + 0 1 NComponents 1 sub{ + DataSource exch get + }for + }{ + /DataSource load + }ifelse + Operator/colorimage eq{ + AGMCORE_host_sep{ + MultipleDataSources level2 or NComponents 4 eq and{ + AGMCORE_is_cmyk_sep{ + MultipleDataSources{ + /DataSource DataSource 0 get xcheck + { + [ + DataSource 0 get/exec cvx + DataSource 1 get/exec cvx + DataSource 2 get/exec cvx + DataSource 3 get/exec cvx + /AGMCORE_get_ink_data cvx + ]cvx + }{ + DataSource aload pop AGMCORE_get_ink_data + }ifelse def + }{ + /DataSource + Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul + /DataSource load + filter_cmyk 0()/SubFileDecode filter def + }ifelse + /Decode[Decode 0 get Decode 1 get]def + /MultipleDataSources false def + /NComponents 1 def + /Operator/image def + invert_image_samples + 1 AGMCORE_&setgray + currentdict imageormask_sys + }{ + currentoverprint not Operator/imagemask eq and{ + 1 AGMCORE_&setgray + currentdict imageormask_sys + }{ + currentdict ignoreimagedata + }ifelse + }ifelse + }{ + MultipleDataSources NComponents AGMIMG_&colorimage + }ifelse + }{ + true NComponents colorimage + }ifelse + }{ + Operator/image eq{ + AGMCORE_host_sep{ + /DoImage true def + currentdict/HostSepColorImage known{HostSepColorImage not}{false}ifelse + { + AGMCORE_black_plate not Operator/imagemask ne and{ + /DoImage false def + currentdict ignoreimagedata + }if + }if + 1 AGMCORE_&setgray + DoImage + {currentdict imageormask_sys}if + }{ + use_mask{ + process_mask image + }{ + image + }ifelse + }ifelse + }{ + Operator/knockout eq{ + pop pop pop pop pop + currentcolorspace overprint_plate not{ + knockout_unitsq + }if + }if + }ifelse + }ifelse + }ifelse + }ifelse + cleartomark restore + }ifelse + currentdict/_Filters known{_Filters AGMIMG_flushfilters}if + end +}def +/sep_imageormask +{ + /sep_colorspace_dict AGMCORE_gget begin + CSA map_csa + begin + AGMIMG_init_common + SkipImageProc{ + currentdict consumeimagedata + }{ + save mark + AGMCORE_avoid_L2_sep_space{ + /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def + }if + AGMIMG_ccimage_exists + MappedCSA 0 get/DeviceCMYK eq and + currentdict/Components known and + Name()ne and + Name(All)ne and + Operator/image eq and + AGMCORE_producing_seps not and + level2 not and + { + Width Height BitsPerComponent ImageMatrix + [ + /DataSource load/exec cvx + { + 0 1 2 index length 1 sub{ + 1 index exch + 2 copy get 255 xor put + }for + }/exec cvx + ]cvx bind + MappedCSA 0 get/DeviceCMYK eq{ + Components aload pop + }{ + 0 0 0 Components aload pop 1 exch sub + }ifelse + Name findcmykcustomcolor + customcolorimage + }{ + AGMCORE_producing_seps not{ + level2{ + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne AGMCORE_avoid_L2_sep_space not and currentcolorspace 0 get/Separation ne and{ + [/Separation Name MappedCSA sep_proc_name exch dup 0 get 15 string cvs(/Device)anchorsearch{pop pop 0 get}{pop}ifelse exch load]setcolorspace_opt + /sep_tint AGMCORE_gget setcolor + }if + currentdict imageormask + }{ + currentdict + Operator/imagemask eq{ + imageormask + }{ + sep_imageormask_lev1 + }ifelse + }ifelse + }{ + AGMCORE_host_sep{ + Operator/knockout eq{ + currentdict/ImageMatrix get concat + knockout_unitsq + }{ + currentgray 1 ne{ + AGMCORE_is_cmyk_sep Name(All)ne and{ + level2{ + Name AGMCORE_IsSeparationAProcessColor + { + Operator/imagemask eq{ + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ + /sep_tint AGMCORE_gget 1 exch sub AGMCORE_&setcolor + }if + }{ + invert_image_samples + }ifelse + }{ + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ + [/Separation Name[/DeviceGray] + { + sep_colorspace_proc AGMCORE_get_ink_data + 1 exch sub + }bind + ]AGMCORE_&setcolorspace + /sep_tint AGMCORE_gget AGMCORE_&setcolor + }if + }ifelse + currentdict imageormask_sys + }{ + currentdict + Operator/imagemask eq{ + imageormask_sys + }{ + sep_image_lev1_sep + }ifelse + }ifelse + }{ + Operator/imagemask ne{ + invert_image_samples + }if + currentdict imageormask_sys + }ifelse + }{ + currentoverprint not Name(All)eq or Operator/imagemask eq and{ + currentdict imageormask_sys + }{ + currentoverprint not + { + gsave + knockout_unitsq + grestore + }if + currentdict consumeimagedata + }ifelse + }ifelse + }ifelse + }{ + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ + currentcolorspace 0 get/Separation ne{ + [/Separation Name MappedCSA sep_proc_name exch 0 get exch load]setcolorspace_opt + /sep_tint AGMCORE_gget setcolor + }if + }if + currentoverprint + MappedCSA 0 get/DeviceCMYK eq and + Name AGMCORE_IsSeparationAProcessColor not and + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{Name inRip_spot_has_ink not and}{false}ifelse + Name(All)ne and{ + imageormask_l2_overprint + }{ + currentdict imageormask + }ifelse + }ifelse + }ifelse + }ifelse + cleartomark restore + }ifelse + currentdict/_Filters known{_Filters AGMIMG_flushfilters}if + end + end +}def +/colorSpaceElemCnt +{ + mark currentcolor counttomark dup 2 add 1 roll cleartomark +}bdf +/devn_sep_datasource +{ + 1 dict begin + /dataSource xdf + [ + 0 1 dataSource length 1 sub{ + dup currentdict/dataSource get/exch cvx/get cvx/exec cvx + /exch cvx names_index/ne cvx[/pop cvx]cvx/if cvx + }for + ]cvx bind + end +}bdf +/devn_alt_datasource +{ + 11 dict begin + /convProc xdf + /origcolorSpaceElemCnt xdf + /origMultipleDataSources xdf + /origBitsPerComponent xdf + /origDecode xdf + /origDataSource xdf + /dsCnt origMultipleDataSources{origDataSource length}{1}ifelse def + /DataSource origMultipleDataSources + { + [ + BitsPerComponent 8 idiv origDecode length 2 idiv mul string + 0 1 origDecode length 2 idiv 1 sub + { + dup 7 mul 1 add index exch dup BitsPerComponent 8 idiv mul exch + origDataSource exch get 0()/SubFileDecode filter + BitsPerComponent 8 idiv string/readstring cvx/pop cvx/putinterval cvx + }for + ]bind cvx + }{origDataSource}ifelse 0()/SubFileDecode filter def + [ + origcolorSpaceElemCnt string + 0 2 origDecode length 2 sub + { + dup origDecode exch get dup 3 -1 roll 1 add origDecode exch get exch sub 2 BitsPerComponent exp 1 sub div + 1 BitsPerComponent 8 idiv{DataSource/read cvx/not cvx{0}/if cvx/mul cvx}repeat/mul cvx/add cvx + }for + /convProc load/exec cvx + origcolorSpaceElemCnt 1 sub -1 0 + { + /dup cvx 2/add cvx/index cvx + 3 1/roll cvx/exch cvx 255/mul cvx/cvi cvx/put cvx + }for + ]bind cvx 0()/SubFileDecode filter + end +}bdf +/devn_imageormask +{ + /devicen_colorspace_dict AGMCORE_gget begin + CSA map_csa + 2 dict begin + dup + /srcDataStrs[3 -1 roll begin + AGMIMG_init_common + currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse + { + Width Decode length 2 div mul cvi + { + dup 65535 gt{1 add 2 div cvi}{exit}ifelse + }loop + string + }repeat + end]def + /dstDataStr srcDataStrs 0 get length string def + begin + AGMIMG_init_common + SkipImageProc{ + currentdict consumeimagedata + }{ + save mark + AGMCORE_producing_seps not{ + level3 not{ + Operator/imagemask ne{ + /DataSource[[ + DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse + colorSpaceElemCnt/devicen_colorspace_dict AGMCORE_gget/TintTransform get + devn_alt_datasource 1/string cvx/readstring cvx/pop cvx]cvx colorSpaceElemCnt 1 sub{dup}repeat]def + /MultipleDataSources true def + /Decode colorSpaceElemCnt[exch{0 1}repeat]def + }if + }if + currentdict imageormask + }{ + AGMCORE_host_sep{ + Names convert_to_process{ + CSA get_csa_by_name 0 get/DeviceCMYK eq{ + /DataSource + Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul + DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse + 4/devicen_colorspace_dict AGMCORE_gget/TintTransform get + devn_alt_datasource + filter_cmyk 0()/SubFileDecode filter def + /MultipleDataSources false def + /Decode[1 0]def + /DeviceGray setcolorspace + currentdict imageormask_sys + }{ + AGMCORE_report_unsupported_color_space + AGMCORE_black_plate{ + /DataSource + DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse + CSA get_csa_by_name 0 get/DeviceRGB eq{3}{1}ifelse/devicen_colorspace_dict AGMCORE_gget/TintTransform get + devn_alt_datasource + /MultipleDataSources false def + /Decode colorSpaceElemCnt[exch{0 1}repeat]def + currentdict imageormask_sys + }{ + gsave + knockout_unitsq + grestore + currentdict consumeimagedata + }ifelse + }ifelse + } + { + /devicen_colorspace_dict AGMCORE_gget/names_index known{ + Operator/imagemask ne{ + MultipleDataSources{ + /DataSource[DataSource devn_sep_datasource/exec cvx]cvx def + /MultipleDataSources false def + }{ + /DataSource/DataSource load dstDataStr srcDataStrs 0 get filter_devn def + }ifelse + invert_image_samples + }if + currentdict imageormask_sys + }{ + currentoverprint not Operator/imagemask eq and{ + currentdict imageormask_sys + }{ + currentoverprint not + { + gsave + knockout_unitsq + grestore + }if + currentdict consumeimagedata + }ifelse + }ifelse + }ifelse + }{ + currentdict imageormask + }ifelse + }ifelse + cleartomark restore + }ifelse + currentdict/_Filters known{_Filters AGMIMG_flushfilters}if + end + end + end +}def +/imageormask_l2_overprint +{ + currentdict + currentcmykcolor add add add 0 eq{ + currentdict consumeimagedata + }{ + level3{ + currentcmykcolor + /AGMIMG_k xdf + /AGMIMG_y xdf + /AGMIMG_m xdf + /AGMIMG_c xdf + Operator/imagemask eq{ + [/DeviceN[ + AGMIMG_c 0 ne{/Cyan}if + AGMIMG_m 0 ne{/Magenta}if + AGMIMG_y 0 ne{/Yellow}if + AGMIMG_k 0 ne{/Black}if + ]/DeviceCMYK{}]setcolorspace + AGMIMG_c 0 ne{AGMIMG_c}if + AGMIMG_m 0 ne{AGMIMG_m}if + AGMIMG_y 0 ne{AGMIMG_y}if + AGMIMG_k 0 ne{AGMIMG_k}if + setcolor + }{ + /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def + [/Indexed + [ + /DeviceN[ + AGMIMG_c 0 ne{/Cyan}if + AGMIMG_m 0 ne{/Magenta}if + AGMIMG_y 0 ne{/Yellow}if + AGMIMG_k 0 ne{/Black}if + ] + /DeviceCMYK{ + AGMIMG_k 0 eq{0}if + AGMIMG_y 0 eq{0 exch}if + AGMIMG_m 0 eq{0 3 1 roll}if + AGMIMG_c 0 eq{0 4 1 roll}if + } + ] + 255 + { + 255 div + mark exch + dup dup dup + AGMIMG_k 0 ne{ + /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 1 roll pop pop pop + counttomark 1 roll + }{ + pop + }ifelse + AGMIMG_y 0 ne{ + /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 2 roll pop pop pop + counttomark 1 roll + }{ + pop + }ifelse + AGMIMG_m 0 ne{ + /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 3 roll pop pop pop + counttomark 1 roll + }{ + pop + }ifelse + AGMIMG_c 0 ne{ + /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec pop pop pop + counttomark 1 roll + }{ + pop + }ifelse + counttomark 1 add -1 roll pop + } + ]setcolorspace + }ifelse + imageormask_sys + }{ + write_image_file{ + currentcmykcolor + 0 ne{ + [/Separation/Black/DeviceGray{}]setcolorspace + gsave + /Black + [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 1 roll pop pop pop 1 exch sub}/exec cvx] + cvx modify_halftone_xfer + Operator currentdict read_image_file + grestore + }if + 0 ne{ + [/Separation/Yellow/DeviceGray{}]setcolorspace + gsave + /Yellow + [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 2 roll pop pop pop 1 exch sub}/exec cvx] + cvx modify_halftone_xfer + Operator currentdict read_image_file + grestore + }if + 0 ne{ + [/Separation/Magenta/DeviceGray{}]setcolorspace + gsave + /Magenta + [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 3 roll pop pop pop 1 exch sub}/exec cvx] + cvx modify_halftone_xfer + Operator currentdict read_image_file + grestore + }if + 0 ne{ + [/Separation/Cyan/DeviceGray{}]setcolorspace + gsave + /Cyan + [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{pop pop pop 1 exch sub}/exec cvx] + cvx modify_halftone_xfer + Operator currentdict read_image_file + grestore + }if + close_image_file + }{ + imageormask + }ifelse + }ifelse + }ifelse +}def +/indexed_imageormask +{ + begin + AGMIMG_init_common + save mark + currentdict + AGMCORE_host_sep{ + Operator/knockout eq{ + /indexed_colorspace_dict AGMCORE_gget dup/CSA known{ + /CSA get get_csa_by_name + }{ + /Names get + }ifelse + overprint_plate not{ + knockout_unitsq + }if + }{ + Indexed_DeviceN{ + /devicen_colorspace_dict AGMCORE_gget dup/names_index known exch/Names get convert_to_process or{ + indexed_image_lev2_sep + }{ + currentoverprint not{ + knockout_unitsq + }if + currentdict consumeimagedata + }ifelse + }{ + AGMCORE_is_cmyk_sep{ + Operator/imagemask eq{ + imageormask_sys + }{ + level2{ + indexed_image_lev2_sep + }{ + indexed_image_lev1_sep + }ifelse + }ifelse + }{ + currentoverprint not{ + knockout_unitsq + }if + currentdict consumeimagedata + }ifelse + }ifelse + }ifelse + }{ + level2{ + Indexed_DeviceN{ + /indexed_colorspace_dict AGMCORE_gget begin + }{ + /indexed_colorspace_dict AGMCORE_gget dup null ne + { + begin + currentdict/CSDBase known{CSDBase/CSD get_res/MappedCSA get}{CSA}ifelse + get_csa_by_name 0 get/DeviceCMYK eq ps_level 3 ge and ps_version 3015.007 lt and + AGMCORE_in_rip_sep and{ + [/Indexed[/DeviceN[/Cyan/Magenta/Yellow/Black]/DeviceCMYK{}]HiVal Lookup] + setcolorspace + }if + end + } + {pop}ifelse + }ifelse + imageormask + Indexed_DeviceN{ + end + }if + }{ + Operator/imagemask eq{ + imageormask + }{ + indexed_imageormask_lev1 + }ifelse + }ifelse + }ifelse + cleartomark restore + currentdict/_Filters known{_Filters AGMIMG_flushfilters}if + end +}def +/indexed_image_lev2_sep +{ + /indexed_colorspace_dict AGMCORE_gget begin + begin + Indexed_DeviceN not{ + currentcolorspace + dup 1/DeviceGray put + dup 3 + currentcolorspace 2 get 1 add string + 0 1 2 3 AGMCORE_get_ink_data 4 currentcolorspace 3 get length 1 sub + { + dup 4 idiv exch currentcolorspace 3 get exch get 255 exch sub 2 index 3 1 roll put + }for + put setcolorspace + }if + currentdict + Operator/imagemask eq{ + AGMIMG_&imagemask + }{ + use_mask{ + process_mask AGMIMG_&image + }{ + AGMIMG_&image + }ifelse + }ifelse + end end +}def + /OPIimage + { + dup type/dicttype ne{ + 10 dict begin + /DataSource xdf + /ImageMatrix xdf + /BitsPerComponent xdf + /Height xdf + /Width xdf + /ImageType 1 def + /Decode[0 1 def] + currentdict + end + }if + dup begin + /NComponents 1 cdndf + /MultipleDataSources false cdndf + /SkipImageProc{false}cdndf + /Decode[ + 0 + currentcolorspace 0 get/Indexed eq{ + 2 BitsPerComponent exp 1 sub + }{ + 1 + }ifelse + ]cdndf + /Operator/image cdndf + end + /sep_colorspace_dict AGMCORE_gget null eq{ + imageormask + }{ + gsave + dup begin invert_image_samples end + sep_imageormask + grestore + }ifelse + }def +/cachemask_level2 +{ + 3 dict begin + /LZWEncode filter/WriteFilter xdf + /readBuffer 256 string def + /ReadFilter + currentfile + 0(%EndMask)/SubFileDecode filter + /ASCII85Decode filter + /RunLengthDecode filter + def + { + ReadFilter readBuffer readstring exch + WriteFilter exch writestring + not{exit}if + }loop + WriteFilter closefile + end +}def +/spot_alias +{ + /mapto_sep_imageormask + { + dup type/dicttype ne{ + 12 dict begin + /ImageType 1 def + /DataSource xdf + /ImageMatrix xdf + /BitsPerComponent xdf + /Height xdf + /Width xdf + /MultipleDataSources false def + }{ + begin + }ifelse + /Decode[/customcolor_tint AGMCORE_gget 0]def + /Operator/image def + /SkipImageProc{false}def + currentdict + end + sep_imageormask + }bdf + /customcolorimage + { + Adobe_AGM_Image/AGMIMG_colorAry xddf + /customcolor_tint AGMCORE_gget + << + /Name AGMIMG_colorAry 4 get + /CSA[/DeviceCMYK] + /TintMethod/Subtractive + /TintProc null + /MappedCSA null + /NComponents 4 + /Components[AGMIMG_colorAry aload pop pop] + >> + setsepcolorspace + mapto_sep_imageormask + }ndf + Adobe_AGM_Image/AGMIMG_&customcolorimage/customcolorimage load put + /customcolorimage + { + Adobe_AGM_Image/AGMIMG_override false put + current_spot_alias{dup 4 get map_alias}{false}ifelse + { + false set_spot_alias + /customcolor_tint AGMCORE_gget exch setsepcolorspace + pop + mapto_sep_imageormask + true set_spot_alias + }{ + //Adobe_AGM_Image/AGMIMG_&customcolorimage get exec + }ifelse + }bdf +}def +/snap_to_device +{ + 6 dict begin + matrix currentmatrix + dup 0 get 0 eq 1 index 3 get 0 eq and + 1 index 1 get 0 eq 2 index 2 get 0 eq and or exch pop + { + 1 1 dtransform 0 gt exch 0 gt/AGMIMG_xSign? exch def/AGMIMG_ySign? exch def + 0 0 transform + AGMIMG_ySign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch + AGMIMG_xSign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch + itransform/AGMIMG_llY exch def/AGMIMG_llX exch def + 1 1 transform + AGMIMG_ySign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch + AGMIMG_xSign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch + itransform/AGMIMG_urY exch def/AGMIMG_urX exch def + [AGMIMG_urX AGMIMG_llX sub 0 0 AGMIMG_urY AGMIMG_llY sub AGMIMG_llX AGMIMG_llY]concat + }{ + }ifelse + end +}def +level2 not{ + /colorbuf + { + 0 1 2 index length 1 sub{ + dup 2 index exch get + 255 exch sub + 2 index + 3 1 roll + put + }for + }def + /tint_image_to_color + { + begin + Width Height BitsPerComponent ImageMatrix + /DataSource load + end + Adobe_AGM_Image begin + /AGMIMG_mbuf 0 string def + /AGMIMG_ybuf 0 string def + /AGMIMG_kbuf 0 string def + { + colorbuf dup length AGMIMG_mbuf length ne + { + dup length dup dup + /AGMIMG_mbuf exch string def + /AGMIMG_ybuf exch string def + /AGMIMG_kbuf exch string def + }if + dup AGMIMG_mbuf copy AGMIMG_ybuf copy AGMIMG_kbuf copy pop + } + addprocs + {AGMIMG_mbuf}{AGMIMG_ybuf}{AGMIMG_kbuf}true 4 colorimage + end + }def + /sep_imageormask_lev1 + { + begin + MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ + { + 255 mul round cvi GrayLookup exch get + }currenttransfer addprocs settransfer + currentdict imageormask + }{ + /sep_colorspace_dict AGMCORE_gget/Components known{ + MappedCSA 0 get/DeviceCMYK eq{ + Components aload pop + }{ + 0 0 0 Components aload pop 1 exch sub + }ifelse + Adobe_AGM_Image/AGMIMG_k xddf + Adobe_AGM_Image/AGMIMG_y xddf + Adobe_AGM_Image/AGMIMG_m xddf + Adobe_AGM_Image/AGMIMG_c xddf + AGMIMG_y 0.0 eq AGMIMG_m 0.0 eq and AGMIMG_c 0.0 eq and{ + {AGMIMG_k mul 1 exch sub}currenttransfer addprocs settransfer + currentdict imageormask + }{ + currentcolortransfer + {AGMIMG_k mul 1 exch sub}exch addprocs 4 1 roll + {AGMIMG_y mul 1 exch sub}exch addprocs 4 1 roll + {AGMIMG_m mul 1 exch sub}exch addprocs 4 1 roll + {AGMIMG_c mul 1 exch sub}exch addprocs 4 1 roll + setcolortransfer + currentdict tint_image_to_color + }ifelse + }{ + MappedCSA 0 get/DeviceGray eq{ + {255 mul round cvi ColorLookup exch get 0 get}currenttransfer addprocs settransfer + currentdict imageormask + }{ + MappedCSA 0 get/DeviceCMYK eq{ + currentcolortransfer + {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}exch addprocs 4 1 roll + setcolortransfer + currentdict tint_image_to_color + }{ + currentcolortransfer + {pop 1}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 2 get}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 1 get}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 0 get}exch addprocs 4 1 roll + setcolortransfer + currentdict tint_image_to_color + }ifelse + }ifelse + }ifelse + }ifelse + end + }def + /sep_image_lev1_sep + { + begin + /sep_colorspace_dict AGMCORE_gget/Components known{ + Components aload pop + Adobe_AGM_Image/AGMIMG_k xddf + Adobe_AGM_Image/AGMIMG_y xddf + Adobe_AGM_Image/AGMIMG_m xddf + Adobe_AGM_Image/AGMIMG_c xddf + {AGMIMG_c mul 1 exch sub} + {AGMIMG_m mul 1 exch sub} + {AGMIMG_y mul 1 exch sub} + {AGMIMG_k mul 1 exch sub} + }{ + {255 mul round cvi ColorLookup exch get 0 get 1 exch sub} + {255 mul round cvi ColorLookup exch get 1 get 1 exch sub} + {255 mul round cvi ColorLookup exch get 2 get 1 exch sub} + {255 mul round cvi ColorLookup exch get 3 get 1 exch sub} + }ifelse + AGMCORE_get_ink_data currenttransfer addprocs settransfer + currentdict imageormask_sys + end + }def + /indexed_imageormask_lev1 + { + /indexed_colorspace_dict AGMCORE_gget begin + begin + currentdict + MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ + {HiVal mul round cvi GrayLookup exch get HiVal div}currenttransfer addprocs settransfer + imageormask + }{ + MappedCSA 0 get/DeviceGray eq{ + {HiVal mul round cvi Lookup exch get HiVal div}currenttransfer addprocs settransfer + imageormask + }{ + MappedCSA 0 get/DeviceCMYK eq{ + currentcolortransfer + {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll + {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll + {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll + {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll + setcolortransfer + tint_image_to_color + }{ + currentcolortransfer + {pop 1}exch addprocs 4 1 roll + {3 mul HiVal mul round cvi 2 add Lookup exch get HiVal div}exch addprocs 4 1 roll + {3 mul HiVal mul round cvi 1 add Lookup exch get HiVal div}exch addprocs 4 1 roll + {3 mul HiVal mul round cvi Lookup exch get HiVal div}exch addprocs 4 1 roll + setcolortransfer + tint_image_to_color + }ifelse + }ifelse + }ifelse + end end + }def + /indexed_image_lev1_sep + { + /indexed_colorspace_dict AGMCORE_gget begin + begin + {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub} + {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub} + {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub} + {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub} + AGMCORE_get_ink_data currenttransfer addprocs settransfer + currentdict imageormask_sys + end end + }def +}if +end +systemdict/setpacking known +{setpacking}if +%%EndResource +currentdict Adobe_AGM_Utils eq {end} if +%%EndProlog +%%BeginSetup +Adobe_AGM_Utils begin +2 2010 Adobe_AGM_Core/ds gx +Adobe_CoolType_Core/ds get exec Adobe_AGM_Image/ds gx +currentdict Adobe_AGM_Utils eq {end} if +%%EndSetup +%%Page: 1 1 +%%EndPageComments +%%BeginPageSetup +%ADOBeginClientInjection: PageSetup Start "AI11EPS" +%AI12_RMC_Transparency: Balance=75 RasterRes=300 GradRes=150 Text=0 Stroke=1 Clip=1 OP=0 +%ADOEndClientInjection: PageSetup Start "AI11EPS" +Adobe_AGM_Utils begin +Adobe_AGM_Core/ps gx +Adobe_AGM_Utils/capture_cpd gx +Adobe_CoolType_Core/ps get exec Adobe_AGM_Image/ps gx +%ADOBeginClientInjection: PageSetup End "AI11EPS" +/currentdistillerparams where {pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse { userdict /AI11_PDFMark5 /cleartomark load put userdict /AI11_ReadMetadata_PDFMark5 {flushfile cleartomark } bind put} { userdict /AI11_PDFMark5 /pdfmark load put userdict /AI11_ReadMetadata_PDFMark5 {/PUT pdfmark} bind put } ifelse [/NamespacePush AI11_PDFMark5 [/_objdef {ai_metadata_stream_123} /type /stream /OBJ AI11_PDFMark5 [{ai_metadata_stream_123} currentfile 0 (% &&end XMP packet marker&&) /SubFileDecode filter AI11_ReadMetadata_PDFMark5 + + + + application/postscript + + + Print + + + + + 2011-05-12T01:30:58-04:00 + 2011-05-12T01:30:58-04:00 + 2011-05-12T01:30:58-04:00 + Adobe Illustrator CS4 + + + + 256 + 44 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgALAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A75+gtV/3x/w6f1wq79Ba r/vj/h0/rirv0Fqv++P+HT+uKorTNI1GC/hlli4xqTyPJT2I7HFXkX5i/lb571jzrqmpadpnr2Vz IjQy+vbpyAjVT8LyKw3HcZgTwyMiae/7I7b0uHTQhOdSA32l3nyQ3kr8p/zA03zbpN/e6V6Vpa3U cs8v1i2biitUnisjMfoGRjgnY26ht7S7d0mTTzhGdylEgemX6nsur2OoS6jK8UbtGePEjpsoGbF8 7UbPT9TS8gZ4nCLIhYnpQMK4qyrArsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV 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 frHp19+HfhX7PLenXFL/AP/Z + + + + + + xmp.iid:07801174072068118DBBD524E8CB12B3 + xmp.did:07801174072068118DBBD524E8CB12B3 + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + xmp.iid:06801174072068118DBBD524E8CB12B3 + xmp.did:06801174072068118DBBD524E8CB12B3 + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + + + + converted + from application/pdf to <unknown> + + + saved + xmp.iid:D27F11740720681191099C3B601C4548 + 2008-04-17T14:19:15+05:30 + Adobe Illustrator CS4 + + + / + + + + + converted + from application/pdf to <unknown> + + + converted + from application/pdf to <unknown> + + + saved + xmp.iid:F97F1174072068118D4ED246B3ADB1C6 + 2008-05-15T16:23:06-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:FA7F1174072068118D4ED246B3ADB1C6 + 2008-05-15T17:10:45-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:EF7F117407206811A46CA4519D24356B + 2008-05-15T22:53:33-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:F07F117407206811A46CA4519D24356B + 2008-05-15T23:07:07-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:F77F117407206811BDDDFD38D0CF24DD + 2008-05-16T10:35:43-07:00 + Adobe Illustrator CS4 + + + / + + + + + converted + from application/pdf to <unknown> + + + saved + xmp.iid:F97F117407206811BDDDFD38D0CF24DD + 2008-05-16T10:40:59-07:00 + Adobe Illustrator CS4 + + + / + + + + + converted + from application/vnd.adobe.illustrator to <unknown> + + + saved + xmp.iid:FA7F117407206811BDDDFD38D0CF24DD + 2008-05-16T11:26:55-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:FB7F117407206811BDDDFD38D0CF24DD + 2008-05-16T11:29:01-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:FC7F117407206811BDDDFD38D0CF24DD + 2008-05-16T11:29:20-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:FD7F117407206811BDDDFD38D0CF24DD + 2008-05-16T11:30:54-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:FE7F117407206811BDDDFD38D0CF24DD + 2008-05-16T11:31:22-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:B233668C16206811BDDDFD38D0CF24DD + 2008-05-16T12:23:46-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:B333668C16206811BDDDFD38D0CF24DD + 2008-05-16T13:27:54-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:B433668C16206811BDDDFD38D0CF24DD + 2008-05-16T13:46:13-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:F77F11740720681197C1BF14D1759E83 + 2008-05-16T15:47:57-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:F87F11740720681197C1BF14D1759E83 + 2008-05-16T15:51:06-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:F97F11740720681197C1BF14D1759E83 + 2008-05-16T15:52:22-07:00 + Adobe Illustrator CS4 + + + / + + + + + converted + from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator + + + saved + xmp.iid:FA7F117407206811B628E3BF27C8C41B + 2008-05-22T13:28:01-07:00 + Adobe Illustrator CS4 + + + / + + + + + converted + from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator + + + saved + xmp.iid:FF7F117407206811B628E3BF27C8C41B + 2008-05-22T16:23:53-07:00 + Adobe Illustrator CS4 + + + / + + + + + converted + from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator + + + saved + xmp.iid:07C3BD25102DDD1181B594070CEB88D9 + 2008-05-28T16:45:26-07:00 + Adobe Illustrator CS4 + + + / + + + + + converted + from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator + + + saved + xmp.iid:F87F1174072068119098B097FDA39BEF + 2008-06-02T13:25:25-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:F77F117407206811BB1DBF8F242B6F84 + 2008-06-09T14:58:36-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:F97F117407206811ACAFB8DA80854E76 + 2008-06-11T14:31:27-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:0180117407206811834383CD3A8D2303 + 2008-06-11T22:37:35-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:F77F117407206811818C85DF6A1A75C3 + 2008-06-27T14:40:42-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:04801174072068118DBBD524E8CB12B3 + 2011-05-11T11:44:14-04:00 + Adobe Illustrator CS4 + / + + + saved + xmp.iid:05801174072068118DBBD524E8CB12B3 + 2011-05-11T13:52:20-04:00 + Adobe Illustrator CS4 + / + + + saved + xmp.iid:06801174072068118DBBD524E8CB12B3 + 2011-05-12T01:27:21-04:00 + Adobe Illustrator CS4 + / + + + saved + xmp.iid:07801174072068118DBBD524E8CB12B3 + 2011-05-12T01:30:58-04:00 + Adobe Illustrator CS4 + / + + + + + + Print + + + False + False + 1 + + 7.000000 + 2.000000 + Inches + + + + Cyan + Magenta + Yellow + Black + + + + + + Default Swatch Group + 0 + + + + White + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + CMYK Red + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + CMYK Yellow + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Green + CMYK + PROCESS + 100.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Cyan + CMYK + PROCESS + 100.000000 + 0.000000 + 0.000000 + 0.000000 + + + CMYK Blue + CMYK + PROCESS + 100.000000 + 100.000000 + 0.000000 + 0.000000 + + + CMYK Magenta + CMYK + PROCESS + 0.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=15 M=100 Y=90 K=10 + CMYK + PROCESS + 14.999998 + 100.000000 + 90.000000 + 10.000002 + + + C=0 M=90 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 90.000000 + 85.000000 + 0.000000 + + + C=0 M=80 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 80.000000 + 95.000000 + 0.000000 + + + C=0 M=50 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 50.000000 + 100.000000 + 0.000000 + + + C=0 M=35 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 35.000004 + 85.000000 + 0.000000 + + + C=5 M=0 Y=90 K=0 + CMYK + PROCESS + 5.000001 + 0.000000 + 90.000000 + 0.000000 + + + C=20 M=0 Y=100 K=0 + CMYK + PROCESS + 19.999998 + 0.000000 + 100.000000 + 0.000000 + + + C=50 M=0 Y=100 K=0 + CMYK + PROCESS + 50.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=75 M=0 Y=100 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=85 M=10 Y=100 K=10 + CMYK + PROCESS + 85.000000 + 10.000002 + 100.000000 + 10.000002 + + + C=90 M=30 Y=95 K=30 + CMYK + PROCESS + 90.000000 + 30.000002 + 95.000000 + 30.000002 + + + C=75 M=0 Y=75 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 75.000000 + 0.000000 + + + C=80 M=10 Y=45 K=0 + CMYK + PROCESS + 80.000000 + 10.000002 + 45.000000 + 0.000000 + + + C=70 M=15 Y=0 K=0 + CMYK + PROCESS + 70.000000 + 14.999998 + 0.000000 + 0.000000 + + + C=85 M=50 Y=0 K=0 + CMYK + PROCESS + 85.000000 + 50.000000 + 0.000000 + 0.000000 + + + C=100 M=95 Y=5 K=0 + CMYK + PROCESS + 100.000000 + 95.000000 + 5.000001 + 0.000000 + + + C=100 M=100 Y=25 K=25 + CMYK + PROCESS + 100.000000 + 100.000000 + 25.000000 + 25.000000 + + + C=75 M=100 Y=0 K=0 + CMYK + PROCESS + 75.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=50 M=100 Y=0 K=0 + CMYK + PROCESS + 50.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=35 M=100 Y=35 K=10 + CMYK + PROCESS + 35.000004 + 100.000000 + 35.000004 + 10.000002 + + + C=10 M=100 Y=50 K=0 + CMYK + PROCESS + 10.000002 + 100.000000 + 50.000000 + 0.000000 + + + C=0 M=95 Y=20 K=0 + CMYK + PROCESS + 0.000000 + 95.000000 + 19.999998 + 0.000000 + + + C=25 M=25 Y=40 K=0 + CMYK + PROCESS + 25.000000 + 25.000000 + 39.999996 + 0.000000 + + + C=40 M=45 Y=50 K=5 + CMYK + PROCESS + 39.999996 + 45.000000 + 50.000000 + 5.000001 + + + C=50 M=50 Y=60 K=25 + CMYK + PROCESS + 50.000000 + 50.000000 + 60.000004 + 25.000000 + + + C=55 M=60 Y=65 K=40 + CMYK + PROCESS + 55.000000 + 60.000004 + 65.000000 + 39.999996 + + + C=25 M=40 Y=65 K=0 + CMYK + PROCESS + 25.000000 + 39.999996 + 65.000000 + 0.000000 + + + C=30 M=50 Y=75 K=10 + CMYK + PROCESS + 30.000002 + 50.000000 + 75.000000 + 10.000002 + + + C=35 M=60 Y=80 K=25 + CMYK + PROCESS + 35.000004 + 60.000004 + 80.000000 + 25.000000 + + + C=40 M=65 Y=90 K=35 + CMYK + PROCESS + 39.999996 + 65.000000 + 90.000000 + 35.000004 + + + C=40 M=70 Y=100 K=50 + CMYK + PROCESS + 39.999996 + 70.000000 + 100.000000 + 50.000000 + + + C=50 M=70 Y=80 K=70 + CMYK + PROCESS + 50.000000 + 70.000000 + 80.000000 + 70.000000 + + + + + + Grays + 1 + + + + C=0 M=0 Y=0 K=100 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + C=0 M=0 Y=0 K=90 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 89.999405 + + + C=0 M=0 Y=0 K=80 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 79.998795 + + + C=0 M=0 Y=0 K=70 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 69.999702 + + + C=0 M=0 Y=0 K=60 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 59.999104 + + + C=0 M=0 Y=0 K=50 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 50.000000 + + + C=0 M=0 Y=0 K=40 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 39.999401 + + + C=0 M=0 Y=0 K=30 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 29.998802 + + + C=0 M=0 Y=0 K=20 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 19.999701 + + + C=0 M=0 Y=0 K=10 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 9.999103 + + + C=0 M=0 Y=0 K=5 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 4.998803 + + + + + + Brights + 1 + + + + C=0 M=100 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + C=0 M=75 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 75.000000 + 100.000000 + 0.000000 + + + C=0 M=10 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 10.000002 + 95.000000 + 0.000000 + + + C=85 M=10 Y=100 K=0 + CMYK + PROCESS + 85.000000 + 10.000002 + 100.000000 + 0.000000 + + + C=100 M=90 Y=0 K=0 + CMYK + PROCESS + 100.000000 + 90.000000 + 0.000000 + 0.000000 + + + C=60 M=90 Y=0 K=0 + CMYK + PROCESS + 60.000004 + 90.000000 + 0.003099 + 0.003099 + + + + + + + + + Adobe PDF library 9.00 + + + + + + + + + + + + + + + + + + + + + + + + + % &&end XMP packet marker&& [{ai_metadata_stream_123} <> /PUT AI11_PDFMark5 [/Document 1 dict begin /Metadata {ai_metadata_stream_123} def currentdict end /BDC AI11_PDFMark5 +%ADOEndClientInjection: PageSetup End "AI11EPS" +%%EndPageSetup +1 -1 scale 0 -76.5156 translate +pgsv +[1 0 0 1 0 0 ]ct +gsave +np +gsave +0 0 mo +0 76.5156 li +441.406 76.5156 li +441.406 0 li +cp +clp +[1 0 0 1 0 0 ]ct +139.704 75.6875 mo +133.931 75.6875 129.41 74.3447 125.655 70.6699 cv +128.993 67.2773 li +131.706 70.1748 135.392 71.3057 139.634 71.3057 cv +145.268 71.3057 148.745 69.2559 148.745 65.1563 cv +148.745 62.1172 147.006 60.4209 143.042 60.0674 cv +137.409 59.5732 li +130.732 59.0078 127.185 55.9688 127.185 50.2432 cv +127.185 43.8818 132.471 40.0654 139.773 40.0654 cv +144.642 40.0654 149.023 41.2676 152.083 43.8115 cv +148.814 47.1338 li +146.38 45.2256 143.251 44.377 139.704 44.377 cv +134.696 44.377 132.053 46.5684 132.053 50.1025 cv +132.053 53.0703 133.723 54.8379 138.035 55.1904 cv +143.529 55.6855 li +149.51 56.251 153.614 58.583 153.614 65.0859 cv +153.614 71.8008 147.98 75.6875 139.704 75.6875 cv +cp +false sop +/0 +[/DeviceCMYK] /CSA add_res +.705882 .682353 .631373 .741176 cmyk +f +180.679 49.6074 mo +179.358 46.4268 176.298 44.377 172.681 44.377 cv +169.064 44.377 166.004 46.4268 164.683 49.6074 cv +163.918 51.5156 163.779 52.5762 163.64 55.4033 cv +181.723 55.4033 li +181.583 52.5762 181.444 51.5156 180.679 49.6074 cv +cp +163.64 59.2197 mo +163.64 66.8525 167.187 71.2354 173.725 71.2354 cv +177.688 71.2354 179.984 70.0332 182.696 67.2773 cv +186.104 70.3164 li +182.627 73.8506 179.427 75.6875 173.585 75.6875 cv +164.544 75.6875 158.632 70.1748 158.632 57.877 cv +158.632 46.6387 163.987 40.0654 172.681 40.0654 cv +181.514 40.0654 186.73 46.5684 186.73 56.8877 cv +186.73 59.2197 li +163.64 59.2197 li +cp +f +212.816 47.1338 mo +210.938 45.2256 209.547 44.5889 206.904 44.5889 cv +201.896 44.5889 198.697 48.6182 198.697 53.9189 cv +198.697 75.2637 li +193.689 75.2637 li +193.689 40.4893 li +198.697 40.4893 li +198.697 44.7305 li +200.575 41.833 204.331 40.0654 208.295 40.0654 cv +211.564 40.0654 214.068 40.8428 216.502 43.3174 cv +212.816 47.1338 li +cp +f +235.159 75.2637 mo +230.708 75.2637 li +218.189 40.4893 li +223.614 40.4893 li +232.934 68.4082 li +242.323 40.4893 li +247.748 40.4893 li +235.159 75.2637 li +cp +f +271.531 49.6074 mo +270.21 46.4268 267.149 44.377 263.533 44.377 cv +259.917 44.377 256.856 46.4268 255.535 49.6074 cv +254.77 51.5156 254.631 52.5762 254.492 55.4033 cv +272.574 55.4033 li +272.436 52.5762 272.297 51.5156 271.531 49.6074 cv +cp +254.492 59.2197 mo +254.492 66.8525 258.039 71.2354 264.576 71.2354 cv +268.541 71.2354 270.836 70.0332 273.548 67.2773 cv +276.956 70.3164 li +273.479 73.8506 270.279 75.6875 264.438 75.6875 cv +255.396 75.6875 249.484 70.1748 249.484 57.877 cv +249.484 46.6387 254.84 40.0654 263.533 40.0654 cv +272.366 40.0654 277.582 46.5684 277.582 56.8877 cv +277.582 59.2197 li +254.492 59.2197 li +cp +f +303.668 47.1338 mo +301.79 45.2256 300.399 44.5889 297.756 44.5889 cv +292.748 44.5889 289.549 48.6182 289.549 53.9189 cv +289.549 75.2637 li +284.542 75.2637 li +284.542 40.4893 li +289.549 40.4893 li +289.549 44.7305 li +291.427 41.833 295.183 40.0654 299.147 40.0654 cv +302.416 40.0654 304.92 40.8428 307.354 43.3174 cv +303.668 47.1338 li +cp +f +324.53 46.4971 mo +324.53 75.2637 li +315.488 75.2637 li +315.488 46.4971 li +311.733 46.4971 li +311.733 39.5 li +315.488 39.5 li +315.488 34.9063 li +315.488 29.6758 318.688 24.375 326.061 24.375 cv +331.207 24.375 li +331.207 32.1494 li +327.66 32.1494 li +325.504 32.1494 324.53 33.3511 324.53 35.4717 cv +324.53 39.5 li +331.207 39.5 li +331.207 46.4971 li +324.53 46.4971 li +cp +f +354.087 59.7139 mo +346.923 59.7139 li +343.654 59.7139 341.846 61.2695 341.846 63.8848 cv +341.846 66.4287 343.515 68.125 347.063 68.125 cv +349.566 68.125 351.166 67.9131 352.766 66.3584 cv +353.739 65.4395 354.087 63.9551 354.087 61.6934 cv +354.087 59.7139 li +cp +354.295 75.2637 mo +354.295 72.083 li +351.861 74.5566 349.566 75.6172 345.393 75.6172 cv +341.289 75.6172 338.299 74.5566 336.143 72.3662 cv +334.195 70.3164 333.152 67.3477 333.152 64.0967 cv +333.152 58.2305 337.116 53.4238 345.532 53.4238 cv +354.087 53.4238 li +354.087 51.5859 li +354.087 47.5576 352.14 45.791 347.34 45.791 cv +343.863 45.791 342.264 46.6387 340.386 48.8301 cv +334.612 43.1045 li +338.16 39.1465 341.638 38.0156 347.688 38.0156 cv +357.843 38.0156 363.128 42.3984 363.128 51.0205 cv +363.128 75.2637 li +354.295 75.2637 li +cp +f +390.494 75.2637 mo +390.494 71.8711 li +388.129 74.415 384.791 75.6875 381.452 75.6875 cv +377.836 75.6875 374.915 74.4863 372.897 72.4365 cv +369.977 69.4678 369.212 66.0049 369.212 61.9756 cv +369.212 38.4404 li +378.253 38.4404 li +378.253 60.7041 li +378.253 65.7217 381.383 67.418 384.234 67.418 cv +387.086 67.418 390.285 65.7217 390.285 60.7041 cv +390.285 38.4404 li +399.326 38.4404 li +399.326 75.2637 li +390.494 75.2637 li +cp +f +416.446 75.2637 mo +409.005 75.2637 405.875 69.9629 405.875 64.7324 cv +405.875 24.9404 li +414.916 24.9404 li +414.916 64.167 li +414.916 66.3584 415.82 67.4893 418.115 67.4893 cv +421.593 67.4893 li +421.593 75.2637 li +416.446 75.2637 li +cp +f +436.469 75.2637 mo +429.096 75.2637 425.967 69.9629 425.967 64.7324 cv +425.967 46.4971 li +422.142 46.4971 li +422.142 39.5 li +425.967 39.5 li +425.967 28.6157 li +435.008 28.6157 li +435.008 39.5 li +441.406 39.5 li +441.406 46.4971 li +435.008 46.4971 li +435.008 64.167 li +435.008 66.2871 435.981 67.4893 438.138 67.4893 cv +441.406 67.4893 li +441.406 75.2637 li +436.469 75.2637 li +cp +f +51.9624 26.9282 mo +.000488281 26.9282 li +.000488281 16.5942 li +51.9624 16.5942 li +51.9624 26.9282 li +cp +.36173 .282292 .271336 3.05176e-05 cmyk +f +51.9624 43.667 mo +.000488281 43.667 li +.000488281 33.3335 li +51.9624 33.3335 li +51.9624 43.667 li +cp +.517784 .428779 .407355 .0620127 cmyk +f +51.9624 59.2617 mo +0 59.2617 li +0 48.9277 li +51.9624 48.9277 li +51.9624 59.2617 li +cp +.636347 .559503 .528374 .281163 cmyk +f +51.9624 10.3335 mo +.000976563 10.3335 li +.000976563 0 li +51.9624 0 li +51.9624 10.3335 li +cp +.16965 .126406 .120455 3.05176e-05 cmyk +f +51.9629 76.0313 mo +0 76.0313 li +0 65.6973 li +51.9629 65.6973 li +51.9629 76.0313 li +cp +.697627 .675227 .638575 .739559 cmyk +f +80.3838 26.9282 mo +58.2456 26.9282 li +58.2456 16.5942 li +80.3838 16.5942 li +80.3838 26.9282 li +cp +.257298 .97525 .943297 .238193 cmyk +f +80.3838 43.667 mo +58.2456 43.667 li +58.2456 33.3335 li +80.3838 33.3335 li +80.3838 43.667 li +cp +.343328 .97052 .868589 .526909 cmyk +f +80.3838 59.2617 mo +58.2456 59.2617 li +58.2456 48.9277 li +80.3838 48.9277 li +80.3838 59.2617 li +cp +.574243 .753933 .672236 .776303 cmyk +f +80.3838 10.3335 mo +58.2461 10.3335 li +58.2461 0 li +80.3838 0 li +80.3838 10.3335 li +cp +.0256657 .974395 .923949 .00140381 cmyk +f +80.3838 76.0313 mo +58.2456 76.0313 li +58.2456 65.6973 li +80.3838 65.6973 li +80.3838 76.0313 li +cp +.697627 .675227 .638575 .739559 cmyk +f +108.472 27.4126 mo +86.334 27.4126 li +86.334 17.0786 li +108.472 17.0786 li +108.472 27.4126 li +cp +.36173 .282292 .271336 3.05176e-05 cmyk +f +108.472 44.1514 mo +86.334 44.1514 li +86.334 33.8174 li +108.472 33.8174 li +108.472 44.1514 li +cp +.517784 .428779 .407355 .0620127 cmyk +f +108.472 59.7461 mo +86.334 59.7461 li +86.334 49.4121 li +108.472 49.4121 li +108.472 59.7461 li +cp +.636347 .559503 .528374 .281163 cmyk +f +108.472 10.8179 mo +86.3345 10.8179 li +86.3345 .484375 li +108.472 .484375 li +108.472 10.8179 li +cp +.16965 .126406 .120455 3.05176e-05 cmyk +f +108.472 76.5156 mo +86.334 76.5156 li +86.334 66.1816 li +108.472 66.1816 li +108.472 76.5156 li +cp +.697627 .675227 .638575 .739559 cmyk +f +%ADOBeginClientInjection: EndPageContent "AI11EPS" +userdict /annotatepage 2 copy known {get exec}{pop pop} ifelse +%ADOEndClientInjection: EndPageContent "AI11EPS" +grestore +grestore +pgrs +%%PageTrailer +%ADOBeginClientInjection: PageTrailer Start "AI11EPS" +[/EMC AI11_PDFMark5 [/NamespacePop AI11_PDFMark5 +%ADOEndClientInjection: PageTrailer Start "AI11EPS" +[ +[/CSA [/0 ]] +] del_res +Adobe_AGM_Image/pt gx +Adobe_CoolType_Core/pt get exec Adobe_AGM_Core/pt gx +currentdict Adobe_AGM_Utils eq {end} if +%%Trailer +Adobe_AGM_Image/dt get exec +Adobe_CoolType_Core/dt get exec Adobe_AGM_Core/dt get exec +%%EOF +%AI9_PrintingDataEnd userdict /AI9_read_buffer 256 string put userdict begin /ai9_skip_data { mark { currentfile AI9_read_buffer { readline } stopped { } { not { exit } if (%AI9_PrivateDataEnd) eq { exit } if } ifelse } loop cleartomark } def end userdict /ai9_skip_data get exec %AI9_PrivateDataBegin %!PS-Adobe-3.0 EPSF-3.0 %%Creator: Adobe Illustrator(R) 14.0 %%AI8_CreatorVersion: 14.0.0 %%For: (JIN YANG) () %%Title: (sf-logo.eps) %%CreationDate: 5/13/11 12:16 AM %%Canvassize: 16383 %AI9_DataStream %Gb"-6CQE#:E?P)cp`JeE!#BOOp5hCakmA6JkH;#C[\0n=2N3@:mV.Z,h2aitO1`'=rl1._P:*[lX(oY[<(1n1AL,C86O"cen`!VW %D*S!on_870^Y=565JOl&e"*slF)lJJ.d!e8rl;Y.]_u89j5)/!U"XoefgB'C,C*samp5J9CB*PCO!!5-r:91"TAI6ZiJ66epRaYL %nB8H"+('N1qqK`[_)JRdroNPEpRhHFDYsG+Rt!A(D>lTopA"(SgZ,3X+'sGJ^@!?O>5-e=O71qTqfb8Rpp[`)iScL7f`.8Kr5TnP %0Ba2OB(0/WI.R?XDr:O43dpnm?[mU0J&!_cDs?_/hL>8%Y5olQ0Z`)-rla3k!sGQe^\ZR>]`%9S%pqN8rpoL+a8bf?H0"-ahg]nL %q;7nA"=6b5SXjEmmN:;7q#:6X05kQZ>]BGr%]1OoInDkK7B5s%R.%c_DS?K%hp!nIf59C$ro)\fs7dm6esgk*^O5n:p\_nCIeSSp %C@h8E2t-`1G]t"@2"CVDc#8&Ys7Z%KIXLknLP_\@:&jq9[r:0AfP:?k"F&,?%jhgYKY:]Eg-rn>Bh;@:(J0DEpPKfd)/8GIiOQK^\Q0( %[\uAV(\Af_aF3LU(&c/tL6qr2jm>Q)"N%J#hmS!2l2GV9ipl\:=J=oe5ccNUu!+Gl*!Y[X\4, %\-?k6H&r!GM#Wfns6k+K)E+@`2%s@]^KPesYI)peLTKI_n%\s03rC-ghl0 %#lhs>`nq'@GJ\"`D"@2&(;:UaO*-IQK^&?kaE`ek(3u58Ir+O.Yq/Gl@/^*]ZRVJ#n@mL]?rq17%FBo(2C.M?>hY`?/AA*Zr]hf&Cu(H/U^FdGr;n>l7jp=kARIkRZ7\[o:Mh\&6epf).,6 %+9%>/(r,V>GYYb#rf;3kmEAXhft)BPk4f7Ah29+-.uJ1'ElJg5"l1!+VEF<03hCJC0$bJs>ZX>NNQ7'eo]b-m\**5ULI]WOPHgP- %SEGWR378>tDqj[7`dFVp[I#N9VhY)-h2:q9s0-X`+l2C"Q$&DI3oGg9-F%]_%3;L0=.d\7E_C0qqSD&_'s7Bna5=8]r.?O/J(ei? %0jfXMOS5/n;W?$i2uhs_T6&RrBDL4spm^uHJ$rS\gj\jUq.dZW8GgXrLBE$D^\MNB5>9CCmI5U3=8o:npc#jXRs/p5*]Ft[qJVg, %^C>J'NUSUf4MnA2e0sg5+0j/j7,R>h=M&gZSbH5.^55h49&I\u1]Ol\%IK53P5e,NUeg6I^&DrZfkiV_r[%Ken(N3)2d[R*ReE4u %rZB]b+W_:>(]N8:K"uTmX)t!Qnht3S%c$4=pBJVM90DLSc%Pj#hs@2Z^7RK5C5U&WepfN&QohJ6pY7ehrbQ4m5(/kt>6.h\5dV4a %(4U8tRmaTkpTSiCC]Tl_=aN_er.ND"CVLC,KHE"!j&3a,93qVW/tdgjAP_miTK;no1!^f0a9i#)Q2[dh.s %@*WJfn9=A(C]-3;hE8Da%e(!XD_03MX;KM:_9k@cTH65OmC7()UR9afOMCHINa1I@hE'n*o3.[]LR;bh!^a2HIfY$HH=j4/mu-L$ %(_PLYofLgH1unK\"?T5V^iRfR/`5rn=eYU.hj_B'#n+t.j50[Zpqr`Xh_Xe]L(tY#/M+?'B-i"9qb?BKGQ;ZoNR/SncWaZWrE%m= %`W5UDES^:>&@6=nOYSX"qo*k`$Wi8?_cq/^:$,cdc#1GOJuot+hZnMicPnraq3gmB"J;V'Y/tUC\E6].m5Xe>GS>=^dXJ[A2r^,B %)BiPtc@G(U`3tN4ha\Sm1NYITQ8,SASBtF8UqNADZT9U*l310g6d.0]liJ]"e') %rmm?PF,T?3Dn^-$r0u8!;kL>LPr_jG2:Z;B_6]/Oj*Hc.M0n0+`PT,KrcSNO0AN8*[TF1AT-CaaR;96:-0(bEVS?dkPVUXUbNRcX %l[Yb(Fcr/c[>7>Heju4o9[-1ZAG,\6*S8o-B2.Prf67*7mGLQZf@8rqePM\94$PNuUaS;94tAPL*7;hYXVe`)N+`hTSTqV_I]fbHH_7\=qcDW$H!k,$7"*^2ru&Phh:=H %(Kt%?Gci_J_Qh8=e/c>C+ZPm3A;d"'j;k7IC:PCs=,oVdPU#L/oX(HmNm$7eYp)IcI`'5Yb5nBn-+%6<^T?q]XmR-u:&(6(c@M,c %Vl]Z>XEuBPp2tFOn'#:C>]?sO2UZ>_hGH0tfo'Q;?N!B0ZcR"8MlY-f$(`W2K'/D3J9ME!^Si["F"-FBR1m!Y'1kmO[l$3P7@FPA %Ta^%&n_Z0MG$IJm)>^g_,,0iL;p4'`j2bl(;f7Zb7XJrh=MfHka*!&T%h,0)bt9"@^?SqEMTGP)cFiJshU5D3ra!&Uo50d;.S&o. %9&tZ!p%\"R.e>kCD.%73:ZQfJeSZ'2V2]JS73\DUbROEWVs?Fm9]flF)mIi94:\"'k8dlIV3S^%?QD=ZMcrOJC\R&qWd]ForSk"F %IsV.Z48uD^:#C?ipro`Unh`oohYM[+oq"jS&_/%B# %hYdJhGn"iEqJNMf3dptgpNPBdDa/^J6g^(%Nr:^!iVpQ:KDOcWGMCG.rp]fsJ,&[#II24UWqJ&QJn"[CNG&0X)LVJ[O$#_+:Qc(. %-Z)%sq3-.4e3V'oaEC5:cW5T"jrp\!,SBVLQ3gQ11bs8DQTDr1T+r?],VVshBU+oDNEYM]As/3_tE]D6@A %Xnc$SR9u@r1MriPVEL0]FI\AW'q7JEXg^*N?mCnH1R)?7U9\"8KZ=OMG?2]F[XRu#"fZR\j1D@:%=p.u7ek`1,_d'Iq, %BUO;PGCC(ai/dI4"*LptKh.`_SEFADc+KTko6rmIa"RZig710V&46dbPctJKYRC>I#fep@ %41aWi,cKIOJhQ76k^!RLHp=GV6Ra^!)k+#Pc.ISZCq;H5k44b=cPVVZhL5(OmH#EoDW?P2W/&B[L5@ADqdt4=SXmE.?/",GtE!QH!(M,@XWD[K.II;"C^L[,K=gb@hr`6 %+qC7UoFk\m.:stSDW3SBi]\EV*+>Bh9V5,M,T(,]S\@ZAD4k^oNc_m'=@c[3#LbQn!50X+3>W5?[s=>7q#KMY-e7N"_dfnqL8A@kd)-257X4h/jhi@pGhG! %Ag;r*+`HC!D=b2P2r!_C\(ts5gEWB+h)Ra*)-/0&cn`heB"-U`G5L(re\leB3:$>154%;nR=3qYrFWh#n'D9E5Jk^NJC#?6/\od\ %R.G@N*4CXY@=L6VNju-OL*7Hjg#A!q/GkWO=HqjOcjlKQs/OhQ0CGVeJ*'0#lo"QF=5osM7ELHc(1h"RAl6!pZ'ISUkK^kC%OJ4s28sWANCntmDm%j!Q(drdUA\p@F2o[hs3Q=,"42sD&4iT\*5K5t.6,l7,6R/PNaN3R9#RLYh %P&ZYiP42@'PAuekPOXhkZku2/)CeJ2/B(7Z*4&Ni/r-29rn0rt8YL>anD?]-OclOd.8bu*f.=m6;5>QLA)P+YC%PQjr>=B3B*/O5 %(=`'kiAs?7)V$T6[Mm;?aE0As:G_o]BCYJJGJW,<@n*+E+^9_E^G0*op8Y^Y+/htJ$&"SmU8jjRO\YV`?;V[=^%VQ-,ck5p2Oh,F %FI2Rs"N7eCH;.]1F7r_TTbe?Q+beS6fkG4"4\u[cg?u#kX2=264M-+?_co)rI.QC=+5VGIH$9)oEuS8R"b^@,:tbf@U6d'kU6m-- %03]D$VGHDf"QMnS&43cs%Kk6^;J!;!sX("pAHAJe!lSn8h1K5jX?iktQ*X,"?C %%`X'[H/m:S%TA*X;^s$[g0ptTS?4U0/#"JU[51a2C(c\A(nIUDfG+RuAqDTQ!)#F*OA-CMQih0c*GfE]'ZmSq,Acui\p(CO-_O`M %+9aj\%N?N#)2L\68Y-C&49W-\SC8SW?ub@fWFsmWA\M85?]=oG)&_VunuS@NQT?Y<"D4);7D&L3&J+A=k?(n4H&;_g3k]C0+Go,# %Unu-8=B\-7KH$OT&*aMk#S5RVg%,1h1.*mb`(h"HaiK"Gn.5((A5#OpEUPV.6V`1\%#Bu"6s'i&).5CX37!QM'Me-t9?p %U:#%87hBgiSV0F7a/3o;GQr5HU3MbLIBp=;Pd,1.#2$3(.Q_]/"aM6#;s?Lc@A;9Y2N?pj4u_ %Ck7?W(e=]?,leDJ5cX0gg)`QRhnob5$[fCu+;9Pc@65F$7Wpio[lj`Kh#S&COHWrO%NU(]Hf,EH/J'#o`)DbZ %:37C7i&M'V-IU0K9c(NLU(^iU9'_?!iX[Rp*F+COmta@VW@gTI'9VdW$T\R]pVEk[lYVj+(K0Rq8gOBsP\<3Oosn,mq0n'l@T^PO %0A*kJW]'NcZ)0l+gq3R%_;Blef#d.e@jBYNq\Rk]BhL0cE2F3)5)_<0"*I_R[7l]PtO1XEfAE3e[ %.)?38OEpn,!Y[!_p2o6Md-3aA=am633uliGa8KG]hsZeqR-,Y?5YE(p'6=UC+VqU7esM:?#%E;-"=KqEH_RB.8$aB0)2MrM[@E%B %mYN\_8mjDiP/1'""1'5T2h:j'hEK9oUdn/R.#HkkI]gDF"4>V59?oK6HrX"4pL?8 %J>.o)7Q^FX%.\pmj_W!#>HIO*_M[Q"WR<@+n;eYU^AdWqgUlnWFD#%]=+DtFZdKO7!A(ELLm]YPlJZ1>NtZju-Mk[&jL4aNh%bbUnff](9`*``gsh!%k/N]N9-U6$2k?fhQ"gV3*lO!Y"&menY0I]B])2W)MuREGZA-K4KP,kj8==G3FgebX)Djucb+^sO*eJdUI\NXOb+to(e(M]YL>^DfalD5?93ISfphrhIWinD:-hjf(X(rW.:up^8mWr\ %;;tD=.nmocl)j`o@tUmpdK1%<(UYO;Wu:c15@co)_t\u)CbDe&@jMmpin5K*%2s%g@1Na-*=YX$,`a$=-9mSs^8IRuB1!;X+fg#< %)d4Li4cleaPJiJ:]-TVg;'ks"%;IEa4,8nEne29Qa0R&;ZM[QV\@\cObpq23:98AcI4*a,So7?35F(Y&[Pt8(IBUG(EkP*<.at^l %cgj1ko,u3q''38X7qFR#nA(PcIRiY9OQ;FB]-Wkn8+LsM=ks*'5TtO`!dZ'LgkjIc)S)H=]QEpU[_i?O3.3Ll=7O=8MNL+5=-`^d %"\=\7EGa^@FF_fFFHkM+EOdTSIP"j.nqg;rkd!',F:B9uAoJ"@?,`6O=`?dt;AlPfa^bU/Z6UV3 %o!lBSA!&UJ.#mVNph#].*9jCu'$ENJOTnukP9#ao$m_rH@AiP1:Fe(=5,o#U`]`q>Iqjc4RUWG#-KPU'&[Ub#EkJt'QGoAGm/B?) %SLlD&ClSEkb@\/HPEJ]K8NfOrT-aWI&f,$m_#"+`DOQRPIsV-[@oj/JFGK`s[^CX!AZC,XWg'?CQ:b@2EV43/USCQH7FQ%t3W3AY %-[Ntb0=F)9m3q[\<:47br7GKSjk.`;H_e]+1#2Z]<:Lc>BR=pk5TeXj)6-B]%ZOQ(Au0*[[ZFidbYo\0[Ik]>^jegeQd_VR]X#B& %<1.X[FQ2YcmG8<+WAWed;X(QgJ7>*mC,en-U%hNWrs*,\8q4Zns@l$2`+Fme:U-"nI;(Kk$]:T6`72U+A@e$%H8d@AARt,'IX2i %WafucJj3K'V`3/(3j-ED*[L5t)(U%WVU>l]PoB>BLK9/p:Yu#j2`9r!4iXOD\03ft8be1,J4hO]Qa7qhN&CBnj!:qK8sC7N3,Da+(X&s7B)L;HrM.NO`5D24gH%G\>g,'jDCL&>*GSii,O1DAEbpkQ %!6%3L&Vs>$LdiA@3ZqirU9GeM^qgaV!-%8qVMDj&,cF%^RQ,&b`QY`G\[C@fQ,"J?,Ce8gk.6qj/o"/Ak/Pai$3$Xn3=5WNj*t58 %ON%9;aRNPgJ2@\5%g8V7AlGIU3$,"e"LXViXVd>sI:Q06%[od0Qgc+R6jP6@d_2/ca\k__Rp+OlDS%]/0l7Ac]>IG\g8*PH;S"*, %WIM((),%p4V(s]^3<`!ql6D3i!7$b?CQ!Ia(OpTKp(Sd(m'-RJ@JV\\P@WruE"gV/'IX<]2cC2fklqJ%#9k'7&]?])h?d=L;@MXU %82$'[1UUUoJP9,o"k*c(&j:dWia?Lhm:ncN+q)1K-86;-!(\F:,6<<5rn!;Mlu[l%D5/9/2/(`fgIV&>:O80( %mS((RNJ):i-'WbSAo1SOP0-l:af6dt6],'/e<7!*O#$BO(81#.-*`6*9*m)K5,gs#@6.a^YoT(a*,c-kD?>3+e2?As$].&^=1IZ*K0E`CRMib[AP7]JmD_:l!nA^cnkK^?:u;%+[9<%H"# %+UU;sFWDcrHd0R$PZ?c;;!.AgS:JK*MHL+T4i'9dbYoG[RA*'1Wf,O*?C;B<9Hlm3m=*2.!)In,QiX7Bq3=NtZBr1d67W#>DlSI8]-`aZ7\lpTog07F[YhG;k0W^FG+b`@24W*G';VEGU %WE&hZ3)>j+rb!:05:Q"oZ"@_-G^LYE=FCZ$0&(0!\ZXZZjV^-j:DPs%?7=Db9O-h9YuVq5-ZZiB$,/*]m+#M$\Q5:):,V3,%A'<` %.C%hR8@I0iXW_3RL7!'0UV>k"#UGeA3g(5BVn;1qQ(1kD2oBod]2GeDHp^*"lP6h@R^T2/HgN?mfVi8f=3:"SH4!]Um'P;;\`SY> %)"4'te]jP<&#U.F9dt3>43kg8;Ac?^EWdHN3?BkcVS#P*Y_e>Y8."I#p7,n;E:tXnBo/#h2pWr&&U63<,#QO@Dr8$qAj?8957 %hri*t0Wh[tFDX.[);G+bb=dV?p)V#Ukq,qUoeO?>J),[&Tin %;ePL/"BsPt>"Y,R/(]GX@o=mQX>QIj]9[']ZEd2k$(S.hiFKN9>OsW)#Jp_&YX&s)PqO7?/h@m!EL`0F;T %0-.cKpsS-mFEh@(d`5rPrQjg!aZk8HnJE#pF%G %V7XK5mOmM^U:XI<`+=:ms&!9d&B`]?9*Wf%m_Q8"f/DP4U_Zn(!WIE;?^&&:Gl@k@q$h2\FK-,]FQ<.gN)]*\Mqli#M_6F;*`ZN- %r(H;DVU3\FML!4ek\"1,r4!iCJEASfHpniWMn)/K]iOjiMHNqj?WM!HX15!n'5dK$f)$^rFBo&Fje7Y$QSZ.TLdWo]V4Y?:(\Q47 %HKdl3oM_fWI_PdY(YI[S$%!h(0-om3f8r4=-.Iq9V8JW0?TNR^L]8*2pcjDRrC')&U*6/Wm"4$B0NhI6$.5_ar5"gt;dT<#h50SC %GGn[8.27B;G$&A%n*B<]XKc'51$GN.EKaa2f:H7:E(cs'LKnl@Bsmr^r=1cn=[&V)G.mnGIYSlr/>!NP4C>2u^KCGkkVTF%dkhtF %:3V/20p,#d%iR:YG8dB3;)ZH`]/'X&=@PQB)[mi"1scEJEq;)V1"&M>a#18#&GFm%DB/7H(OA7-;g>jKiBOVG"Mme3^=lVIjn\>g`_NApcCm'Q@h2Sb#EUhA4K8>0*fk>'^idYJ@2bYtD<*pnUYq%5oVmpjaXE[!1[$*VOj+r8rhh^@u74 %_Wp8h^V$`'Fa'JuLDu?:NbU@TLD$Vn]Tl,eQIhk0%]dA>E4Gbk>]KN6GkppF6sU_]rGrZop8bO!V(WX+ %Fk,l%`EZVe;-)+DE\Zal\tP?h9`O'3MAbhZ4=Q3pC[]sNP#!]>CmQl:=#/2m.]2(H31mm`lHGemlPD"YeYJl7<-je$RYg\@Ue(2DoLI[$%qF9NsZWX?L\3NiD9B %qde2CLkcu!A!1NN<6VLmHK>8iq&/_tA,edDH?)&pILgm^rXeO\F_5/a-U`,M'JIFOmg'YOE0LdFRO=G?%d5Yrf%2$FLthO@UrRo+ %j40Z@k4)%+."Cc$f"%!glXSfEQ?Aa=Y1J?mS8Na*WRd,nB&.B@c%JWE:hN.>-4uC\ %#q[,?6D11$[+\_fhZL!ZV)=cWd1S%\L6b;'kHGqmn)$9L'CSMlQgpLpmcV9*>OSj#F.3&LrA*8oEookFrOm:^iT41CL#847SA:.$ %bD"a?Wj-<79Z^N)>q'3WO,[m(-#N:^'&H*9Pr^jmXgG0,GGPFZ,l5uDNOA"Ima=(TEhSfd9Gpl@A'3N:g]*KG2VtA`ZSKpgkUZCB %5P5f7`ikYa2qG.u^'Ofi(,THNV5sS.Zgk?0F-c4BX4pD<,U0s17RQpESDL-V'L>O_=>ZqlBd^diiMb:F_Q41k-m?CXXQ[>4.t6bW'[i`2?e0/mrm^EMKO8@OGCS$*KN %5dE;/9'?+Z=djO:CC''rEB<)!&F %oJ2kYcsE#\p#oP4m(,7QbbTDjT7^^')>u:Q^a4gW$#"g"nDZ.N+)"C[2JpXF16VU<=YPSmBe4u"Ol7k]As&'^q(o=f,qBrQjcH[V %5:`:rRJMnmH@G/*:mdAl`D?KW$E^M]KiKpAQLE$q%cnrZ"Xg-K>MaE/I=B:R=Yfs)oBp)/muof&c+>Nagn&8=]Wfp %Qs%Q)bl[^!On?U`\nWL=X:b"("5bCTh)``BZAbj!*+aUKia.LF%DY1MNdk5-R!epR>rl)Bn?3RR:(/!arR]1\dkUcf1I@8#$$^HG %Hg-X,4rY\Y$i9YNJ7lGt,3>t@8,c#T!.!X=8rLVIOOI%O+h#P(HcD?DWUBshRjpB.4M]>d'2Wc\[KC!p79+Ml\?-Wq;$ET^23CF6 %c_HsL\nBQnF7225G6H %/94ZB,JA3o?`q9_lcP-.ji+h%@U48aY.RkT?[]-kOTqq.D=]o9`EOJI?4-uEbd:7Y.KSN=,)NiSsK.!:l/.:\g%P0 %>*5Zq=m/6HPM?eTB%e8$qn5ZtM2++504j8LR4jcZQfRs)(B38I_K]c_%q['Tp$#J'/u)[61=++19uQBg0%RdLqeL@>eB8irI4'>R %gWd"KDk10Zj'kRPJ]\Lh/I&'OBG+GH/?K8SeNkP(<25kae7/s\SXk5Vh3b(P)/5dsXlL&R1X(O8m0+"'-?.oRP$8jPIWQ`[]'qi@ %abGYNKgS<9(G6lAV%Gqg^ha/mQ7n@>ph;4"_tpoZ88`.[:N9;CPROeKRI:lqDGE3qEf[895E1])?:*Z8%MIChN`sh/bbUG14[^HI %""P6!UekGFJenZThM%bL,+2,[Siq[K-orJbO/>(7YPk/t^$;;*ohDpnWfB83!*)WA#,l!WheO+#BGAK- %]9.6d4Zgcs/pFG/IdMAcec/9dY-OAThGjcT]6@N5l4LJ[_J1[L4ffEOjXqVKZ.]\n=_qY,+c$`(qMU>K]A1_I:OptQ[&)%$BBRMU'QoBIC;SSdSN!]Dn!k#Q!0\@QEqd/?[#]\foP$9&mY-ubrr%m'3J7gK;8brY!5]?YP2*HSo"k;or0\_aK1SQX!e#'_E%M6`O"ngXe$l)fN"ohG#r;Sb1mnCnkaFb\M_1``3\b15HjB>:"I"n)RF1U=VtmKr*jtV9lI-oi4V%\HCrIQE[is$1rG[oBVgT9;cI]6S4cac5CB@XQfZ"5fNkGIe_'D'Z2V++sjbZ_R$Sh>&qbe)7N:&s$dlm^cqO0&1Zqfl/A%XRs!/#+_(Ujd>`(Gg(I^)6ZSA1d4bRJ;c+H6' %-XPe]kLo$D%Xp]q3%olRQZ"J^9c)C?I'CpQrOd7ITA8D@?C0F3E-41#lll?".<'KRfq&tc#$eZB>Umo^!XYT+/'Dn4F(Gr3?r"QN %c35Pb0>7BU(V$\MQH:Jl`GiIo[GA">cDg2ceTOh:f>I-[C;^>h&$)NJh*-7%2F,c]"cKg\70EG9Ae]i7<1KQOUhr8Qj7!j'mh=rmHA+Qq:nSR.&k$`JogUrMs1T?kB %g:GdoWV5W)k#G0H8Ih:oZau9d_2C^`@+B[YB[U5SS=QM*OfE9$2R.#eA@n44`mjF%+MgolT5+=(MmqE^R\`\pA[&")24-7bR@:tB %.&rT>AinaEJCL8r8"0t4",ihORj%&1lm %AW-]-aP04^gh@`:BtfoQSpV<;kF3ii:Ot)bY[=^uj-eIY(Z*Z%D+cbjS'WIY!")nPH%Z?_b!+S_\+"XGB1ek=ft"ZTXaZHWgddhU %jZ=ncl%uX-;o))A(+8YuS<=7oD-#fp^J1Kbf3Ppm*>` %f1/;!D!Jj*fIum.>&SB@9b-qj\QcCMSiEq0dV(JF7O1o@[D@^kg+A<(V^.pL;dOCHFC)SUdILR`o^cgM21+l4l;'dT5sEcr4+=\ZBS(fqGXO+d'WH`aMZ;Bk-Kqld5ZdRH@L:c@/JEe!1)BanKOD,O:Tl[cXdS$[Fk\JC?G%0%N8 %Cb'3JGpqdMD#.W%O)mN9)*M`fY8+AF4?TGW4?kr@1!eV1T36rLDa_bKg',hQYcZEnd4lLLadYmu-93'd8l>(cXN+eE.7U]Eb9QP" %#NA\IE\JMbnRqdVp8`X\o,thMn_JddgdZJ@Y55^B'f&+1-;eV/0k,1A"Go\_'."tu8t),,.=iZeAL(WCVA#-2 %#bC6aND@1XXi5ASEUZB=N)2@.Bs#b\p\]RR#(TUk.9-Ph?=P:]o2IE9o<3nG.S#Ft5 %'iE7GEh&gMVm6ZW'=71j53GEtdZ`N\])"uS758QrJ[6&%SYg3Q9`_8')Hl=C)l5$"FCh7!BqR"B>Kh]/Chkr3r<[mTUG+&p`XMC= %rfl&W-*3=Wbot.-;pt7K&K8a<=Or>XF_#7[a';pA!@i:cm@L,lM_JcG":\+=4"`!UEZ)!\027o+8 %Q"jHu>"5JTGd!$r1`Vb3AWjWh9.JH8L1!5.0G!R%CQ.WooGUuIF47gH-*=O]eu7t7 %=t%=Ti28$<8mKno!>q]\/bH+\r`E*TT)HRTD!-J_Bs^jq()sPmHZ^UVF:[\X+l*(^VGEZNH#::Y+l[q_.=RBNH7`+;Db<,LOh]r!^^S*ZZ'eFYZ>bG"1PeE25-h:5(kl_@2?\P+'CpS?U[eok+3G1Vg'H9F4ZO:%H;@QBo!`$KH(-e,!W %>#))GCreBS@i:>)_^)1C#eO/"cjjcph&mPpio*#\\;hqG@N#klb@$cgeY_rCdWhE5Y<7`HQ$QZf_;bk14GUU_GL_1DI:CaO %(nE8d/\.f_)Es574Q>oKmP>'qN7[(1XTIOZ2T%[8nsn[-)*ADV807)i?;H`Bc".sVSj%1G$nNd!7371=P>N;Rb$*$#!D?G@-(aU^ %[[_mT`\g[V(ZW_R6fnLVp.H8tDJ@$bE=P^m:b1SqE-*_Jn5+57,uZk#F55dfD>BS+p2LVDmFPL`Fk*,&=]XYF3-#ej %\9pc4SH"8Hl`P0>S'@pbh+@0NY8!&J(Y)[XJSo!LHZm?g&`E762'\'g+ONV].3Ou9;OmG07c3''E%Q`JkYMu[kYq)G\&0HEnhWS% %9K^l=VMk!.Vtb[e>C"ODe%UV\E0bTWjSV`SSqcX5q0_2/jq,q)L$B)O<#2JQ"?Jhn;ANldqSe4)PdM0:\D!%/IB"b"@S`ek#sFII %?;\cH?HKf=jW\\',!(^ZrNYe#"]a"$,Bnr,RQHe-.Kjs)R9)PE'DL:mdf=W+a.S0?-'*:,@/#Jk[Je!\bWr^'dXq-RD(7am5(Tn]b%0m`@O/>Ic8':%Ti!;Hh$;,jNjYj %$n\@Ac*\3?encBH;B;t\f5-8+A[.9hN.i/0`*?_ON>%ZG#3hrE<_W7]S10qcA`;-Mc?ai>>W[(&0ae3TjC4^aX2!F"cX^b=@.QS^hO`3k %e4a^2#@GZkQT94cKe*/*=-*qBnu3)#52U.d>o$:-eVh`N4[7j,81Tj-L7*U(16\ALqn6o[u"r %5gj3lW!_:B$[Gl>Nr+Qs-($WLJen!@hoPfgQSp`$g$W$SP?)#c8ZnN]U-=\KV&sb!k]*=rbsUj>n51XT&/Gc<\8Cgd]M9I?XefB %3P068TUeo/kN>_u.Gj6NVf9r+jd%5H%PI()bgdE#O]$^Uo\$;Z/EcYJaInO,Cce$"*etQD?)MkQND1Uq84#.or]o!qHr:_>BUL6"#lAK?o:);NV.1/hCZ`obXGG4]Zj$:QqNiR %Y$b?^=^HF6p8d`'d-Jin/RpF!1&1%UQMA'fK.mXCUGt0gUS38VMd]hr9Ror.0+toW>KMN>fP^:217*'HoTj$^q&np6$F$,=9VLfO %cL\[i?@RA*-FrliJTQl0/+5fH(sn7pT@Ef)r&q\u`^]n?Y&:%2H#Q;5^;1I#6!E:NWO(IpIesijj\p*[W[-ZSbd?o*^ %^Gou@2H9;dMgbB-]@D7(CW\k^o.>d]/j\QBgRP'H>i)Ee]LcmaA[BV(E4b8CbCqTT0APnVUQJ%=rteCGlUJ>]M1nZH`&aG:a4[@; %I]OFPY.sQ#gi]eXj7nf"AFqk?9=`uBLE>!0%5Go07fM-\$!#&,7hTJ17EBH8m,/('Re:T7Ue`GgS7l#UDRk<&*a\iYUWRG5pu\fB %gl)@D(,&G=j]q^R>drYKeEUc?DDe7VEl3l!-T=IWn`MVI/ha+@MRiZXmH&%&Y#n07>/`S19]K,BQS6#9/k2fYG1EaZil[e+)!0i$ %)jNF(9bCAO,E[o&>Pe8o2riF:/XTJ>7L:S(UR6?bb4=7*[:o!Xs0)mqCmQ0%kpSO&.il[ClBa0!?+lYKiE'6iQ=!61^@XB%2+D)Y %e9Q.GQkpWBa#pJ6lH)KcfDa;okO$q!4LR!hhW5EO*Z=uG1D);"LX#GQ+n!V;c]X'.1DpP:*BcTa#RsTT;r[-W$*cZ>$:]W(QnE]4 %hVORi2kc9go-TNtX!G0>/Z[[hWnL8/11c`oPYSoDR0"ZbRB$eu?ArKrX&aXel2i2Ok9ck)!`[CdQ%u9(*a[*$:7)*p=`,XN4-M0O %hl.4/''SZ+)O;Z(UYN%m+BS0JN*FcKBY8FAP's)'UoqY"nt:QX/3`'dJNf]:L0WeoeEi:-3a_(RSbem;F4&ga!b.\RIk$G'UQ[!*qh,8=QNg_,n-RJFrm(/R!rK\G!91"Ls7s&ou;fkP4F,8[Eij.LSCFY+\]c5]t!^%PRM-U7Q %R$$kbCH3,<7NSGdri$[o;/P">p\Jknmd6T:`:I_;@\/q3^(8DA.G]Bktt2QU"m#MZ>W:,NiiZ\QgDp=)Dj>%sP]BNmUG\ug._et1T3(RA9Hd=g6lEuug\VJB5V]FPs00,/J[NVKM_T%%3Uomom13VOJEn(LFNo0q1HS*ps$3GP-nt7bgTiBbsBV\lDPhU.I"1LPo\tAs&$_l*bs8o73I/\]p7dn,coJk+N-k(3:g>b+jl? %hX5ia%Nk8_(TKb=<]u9L/[1&;Q\@'!kb*-GcR1pPRTD@i\VQ\U515KhaY9Y1bf)(4Q?8q#,c__=QXkcBoU#CI6q(%Mp;p01c,$7P %Y;?P-ckk0-5IK$ihfg^NNS($ZMs7+91>7`p8<%;Ne>+j"'%G!aT'I=UC8^sUEGITHR?M-0J']8Iql=B.PLI6+HcWtgep]L_aE1Jl %4`I[Z"%A$F=hRGi$0A!N!j-'"glnheE\hbpe\1@V1NO&4QCk_M5=?6C]h"don@\U\'UYc0,N7Y\n7Qb`p8W-F>cu1r\BK

qRO@9DrH%2llKi&fbG=:B)+Y(5 %H/&O9NuFDH04cNC[Gd&8k.5#:24[MQK67^+QX$`W8tlLrofD@-8niEj[!K8>g7fqaHotI07kI*>Q6H%$>sc4U)mc>D=-Ra> %Y^,jt;Yp=aMjHf*(Ulds'`*2gjK^cf]_pu$h&9oi`g>;uneD\/V2rtW3Te2kXPPc/cr?OTGsD8(Y=N3RhhIulN:]T@G&9=uMri0% %F1^;b^)QKY0ARZ:WTjq$P_juP07)00&E>7`,=5VK9)H*a>GYK20?MJN8!@0Mc=t3"ORc$]5IKD`K:e`g`GO/-8p'-"]gnjNeXD2NMOpl0L$^ %m+OD.bQ%\5gV"mYB]Wa[b9R_oKBRmXqk)cJ/46P9\`lct>;nQ$AoT %o'WR9reN4Ha7@2kpWn>bO8gm2q7ct*+*[>4hqn=ts-iAi-29_)#(A-crI?G+4'(:?*[jf/TXJ0Zoo22a"94tAF/&GoaEQV2h[0:O %.ueOu6hS=PJ&(M5ho>f3qg:Wi5f7b!#]qbD1Z6+9mLhVcC'8VY[.E)qE,5s"LV[Z]pPn/qS/(M">O*ulQ+t3Sgqpi+[e]i4s6e-u %GFq(5rqsgK?NTGp^4o7a"+?VeEVJA)q#X4dh;)FT\!oHBS4I$AMBFUqHd'o%?qlUS;_3AcRpth2 %0SkHBnE/r=o_]P%o4fY?SN-Ld@]dWHdU6\u1M^DL35TC#g&e;fJC6[Je1P`%c7kP5OaC,[ZQ)n1p]15H`Xag/$nf>_i8A5q,THj= %ch8EUUspN*kSm!U)(#!<.eb"h@J3N!7]7r17PKJ)$Y"L6sdfDVG.FCFJRjZO2B=6:=%@E1F@dUD*+Yqs$LC:?m]\`-Eo^[oaQtq_/$?N;uV% %.d%Fa*Abe6_Q*^d'u6"ro*Vj.YfT$ZQM.$pj[n5uJI1JW!J]-2ni\c.cZemq#DNdY_!Gc*9#bdHIafE4% %D\J"7F1eCkJt=]Ab9p\/!N?&ALpJDT?9p!D_oPZm)MI$3RLDbQZ>Di[RliV89a7heC%?\c)&##_YR!T=qUbd':i7Yr$k$[P=7%Eb %I@\)8:BA&+BNVC&N#Vjd-1h?sh?4blolq*)-3l*s.%)>GHbe``G;>Gp?I($/Pld[WcP(k!`rZ]rQ3dBlcQ\W!_>rODm\aKL$`]3H %6)rEB+ugW'iD_f?a5`gf08:mVQU5FK&ONknT1K6dU1_g:V<@8&XH;h#YZ7T][CZF+%hJ+h40[U9a!]j4olJ1,'rIKAqlru,BC(/.V0H'M0GY9cP[WU&I0]pV %:V]/FpfA<G]G!fUk9]%`b0]*'1Yn(`"0?b*W63EUF-=kjc%/._J]IpT#L&23hGq*HbaAXnV)!,jh"1(D %'3;hPg+,0D]`+G-*uK9W&I1eR2o/No#$oQe*>_M6-bS"2YrfaoU^-kJ1"?UEcq;?p:"B'$Q63&IT7!f\d7D*"Oi3p]4!MG7bM+(Y!$5#EV#t>I)8( %!Pf^=TFOdY^u+)>,Qsiin,_p2c;2)'!Y[]s=X9e.8%mrDGSLMl$@nH;d7(%,1,+eTQt12Q_#Ehu[g>HUHU)sd.mTE,Q_P4c*:I9A %-IOWan^F23bhZJ;$Xl5V".#pYkn//RS7732S4902E)[tb!V7@_2X!XT#q-GLLbS;f!32Xl=7C8,5BM$U9-a7>Y26Pk38cuW2Q6:; %cM7P4BGH5&S8nQDH;:2U"WVeRZIR9K%-?*DFV;]E`R]fnQH'9"0J("gMg.j[5(IlQGj*N;aCd\XaB5g0$rsnV?fn7/q[P#Y!D*Ap %!fiBoQO4/X2IO7@,UfT;!%KsR=:.;+L[mEP#.[J=1o.T':l0iq"VDJ57ghY?6d9tbp%'+L%eNp3o4W[[cA=Rf`$bMb6c1esL:Ckf %ZV,]H%aHu`a2l:[4>7\1J7P2F$+[@U$@\!X]T=fpY7!#s`p+8S$tEu.Elsu=fVA9OF866oT(I7U5P=(Y[=,!T;K@gR(575k]1A4OPdSr;*rOrY6dP %5?jLC4IA1WL!^d@B)r9*,,@=$5!)%+aoq3Tk]m..8/b>P!(405cBSdQRS4T<[:]RaOcs?B)*u+14q'i94O+O23^"^\GsqJ8Rq5_)OQ)0kB`qWapf8^@g<_sr8;+"Y@Io`9#f=mcOhX#aE[g)o15F*guHca=]!-Nn74I8V?,<]E\=I!rS3P#$570W>mRRa %LNMmUN^Kl2344O\]DNpH4?3%dW+uWu:k?b%n4`6>Pc$VEn7=r&U#u`<6SZ0p']:cR:K@dN6+W3AJLR7DUqfj%!prAoWlc(KF&.37 %9XmFV7#8Q@W+-2r(9J`I\pomS,t9KLitX %RXed4M#n/6+9bdZ&@=p;Tj!!-o3_RH3bnZq3RigD2uAY)r(hdKs560kU&e?_5;nEl?gU&XT^=MeIfL=]'q'R@o;oqRr/eQpN5YMO %n>8M<=3Wd$/Pd)]3#0(HNB],EQt5=HA=7?nrf$gh$3]d":qs!L(5K4%S%P2#'JPo(=tMJr[!i]3:E'^-*\kA'AcP//2GKr19`]kI %W7BJJV=tR-aTb9?ZL96m2.@oE&%YJSDf#`Ju_muYN"SG.[.1AF(#>onu@j%eq=8no)r1AXjk`C,YTgS+58$tbln'FB!*3;N8 %copPg"+r?=[4`q$;"I$"2q5F30JP1.O&4k'cSO'iTKJuumW_3T$-uH.6I.F:\=bN5/dO70gHrq6e?g>@[4E`8:s22O/C^tu]L"1X %astoHcuTQ%/-r"I_ZKE92(S(O4*"V86IW=Q-2Q.P %YN$$PQX]:a/K5-\`11+l7*A=>qN`Loe+MnGb %RA=c9"Z'j9\G!-2CX#'^oJu"f=kKBQ48@n>\dJKH"J[uprW7$>.Ku!cf6A7pI70nGp#eX!"IM^X##LlaN&TDG_%PHQ %O+rOBG=[*R?h'3P/o\BL;fAe*ZX$W0"'1?aH?=6&E.Bsm-oR$)QlUIISJgb=..M?`[8WU'')X]hS]WnO82K[HTWQ+9C#)"6Y@$Vh %;l+X:@"qgd@i4?87shO<47bQ*O/C_2eM$@iq1$7gKUmY=")^;UZ33UGC,cM/aEof0VLlNGk]@<%P;8`%d/6\$=!Ij$1m`c1^T+D2 %+k0,hoK-RY);#7`3O6PDV^5CU!5gob-cfd`nd0bsa\*N87L835i$')d5n!g&7["7l$9:'r=J/VTC_(?&-CG-#@F%aQ3i5DDF_48Y %![h%-5YW@YR"pqg5TH?ZjYBZFM*!sA4?E=Ih:-t+A3tZC6q\)8J7hOG1RLVgLi39sVhP"(EZ*B#jPe5[fc\`k`44A!.#?kaSV*!XDhcW>t%0@1Mi7q %5rg$jigMijJT1uW(ZWI>!=OcQbibO2IUH4`2FP_*+RSW(:H@![/3B_?l>M+TN:9I`%H`LZDJ#TV*LIe%f?B %kY-Rna3&Jg^uA],S@L< %C'VT@!7:^"f8#&NFb.-8jE4G4&C;TneMfb1`#[bRhTB`'-7A1RAo`T*K9\l_QJB%dpdX*?W,GKdXlkYb9mM`F28NF`!TEkBAWtS=aQP=RRV(N=I'M>jiX#QbjJ0At@%b(LjGE3q-O35)INWdi4*^QoKA$RK_ %E3d.:M/?#1N+Y9;=WsAnChV$emDNc?ZPbnQWJ)?dXH#"sM1C-=h7^;AGu/J"UPo#8*o% %HI4MRq4H64TRqi/GXg)l4[UC[6"mVk^@5mboF/6J^BX\nksYQm6bKmUrtB,\:.L126(tlGA"eOgl=$:_YF!R""7CM<".pZPeTi`N %&eY-dRjN6]=$=df);oV*c@Gd5f"`fRI"$22J#_^K+,.g[*AZQVI0/]f'f*OfaJq9^1@,Ma,"*1j1&X8ei %#:r$c!qQ^'J8c@sg-JbIYusR^B4usm8'.Q,jUb/s'm1,hGm.mWjGPmP@3#OGY^@*9Ymnc %7R>_/T>5RH;$Ieof+,qC'KFE)JOKfE?OROC@X^m$M11*$]*uV3B`rbS;AS>\o]QTX-SGI"B:_HnH6!\["A!l*Y)+-.[(Vf)-DITl %p)KblO)f>;6QjM'%)d3LGCXFEm3&*sKRn4'Pl\.8p/uokNiHeY+#E9a0N+7Q(*Q0[AFnmDEO1i]?n_$6MVaY3)qA=pOO93uA1&CN %Qt84?CRb#:o;&s[_YZ'FnUU@99FQl])NknsJk66>B6cEs-GL1tT4]%F$`jPhOo>'bMnh)4=tJ&d`>ppF]8bk"\D)[n"6OLL)!EIV %,iU=>7sZX)!)kr`cUjI4ZE,1#LQtFIfET/14?L$;%/R\IA!?TEXd]=Xk>:fi=?2Mj>ibPmJncHmjYJQNQ5ktlR)5XTNl54RXD5Wb %`7-j++=!oPGlWjFrYUAORt5WWg-H=!gtooLd7=eJ'pW)8u?W/E<2G]aBL#Jq+IN([u(DalkA`uBl`$GEsEaf;&;on#QeYp %]%Km5JZ^r#m&*`C+Kn?(!3ag[+IoX!:2C*"3U,D&;ZP1deW%HS:6o-rR`4QbnuPNO6Fs]*X;[d'q9,LGU)TXKP/onodEAT9Z$$\9 %l7#0_7%GuM=f(eOku9u6SJYpEI8$@U`nL[iXh7D%\?G3Z1V6%OE/H3G_A_g]?jCQ9=n>$W@M/dYde8UG^4[poEp:T^*CTFgjfQ@V %6NfI+06g:Lh7lKddKBiROa^`^\[`o#()RTnh/>hupfU/ikIK@$5"mG".JHCs#:4MXG/+.!r!lI:P0pfiaKW_f5bF3%$A16:8X[4$ %J:%N&ces[b:*IW8AD`NdS`h??25(V.#*RYqQYWTnNHlH;QZ`pGQF@=eQ1@P_'ZnI+!63F/_b/=ER;D7L5"&Y&<]%)3#?pcj[d6>uY5BpfH#VS4[78KgN2RUq(M'1^^o/0P:b:E/`M)b0$9p %hm0+Pf$'E5Db79O7T(ac:$U[d.b[g9(BspubfX"XRMPso;s4G*5`ThR@,M3`=RE3VbGsJk+m!$C-:Me/=M(,pN[jkI5hk";Uk60r %CuDlGs4"FW>SEbIHD7L(G0j'5_TN$g$$]3'20"R`A34RjaM@"]a_,/8g233n==an"3)h_RSd?U[hr_#WPg-T^'[HfQP`pLt`4@@r&"^lG!km&Q %q7:L_q1T'.^5`JX*Nr;%)U6F2dPPugjUS#G"RiFIe8nW4`:h[G-K=pXI@se()T$Q %Nc@c+749+sFWW=lGW%n#Acg!NT_'(gOKBPIul;D;E6ch]>`nX.lQ\3J:PS %7#DSWm>J97../-ehq*jS`C0fX^*q"^X99Q[;3`-SnfB:o&DLkW"!q.T0e2"("Z6EO\RGmC#'bH]FVVUJCqt9E,phd;W#bY8fdcT9 %oHj",0m.;r7:-,A#Z/&7[u^9.l^,>fi*fHS)^<Ba:W[0Mr=<"d>HUg1cgH'aeI& %EEVFFfP=H$K"4hG#ZO"4[ebj=#])qU<^^?!;c7]g9L0;k9*.e4 %nf?"q#KUDT4RLWn1"j^PlH[;Y9sYZ2:k:mp<=Fb2`a>_B9#2738Y=3l?^,qqQ5bB`;QBl0\7r]PneB)/@u,H08?D*N7ob6fZ"37; %H(CJbg!bVK&RD6`m&32pW#Kbpm4"`.0=`8\:F^"8k_m6R;Ta:c!A"5NWX8o?Is1tdF(K3ojrRNh.ej.5=pO_:=SU[2^cBVB=%koI %+A9B&#%YY[L"u,ql*[HN\?I)@^a^?9!NdBpW@T_;433ZhPWC@n`4G6q&55s&Z?;ZIJgA*%O0T+fAA\iSXCjK1,XWuit %!,T^;.Pi68cH\2Mlo9fDSJ.[VFgY]SicS6?(fd]NZA:T;7=;D+E>7dSri='J-.,bhqtdBq!pqZD\NPT0J5Ts2_XiaP4Z1Qu$S2X3 %8UHH.]+LR@WY/'bmo-3bAR95me[0<6m==2_\6n3oR$gN:M,VlCZ+c]01(84/T$uXu:AIMTZ^>gg7^/,V5t0C.OMb.j`M-S%]ht5c %\V%G%Vc/"+!`eD6nelWOLRk1!eZA'RWt!@Z17EdMgW$=N'Ue:/^moWo@?=gCjgD1&,'V^4,6BrV@njUl9DV@[&M3I7P5AhP'*>k< %PoqBN5jP1;Lm+n,8]`BT"Uh[S:E!h6E4.8?OM##V)e]I+VFnQ+ks2U:NfSf$,cONEO.;UE/a6nSDrWKNW>H@+9(g3'MEM)gY9RmXOTpp4iE"$L_2AqJ %GKHi,QAua)3*cE)ZmJ(/Z0aNEU'(&\$UceeK,XLi+t7WTc-Zl=cptZPGTR9Vc&K9W-GLU %OtGU*hoVCEm0nQ[;\GDMV>=:RofPTL&ZcIY&gYi*KZ-EO&D+LgO&`UM2!,-rDH:S@@r7*TNQN9hZS9ci=Hm(sC2uSiac+KXf-^Sb %Pa)f>$B<.V2Q*traN'Ro2r@Td8a0^_5[Y:iLoUc+"P.3cUC;^U3[Z9*CCtO:BbAeR>W'YK9i%Uoc]ar!EoiSsKSEX]:2)K7c,sg6 %Q&aZ91SpBm5l>k=#HJ_g0(;-e;Xo\r9S28:)$3uM50\XP9K"t>M %i0q'*\uc3f0R#2$:*u^!k@aUEPiqOL)(VrT\E6O[';#@0qQ,V#VCet7AKbR@*Z1/A9rsLJi9Z`:kfF/nXX`11:GA/*Y9KMSkGZk( %6D?s@i+4O+.!,_YF)G+52_dn[-9d>\Bq[(l'fTB6,O!G>aEi,D"/l.Dr:)c3E2arQD6%&EYB+Wf)`5W+;4!1Y+bZ#3i&dRhU! %K'mY_49h*C:T[>c660#t2$r(DnMf_'eib)-6BLNL69F*>I4Y8+I9:;hhX'R4k,NZ&M_

o0Q0%Ffjqs7=S'nW`jfPEX/RBVC#m% %WH4+q_C>Ot<@q5i('&TZd[R^,h\F,LQ.hcF%'8@s(XgU@WegdF@ %V>MhE;[A)=RF&aGEadC88Jbi'k3:(>[O*'er1mTREZO9@HR2KI.0It=(%tc%*%E->Sr-M<,CP_uWcM&u3/278:25o(B4ZRgZ`HN7 %.LiD95)r/J?]KOHV:/)NWJdN40!@h[8RAK,ugMk!0YT")IGPcaXe>^Hrnu:0Eo#Jg;-`fjW-e_j"P1VW!_#YX9ODk&Aab@;`-8i:o?tR5:U8X[Xo0o %UI(A9+rSW(75V$G3__c;!)U55`(fG7W$#2J^SleI_BA,."O?;Lcr$LR1WNlfl$>3O1%A;\KkV/63@.K,\6bk4mk^.Y"BmrkfAct) %T^''a?)4^-,Z':t*IeZ'Wc_,Mfiq5#bq)JtRC=3+V@sLC4.Ue/?K,hBFd`LK1[s%3%4Ni%;l6#+ij.)ERS#,1Po-@e;*7gA'\4!@ %X`e#>@&^.G,Y?]UZfVI8>+s@+Z688cG$8i/g3!NaF]UJ9Hdt#TQN.(j2=m$2QeRE5482>XDl_W+F[i3rFX&m=MEik,XVI(aR-o-< %:_uM.*1gt&W9\`Z;Zs4[5@WU@1[ij[W:H-_X$'W:#-YYS[ao.nJ!W`0WCPKGog^Vl^)iTM3^6"9QF^@LQ-F_15n\b. %!3X\j<$:&f$t+84l4I?;R!(%2(9O#eXI><`Bku?*9El`qG-&K(2S8C*sb2TMdgBJ]qT#Bb>E,*HBZ=hVRk;:u1amAl:d %'Ea%Z$]E$]OAe1Be`8:Lj4lr%Ytd&XNFcsuB7;Jg7:N_pY01HMN!Z,W#[ODQK"]0d'tu#Y_$poHEDjX'-!;FB&=DYG6f7GG'FmF, %\#;iU%Y-TO?Cg?m9Y&"rHebr8LXF$t&hHM#Ze9*?7b.PqlF-OaM*!=b9iJ'KM_,+[-]KGrmq(lO.J:XTYf:CYYo#;snOf0*h3WZ2 %56ft0.:TAZ+`q\]'+0aBBTO7*MKO?tiGqgr%1YW?d)=("kB4>#"4)9d@@[0^,U$jVTW8teU;+&#QM-SoSN-49N@+A7MVXkHV[TX^'.'3V\d1pm>kQ>`JA`WL=@F86-f'Z% %e:+5VOF:7dMD/(n@1F3fTmB\!<(%#tRH@J1l/lDt:<*DTRf6V85tb>Y6#a>Z154G#6mqS$%2#Z)Rs7:RXT6+(]&0 %p#H3BEPVoBW%b2\N2nWO(uKm##p_;J-YD<0*5>fS')Y>=dFa-jTm(9m5.*"p>osl=VZFTh7'C;JrFu=&[T_ %os#cpE1SqFP8\.$+H0@5Xh$6 %%YDZn%b[[:o3HhSX01D=8-D"C:#@H%cQ%4iURK1%2Q=D-;+#c)'43<. %c`ccb8WU/F%(rHO',MUhR]BZa<"ug2bC!:ON)_1P"+@\C@M)`sfNgS_^>_s`4pU#?S&;6.ED7a85kS+eC^uY7>MYIC+*nLM./%Q1 %r-9#9am#DQ)JHB4M@,pBKC0V_r/&mNcm]Ni0ELJP#'GEjIY7?`X@-uONFB[9BW-`",9_8m>M)6/EeR8WX"V[+NF`)r9t(C-Gn'ou %,iDYDL'3CX\rjqIL>lt%W+mG->u[R,2V5/U#t.5maq?Rc.Rce#:m2_m"B/%Ga,H:6cKQ9=>\ORs$Df1#&1fccdYg[V@'1Z)W1RNU %_HSYY)RS-tN438+"L3WY*Jil3%SNSmcjrPO03PlsK;;gZ=P%9*QlHf2N8\0#S2YY3r[1@i&M=<$c2BQBfHL0&E.dm%GhBacV+(lqp4T=p$E3O%!MiT@GiX8Me:HKO0tR*8\TNV^2JWR\@X"KSs4E %0L-a2I@Cd:*TTgdV`Fm?.>a>=U,(_nJnIiDR+_J4?oR=2e/TKR-'F9IZ-sp!`Hn2VL%oYOgc%l?<*>0rZnRa.Pnus-TJ/6`j9*Y4 %QpmCm.RpVXdF=VXO6^CLq"_@43._V-0roB;*#oF;rg"$J^Y<:R7.kg%?YDFBjUC;aLeRO'0R?Hc?!]`a3FLO;_SI>se\CEARM%N[pG>/Z]B\6)OK13P&Rg_5Y$;VP#9('\%8] %,+-([6]m96<9JB,=79+F_.&moR]k5em;r??3\jE&.t/p.1(@!W?BD)jW:%<)16DWWY0M>N(/G?;C1^9eB!+.#*(@QC5$nPL(Bpg+ %DrNh_"`/>g<9.W#4n]G#1'?7,pH:30Y=ROYr[iJno*)dLa&pmmMKJF%u"4=bcbq?o8A%3)7[b:jp\IA\q^&Q@1/4FrSu9 %4GcUsqk-qDkH,.XP.Y57e/DCYK)#WTQ^Tu;@hi6Yah+`\ZO6&L6AZ*1Egt8R\+i %8p`SBJ3\i,BWt'E$YWl04D:0jF-qNGj!cH/Zbt?3kd#2oe"!a(DFpB]pGp7TA\tN=j:S?:n)*ul$KPjAp_fYm+0;O"1U;*3i[$(U %Oc*.o^A?1eVt[!Zf(?jKg!bJL@#)2)ZIbGALlRZ$]C:n5mj"U-'Ie+hu@RFpIiZr=d"`emEH'*I"?O#`]Vcg(!b/](Cl'd@-5e"8)auc %`D@0NMb=4C;6[5UhN9=?)/7j#>jF[FG&C[^<_,jDYNat"Z6>EVM*OfW5sYq4afQQ$pU(*CE?oL_+lH98ju8o$!1Pg-$3F)^nj`=o %Le/r+)K!hrlsrS3J,,H787ui.^hPV@lp-!S.6LejQ>WI1+G`$aJ/IFb*OotoSJkBGVj!a2hNl$mkX"JG4433M016W3'U@4e#7-[G %=3kIj/EjMVQ_]8%>r3C7X.QK'4X*]h"4Lb]o3hGb*'$QaXPP$s>$ %)kf>iM1bsrEn]%R`-b,q_,cU\eh54X*c>7\X#]GGC-7P-)CgJL8R+qZ_P4a?b-!;Q6@gB.Wre*fbOm^l5C7=W*(P$cMgb^+TjD7V %D**8'k/c@S"A$[W:J5G$9>.b#g,0ce"M8Xl6QZkMMu2gY/GJYTaJqd1('gK>/BK/fNgsSP@JTIB`CoE&m$s>a%?Xr9mQkNb9NaR; %(f16QkQPNF;`P3Z*9$EsTA.o^Ootjc,spZmMj_e&Q!Zue[k,c&8;mW$mo`[/W#T4E0NXJc/R(V/^6NY)hY7FMO*r5)2$H(8Wa[7X %irDbMlt+2Y4>L'KB5rq7_7]5Ij\p=:$Y/CIR;lhP5rp'WHpRS\^6aQ>]Q3fU[$$E,X@2jc)bduS@+5bMlgmN/-#Q[BPbJk[5@c]E %l,1jah[:gtal^d`d(B2VU`[\`A<0+6!b)\]%hL"u+f_tQ$.&/IACqU`8%g&9ErH1^1bm0?k@G(6nc@hLO<%Wr/"0&_poAH7"dT%J %8O/TU4bZakf6i2fc2@'q*DC&_&"e?'^j!ZEP.Y?rXUGpb$R?!%6EUC121<(5,F4BFRPE`_%B1Au:tI %jGZTV_#V[#g]fZ,`m=2XL07K[Z'Ia?r)konTp:7^a8t?&<*t`0Ppe6*"7'uA3rUPap)p]T00PE'`*AW>l083IUs!dDmHl_'`\mtisiSO43*V_#m=Lr#=q.J$:1JA %,96BU\q8PY4L8!oWiSO<9E<;7bO)"H]iso+a9:jM%hNs]Y`+#0/??0-WH$,BK^. %&.A)4!hn2_H(tBS?_EbEf-(5bCRrtmL[R`/[^@IY2lYSa&@@ODXE%uYEAWVraD(1VPFtC8hH`1"Y&_1hSNNk %N?fZ7qp<`bCW!H>/#e>C;5eN5W$)ZgLV:u"6#\&;V2WmMs%qsM'RDN(P$Bb(4*isNf]0hR-S+4kjo/[dAU6[@8sqko\uT?D=f*Qg %R9hLt' %\Ts8gmL=\ %AK'W=S9M8F.uF<^k?,eO1W^0SLEQJJ$m,`iQpVHph$ZkCk4iqmA,lqrf+g]F6)\opt,IWE1gcLn'tN, %mP;K85h"0l[,Nk_3RB[*:8*>fG.>=&e^pE>$6P,`U#LcoOcRqB5r*VHD(W+7j4uV4bKU_"ib7 %E0ApW*`tuq7PJ*0C"W03*]FLT+MV.4k9@$=lb033?.g:4<+peYoH)0\^k[ZZ0o>H!s+,Ih4M(jMokO",l<[S*D;]C5eV\UMPGsJ= %(G-a`>Wg16Mr'oa/$7ut\Xnqh=g,mn;\mOS7_.&bF`tUr'&BaEJY@gN$<+l0i)"S>GXVV#qf&bjc2bRm+TirX-nhp>YDf[0\JqJp %*)#M+2dE@C$Un^m=V2KXS!Htg(>mV4W%/ZX#'Rf4;#,Hq0Vhjjo5#t5f#$EfMgG&")oR"a]Kc"DA=;4Jp%n^f*]7$)[KM7_Uu7;5X)Dj=2eL%+"E]FKq\(DOK^iJMiM(KS!3).pFUJ"](<>6\E#aA %?W>Ve_AL.IXI$5t[9.E<*"+ji7J"\?Q*>9aIP;.fn\_oGj(emZ4A,7r$]Vb(jT3A:ZZ<0F]f7]>04><\>ofqgBDV`[XKH])SBM30 %^e3V!Xb:=i;9GoiptA$3(A.Pr86NIa!EpO0#5>U-@c9PM+&N>M*!t`;).b\>2J9Im\N(I2&!6?5'XOlR&5R^+!R)`<@jObicn(c\ %V@HdD8J)3=U!EbJ6"gWrj[_r1_rV+_!R$OX3iBA`0Wr_M%m"6YBpC7ci9kpun`;Spk;\1l0N9<).!0.H?sNMDZ%QT,WP0VYKM5*8 %##ij6$-U8q&qda/;DJW3'J(EVMTNk,.$fup!jAcG6-eL2,i)l[,\ge6J;>HAipk1r,d))XK+s>3@Nq$H#`edn\5lOCH%t*HH#9[: %;[K'r,+hI/<\=fN:5T]'86GR+-0/AVPR!T>ouaZ[?\YK$QEDL!.'Jd=A.Dme5u&TSKql4sQB>"]\-jjcI>tF!ISIo^,)PL8GZYC[ %r`Ii^P6t1LL.$4C:LXgg\m9mGZ-.P,f`W7$$d(m%(mu+,PN0+:Q_H*lqlm$9osK3fi('r] %1_ufnW#9CS&c5aia_IL?`H)*4*6p!CR5@/_l,/co1U[$NnLu)&<#PQ%RQ&k %00d6D<=:k;185ecNIkO6X=Po[1aBQ3CTDE2'h1AtG%V4PjB\*Xh1Z9lL*YeUhnt".`4P3dKD)j %5f?43&tD-t"p_kRqVjdhnZ'h$5JC0_5/["CA"i$?%J#$8*/+X9QL##33@DbjO`P_(,X(r1s!V!;d,4VL8W!CfZ51thj'g5rQ_#$#5%mVIcWQB2mrPX&=>V?GWEqd#mhY(WD:i"C&CE=at9 %agCTN5H0efcnh`8#YWr1Vq>&%>!s9p[WBe%j;b.Hd$AsI'4cL4r$<6mq,fA.5UjN5(_Q<@^oGfJV/$/\"cuPs_N?N#;&Lm(-sTEB %:npTZAc;a4oG@']8Jmh^XEi."/*/'oa"n;[!Z/oZA\-m-C7&(.\ %acV:_R4'X(d;l?&'3b%T4:Q>RVIdeVM-f@2E$[g$(b'6VF!cO,$'nt(,qKU`S>&*V %D;GS/aJV>?p/!A`IK7cDaXWDA^L;_k4L5c`C8!qqA@5cq3.?edG+o`rS3/He'diQMQshHdSOt_CiapO5SF'PqSg2iC*6iO+d'A`k %?$X4.Y)$AHY"6F"I[`8)hR,d#Mo]p_f@TkN-CYRd@c7n.%>;/t8;kPDpZMF+YqUM9X&iBi//t>iV5%>_QMVp7M%BHYb9L:#M1e3= %RmC9nLEHWno^sqc8k).i_(@`l&JItm$[ZU%b"cHZb"G6%[SPTFR*4;(IM<0L@cb^NOb[Kk[$WCr%YKb$Um6FK3&r+-aJ$kZdA;u;#:Gip]RP6_0X5P\)5d%[")'4e^ %':Fhr=_Nf5g.,W2g)NQ_^Y'c%P:7bF-sr(:2:pF]YX$[o+@oKZ@d(+6YXPV[V(4EGTN(J_C52jl")AMrN)_AhZo'/6$Z.i_X4,.# %7ajZ&KQ,T:^h)b@/*T[s:Td0*4`fkh#Yk*rN/5c[flg*jUm2K^OnUBX8n`MB>h[K0OBmtmPaCK`N8n\0P[jUp*M8$0'Z3piTu49< %+O1KcdC$2&9j\5&>opX=kSDM9)4$\G&5%YEEA]p`7EiV$n+LY';j>WM?t](N3*\T[^XX8E'`j:eK;=1I6A4o[S05@aD%TfEXb=,\ %o0j(7=00p\CV\HiIV"gj5I]$8<[lkGnb4.h\^H_=ebdd+C\p]dM=H+_"c7_iYd#7USWKoFOH4Xan"cFBB8A$I*^:%S%*_;tLs%;R`eA %(=tb5)2lD(Kq$knlKa;.j"t8I^Zpo`*Q3VC,:PA:h>S^jtD6=-09L4r)KJ'd.$'i"R<;F,t!=@Z,bIF4.b6M&H %0W&?8r?+;K60K3Q:n$-qZSqGfYq2YJh1t&XcAN1XFdsiR+fe\btPIOqbS)"AJWE),b6Ni>as%d8'Fd[ %ZGG65M/@A*!THQBL$jnW=g2%oL&:pe?V[_.3s]u5G"#M\*gIGe3N3HrE`t&+JY:DU,,[jq"A"3f8nu[Qc%gq6(_%#]=ZL"(mI%Vo&Q\$p/b\;SS.J\SgPP2?e3^]1.Z)$/ %CJ0+M/L5Xi?aZOd8$$6q'OZ37HHRL=4mAXA.+SnZTSR6h^oLJ?.i<+(l=>$!$T%^Yf"m4#;`k<8[=ZQkL!aktPo$,V5YtFTCW4KT %LJt#cF=9o=&-omP+BuBf/BmI9d$m]p7Z$Sa6umXW:,0Ibkp.e3QW?\NF72>?*<#-9s-r;j:iK_&T4$ %L+?!$QGW'?N*EKM42l#o1;@kW=??M1X/Q5d^6\sR8X*,C=X(STll8fUUdU5pjB.cm4)lMkije!3al5#LIYpY>A-++oAuCXpjT4$i %)df(?la@S0_Rk'f/i@HgP$8[R)1^]4k91p$T8bi/koLj?q'F:r$?9I4Ue`[ %%MuZ_`1T7Dq/VTB)+#H0IT%!t>Fsj\j(n7H#,1e^eC=)jZ_1D=1lIF;qH>2&[-9Tl^d;t\68:Wui/=GW#/'1.Nt?W!"+k.CQ:5.rq5e!P-5J/=Hu01g %eXn]3#!8W$AheI\JLs5C]u]1bJD.[!Z`M*Ao;PSol"qf/%&Ii55)D=4c7@NOL5k,d#'=576GmJ.^3r:HM,4o0cnAZ2&tq'//jHZJ %D-"YFXW,31%FgPT!C((#_daiD#/rD9`7ZL>J.8CV>%j!p?opBH7tgL7UgN0f<7aSgBEQ#(>7p*4!uQm6.uSG<3?;>Ulk#Ql8VI"l %JnM*em7Z=,d&N540,(Q&%rP\'QUFrn%YJ>d.i\"\bj8+?U8i5i6HG"7,*W<hV^W3Wn.aG28=*qkb`,Ho.@cotEgZ-T %"_g&qo+^dK6di1CP['Ym3a`WB<=VJb+rcaC#I,6e"!FYuS-MI9BHtPK?s8*Wg;'q[qKSuM4X2?Mr`Uj7(=f&EF(7kR@$I\>^(Q`7 %S2428f2AUi5?5l)f"qH^X0^!1"G!0o`B]\5i'nO+iu1;][WK9E%I6%%0]%>$d(@f@#Md2C)6ZTi;=H:mVuX %@*M3Y=M-DS(n!-[3mf_^%:Q8F)L/D[/4,cF11uAX.@I-X&*SBqrO#SWMbe4Og!)8b[#,*>BTAd(Q*-NK?Qk]VBkQF>&c\RDW*Y@f %#lUUsARWVs]HtT2k:"mT(%NU^^mQVENZJkfmdVg,bQFqG2KElZ[ihiZRQ<8sng1.[bHTZakA %)S%pLpu?,p@DUJ)6I3jub7?j=HYKX-6\4\U;i>H_G#E\9YB6N%P4r+X"ct6^jG9CZ91o\b?u*\`\c<7_VsP"AIX#?,=^Q3nbu(oCN"[(U&0i5-OlNKf[8.$[c1jiS_,G)^P\D:q`UfB-H^c8muQ %Xji^QT`brgA!aBA9Sq"\Tn07uQ).E;D5Ngh*U+uOUQiFfiF#gTIHau3g/tB+5j5d_\GWbb[B:htFHVWGMf**oghq4=\MA(87#PYX %AG#]Zp*02t)="m'<2&`BO?hDj&K;]_Y)>rFRanM;W\2l>ncc1#]lro>Q^fC1P5AE2%g[UD>&e1EeiK.O'L7ui<8u,@UoEQecI_K\ %-u1CS5lY?!;!-<.KPrLP+[a7t/K-1pYum>OW?RP.B_]qO %G.]IbHD>8p(GoM:OA2.*&YZXh6G]$gf@If*-s6p,4/k>-'i_$9Whch!ipU`LiY %U"&M39Ti9$4UO(>G3.GVA8YPb,-!C1CN1[ia!e6^qbOI*S0b`+GH"K&6+#X(QKPD/!cVGHpl>4`CB'H2!?+E]4,<, %;W&5U;F*(]da"^?@>Xek#OL[.+[0$)TGA0CpnSphXH76Z7mG+-,fZRZ'sS]-)TRG2'Lt^u=AiXdZV7As?^n)eN""3uE3KHqZ0!=9 %_\%XEErElF[q9%To]6NiFKIt-m#[cB$OKf\Ys-D`iAL><()"4LrR/*Bj,8\85f2e!9Wio&RL3TIa6#WYjj"nV9j`dA09'%&SlL'/ %)81-W2-=9_b$l.?b\F%Ymq&1I\e^/1/33'lCGV#_Q&nuP%?l+[""LQhC-tFq!Q.,7Nk?!W=B"C?mnpj$]`RSb#3&Rs]#n%d(I?t10 %mPhGe$3hm,Tt&>:[k(Lr&/K6hU9%+'23=XD@Au#sH.iWoTXkos4I$NM?I079YQh@6@`o(Gj3u*b2`!26agY=(`(19@DWTTBQ<.LA %a23_\UQWbc2EXl,+E/kb$N=(DQIE6P@LROt[F;W$96VZ %<_CUH3jKjmnd_\3kP>m%`6*r'#?QR-r8a:6Be8U2O0Q3]MmsSiO=Big/"2i/(eQR[+B=q3_`NKITiUZoJ];VMP*CcY1BZn:5ZCQ# %E%?\e:pTg521QbBfQ$Lj&d@&)=C$,COZ\4W"MW=f_ %m%^CNV%5(0.nMG>r25BVWJS9fAd29l>H=1Fe]\&`a;5enQ:^(G,6r'0?Yq!rXdoX)/n;%pf/<0h-?Af,o)%k""J![SX>13R\VLoE %MiA^sAiA^\k%$9kZB:2.Oh3W9kLn&b?'@E4au!ttUc.gGS%5\#=g@9JBM5dN1GB^dBCn1:[& %A>o8BRS45*X:PgFM'gim$sngK_kP7rd:C71Z=l)j2C>poRQMWc`fCFLO=$/^PB17d5=rh*dUYM/?q>";WAJm%eoJ.IF=n$ZQO/\> %-D/Kbo?8,=RLu;hKDT84-`>(cdq%@(@-VI3qDA"t-FeYr]L"1OU:"5p'sCJu!GR-;WQD6kjC"EaCMNE$2&Mu5fV0^[V4&B'C\at[ %DQ4)V/F9CN>Q>j"7;lcC/Q_PK[`8QF/%]>Ec\$61`[gK:Ck\S)B]M1=E:9YA5iJc/HuaEpY_e %q3h_@9t%eP/RY&5YXLG%j)&+$+MbRNt)'"Zjn$0tC\Xl3pk*oUeVOV&!Cbfs'Y]2Uh]:0etPC2:_mdMRHp]MgePJ+WNF5GtG %Dt9f%0WhNeAT&6lY@iQ-1<;Dbk,3IgRiM.rPMO+kH6W*E=nF@K`>.E^Mjo3Ja1oalhl%#=;+Y/il9M[>_:i&sV=$XU6Ge[r$?bHa %PnFPn@Lhe2&'aq^;mdn5(Sb)6c(_4cdB&I-QdZeYTP!;FR*"jsApooO[8cG&/'SDQm:n85atM!X %1"5f+R^HerY>S;mC7Eal<\!3Y3*6b'_l+_NJ_eiGO5VD`u-IPE2olgt-$2CGGrL\Hl1XJ>YuidphuQ9)rK,$AJbecjBr=$r3"hBSkI,rQ;O=?+Dfl><%oEnqk5r;uiI>oM!_5 %:(>pT-:-,aR8fApC4`1[8S?SL^1qXu9sJCiM7;&4FA:,-25n8>P->6ZYmL!+(/*?ZHtF&ABBoiRRcJ6_1i;P,h$3S^-;E7uV-JY% %Y";SOK@I%8i&.M)-><(@'R]XrohEg0N@4drA:[ClK(=F=$/lM*iJ3\6.rrNS%H7M%@[g]/8]97.D/9hI2Q.`GBHp^qP>*gT.H8Js %a^pA>F"MBD"hn^!EDB>S2JG@EKV3,&6UsP>9hNh_qU-/0Bp06RJj?_0[b@NgSY0q=d_/Bf__+m2/W4B_\e\`1$G"uSnZe6'Ej[*/ %A(/g&H]3+'d&J%p#@S]SU7o0/9Y5ESUrbdsFf %cu3Of\+BUNE=Q7J]hQ"VpLgeUsJ78''X(_^^'9kK@k%ZUk0N[D5*P6Ic$(t)q2 %C%IE[EgAQX9q"a('"Og,0P@lIs:W<"UA-H^'#W::i-?tBuE#;T&7nmTk %[4Fop`haG.;k(^>Q0tWn$T6$Le`<371/k;dZ)SYE)VeF.4BbJ)XU00R2,%=$eupDbfE@OCPBX+M:pu\7XC=@tj[bm!;k)cQCU1=L %@-,9FiO@q1_YZ,m.%jG]Ve %QY^\>[TG%-(bXQZQqcG][2bY\50a@Rk6/t@P7_mgGA*1QFMpc)A1sK]3c2*q2Yg;'Eik@H=doi&9t&Y#1[G7"ll*T@:t*Rlg>K2P %oA)=8EMlo\f.ubpm(=ngh^7B%P9%/-,MZ`JDR'pOnJG&@*k1s-RnUuj=I1OmjsHGd)W'Wh7s'AXH@gEgJu-'#B>'W.]!,^(fX0DW %gJ+"%2P9^`mdG]S]L=5t5PKEI;r6FgT3sj$ZD9GTe0hfY>;Y_!3qjE[H\3NVaX+]fGCE5VhdEd_AA2ufj>Zo,-b/o?4T,^YrsAE! %r%JYH;LU06)W9b!%Y]o9P,`c>LJjVf,`H6(8Q*p]hVe.k>S %[7-O,8=DD/`l1[?Xb5''R5.WFAYKf1ZYE.>^<;sK0NHqr=;`HVS\>@"[-Y,ohDXNDk>!EE-P %Re;@]C(W>h(,[T^2/=?mX!T^i.lD)s2=!.p<-Xk1#1]dpeZ:J_/G.gHo^/`au-GNoG>Acl7n^'-!l^"O;KUQe8cK@eNo2Y(J-:uQF5+s_(:m7^=IR9fe %r2<2N1dS+jUgKQ5C0F9q<"hO)W1kVPV4&)t9sUc*@]Lg^^B"94]meYELU6Rapf+);FQ9otf$$.)jL %Bkp;jWg:,]g;]Y#6WumArN/?u[uO1c,+`RIe4n7WG[F?mdlOg %2*'omDo,.;g1fMDX-r,&e`8L[Zs*H!VOr2_"E],Ti&@[T0BF*b$cFTb&itS2iS1WiAM[b>EC8`QA8:qk$#sLjcaWSf5fHD9M*q"W %p$$tsYmth7^Xg3*/>&IrGqMUX^KhHked8@;>a8CqPV(cR+\(D?9E,Emjd;J#gUq_iBi"?\WL9`FQit0[j!eo6L1,@/=mQtJ-=Rb5 %au5d$S3N)E7]^'Pf2(ZYP@W0RU\$5cEpH79WXV?UK;oG#Gak^ocbcCVH0:Kr7?fqB+MD!A%0o^qR#4jB*]NABV1->!rT?J]q#)9M %s8&pGeus_qeR*6t^Uq1h^:UoSl0seR[&iRX*;oJ2r'bc+Vsf-1e'!ZmoU(7qQuiJ%iW9reCHbqs`o3rq?6WGCN`mnXnDLB1_lHHKt0!isXb: %?G>GMs*ap$fZA(Q5(^L`>MJ[VFuqlM69A.*^EpX#]Y=8gG&-[!>MZ$GcS'bDq/1A>jRNOoe'3sRkPX]7pu^E*lh#VG2f%!ad(hTI %rmR]fDeHP"FO,Rup">sE4hLXbkL3LIDAt68V^pB+$.o*Y).1$.gZ72&gE5q>Yl0 %3ar"'\ocPV[ntCfhY"L]^Ra2O^-A7)0'c^_]OBDNhqq_pSZUTEL\AEXX8d0Z\Np=r(jf"^]&V#2SWB6[-A6)c,n5\Y;^AQ %mcH'h0C](=LTQ"!+.o1?=a[Qbp9p_:HY[PH>I:m5)Qhd-CX7ISf%unNe"kW'rq5F5m1Zi#AfL9PC$s6;[*V*r;Pm.f/LHmh6F0:9(grNf?_e#?_$,.2UFMNRi^es-(FXeSY$GJU`V8IX\m&\ %=-NX4l+=EC02A^3\W+4q9@$p2YNI!6YIE6$IQ_&1Gl8Hd`?pLRgDBe4Rl>93muF%0ZMtlOE/,5,Cfn[2GIMKccd'9i42%0Q4riJP %#X87@Xo%ehm+pdfm>HJoH?4L`4b(JRhY?TBgpE1k2qN!::-YJ8_i52`a@kaK5dR'<>i+98kANSk\NNmIqln24jfA+pr?nrU'BX6% %ekE:Qg#]\ST07:%2g[L;EYjMr2JC9W4#mfD->iRNfkpPW8(9i=]=GGcq_l&>*lB(Frd?s`^V1RRZ/c@]tp.;X7Mm*EmG %[>[!MP&/EAb/o:s%O1eoO=;Y%ZE9['75ei]^%5D)COSO7p09<@qc_"BVr,d'Km.PA?gOEm#9Ha>NSHF)nSR/C= %BRJoSkO.!FS%FN$"Y'#/o@on_d??Yf"Dt`[T&Nk"\I[=[L-F=bp:D^3:>5c6ZJEe_V=o_=m7.S5>tH4f2`I)D\*)rS1HSe4'Tl7r %0.p&`a3/YJM4orAB?oD+^:nhNJ*P2<]A]jID?Fa)6XJ)WaQm\\aKCquJ%<,gp#hgfS"Dn2OD2#Xeok_2HSV)Dr3VtGhoq[.)V\#) %Aqs.dHb2T#g6Sr7c-e&LH)],-af_c=SO;0rh44Gs.a)_lm*CDYmrS2()u-p'q\sA4gO:Em?=[8i,gEf;G3hcR8J["mZXXOo5G)7h %T3m%sIX-CNM)i7qj+G[g^X!B-I;C-0Dg_%DXoUO_qtOd64HG`FZb_[2p#qkmF:QQeAQsWoc#1Y+SO:^VhYqhHH?Oa[IXUsWdpI=_ %0Y0;>O.%)Vg^3:[+obiLr2N6$c>>H;2I?KObI;_ED>g'8);!e)ms26DZ>4gD$.;3@,2:/@m!&&"G^#7[A:nI"m2NiW(XU`O!4,o# %($+Mkfa&\lk2PrP'E$>@,7O&=D.70[H2V+7o4Kt#l)mO,ra2:icGk\g'DCcG2m;C'Dn+a<]X$.qkN(m\ft4;/lbO/*^f@j+Gh[,^ %aY9.=][s>?mOm@7d(",6p-oAVDW]\)2il=IffI6EgRG8>)^8ScnDKMRhbHD;0pY:AhVIG`7Y`$ls6sX^lo+fu)Lq?gD1)#oYFaG7 %H+bglW('(c]6uN"jRi<.lL`K&@<[ulmP+(F0O&/eS37`Dbl!dnReL;&L=m>dmuoD,31jDn%u4l0j;nsEZb]\Vm>',RJ]#]MafZXV %HT4]?>kW-(LM>gc94Bj<0H9A'>7ZL76Kc^ZJ]#]Maf_1%HT4]/<42r?UV7L'bQ^/J[dSK;"qEH(-+gVKmGT`Ng\Xk,0H2R4D;P>b %$lil.96P.Spg!?]h*LXK0Io(f?]R$u]>to#!E %;S3r']`#.(ZY[M1]PM1=I_T^5nn%E8<=AZkinrpchd)h&GdU\[j#1@M>dn[Yd?EAWJ):5k=l$>U45]H$e]g-!M;@0;R5oB$:A",N %=&?TSD<%5OAP_s(V\Js*G!.]T&N.[1X[%kOXGk5=l>q$+`=h6HVU %1#&Ei4fn>O..5\72Zr]Zp>P(\3-cT@hUpNNPetOaW$@t:]5KSgi:eDUI0b*?6N3M3YO2#sm6et,iTf.E&FsYC %Yda(=h]rBpqou(N7lP;XI,"@Ci:Y'Y2t,mqC>&<_@)M,SoPUn8!O:GZPFLlK*aI$0fue^RhS]rfQ^9YGc#)Y*`D8_UV8"+DJIcsJ %1RE%7hLXae[b8)K\nCJRHVC?l-M)a4[6^\-DXWbC]Au.iH,\Inhp_V9\9`A.VEeV(\]aXV52#l#2P"3PIr+1WXR:dg&#X[I[e%.B(*3S!:L*(2!h]n %:)n<3m/8hh^WkVRo2ug/Vh-\V4/'C$'C,I2<:6Cql7)=;4L#UYO)SCk]ePQXMVN8dCtn)+T2O8AZ+KONmQ%1'q1(t]q4;YB[lC;"s7u<[ %c#6s`IaRTM7'kRTp?VibTaC'Ao!co!Sm>IionW@!N=V((\)oV[c+-Y0jPO1U8@Er_hn47+pA>CniqE:r=i8[?# %.9Zf-1+H)3T(q/!gL\k#:q>K.SW`T*kJoQQ2egB]NTi/3-=sgB/c"eno`fBPI.bCdaNSSMcfaVVLK0Q!nqYhi^.,$?(LYYI*UV#< %SJn,tU27*J[VJpgN]K&W;fQQrDoge7Ylj.WXtB[e;r_Z$TsnT4p.gU\;e'%&)IJnHG'CLud./V(AoDQ_cgFO]s*A`@+0EdHcQ$G? %dmKl2O(K%2rHS24r8m>As*]*?I5YGT?FoI]rBdj\NnT&5\aB^fi]WUTQ$N],PNpKU5_2K-oaoS&UdPN=jjNb2?d]"=B6=Pdl'>5@=Sk%amu8/FL8F.OiheIs0Eg/Af9BrB?C %hVJ2+mP=#2]AuK;F0Fq(qV)3tdZ4*J2ouTb]3:]8`:'9%H>J$l[N%B[4ZVl]"teP=`u;(-oDlk'Qb6M>,Oi(X'R-s6p4S#3h%PiI %bf9MGK+t?qI,#hJQJ<7c`:rENhV?jGF)R8MZT%[Q#2e:qgDbNeK5Y\tN=RHDGTGfpJ92tRr(1P/kAWuiDMN4(p8Q*jJ!G&8tI`'iCS[Ic:=U7Xd$ %ZgEe#c1Z`@f,9Ob`F0R`!RA[b]R>#$k4J$NO'&4a7Wiqg!ffiCeFie)([KSC1CfQZ(X8ETEOrfrd-c7_#B7!dHh.R0U]Bh@J,ah9ID3P^]6`N2SkS^W)ljgV2sqFT:GM)mYI;(og@"""JpVq1nb&`l]!PP* %k'k5BGluhfIHbH8".gc%qBM$R^#lPCR=E/ZSDIT-rHrb%!O)AQD%MdP%?=Z$GN5("R0m"VSb^8W&\[^mXRpZPs*@uHr9O>V!B %\fpbZ)R='.B'TuR-OCj.]X[k,oO=BO@t/[icd%='i3rRMS?E'3q:RdC+oATeCQ4eM52)8"k-3]"]ko,gQEF!3ULqtJm)$cF(1$oXlaJ(+gLU.trk9PBn%eeRp)W0hl.3?00n-aH %@8J<$?Xs3*b)Z!,&=#AWKD0.PDVJ$GO2KWtaL6/;*'P7'NsBYm4`Hnip=3]amMnC0dff2hr.Ni(E6?18l*g$jLc8_?rpbXJOEV:s %T]T<[hF1HAA#A'7/Z%-'S%H+pG#[.DP5FsfhONK;]XZc%(Wj+EoA/Ylo>c(l*1D1.4-DsJs'[^Ejli;VUZ-TDIJ3CUg.e0o/3=2s %DXhknZTmj?fd"cuosJUKa,^BY+_(`c!<9Pl]mfij7MUdIRIHma[6]f;/li6k5A]J%`Dl/j4f"8e,!OI/_U6Fo@)J^]$jOYl(Ef5@"/3F*[8%o6Tr_LYL:YMq/RBgh^]&\$(ljh>/h@Kt40mS[`RR7ue90JKQ"9a43:.L=*ZRMFXETRi %D3)=a&]0g&^HFRU0m2jOs*9T!GeNn:p@S#H;KWbtr.2T%](?`;6N*k%nP9D[84D^s@eeU]eX=Bbq'GYk*r/R17F\S(MI)dk^TJ'2 %3U4$&$i/JedHdRW#+KN&rhqd'/WS-egem6DqI'+Zmu>B;3PF^1=d39^\!eOS%IS?&_n$n5lD'aGDAVkbi]c\>J/eGaVf]_6EuJc) %,NfKkR&$b2B]PX>`lH,6O%Oo'VSg<2H,kOY]%3OPel_D$6D_u8`\*K:l@S7:L\@Z&BiOX7W79"i=Wn5DheNY35LN`UYYZJP6.!jq %SNX:$@E]GjdA&d&l7S9,K^VrMk53O*1[[onUgcadgEWQDUcG%@S^nirlTB(Oe!*uV[dXQtVYb3L2;S!MotK[4g)FW7>Bf.6LDu7? %$tah@][f2_?'k#$hSdq91`h).g\86'Y>jQd*b)>J`n5!86X&H[ZYB52gtCA2:Q=>SR*^>;RI[skn'_6I`S^4cW>SuSeDd',r\n+g %m0L5HH0$&A#dsG#&fdcel=1`?bSZBo^4J1IB712U>UD>H@)cc_8Sq+%S$[sK*UMPC1E_+8rqFb2^OG_M5:lg,?`=@XI[*iI`lJ*7 %s(n`ChaMH^'2jmgYr2='OEO<_2G\a3ds.deU!l)fpPZVFl&RPnXHN`!`mjf09Ild6ldBC9V@#`=V&,4aC[6cTiEI>rnjCqL"m=rA %h5@_4T3`TK^U,q6cBg0-0+HLBOZ.$DfOZ*cEV9^E2V!NEp"`hA%5Dd?-\ldJU['a0ps9u^2a %FsM&tb+`*@3qhp5H?u$Y*kr+jOA7[6m-$f8+6%4o`h50b'11/fpS>N5sM5"ImkH+rqb/hVbB>L]2qQaIRPViR\83":-W&,ptT\nG^b1fXkF0ZB[aR0UHNJ,/KFFh+&aiaIeMG*caU4Ef&%0X %\nHA]9fmU8@IP3o`5ZHZ1R:7Yp=.VgBg(J44n\XA^:O0+)f2JG]8]Bc%W/-f@!>2chK/dF@9O.;QEa8/1jUlkT6ZY>YcMRNtHJO,J"E#9EAe2_fVbnD<+eBJSsoBu.EKNjVa)30cD) %1[;'uk/D0.7PGJ["(2PMoOk:WdiLKeHbaG0Fm;u0)"=F^oj$2 %N_qI*c*$YJO\3N]%\6I`VLC5OgF>d0L.cmQE$L)kc'7kG8s]0\j75L3qiHjUfBCQpl;.jmMI[_;cQo4?)/lk(1ck9q;`E'9lFB]G %f#qR*?Z[sF9C5%a*V6#^*hPUh#26o1Mj#+D5MH\Zf`C[B%tAourQhCVT)U$^5KZpTjJlq:je(h=pdDmG%4+D\g+Vq7"n@7[)>kl'EaYcVD/1WGqRfQeM.+f?ND4F7MiI %^>>/7o:5\6;)t8>^Nt?TGP^UNcX6Y4o[fp4T)H3Lp#=llBCG>@iu@d9F]2#.?\!2j;i=?N9U;b:k:(LqO=#j*6.ZbRQW[4SWq1Pu %ek'B'ZDi1qO0)%o2As,O+:L&r'P*S>:[a9ofb_RZ,I\Ao[pJS/Qa@=Q^+g\*MipAm<)*'_-&XBm\>G&Hl&S.lSS#U!rDH51YdF!P %X`-D0mS(6:dU$p+Z<2(QP(1CA^;iMQe+)KGDcFF/)h[Ft0f?#"\k`OC[VVGRLf[>uVB09pUYE4SB+Ir;41Ua"m[6$!o577u!`%p@ %F)(-q7<1C&\&tLjl=!/"lddT`I)sr7Vtn9bBeEIHRAeN;qpj2U8RHGr.uO;`f(,U@L8<$hHn7/gn&>j;1g:BY>_hB5S*1nUQ/,-Q %,PJ*X7Jp*15J*6hG%8ss#0S(A7oC[t@Gd-Z::N(4'`HZO[;u;"3iIeBB/^KU"QG]fcDY8R)=@(SYGtfnI0?t!qD92"+Jr0Ks"8aA %H7f[GEUpt,0f!BAUdqkr6_*9e#.CUU=.-T'rD+mul %Yd(41ck7!jibA"IPJ9uG/r^?HlAk%ZqOumqC\rB21=>VE:>]\3Mk/;Vq:Um,`R]$4.o(^Su0Lt %,W0uB1\fD[%r"17QCmE5Dqr.S<54nB7bAQ;@HU/S.`"F2SKAhIFlTdpT0uk,iXW3&6sHRp#JnI.4kXbkNZU>BGOX`Yg<0FoGF3W3 %d/31%Y.[E[UL1X'.ad1CP$P4MY]B?AMi/i#]uhBDXlq_QY3XaI(";T%fpGNe4J*h^ %:A#$j0'9SGVgA&:-1-PldX>k7G#Cf;=IknQm%T""ihT@KiT5p*a3TB`@Cp1Gq9-%$rbM3]I@6YmU]!gtI`cA+O$RGlb15P$@f8:d %&d!OV343j3#nnsde)GhSelUp>>+!sm4sh6i)HJZP)c5ZV.`C$k[KDC[I_-:D8ir5)Kq'rE$?ipsomr=(m(IYBAA;lHp#W**g8O8; %j'P.AP$R8(i)4s6!"[VX)j2CIIPu'Pp5!n9QupHG5f0OS3grfZ%EjH$[.V7m:%k[RqYQdXO#RNqPOAV.U^$LFGY,>/)O$O>23+!tAFdZ$-E^it>G&Vd^$B%P2US:.OcIY-FGAq;hQU'B %C4Kr[iPs`p%e9L.2JZs[pT;/kTPa#`"0rAra#*bCd*QWN^=0&<7m"s<4G30qp-Ck,5_^j0aA-51P*);Oh:Vm%k2HI47180UHQ8_S %nj'dbnng#=2P8L#fY/pd?96HiO`Xcj*mT;8AC,Mh4X=N^qTcGmaWA7SZVR,O?d9f`4ofL,bE86]%/DCX6M25NP@fA"qoNWZ`Sf^H4\n]I%;(/._7T9SVK*.b*;BA7s(InWK^^obsV**NAX5Tt$sR1'.;!65Zc-LCe.>YU01l#$,D7Il0o`9'G,4]tMU %3P;M(mXu)HH(*kb#@>HAGChN30#]aUMMaGOah4nsfYb-g'#dVb&cO6j7_Y)RUj/\^eW6A-l/R-1%:scc))&Oa+%LL;*PM(n.;Uo# %prhU*ZXcY][/(IFgXPf>/*^*t\d#jBS20H(P.ArW+c#sA;hi(j4e:jLpbY^n?%).(jWR+TT)77R,"^L&A3:j]mS-Y,!LD'tmC %%HSj0A#<61?Zh*L.CD1AkpdOPdQN3;,%s9mMqNW`]@mBXQ&0fo?O5IEe^Km %bYDB(>;CcYOVcheRO?8\%T;Rq=UV2V,ri^+V<:G"(s"KO89.qp26POcq`K+Q93[jkNM68\1\AV1X.PfDPApFNSJa)u1ZR#jH+BD^ %]<]i[1^eWr)*;"2N&K3\AN&`RE]CZlG0!s/@>!db#I?KaB?$+:nnhN)5K]pHoFO0V:AulY%9ql6R3[I7;+<.U\=3O!u795 %']V?g379?S]VWQL$iE&^1TW(6M[g&a5+Hg>ktohh:YRI3F9Vd7mM0**kmN%4p#t_,JN0>*^:+AboKZUQ4muX_l&u&ST2JH6g0P*_ %-JN4^1\lPs3[l$5/`U&;:tc+R/L\SlNtfVafVVl>S$@:;Cm1MM8lI %Fp[])O-0u&\#*Y1FhTf#InODh*C@-%nu[_2$'Mh,SpR,kN/N^PO4!Spg(&Nj+qK8FcE;)18Ju3#K@i.I4H9&o5sI@H&=Gf8H'9tO %E.APm3*P,ToM5tsf]2TqhRr3mbEjkDo-,c\B0)(!Og!H/q66@`8%Uc1N&0j@o[)Ekgml(X82k1s%WTff?1a=u:'<Ojp%9@EMRUWo)e/t:bf;XU2='qC^G-5I^/fh]=nr#*J9$,i(;0N*!=A)b9?t_T)]b>T>p3%8U\o?i6VJ;+[!df!qO+%P\m]knAlEtK!&aBa,BR%HO=9aqprk\k@o0 %7mu:]dlpR*Nn!2J1d,8f-g$W3&^)fZm(*)Uq=Gt!HB+c+YU93AB96HW42i+OYWW5&Rk@IkDL;*K6sp%3&W`O[^sKdRm1u\51jI,7 %/'c4b5q(+t`F#T02GisNN$Y)1HqQb\m.j>]&$DajZ")'J^fh_K-1!lsE1k(QUtE3AdttqJ--'=oT,uR&%TPZm/KC4E^_927iDNqN %4-F@jGT(Qr%V%j9bb!:1,\`FsS3:T\-L7PHee%a"H0nPG6BjRPJS6 %!tL*3"coL>1`9lm_6'[:6Bp/;O&C1VC'Imk,60b[bMbh]#j02h?n^iM<8`U5Ob&gh@hVrX<"i$&i'ZA9kjjuRp?`F'GSXu$0lb20T=PCbXoTD6A_KaP5$UF*/`5j8]P[+6'M!Erb,Z?.Y)/DJ^Y>KJtM#>"_"kC=Et5CG==,JUlN %.WJRgV.oeBS(Z9Ak6HcT__2+SahA]:)X-'%B8sgXfPpbNRulHLMVO-g;4k9;G*V_1!6APiN`uX2KWkhT:*laMi[?^B!Hnfn'/DCS %cR4rI_lsBe29EAE$j>c<#a.6eV&Wm$!C*X?[4G:#.:"dp2Tq8D]WUUc%7Xtp?-cZaas1YL34u;4n.&>i3MJ2Fgj'@VZ?*Og6TNEZ %7!9Be["7t#.=52b"'b=+HOF5kF4olV4/YPRR1)_YOAu:"15Zfp'9Y-0/bd#&C$nCmolJL&!tfe_]MR%\H1Q,;QP&H"9M"b)S_Otc %":+Z&_!a<[-]3i@<5H5allcTjAe.R3oJ]Ma.&3U#SfL40C2:s`%cgqd5#G+UFdcAKSC(M5=s/EJh"fZ$I&mFL"<`ujU@2c-nC29U %PY^0,e]E_ZV9R3HnR^FOc1>loc*Nc6m+i"Qq1'FPa($a,k>(mXP7fdA?>JKDs!VNU!s?k45gQ6j9ICG`E6Z'P1@!R2WBjNl5a'W0 %A$AWNm$qe$XXFoJ^l4RUCd&JsML<^PqcC*"!,t^qY5E+l(^$[I7;YB>`R;#2 %N/^#8c'4F-5Nf_B&XOj:3VGkUZu1#Z7-Fnq8"6\n-UBfU3_ClsT+a.u(oqa'721gG[F02VX_5+2([k)jICr^Uebq`rSW!V=#A?0h %i8Noc/C@rP+eT&E-#tKBlZ$ZL(A+SaO(DTBd:89HR]h89aKP"5.rYP5@.&n?Rq"O14MoVVmKTL3E9Po#n#[":0J!CnhZ-f0Z8KuKMQ8WSi+`X"mK&5ekrHr>"m %U^mT.B"B^oQ\WmBGJ53d;Q&s0&T)!IaAn7VEfu5'a,V%qPm#"j5WWC*cm;PQV$W?_B9k/7p0f,2nohp**WVP[D$s#=fdk,NeifEO %ahVjBo8=2k&Lja\e1pqi'B%4aj,S[SHhq/?1jkB&,F!O_i?Jl'(1'0u.9RoR#@E#'.!Phd5=lbA\;I^?;.;UsgEHqgRfkT'`[Z)(,sA_M7jWMsf/P7p]P]I6.:YF,aD7F!J?g%HW\sL+TpF?jpK)e'Jj6OO(&eRXjrT"VbR"Hej6=aZTHH>o:G:M1<+Gp`\$:;VW3;NiG=Ho;Q0]@a`9o`.WF]C %YQHo*6kRM4*#r9`MGuk-$Cht)hO%`8J`9OG=fRMW:Kf](Uc4CQ$?8It8]r)i."pH-7$tJ;3+Mcu!!VqcAXpD6T0tHM;e^234RHB %*+[)mA>TDpN^YjdmpkgVR!lr)-SE*liu@oF"U$:"_#f0%s'\&FZ]d,*qoojG,^Cm,i2Ks"cncS:^ot"bJ`XndA"#!<3T-4DoB\`> %8Fbl.8HbA%4N1m+JJY`CN2Opa&\^V[HC:os%t=U)<_g^:`7U1q6.r+Q`RRF3)$n4(HYLImg"9i&PCD*R3V!W.!X_qA\?A8 %ZAN9$Oc$)&Psan8nDo&lW6.L3*[uh6+A"'%(lk[@ZDs_W=ZUXlLp`E`TNN#+`!PH>#tQ"P5qQP*H>aV#$f[@/pul$(CLphHcH+1A %k(W,.VD6_5(0<2J?[cehBEt14KR2>gQZSnB6tQUopQ'=pHDBqUWTf-Gl':ULKJE015]HeX&R[=KmI)abW`TI'nXQW0$G+I#&oZip %O#Gm6=!'?b..Hu*'m!n\IVSd[>hFm_8N(BT;(YnU#+N%KZsnLfoj*#'DX3E.5k%"Bq#WEm%,?'\lRe2-r,^`l(ouk?E%K-bX]ms: %6G!YI,aUV0*=1jPq)NG)dX=:98<5a%dmiL4+#E7bTQH"eOG])Sr943m+5LOTUFF8VL(c%*W16D@5-<-56L$j1H4[(V&ACki&6>]; %807oVX*%nt6P:W3>!Q=Lm.K[-jX6qc,k]g&2mUbJm>Yfs?pgikK<.#o'V+ck4t.,!!-K??K3rf[L;tB+[roSZp8CX?"\!>&0W*,h %G-iKe@K_,Ge2Tc$Uk,>JQ(<=a^rTH!KP@nNh5Pfmd)a"mlAS\97PpP1(1d['GChi3^6Um)qQike08WY%mHZV7[%e`YU#!"ua+nQ# %*>3X]_1b0IfsN6ui3RCuR1B^)Pdb;&]sP(%f,[.`'%-5`fOlm7S-h:-hQ&h7_[N^ML_cR6Y-ej$XWDT%>nBUZEYDSr>9fZa$+)Cj %3.i^Zi\`%37`I,aWhVlZ.H5Lp!m(pk#$Pn(AWWV3!&l+J@&qAR\RgRhS8A8d3@DVXc'71;Pg<%&?8Zr&OQ;aX*YG$pJ/,F*po#m$ %"9S60ic.qZE(+*75RVd;H;`uqSpkB246Fho`7:\G %:-A[k)6GF!ir"=oYp^OYO+JPk2\9u+Rp[.4)IG@SKs`^n..N90Jgj`R;o6r5b[\@LnaNC]\nAXJapEfmrTlf"aMO6X^taNPIHi4_ %c=@s#P+e-`5051POm;)Z=Fu6na-l-D;c>,.qJbq]VC>/kW.hBPsqiB?1ijtFT]o9O*PN0Vp#$HaY0^P<(KS$JRa=F?3C-jE=S!0P:I_VS(tpE/Rs'ri:'f3Z161dBZ[Yh^WFSVHpMq1dX(5pSILC! %B/e"T\c^>P4@nA:.p?9Mk,2Pf!<*SMQ#Q'>c+SJ+'1m58cRA!GFjhP9D1pVd[>7k2(9(a %,=3pr\VdsESiW(]F[`PS,-t!2R/3;^^<,Pn)D>&k7oJ2`7qu57W'V%T>8Z]h5j]^6Ku;k:O,K&/U);R#a$JnpNK`'`keEBk_VnB6 %m'Z)f,&MdOcc,=-cdPht.-&+jF'=aQ;kp*h8:tNX.*abr#DFgb'pWl_drQPo)usrPgfQs!"[sjX*KcmJ68Ku*8O$*kLO@eq3.l"jpKZQ9=m\f$^mRu@m@fUiEn_8b8buiW+bc@sN;uX0l78b'-Mi[4m2\`.:g8Oso;-Ff %iGhJY'Mkck`tFJ^nteCZ3_l;R]U=ArE1K1B&[ZhOVIkSr4*t%D##d_8[f"O5<2p$bmF+`jlX[CD%0DEJEhj=*lL[a:4n-_Q`]Xdm %i(.ub,c+29X+Ss5Z9"i%;pUDD5))'Y"eT"O[kbYBCsO]JCQ6;5i1s+.IX36!6gX %Y]T$RHtNX]p=YD;[jdaT0d@"k=!Y,Wb.DBj=QLZ23Jlg\d'p9;JM0&n01fLll %k/,>H&`p<.cg'<5":RYfJ:89$nj/&;gV2VlLF%3RaC@eU3V1jG;HfWd(cYd&;u;1+._?pL-Tbs&9!dn0&j*!<6SJpdKVK[$4HF;h %P[0=qUZm'"S0**$5C"H$Gt96,>tg=snZn@djZ"j%[E?Cur4#85;h@Zc3;?S6#bm%%M$?\i$rg^[(Q\m0<$3h66/kiXZ7.&lAHrds %>m#"1jbmF8dk81N=$8O.KO'[,Io9:;uVP8p.4c+3*G9p1;`-ZUqF %)EZpp-,<9%kGenc,@-j:W9b#@QE3Llj-J==:^ECA73+K)KZZo1(1l*]"Xu$XLR=7Jo2HuR,k6D]GtPeCZEnf`pV_*P(=`a:YY^%W %V!+2n"1f,jq:H/78m*"'lr!,0F_Y0e'DpgcR[KKLp!c`[[<-P`%TSt)+[kMJ46\k`jVKr/`M87X8Ma5mLM<@sNJ]XMGn7-"pnkEX %2b_M_D;+cj.>)i(,OrL/rYRVkp]',`X/1ATt1cV15oNBE`:WIW@7d,H>ICt)t'jNR5H'1Ntr %[P^V42$ATaPh1u(Y/#t-+SVM[Q2;)m[TDf="ROWZq.D7'h.L3;_9LW3&c.Z$(%dZ:Q%Eg'-nX.O3d,ZN?bnA:+0+TojM>OkP5.j4 %$cTNb.]Ju@,Z7$f;LM1tb*gBdd)3[8Ub3+c7\P2G2Th%$:OB6sgCQb7<9;Ym"16ATb(t">TT)]V#PDdNd%9kVMfLq3:T$@C*5/"s %6jQ?4ZDXGY?m`$GP"6YYKQkLh61,+#\7ot#`%Xb1jiQO2J<^5<-TDp*iBY"+&IiEjl-d[J:e\BEM2)?dLX1Xm(:iB2'///JY:.bg %PQF&N9qm!H;HnpMQB38(?(dKE^Sg0Qs2=m83?6B!]^SH&1$1o$k.,uMY>qn1[J[n2mDn6jPV@#KZa_hKDYT"6rg %q5c]cNp1`i5TToq:bf,_p]6`6J/GdRD"._JG^tFOC$u3#D#i4BR-lj'Mjtb4;'N%G%\s8\=7tX!e4f-)*fn]VRm/`;(.m[T:rF/oB])-JT+sC>i!]:.M"8NR\EoE="Y:#[:%V=% %k>th3*tEZZm>8eT'*^OHY>;b8d]a!U!%YlI_$H1:@2Alki5(aOPrfE'Nho4-WJ[1$WTCl*deEB19lQ(X%*EqH=CslN+qOC?.*3H) %5nb9Io1W%T[$?143&!ASqIr3Jg'F#LLGL.qiYD`t@HnAb5?Yu@;;W6`3/BT)B(@`R%P/psoe_o/5?UmkdNoJ/)dMZq,]UaND*WN$ %,9=9uHq=rmTS*(!^gZ-@OJM;p0o1_,4hjMk+Cc-2h]N17H,It4S;2FlI\Q%N&Q$VA\q8UUd"RKhJk3L$_A;H^n@jU4O>ukPO[8^MEXsH>L0VhfO%:!GFk/?HV@23%(#F9Ul/+6Sj*dkb+u_RC^;DUj#s>DZ'HVH=*eiT7&,rk?QJ-.L8tF( %_P9EdYiK@s#5;]2:V*33Tb1E?+O\;->*=.a0Al-BR %g.I1Qh*U52kd!Pt=Zs*1"/P%%H(Zi);O\*m)G)_kH1:\aeJ/"FcK]p,GIgL_3Wg6tLM;14$bu"p5J='=/3)-m=d?r?,KA2Yq5k!YsTIE0U9#Kb+d!m)+4*=L* %5uXmFl=[+RI&MEpHNT@rTX:-;FY./RF<'S=O`scuQN6nBqj$=c!XbEY^$&=[cHES_3_nD)_@\b8]HZ,^OfEsc(0c-gQ#";Ai&fL=Pih6E%baCm %m%cU-?!p!'/fYOM-Zq/q#j689%Kj4)OnP(6IZ#u;\SM^k!q5q4's3%)7=2f;pfj[N/m:u"8Yu5J-G:[a/>Jhn;UV=&R,rq$FH$Md %T[-VM%?[0kSum>>If_aZP^VO9B0YBbLMV-,3L&BE7)]?n">ts3O.>"V('P^>MUHT''6*)(-MLK(DP(g`iMZL0'bJo^GReLe(`")W %8^61f%Nnoj(qcbj=Y;\-6+"0Xgn/@jVAJpV1;FhIo[SLE21RbtI7Q94&U=]n_>JjkhB+#FKF^B`]nI]Q+N6-Kl8qu#:"MAu6t;GF %.653W4WWjZI@:0@6jgjJ!\H!3B/`qsKII::T1]]l8-;4\&M.$$,h.ull=6N%/8T`mU\K9mTJo#&-j5[15m$F;G*cTJ8g/9<,>e,KOi*!L)E'#+oe+l %:;HSapsk$jUt4PrR/OFO#Gg3>5uo&#bCQ[Hp5L@kZpQNo&Wg37`QpDUTG,.(U+4f[E$J:%S=*6"MhTFpHcUj7"1AoeV9d6AP<'ud %gC(]8HA^`CO.&>d)c0CeP3!."25+$'N.iYQU^qFA;KX925Y-Q.9EP?l^8FVgA*o4;jq,m%$op\0_Luk1`!kp,K;%moN7]^6OXNTu %k!f]M_L5)R)d!e&8r@DcR*7hp_#OW[cHMTB^5;dakt_M\$`3M$?bF$Na;rbi`8?9hVJkE[8>%4UN_Kmr6q0Z[="R%a %@E'p\d:_5g8<'>$Tb2u*S^*PFfsEdhul*RnPp"o!0WJiZMRWYM7R(8c8:j5l/S`[TM3pZs1K22IJ1piJXk=\P86!7h@m %X0a*e$?]:V)GMpt-p^Z5,!&EZ6ATTaC!B(V.A.1D-3c(X(4fAfR>9UR6?9c3W^#1m?d[%7SohgZ@3@_@&W%32AnZbhtC2'@CDc22lEIl63]`Zt>[8oEdrm/,%AamS"$Y0_Vk6H%%li79N'* %NqdHHO?1E_I39"9Id=on.87#(2,(Q %?2dNtV6J`\pWr#5kEu5^k;+S4d-F["A3LZ]aDoos"LR-a=[g`/+".AYWh,@iN6X[^;0WdlbXsd6)bnZF':^42mKbk#*FD20LaLHh %Pu"rgj\V;U)!n>ie!o:SJsl`O*SQkjp101np2FFLGZtG=jgbXe>-pc*Iff`ENiqo.Mt<1.0/i;Fp6jVCoNuP=;dM?lA1F#R]7Ztp %dXW#Wljp/c$S;c5X*EX)K)N'=1I)5*g/2^7%qH^*#(]2hd#7YVWp6eOO8:I&J- %GV>_FfIe!3,jUH!HIOM1uF*UDkdHd6p)e6B %YGiuSk&$G^PM3@<$X5a(P'LUXUU_j7'bMS;!EjWnKIMTq;hI`?O$D]`7mRQV6Tt5G*+de0 %U*]-RP>cc)kQgU%kL^`N&q'^\!"9Hf00iGA^Z$5iQL''pMPIkF0WqtE64PWbM2N``/dVO[fA7*'#b&Bgr'`AoiM[r8\4e-13f.[p %^k(P[Gd:RX77e&;R)dPRO:g1KGnd6m3!;t5N\f-d:3%T[]BA2rAlbOjHTE185ID^LlND*OY&6q,.AJoq(UE^j^Z$C1ljKZ5Tm?rO %;&qg&$gcB97+nD3r*4JL95L0/N@FU>g8+"rtG/[EWlsD0+uq@d2>3]7ZdP_ %JQh+$4r'2P$QAfVIM,.!s5SBnIqW,$K3++ %6PNth*EA,=oHnegaRe\:,"4h[_si:++WhLJnFr(rg_)Br_](jP@ZkIl2C'8tQ3pWST8+Gr[;XHcEd(DJ64QF8\+Rr@@BcC93_RUO %@QU4qN'&nsW)"th5k5s?l%QqDL8"bs=6))I6Q/,W %o6'YXKh^7gBe+`(%&bkZ]P6Ag>DgjSZt54/Af>9s%rh.YCek`S@G`g84iuH2khXZC5C4VU:,>Qd/c`s"+*&9FT1")OVH\QSmO=41 %A)38BB65uiBdtbMd$<&Q(9)/:#Yj:OK$MZ0rW8O>j*ZlE[I`#Fs%_ %N*;l&*K4N!"e/sZr3;>a/ccpt!F,,]6214@+W-aX(QdHr#nc4-M#)WH2]RN?c4+5/mh(q`TH6M>-L=&_38nH4-u]T^',;T7Fs@@u %412J\INjEh_f6L!Qa$YNc=?bR5DZgf5\oTI)Tru_%u?6%c`hTZQVUE>NLdb8JCn-K&?%1"";9lG6&Q"i(O1,;VqAGegsHHD,/7D( %Nc.-`"?/^'i5;Ek\gs:RPSutR9p+`5ANkT_LC^br!.FhbW6s2$.=haLAJQQm1%R`YUPS=E@bDa80N;cpQVcIt)@jK1:J**C6SA0j %N_+OD.jCLANGNX!QepoSE:iht0+--d5+u0tF,=eN;'$T/Ks)^0r-Ng1k.ZF'bu14"^f?'(KSj.^H]8?e#n@S/^a!ME%k4$q;0S45 %L#+,r)IfmLPQSL-:]%H8#")-1,]ohRLI!/&&""baP]"u,ag+t'4MP(#B,'CZY^XZaJZnD9@6kPNJZ21J0``t_!%70DR+SCcs,@"+ %Od!XT7n4ul:6m7Kr%;YlaAn*'+%gNS7gZ?Zi(ccN!0qA^oc.i+XLbGrOuDqS#Uuh]IHfDU9rL1p %fLpc*e&_^n!G_tBlVYkHOA.3G$NU?4,H\0MRPcRH&/a,CK(%_lY]+%a-:[dQ&GsE6*`PTe@[Z6#-bq,DLkU5OE;36epl%,.6Rjdc %JYC)@i(fi]c[$op>6Z#[hUg+#J;[jQiu6J<@haG05uEXi#orgYJkQNH)5%`N2ohoJ1b1o47::sL*p4DEc*_hVj#ImZ8+qmr-%c!? %ENC,]!GoSO%+KQ5o2G)j._OdS(P$D`e>"0AUl5Nq$\W=Rm+B?QVX$%f'lVZ^9HdXke-?1`PD@?D8i=CR'E/j"!\XI]aAMR3R5?fD %PZNP,VUEM99(srcbchfio(R62s*u>Q]Tr8">2S1JjHAWa-ECP1'-)^bn\Hur-j(qgk5e6tGS=,N_^D5bO?j3j$tA-9iFP9DJ.r2G %ceEiai]-1YCFP)gR#%)-][u2'MH:UV6P@3`OrJZd'&5lej[B8aVNk*maGGZ9C'SjK2nq<'Z-]?dGJ#:PL=n.%la"o`[9@6-d58&rpG@m=&@&,E=,S=/WPEMD7Mc0`L9`=M-EG;m!hmnV2X=n&&F3qj`;SPphYcM-Bj"7q,n %r!SH`+r,Vh[RmcOM"tHG4!pE+3f*%Y$d]uA,U2G@O(Df,8CS;jV,oZ#7feH9):/8c\bAc@d];`&L;ZBQluRE;-&A:mq`6@=9enKM %H_cOdHki&A4_:Os+BR;hT86kaA=DJs+_2+:l81jiTeR1S]C1$9P+"k/Ge1u$.jDiG65r/U@7rRq6gJ&%pC#j01FT=E&QQ&m?r$Tj %NC/k2!._bE5so*P^[jUhq0X-AAKTU;bR]Je(E/-f=lMPLFf#jW*":$R6)(R*Qn!u4![^PPqE,2%X#Ht %j=hJ7I/t@6JDc$R]oT0I"c8j>53Z\R/7I.R!Oj5;u97< %6P?Q-h@j7aK!mpk;rkKd&G)],8MQcjQ:foJeOOoWLM7Y\"98ZN-#O?ifHTtTL1EnOQ%i0(4K%-L1NX65!J^`Y"DeW+:oM.])emBX %A_5?Jm:*HA6N)TW$jU/Y(e:cBo4URjHl.E8$BXjp?a5Dse^+C<$tM4QIo&J)eU6pq^D4MX1( %J@Q5-$2Fmr6?G7ieO0DZ_d)JRK(q+N(BNkd0SD:S\;0]EXA7pMmMN*q[K=uX6j6Qs(MW7-S0^B#*g]9JSqi"qguc;nY[1$]h,t<2 %0oIJPW_WC+7_r9@-`nm&O0=0N#!cE`A4kM0102He["OCD&P3$*(MR+-`*MWJWq*Dr_M'/W=A/#\b&Cd&F %GU!n%E-a%m'*,/>G7ZVKTbQ^\:l0&u<$-.3c%W\^'E^cYL."I+BO\i[@8n[q&Yc(cZA9?=Zc&'GE.lSH,I8Z[68.P%6BP3):#u1" %e5(K_5UaEM?o2qC>3Zis0EK)q19t$h;&f(Sg3D&gEn+74Z;q-/hf')^EBj!<@dpZVR5rGj:N:/;!GgtuNfp5"NkAe+&[sDg(J:gl %[^_?leWI+KLE-*O/VEU7^`ec#-U!okfi\7+&I@G/O-o&i;Y4/oEQN&RS;2c[diE!n'0N9":'c(e$mGdE$k50BpJO:T]F/-`_jPkI %.mZX\bhP+7`'6]^\np76\h\O.=t(&3g4=/\TGA %2IslG,&Vc'n;]82+>>_B2O'j:-!+X\Ju3pM"U*OUaZI`jX&i.kS(ueq>@[fQZmiT;Ws(\[L--HBXqN)cH^?=@"ih@^K>^KS"D;VX?)M=;6*[LGq.L@f[?I#5#G=5gD&+`8W.\,1KU>28lZW'nI"@X"IDi*eL@_6g.X%6bG=aJ,*/=mLJ9eUXR7D@P/`&=nh %N\_pR6BjH89?)Wi!U_u#9%$+N]U3YGmR,!0c-KeJj:]Y=.jI"Yf+2\Q3$MmAqcal?s_W],t?kr %d/4/`&`Z8A=4/>&$mQH@'aFCGS-\mHkX1XaZ&o%6Ra %-.W\#5*&.l"+h=A%[!&I,!dFc7nSWVe_rT`GS21]1ReZESH)Y^I3C:P@j.>qm-\b$b=o]XE,,:(&O]_J0;WJR) %q&"l;e<3XULJH381ZW^4KCoi?"!i>cb(c$t&$T7a-4d*biF,:X*7^jP9GJO?H?%opNt@5''"j0K1\$Jb'pJ\*Lab`CYM5,p!MAiR %"SLd%,ai3*epo3*I>f+`#`*.X67d(g.r'3TZ %H":Dt-NX:@bF0oW)]K`r"k4>QnF("`^'<"T.4i0K$" %)bNZiTc7&1MA,ub=..2`Q$!?]3-aE9a%[Nkd;=A#%7[.G/fQ`pPR>qZ*#.m4;jn;2"ES\7i"1+q<^9F_?j7e9;mr"_-A%UM7K]8Q %_Jggf+q,JF@\46`e0-$9)3PauFLqhkWsPQH+[e]a#7Cnj3*74+['7]Qj6!XcS0DqLDH?b,/2C=?K/.s^5EXj[n7?B-qLDc %LidS!(#X""F@1(h%:W9Q[lL6m#aMn*78B04CUbTX^O[lNi$R`;'uJcM26\?8%>dRbZjY5j,]G]=IhsT>_+IZVRT*_-E*gn1KAcu( %@3RB;:s6jPY'oQ5dMmUshu%HH0Of[,FM3"A"]>JDBgBLgoU\YX*)FDhaS7)#CsE$m5eWMu*]5(kOhc'98r6oMSkl@-5e)H"\2BBO@4V_i'.#c_HD28Y`BhQW %[Ksf6Gd42<>BR*21FEm!2M>hh,*/ZF)[\>I<8G$"Q0p#`E:>1Kp]C`*$T"*&H,n`XBJ5>_fP;6Y%W;>-&5^=2"P:7#fep$d8d:b9 %$R.9-#*Kj_cQk1On49;f2bKIqKh!+",q/,36QEB018QDhq%<_c7W8nU4p&S*.6rtRVDX?mMTdmXYUBYG*JI3+<"PBj]h4F330$q6 %K5t8`P9#P^K\$rt;7'mG]:IBA/RDAO=bA"'n;`SG30,?l.8@n@"Q9U"&ZFq#=?8=H(o/^fcn8PFJljo[PCY/aW!'Im`l#(EX')\c %Kj,EA*#cNK8;2P^6't1mQY-YWi@1M`QQTfijrfhKM0WKZPZ9;f*jJQ:&gE'0i!=9O$;+9UO@Vpl!0[a%g.m8,-)$eJ4&1rI#tYPu %MF"f9E_)UlO2:rY)Bq=588j?.E_s;rI"^N7*gI?*0k5Z(JPqm[1`e(;5l>CkD]Z.f0mYO-J8I/?lHL4W>FOhR@M6]Un7(GHJ>]eR %!@5Tg6Q9Hi@O#R"ZXTX/+9AB"-D#TMM5Z1Tr?amFW#0L2(CLam;b5Y5,+3rm,=:O<^I)pimY`#!#".`hSp_ZJ3J9qfiYo!T`.'.f %@W<^@je$MTA`nULlQrG^-BE]^Ob_*?NSc"@on3q`:LJZ\EY9;fiIaohZCT?i#;\6U+pgk4jUdTG9-pT-82Ok!/1P%/5\GXp-I?pk %7'1OoR"`.A7k"R96u2o%6^('XphW8-6O!cLk`Z%R_Nb,b9L-p!MXr5k21R@>@7_?(ZEB9>W-O>iWJF7>)"Npt_>r"S9G4'BjLk[j %$C2Ao#iH\_oXng-W$S?p+%M8OeajlkB@9a*,%!i+?a`4?.D.qXj7sI(6mU_Y %?in/9)_))GFQ9GP?a,[8@Ser&OTmtP_hPd-YV'&`F)LE\:Ag%7MT)OoP^C7eEAeqPRsj2*Y=O88?L"T?oG@03]J,] %Do/BXTgfMX#-%YJkJ@&sBJY:q6-87$)QFrZ"Hh%pmT-7PEPQZ?68:@)#1mc]QmK.g5,@h*OH8W,$ZXf9erbok]V8im$-8aY!iPD5 %rLFj84lQUkV63!i!'28hTF2r.i6m4"$&ejbFs9Mu"M,V:Ih0/V-s<<"d>:DN^jFNA=doa$moL!4iX'it&r'jQ7KC&bF?@",Kps!B %G&$33=@@PE'9qIT5QCt)a+e;>@EK^*[Lo@@S.Hp\LgKqb&8OhP.Dqg*F@@3SAi %@[TkH5oM;=MuZO;lXlsn`\WAE3;HmK/@#56.X$E&#T0U7M29R]Df"(D9a71s*f1$^?'-N`/WgRg;kC(PQ<2jA5q(\\A3b_o4Jj7% %RBsu\&-RENG_O@WU!LPB-2?.ED(L18mnnm=%S$RoKik+Jl/0I#2gmP.1*<,Z?:+R8Q6N^eV^nq-5m1E %8dVef1jC.G+^CW63^fS@/;3e0NCaQ#BIr/.&IFm\N[_"ZV]N2T@Rh&?\;6BS_R'<"1J5W@"f45@rl2;si?ArV&i"/1,m`b)on=oM %V@k2)*P.Ng(t1R<<[(hkPK"c-/66FB*('(inoM-\Wd+7c@*FEV>a_qp(BQ1,=T %7kho89FjOL!;,hOI$\m3it@B:j+F5A5bq'k#2%NNLA2,;+s_pSOlJdfgKY=CmaNZ=Mh50WbZNpOU.H@o_EO\nPS?Hd,+i79"N".@ %LFl^S#E/,^!.SurrGTYo6 %pCfu%'B'7g.h#u@dq/UpBL72.r0oD&U`"e^R)N>4Xm6.21,<7dW6(8f4+ZZDYn5q;+*cgNXJVXoEM::hQ %&HX'V">*4+CP=b/V1PYROdp3-s2$Z0amg'#>T;WLo&W\V_iTS2J05:3/m+o3Wpd8S+W;eD5jUn&*ERmKV4^)*Pn(t^-!nl`8B;&H %,)SIe0.)*n_-i%dA_Ng`.;/e$doj7rnWeo&X76=e!+T1\M0MQ2J;!tZ-1"TQ@gF*5&KVO^C5-2QKtrZV6*S3MPIM5X-F&0G;sfou %!eO7KOm!&fK#QI-78:ME,Z70`#r?N*%*1/ADE7XZ\q(,\LG]8r:6Z,&-jJh!M"R#)2>/>V`<%0p4K77uKZbacoRf,hG[?V&;FM]V %.)7`seR=U+#B;RN[h>YK"6.^BNFglN((meA&H#*cR$-gc>'6VB;%FD_)G0Ha\3HB40hi'PnJQ>idihOXZO3DK,TV_r(5;l&!hWIB %E\-l@+QoFU;Y:?M/"Sb87(,-f$<2c5pN@2%9IfSn"nukE5L_[-0"QJ[JiPZ,th"oMq.T;!_7t-iuC+ca5$qJ]8PC3t/GflAO_.B$*?XDPj!d %]5cs5N0n-8ZWIN;P=5*gI"X[d3taC[U56_h8M#?@-_Bh)U&CsWBFQSU6qOC]"<23P1Q1_;_OkAtA8s([Y^7_F'cpRVeWW8-B<9uo3=DTf<*r[MQ>(dA?_#]Qj/Dh'3kLfiBpgW$Dm9L4$>[!ia=nEoL3FYlsUPs.7 %.nb^&\/YgU^]DIg)B+SR(b5)Y&>].B4f_&\"&"FR7LA!K.#8aS1tmPf6S?-QHSDb%Q6^DPAf\3'9PKfeJqMsP&^Lj'@MioJ+k3:? %Jq4:dH/XU5a]W<,M-227j\Q/^YR%UR;%8$JMWQD]`:I%g7MY?$.5P/Ii+BiHWAgIQf3@NO^dt5,JdS-F\AC"+MsDp(gb$_),Rce+ %fl"/'=4B0`;C8bSLI)W#XCXt(('uiAf:J3DX!PQIP&2ZlLk(ocZ?O-i\LqHuae&,MC69[";A/3*#24#rSR^(R5R,"^JlQtfglU:U %+[:_9!^I2G3((StLa4!#a%`;d;V=_eJtrhVE3sJT`)!JM^Z_Vr9GP]Z+at$I#L`dPZPqGUoI+]OZl)_I$IU,B9rNeFVGeVD.FC#e %Ydi'fDeQ$a)C7;fQQj7f&rmlGM'l_em^a+B09)/16?rl072\h<`:AWkpJ1o-Ak53tM4C>6c(1,QDam.$d5G>Y8dU#$%k^X&kXg]e %T4hD:GbrlMa8mK$X[IOm(Tb4PogJLB[4@ZhBHXC&KXChC#+:Bsf7\Qusd<*6%g[/ %W3:[65'$aLTeHWVCrR-%E"FO#%?`mdpRr4t!<3o[C.pn4&JS?oH')tr!=i7RYs"ig6"p#j>h;[t;rrOV76WCeJLHK)t[_ %k55s],_6SQ/S-+/N0Jn%n2<[u&28nfR %e0M"`+WJ!:jgbX'3_6@U#LO<;d&/]5rc#t_iD-?h$\cl:+oXEbi$\ds"/ga:._:tr*AQBMJpSaR8*J(Ko`B,t+Hd`83gOt8>b*%L %&/S4354hW'&mD6-daB%m;i%M(!oG12$B@7M^;j^Q0kA*pBcrE=Yn3iR<[#X6PrT%L"BhI6Y^$;>b6VMp?2[UF-"$&!Yt1->cU*d` %@KlAIVdJ?&nk2-/&\>m2,Ki0:fkhiZ,EkMFUMqb\i7)_XV2W8W+G,P0A.%Zf_iRl=3$u#;)(,$])5:0AUV\R;<9BI.Nu:7I"e[P< %KA4Ak`toLjY/[ %PA8eX"K1;J8UZ`Kb-3#(@$>gR`=lAm*1]@X94ep?"%L5+=`T>NaN!(+*KSU"i%%>K!oGV=LR,Fc %7&L\a(fB+R"Bp>s&hF,m0LX$a!u+!+K8?j&Sn*sp.&%.n8q[?!$B:_n!9Ha_h@jFV%7h=DXTkgKVZ9!=l_K2B(_t;(;#,P4*[/Q1 %p>HKtItX!sUV_OR.hopTEFTn(EDIK`'N#**[M-Y87?ZSo+mgG^Qpr0!n8[UJk'Jf9Jt5i]GUb`*!jutkS1,%EOCf@&LGPTo)Zo^IY.VVG*;!1T\^@`02/nt6l$!10fOV@*!N;S;%V6q!jY,1U9sMbL4+[;Kj,W&gq&'B$A"p+d:?pJJ-#k7Q?Gr?+J8l> %$A]K&%Ut3-9+pB&;0FhLeWocWCsS4sJhRPQ(egA6nX0`7J^?%U4G6fC75Q>q)FrBuakQrYM$54$/Xbf[UDa4E\#8FMNWicbB77^C %";i))Q$rZTT6;Kp[0LlAHd3k&g!D<-2RTZ^g\\VuT %@p#H[J-!n36%0)DAZ2`h1PCQf[4T!$C[c9e.:*$>963S8c)%^`ns+f-JXD*YR(Wc %80M3RGD(SbD8DoXj>M`+'F,6C#[h_miIp5*a!r2pYUq.n'*MYc0![H:(E4P\-(Z8T6mm\E8Wj9#LUeFm+Xi"GM\SY7!8&W,?]M6" %PtJ9WVU?`k7Zo&d$lk+Lr'E(NXX0"GMa8^*XH7Ga.nZeYL709M3sBQbJe"$7a9_O0S@3-H`.,qW!R2,cZrCRhREhq]PQ,H4e7!?YNkkUqt_JtYl_ae`a %ma1Em7RDqXab[#rUk3Y./dB7]"fZCD090j+Wr56\$j%dt-"\JdV$*#5#G5:lC)o8j,Bb>Ua,('B,M9iC!m4 %`f;5['^-f.s("N;#d6e#qV[%Se3Z!Ri:B/aCe)A,8RMZViWYKq %:]b&CM\$MO(kuM=!'MQcgE[R,jWUMFni=rK7F:F6L]E_dGF"A8![`U*^-f$JXYh<&GUYBr*cWV7h.1-,0GVTL_VREV7K_3EUF=QL %)A1;8'>[RtF54GfV!jh8 %.7G69m[JFAFNHtqRV6;n.pJ@**cd4eTnL-h&h$4CV.1#N+% %H:+#^6C=TTL2q2MW.&;"F@C;=5Wk0.%,'A8YVMBc&nhSp1$:gAcqq[$)59T!"\4(\(&C/n]S]13!KQ1E8ci=!^ha.\?plJM+D/kI %7qu!H$HlKoMD./smh"^JEQj)r#U)Ll,iBCC.hr^LUb\rD_ZahI-_Qbr;o_.&do^Mi8!#A(4rt\s6ppGL68,nED(<&6l$/p&&(iV$&lTT`Os'/>S?H*P\qeF,X[;o2M8+@MhUIL %c%ZOhZ%=DNRY(NK"[QRXHBO]E0EhngraeE`0O'Q05mRY:V1esaE?QWcVZBK=P=*WO%8m2/AXZ@G"^M0+"\Pr9B9GM+nUP4S:fU!% %TZ\b%D5M6JKHJQ08YfnT$)P3]3SQr#,5qR2"O2K1L05NA,pOST\u`J.iiR/H7"Wf!N0%r\gKnLK)_24Q#e,\6=4NDZ6ZNUPiJZ6E %\GoA*U/j%h!FhbSXe>7e=sF,@lNnJ&A.nHm0MaDQ*JB"V"U6FcO^-VI\PkPD?NUA.;6G"s!B)\ZJPu@H`?fj4"qHL*;W7,+30]P= %2&)HH!&oT0;loNiPON5c$Q3!!pESL&80ffbFqR\EP('3X#9MY@oJe!]]qIdSX:e.tKIk,>?3.ZgUG>IR!h:m[f)pmHHm=;R-3\t5 %&Qh?D>9u5c"tqp3(.anhDoSLg,SgsNB4d(rJK#5.mKsPjL'04T#gs!0!-(#j^c`%bBhDZ_Mh@h!(>C-H9Iqrme&<"la9Df-ThmH& %:]sSqdNW+]#5r.+8;=WI)Sem`rs5o_h#t#>c<3A-k6hG!Grp"O!>NJBkDA!j32FB0LNO(Ag`rU4TJ0L-H)8.Q"p])[0G>p!r;`\7 %^;Q6B-OR"k:_YXVC(LdOZ/I1o!OjkM`VhUbKg78BG_+mcllbm;o9GH)AMs3.-AX>c-[qr7I.XIrme.ljK3,p`g+ %H$(M]P(X,:!,u95@!88Dne+i%"Y`+L7<"=sW#iL*R"ZE9O.!NiGnEXSq@6o(!FdRbHj0is8NiprKND[hX3)QJRQ*^R'+;i,$lG-H %N+`KI6-0OdB[&@V<1S4Y0Wfo%D.EF#J9ci;qNgKIbVL3XGpjr8#f-gML0%oSA3O1;3!jtt=_A;8_7bVp7`%UZ:#&hPQObrQ-':P< %e5W]'eHV0HQ6[Ugbt^OSLpC`.6qYJi8#49c7Zte]W,a]sC4+1QKMUPG<#MdUKF9IMmN$sI!h9Z*_.0h[4g4@C+FkC9$fZmXK?SG$ %paAh/b`P>10uXCA.e'H;'E'J^'rErCfdrUj_F/'j>T)8(,lM1GPnS?hJ4bAjJfXsqBI+amd1$G/(,8+O0NNH-g6+QHP$\Ee %&><]aon+Z"=A1"UKc81Ur*>,>YmgZM>]MJg]Fl6nN'A!HIuQ^Z#W/CdTPYFYEV0*I*f[4FF7Oq'9`@E/.d;_=!!)@:0bRO))a>W" %Pl2>SL6VZ1@5qaF/bB%P@_dD^AS!H+kosid^h?(uMFCch8%iphq"bCb_W:8TJ45n]0a<)um++cY"/6odO+GPji3D:=60j>B_o;(! %Y8(X!$H]Asgq@[@PJe?Z[Eg=SfYGnoE@?2X/L&^Q7np3m+g[p$Y\#pD@(?Q8N4k24*)()!Nm'p%F*AT1$_CAm&T!:L`/]Y'WfX3= %=XU:]i*.SJ/"%\-S],a"](4@'.1Z&HWT@P/,%d?bVH-7h!48No*BDU=d3oRIN^W`,ndKMkjR9kl,s4a)ggM!+,sFAM'XT$_aaH`, %:PrK`iq\K"`W>!j.TVFf2%ju,0_`GSc4JgIMP3&SZg'u"FlLb)_?#r0`?`u`9!rbbd0.^e#'dRd])BK20lIqB27S.P+L"5i(:"W1 %dZEG)ShMD)dX^Y1L\tLef0S&BQrJ@;1DJ'n(.S\-+E3luJP]]069hh[l2jBXieU>EC(O#^kWI54lE_ %'2al7#1;s1;JPd6fpNIOB#7qO@Im74QUl#X3:9_FKPC^od%*J9,0[8IM'hTO8ej._AXjA/@fiou^sXNNrj"@JB&I4l,82jef8-8] %%W3FFdc,q=8];*6C`3mrocG?6+$"&`M>IDI#_(:qX8RXS>=;`q`6mFK9!?2t&'8o^o3*oD_h2*H9R6[jL %-PR\B,Qe/U(qU5'm2DQMSl?8r,eS[?UG)i!L`FTX+rhd]:"\t-GbIr[^a0G@3MK.k#\(AXS6dDBQ'dIEX9c%4=K8P1Bm8ika;>@Y %r&[_GI98?O"cj;FjodJBm?h[K&0/X&M!b8)<=k><>b[J!lf?G0K2iYb9c(5tO8eK2_%qto6+T)1]SYrd(0)n/pjO*>&nuHJ'82d+ %6ujLqQ:Rc)jON=sO!9.Kd!m:.rUbc#a;[Fk2[qB+CI[J?Gt=n8&M8cR"a=k&bS-:9V7HXNJ5[=r5]%tX7C;#b,oQ'?Nm=R+>+@&J %BL[k`qH'>5@CDCV4:67f>cU`joBG5@aL$C4H.&KKHJoXePg6bag*PZU1\+W1h"!=Cj_fj=Eq+3Gg12Vr/Lc26%#=,)5"_]%c/5&R`3TH8@L@.1p?Xb2;$$5lF+'QCJRY%#>K\1+GOL"-kN\&6e&,90L*J %CelcmG"?@TC7rAR3OPCGn:_M_k0[.6K,$fHd]/[L^^VPj==9:h$Zkf+4L5l3?9Z]&WBQ9dInSo>3d"2IsUj[('i)@(6:4fHAl*#9TCb68NB>7N>S8; %%M5Nffn>gi$BQ(&s*U\?,Xh/7fcoEDi]^Ipat3&T6NMf`@OnrN8-TdtiNXVH1PtgJ5e0-#^cc`eM8S* %AjpaR7gKdg!p.*=&Lraj911>,'q<8^9)iJj5G(7=#l_e^-3sr'm1ah;b*5!iP"3VbiHe1C3ADdT^j=po_-&3)\Y4:A?72I-70JIP %Z`X(j))ha(/u5e'9V8qC@B&dNr6>j/N=mR)JTH@mG_0qjQ@qU/iJVCon$N4@oIuCE"qja@#'^\elkll/bd.o]Y_8cSl@4I]0^MuS %7(Es9UfG96Lkc6`#npT\8GEmUA.l[5$#3p"D\8+5@onM$U'`LT1QjCC/LcU'RFfZqLod4`^3K?MM3X='_!*)]Z^r$ %(TPY8QJk>GW]Z4f:';_2\"b!.#h[#m%Rhu_,#9m1n_R@S6:2oNa'2Fl %%oBSB)0n]S5pf^iQB;Q*@LY3/L.#RWHq!Pt&Zr$gMXtDW_.jCk2FJ^O<7)?'98j1*[\X<:d]h-/K7QjSHj'Vd`0le&"Rm*[@gYAb %Z#X(F@L$:5:^DYJ$fu.k!=M6HA-E:cf$&+q1a\;%dgCqa5S8Qo+q-B[LPX#F`TX<"6.hm-_aP-R2@1hEP@>=]:';mR/V]?K(eo!> %+XC%N]b3'X".SMt?49^E-sG_'jiRatJrR^lN]D0I0G0bI`3tj*(Ujq>ridq"ZN?0tEN.u__;7Ek#g]Ff%7Bak0XUo`C1C\jA"\LI %&C\HpZ,C&!g7e59KQ/+[aHI0':[*_h]e\RSD(P=tF9T1p&l3Zel&_=%%;75;s)@lQVDg,k.lIr"?s-]I3U+g[EmDsU.VBKj>iJHN %$@Ii]ZV!XrJ32QtgU+HcFA[>sfh/J'Foro]d-Z!YM6S5n$inYh:+A:;D#g\6Q5Q((,g=5'"_8.t4),=?B-M?L."eIX,"m#0$6X/k %1W#D)2I<0P]F#_f0R&9I8W5FiZ/)WZe"DB55jKX'YF[+Xa.^q^PK92sk^XYa`i+LrnE\R1WsmU:'b#VZ6Tr6.-(Gf*$5isZ$0B]t %]K@qe.<@'(%iX?AJ1bP8+JWlU,/nX;+d0bVlbnDU-03?/EXN%e'0V[-#uAJl8uau_aF\"hk2;Jt<`]1g+:D]'<[.ML`N[._@[L=2 %@V)Xt/d,emT3bul#gQPkHm?6*A!\&j8=&U1_tQG;08EPj9'dfiXVc>:k>Iji0:%"9-pU$.IX>V;8VM9r-)Nl@36h:$>2^sj>HPu&^q+F'hA;33UsVN68C %eh@JPL>a=4i?tW?lnCdViE*9rn:TC49I6oqX.fS;dq+@@SYGfLqTh/S/QP#7(sk!;D;#AQD^W:)H"S\`mKl,)Q_&$HX3:%%!bdYaSj<,ar<- %MLpNf#%fVgj[D1q16QeaC,9H.h!HAL0bRA%)oYCf'%Xj#4pLie$;ahHoD0sE*:N'Q68k_R&(`Oo)#F>%:R2ZX2_L5Y"f3T'!!>NLO=qB@/I&(<4cLV"!+2/`XhH'U.$L<..%3^F6.DK%2E".k"u&0P-1mQOmT=*4fm]+lK;Qb0?c/XZ7AG:s %N6GatIZ%9rHednOArqDA<,3SJZqjp'V=*O38\K6$hQIHkbH[\&O@(7de?FH!0KLCU5,S3-A:h(s=7p>"=k,Ck^[;tg0A*5sHM(#` %h/"uap!$[Jl'hFPe(B.Rs'7g(qMiZJ^T&A6]"JT#Yk@lbrQL/"s#k(?HMo=r$-V^ZF0JE?]%=#J4DjH:]1'#Xb@b@4fW!J,V56qb %r?(*.4!gj0'Agb#KWLLcc9EGpQQp?8u+>*bY!!.LU9TY*tQ2FY!;YSIAW %qOqLMEhfdi2naR\IJF6M++8^_GKrFEZ?BY\iA#PGr5Y'cbMJ@nGFlEHNa3f9Wb/!NHD5TaFVT0,4-#(t_b8@ON6u %'%--HG,t.Gl3L;@]$j85Q)"`#sGqq+P5'NQ"DL#1*Vl9rO7NW_*;3D=FQ4N@L)rn3A^_kfJcoU4XHA)/pDc)6p1;.fVC@k[qVYg %A%K\Z-W.YYTi*UW,?.e<3f!gY5/VpiPjYlG-l.(',I)nK-F@)i"hmkmB"sIG2i3-OPYN`b:rCA&n2HJ\aR0'm@iG'o%+it(<&d2MEN#NT<7Of3'R)+hp5,a) %L#8"He %-?Sf9Q@pBq1q&$@-C-5Ng`I\pWQ*PR0@2-%BI))q6_>ih1oEIki::QRb+V95jE3.1,eT7j8I?dBdHd-16X4k2B-AqM-RpdkVQsPt %kIP#^08F#!j:T@g@R`I_;8k%af3F`^kt.$k9/MP"ok`HE=k^f8e'KS_Oj!eCO\/$Ma-[lh:saZ(QM0'[ohqX?Cc7f:Eq6b<.kPs? %]:V`#:6<64)_[(@D`=Pjh2>d]W-LX4q8(e=dd#!?Ej,rg^:Ur,]Rg(h#Ca4]L]1pH%/oPMm]^c9G3[qamtK=nX:kd-bW&=qYA1?( %]52;3J(JBRT*sof"/sZ-FZkg:)?LLM=?rH?`hRdC]3t=:B)h,BA`";Trnc(92\Yu%=R6u=VG;,-&lV^caGah&328.V&'SG-`)'m0s,Jp;P5_>OA&[,s26]Bg^l^>91+\[*$#(Z_ %I9m]91gbWjVB#iI85Z&Dm_X#o]k`>BN7-_J"W[$K'DS-fV8/'EKf`50ok3,okb(0YM8UP&'L`e50h<.C_Dm/Hg5*(J:rH;[`'R'. %d`WTh])i\l<_rE,KGZ/HM[_s>@Ck!D(4XJD`Lg9tZesG$AAA"OQ'LtH1bZrT4YQ$F9O(uY?!URq=3:GkgEg7:Hi"`f4PN%qe\(h,BW4!a"1U,iXN//qggm`9h"IA`n*.0E>f=[J/>aJT<;DfO?i?YNPebM[hb!g2AD'!N %"^7H]$*QV$P88hONb#mJ)?ngbOqRQ,\[qDl#g(!`)jkl([`uHQ;cng,baOcWDJDkOnaRK60@Qn6t[=#%#F$3`ma6%rs%@1W!XAHBX(JLN^XZSM#SdW_Gh(a#=# %rq2V]r-Srh%B^Y609%]5Klfr(0p:(Khg,eAXkh_2.ZZ0NjgC`oXMneN;HXK1_j.XF?QGBOQMtWEbSr=s%EW*m=kJR\NaXWR'\BTM %o)o"\@Aic_%a*SRK>YHl/he$D6"sr-;*D)VlCD"YI5U0)#b5FT?>:K=l\3*!\=E20YMd`?e[sZ8n+3BDFF5;qnVa";;%(bK)'9:f %1-+fuiV8I?[&`b;e4*fVI[GUfacX5:CdU:Vip?:Hb1&Bt7<"!!P.-%'r$ksUS869IW0fmgfpQGh"pRg?^+KFj4QO!_)-Bh/eq!aGd8n:B-: %2+2L/4N]/L*6eha>lR>)#GM2F?=@q06W5:*'\NMo,]dntIp9oqpO>h^eG^+m#)i77Y9M1i?ElcD>83YP=t38PWXr[o01[iB\?,3O %@V0*:)[[uiB&.)c.)GCRf]-Y<#=))bS'c6^6j%UcW00Q::c0[!0)#prtF`*s1L!.gud]a3PcWR6,cO"E@K3>h)n16FiU-6e[j8J'L@Q%!CL<^miSJ.(F+ %"To5gdr(tB=TSSsYM>KFb^+_3mNL!S_Mi.Vab$sTn-JhD1QltQIAVB_!B/W":F0?gn:fQ(!,uq %5U+!/'FV!$\ahFHX<=C:E]/l\'EYdIcGhj`L2o0gi2BOe3p/#HL;Z(GE]0UO]b&m=9*i!n-+Tf?k]/t>P;EkpqgMD,>2l=KJj_q4 %Z[s`<@c8IW@7pt=+Uj,oaE[eAEJS@9=H0\C(CL;]&VnqQARktJe'SGb8He43BEeapOVAH5LE.8K+p!!_d!3Q.8(%W';BRlp-,UnZ];P-_;3&F0)EAWs,C976PNr)778T4KQe.W2bYYP`u %oP%a[1@$BWP>XsX$5Yea7IiU28F@4/%'DSp`!b-U"`Vt%l$QrI_?Llr,O6IQZ?2cW#p_n[0"kXnaDGI)PEqI2$:2D7'?OE/aZsrb %-VX*sQUXH<1:8IM.AX-Nq\#"'aAsTW)Y6=K)M7m/]',pUmFf[EAM0:$VSAN-UIk&(7H?mq$LO-Q6G_#T#(:Sa+JG;e&a;[d2Fg<6 %CC$oH=Y=k\DAYY"a-n29i8I/8[1V+5*^9tqlR[VSdOi$qN7.0f %_$j`rqh>iQ0$+*t12LF-;gtIr0O@pBhGY#=MKaZX@J8;\U0QE+RmjL9HmNR0C8HDiV+Q)r9fEFC!6UT1_.:c+gb29QP,MKuHaI,k %$O'DtTe,S!XcVEltkYLfFoO#(ga;/dIiD"mFH&>N$+EUP9YH>(4;-Zt"2.4"/7gl:PTTjBVcK9e(tU8G<6/-E/[Tc5Qt80ffeA5;?`D %TJ(TfZWZG+>k3&bb1^+k2O[Dr'0S/F]ZO2+N+PaeIH_G[U&DJt!!84c.'4iU<:3D[+StVldRa,=j,AbINV]QlnJ"b5#$M$")r"VV %-(AripKs49`u)Ff+&!s56.R5e\S6pFG+-f_k@-Ff/+,F'Unb^=4sV5*TWWc3aW<;R-@s6Oe): %AL/KU%0WO,mte8Zp,e]XK-?jpo0]6"ME4]$F-krK<^KB6Zc9D'%,8"!Anr^@,a8%=$AFeWdb"C@fa;a&da-7d>+Cb,&B^*9\h]Nm %Uld'!4D@/L#8g\pB/-636G0:&n@4LHX?8%Fk;aE3&47j`cqhWH_rf %<^p/k*aYc?nO8]\d8.'O)8^ea`MB5&[r#0qLG4]N#j0dk>+A@fIg.$*p2.:u:iF)oRd"e\Q9e3,\\_d0JgaES\dj/^#UjXn9si %WsgYnol%@3W)47!_unaS4WIY88K((sKo8bJ-B$6))p>34$^W02kT'F4)-J8r<^+>H<_ZBIfuIU`'9)]< %n:V3o-bFG];*r_0UnXQ(K8Ss7A>@-tb^:lF=9!-:]Y;`g"=c+YA@C]\10j#0%[#!iNq2l0PK\R?)@@`(.>2b4;dM.I(+#cqX\9JQ %!_\-B]S%`3CbSZu"EK=ZAV!Znp+$`b',M&;`%=.U_aH9L:ngWfK`Z#$dP:HJg1M=jnt&/jp'[W]l=ClsnqH$qr,FopWl,nK(0\i!5/e8.EDt/UYZ03"(g7:Y,Yb"qb!4Z4&*0Z=Yi%Y8H*n5aXQA %iFtZ\HS![9n;SX)chO).F8DI\mUC)aUE.:W72ZVAVYhL183Dc1[85ii-Hh0E0O1DIL+mpg!&):jh_!jSnCGM_(M9Z;R %/`cRD.PF#BCN'`:=j5kVQP9_eO>V\7O[]uqOD0p6e$.JVX#1O%)m'Dk]r?s6E1R!PnPLhKlSV=Db2all:_k8:'F)Q!3/HZr]670B %8c20j3emnF(VT/.2h7*Jdm+[]200fpmhsfN+Y6fnD&6/F+C#o$0gR#T)ZUF7`Ydb[5ZfR89B.)kS`+aFh"]Q:$kl#A1Y.FlXhXDt %Lj2E8XB=aZE)-=jO_()F*l@P@)9LD>rf!q(_d3&n/K2\7Y`%^a@-:,XCoEmu>0@1f3T$bk5SBoN":G6hC-/2CZOVc'\8`/#Gch.n %AXGeU//50Ch!B.dWMN(;@"LbsVoV\/8?7K511QkLFi%E6KWB_>%G\cd[$ck&2-05\/gR.rf(P,U8^f+X?$u%/hPqasHN&9?Kmg8VB %dcD?e;h5 %-ELa`0[P\F@dc7IUbJXXn&D.`73m7IMG^e[2As8G"6SAE8W)54*`m>UieBg^$P:(Xn:&2gO-o\(kVnu4e5J&Y7R"*C*^)W'j-!/g %FR2\EdR81F!"oSF=cjF-ZQ\(b:aMe_38K!P$`$a'S!$'g3L_l^6Z_m@=4If`R.'O-(P<]4_AL=T-sarf"O]M1Ef1PZT1I>;ATWMN %:Es$c'%LitBUqR-)7GLXq@IQK@s:W(WD=)(Ydc\2do%Kd3F!,)1;W;7SYdci(f%$V-;15!J;jn-5sn&p_)p)En=>]8*B6Sq/OO@el.C8lL!lVddbq"4&oO)O_m(^8_D3O6TZ'fl26V7dK$+\GTjZ`*M!\M&:WS(u2ff %FZ'hNY>2mHU)Ec.#ddYh3!q=)_-O098E$LiYoGC@pdRj14`h!5I!YN0)j$eZg5Z'0JF7%;@M+%4OHC]!<(qLiUOkO24Y3VFer0n# %e%:qYf3PLs(YIR,reSWJ6i"Lc9*o[SfQur]2Bq"iZ9KPkZcCrUik*81LlfqPI]Jk)*r5tj^3f,UM#(13PJbC'f:GhC@!_PXW;uLl %DcQqLEP>QbE)6EE7H!H#Z:L%,*AV*_k/f?Z--0dWUaMgS<)^S04JF@9_D0aGJg3eXKe_J'?=ElSBFQ'j)qGt`OrMdg(]ZUu41L.m %g&oNQonP8o^<1n%M\rp#`b6,=r-$lt4W)R!V!qU]$UhgkBG`/q"$22&oVe(l_Je!]`f/LF<`h>B,:^m(:L32p*)TsGfnepF1N-B@iF3g,?U/QiXMBdDi[UFIL6aUh %p=]<.a"+!u-,lhL#.lfeo>4P?lfu)HAh(_`;kH?,FfX=JfuX*95rZhJubV#u)oK@I!XprfY?02O^Q3s1d4` %;QoaK8d^E)Io^Dd&*oe7Mp=NG\'P"Wl.d]`\WU;\l-5N#r)Rt?*j'ap<-GGnerS+Y5Gfo;Z.?#M0!$/!4t-X>lgbd#*f/-g@'m(Y %`'frA@cS&IL&7pmSoh%-710eKK9(G`G&$FDn.][.(&b.:eWYjbZ$Is9)Nd9]NHSl,!V)3[PY;l-Q %L[C]!YT'fL=c71f%]mT!?I=F;mtS`X>;oYh9*\dH08i>jXFaKa+ngqkoG1AKID7.a;g042(1Opsu#F %[GqlfEG)pUDZeQ[jk4D/`(beV[8lYBtO,>?>DW6@,Lo;o`dt#TYJ]6FR/3lr;`j15mf#G %aM(YZPgEC;C$pu/(0s*M6&annrb3!$oWjkO?u42Dqg/l!k7T4nMm4'f*.N#[Y1<-?WR=K!K4mM,9PfGMDhPD)V#t"pHeiGdgACP: %O'cUC:R]hkjlaE@3-s?0:*Wj0oB\7-b=_`/hV.G4)#_XY]).ZF>?gLSTCO<<5<.;TYoh3h3<%>'blc;;QafX[`N:l%Ya:jID;VQN %c,/ %lL0hXB150N\*01Qh!uN2;J#c*g(\nonrGN9<.?ar2X"jDHs>63rCALn9I#"Y@`Cd %,#-uW9_?h>cKi\=nC_gTN`(s`':[%\k4/C\jM:MK#N/[PL1#I^E#ck?o:OYtra!D2^V],AC_BscUI^F+,nje/`7XS^*97cCa5f@T %(d#I@Ss+iUV"0SAa\Id8=1gqq+)Zp/N#`!Vr+DN#s%['ZR2A"4`f<8L7^d$Je<:Pra1kS5r`9puMT_QdpCi(t`9-SWT'$cVa5g?p %fK?ke^a&j+]_<)/a&OdTj@( %;0-4:QrlKMq8`K`9&d.`Vp#'nXYU[_8POl0m\43.6.^&f,&8Cb_dp0`dXGt'O`BEa2IK;".\Wi_oLh?T,9c+41>+6E:cm6+91CJ&uRtL&t'S##%mYV5^`Ml %/K`BYnhICsHq1DrTD0Ro5\keo"Q(CJ:J;ipU5]$=0R`^C_HOE>X8YhOIUW;F(dS'TL\o!i1-+,;#*AERi^7$,OZC %D?$gRi5bRHJ(TVR@q,H4?4o!riREp99#SG!/%S%GQl5?G4Jr%klBk3(,!KkM %EI?3YO""BjZ`t;m#qeuBpjmrJ!Y`NI#M;LU><;W3X2m0*dHY#i14)=1dO6e5XWc96L4hLWM(IU.L*]pYZ;0enS&C)QHG0"G52IZA %m=2PN,`Xu/p'r%>2W:fs4l?!JaYPh;gAp5V`5K%]6Q&,f'rGiWbXpgTLXu&J@i:8mRe2J=qS\me@a6m(?A>pfPNM5b;*l7`KuW+UFeVb"KjKNI]E[/br'@R %:t]RWWkJ8s9)YtmYE++lUU/kQkaXTGEn=;kg6hW-,=fSqc/P_)Kl9g*kh170BPk*qo#^gKa6hd2^#%*tX0)?oZ(A9(FWZUmAY[ir %/a]KcXEAhoBqI5Xn6^K>dp?=[ZobC9V[FsPV"[$5l`jZ2TFFu1h1f6^8Vs1VR,'5U4`b%*DOnnO1GRutGdqR=Y3re!1D0Zd_&Mnd %Alk,pHohK"Wm)`.:T\`m-`(VmS9M*/U=;7-h-AZteDl9r0uJpi#g87D(%` %Dtg<'UB0WKUtQZ1a'Q*[5Oa]ZmEY`;I*DT5:>GTH[!LHmI68Uk>1b4+nd.M_&i(6L4s%3p^%=;??#As^FaEsj(F9YcG+Z6J)]`"l %d5ihFV0KQ=QM?1JbahYL7VqG]c1oW/qcE3hPjr".5@S*YG,L'fV`&:D^D)G->g5V];j\<:J4d)gGH;Qo`BrA/4@CEXs-.XJ7(MJBHX;0h;A/5_9+5(R1EFSn88--_9^0@nK9=bn/ckg`65k9(+USaLl(]1Yn45[`cn47Kj*gMB<,C_A3KGQDk`lMd".aAW)1fRe-Gt[Tq3eo %+#X"qhd'/o>^o``c<6i9jGg8Ta:]#Xrd4kI[foWK5,0CU %^J+HQ[P3S9^4iXi*5a2*BVcGA)/ZUZN4t&Lbmh($Tt+T<2'5\46k% %J!WTXS^#]VnA"iF(?[9*V5ec*@'HVRgn?5.OGgan,PCqP>-%)C9>,L?/q])=1K[l=1?cBIOfNd'V@D-!qpNa_5u0[Jg27n=E%bPm %ic3<:qn5nr3_?BZH.qQ705fiYmBKBeZqjGeBI)EEn:cM&nNnU1G<_GDNd5^(C&-*P_Q,kd:50gO_e[7$j6nf=D&a=pHJ/>OZ/aDA %;*^LC;YNE7BYAMl>3ouMa_8(mYaWPcimDN2@'p9j`\bsNKi12ac-4nK3arq-*2C%R9^a %1Y.o1(A\:5YgH>a;N@91^m@5p-:Z""j.=O(L99[rG;^I>,HlM6:XchpE_6*E@a[j]ei %2O3fugC_cdLhh,]S8:T(k6EZ)g;c&*Gk.cWhiINc9t]Wg6Q9f23(df6lIFa(VdR'0qOotV\*IuT\:*biXlX;u`BUK8Q8\FAr[)Q) %IgbsC)o$Tsa6rE"SCXsc+^cBa9:ZQA8K1p8M_-p#-T]U)mFpg04-mTfJ?BhJ/#;#/mb)b'0M<-7rr[,b2m]lpfi?`J+- %9kb-T^=0WiGB;5aCR$@9B5_X/gWaK:mOC8G:I4D]<^(9/iG5(Z8r&u2l%r@sI?b[%GZK$dj/ZqHSW8^0UK6G&hgONA6_7*B7XjPK %B/eNt*D0_uV#28V,[!1LJH@ANb_OKf=3iR;fXkN6H"`@MUlH6Y*/,I/2iJ\I3G@B=?F(SfD2EJ>ah6u%;s0l'5h/Dqc %H];X4pNo)LqFXgJ?TstPhW[UG^"PM0Fa@A.UOAOKgKf=Odfn$H0Jn'8J7?'SUNq\<3% %r^*a@k=0O-;]f3:fjF:LHG?*9i65GEFa&>9G.R9_&S/4TXSQ-Y?gTE5Sl)\V0*Z8bGMq(;FEC]<#J+SVR^d&)0/G@dbputbJ$`R0 %%A*U^&q+hZ_sMs,lPKoS4SDfGIBd+`B/G&$\]f\QPtbMQT&IruEblb0;$5Q#He %8H6_R>g!OfQW[UJb2_h8K552-hL&;iXgDlHIJ(nGPqN(tDUmi+fA!]J'A?NmDR%%ojlaLVQ1H-'aD/WbF %+?+SR:OC>UX'Y'(q:7^Dnk!H!C]@H(SA=Qn%toYq;KE`prUR<&K3i9*r`d(87slVs@[Ur]4rI]Y\eg=>ke]h.iRPq6soVa+Zb@#dT61[d3pnqT3HXRkN?< %r&'6u%;i=XeC;9qV575)5@:6VMaQ(`!n/A]0]$bPYaG9`V8qb%8W+8#\eWF_7;(a_EFt*Wc`1I'S5\Uho"_mSD=URdF7bcuXaN(T %%iN7i%-[6nr7@dAN]]^>oC,*`%tQ13DJWX&%&EIIK.pL'KeCToi[udBPuPBf?qL$0*A)R%io.IVnI;/QL@"AMI48[O*N*kS\JG\` %,J.3^fBkG.pZ7B>_fadm1ZuLoO(nRlpY:RJ)i(Q4-1.=%OV>@),3)gIPZMZC1n++/^W_#SmTuZ4>Wk*^Wmp8AD2N>@CX(.@Xka%0 %(S7;fq).b2H;EHUB@cJ:caGpff[U?nmj]Bg;^d:jp>&BZ[%Bf!YRS2/^s>WnYl[L'tT[R8#nc)l1kBBO=T<;ZPBT:mKJj?FA6FDo\X4*omR8Rk?fE"tJe+`$O[a%Z*j./fk]"bj*7!c;Aei %eX*5i5M.Tk>A3[UC):);mdM([j(Z!j,XP+@kNq2\O=m0k(-PR,:Z %4M8ncjm)*PeJFOl%9($5BFngkZ*W?P%dnQtDO+BV'A:"\SF3fFfhh8RQQ&YESQ#GmajN(1W\3PK-t\%:8i3Riiil%m*XL&S0Mj]$LO&23?eYXFO024/*rn"X6#qZKAGSNDdYT,:Kt5" %*=/`PD7),m<+!NaWHHT;m*>8&.\1iJ]/a)A;r;Z]G.$KCcOVh$DdI7-\68[Q^H_tAePOU&`i0o[%[>%(B%rj%nS>A,/7fPh"3/B" %K!(*c:WAh*]X)?iNEjhUN?L*KGGa>-loVSscq?"Zh@`) %Nm""Bo^/aB^uSA;$u^b+kt-6jZ-t'm@r9kfe_fZ[pNafC\+S;$dNc67^?VIgR:1\GlL$]f-#gDhTD1GbMg)(SYbB?HIiU=n+5rDp=ecb %9)-T!jY+jtDl0C5%_O09@peq&S0#W'0Ah7]g8`A7TDd/H]t5@&miANY>eJg^4heUMBDQ^ek2HioBYe_b)P"gQ29aIqqFoLI@dXmW^lhcj7_cSqIfW0n`HikVt%s6G8m0Gln:;q+5A8gDLXWO>2R!l(%&cH3C<1e^BqRO]8askQtH[@_?Olej9/J,$skYfbJ&\+fLS %OT3%CJ*ij,le\,]Vc(3KBD#>ORD7cHG"_S3GPhCRk@c^TW8oD;mdJ)X/a%c$O0Glp8()dm7n?D17[A6JQR %o#`S?HDTJH&DD@%95SBYjid%VK=Rme=0'jj^F\-Qf.ZSU>1pU([.Uu\>MAkKp2"Hd&)?M)`?0<,\S(WnXhOc,_.c)$Z>'W1l)1=-G47/;cc..6&VgE:Rk3`&tk245giQYBas<\'n-j6TNfhij`X],SQ); %9hisk?9"KY>A9O;mn%WQrP++o6f)nAm^3ko[sC7lD*@-SNXk0t9GYW2S+sI`T2;uXcEXRZNMYTR3dm:Ef4M1XgoPn3YMQDLH1u3Y %e2s3_?@?XNWO;B%H#H#<*^WV6+Ct_o;#Fa47TJjQ5-ql$KnQeIVIpS?1R]5PNd4 %gUhC[S=c[Z[A0qWZO_#-1okXN?[mQ8h&VOa2jRc-:Mpp5]rXDJlgjAqnV!TWBA8F %mS?Of4sMpfL7cXK'J"Qm5OIUErt9fei7%K,.O\Me="W5YYJj@ajd!UXmUR&4m^Y+kePWQ6IqfjdT(h+e?buI@?a5tWrdOjb4KG,4 %)f-/Ai;2HiZQr722l4E*'Ll^CAb1:Ps!rK9n.;;8j$(VX3b!?ok29Y7X8d'\KB"dJ*"2+5s!M0=J,*Nf%9(`.F*W8jOumk[UriO9hCJD8s/2s'Ym]S)b6!s\o3V*Vb4(jb^772c$dquA %S8:/#qL(ip(ZP^BBW"U"knbg#l[ADgF %QRC8b#!6pr$Gt;7dXL2pX5uDJiQBUS?c1l)Q?VXfY?IF!QSs2OO&p8'cclmt[CN`5:7l&h`N,JVj\%f,q#/dqV&,EY%EL4Q>oaFa %N71$8Kama_+Df!f[F_UJiX\gkXZYk'qK:R$QD-kk+"od*o?tb&g9T>Z7h<3bl5^Ws[.3)0ReaH9^#ZYOtXfUZNk3S8SpiHH@QY/,@e/o+c0B;$J] %.2CJ'b<#*1J;m&nVciZRs$>nad*VE`rj:ZG["!GifA6>gb/9eF^o?@p^?7]hT+/R/j\Ig"$n3X2``BFlrq^Zsi:ZJmm[RTfnSdj! %apt5EME;rGKBq""lUPUTX*F$\a'70H#kpulg< %_cqW%GLG**LM[P#]-B6fQ-UP$\pO>R_qj-bAUU(k1H>8Rq<6LK-e`JYo_7]X=B[m?+8H:/p&C*m!kc/Ba%[)2aE*=6]=t\jBmaF) %IFV[?8a1M?l^l>7]_u6MqDJ/cR4P]@6n!t-o_IN;)LJ:DP$fRqN+;bhB0dN,@U/"`j0 %'jKMEh%R-(3('E0W8*0Yj*]@D"9rH7Dp;'l^`oK"dZJA`4fd1i\:p_XB^OJE(/mVi; %$gX8umbU8tY^6o:8m]-?d@=QJM;J';n*bY:2>YrT`T74b(G-u<#T)SC,YrMmJUqj'AngfXMtLS\O2\b7m`]_gi,A,bE6hVmJM %[qiraab_U\Hb)-nbo?Q:SK7T`mk3DO>18s\H?udWk3q.(9)[hi3lMDPD*>Od14SEMf!D"GT9$INlW`eOHgo5DY1NN[Ej2rl0K$Oi %Vu>t(.9]u&^KTB*hAd/pe1u;/IH1mfo]N_GpO%=%COHfL0J/>Drnbk.Vjs>2D7l>7Gdm2l3H-eRk*DL'Jp8NldDDDX1$c<=JF_[l %g@"n%\`&VGpV.c]8O!&dn`tg2^&J>]e`fu;GB,ZY*c9f^1,m0I*o$PQCO'coS_b@_PM'/im.XkLhlg_aoC?qnfK4'Pj0JBS@S@i[q3jTI"gtglFq`7pB?$XC^hq_D8eEtZ3ek4ID2j8$6kMQ*h=M4OjAWmd.3+59W&cE@N[C>V\VHJ2QoP/13 %lfd'4eu^bESokkJ;sN21>5P %mGRrkf%0Md"r>C7a8'N&eOl[]@U0K&m,s-[(Wm].4 %lcrN`SiJB=C\trqik>4:DqnXOCjFXQ]V<,fFJJS@3SaH+oqR3OiJgM'<5lM$\'3'F^fQO;5BlD5C:h"Els^pCi=jj)?$E(%RSsgT %V>XKN29AY?f5C"moTl*:R/Oll(S3hJ?eIY=mhC0cY%9EWP^d[pfKXlI&8qOE3@aCFgj:1Lmd93)0.R:lPNL$EXi>IorbL]Rg/>9M %1X2U\lc%+4>^:Oc=6;]J4FMNo:.-u>j^rdTeJuf7h-G@"F#K_1B&(MC2.m`VQL6E\l'#fBEO@eiErImSDS!+Kp^1Zum)met5?HWS %3OjY.h)XRZqUL&J]`@Z^Ig?biBHD^jPU<`sJCpLs)'H1pCQYFs>:LG0KnE0XIVd62[?BITHSI_@ekh><"\`!d0Bf=gd91Z10/H0

c_:m,^LM:ak\Q3'd\;!4)QT"S5%RaOn %mE^R2a$1qY$BiisUQ_n7Y3b%!r5tMe?8\=(q-miJoCTFTHD*`tQ,gq)Y.M-.O'N-_G4!moe*5Nu^l,i!?F^Yp[_I9.r,cR,7?Y+B %C9)^K8*(-DD-_Y_EOGZ/j.D[!DdP/&d+K8Ge8.toVB2@Sh<*! %a(a62SX`]?B+fE?cE9'l^O4^:>^=!^ZFBDcs0(h%f2L:d^9<'6TS*<=\`&]<$8i.SUlZ&m/'1Bb$0CMls79Ro2j0YH/6`>PZd2bb %O_p(7)NA>uqJ"CB3naeofCt8J^Ui=T1oa8NpL>Q3K.0p_Zc6e(bCVUqfMUWCa^&fYD!_O0aHph:<6#6m$+GE9fQ>@CUG$#J]X6:O %++)K5o:tf7A5'?gdr.fTg?S,=l6"8lSI\<[o*uOkRrn>Ll;'a<*)GkLRaiO@OuI#Qe^L2Hp&$'sd>5G14.Mt22_ACC"8.oi,j?9>@)<4\^P[?'=*Z74B$ %[G*qC2(LeG?b(\)Io/^O;g2gWRl:''0YNs^t6*j2Hp&X6cC3KqqJ:eA55a6S9erK=_HD2:jCqQ,4FJfu9YJ[#PC+;Hk-OYaocWs`,C?)ur56]Z^OLFsP#+r_P]^'` %f#o1Gp!qg+61rRn+cA]XT(-S`eaKIc3o"UH$U9]aLUS/O*dr,5+B"V854n*U[0qfTMjH7`TPG@P:GiGq^3m'lfU_qTeDrr0mg:=6-OoYp&FbeK35kchr=XjpJlXWRF" %;B`KK?-2ZRa.(l0GA`++J.CU. %:O^Zq\oG)l,U,oG.>l---S3BKCo"J$UuJab2c-4SJMbk`F5q#W)CW')HJpB26qu&4Ya1j\&TeKogAZaY33<\j)%piWlTrFs-YE,$\ %>1tkFoLhkF6EnKOPCQT7Au#%h6+8`\-:S7LV?4R8"D;f%8HN8feliKK"c!bZ %QA(FmCFj$PP)]0gVQaF?iJf_ee+-ph[Aagq`=-#R$q"([rodDaJ+S.cPU7L+U[HHh"Y'(\o#7tk3'A6TcI"WI5g%;(XLhmL]i"?i %6"gJ3@2Nfb+E2nf,OrLtqZLPBI^rTCjYLlT+I6W:3N+EL%BOXN]2 %@oR:!6KSG;Kd]bbnSi*]t-.e*ppj2-l3%reu&Te.?n-?Wd*bu5O_Z#h<7r7?ZagWL^6Z^I<(@G0CPib %qh$B4DSWDEV`"N`QpU+nIr+Ztj61USM/kotfG$&>rA+6E@5M389^GONmJ#jhDp\IXo##u>7'l99js/R]bf$&"[=b[$JQB;KpT?^V %s0+D8>j-QMeniU:S%rW?d$dmDat)nc"J8F=fA\h!mD20UQ9=]j#R/nCM>h3eb6,W!p3_/fkb$!hY=EBkO.bO&uor)6ll.+ %"Dq_204I4PCKl"Eq.ink4>Z7Z5R@+S=-g(ZmDO]TC^`!1VZ"\M='SG1i15lFUt6;4'C?kqFta!YSb\L.89i47lO,8Z(DQ/C;8r)8 %h$?9jNF)PI%STjj`iNZbB<$$MIm>U:dm>1EU%p6kHU=$C@a).>d^,+m^?QHD@eM4>h0tuPka*E/Sumq%K/;g0I]su5[jQOQ5?d*R %R5j*hZ&I>jMWKbqo11X&/UqZX1<6k-/GK,EO.Q@c@bL#B74`Y);iTnL,Cq@_FjcY).9=Q\8Rl1V"HBI29%t`> %AT:K\!'F$I\M4,;P"X>W#@$h`J\FB':9hf@9%HDb'+g>.)6f63F15t,$=b?"1Lk%!lV>u% %oR?FOFFWFI[%TUJf(U6oSjXZ%Na%XAMl]WPr]"^>]npXHd\AOh*-i2\jmT%UYeF]_N?iAHj&GFp:E`nf:Noa.RQ"(mF._8&hRn1R %YC(56GbOfSLB^9EH'9Vt7e&_gRP&"_LH6lSjo9kCMI>AcZ8U*,B-RWD0+6'C]7jVB&0R2sh" %8%e`Y1I+nXcA5AVgG=YWVG]%@V:,+eO%n,iA=`)9ki$s:V@_SJb"@)9pE]UFrHq?bg5I:Y`:V'_G@*:=&*(TTs4j+-=X@#G?28A` %&^>3@Xd2-dI3UnFGFZNc5j,Q9Z`p7Qcb5&Mci^G\ejQ[6dF\6$&7.PD<<1sokEfJlGPrI(p\!uZ\Pn#,Z8\,d%8`[;h %U7H\c`Sg,nC!0n&mJaH[+F:ZA[?Ne7Lp":E7ZueVZTj]#]6OFu.R.hHD;F#k.7E9No(cI=U_0_L7r&VR-AqP5SUK>o?/PH>3^39` %HEiSFWC.9o(F&$2'PW$\0$dfcA`@$E*QJ\[rStNE9\P]o!PR,K\WQhDMgD_k0YAU+J*F=l7ofng=3S&GI@U3Z4'n %H>:AG'F*HcE7`j"*q3I7t?W0=-**gF9he.7EW)mU?$YpEk4apZMEA;ahL"TRt9LmH4^R#*4o`fbfEVkE;lo %HlmSGspM^'*TkA/6)N@f2VTN,<+$?E-9>H3n_fiH5aEa %hIUf'HQ@RmWZ?&C?1,9?)#NOZ9#3Q+;t'nbkqB[lDY&5g_AF>V_=%o)j_Lq/>% %97PQQQ"GCAXPdQ+I+Wpd7h#9ghgLZYNG;e&4q?2D:HN4epD*)[44ejT:@4r8RNGLIFd;MTN598;@^bT@?ZA5oshn+puMds*>GD4T%([BIMG-ERFTCu%ZCtMNh*0V$`nX!RGo!R1VD/N[?or!:;^RFKCbNt!uSGqL- %lSBNmllB=>]UnFmY+#;/;4h/BHc6j#l$[]&bN,&2oB520Z9j!9GB3Q/Ud"ai')'W;V_]=iriDG.BjX5kc8J;EV[%fQ^7fU!q(h/> %ZtNgM``Dj&f;MJ\]19Oup$%%3*TuZ,gPlLiRJJ(s1Z!\17kEn0agqWAdoDjL-plNi,LpO(<:I&"35g,dItqAfDQLHS[5Lai,g %i#BuOjQR43U3NID;W,UP9L6)+=+T5#9oE>Ppp&AmJ9Hh%7apNehP"gWnOV(TM`i'f;)s4*S3(Y`;Wj?<'GchG]ZV?@qhdNW.T*S6 %^!MSLP!l,Sn<"$_lLE^761f;B2.70;f"XXQFKlWbs&Mo7?Oifu%ea4#Z47(W#umYOqPOl.Ih8^]8"1q!`R39B.T'UC=J?Htej#F5 %,`1mfGON7``X7/_>:D%!CfAtSdG/r-75dTh0rfZH,`dEm"-KS<^4*E$pGi*mOE7&bVO[F0XPKBL^/oV>jNc*fHdLsQ>shiA9\nn( %2r`+C&YLT)V^"R>XBt8'Apj+nZ(A<%.K?2NgP3%pFHZ(\Q[^c[5?X_e2Y5H8@-u4gS.O_H;%8dmXeRXapf94-<\YGia!1UbN %!R%p)p-@fLIe8t3d3hb;Hc>`.2/3#1:0Pk2bj<8o\Vd=BaR256C`>)TB_(76'W`L2G.M:+8%74^F\MGcFOeJu/)gaBjpk#*,lS#T %jL*H0nnQ[P[dRrFfqbN[$:OV:-`"12,*(dm#@a!O[X=J1*1?R+SA@u7F %0T1AWL0-W^c[q9^5*bYRH[kA2WZj"RDDGuP+%ihT\T4dm\n!\dJ&??aPODo7g_u?g0^"/'>OB4umh%UeS>mqmX*Ph&:=UReA'LNrj**cb&7,hl8t:<5'P-3cp)_W@Zt7j/3l"gCPQ66#ok/p'`A+9C'UJGAHVdABu*s*3'"=67'm?rA^^'a=h2p!dlP%W %od?*F)(TNH88O@U-p'L9YDjYTN)fOuWoHX5\hGkkN:tG&c.l$lb>KT'ApbPR-dD/3PLnT>D)h3q#IBGFp;6.EUri<2Ffdbd2ql/Y %dQs)\#+[brOX/ZeJsYqA=9R=TNY*6VI1;)Gj4?9h[]@h&H%F*j"q9mN=ijX2F$U,e/oug"W3#%J`.[A#C"4fZZ)>t^3Teh)+ku\M %N5Ib.UD_*p;BF.u*BWt%TKQ"&B96`PH7mR]hT^Bu5`ZK][eHknCr_l#/,*q1=2Hu?qL7eT82ek]8^$6*o#/FeV\0.`^_2V%fJ&o^K/,adrQU?n1/+GUF".0f[R='^@?U7iQ<=s<^9%B;rI'"l;@G+;YVFsB.g3mKgm5Snlhe;T2YF5>+]Qtu?[EVK %CsClt$g6dL:jd;FrHFB(5)gR55A%/rEN7cG]d-uda=6ObQ8QYO(ZL>G=`dF."4S.M'_h72K;2'^[;iV\M-hgm^`AS\\&L'Hl\^dO %+#kisMGkK7P(g%N'?M*ics`(>F=uO.28!@C8a`Gq9V'At*8q?gK3nY'#bP(a)(kQeEil=*\5+C7(T%!m5b#BVL#P:P/]"\UQR\ZH %CCk]#-:oQVVBaOYj"RLIbWMmgHDMU!9SOH%#kg$HcJ(JNE*&8Zk=*$K5IN %Z[KQun654L];!MROAHfHhWbhmeNF:D]G4E^@e+gA9/('(ab;Z&n>Q.9GnK1bS;q-ieeibnH9I235eRrVS$ZrcF`Njq_QSRn7A"^W9\ILLE1e_jO %Co0A'(*&*\H58^HJSUr=e?5A:i-Lo_mYp+9O50qDfeR$eqH=1'b9H8h\JdeKIM)IK&CPIoI(Z](GB;"Ibp$U5eCF%LP^W!BK12%W %DVs@OHEDm0="uOHiBpeTWu.jL&c8/u`EEZ4?c?tI*qm9K/XH-'WJ>URoNr!2L:R=iGVsTEKhq,b@S?qtQZ=&Pko\5m=N4P/3':ao %_k>]b:EuJT+^(4CfR:BB=X7&8MXs2HMp?47>on(As/`U=a-b(VF!M>4RR[Kj=^[]]5.d^-i9++f-Z[1FSBfY1W^PdO4b;)*]eEFn %q3bfn;CF/.\OQ,`Tk+9E.iB[8DnNa3[SRian&C7YYTB`ub/BR)_q$Re,eu,\S;BNlK8<"fWPB4#eLRCgp5\V# %>?rEsB)J7";2c,B1V&GZ=eE;!H<)X=%6Qc]@gk%pDYt9n&'gbU\ZL.C&jtiCTHhj9MdYcH&TeM`DZL9;5D%13(0gi,kDu;-5mrFad.npM0NrE%(cq]k$uGUR(qQ,llTig"T#H9u3e%8Q[`o9$k)N=A`jn:U>Sf %qLABD5sZ4J*hQeNro^NBgGVe[.1#90pJ:`H*!gCao0!NAE(tu?OI?R%i'7XU %lIJ<_]m*T+gtnVn5=-4p@Z%F/7uXCa@,E#mjgCFlfjh@^Z_5+mVu#E\PJFYoSqgq@fWf0fbq:IQN3JQ%33YZSM]'Po%6=S5!lrn# %_S7?95q=uQN=LR12l105^o+Wt'=:6rGX41NitlqET(s):CVq%+oGg(r*1o8!_Sl3UKCa1GWbcATd?2-65sqN&W@V02ffA1'YV+#% %5aWsH-Z+i$(WW%s?X`E#PBS'iC:Xo+HQ]lOCtY5Dn#W!i:%`Sr\>;Drc;b%EK$UrJ7J<\>=a9#T5L7'M]?0!t=WUq#ZhN$]G4oSa %\BcSK;+8j^-nrrtXVu"P\[b2nM$mWs9U!JC=s/W*E0)7&)j3[h1l;r*,PHR'\OZ_ER:48PGKBg,PK8]0j^Uf`O(XLDVlLI8Q4l>) %1eI\Y+"k4di@=)X;?/t"7dJD5;%q:+Hk(L>T680.o:9WWrS7u#hP%jRga@p?k0nZBU`n`<-0QNa1*YalOopaRN=s*]5CAp\SBSgM %Qk,f7egC3b:(IQJq)-9BG=TIas4&8abD=4Zi/#U/VprKp?=AZ2(jgW2n=5d:_WiD=^PcB@W)U!oEYtRA@c=/>_gR$RrK/!(1&q:CXF-6Q`bPG@V3C+\Lg3Pg<9J6b^ %D9`7MjSFH.AG#(`#l*&rd03=Q?kBInoV'sk'<2mNa*:q:(KX*l7t$K9_*QF8hb0u*fh9t`^.7ikBC@$5AW."fM0Z!>9NhoI%T-BK %R6#g[>kn3:k/"r\SUs'(?8`jB!LuRa4Ik:8e`GcK:t0g-)9@>`o=,Bs$K@Kr&*Gn]AU]hH2BL.ln#28&>;dNTnrr[p)'rF#tV4eP70Wfi.Em* %!nYg%@^G6gM-Ms''@3Z8[@%]SWS`5WE(rZ6[--RdO_JK]O,0aOU=0Z'o=\2E992rJ@HWDg)Z!RrLu71h78H3Rc>CA,SoE/6Jk(QA %Q3)`@(>2`n^j>3G!`O!cU)gS3]b3[jmXI<^@j022n(a=*627c-38D\eq!/h!7!*a:N:%\MqY4jgSE.%KJ1/0,'VJ)&Jo %0n8(DKO;7i'TThY#_V+8'.BA@<8g&l_Kj2B)#^e$T4(9j!qQ>$5N(!PorKXdNUT\iXAT=CMc^L9TrL^Y&OhES19-:^ZX$*@B',98 %YaZ"')SO%uL#[A=0;rop--rG$$uU7KlL(Y'iOB[/1HOg+4P96AAW=lYd5/cBVmn:M]JmR-\kgkpla0^E3b*p*&/2CBRKn(2H&p-DGHsYa]b+hQemM\fbDNZldq[0=Zg!oC6[Fdh$\C,4R0ZmqH1=4$V6J[m.`I %fPXWEY."2qY;Du%s*T3,2fte%j1>M\]dj2)j,$7tb_`RAUC%[ckV`?NaS@mWHQ-;[ktqW)S'l_CWCA=XWkW0tSLrO4&3VqbUiLn[ %j^(d^@`JmIDOhPZG+eTKYt&oI3a<0%-hr@p4).+.A+e$l,[t-)Vboa8;hNA@khbV\1Wap=*V$XjP, %$urF'.#FJ_\NY1^$:l@2m@RJ:\"I7VXSiOP28IH.TKFI%]@7V;+3-QP)LZoU,3j/Lec^*oOktB1FS!I[_P6;-quAMhkOQuAN;(4@ %Lo0d$$+faAcn2)>d<&^7BdC6*1nE7nH(9Um&5D>j.PRdi>\H0eD7Nn.*BV:W %6.pa$QQcHneYp6dp\lYdV?7J1kEG:$GDhG\U[uBdA]?Z$`K]L;0VX@?ZZ)?p_hR\WFLQ4X4!"26OQ_^AoB>@V$27\]gR#SQ+L:#Y %%[V?,l0$DO\`_!'5hEG"XR\s=jZs4c[%rj;`$\=2]Z,7-.a:NQoTg,G#ZXqbjb))?%:P:>p %V=rU.DCF4f:ZM(o:10FK1_^3q^j0n]dnik@i;#+idnijYgPKhJK?[Nm/Hts[pf7[C.-P^m\2!i=oe>KNor<^*flaQY)2N'r6*bh] %KnHYs\2#C=/M.3\)d%GAQj)&I%$l)f+KB6,M2\]u6#0Vf)7aof=kWLXARN5R^GFATZWk!HM)Td5g=I"9SY>J45F6sqZ#2`8Db8/R %eXA*@K-Fm08M'XuGr"1Nja0EVm_WVHA%gD4Tq<)*f&$G\Ae*(4 %AHp^PA\htRKZ2a098gfN&AIYT'+Q&NSh"'l*-u\gNX/V1;Xg2H*1JSs=:ZD[lN/e0K!(NWl12^LgV#jGjK9n/&@n3C %\=O0I#_ojTRJ2[Q`l%pf8o6`&4],Z'@t??p3uJSk[B$UQKaM'NQ3?XW=ENKr=[u)@/-#?&^;!B#U/*Zb0B6dQWFn"hROta$ZlIAkmD4'0><4^,#9R4T;0s8Im[#SQKTUpcj %Y0\G+e?^7:eVF4!JS6LhoM!^E+l8YlmHQ'+fde+K5XmEn@#CiA,KdhIubuc9$0S$\l^(dBJ+@@RW<'4O??K/")+h;Cn %T9]V3W"YUX:+<5e*^S2-Em1>gn%QGj7ZrSDm[S>.(gbgRr?L!B\9U[i.OUD-EV8"F_7C4u:Hh/c.l*Z/j",39724p5;k"81V46\Z %?QR&$.lu']mBZ.>f`bnfd."*9@P%8m6.P/rD?sqH.=d`E35W9fA$Yq#el@60u3cm0G=b+:VQm69nW&rVUP7+&3!`!Fo %>`,c-PAAVtD#^T828\1'cE]uTd`a-lpO$C]HDjbGOec?Zk],U$9`f0'5Gr)"BBF$393p*9bA5DJle61#PkePjW-b/qlK`s;lsjm8 %QT'*Y0t):1pgiFUSGT#]P/2pp?H`0i.9joW/?Dcqk,fD;a1B4T\@M^Cak/p[i+f3NAq]NC9I14*)mNs"G`+*/JAn^q="GI2XSGH?DFf/[$sNq3L2lu5-PC/dXuSN/t)WK+jM,F$tZWN@-9k$U.kfh=Sf"k'^P,FLl,XL(gu*"Yhb %iEon1I^.ouCY[;_ii'Sr>><>qOANa='a?'6H-_`d'JLr3EPVA&47BA4@%\"90Y$ZlHY/ZP;-?^2SWk(!lVj3e'+ %(dQ$Eq,)Z#5Q180'4Vam"iuQ%[!^rF:k4cWc!UOnrCXadZb9O).3En+[RHAM&UjHcPOcsd(&jDmHpJY'QBRP/a,Kd4.#TJ7M^1He %_PJXAS'@#l?R4a.k=8ij;EguUQ&?pL,GPUE;)5OV#)e)+_=XgXMr+tdY`-2f)"[SYh$pc2?9b0"9=PpuQIdeF3Mh#mqY=dsS*Or? %O1]r@;'BjR4FCI"DrL<$)etDGI_h2[N4aW=-UXuVeUi)FJrj51$L%=uont(_"a$_hrVX:iMI"Gsf?_j+RB1jYA,u/Dlf[.KY7mr- %jRr+t,Pp52cH[8=Uo``bcu\:@o=t+Eg(RgIYFk8M=2Cri'(YnpLP8+O5in3]cem:G49[l'.7%!:C"ShCSUs>I]cbn6XZMK^:)7Tk@qRNIHkKN5S\?d\B4GC-4q?>kbQ]ftH5HCD&aU@8(o071g+As#ulY#7e]O]E4cdgfr %rVROh/_DB1p%+Sej%jYdq=rP=CLPN/(Q_CP3?R-FH2XgJ4JttW1ri9r59JZJi+^qpfXu\4Q9;bK?l=7gBP[CnlqZPfpal\khV:[2 %RYF+RrVZDZSYlbUcg0cT[bG#V2]lD:6Q5TEHqThj<`ZuSoC9)9R"B3oQp%J^/esutOh+Y$5=]+.-EEc!(g9&*T*:MNb:C/C?9`oq %LE^6%oD88qoiq4B-6o_OK!@MZ]RC:!f-TMNo?Z\<3Zm6a-sW+ISB^@Y58^!5l:4ZR.'MNE.%/iMg9:8*0[NQQF)&06]XD3-mffQbOTK %Zcfaur]?=tqq^;$Do]JHhs$^P]C3IknEY?I=].2IX%+PPkG@(^cisH;qX.*#;#K;QCs(n""r7DSKKtak-"Krc.2s.c(-2 %EkRs)Wdj'ro>AoIYK`PFIlfggI8YNXURcs`*4nDk:9B?:L7J0_\%eQ'^*i?EiI-43R/7`T=h\]Z>f@''a.8Uep3W(\'N7(uIID-9 %X8dH*i#;1Oq.TE%V+5%gH@MH0P^DFgn*\[l>.1bA`VajECh[l&p@bsT)W)'&Z8jM1A#j6bL]_"qESGffG$iODO@*l]J402YVpBa2 %D0Mn#i5I7k%-[+i'oe-]&u5.8,9#%e<<"dpFk\OP$qA54WZ\uL'47rJ=+hh^0YsHfC$nJP7d&<^"rNO@gT@s>8T(C)MZ*M&U!mQP %ED7P=g1c6@c.VVfU2-FQ]_Gd&b!Y4e7R!uf`cm<(c%DSHpiW@7,sG+?f/qt:Y\d3SHsPR`ml'90&*g_%2659V %B;YLkVh1S#S]@:\R.^opc5NQOc#aMWY4/FfCF;V?pQbt"&3 %rCGSQ^"bLflkf$oil]9qY5."/[iRXMChmjhfk!'Q[-fk&3T:XFD:I$b=V%$)K:^q4;4fY]_tYl5^rABqrtMpqA+8[GNa;Am%`(D5 %4bm?H"7Nk:B1.'.(0$Ef;h:>a^q8'Z,(`>IJAam;05$fM%s9=WgQ9k),^qc'E"3atp8/^?ff2@@`r2h\)AWtYHB(K,^jbp)g[&?u7.og`@=Ph2mgZZI>/GK$_Jf__"]AdTW %GBD;mXo0S9`8XkT)PSOd\;E>=[e@[*gDCqpl)u7'$"8lJedOE7T73K?;L'P?*3MW`^92TuG>YjNBq8iS_=bO)$&-5fbr)%+$N:=] %r*:*2"Vcrm:%Hqm^q'`<.Q<);CE-rF]g,CWhX4Q]T/3;VM4lAVTHg6hcC*+3.@s;\+u),!V2%KR")!(qsmiq`]LE' %X&Ij*=Y1*KKY`Geig&=ZI!.^$/YsuU'[cYStOOH9GtD_=cib %U8s0@S'tZV$E2l-m9ifOb7J.$hV.ot5*?U]2stoeERc%<^[>su1(]AEJmS.)IM+Af9j)k4337^"b"-q3]U`3Vdt;Ks_0eO_VpSJ# %UIQ?fD%\;POBL>K?L+'Rb*HG(.f,\FYU%5bL-#Dl8rd\Jb;=sp`q2!I`cnI3[YgWQ6TLji2ho:Z`q %HO5)Beq#4bc-rA(><;57W.%(V)Hh\!ea\@4KR90pfo>7PM8]PJ/KS&H"a;2r(J,5uHItoigqGt@9Ruhu9Me3G$%=F->9R+Q?25L% %cLl%PX!=/A##R0(3$&\['>.EIlh+mf-RpSnT*>[V.?AO5>>4OKK;'sM2mHerVR'[;f=A4jORB6@hgaFluFK#a#e%(ua>#>$F;4O5[-noa1gc8$*N=*8O-dE'D]+'lJ[2".lbR%kr %El&lWEP-9nEP,@XZT0?[:]g;g48ZX2E70XO87liZ.l('88buK(0.LJ"`FWkF,%EDDfJ;Tl,0qC/N]+DZ;09n34JS&!64G5Qna0Qh,VJ%AnR6d.Y$&8Qh=X,cS\.inX %N"#NP_CRsg1aD(&\t:pPa/O@E1mGEUHGg9K5668*F25a9&-';:5B$1/`U,S)'HX[+8g.\tN]R')gK?:Lff:Kh.cR$LWZ1oWbTGcq %]3ISRqbe(WZ,r'e*@Rk]=6A:2EuekDCuQ/0X6NT\HrEqluqhAokeiOQY6[7;cB+Cgh+Rh&Ghg7fTj %-:bZ!aq7K14ZqCZfAk0?oMJ*XeW!r#5rh#3,ja?E9mrA+"%'E+O+/%"gj:R9&N;k)qfu=0^*XBNVrA[`H)Q'KXoBT>[\$iV#dmh* %@N:)KP>"4?[Uf$lL.bnpif(.?nE=)P1<((i3.Q`KhL&pX!SP)1"NgIu(Q'=)doFb)\FEh80K*C)V*YMr)IN]&@5]C"tgKsZ@qB8D6bUFT:g&luiT.>)J1['P:WmJ8`aqtU36&OdA@W%,kt[!4e5lAn\0+)`6RBJ-S&.IQWqr8ljZ %=g>3B\dn&E*ha]J2._NCq6rS.1,jgT1>$)P>9mq,Y!$L[11]q2E#ce5,s#Q@&W> %+rne?'U#`Ve*C9j-e'eYl/js\rp8h\$%:^ZF1ViN_:K=Mrb-4Rb9"'oX,$SW$eH_gp=sP%7?Y(E^&Ih&EW!7JD!p.$sU[Kp4d,XlISkSbSku6Vt3C!(lL)ZpVWrhcfP#ASEe\#8lC^&M\s.VilsiPS^r %d0KU_[.["'1[ZoC@'KQ<+gheLD9e#;LP..:#e-sckbMAK,H>H44X)jW=/`jAhKt"(J %\h3$O.A^sn06:@?CJtT+jJ?]dl#k;P5A\d`^Pk[_bJX8(-3;OZYM-kZ>SM/)i=3[:'rK2L"\L%W75I2$8cs/]%8%4QQ,n %4p$Rc@VfGkN(ok&mrN7lWT1=KKKYI5SL!7*NTX%L^3\=>)hi8FKa;>&_UYa8%XdH5c@SQL"aG+7@)8ti!b6;4A-/.M5tpK[*nr4W %n%O%sAcZpA$a(L=qeC9i-HmD1ZpQ&tBn_PQ_8B+c3kkltUM^Bj'edAiD4H97hd)X,7MV`T_.Fi[8>-i7pd5\i> %@?>2OUG?89Q_TEcb-YPfj_94gYY@9e8*d*_(^k4Ka#omUh25(bXJ5<'=2?bT3\QL6nU!oX42epUonV\?9?-HQ#E-[U`F**llVA:4 %_cLY_)7pe+^]8B_UlMZ0[9m3+U&m`P:;m[^8a3[HTWr.Mc!]Qq0eIZ47WRSIiYAc56eiApCEf50=[`Q.au:(KPSc>KITd,WF6 %LIF9S9a:R4;^FbD^:R&3-IU-;dLpbjn0X=mrmDF'Qgi#/p\rSRGF'k@c0d61mk3S?.qKZU]!2r@/u-FZ4XE7c8F.i)-[SHrZj6%L %r?lqaqQ0%G6/MWL:C/+:-?kaSP.kiSgd\R1?!8+h(ui8'B+)B-LV_;"H-K=7eO %TRflN0"MGj^\K64NN>k5f1CWG-sT>DKd^#aFD]r]#EMJ"c(uW"_CPhE>i*=&eR4KNGYbVasEZ %'FHTC9@<2601uJ2'*P@l051SYji+/H(,SSrTKk,K6:m)m8jO5gkXu&l,0H&cQ1tF$bAsrneHf!X$oP'hT%AL2EiG_Q!Yi]Z9i].\ %VTkAOWrVE^9$eH@Hq/gmAS@$'i'`j>$RDtWSQ>5MAs$>KhQ-.+;Lh88<)O('Jgq??&hifQ8M(2LZjsg4Q%G`D.On=!:;ID%$TnZ" %cjG@S"/V/Y.$[CsZm6>RTd10QC4RmT.djcC"?_lm!Hh9gW"Q:'AOK-BiD/s,<3cl':3&HN_L;a"VkJ;Ki%*fs.MS\A,i`W>S\qCi %.Yo!XV9B7E_2;Jo8j!fE"\r)EgeV('<^;5U.oC)$NPA?"J[>iU1#IND8cjqje>`d#fe.e=_Ot>[<`'0l/#%6`!iLliZik1s+\k#S;#SaZhQ?_8P9t1&77/fU*0%"4g2/"n*h;RU4`YROJ+F\(NlUD_@PPncsR\0oSo^r-0W(Y$O$tB:4sdU6jY8- %[l"_:ZfM5nSLqr0U+<1U)K1u3.WgAsO0(ER(6ge?5RBQ%/Wg+\_pCr_e-`hi,7/`Ujh`Jq!TuFF %`#fjc-@]7+/H:=Li1j:G!2^/?.p7QiIReAW"V"=*AOV,]aTYgJ2,c@!Am3'PBa"eth@s9jL2!ed$![Y;JTR6/X@YkDTV)@a5\2C% %Wj@>EOC3Yu!ca*$D$I7E2,55V_%:R\kR2T"6Sm0g%'tltj^hITdm[IR3Q(roY<]@\dh`i$iZ`C]DbXR>FI\(bLPSnl%t?)55q,B+ %!ON7\6'+B=X`jnBrtlHSXM>OW$REY1oSluTlC/H\JKTjPoNC<)->1On#,HO]X$R,*m#,K2hpt63`R=@2]Lri++@,Qc352FBSun_X%]8(>e$b?nKbj;"Q&8s%5hoPT9XSIYm9dLicW'(F_'6 %1o)>_[hN?KOWV.Q6*sFQ5WhJtcpMu=Tn`ac1aimjZ?-MDq%@XscpO6/iZ[elOi[%rZuh^^843dfk!,Pp6k36a5p>n4H4*]PCagQj %!s>:98[]fEg+%j`=GdC(#hEnH/eX7$0Bl(?Zbe2r1m(dIC*HW6J/#[Sl5DJr/HrRnJDj@%O=arXTcRkndFL]dJZXd1,$P`*0\t5H %LhRbTOI?G0TVUkq:00kt<=h,_dFdhC?Y465,20WaPeXRRi)lXXH44YaQ.-(hQ&W1m'2B`Z-[>iK*(:ta?s^_:f6"&_23`h$nfs"(>l_M<_BlGaXeM+e"L][9CS;$%_r-&)MLZTR\QNCH5XARJd"h`7 %AhY\H0oL*r5>5Nm75drs/13mhAe`g"f#hBcaLWjQcb\1eAJL70eiY/?/I`";dWNX%JD[$t7)^X+`[[Y1d)]G[aCpR^79cr!KWrCi %O$F9_fM;MQ#t,MmVl>VD,eL9c7O;ON[0sc@d1je?ZO$1QLZD].Jr/&JkdCia/8h'!M0?]Cm\PU'EMK=@Q[k5!e(QF9@A\s=1pE[, %bTO.`9,nioE2'R>DAJmOK/"ZE'(HHR?UT(4U#JKpa-@987UW74$j/eHmL)SJbb>m@5.J:h;?39, %p:^,Xp]S70O1npE,;THU&;W#t=3QuG!1$SY,tgMA'g]e*=%Z!nT]`7jYW@=Q=Yg#3VX\>r:okH9A5:7@?%Z-b&:'+7779dVBp-l. %pF*?/G@jD4&X/%#=,MCn3.dWuO81jIClo%_Fj#q_l6Os6q4"ACZ++eeF'4H#;q&emim+crWc3.c\UK%=`EUeFYu+,g7D %"u_tu)pHjaFfU>^[(Bs=Va8M+,4_c$:1Mg!gI2b=4BTNZ]@UWqd;-)0?<3j7;M]qa=_+X)p4otC$8R96A;s3SUI6q%4Gnq*@8Tl9 %h=dBgZ5[5#3*TpSL/ig>/(-Vs.'Y%^m*S'Z(o^bL1e_AsBUD6,BXh2_N5h]<[*sh?Em^B.L`B-%U,U\det*pdXUSTV">l_]#dot; %OHgSsPs`JnA[Y\k+5QlMU9.gCi6\J(G)D$KY2E%uD2i"k*8!CtJuu8qMI9a[6(*WdBFNsJ^b?q$b:%(-,oWk`RYFGYY@^GoYPpdS %90AUA'!t;`GmM'7+.Rpp+u1,@%[PjFlUt?D;'a_1J5K_'8!]Uf8HcHS''gc1?3Vn]A-UabdSLb`IL%DSR@&+Z09bIZm3rBo7A%%] %>#kri.*DZXDRRL_$FPDN2&Z(Q(M)T=Tc[YlQcP;pGcBnT0cC&XQ!)P@8pI^:l-n#WbbN8Y%PpDg&T/)(5_Au&KG=p'5nUq(dEFLV %Dd+@)J@A-e*hXfIPH?!pAddsDrkJrlN!T\>LSY7<.+jdlRe=b9"Qp"I8,uj\6\>EJ!j$4$7YmgsS-,_H(+cf1(-_%?O!:JeMI=s? %H5j@,RQ7CL_?,N>6e45VCkF$q-:(;5bQ;#HXH,K$*$P]d",^<(GQAWN7Yu^AfZ:[iOmXDs@*>?;d?ZDk`0N[S1QN`X<.`)F/5F+e %=HDuK#biY[==e_(RSPcWQ:jnL&IA1f9*c]J^@Nf^0:CCh[VVBq\)kinN[9R+a(L<$q4+a);]_?OTYmKRVsbFL6Zo[UA2&pFFqKP( %^mB#&q4U<@r?85AZp'aP^fZ]?Asc"T1I)^%7Gmkq5P-A05@dc^eu-SYQP>EqL06o$"+5+PVb5D0.'c'Je=/@3("=VfDM;mA[Ho+, %,JeuY**r:gZTi":;=d_Kf:uUS43Sn#*@P10$P#bt.'c&_Q)L%7P!&-Gp"Q80`u!AVDr^9cqU+_=0V!54r?$7sI2hk"PMrG^*PW-b %5pc#Wq0Ff!4/kaL5C$k&B`~> %AI9_PrivateDataEnd \ No newline at end of file diff --git a/packages/stacks-docs/assets/img/logos/sf/sf-logo.png b/packages/stacks-docs/assets/img/logos/sf/sf-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..45767830953c96b9140e0b3469513fbf46f46754 GIT binary patch literal 4135 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 k%D(I~4> \ No newline at end of file diff --git a/packages/stacks-docs/assets/img/logos/so/logo-br.pdf b/packages/stacks-docs/assets/img/logos/so/logo-br.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c07d5a838874e625b0dd2c5a7efedd454c48c4df GIT binary patch literal 17396 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 a2w`8(@$T~%lZqSfzF&Uvi@*7&-~BJ7xIydy literal 0 HcmV?d00001 diff --git a/packages/stacks-docs/assets/img/logos/so/logo-br.png b/packages/stacks-docs/assets/img/logos/so/logo-br.png new file mode 100644 index 0000000000000000000000000000000000000000..505d39f45acf7c236a6b90d0b2de9674b63407f4 GIT binary patch literal 37920 zcmZ6z2Rs!18#sQ*h(rS+l$}}Gdu1gfdt_vDRv{c`mdc(X>txT%o`=ZZ^Kw?mUg6H= z&hbBeefs@=f3KI9^PbQ9+0XNS-uF>QOO=wGfgAt;P^zmv(FFjAHvj;FU@{VX%d|jf zBmU1-4>c1{0Kho;;+J5?Rcr#^NZ_ffstBkUzPpM4=Zb@ZrUC#^8B1~ck{AF;tW|%a zpzlktJMa4DmJwqA9GGIecb3gLKTO8@H3w@xNX81iZfiF$Xsr@VPhfwgmkn_7;a8W5 z1XFL-W5Nud_3Pr?Y#*AHFzjk2xJ9F4+o%Jj`_WKdUAG3`gF`?mMIZ+khImT;O{x<-?z<2YW z)%i^8YX|imH-_QTRf=)MR0N3Nf8D_(KniMzx<>jm?gwIMf+x3eJhF$=}zy28{1GNE7iU9ExD0)!fJpv&fHW%<~9&rA_D*$r}UII?Bv z#-Yt|XY!Z55Cvm)+FERFJpy*GoGw8w!wBf~Z>r;Mo{i_F8T_tVG?B2Al!Y_Be^A_m zsPYGHdP{1I2eMZi3}wF!L|(4Q@QzmOw}7itHSg-XBWFY>^MCCj!ORx0&GH2?)@H+J zs{Qo^inM?Y=4r*!BIf(AW zC(&iW45I<3TG`7*u0)c9^cBqzFXE1G@m6u7{5&erTNRg`^1($ARSv}X-sIikQhrw` z+hsfTJ^U`qxeKMO#>Fs@x&IdPNuGt}(<~8M~oM^}n8b zx33_7cf3Q&6gRTKXeM%4Wd7G4tV2E8nXWDel86I&2hCc*xGq=H5dw{N^8Q0o`xP4G zZ|CvY1=*y}`M8Y~ya@dLaaNS4+LzthbyvTG+sG!nY@K`?%v?*B&w@+$FEt~)Y!rcz z$~Y_iBY9*LIcPHcA2Dg^31pm;k8>9j8OCBSDJjo{M@(~0lpFa!obcTNjk1xQ@0Ghe zu_i3C7J~~MTTGjdU7phFk&Z&_z0>^qb74H2s4R2+qvcN`Jj>pADu&a6%isVEYWb2o!ig5%7 zBG29Z^QWH%UgCL3MPBZ`a0YzKm-45ObbtxANzCcsMq z=}_8G-7ovcZ|!_!8|!L_f&v}66Hb0+|2!7(|Dn%4F+4gB%-rodO*hrAey;I#LByU_ zOh)}X;2|p{n~33Bvkopksq|4~kHuUds{Mm>GKjxfA)4zyI?~@570U=eLL{gN>p+7I zSAmxPXiuJ#Gdn-t+}ZocTsZvc<-zU|5n{rd@9lEo$Cl8XE?3@1<(~Vv+bLc4|Gawz zNm($3z#m)Mv17S12bmlDUHZ#EE<2(g71KvBE^M<_Xc|i!V#k{QAMKJ68QdCjws_pn zze_2IA`3kDffuy#f1Lx3?GUh?s09%<7{WSBLGi_wp}?=v6L3BGxu(# zmWtttHOspno@dNB0n2op{Z@rp|4!f){Gkh&1Fs0$zxp$1Cg<5pC?yUhcx#C+uVjgUO?& zn0B`Rfcc8&*SE*{Ed9PRzv32VUf;(>QuFk1;WmKT-lJeocW;gVU}DEFmJp8QV@?lg zH8lKHFger<-i`c^dbHOgzYjma@3RJ9=qF-Zi<#{Gz|`VR#OpSCZ_@ie!srK+V8|XY0CppZ2Ty2#@Jv#CTKffEMg4p^$O1TYrSt*PJ_Dy^AxY-2)_F6oYc?-l0jqR|9teP{B&t*+UIgZ1Ha)r zXBLo#mJQlKT{iTYG|qE>O7jvO58*`+%ZGf-{&m!tF|&Bee+ud-mK;Mo71xTS!dr`Z znvt`4vl*|jE3tWR{@I5$dIB7w&B2d}|DOh4%knR(X1WCLwtQqdv8cJUp?{V}gR_bB z8}^kftUeIcM3YOzjs6eL7hgh|uhPciMs33t%;=)cKS`Q2`d`rTKQN8(9>Q`jUSJPf zeanU)dV~?8+BpATOXK;D9Ms})^Gc7lvGg(1zk?JJ(ja|Dx)ugtIZ^N~;*OgY2N2oQs$DwG6-KM;iE5e&_`mpJkl1wY=QBQLtQKDL7dJ=D zQ_@D&Oby9j9#oitKxUXm?ID=cCJ(*t53S3$zQEMmFB6-5&DsNxo5Q{ZdtSX5Jo%AU zOdQ^|Yee;eFM$77D{}hjzNUNap~71a%vilr))WBn`=yf;o3o{_%u&zyO(XUgHM-B5aX)ZAaqHRa zZQ0TGf-1edRp1CZz$D%$6`JU>SwvPK=Z*g)epcGj%a804u-t+1$h1$Fc%x6ES zSf0#gIz1Fb4WE$!GJ=C!Z6i&)%62Wz=KQ@Up5mr{6;@hH3VaVdz~ehSX$S8xkUosG z+SPOynH2dSM>Bg%2JOEvg;nuR%TkB>0mx_xz#kWo6)sJHKegD?4ZJEeqKy+^-cI-( zN5_{b!0fO6G>_=En@`gN)NF}0;O`+v@AC2*xhwDfAue|T+zYsZ%-ZY@ zD&4cO)1!^53wQk%Vr6E6)0)(#+fYlcaMuHq~&IwxR zEXH-&G}{R>Uxqiq?&{+1wt4_Sw4%Hv;qD1o5p_x$LxMsOfo~wzz4=)ZLj&@ zD%x1@k$RSnBkz&TtN-&^tOA`z{Cv>$9DraIX9{w4-lXQoLd~0@7)`p#{cCm&<*qMn zwVZ<9prx^_2e*6nPGmEZn7 zQOXj1!NO!J4kCT*AVPp6AI}EGV{3Qy2MG|_;-c*JI`#{HK?#G0iK&0X9xzgSiG)vo`OVO(qdSv=& z7$hac&>QHY)iD~r6TBPIgC zATfR>{v)F<5#^Q$UzPy3l%N8Rm5;d;h6W>Z>#bP|_+3fp9S+7g^<7-w6U4^p;Y;V_?VFebzJZ0bO9aU$idFeE^NyWkScfuS^f2mUg)7f zkzfiq^Y#5dYk4dIA9e}^97|k{Kes|$ z^k`%MT6Oz}o2r8O`i%#GOj9%c&GrPIEMX_PP6zk^4JaCsdk&aC=gerit`%{lZqF zB`EX7_RZTns@XL)C!X$dzXJc7>)?c%vJRHI&`>b@`e1l&z@j8#APLOugj2}=n zHhuECa*z>Spe5dgRn5^_pIF=ut(l(NPb-~@GHh$xEDz-AD|=riHz4~A`{OU3Xx|RK zS~QL)syu#mw=e6L$X&`S01s9|Ow@(FcGN|kswXTiK6O_|z{Fs@QcCo0VjM-fpna5n0)xAnvyV{Na#g6Kib$Sg#_cB zT~Fp|_$N^Wt?C7B0TlT(Jxs-6$qLdS|7Z_pK#7uk_BVViR52-+T*kT|ib493xHIG3 zSPl2{O()z&dG9gaokVfga{Ohcq@K^ypa1w!$1YY-k<3LB$|sX;2tBlR@0+VmSFuHF zx_j4OrRX1CS*~=lJYg$;wbTCYXuGfMui|a*c#TeBIv6zePr2AwRX$tOh*lMz8Sbqx z1J5BvnLd}jx|uH+@{}$X9A6tfs-q%iHx6utjzoVF{R?}_ryy2Y6Z)O~wz(Ss`BnVR z4L@evehr7$hq)E&R;df3eusf5H*0Z`bs_QcOn82nd+;$);r*D1DdO(}TQ+U9fMB{S zNP6=f*qjLxV&Px%z6nxR7jji5Z=}hW@0;|+IEYqdr8Y6(Cout7YXUzeOryQrpud2i z`dB|(fSb`;Cp#RefX*Lj_T~G#Y-`%VpIQK*QH>7BKh66F>O zoL1jubLmVCauH%eYnb{hLD=+2=E-w}+3wSOYp)KB|1N}=z4yVb>?|ax$caLWFc4c6 zwxGU=u|Kp5&)jeN>cswM1A~7UZYTWRPjIFgV!_)$2UIXAlrq;5O@he&>av;NMOm2e=Yg@*oxY8_%YBWFuOOMJC!sB8uKp;C zOx$#*sq{3b%;EgK;gJ7(h-Mf@UBst>BK4DI7zmgzX0B6L0g=UPy7xEdCl{43hw=#% zVi+7n>IJMYZVEHX)?(Y&wt$w>)BW?Y{(|UB|Gd3}4FVl&#@iLCqI0}R(2Q*1)p!td zWXC1ksjLvH_V)_7Wn?iNvhZQ2b+ddAW1(ZH1VV!ry@JYG=vrv7Izd^No648)lc^w5 z0`$z<`1*8>*ju@*C9Cc_f)+@*FHqY8mnB~LR;e?xy1oms?U!PXz62J-N1Fs+no`zwVaK01GRgG#2 zFahpuS(!un$?ff3MGT6=NiJSEm^W6Fw!m91?3P}1L5Py=+`I7a*^b7AIa|UIjnqV? zX}sNE#C7#sF|5JpekqSx;T=)pH3f#fH*CDwO*T64ciT*3jIaDp<5dbQg-lv2!RR9H z6HmSO^tU|w z3EW&^op>s{eYU@l9(cI$0r$CGR=Q8tEGta8DSqcg<1$I*mx|OsdMOn?i&9jG&U4#O zcW1}J>o}YA6WLD-c z6wx=-N&I8YZ#|o#I`jC0MjyYY8b+&-?#u@+4Wl!RoR9VxIw+qOph&6pCB&&694n(o9)== z$8U$Za>ov!t4;O2NxYE2NZLtldi9cLJ`0Gk6|bLPblZ*%nHv(vnI42lB{N0YdJXmL zN29$Bjhf@1WcS&&=kuz%7w~x9`9%ymSQ3akw0H?yFEo-Ho|j-Nk6HZiMAlQxlyTX~ zOd^HxT7nvevu-iAr?c=yZ)@(p$>bSSllQ=A&v%}t?fTru&EnY}miN>p4Zj^H-pR+> z8g}o!y&b++n{oa zeKDceVYjz6$!!G7EoM;QsHxo*RB6h#ZsO)i7mgD|IYR@5$Bx1G*4h@oL&PL1e)P`D zq9)E_Q*238Nl}SFSglG<2o zU;7T0dRR(m=t8K|xt7zUx)-mXNJ2huvw5Nmjn0qc2@N|@T92z27=(OrTR{s_)A;OA zlt9tef-uw6R)5E%3wvtB zCz*6tMJQ{J(UyC?ge4M5a%mJ^^REJ%#}sVBh(H}DJDkafuX$@$%*}gh`wo6}01wVh zU7C*^wHfXee*yMDyM%0ZcR_XUgNFqr<=uBCe1!vkB-teF14Q;wj)z!!&jE+~;o+#g zKgVBpfLG2HbOXd_AE1~y-R0HgEn|>#K0Pwuh9nhFChpD{wa~Cnyg4<6JO3~IrhrHrZ}3R^kKvnW#C`Z|hbi!O3$ov=Cv z&|pojvp+NKyK;+M#pz$+1JY%sy7DxX8>lP1S&e`_x3n7y1b4r>L&B|W_L^+?v0C^x*NME7JWPVR`O`5BFiC^89|^@~mbCDCF;~6=7GNWy>m3#*DstYGfeY#q__&>mPtN>ojTKbQ6ju5e+`2?7Q{=-n z+9N==uR+WiiCV*32%Hv`+}19s)MH7i&&*ZR-kk=*5cE#Fv44FTyy)QDsrn0f38(^? zE%an1K|y@xl~~s7avv)Ra!?PGX&U)X3d}5R`e<4zZ#dJ!c_3w=yYC z&17qAzPo+HEj?Y5TvV5I&-l;5fuKsL$^_3LK2axzchGM)e>J7!NPhQHY<>oecYvnA zWiC(qkhN39795K;tuh@aTN}imEmF6XO%nyRP(JnD(oHR|QK((~#frcAX z5cJ_zGFEfZUdz@_uh7BSDy_!v^R1>}8_C@oF3qd!Q|x3Lm6k^DJOf_BhH@7{ywHK`TPSbX4}WjX(&dq$8t;&^jRJ^Q zB1JUG`|E{E;oI!$;+86A>9!cqb_WGoaRduVTlfug#E1&RD&IVaHZ&IYX@A*dY1xSB zWoniT)ukTJc76Pnrgij~ELd ziB0?EP02~>uyeolIP>xp`s$tF#Zt1>awql+)4{XYS1AJKm?wnx39UO>%Ht{IdDxyv zzgfAcUW6A(CSOC|2Zzm0wuyiW<^TwB6E^uaWV9bq6Z!YUNA?4=A7igt%dEB|xQ!n;o(WQWs1PaOt z5bF`GWX77BPMZha4oA3s(|n$ob7WEB%O`qu+1(4q4*6m9LTuDM!m zH;|LEkcOR073G44YXq)H%~n+$i&jRnX!ONgI~_i{=af5qVwaBmVS#Yn86<FDYE;uks2nv-y^DrT!O z&cAYcdcnSmQ{E}&+T;lC?3M4Z<<~f$*OWK*MFRo$kK?q}V$+_HZqeCyf9+LCLyJr5 z2%bzc@+k)sq0Ebo<6PaMCST7*mt~kH$;-FN%WlE8@Od)Rpn80Up)%c$7^O-VJLO@) zyG@**X4pCCt!!oghBxhOOQ6-(BAIDeQ00eztCN8tXw#r*~A-Mq7 zBAqycL%-{%jWotaRa%gi(OJ;YK*OJrEq^{SkC-`9M;+7JIb#}R_F-M-J)C+#U9Alw zbpK&`a&l=stqUaZ%V`=Hg^W)2uWMN``S)uZ$BsT=^)=+>n5nRZI5|QLF%s{hcU|8K z+8tsBY0<@UWC*4#7!N6nJWESRuW%HgOQ^C&zi@mL?a|5_5{^vl@~7j^$W|j#0S#xd z6$f%;$UQG6qSMqre5F}+ijXg3DwQ+IOC})_j?LCepXti1;J^?tKJTKH z4Witdr<~bKU)XY+q3E}MXrvckG7x}9b2d)}wI1jRIPLOQG_3avIE7Jc|CrtVwZSvjY zOy_4cG}DT2YkDol5wH5o`%!KAWxR@5liv&Kd7_V zbVA$q+V-5)$BLMmuFw0}oz-CbUZ1YSID6{4vf@?AL1Qe=ksi{h<1ebyDxx6c}k9uV2={E~@WwX_}#X?`sEBDK#ok_or7 z0`?tg4oPfe4B-7TnfCDQ(b2BCn&lsv>2yytW-D-G_s&C@I;GP&Jl%jdFmvj?2ye&9 zEhjZWIT+@Z8MSbS->)23S3WqQs-_YK#fo-xQw`YJyRr8{^)rXs(6&-R*cGM&?o0(^ z|8y0f9dl1Opa>p!8#M(E}n}tE(l5=%MtYIlIuXZWsAUpX@n0U`pfQcCECRqRn&M;Ad=_4~R zX!&M+c1YmUbBq@TmA4w{O(c6W$Y4G=b{?hNnuDZ76EhDKH8I- zAZSoC6)3CE?)%kI&PJn7Li|EaFp+qUj(O>HlWbl4Kp?Npu;Z0!=?2V@>HX`(66Bxt ziXfQLXf_@r6x!>b3dXzo&QTMk=U1&6JKvM7$E)5P7JO}%KA{QsNNsd2u_uZDL%C6_ zqv8CirvBirZlMqvP)3lWTEK-8PPunx`+I9Agq;wSv0=Tx8pG$Sv#;{}GNK@)Nvmo3 zu%G<;_2?VcZfQOteHm?xXI8)PS0A>qZk6=z+s2NrTAhAAT!+6=X9MGe-r(I@Yem8S zyuALNn)0zXlJjGcHOoqJ%Z(!3g$# z6;AKt(rMCyS9kZ;LGgxvpj8HW&(NVjcQUWD1c@ zyn6+!W?gjfyGtNrfA~_zo%Hc~_~Q(bsBc#}r;e)YVWY(x_eo28nCb-LeQ{x;^ly*y zduhhG41T1Wb=fTDe!Zl8)efkOY>+$H7U}yOc{U z;lOeVLA-iO;mfd4Fe@Vdnqf#jk{9z}?|w~V<@jM>VwT-!w9}oI&jytQe7BXvV_P_@ zb3V;ReU0A@uQ@d04W{Ze>^RZ2Bi}59`gJPmx^~)dMfTAe zqLiP5^qvoojG}?aV}w;u+ouN*hdznU5D(d_>l!XI!m&%IdGIoHE$f={*wdHh>@TE& zwV#|DO{Dcz{nP0k6dw5+sO1pw4aRsdS961Dx2)5g=F8PfrP{U{NK*L{Oa*;ltKi-A zU+WAf`pyrTsjhBlAK@;fg#k{3=2vC$u@ayj&m(PAGfX!KRc2XV%xs<``xt-wnsiuy?Y5Y zLHH^lFusxp)pt>z_V#!+wH~q%5uk|*XpDGPI!-iq7FcC$v*IKO>^O1GxHCSY01-2h z78S5*_h>9(4p5#oVsie0&F6Rj^(!vx0{F!7V=(6IVg?_9&GmEPmBv9sUAp z^E%sZNIu|j?lni|>I<#(zR+jDKA`H`i)e)5i3DP@&h8P@{5^Qt*?e!ffc1`||EnBW z^G8wty)sPLoe7_iqmBiAI=oKD*5neg?A1<%*%*D^41wq;;(cQK=RHVI;Y5-zZVw%0 zs#FR;2=v6mB!0LDLeLYXMpOdO7yNhi^JM;DbgRBZ%5gC;v^%Q>IjuVPw3L3}$l%Ht zDN6#A>iN7NJF)sC!aFC6)sOW1p1tZ7fsOeCr->cssS5ceeD(Hn)+E1)=l4J+jk%Nq zU%>%S^$6WLSV86M(wKf2RfEkd$>6D5`r&xSds?#2KXqiMHtlC(zPsjJYM-D0%7)tv zfU#Q=e?txtGF4|WSkzBU;K*9Zn|3EY=_d-V3mB)N89 zUs0(Ke~t4wdtOvV9Md)@Z`lLJOlD3y;JcTR-A0z;f=z;fFw-hk;Clh?u}#3!_;Y+TkZ(l>0mjEETC+gT_ zi6-)3(d+(5X#-n5@9P#EQV%syj!pzz>+M6=(SlicR&f@5MWA#IA`M-@>mQw_YKm(I}k z<^VVe?xvCSjqe7k$|3E45VyxVU*B@Let%_bmUQ!8k>J3%8}Qx_x}c`z#Q3!7`C_Nv zTX^#{8-~Lb>Js2u_c9vkYHc#F8fi2WNSUyE+#tjdnHwpZ8QG;0y!vyVsIc~??B!;8 zSVvM%W-9|Y2d?rmfd{47sO9hE#Vx zD_XWmzkryVM9!h+67krnS1X(SBbU6zo&!5JbGU&xa?&}+*TAmnbZ>_UaBD!1c=-6e zZ4Ei?+bPr*`%Ea5U?Cr_Ot=fvDH8D0)7O z%$(IMhmXx`Gv^oFLgh~fG~E*>lx1NbquSE))%_VqX6N{nX*WCi0*PE?*6@kbQl5bJOA|`9TS7Bvp7V)x5voW+5)c%r6$WiJg#=j^UU>JK(rG{B8>syIr@+ zB%gQhc83n#9A+uR#_!R&wI8kdVRiE7PDDnQfA}d)-F!y6$xAZ`7`-teDyCccN#qPW z0`y-#o__^PVR}1fDw&3qwTO1<)Wx~cNt}n09q(Alawq<{njy`=l~#9EuV&JZW_nTv)vrd74H7ygnE^*c>wJYffQ7Sm+{LI`O^B?7w1=Rv{+Q@FKp$% zO&d0N1%IDRTf&YmmL<+g`RI z&%!|U)mv&n%a$tqV~OJBE2CG49&|X%8lSF7N7(5_q*jVO>iCMk-!Wvrv2=RPwA|2W z>u}GzLi(+i+Z)yA{CabdHI3?+QBcxxU%5X2uB&~6I={_NvDl_qiGz*ZU54Y>)ilzt z9W~`I{gQixnVx-g9dC;CV9r-Z_^E?U4DQaPx5flDjZ8ka%04=EW_$3uAY_08n8%PN(?ecD4IL8PNIB|G$9&E%i9h7_L@Y0L|Av&|O z&kSak3uBHl7~f(n?7v#cY-moH_3-Vm*6h;4oaN5hadI>DGtb%_*07thX4b?0txAOGz+tAdBh&n#FV)2V z#HWkYXYPPzCyQ%FPFhe)n#$F!hUVSz5N&LU3vp{Eq`SXdb1MhF+)L>c4igf1DY}*{#9Nfbq!DemP%vkn)vIN(9 zIattvC58%#Hbb2W4a`! z{y0$zgX-!wqjFyX(wX42u7W?6P>wnsdCQG2BlE`a=UtK30vF|gF{@O0e38ZyP-pV4 zvR=4%>$IuFdUM1AZP8N=r7J-^E}nY6u(%BS%=@dkbU|D9YCLtA43Ny0`-k*LaVEZw zRkmLjj@q5RtO0*}m6JgYklkt(pWp|*e_TD+6}NaKNsJeT*6sC`@s~Tp?#lM>1)s^Y z{2{EA^|HH8moo(kY=XEP;6nvJL6zN*!QSC@zB`aHa&x3|D;Nj=0e8La6-l~qcLFeo0v})_yY7c*S+sG0!fl=j&^p+L|gVXk4nD`MMJkg zvPBGDw@eLQF!%KhvLO`ni5#V++$zpOucBwPJDw92I1o^kkzBb{|LuCDRXt73S#q3KYc_ER@cJ+I6flOe={3cnUH zZ1SONk>8s24a7zIetO;#YjPH?g)RUs#M(;Ema&b|pg4&hR?i56gt=|wYrF4d2xgbB zAcXTwc&FXneN0TZddtGqM|a%ib3#SM77G0sXVlH^{2F(zZCdV8C|ZX|(sJ?D1WmFv z96xF2+qzTc184Eic@gBt0uU>}Tm8y3*UFK!WN?M(coD6=-F4$yQ>Fc-fH5%eKE9IN z;@*Yj9!Dkr&!m)RGJ80<4XQIL*snM~%qS|f8K&gg{)f04-@ z#^G9dNx)ugw3Hw79=JO@>l~U?ZEp)=8Y`Q5&QaG`Y;!FCKfs91@PMiCD`N2}c)c)8 zYxoJFds%84)r&si7bP1Z_ik^RG3x4km`G+G=4FeelgZF7oCk@;u&3(0mS#qGv87i# z?};xOc-a}Y_-C(~Ly{Aqfg1(wwMA5|q+bui4ZYL70c2#+QnY>}TGo%iSD)m}poCI4 zP1}#6+NwyN&7+H5#!mW^W*_D7X3@Y5UwjD8BDRKYJpCCt8hB??8$0QrWgXqY`=vQ? zh|QIg7vOC0tAI5RLd{jmo{`-!@jb97-#J!tdGXuN)d8zxsYS8Xz3`v69<=+@n16J2 z`%;IJ>Vmajdtmv}U`GltQtU)zyb!(knlhwY1N!dNl1ljmzFnF?6QnFv&Bw6sAH4AN zh2g4?5kpZF;k&$t-;SE3>}uT2{{jWPaiNMs@ehOqxcw{Z+t_}W{EpbzvjQSCw8=I@ zFt=NZ$#}TGzsCoJVD_oEN6r%X3T}3aGCQ2M6IErtYWyc3KNGY5XoS*1;dfE7X&{X` z-@kYl=W9?p#|>9aFOu z4C=8F(=o4!<7f>0&7_l(j|VjWl~Dk14tU#If3#ZOgKjxxGIXgU#7${7peOnAHT{$pP768Ezm8g9WyaGFq>ke1|smKaX#AHd}XzAkz56D z$(MX@?|x9Va07mw`(8_K z+0fb7@mRj8-eb}I+X6a{CM&S>0Qz$Hnk>X2mS{2Yp2%I z-l#OcPaz`wa%h(VdIIRd-6xh!Ud1|$+(9m*)hxkfTdA7sF?{CI#_WfPfW!uE7i`w8`6pgg6S1?jxK#B`(QY>cnI z?Kfn}>}EZ#TQ3;C=fzuin56s zWc?2Dh<6fqM`$$b4n!$6ui|eK1e%I;C!VOBId=)Ih+G@7-5DN>@1axVeQVhkXkJtv zvyj&eq+~Kae0`Ks*SI-wtp*m2j|{Umc0v_l-xA*iI7mT%Es+pj|Ex2*gcEC6n+XVe5!oJAco|{}glx z+A;V8Vs~}3Z9ro%Uk{e0!|(VNWQMW#UWO{d5{BE z7>~#LybRQR2?^pHw7jA&GC!^hC%%?#3iHc$5gOV@>{*_o! z7f-MBJ0SoyVTvBVe_J9%&ECFACtxxLR%>4)H0ZL6e}iJU`ehNZu=bFYzR5EX+W{_i zR$0m$8ZyiZO1RDJ_j&c9f$#Cp8=fqqZOI2ByGr{4I`FxlzZ~4cw#Xv81+JODHAKpY zRpoHC<*Vo8vSw%9EqBI_*{_&>oZdVI&u8vfd|0=5S!f(6SN8dZXeQ$tSMtf)`i~g2 zW9h^-b?<;?80}_X&|}3mY0Vb;X_@RT{GXEBvd;1L+!-Z#w9HMJ zTRYMRUh~$b8uc6wG_d_+(LJ3iJzGYzIpSOb!1Q+_A5Fv!sM1j}464Yi9Z6oJy(S1UUU+~s`Q*8&Q#nB^#XdUfk^e;nK9MA zNxA9=s)~NUY|Z86Y})Twa|n|2-Zd1kE@h1E0Bg!<0R>Gq`7v566P!KY6>+0{9{%r*mJ@mhwC{W@&ynJ$Hkp%*#Gi!N}F0@hA|A8b!?M&j+2ePkfTI zGk(jA- zfpphG@%MV>X+B7Vn>3Rnyft@O9h8{WhtKl$9GO2kpa2Lf6jdAB@J6Sar_;`y@PZy5 z6q>Lw)Vk*Hy3S1>De%(qHPe#~N>mlw{+2&5{Ax}TR1G_#y=Z@ zmDVjTz7D}PQ5?uI_irQ^&Nj!omh5(lB;457_*rA*FC8;I-v_mln+V5e_RPl}TD_Ov zHQV;ea$J{x)6;SCfXSBMR6Te18$L+ey-MBSi|mQ<r_Djc=$?A$0?<33o^M*|o4)+nT2rh{PRZh{2e|RNIEYuvZ>h4qHESr`e zd~fCr)<(fI^X70HcCpTb2Il#mVBpXgNP3goCs!&i{AuAEf8Ns%i1S*%1smb-XbIq8 zQgs^iMg4^obr~SYC9foK0N`DbKdnT?vS}lgaSO~yfF?GEXe*ufxQ0C8p ziG^>Sguh~|l@cIp;%tKQDeCMi+5rc1@zjIyNsGBBz=sgeC^jLo_QDwD(P!&#k9dkX zE8m$}@TDK?dPiyza8xoAZ9SWSr+nhsQ^2+!`2L^+0BGOte>>q@KPzz<&YWIY`@IgI zTPwJD^|8O)A}-K2^&ERr?NBT5>GTA(P0{F5Th|+}PLa`>rF`*48?H{!#!TSQos&V> zBc_9v-fu0D90J~4*5?OoyUFlvFG(t7w@}0ojJPOf&)lMM{KV;e)m4FW6QZIG&}UN; zm!pY&4=VyIxYOFZndKO?rx=~rUDPeS9Hsm=PVm6zY-~HJ->l}@>|Dl_QiI))QLBJf zt+l|w0iN^x9$(FKHIg2kj&;bya_zb12Fnkd#!Z9g3Y4{8+0g4LELwqd$0IP=$3ZQ>NX$58w$>X<7E(3o#`P3F z6D$Q(w*=xa4hq%3$kvmYp*B(iFN4Pxa;GRm9m?xPJcpe+16VN85i!!`Xgs!0;eQh>{4R1ZjvKy^|tZ)F6x= z-7tDDqePl8y6C<4-fPt8qeU4+8+9fagfTpq`}co8zH2>Sp6i2UmT~rL?|mM7?_)=| z%$%EWjnm!0DAnP!09+KpmpK*2HnYe%RG_n9V@}$v9%ROsOYXX*D46%GT5GngKcgvU zW8O%27NXSQ>v5fkwte9H4RB_Ex+7DROwL(WMP#v&F!^?BYn; zdA+dUow^{wLZw>4LIh%SXH-gbjz}?>U(JIdu1Z?kM*d*54oX96Oo(=yuKX<>pUwg~ zvlJdC;mlq+DvgEZea?0nA8FCgEFUgZPUR;T5;S@T)fhA6z%_bm7 zdY&qGfy$Y2oQyQRSq8P=AUO)vmF_V#2}#<@S@lpuW_ zw127Yl<`3)qgSBZiw*LhHnvVey6;m`YO9xaJ)pX~7$61vj$`!W*gJWb6BQjL^@-&R zK6UefBf>(tJUvPxIYu|f%>Kei&z02~%+=>Z z%{)GZoHj88nofOFHHOO6Zr&-2^|HwWaslfXa-&fd&w}+6M za+E>S5g5j-L!X@V`X(ReZvH=IZEDx32?&&|X!A1h!0}BqdG1=sY{Oim!|J*$R(C8l zTz&MN`l`9!3&bY-ey%fT41faYHeFHznb_hb^Go=u7I9wJN9SXYqggab4Osl_f3Oak zmQCZ?Zyg2fNe!Vt8S#VAWOvg5@r7h?eWxNou?f%k>mqsT`{2G)Uh?1akIsQyENubQ zb$p9l;y*;4%Al=0Tx77A{nmi4p@?&3N2s2jo@i->qYC%ViK?tASc-b|8A!88HIXl% z`Y+_ggZgK@?9W~roTW4*WR%UsPpHWE-ISVV5@{CojOLc;aDtjgkgp86iFHECenwjT*^(UwQd{|t+An?MgWr@XSbwI#!( zDj~MPaWDrz$rTmT17Ff94QXkSf;yYN<8zZjYpcj10c9_a0=3M5Q!*xSACof@;kVSb zeXOy;8>qgLZeex$@CH`gJusX(#~g11)!1*8$$2~i#LuWa*bc2A-Q%U$Q*)^Qey7cx zkN4wOu&SZ!OH7?YtlpScE=X*?-KPI%%5CrAzAyESN&7FG^Mtgh^J9JjTI@zktFJB` z9tM44dn)qSus731*`HEJr!}*o?%XDag%sOgSCC}b1Yr-h{7ujp|0_QW#4*u%c^yu8z}akF7B^eqA!y(FS2t1N zeThc**@SbNb32HJ!t%|`YaPnZh1vg|ls4YpSr&cZ7SD2PbMS(hs&B2`8*KVm6f+uX zLa#KLGMPB6LL9_i4cvRH|Ncr*OC0S!c_;iKFNgQr625Le$*rbb>m5EdZ`J;y7v^J7hb8s!r}d-K@1(sL3ijd?8!5DD$3Y{Z_A@y4j5FzEX< zURHX1MoQeMqE6n<-xHn53Bx@-8D!nsF5(sL87-~N&HH=>;pzcMal7b3_9}Lk#@*aV z?|UDX4KPHbeLB928ubV9+;HSrQERfgO}+ZUV&iVOVSBMa1YfR6u=@+UgNFuQ*21m4 z;*qaQM!?uXp>8Vu` ztQMqIH&@Yo`r&%^eZ>j3NavZaZ_+|eXsP$jl+c~I2OYhIj(Gm*PV{Y80srg01V z*9y2o(gERu(S$;#EkEy^xzgTxx2T}|UbCWb)&93oV^_7w#9F3` zAySynp~M2*0{B#etMZX|V6Anpz9~8dP>}GyH^}lF?(&u{#U@MEYoFaF-8hjW^aa&H zdaD|a5ISFG31jEnFMj~|MqKGmnAY-@!KTTr-TAcgk17Z5;i%}RGm)W`}F?1Lwn+>5$7?sXFlG&;InA_ z%9kPNVWy(R)2sl@#^{7S&WqR8(y(Oz_!Utg0pUCB6Bf(kP*Ts6@L!?X?~Y&UC~k~s zy;*G^R`TP#8^u%Kb$L1I`f_-)uKBsAF!k6=qtrQH3bNAKwLCwln+WHgMbyG>-~@Ei znnJ$q6YtgRfoQ8o=A#awpWHqpGE~Fw3qGERzLO>8Ev7Tr&EqB|klFmzLMKt-3wEqv zCA?AiG1l8VK8ocB1Fo<6MGMA?G9sc#By(0F+R}6A#*@mN1U_$LZz(9aBn4c&NeFcQ zV6yE2QELM&Bm2JDW{y&B57SA__kPtS>$W$D)eE9bz3bpnC5o4Zq`y#R0r73CND;Lo zjF_s?O%Esu@9PSUPXPx2y%xy+L+Nm9&;jA8M%s1=V%?;L(BPgC=S*0!^{dKpM9SnU zc^`Wjl+Qu=-R;jr2Tl^XNhEgiD;Ohdwe5HFV}cU0^Jj(G{0E=#JlhAILz$oAfA6lk zf}FDnXD4dN93OCIgdU>{bn9o79WHbX-WTo7xgH7FW`*8vpV@nqNg9;gqZK^%iXP2MWUy|CR{#YCL z#vZ5pGkhVP|CxA171YdN(Uy_Y)6<2`I+f8k-H`bM_yF1@NsLt9bvZNv(6!RfGb7NC z>nUqj!u}C1>0H`vqNGJ{V0E9}m*-X7znZ_tQ)}6!PqUnG_dfS&o&*Vy2B7D4Ipi!=;VuWXY0!I@=bUzHcz{%L7>5%b~s@& z$wke{Z4Iq;zIuy51~iq6zWftWBb<-eZ=|LpXNeGQO!6_z9|6UYB+by7>bxuYz+Z7$ zcBc&L5G-m_Lsn$}o4CXHU;r|3A)7Ic$_p=@-8uVELw;0!5($z|`+g;2_oOhv>m=cy z<*Ev%BSqS+ytsFT3Ay>khSs|^@JS{>$q`z21Ka<4#y!`1n^0cJwDC!>xqLvC7OPZX zNtf>}G4+#l@+_&l;uddtgI#Xw{=BvXd)M9y7_Lb^QOj7`hnUyC`l)B?{~Tdppj@v2 zDpcTE^DQSPEX>BZUoPDl+eah1vwsPDZW@J!cZuO72Yl1+ypX2?*^*c@`*(i1G4TqK z{2_h}0F*iOy<^+=4(jhUILxcUpE!FU<30;OdWnflxDz9a_%odjvCs_i9JQz9y}o;Y zAjq@NCRmXDI~OzmV$e+RH*nSL?p3bUf+aA0wNZf$&{_GtDzv4c5oiWGL>7zHI zy^l>pkE6dc&2Huw18;Q%;P(Af8ZudHH42a>g1fq#fBRY8xT*7`tj>}LMly45x~E>k zqM~3~Hin!oUBq=(-{)c2Q{XaiUJe@N znsd^t*t0X^OIHv@FpwnXlAsq+0S}j5bWDlczA3`?8rfdMUDS%FWbea2*L}P#S{+~! z(cj+VIYa>t*vGwTEd!FCg z919$$CH0I4(kEdWx`nqNg8>@UzJG-AHvD2aQTqiI$fL?d(c1d*=@~8AYy=P&wBg|L z*ccC6>GxyYrjX)$#u-CWR4?3V78ZM|uJjacU_qMn7P7GnNe1~Z=Re3SI=0}erW|M5 zYuPEY-}@Dn9?$u(7*DyZjzRpmh;*< z^)u$tuQmKX`ko76ZImf?3WFq-kr)p?5v;LHd4lufzfrPta4@}zZIE~O6?<;KzhK{~ z%cP&v35cuQPxc!_jB`6JX2yleqI9{=wze)!_-B{dl_LNCUhPPP@JFWcv*t*HkHBi$ z=W*D3z4)7}Jo#;ix=yhd?DKtjv;9krUSJeq=@jdDia|!GN6I`i?@O@ahBDoDuWeU2 zL(BBKv!CygdBh$yf?fzf7QhI1{kA#EhUtj9I$f@zCsTe}8xd#MIr2GjuXeV3clP^) za;$YGNCkE?Q;!C36H;tX;or8EadUDvnPS^@mOD0z4zi3t4f|d zIqu_m{8>V)`;5=*-b?K|c#l1TK$<)ONvE0eQ_H=IN$rQ85f{_QV!GwbGv7DgbjMXK z+hdY@iRsS6pX~f%zFFsMk{3@BM#M=Em9w?)G@D=Jm^}R))h;e&k4$iV*&LxcEB+;d zf=%92Z1a72!hERV*a2W$?==&AA=Rdbi=`V(Eg(2sy#IL`+9#xH>@c>fSi2c}S5>c$ zHi%4W?hXXTSw#V}aLXHD)FJl9jF>EBuH$?Y-_HDS;{?a5KQ;PCug zyvD6#g2Huld6t`ywve@(TLe?9q0gWc+jxUd+2QLWk_r_{jcMat*k-4HpUT>Y(dv`9 zl-cQq=WuWA$%|WUKNFEh4vWK##i} zIC=cicQ}!;80yh6+4bBM2NMYYx+~K(S~_WA8a&q@Yj(LK(^l@hJOvrbT>JhTOp?YV zz=;V+FsC7-#Y&cy?*fFapry2V7+>bMyyDz8l%KY|G|Q-7gg(!rdLwx~m|K%vJ>qET zUA2Q^NzJQxEG1l}ks3OliCkx2chZRDo%i|@)&2vBR@DC$QWe8Y)NQoZ38;;lANq__ z5P_^Rr|OUX%A6RMk}GyQ8@FHWE4rY7DUG}5-7e8}UA2F1eUQ(|4K67argqDkp?R>v z)yR4WVFA7WP6Osiv3(4lnr*Yw1g2CqMnP?_(5BaEb8GkbzK=KWc>CY*w`d;-|M$WY zM#(0UTTOYY6g9U)VQRTcyS4S8AVmhc&q+EwWhVHZFu^*FD!$2<1lbyH!R(Sh^?t@4 zJC@PpPs?7yH2brkVS3QHcGiw}+{cimvSk*@7Fu9s4uVpms4%|(uf^W8vhL}c$*9X; z@hMsDHqE9SL>wQ+{GAX{CMTybhn}g?@gDZ}w6}1+VQ5pzaK$TfsK@5lmZa%5umJ64 zEPmG0c%VS2nz`rY)e4`WSVhyF)~wKe=*5dKiv$@;5o%_FA##iI-1TvMl24=RC;6AI(d z;`B!ky?A#satyc=&n0y{O2+NJ41R_IfKYZvXh_-}G+N?Zo96ngtQ$2M z`>i@_#pB$Jw58f>Rsqeo2Pvro zZ@{8J`=jZ z<Y9~joC;yVjZM_{#}{!F*i&xs4b6D%`TTedIG(AwvpSvJoz1{dvT^sZ-~8uG zSX+6-TU8rlq!-6WwF9Bp5Kl4N`U%dW`2^zek98`HIVU@3wRx&v7N8Ws26sc1j!4039a}yA= z%JjUa5{npCekNQQPZ7)vOdet6R^WW$KeUEou7`!l^-(fGDGq95FP{=Dg$i3xYCRQM# zH)-|4OqcAXukg&H2Sn_&eSdg=0@l5R9?Cg1YzuxV3;?h%@^JDm$*3V|1&I)={#_2)eDUw?Xzqt{9YCyJ!D&_H_>8- z*Ly}Je=Z|j=w$jkwN-RtwmHNvp1ioN1NnqEYLh)qPW@DkK6{t#-I@8;Iv&$>S}tbb zt#w{?Lgg;zYCumQW7OzmSHxs+Hf7vc{uHO!*V|#8Z@$V+w?CwMI&@fHkUKpx>+yb= zS;Qx>gfAD4Ca<3C+8dN4j?kQF@)iY))U%GtIx_~qkUm!>>$ zx5r_#KK&G<%YqK#2=OFfDksB&L8HEC!j`T1JRlw9ZCA8**|;eJqWp4_)6wc`W$@O6 z{=;@X>O`&Psie1<&lO2F(VGvHJ->+{%fwQEj=(9#I-AUGpB{8cAVOb;j(t^txs*WX zjiF(q#_VEPFAd9X@x=7Xp#I@bnSPRTAq~^(q35js68B&I%aJ0nBaEf_PNHxRz55sZzS3(oilbC&s2Zv8aqrb z!QXNl)aufcOq(nh1a4ViU$M$Hxiq0d+SDfgF2B>v=D0;a>ZB63nb(j7H4Ww|ZcKGx z?UyU=*s|5>EriZW{(C|`B<;}!S>p z0N<5`HKiQ4KSo40A(?Ct7Xt~Fq$-*r13U-|A zY+Q}%jDynrONtw|QR|lqedKjN&i@3-^taM%4^Mex75|>r+8MTh!w^f>DhrEBpv7H8 zB8YmN=r8*%#>L*=5AVm)e^MJ0Zyz)ls&wi^P_3*nC( z^Ym0Y3x&#obZFj24}w}b;fMIo>_jFblqeb?!NT6(=~dIS5s0svvY7}`w~z3m8SH91 z8>!(sEH#(wXenf!-*@*k@6E%yhNNW6JI5x=`TLF}cR_&JVzS*E_DP4&A@guMfK+)! z(vEaJp6?B(8+9Dta9GKbzG~~zR05^qQz6Kn_mYhq^L>cZm_pQj&HzWp>KP@5y|!^M zlJn*HX&$83;TN+KGy#&l`T(J}&2zKVT3#G3Vczf5K~`!4I4yX$RYzzH7Y3;=+ln||Cv@Vo zrPUFvv8Ke`(#T(IZ=>4@(LL%(5ToH7&=cdjwGCv`D0Do}C~yueE`PR^g*D<0>Evp` zGOjZIk>2deE}!gv?)0ds54vh*5n=9b`#)bcO^UCLD6;~f<3)YVMfTM?G98^_ihcIQ zSi5_BpX6%1EPrFVrOs!xY?4yr$W`c==P)>&Y>5op1o$N!T2Qa4SCs{Ab+!5TH4TxR z&|y@K?vy1CNK)7}Ga;dx;};yK`xXniY5m6x`UKbBL*6icfHhHMZ2qLACHebDeI0|+ z&nenBpMNh|7tbUSqnlrln?0evzRG(2KCzAt@%4H^3tuuJD^vSg-;(s1Osx%+l%l5+ z4CU7S0fni_Qa+*m)@PEF7XiDriV%E%e>!;NU{lYo8N}!?eXVo5(9|LC@?xR8n>wcq z56azyKi5=|CD$61WQ9Fi3H{_(wa{nP^&|`$i}$Uv&JpvktST3f{0+cD9wR(oa`_4D zhEiLu@gVufx#4(6Pk`w+NpDf;4Rp|7`FyyUdi%w|!-`&}rNB<05S?cAzX*X6!Odswl)WSmhlwF2;T{w;`u#Vf}O^ zl!4J)j=rq$hXXf1%xEiR$8Leim|AS>n{R`RS}_f*^|iREoD4Kx_eDwQEA%JWD?(9& zv8QBytj|^|ZB9}@AE}W3Xw`-7#-Sww)nZS+q8F<=d7U>SSrZYW-vPvu?tX}(O2+(8f76+B9krku;JGIYzvQFF$qTkY z;ad@kYzwA`>3KM@@Xk-Yk>ETvk6HUx^#U4qk)=OumagfkDQ1uChN^63YRV2o#y@l< zNF>&_=?}1sY;H>v8_2VSFYVY<&U&hnC2m613bK}a!Av!5tr$_U;JOAax8+rmPJbnO z%($$dWFCwci2qQzh`&?AZvNJ4D#~LFFT30_UM>fZx3lwbc75?YfU2kO0X?Vx4)kVX z#FI%brsrikq=AbZ_^8nxd$E{=g~&ad8T_;iT%-tmH+!za!!Y`wu|tVqsuVFpEQ42C z5`u`9KF{#+>CpE5nYg!>(;#&_`=e?@JP=7#_pS6h9sQ6NE<`QzT$u5vI`);HpQ&q`{Qlw6y?!O+WkH7PXjFSE6c>5e9X zCx(5=$~N}%2ZsPEYT7fI36}Q7x!9hr>x>iGwhA-D_}MhTcWW1v2N;t)`_s~me%s3_ zUlxcA>0PC}(({m_ui9YFksGFH5(7VPmL7Il=U1hq(0>N7K7v0x7Z#m)5(t%tc=1#| z-_^?u%4+7zpIGs~OP5X~V^vK4G&1RcE9b;Rc+Ndv)71@{Ga_H|*@M+@pft{_xSTDV zu6$!i%5G(nioKRQ=$p@q|L5uTw2srw0J;%7S#k7Nf4bF9eD;IM)d^Oq3CljCJjTiY zH1m(0lC8=1i!LPU&N$Hz)op?Xeh?icPVVn$OUlt`0uQg_>ly!z%l3yN$+h9%+Gm(_ zNV=B_FtgW5#>qO`FJ|J3(7KY0^Mi=r6lQ~EZ*&rOO8FkckwG&=CroTDRHr^}{Wjq} z)Nf6R@NNJj^iL&74!ZJEX?Gw@D*w#hZL-#_y+Twhi_!>ChyVqv8(-TQGCF71=?O&Q zNm*92cA5M5Tc@5|8$#n;r-Cz@-f-HpIpPG@LSY72LoD=&noAT4>2`lm!#@?}YFQVvVk_M+F|r?OEb zMa@d)TvNg1fVcr@ZoA%c?-s!1j09S?R+nSBmSv3nLOsCNIny7jYlWi@4`fqUZJn>b zusnbwJmfOQJ)t`@p{KAGAXl^_r}pwcd4DFsOkt`1U>P<2hfzn_u&1y!XuO`}ZXs1U zF;?Wunz|*}cNiyZM_L4dZj{vmxv#MRhmuKk0?n>-fIO*5&fv?wcv~aDG5&2~ajVm- zkcgh=F8RIAOJIFAjjPLlPGq*1L8Nls+YJ(80Zkz$XK; zAJ*{!*1y;x`Cmjl&A#(Jl4FHrG+F@3->dpW|4zH=IuQsiUx=(SM8f-yiJd0o43|k30o% zU--Y@3kd)>+W$QwY=D33e@`X}pziL{Z490?>}Ca@teW*AMY;w_ix{QF87jXK@rz7^bM#LmEzRC z%~Q8fktgeiUhCXX_2bh#zns0gD9~`G0@WmaI!a=37~Vu>z%H+Opo2)VNP&gl0K2go zi=DSU)xxglgww-ZLjSZZ2jcegK_EfD%ZszL;Xkd_p8fcg|0-4q19x8#XnOZepR{Y& z1SG^4B)%+nbv8yp-zXQ=y4c~;Klfkx1ICc+9WyQ62U3e2dmn>>sBAlz?CV$t9TJc( zoz*tkC>y zwXbz`app!RlKOZoL&oo6tjEn!OU0byUDLohdeG+>h4#dRQ7Tkf0H^P5k_U zE*<#m*@pb}eC4%(Qy`yKiu5@d5i{;G66m{EbWTh+6YbpYHnUb*=a;eESTzkWCAh*E z2Ii>JKVbm|d=Q8bFoJ>79B*6HxJf|dyMwVDLk8VG6zhs>2Wt4W^YimAXK52Jn6x-* z*;ciRqot+gb~^BXY)Z9_1R$PjqUW1M>mE;D3--D1`D7u^5{!d#$sd)IgLtSZQ2ZvX z-htwno=0Nv`jQDbIlq&={5x|psEqOm#m9*gm~u!ZKQIJ&`Rj8B4U{eA4wnV*oz`T`x;Se`rp4ce)}gZbWRk zv|(X?)CXR7J^GJ884^$s*>?6PzFZiyTF5C+LI?2LXQLG{wJPsFzJ8Fc=zlZH*Tu$Ibm@D!n*6U8nZW7w zCjRZ3$JEG8dESVK&BKTQO@Kg(b#fhnNT9jGIH@_bm2uqo>j{qQVFBWt1+c+E-U6c& zt9|!t{zn6EhOQ$95gr0laObN9BY)3F0yX%el}q3oYr%PSo|zeSToQC=25)lO#5%6p zy^c0Vh;A*$a%d#*Uv6ta5YUPy)Nzrl;%So*{tDf+?I!+1Rt$IIc-05H^4fGh6`q`( z$?M1fM@QncQCqu`_@;C7wST1ev!CKixWgfS(va@HwSyN^qn`6+&Ak!OP*!}!)pVWK zlybuhBxM2|`gt4U(x}$BZ!UnGEr*?1nKH^}piD0>P!X~9XQ%aE(U_t6G0hH|dQ2p< z6r6b(z-=zse*R%ukQZ;qFJJkU)z#J}>~)+kJ&<}|JPz05NX2+C?WNZ7itZ<0*QV^9 zSR#?%PY*a!nG&AfZbq3hF8x42Xnm6MUXt6tYDw8|8>=ww@VVGk zmS2J{CvE#M3OUQwTzQHwjvlqfIIpbss+~G@xWe{-Ih-s84ZflmI8C9R+1+iOf_97^ z>eI*EzC1WXCH90Ok;sh$Tde9#e>amJ#nEPJ#ksBTg%9)XM4`w8{r9;&e z?)waK9Cy!3hO@sr+Uqs*&NK>m_(o0<)Rq05txsLkas7V2l>^86uGs1J7v`uS={Q=M zZ2-}u$?ppQPU_q;#+pqjdPe2S3X2i#pLi;cKN(zrXYB3pp|bDkDO<;#O;oa%A<`@z z9ve> z>lh9dtjA#`WTGVv{N6irA^QO3mES*WQq^lo0a4<;(Ty}jv!8|OFyCj1bo^CIzYr>iRLHY(cd z8Alhy(aK-%{mtk`1Gy_tYyvSm(s^RZDHHo`Lw)Xf-+0lAk*4 zY%536Mm2T6L(PZihRxlY0%=gDYMs0=Xd8Jal&g*!E?e@*YnGq^G z_nI9Qv}$+Vm}a{;PKDaWsFU97-Y&GtBWM^EjJ-Qm#mkO(;hPrB2CRv#G$3_No`^*= zGS1k!zQXk=K6Sgh{;!D4Xhr~A8S;Cc;=rcqgpQ2@0d0^nV1;~7dX{;G0_-uZ_gly5 z0PBhfB=g&gqQ<@x!I>YQu}QLX(Mig6x3OeoB|-qfj)AoT_cjDLItd;mgf(+Ohskij zm$QLopW)$+*Dliwsq+>tZYM+7M6CttNwX|hJo~HfcQOV$xnW>Qsb%CX9F^)W2dM*R z?b!@^O0Yz9p9LHWSfhZ~*-xAFbO}ho#RspvrcX#f--#1Tq?{pr{)IDE1qd(Jd}n>{ zSN(tkP@E)a6G9HsdF%9H-$AU36ez#Y?{eX$y53gF(;}AZXLPCUmN|NdL|i4qF>kZI}+Gnt_}J*A)*^?y2j;|<59(W%`?8ybQ}EyY|UC^{`e zo5p0iiX7Via=t&VM-vGe`sG;qIpgL>4RG@{He=1rtYg*2`876t$^q_~m?9h=rbPOX z5`iz>O&_yy^|uavE`_Q~tU}{{#KKu8E5*WPBPEH^T_#DvP}IV;d6jVj za->ywM=9wkc`ndTne~6L*b8DevCfa*=%L`v3(KmXXqZ9G2gt?YEdTX z+By;_>q(>rHLH3oG4=pBS2uy0tiW10)8PJ|U(5QR5lmv&^q5}n7KD5)($yLwe=TjV z{4{tGeI&f^*s^ii_23zb6e8}7`<{{FkHjyglZ*TMg! zxI}-)Wg0mfGBBa24E`VjJvzygUOb{x<$vjd(VR!vj^R_&wBc>yapfa1$A3thDPK2N zSjA96_Zv?uGf?6pLp+s6MCCKGp8Z*6JjA3s0|!6~&QZ1JD5iQp!srjhDDC`fcrlC*zn1S4E7}0F? zr4juXhvpX_KgVdy&W2>F#fizo*TmiAGx(@~$L|UM183xo`7|3Z4YwHA8-du<)!-bc zFui6|e?Z+f`>8>9kFrB#-tK!!E#JOFKMHBd?sIjX+z!(2`)B)otJ%hub z4_}wW;ce}m6)=Mk6f8;eXwBitq`lQrdp75eWk9JE|5AL2ET`;v(!)o)l9dBNkAUJ} z{=ijRGf7%(-HPvfAuo7c-wE{&R$ibf!KayIxK7eBFg9ZNg3$`o)+XRi_m$iYjXGBZ zc;R*rVr6#>SX+c3x;rjEC${P>7sqtc$);b{x;FPIm}s@TI~SxJA29w+xMQ>_k+|aC zwA2wpvKwDt>Vm2&MU4%Ie({tZ^)25`q|MYI{f=!-^?1X4ElooKY5LTagbOcN(uqhp zd>ao(v*`z5-08*d-BOsG&FA-_y=a=0Z8TtYI^w?+n{|%}&CAQ9Z}v7#hoMMH1RK&P z2tb3+1+=Z5(;O1#43)N42sZ^kDJRfuuDKbwfOw>q2KaP<1q3h0{MgtAwnT3Irx~0{l}MU zRD{z$H2uh7xW|HJ(t^*7+pW>4HN2a7ps7m2@rA)jP@9x2<#pAf0RZlh7ja#TYKf|H zu9#b^J=7A^8L^x8nr^Gw_cr=>rXbY%##5X}`tKhSu;7(ZiqQ9Tdd2}r-31`f>eJ=? z>RYbO*EzS#an8twLupyX65;@dKf&2+h@Gjo)2Xs2b(S*&fVrP_d43blq%p!a`LjRE@SuF&YV(SuW-u+tbk=0lY$$=l(;? zaRSyHPU7(#jqV+gr(GV*{icdqadvHA|G+LMqrZoXj^=(eczjcP6TjCTMjr6Yu+Qz5 zdb}f>mMMzNQU;cQ%pY0Te+wW2pzsJXUy$x#{ckYy6%Xy8WZUBXcUF~)i7~(Z2_Q*C ztf8e;7r+HnHu}?qrgZ{b`{&slz39k=RNQk-_q+5jt(N(Y>edH&`I=Bd-7Aq3Y2T^J zEIVg)BnpL52m_&{$afYHoObkqck1@1jsU;y*8cS^-VSE?oBs+~i37O>LB*CO znHA1=MCf-c+vcuHbP8(C`qv9B#h$j8CzTLC4-fr4e{6u`Lv7(q=lr%voJo>cjrJXY zuph~+E-w3MK^C|K$tdU8?Ygb*u%!72tLS6j&U$d#ZK@&v)T&2@0J!u<2@qaEKuty> z&NRN{XB4Z@MY)7xOV%giruVEaP3n6xQc!*ou&cJ_S=S|fsd48^z3deu{#G``Fxcz)gPj`pStrce&Qt>N%q=$i_9*QAc8#(#dlo~5QH1FqmZmLUhj z?>8(%MfcCIZ_|O5N<2Yeg+Bk|y^O0pCE~@?%N}A;l=g*w zC@e$fj>A+Hdyg;)}6>V|BWm(TXFZYq<-mrvNQB!ZO}*3Xe4) zPTQ`7<9JljZjv|SbWjjy*6<4+fP!9^+#fKH*q8xPL}$|LC}yuU+X+(74cKID+24EC zB@OyG^q@d)@K9VPK@N6#kwv~>L%yxikbmVu)P%Gwe94XG=xU=x2g)!;q-)y&6A*x1 zqY#|^!Sx1J;IsSvat({9hBcQAfnGQlZjY$brA)6xjD@npwJ1=rxF9&ds|eYSA;h&) zo-Z}JSX>wP`|sp~$Q{KQjbjJ{ukfd#DPm577FpK1Cv&7hYqj)vv1R|7_9^>)Ux1sr zIr_OV{S<6t)YOaN25^11l?B$X^W|dza~gg*#>$9*h_sQ9IDIu`Qr-7F1@KWH+!24f zHy6;6ZK)FQ69j6qQ-ZDaMU4EOUs#1z?O1)y<``=~%jdrS3ePpv0s?W$`*p(t*ZQ7v zSC`AIA`@HdWQF!mVu4G0li^AgFv!_6%kNz(Rfg>@%L&G3|(riG>D3w3`Od(YQFU6ZTeRGMS{} zAmK!E)=WD%m9ZjE&uDtBRLaxy%aP^q2K5PF_{`C3O zzFcevWGI;->3>GKJbeW%(5^5U@O~rgw$M;nVvxYqcX9?tP`^K3=EluM!2CNw$eqBi zIyf}ac}!cqT}F%*9p604Xqu>qv}}+*UxTYj2;K)839`P{>CFe;{?v66t)TFgYe0D2 z`(MY6I@J;{RT{&ETOTy**HLwxi+;0Jv?D=ZzB33kJZb^<&;HoYbg6D&&ed;5W>DY2 z30zijjp%_gUG$&O$!}j`3*@ZQO&r-}3YWcsmVf2G zr=m)AOAC-g8Xm!58Tc1*_s`+2+NY7UbEE%&9KRfSp#5>q|CG0gxI5MQC*~hoGvBb^ zxGjY+KbyLnNqz~vVvEey4xNxDfAyxB)2c~Q8vv7AinjdkDrhNk(QW(|%f5Sxny}T` zmiQfT^sKX$jgb%6aEqa}OD}UR99Wq%nlU|pLS2O*3y1LsT zy~E~C_xfuam35~gpB@FN8T2EuI332)&HMlKOIH0q^si-xSkNd~QC8}lFCyp^3`qBe zSj3Z=BteNDnZ?5l*Q)LBwK*hGikDb>oT%7wr9RCp5X!mxmX?Es(n*Eb$UE8R$`Mer z2BhfC^sj4(P|H{gKhE7oLl5HmUqaNny=Ohds~O6@t|NTUT=IkN6kRk)gnow`T6A8z zqxGc*4#j_d7zDbBcm)J_+(qZhxl!B9?@JM~H5lOxN{-{>c#NfmAo|`>1r(|@8+Iry zS6cT+kf6jb+2wJa6nBv^-;(wSDxfGP?QCHIv`X)xgOoNj3K?H)fD7nTb8&kqPR-i#t`23M1go!0rgu=@-bK2)oO$umGy=_R+_b0wq}aR?N;B^Pkd@_xsD1faT(VpM}LE zm$+wni0KcP5*hOP-}4hVEfD}2m`Lt5@2hKU>F7D=xd;oqraoi>-~MhrwaC1#0+rAX z!j9T|lwBaRRV1Uee@;c?S**vX#k3z^NYBJ3I-#d;%jETxDQ1h^&X zj8$K%@nHF?jXFy!omlNyghyx!(2nPfsG@Y^NsH`t?D}A=)oD%ozuOgVl>hiz*6^{9 z%AmsIbuNoEaM#fwrO~9C8*_slF6MRKai@6hHF1&nPe)RpJHi(**mJX)Ige)iZs2Zv zKe>cpcwupr3F$jQRwrbY=hE!;xPK^Kzv!{`%Uh^_9Lg)1VvWS1@lt~kN4Ne&>rvA; zJtuwXhCe@UUoT4a#D$@WYCf4VZf#QVSwuS;Q2V@^0n%75FSI5+g}9vZe9n&=4u=I0 z%SWrd;VtaA)lREzRawZ|gl+!5bQ$0Bow3Et{>b%v3^ge>W`-FloyU zX=n$hYq@$T7RS+^h{kc$?54}X(rlO}_OEi_vc6fkG8_x5QNi0&R5b~GOsCwKnaaK6 z>*DPZlXRfMs1^gHs096;DW=5(@78VTa03z*n9zHKeX|($CguMr?MlO%xYlq$Em90> zX-h#?6%nfij0hAGz^W7w@ER^65`qPRXdxg%ScHHSt%?D}1r&q_WmO1UWM3{W0WUN_ z%9aI)0V2dCU_v5+Bt3(D?$iG_f6g=COwP=lIrE+Gd*64?5r!qtMuxV9sZw9=5GTFl zL?K1*t~iJPa?yCU1M`xckzQe{Ibd04wRz6iRh{EB%rrN9Cs-3%4i*G;*CmDZX-jn9&whx&(N;z zUo?0S8{|-3pYr~2_x~7(kR8LtgcpF-Zf5mBbM^pIvG|l*#mBW3G=bWh!#6H7ZPohb)uwL~V;pLMlfE3Xy~EE~ z=NOUV--qjeSU}j7(nAY(9V!bqGZ+lgPi<2iUCrlJT^Kd7XpK5Y7d+VjAI8ML;9adH zdaAm#l&EMd)?uxaw-IfA=IKI0soK;QQ~tk19oP4`dMC~Htd-M%gPJDYFzmCyJ>igU zL_W&CTszHH<;n*RPCuh27)oN(aH97uA@VMIL_30R|5P1;q|O*KNUH?d>q3N6Yy8rT zj5fOZ!waTBgUea;6-FRBjG|~BW4ZI*S!gO*gJeYhh?;85=&z(!LF8-U?gHBKMPnoE zRu)$3CGW_cV&~2NJfmYD(4IJdV*rnp31{7jRAP(vGp8gD87)lBYC1z%}*@ly^f z>d{_?U1HmX%miKifv+6D6HDZ}Sjon`4Ut=$`8|ab{-;lv+Scuv-ZP%qY&h0p>^2v(F>oJ zopWS^aK^7iHZOY&sZy3G#a3@)pJE_4tw@K6KR?5Ux#v_z4XyKnbDDtP^YOyJWqXE6 zzlEckrx(Yt#Et{q1%pA}KP75rFsawLORf8hLr(S}iIr|Y?j6=u?ZXyaveRcvmtq!X zzKFl9K}@#u+1;L3XWh-1cdcWP%~d0ePFXO# z@-@Af;AG*4fF}>c)gCmsT{AMMbYXsA z#X70>+!N;!^i9mt&naaMN;2r95kp{hl4Qd>TnthWy7rp{XGeDOVCLrsYX$ip)40O6 z?vShfe!1H%6#LWp&{pH}4ckWw8v?rdM-~Po_&^zxK|%|8^DodLaD78C(d^l=N7;!d zYH+M1stp_<24avzE_$UK5YP!0nnqP!)?<&x1=y+fmZ!FVs_)-yxaH!30~n7gpJxEM zCQIbJF*5zfg}j+~UZ8Gr@~{<+&qp99eH#rW<(xH%7I$ep?3=ic;_tQGs+0X>skz!m zeZJmk{6#z6vXL1fqS3|C7cL>EC(-Pkul~tA-gLu7K7~I4vYCA>R0Ege!Dto)R zZ4M*XpTGXznwIPzL+v0Xd80M5X4QFa-dxVhnU_`*@9X?wN-cV{Iy{L> z_XO&ThC3OQt;zex^Bt*n!iT~2KQ~EyoVd5Kq z#>aqtuv^!SAkM$r0_2+nk=84S9ruHhV#vk-OVIIyBN%1tD}L952?&7M>s)4EfJ>32 z5!y&KfRbKVDtde={s2FCApFoaV1@NUv_A}HmvN(nR*#CCCo0Hkklk7PbItShzJsD_ zGMWAk;+>s=_6Zc-nqb@-jV(I3T-+4B2C=FzXRp8a>ku+#$3 ziGly_Z2)QA!_rdMUn0yE!~TG4A{600H2)R~**2h1FQj!)_1#-Cp#okU5q6&;a1~~; z(MBH|MfE1%T;B5{4d@o3}G!(v-n}3kqbDZd(UWcCsV! z%_7CUnJsfVJ~Z$;!uEpn4-_u+O+nO`94+gzT@454x-p;jRO17px<2$Q_uP8>W;C!Z zn)~K4beitWolpy?mmy~X+|&A0ZS_Qe3BFqJ-c^s&ew!Q7lK>rc47eNsmc&DfACng^ z{C>uM1?Q28OUIzh9aao|xeA)^s_%1i(+c6#W~P}M~qHZIaV}DIlzUEwk3!|1%g=cZ&<(X=i2Z4(t)r9 zuKVYdg?)un?M^@n43VT=VER2kzr)s*ZgV{l?=;G|-J9pl#*VS5mq^5#ktGIKsS(^y z2T~mw6c@twK_8jJQd{o&ju8T;JAZv=r^&~_rlQr9LGrwDMZzI{c*Py4cmIDsHMvR+ WWy&_6BFinIn%s_g9j!SMboDRGVULOc literal 0 HcmV?d00001 diff --git a/packages/stacks-docs/assets/img/logos/so/logo-br.svg b/packages/stacks-docs/assets/img/logos/so/logo-br.svg new file mode 100644 index 0000000000..55a0f055d7 --- /dev/null +++ b/packages/stacks-docs/assets/img/logos/so/logo-br.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/packages/stacks-docs/assets/img/logos/so/logo-community.svg b/packages/stacks-docs/assets/img/logos/so/logo-community.svg new file mode 100644 index 0000000000..d26e2f39b1 --- /dev/null +++ b/packages/stacks-docs/assets/img/logos/so/logo-community.svg @@ -0,0 +1,22 @@ + + + + logo-community + Created with Sketch. + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/stacks-docs/assets/img/logos/so/logo-community__breakdown.svg b/packages/stacks-docs/assets/img/logos/so/logo-community__breakdown.svg new file mode 100644 index 0000000000..1582354f76 --- /dev/null +++ b/packages/stacks-docs/assets/img/logos/so/logo-community__breakdown.svg @@ -0,0 +1,41 @@ + + + + logo-community__breakdown + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/stacks-docs/assets/img/logos/so/logo-es.pdf b/packages/stacks-docs/assets/img/logos/so/logo-es.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d89bfe296fdd7db4b37ecc7dea72c70041a1f226 GIT binary patch literal 16452 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 literal 0 HcmV?d00001 diff --git a/packages/stacks-docs/assets/img/logos/so/logo-es.svg b/packages/stacks-docs/assets/img/logos/so/logo-es.svg new file mode 100644 index 0000000000..3766bc8911 --- /dev/null +++ b/packages/stacks-docs/assets/img/logos/so/logo-es.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/packages/stacks-docs/assets/img/logos/so/logo-jp.pdf b/packages/stacks-docs/assets/img/logos/so/logo-jp.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3f80840e49c02cf5a77ec27c0f7662aa09a86520 GIT binary patch literal 16805 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 bm?;0A!Z$zsSh#W%Y@MHe@{_;*$KU)f>3;Y< literal 0 HcmV?d00001 diff --git a/packages/stacks-docs/assets/img/logos/so/logo-jp.png b/packages/stacks-docs/assets/img/logos/so/logo-jp.png new file mode 100644 index 0000000000000000000000000000000000000000..300efdda48896a0865d16fd60a06161acdf9865e GIT binary patch literal 39406 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⩔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 Lc&6&~)tLVS{<&X7 literal 0 HcmV?d00001 diff --git a/packages/stacks-docs/assets/img/logos/so/logo-jp.svg b/packages/stacks-docs/assets/img/logos/so/logo-jp.svg new file mode 100644 index 0000000000..a8b6c78ef6 --- /dev/null +++ b/packages/stacks-docs/assets/img/logos/so/logo-jp.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/packages/stacks-docs/assets/img/logos/so/logo-meta.png b/packages/stacks-docs/assets/img/logos/so/logo-meta.png new file mode 100644 index 0000000000000000000000000000000000000000..303eecf4be9295faaf9af24e707388b0b30f3fd2 GIT binary patch literal 76649 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

-VrTv-yng3mFxB_CisW>80D7HTQkpFgl0=}+!v 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%0D^iw+%Wt*?ww^Kl7qa!! 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 literal 0 HcmV?d00001 diff --git a/packages/stacks-docs/assets/img/logos/so/logo-meta.svg b/packages/stacks-docs/assets/img/logos/so/logo-meta.svg new file mode 100644 index 0000000000..e63d3d049c --- /dev/null +++ b/packages/stacks-docs/assets/img/logos/so/logo-meta.svg @@ -0,0 +1,12 @@ + + + + logo-meta + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/packages/stacks-docs/assets/img/logos/so/logo-meta__breakdown.svg b/packages/stacks-docs/assets/img/logos/so/logo-meta__breakdown.svg new file mode 100644 index 0000000000..e426e87dfc --- /dev/null +++ b/packages/stacks-docs/assets/img/logos/so/logo-meta__breakdown.svg @@ -0,0 +1,32 @@ + + + + logo-meta__breakdown + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/stacks-docs/assets/img/logos/so/logo-print.svg b/packages/stacks-docs/assets/img/logos/so/logo-print.svg new file mode 100644 index 0000000000..b707cd4ec9 --- /dev/null +++ b/packages/stacks-docs/assets/img/logos/so/logo-print.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/packages/stacks-docs/assets/img/logos/so/logo-ru.pdf b/packages/stacks-docs/assets/img/logos/so/logo-ru.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c2f2c8410631d5070a758a872ee8d602ef939bd2 GIT binary patch literal 16850 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 z z-StH*7Q)2x&bV2nfbRXBDSy90c5JCYJ}mDz2OY>!(RZtXV>^CsV_Szw8zE_oq8Hm& z(fSFqIFI*su)c>t1Vz5@ad?1G?)U@2?!8Nu$4*AYVxG?bPU7z0m0*W-$x+8}(fNub zizh(Rxn7$xb1A=ncV?R~+vD(?KZDX&l%r-C*bHt3#5sT_040LfjpGxUFRJ3rPV=SW3L|Ddmg*l*9SW2AzqU>{(TTe9s z&;J%MDEcG{KPwaBh_OR4o$^2Bv0!zhQNIm04IBEE^$FmKzU z2Z&PpFE)kCzmw0dp!S!Rjg}KekH9?fWD5ws08yst_jaeQF0J)~Ca7CX<_JN;XFf+o z!-C=)_4EV-<84Mg;@(@2z@JnD6!kWTtmnsc23(JQyC;k& zl^K?aXnmkY8-OyauZFSZPl{rw0Pb>aKNLUnn|Q-}p1pWe!?p4Q_K%ad8o#;Sd0hT>B<24={(}IQkiDi=AIT>FC8L zMewgztBFE44jJ;e`QVbd{=3GNX~;T^6*W4+a6c7Jf-i1B{^*_15vX3IW)YR-Vo1{+ zh4?oHSBWB$Q^j1h=h8+BsDP@#3$TsXdDk#>n35G#48Dn?>h zj?+h>jB6NB((xVZlVJlMZm9JN!1P*K46g6#p}P{Xman= zV@L2u%J}4@^Y6AUB&BjbXBlRuhM(__)xG~XDT67`Jjo1RPK=Eb>T-2~tpf8Ch|X3_ zY*i1f3B7la`FN5X0AB1t^YJ3fzHCpV&j5RG+Jps|rZ!>z99V$JPXJJ4ypOJdpo~v^ zMq(1@j1@TQXuRK7Man*b#il2SQ2XjQ+ zX+TAWVcO%=_hIY{<+nb7jOOaFnA*GUA2{9eYCca`MAo9vRknH+WS#JgY}fgJAujPr(i86;o!Hn2OW2;WPn{N~l$hE0O!vT@tr6OF?t5 zG|7W01rh^qe=?zuqFHxi`SIQTfOonnSB0F|2{Y<9rUhM9lq{wfmAK_e5}W!^cMoX` zc_;YF(#V-M@YnYS-nM(<-HeloJi`P2X0sN#{HRRMnHtdi6Y3zG(7Xe8?+&L8d zBo-N}fEiPYsh*NfD0j@>)5;(jHE4EsIPJPojo#*>yAZUo`seqlAhYMyQ8h8}PkguY z3Yhq|(p7iy!An}^6a4?$&3<$8Q%fM5!?P)?k;MRhz3{=0-SYbPC(cYxywF~2BV?~yicgu!@z16|cfDWqq^e1Sq$@#RTQvC#?eVdIe z6gnInuHQVnJoh@Ewe_kh6cDog&rdd|DT$e;k zOXX|VG`-blYHnQ@Oxz016j92r%oM$57G?^TOGb)GxC@nA<{pMu5J;^c5iL#0*zO$a z{srGJ=ZAUEoS8E-XU_9J?=v%{h})*crH~7b*MY`yYH+U06B=^n7w2p@>f6vJFL1ci zfrIhzP)3}xhS{x{L03|OEQ8~8$}MVIlFyGkk`=^$NGM(u(Xs2hCqMH-pW=v=*QkMB z^|~Rcec?=`Gp&xI37b43bfwAlXxipCwEElj$Ip+pW;b@hApM3%MUECklvM@q7BX9|aZPgdAl+VwFAYSVig_2iWZ$D4)h}wq)>| z^#lp5-*ke9N%o^VqgYd{YhZ)l=NmB|kFPvi=Fu=I#Evt1QM=bo-~c6Bz%e;pGia#% zoRZ_dx}0kgs#ng8OpmC^3GD2yQk>}1(1P#q8yxy_OM&A@X)e&4#0oI&Lzbyyd@k_y zA~Bem0sqqn#Ygn1#AR^XHli6%DtKzO@v$#i|n$9h{)eEovJU|Y1R z_)e!yQi)V%W@Avqy*PE=420iMpK8e5=H*>sMG8IJ-N{)%7)%PP&}^mYr;Vvne}FwR zXh`nrtlsjT&(^_qr%cL>rn~ce z@(a;xHAghXpXo3MlO zH4oD#UDmAXjhJiU0VxqMQQ74OmgPQ`oF3gL2DFiC?se~4ay!0OrRvkq(+IOdI9St$ z^%br1Lb;=EZT*$1iFOGVxG-TLWX#_NH`^-9x3R#^KitU230iSNCE{MUi_h$4)|q>v z@r~h&6MQ}@yvo@dq>%~RhmN11^RV?Fv|Orh;X=H1$K9k`?B*Vte9zWPKR&m453fMbM@nCBq7T3bc%xBFgpE>j|)N2G@I36q#Jp^AxKn3@fJY4Qzg^xb>rr&TYlO*4I z+~mAuEWl{GU>ClBikW1+dMFH#*{0EGSA}8QmC63D%kT#ub)xCdT0;=AqP^6*m)1dD ztT>cK@6O!w3VB`EuWy)p4Di#w6!~l6BX~7lf=OQ)i-=e{>*;zNaKolr{yA9sU~B0v(=5CD1HD)Gjwk0whoEC z;3)l`NS8$MOWw7`qVR|PY|kD?q;I$EUV>zY(^+TqTI||=>rS6^wH;EWcW}~-OdL~n z0<1rz>+(Az?gY5WG~So#P-QsaR#a%ZoU|xU^Sc|BxCt{eX7K|H8i2_IzbNN_9c=sk z20awSa5?T+644^;xYp{bfl<@WLEwmN3!n3BAaik3t~?l*?xb}! z6q%XqVa(ciot*+sxo?m>wV6@+t*+5&Vf(V`zn!!cTBX_j9I$?1z`pDFgXo=zOnh`s zluPd~SNv!Eg!pLbS6qyPc#C0Sej)*=)oOibC*F91rXH)EUO%B58rtX6{<&9Z?|xK} zFw#FqZDD*MQx8dd>1DA479z-XH1eVE|%T(19 zwdX=yUt2BtujRsaPvf4xb1wiA5SDF8GPb+x8_PW)=17b5 zQzivT#DY@|d3kws)0iT~&JxDYZiOT~ZdZ&&dW5!-lS;Dvk}O15=k5j>FJvHlq16&e z#({x^DaoQKbciL&5`1Sb-e$Acz}l->%?lP$R`5jK87*HvQX>VvJ2s!r*WO(u!1j++ zUZ0NTNtL+_hfhwaoW3hB(ka^Rn*uJW#7rgScbiYok-7tZJKqsW#ITg(lL98qWcF{` zS1MT@mU&0|6^8r}ZCz$jGG@=XsKL4^8?I(oyEabrDdr2`!d?>@GP#blpMvSQ#!67h z=kI_sPvfXhFUTj_y7TmIy->?DSn=Qa)jVNN_Eh_8A4q#BI<;jC0-!8 z_h1RvU&WYs7M=^Iy!FZ)s~vmEH4Bns=pSyArv9EAZx~b!M{&{b?H}8&g|Np(Agzem zW8P;$XuB)aZ|;y*kTMP1Cu^|4+2&DX+7dVCp3?71F(aB^y*F-{wgLP*VBd}aAivn@ z4xaBA?BBTxWAxq~A;DcVs$`#lLw49oW3Uzs=62BZK8YWa9sfq1_zM99GVu2t(Xn6^ zo~cqH?IHxK#Zver&{?nnXG(vq9Kw!zY_L%HfxA4HZm8Lu6JSP}4i z1SG!-eGdg0{tU-*!~lAzX&xA|4^m(~`VA1hDRj_wkh;WAo#&?|^_k5?+p|GH_CV+d z2D=KeI7k=o5c;GGE{m=JM78}IwPodgbsd>2jF`Y+Chk?o=CEGFKmPJJL!4#2&*hT2-UYt)&@N7S|fFs{M2 zcI=8}f-@yeY%dv64Ol@z%bLL=?9@#>@f9htW^SuijTC@PTCI-SV5ozhD&uy z1*mjV12U1Ph~oyEpfL9dW8qF*brEi^P|tj$6(o4T{)v+xY zo&!x7Q)8#{I9+MqVg0MdFy6! zJQ_yrYszI4%CMkmTPX@BMWsx_v0F2ez70k)?TUN$t26&!m&#|#B#NH(U<3 M;S+}{4)|aF2bQD0@Bjb+ literal 0 HcmV?d00001 diff --git a/packages/stacks-docs/assets/img/logos/so/logo-ru.svg b/packages/stacks-docs/assets/img/logos/so/logo-ru.svg new file mode 100644 index 0000000000..fd3b1c6fe2 --- /dev/null +++ b/packages/stacks-docs/assets/img/logos/so/logo-ru.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/stacks-docs/assets/img/logos/so/logo-screen.svg b/packages/stacks-docs/assets/img/logos/so/logo-screen.svg new file mode 100644 index 0000000000..46825a8a39 --- /dev/null +++ b/packages/stacks-docs/assets/img/logos/so/logo-screen.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/packages/stacks-docs/assets/img/logos/so/logo-stackoverflow.png b/packages/stacks-docs/assets/img/logos/so/logo-stackoverflow.png new file mode 100644 index 0000000000000000000000000000000000000000..0cc8969f9fa98ab15bc7e85809304a35085127e1 GIT binary patch literal 74599 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 + + + + + + diff --git a/packages/stacks-docs/assets/img/logos/so/logo-stackoverflow__breakdown.svg b/packages/stacks-docs/assets/img/logos/so/logo-stackoverflow__breakdown.svg new file mode 100644 index 0000000000..2f6631e1e2 --- /dev/null +++ b/packages/stacks-docs/assets/img/logos/so/logo-stackoverflow__breakdown.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/stacks-docs/assets/img/logos/so/logo-stacks@2x.png b/packages/stacks-docs/assets/img/logos/so/logo-stacks@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d283cadf344dad03fc55021c65772a31dadc28b3 GIT binary patch literal 12207 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 literal 0 HcmV?d00001 diff --git a/packages/stacks-docs/assets/img/logos/su/su-icon.svg b/packages/stacks-docs/assets/img/logos/su/su-icon.svg new file mode 100644 index 0000000000..6247da7911 --- /dev/null +++ b/packages/stacks-docs/assets/img/logos/su/su-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/stacks-docs/assets/img/logos/su/su-logo-med.png b/packages/stacks-docs/assets/img/logos/su/su-logo-med.png new file mode 100644 index 0000000000000000000000000000000000000000..a1a48626c7f526ab841e5de2641bbf0deacc236e GIT binary patch literal 2393 zcma);c{J1w7stmMT5OeML_5D3I}{3%O& z1VRAj*9l@m{46_p9>oXA&e{>nCy&RIl9K%2p;15ip8|gSe+GYwuXI2{HT+A;A@(*7 z2t-_`>7taU_JDHPr#QRd8x5wNQj6N2H$K@llqm-fXh?jQK_J8u@Rnwd5gzj_Gid~3 zn_&6vSc=up<#NIGXOI8 z27NYnB)#X+&363E7t?exb8{m6JoX`FwRy^8y=|_e_(wjg0sU#86+~@Na_2g87=;b2 z!I#G9O0S$4GR`3@ii`sfwG6%=fes}eR)Yq(caD~BH(*(F8TkkGQ&3+AbK1s>eH5S@ z#Y7IHZWOzsx;{8enehL-54va^)tbW0TZznyAwOH-uXC<*xvLKpumPVF=k^qQY z(F)RIiT2c77Jc!@I-*8H8ccWarlE52fl=n6O#Y7ME5dr33boo&1Z03zV3Rn4Hr z=TzXYyTJ0yqDE{C^^tfU>R_(r9vw1)j5;H+|6Yl+!r1EjMgLq_WmNHu)3Ixs80~X6 zDXW}u$y0%qMWw*packPoU&2<))>lmkKEdi(Pmh|kaAV_QBT>T#_P1jl4&r2U--`9+ zQ(jr=)EutP0JJ5Ck%2)r^}yP$1wY_cd}KP)qgGwBu8l<(?Utc+Ig(T_ZOVWnUGulS z49AKJQphMh5KIpUmQPd}B|B$7y?x=qmLn7QbAb{{*h3uc&d+I{th{xfZccsm3ACQ} zjgdztm~hwRc%aq8A$YcD)FSWgD-_E*^d1!rnspO>UO}GR1j}FJM-Q7>SU3!rCyDh< zp@TXt=qJcV0)8f7fFGjr(C)ghT6QXXChw})~S~FC8^_%&fXGpZ0-IK#QkUmxo4lV$CHZSw8 zt((`^D#(1`MIoUQ-`zn|M~f{yTNc z9V}_ckJc*}7LS)Nc?9UePts2m?{rhx^#3ro52{o4TF%Lm+SpA)K^qHb+YUE8Y14^x z1ia^-xIn)88{lR}mK9vnzzM(Dyp9g78KC(lbc*Ck>YIlEvlC{atSBcr#x z*D&JuW(E|y+Tb)3Dp|cVJ2IU!%=YJK!*-c#pFuZnmg9~8ywguU3 zZ7W1{P+d=$8g3nf{?!|}84bB{O5IDxVz$GN9skHcsf9_`lh{hN@|K6@q+qYB0jM9z zXlcTyXzg<~l;erK`Vvy*JOA*HFQJ^-lx0Mg z{1^Y!?fq3}W>u($Mlv?b#PgyGL}W3i?;Dx)!yG$spsg3E<(}kHb*BzgP-3J)Tzc ztvfmd%VAZ<=ewZD-sQ0G(Jl(v##&U)2zd`!w*Q5%MU#)Kozvr_SHkFvh0Iw$!E8yV z(e|?|zITDTV*&+tt?5XQwu2MDF+o?H``*v0T%gDHtVfmdCZ1B z$t4UUz3a=)L|_tIWoj64*|d=p7OvKT@*u14 zI+IMoIiPhb>ne>5nF0ue7ee$8cs?%tIsLWyC)i$C@4uad!M=Wh;NkKvQ@(RS;ITHA Jcg#H#{s9CIcVPek literal 0 HcmV?d00001 diff --git a/packages/stacks-docs/assets/img/logos/su/su-logo.eps b/packages/stacks-docs/assets/img/logos/su/su-logo.eps new file mode 100644 index 0000000000..886ae257b9 --- /dev/null +++ b/packages/stacks-docs/assets/img/logos/su/su-logo.eps @@ -0,0 +1,6050 @@ +%!PS-Adobe-3.1 EPSF-3.0 +%ADO_DSC_Encoding: MacOS Roman +%%Title: su-logo.eps +%%Creator: Adobe Illustrator(R) 14.0 +%%For: JIN YANG +%%CreationDate: 5/12/11 +%%BoundingBox: 0 0 443 98 +%%HiResBoundingBox: 0 0 442.2369 97.4356 +%%CropBox: 0 0 442.2369 97.4356 +%%LanguageLevel: 2 +%%DocumentData: Clean7Bit +%ADOBeginClientInjection: DocumentHeader "AI11EPS" +%%AI8_CreatorVersion: 14.0.0 %AI9_PrintingDataBegin %ADO_BuildNumber: Adobe Illustrator(R) 14.0.0 x367 R agm 4.4890 ct 5.1541 %ADO_ContainsXMP: MainFirst %AI7_Thumbnail: 128 28 8 %%BeginData: 4962 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C4527F827F82727FFFF85366160FD74FFF827F827F827A8FF5A613636 %3685FD72FF27F827A8FFA8FD04FFAF5A3714A9FD71FFF8F827FD09FF3636 %36FD71FF27F827FD09FF85363D85FD70FFF8F827FD09FF84361485FD70FF %27F827FD09FFA9363784FD70FFF8F827FD05FFA8A8A8FF84361485FD70FF %27F827FD05FF52F852FFAF363D85FD70FFF82027FD05FFF8F8F8FF843736 %85FD0AFFA8FFA8FD17FFA8FD09FFA8FD0BFFA8FFA8FD0BFFAEFD09FFA8FD %0BFFA8FD09FFA8FFFFFFA8FFFFFF27F827FD05FFA8527DFFAF366136AFFD %07FF7D2727F827277DFFFFA82727FD05FF7D2752FFFF7D047D5227F82727 %A8FD05FF7D2727F8277DFD04FF5227A85227F82752FFFF2727277DFFFFFF %52272752FD04FF5227F827272752A8FD04FFA8522727262752FD04FF7D27 %27277D2727F82776F8F826FD0AFF853637366184FD04FF52F827275227F8 %F8A1FFFFF827FD05FF7DF852FFFF4BFD04F84BF8F8F8A8FFFFFF52F8F827 %4BF8F852FFFFFF27F8F8F82727F8F87DFFF8F8F87DFFFFFF52F8F827FFFF %FF27FD08F8FFFFFFA827FD06F827FFFFFF52FD08F82727F827FD0BFFA936 %611485FFFFFFA8F827A8FFFFFF7D7DFFFFA82727FD05FF522052FFFF7DF8 %2052FFFFFF272052FFFF7DF827A8FFFFA8F827A8FFFF52F8277DFFFF7D7D %FFFF27F8277DFFFFFF5220F852FFFF5226F82727522727F8A8FFFFFF52F8 %27F8522727F82652FFFF7DF827F8272727F852FFF8F827FD0AFFA9363736 %5B84FFFFFF52F852FD09FFF827FD05FF7DF852FFFF52F827FD04FFA8F827 %FFFF27F87DFD04FF7DF852FFFF27F852FD07FFF8F8F87DFFFFFF52F8F827 %FFFF4BF8F84BFFFFFF7D7DFFFFFF7DF826F87DFFFF52F8F827A8FF52F8F8 %F827FFA852A8FF27F827FD0AFF363736AFFD05FF7DF852FD09FF2727FD05 %FF76F852FFFF52F852FD05FF27F8FFFF2727FD06FF2627FFFF51F8A8FD06 %FFA827F8277DFFFFFF2726F852FFFF27F8F852A8FD07FF52F8F852FD04FF %2720F87DFF7DF827F8FD06FFF8F827FD09FF84363685FD06FFA827F82727 %52527DFD04FFF827A8FD04FF7DF852FFFF52F852FD05FF27F87DFFF827FD %0652F827AFFF27F87DFD07FFF8F8F87DFFFFFF52F8F827FFFF52F8F8F826 %F8272752A8FFFF52F8F8F852FD0427F8F852FF52F8F827A8FD05FF27F827 %FD09FFA9363D85FD07FFA852F820F820F827A8FFFF2727FD05FF7DF852FF %FF52F87DFD05FF52F8FFA827F827F827F827F82727FFFF52F8A8FD06FFA8 %27F8277DFFFFFF4B27F852FFFFFF27F827F820F827F852FFFF5220F827F8 %F8F820F820F852FF7DF82727FD06FFF82027FD09FF843736A9FD0AFFA17D %7D4BF827FFFFF827FD05FF7DF852FFFF52F852FD05FF27F8A8FFF827A8FF %A8FFA8FFA8FFFFFF27F87DFD07FFF820F87DFFFFFF52F8F827FD04FF7D27 %522727F827F87DFF52F8F8277DFD06527DFF52F8F827A8FD05FF27F827FD %09FFA9363DA9FD0EFF27F8FFFF2727FD05FF52F852FFFF76F852FD05FF27 %F8FFFF2727FD0AFF52F8A8FD06FFA827F8277DFFFFFF2720F852FD09FF27 %F82052FF5220F852FD09FF7DF827F8FD06FFF8F827FD09FF843636A9FD06 %FFA8A8FD06FFF827A8FFF8F8A8FD04FF27F852FFFF52F827FD04FFA8F827 %FFFF27F852FD05FFA8FFFFFF27F87DFD07FFF8F8F827A8FF5227F8F827FF %FFFF2752A8FFFFFF27F8F852FF7DF820F87CFFFFFF5227FFFFFF52F8F827 %A8FD05FF27F8277DA17DFFFFFFA9FFAF85363D85FD06FF52F87DA8FFFFFF %512027FFFF52F84BA8FFFF52F82752FFFF7DF8204BFFFFA8272052FFFFA8 %F8277DFFFFFF52277DFFFF52F8A8FD07FF52F827F8272727F827F852FFFF %2727F82727522727F8277DFFFF52F827F84B2727F82027FFFF7DF827F8FD %06FFFD05F820A8FF5A363637363636AFFD06FF52FD04F827F8F820A8FFFF %A827F8F8F827F827F852FFFF52F827F8F827F8F827FD04FF7DF8F8F827F8 %F8F8A8FFFF27F87DFD07FFA827F827F8F8F827F8F827FFA827FD08F852FF %FFFF7D27FD07F852FFFF52F8F827A8FD05FFFD0627FFFF855A615A8584AF %FD08FFA8522727275252FD05FFA852272727A87D2752FFFF52F87D7D2727 %2752FD06FFA82727275252FD04FF5227CAFD08FFA852F827277D52272752 %FFFFCA52FD0427F8527DFD05FFA8522727F827277DFFFFFF7D272727FD0A %FFA8FD21FFAEFD07FF52F852FD1FFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFF %FFA8FFA8FD0BFFA8FFA8FD07FFA8FD35FF52F87DFD7DFF52F852FD7DFF76 %F87DFD7DFF52F852FD4EFFFF %%EndData +%ADOEndClientInjection: DocumentHeader "AI11EPS" +%%Pages: 1 +%%DocumentNeededResources: +%%DocumentSuppliedResources: procset Adobe_AGM_Image 1.0 0 +%%+ procset Adobe_CoolType_Utility_T42 1.0 0 +%%+ procset Adobe_CoolType_Utility_MAKEOCF 1.23 0 +%%+ procset Adobe_CoolType_Core 2.31 0 +%%+ procset Adobe_AGM_Core 2.0 0 +%%+ procset Adobe_AGM_Utils 1.0 0 +%%DocumentFonts: +%%DocumentNeededFonts: +%%DocumentNeededFeatures: +%%DocumentSuppliedFeatures: +%%DocumentProcessColors: Cyan Magenta Yellow Black +%%DocumentCustomColors: +%%CMYKCustomColor: +%%RGBCustomColor: +%%EndComments + + + + + + +%%BeginDefaults +%%ViewingOrientation: 1 0 0 1 +%%EndDefaults +%%BeginProlog +%%BeginResource: procset Adobe_AGM_Utils 1.0 0 +%%Version: 1.0 0 +%%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved. +systemdict/setpacking known +{currentpacking true setpacking}if +userdict/Adobe_AGM_Utils 75 dict dup begin put +/bdf +{bind def}bind def +/nd{null def}bdf +/xdf +{exch def}bdf +/ldf +{load def}bdf +/ddf +{put}bdf +/xddf +{3 -1 roll put}bdf +/xpt +{exch put}bdf +/ndf +{ + exch dup where{ + pop pop pop + }{ + xdf + }ifelse +}def +/cdndf +{ + exch dup currentdict exch known{ + pop pop + }{ + exch def + }ifelse +}def +/gx +{get exec}bdf +/ps_level + /languagelevel where{ + pop systemdict/languagelevel gx + }{ + 1 + }ifelse +def +/level2 + ps_level 2 ge +def +/level3 + ps_level 3 ge +def +/ps_version + {version cvr}stopped{-1}if +def +/set_gvm +{currentglobal exch setglobal}bdf +/reset_gvm +{setglobal}bdf +/makereadonlyarray +{ + /packedarray where{pop packedarray + }{ + array astore readonly}ifelse +}bdf +/map_reserved_ink_name +{ + dup type/stringtype eq{ + dup/Red eq{ + pop(_Red_) + }{ + dup/Green eq{ + pop(_Green_) + }{ + dup/Blue eq{ + pop(_Blue_) + }{ + dup()cvn eq{ + pop(Process) + }if + }ifelse + }ifelse + }ifelse + }if +}bdf +/AGMUTIL_GSTATE 22 dict def +/get_gstate +{ + AGMUTIL_GSTATE begin + /AGMUTIL_GSTATE_clr_spc currentcolorspace def + /AGMUTIL_GSTATE_clr_indx 0 def + /AGMUTIL_GSTATE_clr_comps 12 array def + mark currentcolor counttomark + {AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 3 -1 roll put + /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 add def}repeat pop + /AGMUTIL_GSTATE_fnt rootfont def + /AGMUTIL_GSTATE_lw currentlinewidth def + /AGMUTIL_GSTATE_lc currentlinecap def + /AGMUTIL_GSTATE_lj currentlinejoin def + /AGMUTIL_GSTATE_ml currentmiterlimit def + currentdash/AGMUTIL_GSTATE_do xdf/AGMUTIL_GSTATE_da xdf + /AGMUTIL_GSTATE_sa currentstrokeadjust def + /AGMUTIL_GSTATE_clr_rnd currentcolorrendering def + /AGMUTIL_GSTATE_op currentoverprint def + /AGMUTIL_GSTATE_bg currentblackgeneration cvlit def + /AGMUTIL_GSTATE_ucr currentundercolorremoval cvlit def + currentcolortransfer cvlit/AGMUTIL_GSTATE_gy_xfer xdf cvlit/AGMUTIL_GSTATE_b_xfer xdf + cvlit/AGMUTIL_GSTATE_g_xfer xdf cvlit/AGMUTIL_GSTATE_r_xfer xdf + /AGMUTIL_GSTATE_ht currenthalftone def + /AGMUTIL_GSTATE_flt currentflat def + end +}def +/set_gstate +{ + AGMUTIL_GSTATE begin + AGMUTIL_GSTATE_clr_spc setcolorspace + AGMUTIL_GSTATE_clr_indx{AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 1 sub get + /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 sub def}repeat setcolor + AGMUTIL_GSTATE_fnt setfont + AGMUTIL_GSTATE_lw setlinewidth + AGMUTIL_GSTATE_lc setlinecap + AGMUTIL_GSTATE_lj setlinejoin + AGMUTIL_GSTATE_ml setmiterlimit + AGMUTIL_GSTATE_da AGMUTIL_GSTATE_do setdash + AGMUTIL_GSTATE_sa setstrokeadjust + AGMUTIL_GSTATE_clr_rnd setcolorrendering + AGMUTIL_GSTATE_op setoverprint + AGMUTIL_GSTATE_bg cvx setblackgeneration + AGMUTIL_GSTATE_ucr cvx setundercolorremoval + AGMUTIL_GSTATE_r_xfer cvx AGMUTIL_GSTATE_g_xfer cvx AGMUTIL_GSTATE_b_xfer cvx + AGMUTIL_GSTATE_gy_xfer cvx setcolortransfer + AGMUTIL_GSTATE_ht/HalftoneType get dup 9 eq exch 100 eq or + { + currenthalftone/HalftoneType get AGMUTIL_GSTATE_ht/HalftoneType get ne + { + mark AGMUTIL_GSTATE_ht{sethalftone}stopped cleartomark + }if + }{ + AGMUTIL_GSTATE_ht sethalftone + }ifelse + AGMUTIL_GSTATE_flt setflat + end +}def +/get_gstate_and_matrix +{ + AGMUTIL_GSTATE begin + /AGMUTIL_GSTATE_ctm matrix currentmatrix def + end + get_gstate +}def +/set_gstate_and_matrix +{ + set_gstate + AGMUTIL_GSTATE begin + AGMUTIL_GSTATE_ctm setmatrix + end +}def +/AGMUTIL_str256 256 string def +/AGMUTIL_src256 256 string def +/AGMUTIL_dst64 64 string def +/AGMUTIL_srcLen nd +/AGMUTIL_ndx nd +/AGMUTIL_cpd nd +/capture_cpd{ + //Adobe_AGM_Utils/AGMUTIL_cpd currentpagedevice ddf +}def +/thold_halftone +{ + level3 + {sethalftone currenthalftone} + { + dup/HalftoneType get 3 eq + { + sethalftone currenthalftone + }{ + begin + Width Height mul{ + Thresholds read{pop}if + }repeat + end + currenthalftone + }ifelse + }ifelse +}def +/rdcmntline +{ + currentfile AGMUTIL_str256 readline pop + (%)anchorsearch{pop}if +}bdf +/filter_cmyk +{ + dup type/filetype ne{ + exch()/SubFileDecode filter + }{ + exch pop + } + ifelse + [ + exch + { + AGMUTIL_src256 readstring pop + dup length/AGMUTIL_srcLen exch def + /AGMUTIL_ndx 0 def + AGMCORE_plate_ndx 4 AGMUTIL_srcLen 1 sub{ + 1 index exch get + AGMUTIL_dst64 AGMUTIL_ndx 3 -1 roll put + /AGMUTIL_ndx AGMUTIL_ndx 1 add def + }for + pop + AGMUTIL_dst64 0 AGMUTIL_ndx getinterval + } + bind + /exec cvx + ]cvx +}bdf +/filter_indexed_devn +{ + cvi Names length mul names_index add Lookup exch get +}bdf +/filter_devn +{ + 4 dict begin + /srcStr xdf + /dstStr xdf + dup type/filetype ne{ + 0()/SubFileDecode filter + }if + [ + exch + [ + /devicen_colorspace_dict/AGMCORE_gget cvx/begin cvx + currentdict/srcStr get/readstring cvx/pop cvx + /dup cvx/length cvx 0/gt cvx[ + Adobe_AGM_Utils/AGMUTIL_ndx 0/ddf cvx + names_index Names length currentdict/srcStr get length 1 sub{ + 1/index cvx/exch cvx/get cvx + currentdict/dstStr get/AGMUTIL_ndx/load cvx 3 -1/roll cvx/put cvx + Adobe_AGM_Utils/AGMUTIL_ndx/AGMUTIL_ndx/load cvx 1/add cvx/ddf cvx + }for + currentdict/dstStr get 0/AGMUTIL_ndx/load cvx/getinterval cvx + ]cvx/if cvx + /end cvx + ]cvx + bind + /exec cvx + ]cvx + end +}bdf +/AGMUTIL_imagefile nd +/read_image_file +{ + AGMUTIL_imagefile 0 setfileposition + 10 dict begin + /imageDict xdf + /imbufLen Width BitsPerComponent mul 7 add 8 idiv def + /imbufIdx 0 def + /origDataSource imageDict/DataSource get def + /origMultipleDataSources imageDict/MultipleDataSources get def + /origDecode imageDict/Decode get def + /dstDataStr imageDict/Width get colorSpaceElemCnt mul string def + imageDict/MultipleDataSources known{MultipleDataSources}{false}ifelse + { + /imbufCnt imageDict/DataSource get length def + /imbufs imbufCnt array def + 0 1 imbufCnt 1 sub{ + /imbufIdx xdf + imbufs imbufIdx imbufLen string put + imageDict/DataSource get imbufIdx[AGMUTIL_imagefile imbufs imbufIdx get/readstring cvx/pop cvx]cvx put + }for + DeviceN_PS2{ + imageDict begin + /DataSource[DataSource/devn_sep_datasource cvx]cvx def + /MultipleDataSources false def + /Decode[0 1]def + end + }if + }{ + /imbuf imbufLen string def + Indexed_DeviceN level3 not and DeviceN_NoneName or{ + /srcDataStrs[imageDict begin + currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse + { + Width Decode length 2 div mul cvi string + }repeat + end]def + imageDict begin + /DataSource[AGMUTIL_imagefile Decode BitsPerComponent false 1/filter_indexed_devn load dstDataStr srcDataStrs devn_alt_datasource/exec cvx]cvx def + /Decode[0 1]def + end + }{ + imageDict/DataSource[1 string dup 0 AGMUTIL_imagefile Decode length 2 idiv string/readstring cvx/pop cvx names_index/get cvx/put cvx]cvx put + imageDict/Decode[0 1]put + }ifelse + }ifelse + imageDict exch + load exec + imageDict/DataSource origDataSource put + imageDict/MultipleDataSources origMultipleDataSources put + imageDict/Decode origDecode put + end +}bdf +/write_image_file +{ + begin + {(AGMUTIL_imagefile)(w+)file}stopped{ + false + }{ + Adobe_AGM_Utils/AGMUTIL_imagefile xddf + 2 dict begin + /imbufLen Width BitsPerComponent mul 7 add 8 idiv def + MultipleDataSources{DataSource 0 get}{DataSource}ifelse type/filetype eq{ + /imbuf imbufLen string def + }if + 1 1 Height MultipleDataSources not{Decode length 2 idiv mul}if{ + pop + MultipleDataSources{ + 0 1 DataSource length 1 sub{ + DataSource type dup + /arraytype eq{ + pop DataSource exch gx + }{ + /filetype eq{ + DataSource exch get imbuf readstring pop + }{ + DataSource exch get + }ifelse + }ifelse + AGMUTIL_imagefile exch writestring + }for + }{ + DataSource type dup + /arraytype eq{ + pop DataSource exec + }{ + /filetype eq{ + DataSource imbuf readstring pop + }{ + DataSource + }ifelse + }ifelse + AGMUTIL_imagefile exch writestring + }ifelse + }for + end + true + }ifelse + end +}bdf +/close_image_file +{ + AGMUTIL_imagefile closefile(AGMUTIL_imagefile)deletefile +}def +statusdict/product known userdict/AGMP_current_show known not and{ + /pstr statusdict/product get def + pstr(HP LaserJet 2200)eq + pstr(HP LaserJet 4000 Series)eq or + pstr(HP LaserJet 4050 Series )eq or + pstr(HP LaserJet 8000 Series)eq or + pstr(HP LaserJet 8100 Series)eq or + pstr(HP LaserJet 8150 Series)eq or + pstr(HP LaserJet 5000 Series)eq or + pstr(HP LaserJet 5100 Series)eq or + pstr(HP Color LaserJet 4500)eq or + pstr(HP Color LaserJet 4600)eq or + pstr(HP LaserJet 5Si)eq or + pstr(HP LaserJet 1200 Series)eq or + pstr(HP LaserJet 1300 Series)eq or + pstr(HP LaserJet 4100 Series)eq or + { + userdict/AGMP_current_show/show load put + userdict/show{ + currentcolorspace 0 get + /Pattern eq + {false charpath f} + {AGMP_current_show}ifelse + }put + }if + currentdict/pstr undef +}if +/consumeimagedata +{ + begin + AGMIMG_init_common + currentdict/MultipleDataSources known not + {/MultipleDataSources false def}if + MultipleDataSources + { + DataSource 0 get type + dup/filetype eq + { + 1 dict begin + /flushbuffer Width cvi string def + 1 1 Height cvi + { + pop + 0 1 DataSource length 1 sub + { + DataSource exch get + flushbuffer readstring pop pop + }for + }for + end + }if + dup/arraytype eq exch/packedarraytype eq or DataSource 0 get xcheck and + { + Width Height mul cvi + { + 0 1 DataSource length 1 sub + {dup DataSource exch gx length exch 0 ne{pop}if}for + dup 0 eq + {pop exit}if + sub dup 0 le + {exit}if + }loop + pop + }if + } + { + /DataSource load type + dup/filetype eq + { + 1 dict begin + /flushbuffer Width Decode length 2 idiv mul cvi string def + 1 1 Height{pop DataSource flushbuffer readstring pop pop}for + end + }if + dup/arraytype eq exch/packedarraytype eq or/DataSource load xcheck and + { + Height Width BitsPerComponent mul 8 BitsPerComponent sub add 8 idiv Decode length 2 idiv mul mul + { + DataSource length dup 0 eq + {pop exit}if + sub dup 0 le + {exit}if + }loop + pop + }if + }ifelse + end +}bdf +/addprocs +{ + 2{/exec load}repeat + 3 1 roll + [5 1 roll]bind cvx +}def +/modify_halftone_xfer +{ + currenthalftone dup length dict copy begin + currentdict 2 index known{ + 1 index load dup length dict copy begin + currentdict/TransferFunction known{ + /TransferFunction load + }{ + currenttransfer + }ifelse + addprocs/TransferFunction xdf + currentdict end def + currentdict end sethalftone + }{ + currentdict/TransferFunction known{ + /TransferFunction load + }{ + currenttransfer + }ifelse + addprocs/TransferFunction xdf + currentdict end sethalftone + pop + }ifelse +}def +/clonearray +{ + dup xcheck exch + dup length array exch + Adobe_AGM_Core/AGMCORE_tmp -1 ddf + { + Adobe_AGM_Core/AGMCORE_tmp 2 copy get 1 add ddf + dup type/dicttype eq + { + Adobe_AGM_Core/AGMCORE_tmp get + exch + clonedict + Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf + }if + dup type/arraytype eq + { + Adobe_AGM_Core/AGMCORE_tmp get exch + clonearray + Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf + }if + exch dup + Adobe_AGM_Core/AGMCORE_tmp get 4 -1 roll put + }forall + exch{cvx}if +}bdf +/clonedict +{ + dup length dict + begin + { + dup type/dicttype eq + {clonedict}if + dup type/arraytype eq + {clonearray}if + def + }forall + currentdict + end +}bdf +/DeviceN_PS2 +{ + /currentcolorspace AGMCORE_gget 0 get/DeviceN eq level3 not and +}bdf +/Indexed_DeviceN +{ + /indexed_colorspace_dict AGMCORE_gget dup null ne{ + dup/CSDBase known{ + /CSDBase get/CSD get_res/Names known + }{ + pop false + }ifelse + }{ + pop false + }ifelse +}bdf +/DeviceN_NoneName +{ + /Names where{ + pop + false Names + { + (None)eq or + }forall + }{ + false + }ifelse +}bdf +/DeviceN_PS2_inRip_seps +{ + /AGMCORE_in_rip_sep where + { + pop dup type dup/arraytype eq exch/packedarraytype eq or + { + dup 0 get/DeviceN eq level3 not and AGMCORE_in_rip_sep and + { + /currentcolorspace exch AGMCORE_gput + false + }{ + true + }ifelse + }{ + true + }ifelse + }{ + true + }ifelse +}bdf +/base_colorspace_type +{ + dup type/arraytype eq{0 get}if +}bdf +/currentdistillerparams where{pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse +{ + /pdfmark_5{cleartomark}bind def +}{ + /pdfmark_5{pdfmark}bind def +}ifelse +/ReadBypdfmark_5 +{ + currentfile exch 0 exch/SubFileDecode filter + /currentdistillerparams where + {pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse + {flushfile cleartomark} + {/PUT pdfmark}ifelse +}bdf +/ReadBypdfmark_5_string +{ + 2 dict begin + /makerString exch def string/tmpString exch def + { + currentfile tmpString readline not{pop exit}if + makerString anchorsearch + { + pop pop cleartomark exit + }{ + 3 copy/PUT pdfmark_5 pop 2 copy(\n)/PUT pdfmark_5 + }ifelse + }loop + end +}bdf +/xpdfm +{ + { + dup 0 get/Label eq + { + aload length[exch 1 add 1 roll/PAGELABEL + }{ + aload pop + [{ThisPage}<<5 -2 roll>>/PUT + }ifelse + pdfmark_5 + }forall +}bdf +/lmt{ + dup 2 index le{exch}if pop dup 2 index ge{exch}if pop +}bdf +/int{ + dup 2 index sub 3 index 5 index sub div 6 -2 roll sub mul exch pop add exch pop +}bdf +/ds{ + Adobe_AGM_Utils begin +}bdf +/dt{ + currentdict Adobe_AGM_Utils eq{ + end + }if +}bdf +systemdict/setpacking known +{setpacking}if +%%EndResource +%%BeginResource: procset Adobe_AGM_Core 2.0 0 +%%Version: 2.0 0 +%%Copyright: Copyright(C)1997-2007 Adobe Systems, Inc. All Rights Reserved. +systemdict/setpacking known +{ + currentpacking + true setpacking +}if +userdict/Adobe_AGM_Core 209 dict dup begin put +/Adobe_AGM_Core_Id/Adobe_AGM_Core_2.0_0 def +/AGMCORE_str256 256 string def +/AGMCORE_save nd +/AGMCORE_graphicsave nd +/AGMCORE_c 0 def +/AGMCORE_m 0 def +/AGMCORE_y 0 def +/AGMCORE_k 0 def +/AGMCORE_cmykbuf 4 array def +/AGMCORE_screen[currentscreen]cvx def +/AGMCORE_tmp 0 def +/AGMCORE_&setgray nd +/AGMCORE_&setcolor nd +/AGMCORE_&setcolorspace nd +/AGMCORE_&setcmykcolor nd +/AGMCORE_cyan_plate nd +/AGMCORE_magenta_plate nd +/AGMCORE_yellow_plate nd +/AGMCORE_black_plate nd +/AGMCORE_plate_ndx nd +/AGMCORE_get_ink_data nd +/AGMCORE_is_cmyk_sep nd +/AGMCORE_host_sep nd +/AGMCORE_avoid_L2_sep_space nd +/AGMCORE_distilling nd +/AGMCORE_composite_job nd +/AGMCORE_producing_seps nd +/AGMCORE_ps_level -1 def +/AGMCORE_ps_version -1 def +/AGMCORE_environ_ok nd +/AGMCORE_CSD_cache 0 dict def +/AGMCORE_currentoverprint false def +/AGMCORE_deltaX nd +/AGMCORE_deltaY nd +/AGMCORE_name nd +/AGMCORE_sep_special nd +/AGMCORE_err_strings 4 dict def +/AGMCORE_cur_err nd +/AGMCORE_current_spot_alias false def +/AGMCORE_inverting false def +/AGMCORE_feature_dictCount nd +/AGMCORE_feature_opCount nd +/AGMCORE_feature_ctm nd +/AGMCORE_ConvertToProcess false def +/AGMCORE_Default_CTM matrix def +/AGMCORE_Default_PageSize nd +/AGMCORE_Default_flatness nd +/AGMCORE_currentbg nd +/AGMCORE_currentucr nd +/AGMCORE_pattern_paint_type 0 def +/knockout_unitsq nd +currentglobal true setglobal +[/CSA/Gradient/Procedure] +{ + /Generic/Category findresource dup length dict copy/Category defineresource pop +}forall +setglobal +/AGMCORE_key_known +{ + where{ + /Adobe_AGM_Core_Id known + }{ + false + }ifelse +}ndf +/flushinput +{ + save + 2 dict begin + /CompareBuffer 3 -1 roll def + /readbuffer 256 string def + mark + { + currentfile readbuffer{readline}stopped + {cleartomark mark} + { + not + {pop exit} + if + CompareBuffer eq + {exit} + if + }ifelse + }loop + cleartomark + end + restore +}bdf +/getspotfunction +{ + AGMCORE_screen exch pop exch pop + dup type/dicttype eq{ + dup/HalftoneType get 1 eq{ + /SpotFunction get + }{ + dup/HalftoneType get 2 eq{ + /GraySpotFunction get + }{ + pop + { + abs exch abs 2 copy add 1 gt{ + 1 sub dup mul exch 1 sub dup mul add 1 sub + }{ + dup mul exch dup mul add 1 exch sub + }ifelse + }bind + }ifelse + }ifelse + }if +}def +/np +{newpath}bdf +/clp_npth +{clip np}def +/eoclp_npth +{eoclip np}def +/npth_clp +{np clip}def +/graphic_setup +{ + /AGMCORE_graphicsave save store + concat + 0 setgray + 0 setlinecap + 0 setlinejoin + 1 setlinewidth + []0 setdash + 10 setmiterlimit + np + false setoverprint + false setstrokeadjust + //Adobe_AGM_Core/spot_alias gx + /Adobe_AGM_Image where{ + pop + Adobe_AGM_Image/spot_alias 2 copy known{ + gx + }{ + pop pop + }ifelse + }if + /sep_colorspace_dict null AGMCORE_gput + 100 dict begin + /dictstackcount countdictstack def + /showpage{}def + mark +}def +/graphic_cleanup +{ + cleartomark + dictstackcount 1 countdictstack 1 sub{end}for + end + AGMCORE_graphicsave restore +}def +/compose_error_msg +{ + grestoreall initgraphics + /Helvetica findfont 10 scalefont setfont + /AGMCORE_deltaY 100 def + /AGMCORE_deltaX 310 def + clippath pathbbox np pop pop 36 add exch 36 add exch moveto + 0 AGMCORE_deltaY rlineto AGMCORE_deltaX 0 rlineto + 0 AGMCORE_deltaY neg rlineto AGMCORE_deltaX neg 0 rlineto closepath + 0 AGMCORE_&setgray + gsave 1 AGMCORE_&setgray fill grestore + 1 setlinewidth gsave stroke grestore + currentpoint AGMCORE_deltaY 15 sub add exch 8 add exch moveto + /AGMCORE_deltaY 12 def + /AGMCORE_tmp 0 def + AGMCORE_err_strings exch get + { + dup 32 eq + { + pop + AGMCORE_str256 0 AGMCORE_tmp getinterval + stringwidth pop currentpoint pop add AGMCORE_deltaX 28 add gt + { + currentpoint AGMCORE_deltaY sub exch pop + clippath pathbbox pop pop pop 44 add exch moveto + }if + AGMCORE_str256 0 AGMCORE_tmp getinterval show( )show + 0 1 AGMCORE_str256 length 1 sub + { + AGMCORE_str256 exch 0 put + }for + /AGMCORE_tmp 0 def + }{ + AGMCORE_str256 exch AGMCORE_tmp xpt + /AGMCORE_tmp AGMCORE_tmp 1 add def + }ifelse + }forall +}bdf +/AGMCORE_CMYKDeviceNColorspaces[ + [/Separation/None/DeviceCMYK{0 0 0}] + [/Separation(Black)/DeviceCMYK{0 0 0 4 -1 roll}bind] + [/Separation(Yellow)/DeviceCMYK{0 0 3 -1 roll 0}bind] + [/DeviceN[(Yellow)(Black)]/DeviceCMYK{0 0 4 2 roll}bind] + [/Separation(Magenta)/DeviceCMYK{0 exch 0 0}bind] + [/DeviceN[(Magenta)(Black)]/DeviceCMYK{0 3 1 roll 0 exch}bind] + [/DeviceN[(Magenta)(Yellow)]/DeviceCMYK{0 3 1 roll 0}bind] + [/DeviceN[(Magenta)(Yellow)(Black)]/DeviceCMYK{0 4 1 roll}bind] + [/Separation(Cyan)/DeviceCMYK{0 0 0}] + [/DeviceN[(Cyan)(Black)]/DeviceCMYK{0 0 3 -1 roll}bind] + [/DeviceN[(Cyan)(Yellow)]/DeviceCMYK{0 exch 0}bind] + [/DeviceN[(Cyan)(Yellow)(Black)]/DeviceCMYK{0 3 1 roll}bind] + [/DeviceN[(Cyan)(Magenta)]/DeviceCMYK{0 0}] + [/DeviceN[(Cyan)(Magenta)(Black)]/DeviceCMYK{0 exch}bind] + [/DeviceN[(Cyan)(Magenta)(Yellow)]/DeviceCMYK{0}] + [/DeviceCMYK] +]def +/ds{ + Adobe_AGM_Core begin + /currentdistillerparams where + { + pop currentdistillerparams/CoreDistVersion get 5000 lt + {<>setdistillerparams}if + }if + /AGMCORE_ps_version xdf + /AGMCORE_ps_level xdf + errordict/AGM_handleerror known not{ + errordict/AGM_handleerror errordict/handleerror get put + errordict/handleerror{ + Adobe_AGM_Core begin + $error/newerror get AGMCORE_cur_err null ne and{ + $error/newerror false put + AGMCORE_cur_err compose_error_msg + }if + $error/newerror true put + end + errordict/AGM_handleerror get exec + }bind put + }if + /AGMCORE_environ_ok + ps_level AGMCORE_ps_level ge + ps_version AGMCORE_ps_version ge and + AGMCORE_ps_level -1 eq or + def + AGMCORE_environ_ok not + {/AGMCORE_cur_err/AGMCORE_bad_environ def}if + /AGMCORE_&setgray systemdict/setgray get def + level2{ + /AGMCORE_&setcolor systemdict/setcolor get def + /AGMCORE_&setcolorspace systemdict/setcolorspace get def + }if + /AGMCORE_currentbg currentblackgeneration def + /AGMCORE_currentucr currentundercolorremoval def + /AGMCORE_Default_flatness currentflat def + /AGMCORE_distilling + /product where{ + pop systemdict/setdistillerparams known product(Adobe PostScript Parser)ne and + }{ + false + }ifelse + def + /AGMCORE_GSTATE AGMCORE_key_known not{ + /AGMCORE_GSTATE 21 dict def + /AGMCORE_tmpmatrix matrix def + /AGMCORE_gstack 32 array def + /AGMCORE_gstackptr 0 def + /AGMCORE_gstacksaveptr 0 def + /AGMCORE_gstackframekeys 14 def + /AGMCORE_&gsave/gsave ldf + /AGMCORE_&grestore/grestore ldf + /AGMCORE_&grestoreall/grestoreall ldf + /AGMCORE_&save/save ldf + /AGMCORE_&setoverprint/setoverprint ldf + /AGMCORE_gdictcopy{ + begin + {def}forall + end + }def + /AGMCORE_gput{ + AGMCORE_gstack AGMCORE_gstackptr get + 3 1 roll + put + }def + /AGMCORE_gget{ + AGMCORE_gstack AGMCORE_gstackptr get + exch + get + }def + /gsave{ + AGMCORE_&gsave + AGMCORE_gstack AGMCORE_gstackptr get + AGMCORE_gstackptr 1 add + dup 32 ge{limitcheck}if + /AGMCORE_gstackptr exch store + AGMCORE_gstack AGMCORE_gstackptr get + AGMCORE_gdictcopy + }def + /grestore{ + AGMCORE_&grestore + AGMCORE_gstackptr 1 sub + dup AGMCORE_gstacksaveptr lt{1 add}if + dup AGMCORE_gstack exch get dup/AGMCORE_currentoverprint known + {/AGMCORE_currentoverprint get setoverprint}{pop}ifelse + /AGMCORE_gstackptr exch store + }def + /grestoreall{ + AGMCORE_&grestoreall + /AGMCORE_gstackptr AGMCORE_gstacksaveptr store + }def + /save{ + AGMCORE_&save + AGMCORE_gstack AGMCORE_gstackptr get + AGMCORE_gstackptr 1 add + dup 32 ge{limitcheck}if + /AGMCORE_gstackptr exch store + /AGMCORE_gstacksaveptr AGMCORE_gstackptr store + AGMCORE_gstack AGMCORE_gstackptr get + AGMCORE_gdictcopy + }def + /setoverprint{ + dup/AGMCORE_currentoverprint exch AGMCORE_gput AGMCORE_&setoverprint + }def + 0 1 AGMCORE_gstack length 1 sub{ + AGMCORE_gstack exch AGMCORE_gstackframekeys dict put + }for + }if + level3/AGMCORE_&sysshfill AGMCORE_key_known not and + { + /AGMCORE_&sysshfill systemdict/shfill get def + /AGMCORE_&sysmakepattern systemdict/makepattern get def + /AGMCORE_&usrmakepattern/makepattern load def + }if + /currentcmykcolor[0 0 0 0]AGMCORE_gput + /currentstrokeadjust false AGMCORE_gput + /currentcolorspace[/DeviceGray]AGMCORE_gput + /sep_tint 0 AGMCORE_gput + /devicen_tints[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]AGMCORE_gput + /sep_colorspace_dict null AGMCORE_gput + /devicen_colorspace_dict null AGMCORE_gput + /indexed_colorspace_dict null AGMCORE_gput + /currentcolor_intent()AGMCORE_gput + /customcolor_tint 1 AGMCORE_gput + /absolute_colorimetric_crd null AGMCORE_gput + /relative_colorimetric_crd null AGMCORE_gput + /saturation_crd null AGMCORE_gput + /perceptual_crd null AGMCORE_gput + currentcolortransfer cvlit/AGMCore_gray_xfer xdf cvlit/AGMCore_b_xfer xdf + cvlit/AGMCore_g_xfer xdf cvlit/AGMCore_r_xfer xdf + << + /MaxPatternItem currentsystemparams/MaxPatternCache get + >> + setuserparams + end +}def +/ps +{ + /setcmykcolor where{ + pop + Adobe_AGM_Core/AGMCORE_&setcmykcolor/setcmykcolor load put + }if + Adobe_AGM_Core begin + /setcmykcolor + { + 4 copy AGMCORE_cmykbuf astore/currentcmykcolor exch AGMCORE_gput + 1 sub 4 1 roll + 3{ + 3 index add neg dup 0 lt{ + pop 0 + }if + 3 1 roll + }repeat + setrgbcolor pop + }ndf + /currentcmykcolor + { + /currentcmykcolor AGMCORE_gget aload pop + }ndf + /setoverprint + {pop}ndf + /currentoverprint + {false}ndf + /AGMCORE_cyan_plate 1 0 0 0 test_cmyk_color_plate def + /AGMCORE_magenta_plate 0 1 0 0 test_cmyk_color_plate def + /AGMCORE_yellow_plate 0 0 1 0 test_cmyk_color_plate def + /AGMCORE_black_plate 0 0 0 1 test_cmyk_color_plate def + /AGMCORE_plate_ndx + AGMCORE_cyan_plate{ + 0 + }{ + AGMCORE_magenta_plate{ + 1 + }{ + AGMCORE_yellow_plate{ + 2 + }{ + AGMCORE_black_plate{ + 3 + }{ + 4 + }ifelse + }ifelse + }ifelse + }ifelse + def + /AGMCORE_have_reported_unsupported_color_space false def + /AGMCORE_report_unsupported_color_space + { + AGMCORE_have_reported_unsupported_color_space false eq + { + (Warning: Job contains content that cannot be separated with on-host methods. This content appears on the black plate, and knocks out all other plates.)== + Adobe_AGM_Core/AGMCORE_have_reported_unsupported_color_space true ddf + }if + }def + /AGMCORE_composite_job + AGMCORE_cyan_plate AGMCORE_magenta_plate and AGMCORE_yellow_plate and AGMCORE_black_plate and def + /AGMCORE_in_rip_sep + /AGMCORE_in_rip_sep where{ + pop AGMCORE_in_rip_sep + }{ + AGMCORE_distilling + { + false + }{ + userdict/Adobe_AGM_OnHost_Seps known{ + false + }{ + level2{ + currentpagedevice/Separations 2 copy known{ + get + }{ + pop pop false + }ifelse + }{ + false + }ifelse + }ifelse + }ifelse + }ifelse + def + /AGMCORE_producing_seps AGMCORE_composite_job not AGMCORE_in_rip_sep or def + /AGMCORE_host_sep AGMCORE_producing_seps AGMCORE_in_rip_sep not and def + /AGM_preserve_spots + /AGM_preserve_spots where{ + pop AGM_preserve_spots + }{ + AGMCORE_distilling AGMCORE_producing_seps or + }ifelse + def + /AGM_is_distiller_preserving_spotimages + { + currentdistillerparams/PreserveOverprintSettings known + { + currentdistillerparams/PreserveOverprintSettings get + { + currentdistillerparams/ColorConversionStrategy known + { + currentdistillerparams/ColorConversionStrategy get + /sRGB ne + }{ + true + }ifelse + }{ + false + }ifelse + }{ + false + }ifelse + }def + /convert_spot_to_process where{pop}{ + /convert_spot_to_process + { + //Adobe_AGM_Core begin + dup map_alias{ + /Name get exch pop + }if + dup dup(None)eq exch(All)eq or + { + pop false + }{ + AGMCORE_host_sep + { + gsave + 1 0 0 0 setcmykcolor currentgray 1 exch sub + 0 1 0 0 setcmykcolor currentgray 1 exch sub + 0 0 1 0 setcmykcolor currentgray 1 exch sub + 0 0 0 1 setcmykcolor currentgray 1 exch sub + add add add 0 eq + { + pop false + }{ + false setoverprint + current_spot_alias false set_spot_alias + 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor + set_spot_alias + currentgray 1 ne + }ifelse + grestore + }{ + AGMCORE_distilling + { + pop AGM_is_distiller_preserving_spotimages not + }{ + //Adobe_AGM_Core/AGMCORE_name xddf + false + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 0 eq + AGMUTIL_cpd/OverrideSeparations known and + { + AGMUTIL_cpd/OverrideSeparations get + { + /HqnSpots/ProcSet resourcestatus + { + pop pop pop true + }if + }if + }if + { + AGMCORE_name/HqnSpots/ProcSet findresource/TestSpot gx not + }{ + gsave + [/Separation AGMCORE_name/DeviceGray{}]AGMCORE_&setcolorspace + false + AGMUTIL_cpd/SeparationColorNames 2 copy known + { + get + {AGMCORE_name eq or}forall + not + }{ + pop pop pop true + }ifelse + grestore + }ifelse + }ifelse + }ifelse + }ifelse + end + }def + }ifelse + /convert_to_process where{pop}{ + /convert_to_process + { + dup length 0 eq + { + pop false + }{ + AGMCORE_host_sep + { + dup true exch + { + dup(Cyan)eq exch + dup(Magenta)eq 3 -1 roll or exch + dup(Yellow)eq 3 -1 roll or exch + dup(Black)eq 3 -1 roll or + {pop} + {convert_spot_to_process and}ifelse + } + forall + { + true exch + { + dup(Cyan)eq exch + dup(Magenta)eq 3 -1 roll or exch + dup(Yellow)eq 3 -1 roll or exch + (Black)eq or and + }forall + not + }{pop false}ifelse + }{ + false exch + { + /PhotoshopDuotoneList where{pop false}{true}ifelse + { + dup(Cyan)eq exch + dup(Magenta)eq 3 -1 roll or exch + dup(Yellow)eq 3 -1 roll or exch + dup(Black)eq 3 -1 roll or + {pop} + {convert_spot_to_process or}ifelse + } + { + convert_spot_to_process or + } + ifelse + } + forall + }ifelse + }ifelse + }def + }ifelse + /AGMCORE_avoid_L2_sep_space + version cvr 2012 lt + level2 and + AGMCORE_producing_seps not and + def + /AGMCORE_is_cmyk_sep + AGMCORE_cyan_plate AGMCORE_magenta_plate or AGMCORE_yellow_plate or AGMCORE_black_plate or + def + /AGM_avoid_0_cmyk where{ + pop AGM_avoid_0_cmyk + }{ + AGM_preserve_spots + userdict/Adobe_AGM_OnHost_Seps known + userdict/Adobe_AGM_InRip_Seps known or + not and + }ifelse + { + /setcmykcolor[ + { + 4 copy add add add 0 eq currentoverprint and{ + pop 0.0005 + }if + }/exec cvx + /AGMCORE_&setcmykcolor load dup type/operatortype ne{ + /exec cvx + }if + ]cvx def + }if + /AGMCORE_IsSeparationAProcessColor + { + dup(Cyan)eq exch dup(Magenta)eq exch dup(Yellow)eq exch(Black)eq or or or + }def + AGMCORE_host_sep{ + /setcolortransfer + { + AGMCORE_cyan_plate{ + pop pop pop + }{ + AGMCORE_magenta_plate{ + 4 3 roll pop pop pop + }{ + AGMCORE_yellow_plate{ + 4 2 roll pop pop pop + }{ + 4 1 roll pop pop pop + }ifelse + }ifelse + }ifelse + settransfer + } + def + /AGMCORE_get_ink_data + AGMCORE_cyan_plate{ + {pop pop pop} + }{ + AGMCORE_magenta_plate{ + {4 3 roll pop pop pop} + }{ + AGMCORE_yellow_plate{ + {4 2 roll pop pop pop} + }{ + {4 1 roll pop pop pop} + }ifelse + }ifelse + }ifelse + def + /AGMCORE_RemoveProcessColorNames + { + 1 dict begin + /filtername + { + dup/Cyan eq 1 index(Cyan)eq or + {pop(_cyan_)}if + dup/Magenta eq 1 index(Magenta)eq or + {pop(_magenta_)}if + dup/Yellow eq 1 index(Yellow)eq or + {pop(_yellow_)}if + dup/Black eq 1 index(Black)eq or + {pop(_black_)}if + }def + dup type/arraytype eq + {[exch{filtername}forall]} + {filtername}ifelse + end + }def + level3{ + /AGMCORE_IsCurrentColor + { + dup AGMCORE_IsSeparationAProcessColor + { + AGMCORE_plate_ndx 0 eq + {dup(Cyan)eq exch/Cyan eq or}if + AGMCORE_plate_ndx 1 eq + {dup(Magenta)eq exch/Magenta eq or}if + AGMCORE_plate_ndx 2 eq + {dup(Yellow)eq exch/Yellow eq or}if + AGMCORE_plate_ndx 3 eq + {dup(Black)eq exch/Black eq or}if + AGMCORE_plate_ndx 4 eq + {pop false}if + }{ + gsave + false setoverprint + current_spot_alias false set_spot_alias + 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor + set_spot_alias + currentgray 1 ne + grestore + }ifelse + }def + /AGMCORE_filter_functiondatasource + { + 5 dict begin + /data_in xdf + data_in type/stringtype eq + { + /ncomp xdf + /comp xdf + /string_out data_in length ncomp idiv string def + 0 ncomp data_in length 1 sub + { + string_out exch dup ncomp idiv exch data_in exch ncomp getinterval comp get 255 exch sub put + }for + string_out + }{ + string/string_in xdf + /string_out 1 string def + /component xdf + [ + data_in string_in/readstring cvx + [component/get cvx 255/exch cvx/sub cvx string_out/exch cvx 0/exch cvx/put cvx string_out]cvx + [/pop cvx()]cvx/ifelse cvx + ]cvx/ReusableStreamDecode filter + }ifelse + end + }def + /AGMCORE_separateShadingFunction + { + 2 dict begin + /paint? xdf + /channel xdf + dup type/dicttype eq + { + begin + FunctionType 0 eq + { + /DataSource channel Range length 2 idiv DataSource AGMCORE_filter_functiondatasource def + currentdict/Decode known + {/Decode Decode channel 2 mul 2 getinterval def}if + paint? not + {/Decode[1 1]def}if + }if + FunctionType 2 eq + { + paint? + { + /C0[C0 channel get 1 exch sub]def + /C1[C1 channel get 1 exch sub]def + }{ + /C0[1]def + /C1[1]def + }ifelse + }if + FunctionType 3 eq + { + /Functions[Functions{channel paint? AGMCORE_separateShadingFunction}forall]def + }if + currentdict/Range known + {/Range[0 1]def}if + currentdict + end}{ + channel get 0 paint? AGMCORE_separateShadingFunction + }ifelse + end + }def + /AGMCORE_separateShading + { + 3 -1 roll begin + currentdict/Function known + { + currentdict/Background known + {[1 index{Background 3 index get 1 exch sub}{1}ifelse]/Background xdf}if + Function 3 1 roll AGMCORE_separateShadingFunction/Function xdf + /ColorSpace[/DeviceGray]def + }{ + ColorSpace dup type/arraytype eq{0 get}if/DeviceCMYK eq + { + /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def + }{ + ColorSpace dup 1 get AGMCORE_RemoveProcessColorNames 1 exch put + }ifelse + ColorSpace 0 get/Separation eq + { + { + [1/exch cvx/sub cvx]cvx + }{ + [/pop cvx 1]cvx + }ifelse + ColorSpace 3 3 -1 roll put + pop + }{ + { + [exch ColorSpace 1 get length 1 sub exch sub/index cvx 1/exch cvx/sub cvx ColorSpace 1 get length 1 add 1/roll cvx ColorSpace 1 get length{/pop cvx}repeat]cvx + }{ + pop[ColorSpace 1 get length{/pop cvx}repeat cvx 1]cvx + }ifelse + ColorSpace 3 3 -1 roll bind put + }ifelse + ColorSpace 2/DeviceGray put + }ifelse + end + }def + /AGMCORE_separateShadingDict + { + dup/ColorSpace get + dup type/arraytype ne + {[exch]}if + dup 0 get/DeviceCMYK eq + { + exch begin + currentdict + AGMCORE_cyan_plate + {0 true}if + AGMCORE_magenta_plate + {1 true}if + AGMCORE_yellow_plate + {2 true}if + AGMCORE_black_plate + {3 true}if + AGMCORE_plate_ndx 4 eq + {0 false}if + dup not currentoverprint and + {/AGMCORE_ignoreshade true def}if + AGMCORE_separateShading + currentdict + end exch + }if + dup 0 get/Separation eq + { + exch begin + ColorSpace 1 get dup/None ne exch/All ne and + { + ColorSpace 1 get AGMCORE_IsCurrentColor AGMCORE_plate_ndx 4 lt and ColorSpace 1 get AGMCORE_IsSeparationAProcessColor not and + { + ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq + { + /ColorSpace + [ + /Separation + ColorSpace 1 get + /DeviceGray + [ + ColorSpace 3 get/exec cvx + 4 AGMCORE_plate_ndx sub -1/roll cvx + 4 1/roll cvx + 3[/pop cvx]cvx/repeat cvx + 1/exch cvx/sub cvx + ]cvx + ]def + }{ + AGMCORE_report_unsupported_color_space + AGMCORE_black_plate not + { + currentdict 0 false AGMCORE_separateShading + }if + }ifelse + }{ + currentdict ColorSpace 1 get AGMCORE_IsCurrentColor + 0 exch + dup not currentoverprint and + {/AGMCORE_ignoreshade true def}if + AGMCORE_separateShading + }ifelse + }if + currentdict + end exch + }if + dup 0 get/DeviceN eq + { + exch begin + ColorSpace 1 get convert_to_process + { + ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq + { + /ColorSpace + [ + /DeviceN + ColorSpace 1 get + /DeviceGray + [ + ColorSpace 3 get/exec cvx + 4 AGMCORE_plate_ndx sub -1/roll cvx + 4 1/roll cvx + 3[/pop cvx]cvx/repeat cvx + 1/exch cvx/sub cvx + ]cvx + ]def + }{ + AGMCORE_report_unsupported_color_space + AGMCORE_black_plate not + { + currentdict 0 false AGMCORE_separateShading + /ColorSpace[/DeviceGray]def + }if + }ifelse + }{ + currentdict + false -1 ColorSpace 1 get + { + AGMCORE_IsCurrentColor + { + 1 add + exch pop true exch exit + }if + 1 add + }forall + exch + dup not currentoverprint and + {/AGMCORE_ignoreshade true def}if + AGMCORE_separateShading + }ifelse + currentdict + end exch + }if + dup 0 get dup/DeviceCMYK eq exch dup/Separation eq exch/DeviceN eq or or not + { + exch begin + ColorSpace dup type/arraytype eq + {0 get}if + /DeviceGray ne + { + AGMCORE_report_unsupported_color_space + AGMCORE_black_plate not + { + ColorSpace 0 get/CIEBasedA eq + { + /ColorSpace[/Separation/_ciebaseda_/DeviceGray{}]def + }if + ColorSpace 0 get dup/CIEBasedABC eq exch dup/CIEBasedDEF eq exch/DeviceRGB eq or or + { + /ColorSpace[/DeviceN[/_red_/_green_/_blue_]/DeviceRGB{}]def + }if + ColorSpace 0 get/CIEBasedDEFG eq + { + /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def + }if + currentdict 0 false AGMCORE_separateShading + }if + }if + currentdict + end exch + }if + pop + dup/AGMCORE_ignoreshade known + { + begin + /ColorSpace[/Separation(None)/DeviceGray{}]def + currentdict end + }if + }def + /shfill + { + AGMCORE_separateShadingDict + dup/AGMCORE_ignoreshade known + {pop} + {AGMCORE_&sysshfill}ifelse + }def + /makepattern + { + exch + dup/PatternType get 2 eq + { + clonedict + begin + /Shading Shading AGMCORE_separateShadingDict def + Shading/AGMCORE_ignoreshade known + currentdict end exch + {pop<>}if + exch AGMCORE_&sysmakepattern + }{ + exch AGMCORE_&usrmakepattern + }ifelse + }def + }if + }if + AGMCORE_in_rip_sep{ + /setcustomcolor + { + exch aload pop + dup 7 1 roll inRip_spot_has_ink not { + 4{4 index mul 4 1 roll} + repeat + /DeviceCMYK setcolorspace + 6 -2 roll pop pop + }{ + //Adobe_AGM_Core begin + /AGMCORE_k xdf/AGMCORE_y xdf/AGMCORE_m xdf/AGMCORE_c xdf + end + [/Separation 4 -1 roll/DeviceCMYK + {dup AGMCORE_c mul exch dup AGMCORE_m mul exch dup AGMCORE_y mul exch AGMCORE_k mul} + ] + setcolorspace + }ifelse + setcolor + }ndf + /setseparationgray + { + [/Separation(All)/DeviceGray{}]setcolorspace_opt + 1 exch sub setcolor + }ndf + }{ + /setseparationgray + { + AGMCORE_&setgray + }ndf + }ifelse + /findcmykcustomcolor + { + 5 makereadonlyarray + }ndf + /setcustomcolor + { + exch aload pop pop + 4{4 index mul 4 1 roll}repeat + setcmykcolor pop + }ndf + /has_color + /colorimage where{ + AGMCORE_producing_seps{ + pop true + }{ + systemdict eq + }ifelse + }{ + false + }ifelse + def + /map_index + { + 1 index mul exch getinterval{255 div}forall + }bdf + /map_indexed_devn + { + Lookup Names length 3 -1 roll cvi map_index + }bdf + /n_color_components + { + base_colorspace_type + dup/DeviceGray eq{ + pop 1 + }{ + /DeviceCMYK eq{ + 4 + }{ + 3 + }ifelse + }ifelse + }bdf + level2{ + /mo/moveto ldf + /li/lineto ldf + /cv/curveto ldf + /knockout_unitsq + { + 1 setgray + 0 0 1 1 rectfill + }def + level2/setcolorspace AGMCORE_key_known not and{ + /AGMCORE_&&&setcolorspace/setcolorspace ldf + /AGMCORE_ReplaceMappedColor + { + dup type dup/arraytype eq exch/packedarraytype eq or + { + /AGMCORE_SpotAliasAry2 where{ + begin + dup 0 get dup/Separation eq + { + pop + dup length array copy + dup dup 1 get + current_spot_alias + { + dup map_alias + { + false set_spot_alias + dup 1 exch setsepcolorspace + true set_spot_alias + begin + /sep_colorspace_dict currentdict AGMCORE_gput + pop pop pop + [ + /Separation Name + CSA map_csa + MappedCSA + /sep_colorspace_proc load + ] + dup Name + end + }if + }if + map_reserved_ink_name 1 xpt + }{ + /DeviceN eq + { + dup length array copy + dup dup 1 get[ + exch{ + current_spot_alias{ + dup map_alias{ + /Name get exch pop + }if + }if + map_reserved_ink_name + }forall + ]1 xpt + }if + }ifelse + end + }if + }if + }def + /setcolorspace + { + dup type dup/arraytype eq exch/packedarraytype eq or + { + dup 0 get/Indexed eq + { + AGMCORE_distilling + { + /PhotoshopDuotoneList where + { + pop false + }{ + true + }ifelse + }{ + true + }ifelse + { + aload pop 3 -1 roll + AGMCORE_ReplaceMappedColor + 3 1 roll 4 array astore + }if + }{ + AGMCORE_ReplaceMappedColor + }ifelse + }if + DeviceN_PS2_inRip_seps{AGMCORE_&&&setcolorspace}if + }def + }if + }{ + /adj + { + currentstrokeadjust{ + transform + 0.25 sub round 0.25 add exch + 0.25 sub round 0.25 add exch + itransform + }if + }def + /mo{ + adj moveto + }def + /li{ + adj lineto + }def + /cv{ + 6 2 roll adj + 6 2 roll adj + 6 2 roll adj curveto + }def + /knockout_unitsq + { + 1 setgray + 8 8 1[8 0 0 8 0 0]{}image + }def + /currentstrokeadjust{ + /currentstrokeadjust AGMCORE_gget + }def + /setstrokeadjust{ + /currentstrokeadjust exch AGMCORE_gput + }def + /setcolorspace + { + /currentcolorspace exch AGMCORE_gput + }def + /currentcolorspace + { + /currentcolorspace AGMCORE_gget + }def + /setcolor_devicecolor + { + base_colorspace_type + dup/DeviceGray eq{ + pop setgray + }{ + /DeviceCMYK eq{ + setcmykcolor + }{ + setrgbcolor + }ifelse + }ifelse + }def + /setcolor + { + currentcolorspace 0 get + dup/DeviceGray ne{ + dup/DeviceCMYK ne{ + dup/DeviceRGB ne{ + dup/Separation eq{ + pop + currentcolorspace 3 gx + currentcolorspace 2 get + }{ + dup/Indexed eq{ + pop + currentcolorspace 3 get dup type/stringtype eq{ + currentcolorspace 1 get n_color_components + 3 -1 roll map_index + }{ + exec + }ifelse + currentcolorspace 1 get + }{ + /AGMCORE_cur_err/AGMCORE_invalid_color_space def + AGMCORE_invalid_color_space + }ifelse + }ifelse + }if + }if + }if + setcolor_devicecolor + }def + }ifelse + /sop/setoverprint ldf + /lw/setlinewidth ldf + /lc/setlinecap ldf + /lj/setlinejoin ldf + /ml/setmiterlimit ldf + /dsh/setdash ldf + /sadj/setstrokeadjust ldf + /gry/setgray ldf + /rgb/setrgbcolor ldf + /cmyk[ + /currentcolorspace[/DeviceCMYK]/AGMCORE_gput cvx + /setcmykcolor load dup type/operatortype ne{/exec cvx}if + ]cvx bdf + level3 AGMCORE_host_sep not and{ + /nzopmsc{ + 6 dict begin + /kk exch def + /yy exch def + /mm exch def + /cc exch def + /sum 0 def + cc 0 ne{/sum sum 2#1000 or def cc}if + mm 0 ne{/sum sum 2#0100 or def mm}if + yy 0 ne{/sum sum 2#0010 or def yy}if + kk 0 ne{/sum sum 2#0001 or def kk}if + AGMCORE_CMYKDeviceNColorspaces sum get setcolorspace + sum 0 eq{0}if + end + setcolor + }bdf + }{ + /nzopmsc/cmyk ldf + }ifelse + /sep/setsepcolor ldf + /devn/setdevicencolor ldf + /idx/setindexedcolor ldf + /colr/setcolor ldf + /csacrd/set_csa_crd ldf + /sepcs/setsepcolorspace ldf + /devncs/setdevicencolorspace ldf + /idxcs/setindexedcolorspace ldf + /cp/closepath ldf + /clp/clp_npth ldf + /eclp/eoclp_npth ldf + /f/fill ldf + /ef/eofill ldf + /@/stroke ldf + /nclp/npth_clp ldf + /gset/graphic_setup ldf + /gcln/graphic_cleanup ldf + /ct/concat ldf + /cf/currentfile ldf + /fl/filter ldf + /rs/readstring ldf + /AGMCORE_def_ht currenthalftone def + /clonedict Adobe_AGM_Utils begin/clonedict load end def + /clonearray Adobe_AGM_Utils begin/clonearray load end def + currentdict{ + dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ + bind + }if + def + }forall + /getrampcolor + { + /indx exch def + 0 1 NumComp 1 sub + { + dup + Samples exch get + dup type/stringtype eq{indx get}if + exch + Scaling exch get aload pop + 3 1 roll + mul add + }for + ColorSpaceFamily/Separation eq + {sep} + { + ColorSpaceFamily/DeviceN eq + {devn}{setcolor}ifelse + }ifelse + }bdf + /sssetbackground{ + aload pop + ColorSpaceFamily/Separation eq + {sep} + { + ColorSpaceFamily/DeviceN eq + {devn}{setcolor}ifelse + }ifelse + }bdf + /RadialShade + { + 40 dict begin + /ColorSpaceFamily xdf + /background xdf + /ext1 xdf + /ext0 xdf + /BBox xdf + /r2 xdf + /c2y xdf + /c2x xdf + /r1 xdf + /c1y xdf + /c1x xdf + /rampdict xdf + /setinkoverprint where{pop/setinkoverprint{pop}def}if + gsave + BBox length 0 gt + { + np + BBox 0 get BBox 1 get moveto + BBox 2 get BBox 0 get sub 0 rlineto + 0 BBox 3 get BBox 1 get sub rlineto + BBox 2 get BBox 0 get sub neg 0 rlineto + closepath + clip + np + }if + c1x c2x eq + { + c1y c2y lt{/theta 90 def}{/theta 270 def}ifelse + }{ + /slope c2y c1y sub c2x c1x sub div def + /theta slope 1 atan def + c2x c1x lt c2y c1y ge and{/theta theta 180 sub def}if + c2x c1x lt c2y c1y lt and{/theta theta 180 add def}if + }ifelse + gsave + clippath + c1x c1y translate + theta rotate + -90 rotate + {pathbbox}stopped + {0 0 0 0}if + /yMax xdf + /xMax xdf + /yMin xdf + /xMin xdf + grestore + xMax xMin eq yMax yMin eq or + { + grestore + end + }{ + /max{2 copy gt{pop}{exch pop}ifelse}bdf + /min{2 copy lt{pop}{exch pop}ifelse}bdf + rampdict begin + 40 dict begin + background length 0 gt{background sssetbackground gsave clippath fill grestore}if + gsave + c1x c1y translate + theta rotate + -90 rotate + /c2y c1x c2x sub dup mul c1y c2y sub dup mul add sqrt def + /c1y 0 def + /c1x 0 def + /c2x 0 def + ext0 + { + 0 getrampcolor + c2y r2 add r1 sub 0.0001 lt + { + c1x c1y r1 360 0 arcn + pathbbox + /aymax exch def + /axmax exch def + /aymin exch def + /axmin exch def + /bxMin xMin axmin min def + /byMin yMin aymin min def + /bxMax xMax axmax max def + /byMax yMax aymax max def + bxMin byMin moveto + bxMax byMin lineto + bxMax byMax lineto + bxMin byMax lineto + bxMin byMin lineto + eofill + }{ + c2y r1 add r2 le + { + c1x c1y r1 0 360 arc + fill + } + { + c2x c2y r2 0 360 arc fill + r1 r2 eq + { + /p1x r1 neg def + /p1y c1y def + /p2x r1 def + /p2y c1y def + p1x p1y moveto p2x p2y lineto p2x yMin lineto p1x yMin lineto + fill + }{ + /AA r2 r1 sub c2y div def + AA -1 eq + {/theta 89.99 def} + {/theta AA 1 AA dup mul sub sqrt div 1 atan def} + ifelse + /SS1 90 theta add dup sin exch cos div def + /p1x r1 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def + /p1y p1x SS1 div neg def + /SS2 90 theta sub dup sin exch cos div def + /p2x r1 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def + /p2y p2x SS2 div neg def + r1 r2 gt + { + /L1maxX p1x yMin p1y sub SS1 div add def + /L2maxX p2x yMin p2y sub SS2 div add def + }{ + /L1maxX 0 def + /L2maxX 0 def + }ifelse + p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto + L1maxX L1maxX p1x sub SS1 mul p1y add lineto + fill + }ifelse + }ifelse + }ifelse + }if + c1x c2x sub dup mul + c1y c2y sub dup mul + add 0.5 exp + 0 dtransform + dup mul exch dup mul add 0.5 exp 72 div + 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt + 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt + 1 index 1 index lt{exch}if pop + /hires xdf + hires mul + /numpix xdf + /numsteps NumSamples def + /rampIndxInc 1 def + /subsampling false def + numpix 0 ne + { + NumSamples numpix div 0.5 gt + { + /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def + /rampIndxInc NumSamples 1 sub numsteps div def + /subsampling true def + }if + }if + /xInc c2x c1x sub numsteps div def + /yInc c2y c1y sub numsteps div def + /rInc r2 r1 sub numsteps div def + /cx c1x def + /cy c1y def + /radius r1 def + np + xInc 0 eq yInc 0 eq rInc 0 eq and and + { + 0 getrampcolor + cx cy radius 0 360 arc + stroke + NumSamples 1 sub getrampcolor + cx cy radius 72 hires div add 0 360 arc + 0 setlinewidth + stroke + }{ + 0 + numsteps + { + dup + subsampling{round cvi}if + getrampcolor + cx cy radius 0 360 arc + /cx cx xInc add def + /cy cy yInc add def + /radius radius rInc add def + cx cy radius 360 0 arcn + eofill + rampIndxInc add + }repeat + pop + }ifelse + ext1 + { + c2y r2 add r1 lt + { + c2x c2y r2 0 360 arc + fill + }{ + c2y r1 add r2 sub 0.0001 le + { + c2x c2y r2 360 0 arcn + pathbbox + /aymax exch def + /axmax exch def + /aymin exch def + /axmin exch def + /bxMin xMin axmin min def + /byMin yMin aymin min def + /bxMax xMax axmax max def + /byMax yMax aymax max def + bxMin byMin moveto + bxMax byMin lineto + bxMax byMax lineto + bxMin byMax lineto + bxMin byMin lineto + eofill + }{ + c2x c2y r2 0 360 arc fill + r1 r2 eq + { + /p1x r2 neg def + /p1y c2y def + /p2x r2 def + /p2y c2y def + p1x p1y moveto p2x p2y lineto p2x yMax lineto p1x yMax lineto + fill + }{ + /AA r2 r1 sub c2y div def + AA -1 eq + {/theta 89.99 def} + {/theta AA 1 AA dup mul sub sqrt div 1 atan def} + ifelse + /SS1 90 theta add dup sin exch cos div def + /p1x r2 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def + /p1y c2y p1x SS1 div sub def + /SS2 90 theta sub dup sin exch cos div def + /p2x r2 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def + /p2y c2y p2x SS2 div sub def + r1 r2 lt + { + /L1maxX p1x yMax p1y sub SS1 div add def + /L2maxX p2x yMax p2y sub SS2 div add def + }{ + /L1maxX 0 def + /L2maxX 0 def + }ifelse + p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto + L1maxX L1maxX p1x sub SS1 mul p1y add lineto + fill + }ifelse + }ifelse + }ifelse + }if + grestore + grestore + end + end + end + }ifelse + }bdf + /GenStrips + { + 40 dict begin + /ColorSpaceFamily xdf + /background xdf + /ext1 xdf + /ext0 xdf + /BBox xdf + /y2 xdf + /x2 xdf + /y1 xdf + /x1 xdf + /rampdict xdf + /setinkoverprint where{pop/setinkoverprint{pop}def}if + gsave + BBox length 0 gt + { + np + BBox 0 get BBox 1 get moveto + BBox 2 get BBox 0 get sub 0 rlineto + 0 BBox 3 get BBox 1 get sub rlineto + BBox 2 get BBox 0 get sub neg 0 rlineto + closepath + clip + np + }if + x1 x2 eq + { + y1 y2 lt{/theta 90 def}{/theta 270 def}ifelse + }{ + /slope y2 y1 sub x2 x1 sub div def + /theta slope 1 atan def + x2 x1 lt y2 y1 ge and{/theta theta 180 sub def}if + x2 x1 lt y2 y1 lt and{/theta theta 180 add def}if + } + ifelse + gsave + clippath + x1 y1 translate + theta rotate + {pathbbox}stopped + {0 0 0 0}if + /yMax exch def + /xMax exch def + /yMin exch def + /xMin exch def + grestore + xMax xMin eq yMax yMin eq or + { + grestore + end + }{ + rampdict begin + 20 dict begin + background length 0 gt{background sssetbackground gsave clippath fill grestore}if + gsave + x1 y1 translate + theta rotate + /xStart 0 def + /xEnd x2 x1 sub dup mul y2 y1 sub dup mul add 0.5 exp def + /ySpan yMax yMin sub def + /numsteps NumSamples def + /rampIndxInc 1 def + /subsampling false def + xStart 0 transform + xEnd 0 transform + 3 -1 roll + sub dup mul + 3 1 roll + sub dup mul + add 0.5 exp 72 div + 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt + 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt + 1 index 1 index lt{exch}if pop + mul + /numpix xdf + numpix 0 ne + { + NumSamples numpix div 0.5 gt + { + /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def + /rampIndxInc NumSamples 1 sub numsteps div def + /subsampling true def + }if + }if + ext0 + { + 0 getrampcolor + xMin xStart lt + { + xMin yMin xMin neg ySpan rectfill + }if + }if + /xInc xEnd xStart sub numsteps div def + /x xStart def + 0 + numsteps + { + dup + subsampling{round cvi}if + getrampcolor + x yMin xInc ySpan rectfill + /x x xInc add def + rampIndxInc add + }repeat + pop + ext1{ + xMax xEnd gt + { + xEnd yMin xMax xEnd sub ySpan rectfill + }if + }if + grestore + grestore + end + end + end + }ifelse + }bdf +}def +/pt +{ + end +}def +/dt{ +}def +/pgsv{ + //Adobe_AGM_Core/AGMCORE_save save put +}def +/pgrs{ + //Adobe_AGM_Core/AGMCORE_save get restore +}def +systemdict/findcolorrendering known{ + /findcolorrendering systemdict/findcolorrendering get def +}if +systemdict/setcolorrendering known{ + /setcolorrendering systemdict/setcolorrendering get def +}if +/test_cmyk_color_plate +{ + gsave + setcmykcolor currentgray 1 ne + grestore +}def +/inRip_spot_has_ink +{ + dup//Adobe_AGM_Core/AGMCORE_name xddf + convert_spot_to_process not +}def +/map255_to_range +{ + 1 index sub + 3 -1 roll 255 div mul add +}def +/set_csa_crd +{ + /sep_colorspace_dict null AGMCORE_gput + begin + CSA get_csa_by_name setcolorspace_opt + set_crd + end +} +def +/map_csa +{ + currentdict/MappedCSA known{MappedCSA null ne}{false}ifelse + {pop}{get_csa_by_name/MappedCSA xdf}ifelse +}def +/setsepcolor +{ + /sep_colorspace_dict AGMCORE_gget begin + dup/sep_tint exch AGMCORE_gput + TintProc + end +}def +/setdevicencolor +{ + /devicen_colorspace_dict AGMCORE_gget begin + Names length copy + Names length 1 sub -1 0 + { + /devicen_tints AGMCORE_gget 3 1 roll xpt + }for + TintProc + end +}def +/sep_colorspace_proc +{ + /AGMCORE_tmp exch store + /sep_colorspace_dict AGMCORE_gget begin + currentdict/Components known{ + Components aload pop + TintMethod/Lab eq{ + 2{AGMCORE_tmp mul NComponents 1 roll}repeat + LMax sub AGMCORE_tmp mul LMax add NComponents 1 roll + }{ + TintMethod/Subtractive eq{ + NComponents{ + AGMCORE_tmp mul NComponents 1 roll + }repeat + }{ + NComponents{ + 1 sub AGMCORE_tmp mul 1 add NComponents 1 roll + }repeat + }ifelse + }ifelse + }{ + ColorLookup AGMCORE_tmp ColorLookup length 1 sub mul round cvi get + aload pop + }ifelse + end +}def +/sep_colorspace_gray_proc +{ + /AGMCORE_tmp exch store + /sep_colorspace_dict AGMCORE_gget begin + GrayLookup AGMCORE_tmp GrayLookup length 1 sub mul round cvi get + end +}def +/sep_proc_name +{ + dup 0 get + dup/DeviceRGB eq exch/DeviceCMYK eq or level2 not and has_color not and{ + pop[/DeviceGray] + /sep_colorspace_gray_proc + }{ + /sep_colorspace_proc + }ifelse +}def +/setsepcolorspace +{ + current_spot_alias{ + dup begin + Name map_alias{ + exch pop + }if + end + }if + dup/sep_colorspace_dict exch AGMCORE_gput + begin + CSA map_csa + /AGMCORE_sep_special Name dup()eq exch(All)eq or store + AGMCORE_avoid_L2_sep_space{ + [/Indexed MappedCSA sep_proc_name 255 exch + {255 div}/exec cvx 3 -1 roll[4 1 roll load/exec cvx]cvx + ]setcolorspace_opt + /TintProc{ + 255 mul round cvi setcolor + }bdf + }{ + MappedCSA 0 get/DeviceCMYK eq + currentdict/Components known and + AGMCORE_sep_special not and{ + /TintProc[ + Components aload pop Name findcmykcustomcolor + /exch cvx/setcustomcolor cvx + ]cvx bdf + }{ + AGMCORE_host_sep Name(All)eq and{ + /TintProc{ + 1 exch sub setseparationgray + }bdf + }{ + AGMCORE_in_rip_sep MappedCSA 0 get/DeviceCMYK eq and + AGMCORE_host_sep or + Name()eq and{ + /TintProc[ + MappedCSA sep_proc_name exch 0 get/DeviceCMYK eq{ + cvx/setcmykcolor cvx + }{ + cvx/setgray cvx + }ifelse + ]cvx bdf + }{ + AGMCORE_producing_seps MappedCSA 0 get dup/DeviceCMYK eq exch/DeviceGray eq or and AGMCORE_sep_special not and{ + /TintProc[ + /dup cvx + MappedCSA sep_proc_name cvx exch + 0 get/DeviceGray eq{ + 1/exch cvx/sub cvx 0 0 0 4 -1/roll cvx + }if + /Name cvx/findcmykcustomcolor cvx/exch cvx + AGMCORE_host_sep{ + AGMCORE_is_cmyk_sep + /Name cvx + /AGMCORE_IsSeparationAProcessColor load/exec cvx + /not cvx/and cvx + }{ + Name inRip_spot_has_ink not + }ifelse + [ + /pop cvx 1 + ]cvx/if cvx + /setcustomcolor cvx + ]cvx bdf + }{ + /TintProc{setcolor}bdf + [/Separation Name MappedCSA sep_proc_name load]setcolorspace_opt + }ifelse + }ifelse + }ifelse + }ifelse + }ifelse + set_crd + setsepcolor + end +}def +/additive_blend +{ + 3 dict begin + /numarrays xdf + /numcolors xdf + 0 1 numcolors 1 sub + { + /c1 xdf + 1 + 0 1 numarrays 1 sub + { + 1 exch add/index cvx + c1/get cvx/mul cvx + }for + numarrays 1 add 1/roll cvx + }for + numarrays[/pop cvx]cvx/repeat cvx + end +}def +/subtractive_blend +{ + 3 dict begin + /numarrays xdf + /numcolors xdf + 0 1 numcolors 1 sub + { + /c1 xdf + 1 1 + 0 1 numarrays 1 sub + { + 1 3 3 -1 roll add/index cvx + c1/get cvx/sub cvx/mul cvx + }for + /sub cvx + numarrays 1 add 1/roll cvx + }for + numarrays[/pop cvx]cvx/repeat cvx + end +}def +/exec_tint_transform +{ + /TintProc[ + /TintTransform cvx/setcolor cvx + ]cvx bdf + MappedCSA setcolorspace_opt +}bdf +/devn_makecustomcolor +{ + 2 dict begin + /names_index xdf + /Names xdf + 1 1 1 1 Names names_index get findcmykcustomcolor + /devicen_tints AGMCORE_gget names_index get setcustomcolor + Names length{pop}repeat + end +}bdf +/setdevicencolorspace +{ + dup/AliasedColorants known{false}{true}ifelse + current_spot_alias and{ + 7 dict begin + /names_index 0 def + dup/names_len exch/Names get length def + /new_names names_len array def + /new_LookupTables names_len array def + /alias_cnt 0 def + dup/Names get + { + dup map_alias{ + exch pop + dup/ColorLookup known{ + dup begin + new_LookupTables names_index ColorLookup put + end + }{ + dup/Components known{ + dup begin + new_LookupTables names_index Components put + end + }{ + dup begin + new_LookupTables names_index[null null null null]put + end + }ifelse + }ifelse + new_names names_index 3 -1 roll/Name get put + /alias_cnt alias_cnt 1 add def + }{ + /name xdf + new_names names_index name put + dup/LookupTables known{ + dup begin + new_LookupTables names_index LookupTables names_index get put + end + }{ + dup begin + new_LookupTables names_index[null null null null]put + end + }ifelse + }ifelse + /names_index names_index 1 add def + }forall + alias_cnt 0 gt{ + /AliasedColorants true def + /lut_entry_len new_LookupTables 0 get dup length 256 ge{0 get length}{length}ifelse def + 0 1 names_len 1 sub{ + /names_index xdf + new_LookupTables names_index get dup length 256 ge{0 get length}{length}ifelse lut_entry_len ne{ + /AliasedColorants false def + exit + }{ + new_LookupTables names_index get 0 get null eq{ + dup/Names get names_index get/name xdf + name(Cyan)eq name(Magenta)eq name(Yellow)eq name(Black)eq + or or or not{ + /AliasedColorants false def + exit + }if + }if + }ifelse + }for + lut_entry_len 1 eq{ + /AliasedColorants false def + }if + AliasedColorants{ + dup begin + /Names new_names def + /LookupTables new_LookupTables def + /AliasedColorants true def + /NComponents lut_entry_len def + /TintMethod NComponents 4 eq{/Subtractive}{/Additive}ifelse def + /MappedCSA TintMethod/Additive eq{/DeviceRGB}{/DeviceCMYK}ifelse def + currentdict/TTTablesIdx known not{ + /TTTablesIdx -1 def + }if + end + }if + }if + end + }if + dup/devicen_colorspace_dict exch AGMCORE_gput + begin + currentdict/AliasedColorants known{ + AliasedColorants + }{ + false + }ifelse + dup not{ + CSA map_csa + }if + /TintTransform load type/nulltype eq or{ + /TintTransform[ + 0 1 Names length 1 sub + { + /TTTablesIdx TTTablesIdx 1 add def + dup LookupTables exch get dup 0 get null eq + { + 1 index + Names exch get + dup(Cyan)eq + { + pop exch + LookupTables length exch sub + /index cvx + 0 0 0 + } + { + dup(Magenta)eq + { + pop exch + LookupTables length exch sub + /index cvx + 0/exch cvx 0 0 + }{ + (Yellow)eq + { + exch + LookupTables length exch sub + /index cvx + 0 0 3 -1/roll cvx 0 + }{ + exch + LookupTables length exch sub + /index cvx + 0 0 0 4 -1/roll cvx + }ifelse + }ifelse + }ifelse + 5 -1/roll cvx/astore cvx + }{ + dup length 1 sub + LookupTables length 4 -1 roll sub 1 add + /index cvx/mul cvx/round cvx/cvi cvx/get cvx + }ifelse + Names length TTTablesIdx add 1 add 1/roll cvx + }for + Names length[/pop cvx]cvx/repeat cvx + NComponents Names length + TintMethod/Subtractive eq + { + subtractive_blend + }{ + additive_blend + }ifelse + ]cvx bdf + }if + AGMCORE_host_sep{ + Names convert_to_process{ + exec_tint_transform + } + { + currentdict/AliasedColorants known{ + AliasedColorants not + }{ + false + }ifelse + 5 dict begin + /AvoidAliasedColorants xdf + /painted? false def + /names_index 0 def + /names_len Names length def + AvoidAliasedColorants{ + /currentspotalias current_spot_alias def + false set_spot_alias + }if + Names{ + AGMCORE_is_cmyk_sep{ + dup(Cyan)eq AGMCORE_cyan_plate and exch + dup(Magenta)eq AGMCORE_magenta_plate and exch + dup(Yellow)eq AGMCORE_yellow_plate and exch + (Black)eq AGMCORE_black_plate and or or or{ + /devicen_colorspace_dict AGMCORE_gget/TintProc[ + Names names_index/devn_makecustomcolor cvx + ]cvx ddf + /painted? true def + }if + painted?{exit}if + }{ + 0 0 0 0 5 -1 roll findcmykcustomcolor 1 setcustomcolor currentgray 0 eq{ + /devicen_colorspace_dict AGMCORE_gget/TintProc[ + Names names_index/devn_makecustomcolor cvx + ]cvx ddf + /painted? true def + exit + }if + }ifelse + /names_index names_index 1 add def + }forall + AvoidAliasedColorants{ + currentspotalias set_spot_alias + }if + painted?{ + /devicen_colorspace_dict AGMCORE_gget/names_index names_index put + }{ + /devicen_colorspace_dict AGMCORE_gget/TintProc[ + names_len[/pop cvx]cvx/repeat cvx 1/setseparationgray cvx + 0 0 0 0/setcmykcolor cvx + ]cvx ddf + }ifelse + end + }ifelse + } + { + AGMCORE_in_rip_sep{ + Names convert_to_process not + }{ + level3 + }ifelse + { + [/DeviceN Names MappedCSA/TintTransform load]setcolorspace_opt + /TintProc level3 not AGMCORE_in_rip_sep and{ + [ + Names/length cvx[/pop cvx]cvx/repeat cvx + ]cvx bdf + }{ + {setcolor}bdf + }ifelse + }{ + exec_tint_transform + }ifelse + }ifelse + set_crd + /AliasedColorants false def + end +}def +/setindexedcolorspace +{ + dup/indexed_colorspace_dict exch AGMCORE_gput + begin + currentdict/CSDBase known{ + CSDBase/CSD get_res begin + currentdict/Names known{ + currentdict devncs + }{ + 1 currentdict sepcs + }ifelse + AGMCORE_host_sep{ + 4 dict begin + /compCnt/Names where{pop Names length}{1}ifelse def + /NewLookup HiVal 1 add string def + 0 1 HiVal{ + /tableIndex xdf + Lookup dup type/stringtype eq{ + compCnt tableIndex map_index + }{ + exec + }ifelse + /Names where{ + pop setdevicencolor + }{ + setsepcolor + }ifelse + currentgray + tableIndex exch + 255 mul cvi + NewLookup 3 1 roll put + }for + [/Indexed currentcolorspace HiVal NewLookup]setcolorspace_opt + end + }{ + level3 + { + currentdict/Names known{ + [/Indexed[/DeviceN Names MappedCSA/TintTransform load]HiVal Lookup]setcolorspace_opt + }{ + [/Indexed[/Separation Name MappedCSA sep_proc_name load]HiVal Lookup]setcolorspace_opt + }ifelse + }{ + [/Indexed MappedCSA HiVal + [ + currentdict/Names known{ + Lookup dup type/stringtype eq + {/exch cvx CSDBase/CSD get_res/Names get length dup/mul cvx exch/getinterval cvx{255 div}/forall cvx} + {/exec cvx}ifelse + /TintTransform load/exec cvx + }{ + Lookup dup type/stringtype eq + {/exch cvx/get cvx 255/div cvx} + {/exec cvx}ifelse + CSDBase/CSD get_res/MappedCSA get sep_proc_name exch pop/load cvx/exec cvx + }ifelse + ]cvx + ]setcolorspace_opt + }ifelse + }ifelse + end + set_crd + } + { + CSA map_csa + AGMCORE_host_sep level2 not and{ + 0 0 0 0 setcmykcolor + }{ + [/Indexed MappedCSA + level2 not has_color not and{ + dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or{ + pop[/DeviceGray] + }if + HiVal GrayLookup + }{ + HiVal + currentdict/RangeArray known{ + { + /indexed_colorspace_dict AGMCORE_gget begin + Lookup exch + dup HiVal gt{ + pop HiVal + }if + NComponents mul NComponents getinterval{}forall + NComponents 1 sub -1 0{ + RangeArray exch 2 mul 2 getinterval aload pop map255_to_range + NComponents 1 roll + }for + end + }bind + }{ + Lookup + }ifelse + }ifelse + ]setcolorspace_opt + set_crd + }ifelse + }ifelse + end +}def +/setindexedcolor +{ + AGMCORE_host_sep{ + /indexed_colorspace_dict AGMCORE_gget + begin + currentdict/CSDBase known{ + CSDBase/CSD get_res begin + currentdict/Names known{ + map_indexed_devn + devn + } + { + Lookup 1 3 -1 roll map_index + sep + }ifelse + end + }{ + Lookup MappedCSA/DeviceCMYK eq{4}{1}ifelse 3 -1 roll + map_index + MappedCSA/DeviceCMYK eq{setcmykcolor}{setgray}ifelse + }ifelse + end + }{ + level3 not AGMCORE_in_rip_sep and/indexed_colorspace_dict AGMCORE_gget/CSDBase known and{ + /indexed_colorspace_dict AGMCORE_gget/CSDBase get/CSD get_res begin + map_indexed_devn + devn + end + } + { + setcolor + }ifelse + }ifelse +}def +/ignoreimagedata +{ + currentoverprint not{ + gsave + dup clonedict begin + 1 setgray + /Decode[0 1]def + /DataSourcedef + /MultipleDataSources false def + /BitsPerComponent 8 def + currentdict end + systemdict/image gx + grestore + }if + consumeimagedata +}def +/add_res +{ + dup/CSD eq{ + pop + //Adobe_AGM_Core begin + /AGMCORE_CSD_cache load 3 1 roll put + end + }{ + defineresource pop + }ifelse +}def +/del_res +{ + { + aload pop exch + dup/CSD eq{ + pop + {//Adobe_AGM_Core/AGMCORE_CSD_cache get exch undef}forall + }{ + exch + {1 index undefineresource}forall + pop + }ifelse + }forall +}def +/get_res +{ + dup/CSD eq{ + pop + dup type dup/nametype eq exch/stringtype eq or{ + AGMCORE_CSD_cache exch get + }if + }{ + findresource + }ifelse +}def +/get_csa_by_name +{ + dup type dup/nametype eq exch/stringtype eq or{ + /CSA get_res + }if +}def +/paintproc_buf_init +{ + /count get 0 0 put +}def +/paintproc_buf_next +{ + dup/count get dup 0 get + dup 3 1 roll + 1 add 0 xpt + get +}def +/cachepaintproc_compress +{ + 5 dict begin + currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def + /ppdict 20 dict def + /string_size 16000 def + /readbuffer string_size string def + currentglobal true setglobal + ppdict 1 array dup 0 1 put/count xpt + setglobal + /LZWFilter + { + exch + dup length 0 eq{ + pop + }{ + ppdict dup length 1 sub 3 -1 roll put + }ifelse + {string_size}{0}ifelse string + }/LZWEncode filter def + { + ReadFilter readbuffer readstring + exch LZWFilter exch writestring + not{exit}if + }loop + LZWFilter closefile + ppdict + end +}def +/cachepaintproc +{ + 2 dict begin + currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def + /ppdict 20 dict def + currentglobal true setglobal + ppdict 1 array dup 0 1 put/count xpt + setglobal + { + ReadFilter 16000 string readstring exch + ppdict dup length 1 sub 3 -1 roll put + not{exit}if + }loop + ppdict dup dup length 1 sub()put + end +}def +/make_pattern +{ + exch clonedict exch + dup matrix currentmatrix matrix concatmatrix 0 0 3 2 roll itransform + exch 3 index/XStep get 1 index exch 2 copy div cvi mul sub sub + exch 3 index/YStep get 1 index exch 2 copy div cvi mul sub sub + matrix translate exch matrix concatmatrix + 1 index begin + BBox 0 get XStep div cvi XStep mul/xshift exch neg def + BBox 1 get YStep div cvi YStep mul/yshift exch neg def + BBox 0 get xshift add + BBox 1 get yshift add + BBox 2 get xshift add + BBox 3 get yshift add + 4 array astore + /BBox exch def + [xshift yshift/translate load null/exec load]dup + 3/PaintProc load put cvx/PaintProc exch def + end + gsave 0 setgray + makepattern + grestore +}def +/set_pattern +{ + dup/PatternType get 1 eq{ + dup/PaintType get 1 eq{ + currentoverprint sop[/DeviceGray]setcolorspace 0 setgray + }if + }if + setpattern +}def +/setcolorspace_opt +{ + dup currentcolorspace eq{pop}{setcolorspace}ifelse +}def +/updatecolorrendering +{ + currentcolorrendering/RenderingIntent known{ + currentcolorrendering/RenderingIntent get + } + { + Intent/AbsoluteColorimetric eq + { + /absolute_colorimetric_crd AGMCORE_gget dup null eq + } + { + Intent/RelativeColorimetric eq + { + /relative_colorimetric_crd AGMCORE_gget dup null eq + } + { + Intent/Saturation eq + { + /saturation_crd AGMCORE_gget dup null eq + } + { + /perceptual_crd AGMCORE_gget dup null eq + }ifelse + }ifelse + }ifelse + { + pop null + } + { + /RenderingIntent known{null}{Intent}ifelse + }ifelse + }ifelse + Intent ne{ + Intent/ColorRendering{findresource}stopped + { + pop pop systemdict/findcolorrendering known + { + Intent findcolorrendering + { + /ColorRendering findresource true exch + } + { + /ColorRendering findresource + product(Xerox Phaser 5400)ne + exch + }ifelse + dup Intent/AbsoluteColorimetric eq + { + /absolute_colorimetric_crd exch AGMCORE_gput + } + { + Intent/RelativeColorimetric eq + { + /relative_colorimetric_crd exch AGMCORE_gput + } + { + Intent/Saturation eq + { + /saturation_crd exch AGMCORE_gput + } + { + Intent/Perceptual eq + { + /perceptual_crd exch AGMCORE_gput + } + { + pop + }ifelse + }ifelse + }ifelse + }ifelse + 1 index{exch}{pop}ifelse + } + {false}ifelse + } + {true}ifelse + { + dup begin + currentdict/TransformPQR known{ + currentdict/TransformPQR get aload pop + 3{{}eq 3 1 roll}repeat or or + } + {true}ifelse + currentdict/MatrixPQR known{ + currentdict/MatrixPQR get aload pop + 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll + 0.0 eq 9 1 roll 1.0 eq 9 1 roll 0.0 eq 9 1 roll + 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq + and and and and and and and and + } + {true}ifelse + end + or + { + clonedict begin + /TransformPQR[ + {4 -1 roll 3 get dup 3 1 roll sub 5 -1 roll 3 get 3 -1 roll sub div + 3 -1 roll 3 get 3 -1 roll 3 get dup 4 1 roll sub mul add}bind + {4 -1 roll 4 get dup 3 1 roll sub 5 -1 roll 4 get 3 -1 roll sub div + 3 -1 roll 4 get 3 -1 roll 4 get dup 4 1 roll sub mul add}bind + {4 -1 roll 5 get dup 3 1 roll sub 5 -1 roll 5 get 3 -1 roll sub div + 3 -1 roll 5 get 3 -1 roll 5 get dup 4 1 roll sub mul add}bind + ]def + /MatrixPQR[0.8951 -0.7502 0.0389 0.2664 1.7135 -0.0685 -0.1614 0.0367 1.0296]def + /RangePQR[-0.3227950745 2.3229645538 -1.5003771057 3.5003465881 -0.1369979095 2.136967392]def + currentdict end + }if + setcolorrendering_opt + }if + }if +}def +/set_crd +{ + AGMCORE_host_sep not level2 and{ + currentdict/ColorRendering known{ + ColorRendering/ColorRendering{findresource}stopped not{setcolorrendering_opt}if + }{ + currentdict/Intent known{ + updatecolorrendering + }if + }ifelse + currentcolorspace dup type/arraytype eq + {0 get}if + /DeviceRGB eq + { + currentdict/UCR known + {/UCR}{/AGMCORE_currentucr}ifelse + load setundercolorremoval + currentdict/BG known + {/BG}{/AGMCORE_currentbg}ifelse + load setblackgeneration + }if + }if +}def +/set_ucrbg +{ + dup null eq{pop/AGMCORE_currentbg load}{/Procedure get_res}ifelse setblackgeneration + dup null eq{pop/AGMCORE_currentucr load}{/Procedure get_res}ifelse setundercolorremoval +}def +/setcolorrendering_opt +{ + dup currentcolorrendering eq{ + pop + }{ + product(HP Color LaserJet 2605)anchorsearch{ + pop pop pop + }{ + pop + clonedict + begin + /Intent Intent def + currentdict + end + setcolorrendering + }ifelse + }ifelse +}def +/cpaint_gcomp +{ + convert_to_process//Adobe_AGM_Core/AGMCORE_ConvertToProcess xddf + //Adobe_AGM_Core/AGMCORE_ConvertToProcess get not + { + (%end_cpaint_gcomp)flushinput + }if +}def +/cpaint_gsep +{ + //Adobe_AGM_Core/AGMCORE_ConvertToProcess get + { + (%end_cpaint_gsep)flushinput + }if +}def +/cpaint_gend +{np}def +/T1_path +{ + currentfile token pop currentfile token pop mo + { + currentfile token pop dup type/stringtype eq + {pop exit}if + 0 exch rlineto + currentfile token pop dup type/stringtype eq + {pop exit}if + 0 rlineto + }loop +}def +/T1_gsave + level3 + {/clipsave} + {/gsave}ifelse + load def +/T1_grestore + level3 + {/cliprestore} + {/grestore}ifelse + load def +/set_spot_alias_ary +{ + dup inherit_aliases + //Adobe_AGM_Core/AGMCORE_SpotAliasAry xddf +}def +/set_spot_normalization_ary +{ + dup inherit_aliases + dup length + /AGMCORE_SpotAliasAry where{pop AGMCORE_SpotAliasAry length add}if + array + //Adobe_AGM_Core/AGMCORE_SpotAliasAry2 xddf + /AGMCORE_SpotAliasAry where{ + pop + AGMCORE_SpotAliasAry2 0 AGMCORE_SpotAliasAry putinterval + AGMCORE_SpotAliasAry length + }{0}ifelse + AGMCORE_SpotAliasAry2 3 1 roll exch putinterval + true set_spot_alias +}def +/inherit_aliases +{ + {dup/Name get map_alias{/CSD put}{pop}ifelse}forall +}def +/set_spot_alias +{ + /AGMCORE_SpotAliasAry2 where{ + /AGMCORE_current_spot_alias 3 -1 roll put + }{ + pop + }ifelse +}def +/current_spot_alias +{ + /AGMCORE_SpotAliasAry2 where{ + /AGMCORE_current_spot_alias get + }{ + false + }ifelse +}def +/map_alias +{ + /AGMCORE_SpotAliasAry2 where{ + begin + /AGMCORE_name xdf + false + AGMCORE_SpotAliasAry2{ + dup/Name get AGMCORE_name eq{ + /CSD get/CSD get_res + exch pop true + exit + }{ + pop + }ifelse + }forall + end + }{ + pop false + }ifelse +}bdf +/spot_alias +{ + true set_spot_alias + /AGMCORE_&setcustomcolor AGMCORE_key_known not{ + //Adobe_AGM_Core/AGMCORE_&setcustomcolor/setcustomcolor load put + }if + /customcolor_tint 1 AGMCORE_gput + //Adobe_AGM_Core begin + /setcustomcolor + { + //Adobe_AGM_Core begin + dup/customcolor_tint exch AGMCORE_gput + 1 index aload pop pop 1 eq exch 1 eq and exch 1 eq and exch 1 eq and not + current_spot_alias and{1 index 4 get map_alias}{false}ifelse + { + false set_spot_alias + /sep_colorspace_dict AGMCORE_gget null ne + {/sep_colorspace_dict AGMCORE_gget/ForeignContent known not}{false}ifelse + 3 1 roll 2 index{ + exch pop/sep_tint AGMCORE_gget exch + }if + mark 3 1 roll + setsepcolorspace + counttomark 0 ne{ + setsepcolor + }if + pop + not{/sep_tint 1.0 AGMCORE_gput/sep_colorspace_dict AGMCORE_gget/ForeignContent true put}if + pop + true set_spot_alias + }{ + AGMCORE_&setcustomcolor + }ifelse + end + }bdf + end +}def +/begin_feature +{ + Adobe_AGM_Core/AGMCORE_feature_dictCount countdictstack put + count Adobe_AGM_Core/AGMCORE_feature_opCount 3 -1 roll put + {Adobe_AGM_Core/AGMCORE_feature_ctm matrix currentmatrix put}if +}def +/end_feature +{ + 2 dict begin + /spd/setpagedevice load def + /setpagedevice{get_gstate spd set_gstate}def + stopped{$error/newerror false put}if + end + count Adobe_AGM_Core/AGMCORE_feature_opCount get sub dup 0 gt{{pop}repeat}{pop}ifelse + countdictstack Adobe_AGM_Core/AGMCORE_feature_dictCount get sub dup 0 gt{{end}repeat}{pop}ifelse + {Adobe_AGM_Core/AGMCORE_feature_ctm get setmatrix}if +}def +/set_negative +{ + //Adobe_AGM_Core begin + /AGMCORE_inverting exch def + level2{ + currentpagedevice/NegativePrint known AGMCORE_distilling not and{ + currentpagedevice/NegativePrint get//Adobe_AGM_Core/AGMCORE_inverting get ne{ + true begin_feature true{ + <>setpagedevice + }end_feature + }if + /AGMCORE_inverting false def + }if + }if + AGMCORE_inverting{ + [{1 exch sub}/exec load dup currenttransfer exch]cvx bind settransfer + AGMCORE_distilling{ + erasepage + }{ + gsave np clippath 1/setseparationgray where{pop setseparationgray}{setgray}ifelse + /AGMIRS_&fill where{pop AGMIRS_&fill}{fill}ifelse grestore + }ifelse + }if + end +}def +/lw_save_restore_override{ + /md where{ + pop + md begin + initializepage + /initializepage{}def + /pmSVsetup{}def + /endp{}def + /pse{}def + /psb{}def + /orig_showpage where + {pop} + {/orig_showpage/showpage load def} + ifelse + /showpage{orig_showpage gR}def + end + }if +}def +/pscript_showpage_override{ + /NTPSOct95 where + { + begin + showpage + save + /showpage/restore load def + /restore{exch pop}def + end + }if +}def +/driver_media_override +{ + /md where{ + pop + md/initializepage known{ + md/initializepage{}put + }if + md/rC known{ + md/rC{4{pop}repeat}put + }if + }if + /mysetup where{ + /mysetup[1 0 0 1 0 0]put + }if + Adobe_AGM_Core/AGMCORE_Default_CTM matrix currentmatrix put + level2 + {Adobe_AGM_Core/AGMCORE_Default_PageSize currentpagedevice/PageSize get put}if +}def +/capture_mysetup +{ + /Pscript_Win_Data where{ + pop + Pscript_Win_Data/mysetup known{ + Adobe_AGM_Core/save_mysetup Pscript_Win_Data/mysetup get put + }if + }if +}def +/restore_mysetup +{ + /Pscript_Win_Data where{ + pop + Pscript_Win_Data/mysetup known{ + Adobe_AGM_Core/save_mysetup known{ + Pscript_Win_Data/mysetup Adobe_AGM_Core/save_mysetup get put + Adobe_AGM_Core/save_mysetup undef + }if + }if + }if +}def +/driver_check_media_override +{ + /PrepsDict where + {pop} + { + Adobe_AGM_Core/AGMCORE_Default_CTM get matrix currentmatrix ne + Adobe_AGM_Core/AGMCORE_Default_PageSize get type/arraytype eq + { + Adobe_AGM_Core/AGMCORE_Default_PageSize get 0 get currentpagedevice/PageSize get 0 get eq and + Adobe_AGM_Core/AGMCORE_Default_PageSize get 1 get currentpagedevice/PageSize get 1 get eq and + }if + { + Adobe_AGM_Core/AGMCORE_Default_CTM get setmatrix + }if + }ifelse +}def +AGMCORE_err_strings begin + /AGMCORE_bad_environ(Environment not satisfactory for this job. Ensure that the PPD is correct or that the PostScript level requested is supported by this printer. )def + /AGMCORE_color_space_onhost_seps(This job contains colors that will not separate with on-host methods. )def + /AGMCORE_invalid_color_space(This job contains an invalid color space. )def +end +/set_def_ht +{AGMCORE_def_ht sethalftone}def +/set_def_flat +{AGMCORE_Default_flatness setflat}def +end +systemdict/setpacking known +{setpacking}if +%%EndResource +%%BeginResource: procset Adobe_CoolType_Core 2.31 0 %%Copyright: Copyright 1997-2006 Adobe Systems Incorporated. All Rights Reserved. %%Version: 2.31 0 10 dict begin /Adobe_CoolType_Passthru currentdict def /Adobe_CoolType_Core_Defined userdict/Adobe_CoolType_Core known def Adobe_CoolType_Core_Defined {/Adobe_CoolType_Core userdict/Adobe_CoolType_Core get def} if userdict/Adobe_CoolType_Core 70 dict dup begin put /Adobe_CoolType_Version 2.31 def /Level2? systemdict/languagelevel known dup {pop systemdict/languagelevel get 2 ge} if def Level2? not { /currentglobal false def /setglobal/pop load def /gcheck{pop false}bind def /currentpacking false def /setpacking/pop load def /SharedFontDirectory 0 dict def } if currentpacking true setpacking currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def end setglobal currentglobal true setglobal userdict/Adobe_CoolType_GVMFonts known not {userdict/Adobe_CoolType_GVMFonts 10 dict put} if setglobal currentglobal false setglobal userdict/Adobe_CoolType_LVMFonts known not {userdict/Adobe_CoolType_LVMFonts 10 dict put} if setglobal /ct_VMDictPut { dup gcheck{Adobe_CoolType_GVMFonts}{Adobe_CoolType_LVMFonts}ifelse 3 1 roll put }bind def /ct_VMDictUndef { dup Adobe_CoolType_GVMFonts exch known {Adobe_CoolType_GVMFonts exch undef} { dup Adobe_CoolType_LVMFonts exch known {Adobe_CoolType_LVMFonts exch undef} {pop} ifelse }ifelse }bind def /ct_str1 1 string def /ct_xshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_yshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 exch rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_xyshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { {_ct_na _ct_i 1 add get}stopped {pop pop pop} { _ct_x _ct_y moveto rmoveto } ifelse } ifelse /_ct_i _ct_i 2 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /xsh{{@xshow}stopped{Adobe_CoolType_Data begin ct_xshow end}if}bind def /ysh{{@yshow}stopped{Adobe_CoolType_Data begin ct_yshow end}if}bind def /xysh{{@xyshow}stopped{Adobe_CoolType_Data begin ct_xyshow end}if}bind def currentglobal true setglobal /ct_T3Defs { /BuildChar { 1 index/Encoding get exch get 1 index/BuildGlyph get exec }bind def /BuildGlyph { exch begin GlyphProcs exch get exec end }bind def }bind def setglobal /@_SaveStackLevels { Adobe_CoolType_Data begin /@vmState currentglobal def false setglobal @opStackCountByLevel @opStackLevel 2 copy known not { 2 copy 3 dict dup/args 7 index 5 add array put put get } { get dup/args get dup length 3 index lt { dup length 5 add array exch 1 index exch 0 exch putinterval 1 index exch/args exch put } {pop} ifelse } ifelse begin count 1 sub 1 index lt {pop count} if dup/argCount exch def dup 0 gt { args exch 0 exch getinterval astore pop } {pop} ifelse count /restCount exch def end /@opStackLevel @opStackLevel 1 add def countdictstack 1 sub @dictStackCountByLevel exch @dictStackLevel exch put /@dictStackLevel @dictStackLevel 1 add def @vmState setglobal end }bind def /@_RestoreStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def @opStackCountByLevel @opStackLevel get begin count restCount sub dup 0 gt {{pop}repeat} {pop} ifelse args 0 argCount getinterval{}forall end /@dictStackLevel @dictStackLevel 1 sub def @dictStackCountByLevel @dictStackLevel get end countdictstack exch sub dup 0 gt {{end}repeat} {pop} ifelse }bind def /@_PopStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def /@dictStackLevel @dictStackLevel 1 sub def end }bind def /@Raise { exch cvx exch errordict exch get exec stop }bind def /@ReRaise { cvx $error/errorname get errordict exch get exec stop }bind def /@Stopped { 0 @#Stopped }bind def /@#Stopped { @_SaveStackLevels stopped {@_RestoreStackLevels true} {@_PopStackLevels false} ifelse }bind def /@Arg { Adobe_CoolType_Data begin @opStackCountByLevel @opStackLevel 1 sub get begin args exch argCount 1 sub exch sub get end end }bind def currentglobal true setglobal /CTHasResourceForAllBug Level2? { 1 dict dup /@shouldNotDisappearDictValue true def Adobe_CoolType_Data exch/@shouldNotDisappearDict exch put begin count @_SaveStackLevels {(*){pop stop}128 string/Category resourceforall} stopped pop @_RestoreStackLevels currentdict Adobe_CoolType_Data/@shouldNotDisappearDict get dup 3 1 roll ne dup 3 1 roll { /@shouldNotDisappearDictValue known { { end currentdict 1 index eq {pop exit} if } loop } if } { pop end } ifelse } {false} ifelse def true setglobal /CTHasResourceStatusBug Level2? { mark {/steveamerige/Category resourcestatus} stopped {cleartomark true} {cleartomark currentglobal not} ifelse } {false} ifelse def setglobal /CTResourceStatus { mark 3 1 roll /Category findresource begin ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse end }bind def /CTWorkAroundBugs { Level2? { /cid_PreLoad/ProcSet resourcestatus { pop pop currentglobal mark { (*) { dup/CMap CTHasResourceStatusBug {CTResourceStatus} {resourcestatus} ifelse { pop dup 0 eq exch 1 eq or { dup/CMap findresource gcheck setglobal /CMap undefineresource } { pop CTHasResourceForAllBug {exit} {stop} ifelse } ifelse } {pop} ifelse } 128 string/CMap resourceforall } stopped {cleartomark} stopped pop setglobal } if } if }bind def /ds { Adobe_CoolType_Core begin CTWorkAroundBugs /mo/moveto load def /nf/newencodedfont load def /msf{makefont setfont}bind def /uf{dup undefinefont ct_VMDictUndef}bind def /ur/undefineresource load def /chp/charpath load def /awsh/awidthshow load def /wsh/widthshow load def /ash/ashow load def /@xshow/xshow load def /@yshow/yshow load def /@xyshow/xyshow load def /@cshow/cshow load def /sh/show load def /rp/repeat load def /.n/.notdef def end currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /AddWidths? false def /CC 0 def /charcode 2 string def /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def /InVMFontsByCMap 10 dict def /InVMDeepCopiedFonts 10 dict def end setglobal }bind def /dt { currentdict Adobe_CoolType_Core eq {end} if }bind def /ps { Adobe_CoolType_Core begin Adobe_CoolType_GVMFonts begin Adobe_CoolType_LVMFonts begin SharedFontDirectory begin }bind def /pt { end end end end }bind def /unload { systemdict/languagelevel known { systemdict/languagelevel get 2 ge { userdict/Adobe_CoolType_Core 2 copy known {undef} {pop pop} ifelse } if } if }bind def /ndf { 1 index where {pop pop pop} {dup xcheck{bind}if def} ifelse }def /findfont systemdict begin userdict begin /globaldict where{/globaldict get begin}if dup where pop exch get /globaldict where{pop end}if end end Adobe_CoolType_Core_Defined {/systemfindfont exch def} { /findfont 1 index def /systemfindfont exch def } ifelse /undefinefont {pop}ndf /copyfont { currentglobal 3 1 roll 1 index gcheck setglobal dup null eq{0}{dup length}ifelse 2 index length add 1 add dict begin exch { 1 index/FID eq {pop pop} {def} ifelse } forall dup null eq {pop} {{def}forall} ifelse currentdict end exch setglobal }bind def /copyarray { currentglobal exch dup gcheck setglobal dup length array copy exch setglobal }bind def /newencodedfont { currentglobal { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } { FontDirectory 3 index known {FontDirectory 3 index get/FontReferenced known} { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } ifelse } ifelse dup { 3 index findfont/FontReferenced get 2 index dup type/nametype eq {findfont} if ne {pop false} if } if dup { 1 index dup type/nametype eq {findfont} if dup/CharStrings known { /CharStrings get length 4 index findfont/CharStrings get length ne { pop false } if } {pop} ifelse } if { pop 1 index findfont /Encoding get exch 0 1 255 {2 copy get 3 index 3 1 roll put} for pop pop pop } { currentglobal 4 1 roll dup type/nametype eq {findfont} if dup gcheck setglobal dup dup maxlength 2 add dict begin exch { 1 index/FID ne 2 index/Encoding ne and {def} {pop pop} ifelse } forall /FontReferenced exch def /Encoding exch dup length array copy def /FontName 1 index dup type/stringtype eq{cvn}if def dup currentdict end definefont ct_VMDictPut setglobal } ifelse }bind def /SetSubstituteStrategy { $SubstituteFont begin dup type/dicttype ne {0 dict} if currentdict/$Strategies known { exch $Strategies exch 2 copy known { get 2 copy maxlength exch maxlength add dict begin {def}forall {def}forall currentdict dup/$Init known {dup/$Init get exec} if end /$Strategy exch def } {pop pop pop} ifelse } {pop pop} ifelse end }bind def /scff { $SubstituteFont begin dup type/stringtype eq {dup length exch} {null} ifelse /$sname exch def /$slen exch def /$inVMIndex $sname null eq { 1 index $str cvs dup length $slen sub $slen getinterval cvn } {$sname} ifelse def end {findfont} @Stopped { dup length 8 add string exch 1 index 0(BadFont:)putinterval 1 index exch 8 exch dup length string cvs putinterval cvn {findfont} @Stopped {pop/Courier findfont} if } if $SubstituteFont begin /$sname null def /$slen 0 def /$inVMIndex null def end }bind def /isWidthsOnlyFont { dup/WidthsOnly known {pop pop true} { dup/FDepVector known {/FDepVector get{isWidthsOnlyFont dup{exit}if}forall} { dup/FDArray known {/FDArray get{isWidthsOnlyFont dup{exit}if}forall} {pop} ifelse } ifelse } ifelse }bind def /ct_StyleDicts 4 dict dup begin /Adobe-Japan1 4 dict dup begin Level2? { /Serif /HeiseiMin-W3-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMin-W3} { /CIDFont/Category resourcestatus { pop pop /HeiseiMin-W3/CIDFont resourcestatus {pop pop/HeiseiMin-W3} {/Ryumin-Light} ifelse } {/Ryumin-Light} ifelse } ifelse def /SansSerif /HeiseiKakuGo-W5-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiKakuGo-W5} { /CIDFont/Category resourcestatus { pop pop /HeiseiKakuGo-W5/CIDFont resourcestatus {pop pop/HeiseiKakuGo-W5} {/GothicBBB-Medium} ifelse } {/GothicBBB-Medium} ifelse } ifelse def /HeiseiMaruGo-W4-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMaruGo-W4} { /CIDFont/Category resourcestatus { pop pop /HeiseiMaruGo-W4/CIDFont resourcestatus {pop pop/HeiseiMaruGo-W4} { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } ifelse /RoundSansSerif exch def /Default Serif def } { /Serif/Ryumin-Light def /SansSerif/GothicBBB-Medium def { (fonts/Jun101-Light-83pv-RKSJ-H)status }stopped {pop}{ {pop pop pop pop/Jun101-Light} {SansSerif} ifelse /RoundSansSerif exch def }ifelse /Default Serif def } ifelse end def /Adobe-Korea1 4 dict dup begin /Serif/HYSMyeongJo-Medium def /SansSerif/HYGoThic-Medium def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-GB1 4 dict dup begin /Serif/STSong-Light def /SansSerif/STHeiti-Regular def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-CNS1 4 dict dup begin /Serif/MKai-Medium def /SansSerif/MHei-Medium def /RoundSansSerif SansSerif def /Default Serif def end def end def Level2?{currentglobal true setglobal}if /ct_BoldRomanWidthProc { stringwidth 1 index 0 ne{exch .03 add exch}if setcharwidth 0 0 }bind def /ct_Type0WidthProc { dup stringwidth 0 0 moveto 2 index true charpath pathbbox 0 -1 7 index 2 div .88 setcachedevice2 pop 0 0 }bind def /ct_Type0WMode1WidthProc { dup stringwidth pop 2 div neg -0.88 2 copy moveto 0 -1 5 -1 roll true charpath pathbbox setcachedevice }bind def /cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_BoldBaseFont 11 dict begin /FontType 3 def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /Encoding cHexEncoding def /_setwidthProc/ct_BoldRomanWidthProc load def /_bcstr1 1 string def /BuildChar { exch begin _basefont setfont _bcstr1 dup 0 4 -1 roll put dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def systemdict/composefont known { /ct_DefineIdentity-H { /Identity-H/CMap resourcestatus { pop pop } { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse } def /ct_BoldBaseCIDFont 11 dict begin /CIDFontType 1 def /CIDFontName/ct_BoldBaseCIDFont def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /_setwidthProc/ct_Type0WidthProc load def /_bcstr2 2 string def /BuildGlyph { exch begin _basefont setfont _bcstr2 1 2 index 256 mod put _bcstr2 0 3 -1 roll 256 idiv put _bcstr2 dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def }if Level2?{setglobal}if /ct_CopyFont{ { 1 index/FID ne 2 index/UniqueID ne and {def}{pop pop}ifelse }forall }bind def /ct_Type0CopyFont { exch dup length dict begin ct_CopyFont [ exch FDepVector { dup/FontType get 0 eq { 1 index ct_Type0CopyFont /_ctType0 exch definefont } { /_ctBaseFont exch 2 index exec } ifelse exch } forall pop ] /FDepVector exch def currentdict end }bind def /ct_MakeBoldFont { dup/ct_SyntheticBold known { dup length 3 add dict begin ct_CopyFont /ct_StrokeWidth .03 0 FontMatrix idtransform pop def /ct_SyntheticBold true def currentdict end definefont } { dup dup length 3 add dict begin ct_CopyFont /PaintType 2 def /StrokeWidth .03 0 FontMatrix idtransform pop def /dummybold currentdict end definefont dup/FontType get dup 9 ge exch 11 le and { ct_BoldBaseCIDFont dup length 3 add dict copy begin dup/CIDSystemInfo get/CIDSystemInfo exch def ct_DefineIdentity-H /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefont exch def /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefonto exch def currentdict end /CIDFont defineresource } { ct_BoldBaseFont dup length 3 add dict copy begin /_basefont exch def /_basefonto exch def currentdict end definefont } ifelse } ifelse }bind def /ct_MakeBold{ 1 index 1 index findfont currentglobal 5 1 roll dup gcheck setglobal dup /FontType get 0 eq { dup/WMode known{dup/WMode get 1 eq}{false}ifelse version length 4 ge and {version 0 4 getinterval cvi 2015 ge} {true} ifelse {/ct_Type0WidthProc} {/ct_Type0WMode1WidthProc} ifelse ct_BoldBaseFont/_setwidthProc 3 -1 roll load put {ct_MakeBoldFont}ct_Type0CopyFont definefont } { dup/_fauxfont known not 1 index/SubstMaster known not and { ct_BoldBaseFont/_setwidthProc /ct_BoldRomanWidthProc load put ct_MakeBoldFont } { 2 index 2 index eq {exch pop } { dup length dict begin ct_CopyFont currentdict end definefont } ifelse } ifelse } ifelse pop pop pop setglobal }bind def /?str1 256 string def /?set { $SubstituteFont begin /$substituteFound false def /$fontname 1 index def /$doSmartSub false def end dup findfont $SubstituteFont begin $substituteFound {false} { dup/FontName known { dup/FontName get $fontname eq 1 index/DistillerFauxFont known not and /currentdistillerparams where {pop false 2 index isWidthsOnlyFont not and} if } {false} ifelse } ifelse exch pop /$doSmartSub true def end { 5 1 roll pop pop pop pop findfont } { 1 index findfont dup/FontType get 3 eq { 6 1 roll pop pop pop pop pop false } {pop true} ifelse { $SubstituteFont begin pop pop /$styleArray 1 index def /$regOrdering 2 index def pop pop 0 1 $styleArray length 1 sub { $styleArray exch get ct_StyleDicts $regOrdering 2 copy known { get exch 2 copy known not {pop/Default} if get dup type/nametype eq { ?str1 cvs length dup 1 add exch ?str1 exch(-)putinterval exch dup length exch ?str1 exch 3 index exch putinterval add ?str1 exch 0 exch getinterval cvn } { pop pop/Unknown } ifelse } { pop pop pop pop/Unknown } ifelse } for end findfont }if } ifelse currentglobal false setglobal 3 1 roll null copyfont definefont pop setglobal }bind def setpacking userdict/$SubstituteFont 25 dict put 1 dict begin /SubstituteFont dup $error exch 2 copy known {get} {pop pop{pop/Courier}bind} ifelse def /currentdistillerparams where dup { pop pop currentdistillerparams/CannotEmbedFontPolicy 2 copy known {get/Error eq} {pop pop false} ifelse } if not { countdictstack array dictstack 0 get begin userdict begin $SubstituteFont begin /$str 128 string def /$fontpat 128 string def /$slen 0 def /$sname null def /$match false def /$fontname null def /$substituteFound false def /$inVMIndex null def /$doSmartSub true def /$depth 0 def /$fontname null def /$italicangle 26.5 def /$dstack null def /$Strategies 10 dict dup begin /$Type3Underprint { currentglobal exch false setglobal 11 dict begin /UseFont exch $WMode 0 ne { dup length dict copy dup/WMode $WMode put /UseFont exch definefont } if def /FontName $fontname dup type/stringtype eq{cvn}if def /FontType 3 def /FontMatrix[.001 0 0 .001 0 0]def /Encoding 256 array dup 0 1 255{/.notdef put dup}for pop def /FontBBox[0 0 0 0]def /CCInfo 7 dict dup begin /cc null def /x 0 def /y 0 def end def /BuildChar { exch begin CCInfo begin 1 string dup 0 3 index put exch pop /cc exch def UseFont 1000 scalefont setfont cc stringwidth/y exch def/x exch def x y setcharwidth $SubstituteFont/$Strategy get/$Underprint get exec 0 0 moveto cc show x y moveto end end }bind def currentdict end exch setglobal }bind def /$GetaTint 2 dict dup begin /$BuildFont { dup/WMode known {dup/WMode get} {0} ifelse /$WMode exch def $fontname exch dup/FontName known { dup/FontName get dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse exch Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index/FontName get known { pop Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index get null copyfont } {$deepcopyfont} ifelse exch 1 index exch/FontBasedOn exch put dup/FontName $fontname dup type/stringtype eq{cvn}if put definefont Adobe_CoolType_Data/InVMDeepCopiedFonts get begin dup/FontBasedOn get 1 index def end }bind def /$Underprint { gsave x abs y abs gt {/y 1000 def} {/x -1000 def 500 120 translate} ifelse Level2? { [/Separation(All)/DeviceCMYK{0 0 0 1 pop}] setcolorspace } {0 setgray} ifelse 10 setlinewidth x .8 mul [7 3] { y mul 8 div 120 sub x 10 div exch moveto 0 y 4 div neg rlineto dup 0 rlineto 0 y 4 div rlineto closepath gsave Level2? {.2 setcolor} {.8 setgray} ifelse fill grestore stroke } forall pop grestore }bind def end def /$Oblique 1 dict dup begin /$BuildFont { currentglobal exch dup gcheck setglobal null copyfont begin /FontBasedOn currentdict/FontName known { FontName dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse def /FontName $fontname dup type/stringtype eq{cvn}if def /currentdistillerparams where {pop} { /FontInfo currentdict/FontInfo known {FontInfo null copyfont} {2 dict} ifelse dup begin /ItalicAngle $italicangle def /FontMatrix FontMatrix [1 0 ItalicAngle dup sin exch cos div 1 0 0] matrix concatmatrix readonly end 4 2 roll def def } ifelse FontName currentdict end definefont exch setglobal }bind def end def /$None 1 dict dup begin /$BuildFont{}bind def end def end def /$Oblique SetSubstituteStrategy /$findfontByEnum { dup type/stringtype eq{cvn}if dup/$fontname exch def $sname null eq {$str cvs dup length $slen sub $slen getinterval} {pop $sname} ifelse $fontpat dup 0(fonts/*)putinterval exch 7 exch putinterval /$match false def $SubstituteFont/$dstack countdictstack array dictstack put mark { $fontpat 0 $slen 7 add getinterval {/$match exch def exit} $str filenameforall } stopped { cleardictstack currentdict true $SubstituteFont/$dstack get { exch { 1 index eq {pop false} {true} ifelse } {begin false} ifelse } forall pop } if cleartomark /$slen 0 def $match false ne {$match(fonts/)anchorsearch pop pop cvn} {/Courier} ifelse }bind def /$ROS 1 dict dup begin /Adobe 4 dict dup begin /Japan1 [/Ryumin-Light/HeiseiMin-W3 /GothicBBB-Medium/HeiseiKakuGo-W5 /HeiseiMaruGo-W4/Jun101-Light]def /Korea1 [/HYSMyeongJo-Medium/HYGoThic-Medium]def /GB1 [/STSong-Light/STHeiti-Regular]def /CNS1 [/MKai-Medium/MHei-Medium]def end def end def /$cmapname null def /$deepcopyfont { dup/FontType get 0 eq { 1 dict dup/FontName/copied put copyfont begin /FDepVector FDepVector copyarray 0 1 2 index length 1 sub { 2 copy get $deepcopyfont dup/FontName/copied put /copied exch definefont 3 copy put pop pop } for def currentdict end } {$Strategies/$Type3Underprint get exec} ifelse }bind def /$buildfontname { dup/CIDFont findresource/CIDSystemInfo get begin Registry length Ordering length Supplement 8 string cvs 3 copy length 2 add add add string dup 5 1 roll dup 0 Registry putinterval dup 4 index(-)putinterval dup 4 index 1 add Ordering putinterval 4 2 roll add 1 add 2 copy(-)putinterval end 1 add 2 copy 0 exch getinterval $cmapname $fontpat cvs exch anchorsearch {pop pop 3 2 roll putinterval cvn/$cmapname exch def} {pop pop pop pop pop} ifelse length $str 1 index(-)putinterval 1 add $str 1 index $cmapname $fontpat cvs putinterval $cmapname length add $str exch 0 exch getinterval cvn }bind def /$findfontByROS { /$fontname exch def $ROS Registry 2 copy known { get Ordering 2 copy known {get} {pop pop[]} ifelse } {pop pop[]} ifelse false exch { dup/CIDFont resourcestatus { pop pop save 1 index/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get} {false} ifelse exch pop exch restore {pop} {exch pop true exit} ifelse } {pop} ifelse } forall {$str cvs $buildfontname} { false(*) { save exch dup/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get not} {true} ifelse exch/CIDSystemInfo get dup/Registry get Registry eq exch/Ordering get Ordering eq and and {exch restore exch pop true exit} {pop restore} ifelse } $str/CIDFont resourceforall {$buildfontname} {$fontname $findfontByEnum} ifelse } ifelse }bind def end end currentdict/$error known currentdict/languagelevel known and dup {pop $error/SubstituteFont known} if dup {$error} {Adobe_CoolType_Core} ifelse begin { /SubstituteFont /CMap/Category resourcestatus { pop pop { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and { $sname null eq {dup $str cvs dup length $slen sub $slen getinterval cvn} {$sname} ifelse Adobe_CoolType_Data/InVMFontsByCMap get 1 index 2 copy known { get false exch { pop currentglobal { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } { FontDirectory 1 index known {exch pop true exit} { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } ifelse } ifelse } forall } {pop pop false} ifelse { exch pop exch pop } { dup/CMap resourcestatus { pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS } { 128 string cvs dup(-)search { 3 1 roll search { 3 1 roll pop {dup cvi} stopped {pop pop pop pop pop $findfontByEnum} { 4 2 roll pop pop exch length exch 2 index length 2 index sub exch 1 sub -1 0 { $str cvs dup length 4 index 0 4 index 4 3 roll add getinterval exch 1 index exch 3 index exch putinterval dup/CMap resourcestatus { pop pop 4 1 roll pop pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS true exit } {pop} ifelse } for dup type/booleantype eq {pop} {pop pop pop $findfontByEnum} ifelse } ifelse } {pop pop pop $findfontByEnum} ifelse } {pop pop $findfontByEnum} ifelse } ifelse } ifelse } {//SubstituteFont exec} ifelse /$slen 0 def end } } { { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and {$findfontByEnum} {//SubstituteFont exec} ifelse end } } ifelse bind readonly def Adobe_CoolType_Core/scfindfont/systemfindfont load put } { /scfindfont { $SubstituteFont begin dup systemfindfont dup/FontName known {dup/FontName get dup 3 index ne} {/noname true} ifelse dup { /$origfontnamefound 2 index def /$origfontname 4 index def/$substituteFound true def } if exch pop { $slen 0 gt $sname null ne 3 index length $slen gt or and { pop dup $findfontByEnum findfont dup maxlength 1 add dict begin {1 index/FID eq{pop pop}{def}ifelse} forall currentdict end definefont dup/FontName known{dup/FontName get}{null}ifelse $origfontnamefound ne { $origfontname $str cvs print ( substitution revised, using )print dup/FontName known {dup/FontName get}{(unspecified font)} ifelse $str cvs print(.\n)print } if } {exch pop} ifelse } {exch pop} ifelse end }bind def } ifelse end end Adobe_CoolType_Core_Defined not { Adobe_CoolType_Core/findfont { $SubstituteFont begin $depth 0 eq { /$fontname 1 index dup type/stringtype ne{$str cvs}if def /$substituteFound false def } if /$depth $depth 1 add def end scfindfont $SubstituteFont begin /$depth $depth 1 sub def $substituteFound $depth 0 eq and { $inVMIndex null ne {dup $inVMIndex $AddInVMFont} if $doSmartSub { currentdict/$Strategy known {$Strategy/$BuildFont get exec} if } if } if end }bind put } if } if end /$AddInVMFont { exch/FontName 2 copy known { get 1 dict dup begin exch 1 index gcheck def end exch Adobe_CoolType_Data/InVMFontsByCMap get exch $DictAdd } {pop pop pop} ifelse }bind def /$DictAdd { 2 copy known not {2 copy 4 index length dict put} if Level2? not { 2 copy get dup maxlength exch length 4 index length add lt 2 copy get dup length 4 index length add exch maxlength 1 index lt { 2 mul dict begin 2 copy get{forall}def 2 copy currentdict put end } {pop} ifelse } if get begin {def} forall end }bind def end end %%EndResource currentglobal true setglobal %%BeginResource: procset Adobe_CoolType_Utility_MAKEOCF 1.23 0 %%Copyright: Copyright 1987-2006 Adobe Systems Incorporated. %%Version: 1.23 0 systemdict/languagelevel known dup {currentglobal false setglobal} {false} ifelse exch userdict/Adobe_CoolType_Utility 2 copy known {2 copy get dup maxlength 27 add dict copy} {27 dict} ifelse put Adobe_CoolType_Utility begin /@eexecStartData def /@recognizeCIDFont null def /ct_Level2? exch def /ct_Clone? 1183615869 internaldict dup /CCRun known not exch/eCCRun known not ct_Level2? and or def ct_Level2? {globaldict begin currentglobal true setglobal} if /ct_AddStdCIDMap ct_Level2? {{ mark Adobe_CoolType_Utility/@recognizeCIDFont currentdict put { ((Hex)57 StartData 0615 1e27 2c39 1c60 d8a8 cc31 fe2b f6e0 7aa3 e541 e21c 60d8 a8c9 c3d0 6d9e 1c60 d8a8 c9c2 02d7 9a1c 60d8 a849 1c60 d8a8 cc36 74f4 1144 b13b 77)0()/SubFileDecode filter cvx exec } stopped { cleartomark Adobe_CoolType_Utility/@recognizeCIDFont get countdictstack dup array dictstack exch 1 sub -1 0 { 2 copy get 3 index eq {1 index length exch sub 1 sub{end}repeat exit} {pop} ifelse } for pop pop Adobe_CoolType_Utility/@eexecStartData get eexec } {cleartomark} ifelse }} {{ Adobe_CoolType_Utility/@eexecStartData get eexec }} ifelse bind def userdict/cid_extensions known dup{cid_extensions/cid_UpdateDB known and}if { cid_extensions begin /cid_GetCIDSystemInfo { 1 index type/stringtype eq {exch cvn exch} if cid_extensions begin dup load 2 index known { 2 copy cid_GetStatusInfo dup null ne { 1 index load 3 index get dup null eq {pop pop cid_UpdateDB} { exch 1 index/Created get eq {exch pop exch pop} {pop cid_UpdateDB} ifelse } ifelse } {pop cid_UpdateDB} ifelse } {cid_UpdateDB} ifelse end }bind def end } if ct_Level2? {end setglobal} if /ct_UseNativeCapability? systemdict/composefont known def /ct_MakeOCF 35 dict def /ct_Vars 25 dict def /ct_GlyphDirProcs 6 dict def /ct_BuildCharDict 15 dict dup begin /charcode 2 string def /dst_string 1500 string def /nullstring()def /usewidths? true def end def ct_Level2?{setglobal}{pop}ifelse ct_GlyphDirProcs begin /GetGlyphDirectory { systemdict/languagelevel known {pop/CIDFont findresource/GlyphDirectory get} { 1 index/CIDFont findresource/GlyphDirectory get dup type/dicttype eq { dup dup maxlength exch length sub 2 index lt { dup length 2 index add dict copy 2 index /CIDFont findresource/GlyphDirectory 2 index put } if } if exch pop exch pop } ifelse + }def /+ { systemdict/languagelevel known { currentglobal false setglobal 3 dict begin /vm exch def } {1 dict begin} ifelse /$ exch def systemdict/languagelevel known { vm setglobal /gvm currentglobal def $ gcheck setglobal } if ?{$ begin}if }def /?{$ type/dicttype eq}def /|{ userdict/Adobe_CoolType_Data known { Adobe_CoolType_Data/AddWidths? known { currentdict Adobe_CoolType_Data begin begin AddWidths? { Adobe_CoolType_Data/CC 3 index put ?{def}{$ 3 1 roll put}ifelse CC charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore currentfont/Widths get exch CC exch put } {?{def}{$ 3 1 roll put}ifelse} ifelse end end } {?{def}{$ 3 1 roll put}ifelse} ifelse } {?{def}{$ 3 1 roll put}ifelse} ifelse }def /! { ?{end}if systemdict/languagelevel known {gvm setglobal} if end }def /:{string currentfile exch readstring pop}executeonly def end ct_MakeOCF begin /ct_cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_CID_STR_SIZE 8000 def /ct_mkocfStr100 100 string def /ct_defaultFontMtx[.001 0 0 .001 0 0]def /ct_1000Mtx[1000 0 0 1000 0 0]def /ct_raise{exch cvx exch errordict exch get exec stop}bind def /ct_reraise {cvx $error/errorname get(Error: )print dup( )cvs print errordict exch get exec stop }bind def /ct_cvnsi { 1 index add 1 sub 1 exch 0 4 1 roll { 2 index exch get exch 8 bitshift add } for exch pop }bind def /ct_GetInterval { Adobe_CoolType_Utility/ct_BuildCharDict get begin /dst_index 0 def dup dst_string length gt {dup string/dst_string exch def} if 1 index ct_CID_STR_SIZE idiv /arrayIndex exch def 2 index arrayIndex get 2 index arrayIndex ct_CID_STR_SIZE mul sub { dup 3 index add 2 index length le { 2 index getinterval dst_string dst_index 2 index putinterval length dst_index add/dst_index exch def exit } { 1 index length 1 index sub dup 4 1 roll getinterval dst_string dst_index 2 index putinterval pop dup dst_index add/dst_index exch def sub /arrayIndex arrayIndex 1 add def 2 index dup length arrayIndex gt {arrayIndex get} { pop exit } ifelse 0 } ifelse } loop pop pop pop dst_string 0 dst_index getinterval end }bind def ct_Level2? { /ct_resourcestatus currentglobal mark true setglobal {/unknowninstancename/Category resourcestatus} stopped {cleartomark setglobal true} {cleartomark currentglobal not exch setglobal} ifelse { { mark 3 1 roll/Category findresource begin ct_Vars/vm currentglobal put ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse ct_Vars/vm get setglobal end } } {{resourcestatus}} ifelse bind def /CIDFont/Category ct_resourcestatus {pop pop} { currentglobal true setglobal /Generic/Category findresource dup length dict copy dup/InstanceType/dicttype put /CIDFont exch/Category defineresource pop setglobal } ifelse ct_UseNativeCapability? { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } if } { /ct_Category 2 dict begin /CIDFont 10 dict def /ProcSet 2 dict def currentdict end def /defineresource { ct_Category 1 index 2 copy known { get dup dup maxlength exch length eq { dup length 10 add dict copy ct_Category 2 index 2 index put } if 3 index 3 index put pop exch pop } {pop pop/defineresource/undefined ct_raise} ifelse }bind def /findresource { ct_Category 1 index 2 copy known { get 2 index 2 copy known {get 3 1 roll pop pop} {pop pop/findresource/undefinedresource ct_raise} ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /resourcestatus { ct_Category 1 index 2 copy known { get 2 index known exch pop exch pop { 0 -1 true } { false } ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /ct_resourcestatus/resourcestatus load def } ifelse /ct_CIDInit 2 dict begin /ct_cidfont_stream_init { { dup(Binary)eq { pop null currentfile ct_Level2? { {cid_BYTE_COUNT()/SubFileDecode filter} stopped {pop pop pop} if } if /readstring load exit } if dup(Hex)eq { pop currentfile ct_Level2? { {null exch/ASCIIHexDecode filter/readstring} stopped {pop exch pop(>)exch/readhexstring} if } {(>)exch/readhexstring} ifelse load exit } if /StartData/typecheck ct_raise } loop cid_BYTE_COUNT ct_CID_STR_SIZE le { 2 copy cid_BYTE_COUNT string exch exec pop 1 array dup 3 -1 roll 0 exch put } { cid_BYTE_COUNT ct_CID_STR_SIZE div ceiling cvi dup array exch 2 sub 0 exch 1 exch { 2 copy 5 index ct_CID_STR_SIZE string 6 index exec pop put pop } for 2 index cid_BYTE_COUNT ct_CID_STR_SIZE mod string 3 index exec pop 1 index exch 1 index length 1 sub exch put } ifelse cid_CIDFONT exch/GlyphData exch put 2 index null eq { pop pop pop } { pop/readstring load 1 string exch { 3 copy exec pop dup length 0 eq { pop pop pop pop pop true exit } if 4 index eq { pop pop pop pop false exit } if } loop pop } ifelse }bind def /StartData { mark { currentdict dup/FDArray get 0 get/FontMatrix get 0 get 0.001 eq { dup/CDevProc known not { /CDevProc 1183615869 internaldict/stdCDevProc 2 copy known {get} { pop pop {pop pop pop pop pop 0 -1000 7 index 2 div 880} } ifelse def } if } { /CDevProc { pop pop pop pop pop 0 1 cid_temp/cid_CIDFONT get /FDArray get 0 get /FontMatrix get 0 get div 7 index 2 div 1 index 0.88 mul }def } ifelse /cid_temp 15 dict def cid_temp begin /cid_CIDFONT exch def 3 copy pop dup/cid_BYTE_COUNT exch def 0 gt { ct_cidfont_stream_init FDArray { /Private get dup/SubrMapOffset known { begin /Subrs SubrCount array def Subrs SubrMapOffset SubrCount SDBytes ct_Level2? { currentdict dup/SubrMapOffset undef dup/SubrCount undef /SDBytes undef } if end /cid_SD_BYTES exch def /cid_SUBR_COUNT exch def /cid_SUBR_MAP_OFFSET exch def /cid_SUBRS exch def cid_SUBR_COUNT 0 gt { GlyphData cid_SUBR_MAP_OFFSET cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi 0 1 cid_SUBR_COUNT 1 sub { exch 1 index 1 add cid_SD_BYTES mul cid_SUBR_MAP_OFFSET add GlyphData exch cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi cid_SUBRS 4 2 roll GlyphData exch 4 index 1 index sub ct_GetInterval dup length string copy put } for pop } if } {pop} ifelse } forall } if cleartomark pop pop end CIDFontName currentdict/CIDFont defineresource pop end end } stopped {cleartomark/StartData ct_reraise} if }bind def currentdict end def /ct_saveCIDInit { /CIDInit/ProcSet ct_resourcestatus {true} {/CIDInitC/ProcSet ct_resourcestatus} ifelse { pop pop /CIDInit/ProcSet findresource ct_UseNativeCapability? {pop null} {/CIDInit ct_CIDInit/ProcSet defineresource pop} ifelse } {/CIDInit ct_CIDInit/ProcSet defineresource pop null} ifelse ct_Vars exch/ct_oldCIDInit exch put }bind def /ct_restoreCIDInit { ct_Vars/ct_oldCIDInit get dup null ne {/CIDInit exch/ProcSet defineresource pop} {pop} ifelse }bind def /ct_BuildCharSetUp { 1 index begin CIDFont begin Adobe_CoolType_Utility/ct_BuildCharDict get begin /ct_dfCharCode exch def /ct_dfDict exch def CIDFirstByte ct_dfCharCode add dup CIDCount ge {pop 0} if /cid exch def { GlyphDirectory cid 2 copy known {get} {pop pop nullstring} ifelse dup length FDBytes sub 0 gt { dup FDBytes 0 ne {0 FDBytes ct_cvnsi} {pop 0} ifelse /fdIndex exch def dup length FDBytes sub FDBytes exch getinterval /charstring exch def exit } { pop cid 0 eq {/charstring nullstring def exit} if /cid 0 def } ifelse } loop }def /ct_SetCacheDevice { 0 0 moveto dup stringwidth 3 -1 roll true charpath pathbbox 0 -1000 7 index 2 div 880 setcachedevice2 0 0 moveto }def /ct_CloneSetCacheProc { 1 eq { stringwidth pop -2 div -880 0 -1000 setcharwidth moveto } { usewidths? { currentfont/Widths get cid 2 copy known {get exch pop aload pop} {pop pop stringwidth} ifelse } {stringwidth} ifelse setcharwidth 0 0 moveto } ifelse }def /ct_Type3ShowCharString { ct_FDDict fdIndex 2 copy known {get} { currentglobal 3 1 roll 1 index gcheck setglobal ct_Type1FontTemplate dup maxlength dict copy begin FDArray fdIndex get dup/FontMatrix 2 copy known {get} {pop pop ct_defaultFontMtx} ifelse /FontMatrix exch dup length array copy def /Private get /Private exch def /Widths rootfont/Widths get def /CharStrings 1 dict dup/.notdef dup length string copy put def currentdict end /ct_Type1Font exch definefont dup 5 1 roll put setglobal } ifelse dup/CharStrings get 1 index/Encoding get ct_dfCharCode get charstring put rootfont/WMode 2 copy known {get} {pop pop 0} ifelse exch 1000 scalefont setfont ct_str1 0 ct_dfCharCode put ct_str1 exch ct_dfSetCacheProc ct_SyntheticBold { currentpoint ct_str1 show newpath moveto ct_str1 true charpath ct_StrokeWidth setlinewidth stroke } {ct_str1 show} ifelse }def /ct_Type4ShowCharString { ct_dfDict ct_dfCharCode charstring FDArray fdIndex get dup/FontMatrix get dup ct_defaultFontMtx ct_matrixeq not {ct_1000Mtx matrix concatmatrix concat} {pop} ifelse /Private get Adobe_CoolType_Utility/ct_Level2? get not { ct_dfDict/Private 3 -1 roll {put} 1183615869 internaldict/superexec get exec } if 1183615869 internaldict Adobe_CoolType_Utility/ct_Level2? get {1 index} {3 index/Private get mark 6 1 roll} ifelse dup/RunInt known {/RunInt get} {pop/CCRun} ifelse get exec Adobe_CoolType_Utility/ct_Level2? get not {cleartomark} if }bind def /ct_BuildCharIncremental { { Adobe_CoolType_Utility/ct_MakeOCF get begin ct_BuildCharSetUp ct_ShowCharString } stopped {stop} if end end end end }bind def /BaseFontNameStr(BF00)def /ct_Type1FontTemplate 14 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /PaintType 0 def currentdict end def /BaseFontTemplate 11 dict begin /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /BuildChar/ct_BuildCharIncremental load def ct_Clone? { /FontType 3 def /ct_ShowCharString/ct_Type3ShowCharString load def /ct_dfSetCacheProc/ct_CloneSetCacheProc load def /ct_SyntheticBold false def /ct_StrokeWidth 1 def } { /FontType 4 def /Private 1 dict dup/lenIV 4 put def /CharStrings 1 dict dup/.notdefput def /PaintType 0 def /ct_ShowCharString/ct_Type4ShowCharString load def } ifelse /ct_str1 1 string def currentdict end def /BaseFontDictSize BaseFontTemplate length 5 add def /ct_matrixeq { true 0 1 5 { dup 4 index exch get exch 3 index exch get eq and dup not {exit} if } for exch pop exch pop }bind def /ct_makeocf { 15 dict begin exch/WMode exch def exch/FontName exch def /FontType 0 def /FMapType 2 def dup/FontMatrix known {dup/FontMatrix get/FontMatrix exch def} {/FontMatrix matrix def} ifelse /bfCount 1 index/CIDCount get 256 idiv 1 add dup 256 gt{pop 256}if def /Encoding 256 array 0 1 bfCount 1 sub{2 copy dup put pop}for bfCount 1 255{2 copy bfCount put pop}for def /FDepVector bfCount dup 256 lt{1 add}if array def BaseFontTemplate BaseFontDictSize dict copy begin /CIDFont exch def CIDFont/FontBBox known {CIDFont/FontBBox get/FontBBox exch def} if CIDFont/CDevProc known {CIDFont/CDevProc get/CDevProc exch def} if currentdict end BaseFontNameStr 3(0)putinterval 0 1 bfCount dup 256 eq{1 sub}if { FDepVector exch 2 index BaseFontDictSize dict copy begin dup/CIDFirstByte exch 256 mul def FontType 3 eq {/ct_FDDict 2 dict def} if currentdict end 1 index 16 BaseFontNameStr 2 2 getinterval cvrs pop BaseFontNameStr exch definefont put } for ct_Clone? {/Widths 1 index/CIDFont get/GlyphDirectory get length dict def} if FontName currentdict end definefont ct_Clone? { gsave dup 1000 scalefont setfont ct_BuildCharDict begin /usewidths? false def currentfont/Widths get begin exch/CIDFont get/GlyphDirectory get { pop dup charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore def } forall end /usewidths? true def end grestore } {exch pop} ifelse }bind def currentglobal true setglobal /ct_ComposeFont { ct_UseNativeCapability? { 2 index/CMap ct_resourcestatus {pop pop exch pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 3 index def /CMapVersion 1.000 def /CMapType 1 def exch/WMode exch def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search { dup length string copy exch pop exch pop } {pop(Identity)} ifelse } {pop (Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { 3 2 roll pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def setglobal /ct_MakeIdentity { ct_UseNativeCapability? { 1 index/CMap ct_resourcestatus {pop pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 2 index def /CMapVersion 1.000 def /CMapType 1 def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search {dup length string copy exch pop exch pop} {pop(Identity)} ifelse } {pop(Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { exch pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def currentdict readonly pop end end %%EndResource setglobal %%BeginResource: procset Adobe_CoolType_Utility_T42 1.0 0 %%Copyright: Copyright 1987-2004 Adobe Systems Incorporated. %%Version: 1.0 0 userdict/ct_T42Dict 15 dict put ct_T42Dict begin /Is2015? { version cvi 2015 ge }bind def /AllocGlyphStorage { Is2015? { pop } { {string}forall }ifelse }bind def /Type42DictBegin { 25 dict begin /FontName exch def /CharStrings 256 dict begin /.notdef 0 def currentdict end def /Encoding exch def /PaintType 0 def /FontType 42 def /FontMatrix[1 0 0 1 0 0]def 4 array astore cvx/FontBBox exch def /sfnts }bind def /Type42DictEnd { currentdict dup/FontName get exch definefont end ct_T42Dict exch dup/FontName get exch put }bind def /RD{string currentfile exch readstring pop}executeonly def /PrepFor2015 { Is2015? { /GlyphDirectory 16 dict def sfnts 0 get dup 2 index (glyx) putinterval 2 index (locx) putinterval pop pop } { pop pop }ifelse }bind def /AddT42Char { Is2015? { /GlyphDirectory get begin def end pop pop } { /sfnts get 4 index get 3 index 2 index putinterval pop pop pop pop }ifelse }bind def /T0AddT42Mtx2 { /CIDFont findresource/Metrics2 get begin def end }bind def end %%EndResource currentglobal true setglobal %%BeginFile: MMFauxFont.prc %%Copyright: Copyright 1987-2001 Adobe Systems Incorporated. %%All Rights Reserved. userdict /ct_EuroDict 10 dict put ct_EuroDict begin /ct_CopyFont { { 1 index /FID ne {def} {pop pop} ifelse} forall } def /ct_GetGlyphOutline { gsave initmatrix newpath exch findfont dup length 1 add dict begin ct_CopyFont /Encoding Encoding dup length array copy dup 4 -1 roll 0 exch put def currentdict end /ct_EuroFont exch definefont 1000 scalefont setfont 0 0 moveto [ <00> stringwidth <00> false charpath pathbbox [ {/m cvx} {/l cvx} {/c cvx} {/cp cvx} pathforall grestore counttomark 8 add } def /ct_MakeGlyphProc { ] cvx /ct_PSBuildGlyph cvx ] cvx } def /ct_PSBuildGlyph { gsave 8 -1 roll pop 7 1 roll 6 -2 roll ct_FontMatrix transform 6 2 roll 4 -2 roll ct_FontMatrix transform 4 2 roll ct_FontMatrix transform currentdict /PaintType 2 copy known {get 2 eq}{pop pop false} ifelse dup 9 1 roll { currentdict /StrokeWidth 2 copy known { get 2 div 0 ct_FontMatrix dtransform pop 5 1 roll 4 -1 roll 4 index sub 4 1 roll 3 -1 roll 4 index sub 3 1 roll exch 4 index add exch 4 index add 5 -1 roll pop } { pop pop } ifelse } if setcachedevice ct_FontMatrix concat ct_PSPathOps begin exec end { currentdict /StrokeWidth 2 copy known { get } { pop pop 0 } ifelse setlinewidth stroke } { fill } ifelse grestore } def /ct_PSPathOps 4 dict dup begin /m {moveto} def /l {lineto} def /c {curveto} def /cp {closepath} def end def /ct_matrix1000 [1000 0 0 1000 0 0] def /ct_AddGlyphProc { 2 index findfont dup length 4 add dict begin ct_CopyFont /CharStrings CharStrings dup length 1 add dict copy begin 3 1 roll def currentdict end def /ct_FontMatrix ct_matrix1000 FontMatrix matrix concatmatrix def /ct_PSBuildGlyph /ct_PSBuildGlyph load def /ct_PSPathOps /ct_PSPathOps load def currentdict end definefont pop } def systemdict /languagelevel known { /ct_AddGlyphToPrinterFont { 2 copy ct_GetGlyphOutline 3 add -1 roll restore ct_MakeGlyphProc ct_AddGlyphProc } def } { /ct_AddGlyphToPrinterFont { pop pop restore Adobe_CTFauxDict /$$$FONTNAME get /Euro Adobe_CTFauxDict /$$$SUBSTITUTEBASE get ct_EuroDict exch get ct_AddGlyphProc } def } ifelse /AdobeSansMM { 556 0 24 -19 541 703 { 541 628 m 510 669 442 703 354 703 c 201 703 117 607 101 444 c 50 444 l 25 372 l 97 372 l 97 301 l 49 301 l 24 229 l 103 229 l 124 67 209 -19 350 -19 c 435 -19 501 25 509 32 c 509 131 l 492 105 417 60 343 60 c 267 60 204 127 197 229 c 406 229 l 430 301 l 191 301 l 191 372 l 455 372 l 479 444 l 194 444 l 201 531 245 624 348 624 c 433 624 484 583 509 534 c cp 556 0 m } ct_PSBuildGlyph } def /AdobeSerifMM { 500 0 10 -12 484 692 { 347 298 m 171 298 l 170 310 170 322 170 335 c 170 362 l 362 362 l 374 403 l 172 403 l 184 580 244 642 308 642 c 380 642 434 574 457 457 c 481 462 l 474 691 l 449 691 l 433 670 429 657 410 657 c 394 657 360 692 299 692 c 204 692 94 604 73 403 c 22 403 l 10 362 l 70 362 l 69 352 69 341 69 330 c 69 319 69 308 70 298 c 22 298 l 10 257 l 73 257 l 97 57 216 -12 295 -12 c 364 -12 427 25 484 123 c 458 142 l 425 101 384 37 316 37 c 256 37 189 84 173 257 c 335 257 l cp 500 0 m } ct_PSBuildGlyph } def end %%EndFile setglobal Adobe_CoolType_Core begin /$Oblique SetSubstituteStrategy end %%BeginResource: procset Adobe_AGM_Image 1.0 0 +%%Version: 1.0 0 +%%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved. +systemdict/setpacking known +{ + currentpacking + true setpacking +}if +userdict/Adobe_AGM_Image 71 dict dup begin put +/Adobe_AGM_Image_Id/Adobe_AGM_Image_1.0_0 def +/nd{ + null def +}bind def +/AGMIMG_&image nd +/AGMIMG_&colorimage nd +/AGMIMG_&imagemask nd +/AGMIMG_mbuf()def +/AGMIMG_ybuf()def +/AGMIMG_kbuf()def +/AGMIMG_c 0 def +/AGMIMG_m 0 def +/AGMIMG_y 0 def +/AGMIMG_k 0 def +/AGMIMG_tmp nd +/AGMIMG_imagestring0 nd +/AGMIMG_imagestring1 nd +/AGMIMG_imagestring2 nd +/AGMIMG_imagestring3 nd +/AGMIMG_imagestring4 nd +/AGMIMG_imagestring5 nd +/AGMIMG_cnt nd +/AGMIMG_fsave nd +/AGMIMG_colorAry nd +/AGMIMG_override nd +/AGMIMG_name nd +/AGMIMG_maskSource nd +/AGMIMG_flushfilters nd +/invert_image_samples nd +/knockout_image_samples nd +/img nd +/sepimg nd +/devnimg nd +/idximg nd +/ds +{ + Adobe_AGM_Core begin + Adobe_AGM_Image begin + /AGMIMG_&image systemdict/image get def + /AGMIMG_&imagemask systemdict/imagemask get def + /colorimage where{ + pop + /AGMIMG_&colorimage/colorimage ldf + }if + end + end +}def +/ps +{ + Adobe_AGM_Image begin + /AGMIMG_ccimage_exists{/customcolorimage where + { + pop + /Adobe_AGM_OnHost_Seps where + { + pop false + }{ + /Adobe_AGM_InRip_Seps where + { + pop false + }{ + true + }ifelse + }ifelse + }{ + false + }ifelse + }bdf + level2{ + /invert_image_samples + { + Adobe_AGM_Image/AGMIMG_tmp Decode length ddf + /Decode[Decode 1 get Decode 0 get]def + }def + /knockout_image_samples + { + Operator/imagemask ne{ + /Decode[1 1]def + }if + }def + }{ + /invert_image_samples + { + {1 exch sub}currenttransfer addprocs settransfer + }def + /knockout_image_samples + { + {pop 1}currenttransfer addprocs settransfer + }def + }ifelse + /img/imageormask ldf + /sepimg/sep_imageormask ldf + /devnimg/devn_imageormask ldf + /idximg/indexed_imageormask ldf + /_ctype 7 def + currentdict{ + dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ + bind + }if + def + }forall +}def +/pt +{ + end +}def +/dt +{ +}def +/AGMIMG_flushfilters +{ + dup type/arraytype ne + {1 array astore}if + dup 0 get currentfile ne + {dup 0 get flushfile}if + { + dup type/filetype eq + { + dup status 1 index currentfile ne and + {closefile} + {pop} + ifelse + }{pop}ifelse + }forall +}def +/AGMIMG_init_common +{ + currentdict/T known{/ImageType/T ldf currentdict/T undef}if + currentdict/W known{/Width/W ldf currentdict/W undef}if + currentdict/H known{/Height/H ldf currentdict/H undef}if + currentdict/M known{/ImageMatrix/M ldf currentdict/M undef}if + currentdict/BC known{/BitsPerComponent/BC ldf currentdict/BC undef}if + currentdict/D known{/Decode/D ldf currentdict/D undef}if + currentdict/DS known{/DataSource/DS ldf currentdict/DS undef}if + currentdict/O known{ + /Operator/O load 1 eq{ + /imagemask + }{ + /O load 2 eq{ + /image + }{ + /colorimage + }ifelse + }ifelse + def + currentdict/O undef + }if + currentdict/HSCI known{/HostSepColorImage/HSCI ldf currentdict/HSCI undef}if + currentdict/MD known{/MultipleDataSources/MD ldf currentdict/MD undef}if + currentdict/I known{/Interpolate/I ldf currentdict/I undef}if + currentdict/SI known{/SkipImageProc/SI ldf currentdict/SI undef}if + /DataSource load xcheck not{ + DataSource type/arraytype eq{ + DataSource 0 get type/filetype eq{ + /_Filters DataSource def + currentdict/MultipleDataSources known not{ + /DataSource DataSource dup length 1 sub get def + }if + }if + }if + currentdict/MultipleDataSources known not{ + /MultipleDataSources DataSource type/arraytype eq{ + DataSource length 1 gt + } + {false}ifelse def + }if + }if + /NComponents Decode length 2 div def + currentdict/SkipImageProc known not{/SkipImageProc{false}def}if +}bdf +/imageormask_sys +{ + begin + AGMIMG_init_common + save mark + level2{ + currentdict + Operator/imagemask eq{ + AGMIMG_&imagemask + }{ + use_mask{ + process_mask AGMIMG_&image + }{ + AGMIMG_&image + }ifelse + }ifelse + }{ + Width Height + Operator/imagemask eq{ + Decode 0 get 1 eq Decode 1 get 0 eq and + ImageMatrix/DataSource load + AGMIMG_&imagemask + }{ + BitsPerComponent ImageMatrix/DataSource load + AGMIMG_&image + }ifelse + }ifelse + currentdict/_Filters known{_Filters AGMIMG_flushfilters}if + cleartomark restore + end +}def +/overprint_plate +{ + currentoverprint{ + 0 get dup type/nametype eq{ + dup/DeviceGray eq{ + pop AGMCORE_black_plate not + }{ + /DeviceCMYK eq{ + AGMCORE_is_cmyk_sep not + }if + }ifelse + }{ + false exch + { + AGMOHS_sepink eq or + }forall + not + }ifelse + }{ + pop false + }ifelse +}def +/process_mask +{ + level3{ + dup begin + /ImageType 1 def + end + 4 dict begin + /DataDict exch def + /ImageType 3 def + /InterleaveType 3 def + /MaskDict 9 dict begin + /ImageType 1 def + /Width DataDict dup/MaskWidth known{/MaskWidth}{/Width}ifelse get def + /Height DataDict dup/MaskHeight known{/MaskHeight}{/Height}ifelse get def + /ImageMatrix[Width 0 0 Height neg 0 Height]def + /NComponents 1 def + /BitsPerComponent 1 def + /Decode DataDict dup/MaskD known{/MaskD}{[1 0]}ifelse get def + /DataSource Adobe_AGM_Core/AGMIMG_maskSource get def + currentdict end def + currentdict end + }if +}def +/use_mask +{ + dup/Mask known {dup/Mask get}{false}ifelse +}def +/imageormask +{ + begin + AGMIMG_init_common + SkipImageProc{ + currentdict consumeimagedata + } + { + save mark + level2 AGMCORE_host_sep not and{ + currentdict + Operator/imagemask eq DeviceN_PS2 not and{ + imagemask + }{ + AGMCORE_in_rip_sep currentoverprint and currentcolorspace 0 get/DeviceGray eq and{ + [/Separation/Black/DeviceGray{}]setcolorspace + /Decode[Decode 1 get Decode 0 get]def + }if + use_mask{ + process_mask image + }{ + DeviceN_NoneName DeviceN_PS2 Indexed_DeviceN level3 not and or or AGMCORE_in_rip_sep and + { + Names convert_to_process not{ + 2 dict begin + /imageDict xdf + /names_index 0 def + gsave + imageDict write_image_file{ + Names{ + dup(None)ne{ + [/Separation 3 -1 roll/DeviceGray{1 exch sub}]setcolorspace + Operator imageDict read_image_file + names_index 0 eq{true setoverprint}if + /names_index names_index 1 add def + }{ + pop + }ifelse + }forall + close_image_file + }if + grestore + end + }{ + Operator/imagemask eq{ + imagemask + }{ + image + }ifelse + }ifelse + }{ + Operator/imagemask eq{ + imagemask + }{ + image + }ifelse + }ifelse + }ifelse + }ifelse + }{ + Width Height + Operator/imagemask eq{ + Decode 0 get 1 eq Decode 1 get 0 eq and + ImageMatrix/DataSource load + /Adobe_AGM_OnHost_Seps where{ + pop imagemask + }{ + currentgray 1 ne{ + currentdict imageormask_sys + }{ + currentoverprint not{ + 1 AGMCORE_&setgray + currentdict imageormask_sys + }{ + currentdict ignoreimagedata + }ifelse + }ifelse + }ifelse + }{ + BitsPerComponent ImageMatrix + MultipleDataSources{ + 0 1 NComponents 1 sub{ + DataSource exch get + }for + }{ + /DataSource load + }ifelse + Operator/colorimage eq{ + AGMCORE_host_sep{ + MultipleDataSources level2 or NComponents 4 eq and{ + AGMCORE_is_cmyk_sep{ + MultipleDataSources{ + /DataSource DataSource 0 get xcheck + { + [ + DataSource 0 get/exec cvx + DataSource 1 get/exec cvx + DataSource 2 get/exec cvx + DataSource 3 get/exec cvx + /AGMCORE_get_ink_data cvx + ]cvx + }{ + DataSource aload pop AGMCORE_get_ink_data + }ifelse def + }{ + /DataSource + Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul + /DataSource load + filter_cmyk 0()/SubFileDecode filter def + }ifelse + /Decode[Decode 0 get Decode 1 get]def + /MultipleDataSources false def + /NComponents 1 def + /Operator/image def + invert_image_samples + 1 AGMCORE_&setgray + currentdict imageormask_sys + }{ + currentoverprint not Operator/imagemask eq and{ + 1 AGMCORE_&setgray + currentdict imageormask_sys + }{ + currentdict ignoreimagedata + }ifelse + }ifelse + }{ + MultipleDataSources NComponents AGMIMG_&colorimage + }ifelse + }{ + true NComponents colorimage + }ifelse + }{ + Operator/image eq{ + AGMCORE_host_sep{ + /DoImage true def + currentdict/HostSepColorImage known{HostSepColorImage not}{false}ifelse + { + AGMCORE_black_plate not Operator/imagemask ne and{ + /DoImage false def + currentdict ignoreimagedata + }if + }if + 1 AGMCORE_&setgray + DoImage + {currentdict imageormask_sys}if + }{ + use_mask{ + process_mask image + }{ + image + }ifelse + }ifelse + }{ + Operator/knockout eq{ + pop pop pop pop pop + currentcolorspace overprint_plate not{ + knockout_unitsq + }if + }if + }ifelse + }ifelse + }ifelse + }ifelse + cleartomark restore + }ifelse + currentdict/_Filters known{_Filters AGMIMG_flushfilters}if + end +}def +/sep_imageormask +{ + /sep_colorspace_dict AGMCORE_gget begin + CSA map_csa + begin + AGMIMG_init_common + SkipImageProc{ + currentdict consumeimagedata + }{ + save mark + AGMCORE_avoid_L2_sep_space{ + /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def + }if + AGMIMG_ccimage_exists + MappedCSA 0 get/DeviceCMYK eq and + currentdict/Components known and + Name()ne and + Name(All)ne and + Operator/image eq and + AGMCORE_producing_seps not and + level2 not and + { + Width Height BitsPerComponent ImageMatrix + [ + /DataSource load/exec cvx + { + 0 1 2 index length 1 sub{ + 1 index exch + 2 copy get 255 xor put + }for + }/exec cvx + ]cvx bind + MappedCSA 0 get/DeviceCMYK eq{ + Components aload pop + }{ + 0 0 0 Components aload pop 1 exch sub + }ifelse + Name findcmykcustomcolor + customcolorimage + }{ + AGMCORE_producing_seps not{ + level2{ + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne AGMCORE_avoid_L2_sep_space not and currentcolorspace 0 get/Separation ne and{ + [/Separation Name MappedCSA sep_proc_name exch dup 0 get 15 string cvs(/Device)anchorsearch{pop pop 0 get}{pop}ifelse exch load]setcolorspace_opt + /sep_tint AGMCORE_gget setcolor + }if + currentdict imageormask + }{ + currentdict + Operator/imagemask eq{ + imageormask + }{ + sep_imageormask_lev1 + }ifelse + }ifelse + }{ + AGMCORE_host_sep{ + Operator/knockout eq{ + currentdict/ImageMatrix get concat + knockout_unitsq + }{ + currentgray 1 ne{ + AGMCORE_is_cmyk_sep Name(All)ne and{ + level2{ + Name AGMCORE_IsSeparationAProcessColor + { + Operator/imagemask eq{ + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ + /sep_tint AGMCORE_gget 1 exch sub AGMCORE_&setcolor + }if + }{ + invert_image_samples + }ifelse + }{ + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ + [/Separation Name[/DeviceGray] + { + sep_colorspace_proc AGMCORE_get_ink_data + 1 exch sub + }bind + ]AGMCORE_&setcolorspace + /sep_tint AGMCORE_gget AGMCORE_&setcolor + }if + }ifelse + currentdict imageormask_sys + }{ + currentdict + Operator/imagemask eq{ + imageormask_sys + }{ + sep_image_lev1_sep + }ifelse + }ifelse + }{ + Operator/imagemask ne{ + invert_image_samples + }if + currentdict imageormask_sys + }ifelse + }{ + currentoverprint not Name(All)eq or Operator/imagemask eq and{ + currentdict imageormask_sys + }{ + currentoverprint not + { + gsave + knockout_unitsq + grestore + }if + currentdict consumeimagedata + }ifelse + }ifelse + }ifelse + }{ + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ + currentcolorspace 0 get/Separation ne{ + [/Separation Name MappedCSA sep_proc_name exch 0 get exch load]setcolorspace_opt + /sep_tint AGMCORE_gget setcolor + }if + }if + currentoverprint + MappedCSA 0 get/DeviceCMYK eq and + Name AGMCORE_IsSeparationAProcessColor not and + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{Name inRip_spot_has_ink not and}{false}ifelse + Name(All)ne and{ + imageormask_l2_overprint + }{ + currentdict imageormask + }ifelse + }ifelse + }ifelse + }ifelse + cleartomark restore + }ifelse + currentdict/_Filters known{_Filters AGMIMG_flushfilters}if + end + end +}def +/colorSpaceElemCnt +{ + mark currentcolor counttomark dup 2 add 1 roll cleartomark +}bdf +/devn_sep_datasource +{ + 1 dict begin + /dataSource xdf + [ + 0 1 dataSource length 1 sub{ + dup currentdict/dataSource get/exch cvx/get cvx/exec cvx + /exch cvx names_index/ne cvx[/pop cvx]cvx/if cvx + }for + ]cvx bind + end +}bdf +/devn_alt_datasource +{ + 11 dict begin + /convProc xdf + /origcolorSpaceElemCnt xdf + /origMultipleDataSources xdf + /origBitsPerComponent xdf + /origDecode xdf + /origDataSource xdf + /dsCnt origMultipleDataSources{origDataSource length}{1}ifelse def + /DataSource origMultipleDataSources + { + [ + BitsPerComponent 8 idiv origDecode length 2 idiv mul string + 0 1 origDecode length 2 idiv 1 sub + { + dup 7 mul 1 add index exch dup BitsPerComponent 8 idiv mul exch + origDataSource exch get 0()/SubFileDecode filter + BitsPerComponent 8 idiv string/readstring cvx/pop cvx/putinterval cvx + }for + ]bind cvx + }{origDataSource}ifelse 0()/SubFileDecode filter def + [ + origcolorSpaceElemCnt string + 0 2 origDecode length 2 sub + { + dup origDecode exch get dup 3 -1 roll 1 add origDecode exch get exch sub 2 BitsPerComponent exp 1 sub div + 1 BitsPerComponent 8 idiv{DataSource/read cvx/not cvx{0}/if cvx/mul cvx}repeat/mul cvx/add cvx + }for + /convProc load/exec cvx + origcolorSpaceElemCnt 1 sub -1 0 + { + /dup cvx 2/add cvx/index cvx + 3 1/roll cvx/exch cvx 255/mul cvx/cvi cvx/put cvx + }for + ]bind cvx 0()/SubFileDecode filter + end +}bdf +/devn_imageormask +{ + /devicen_colorspace_dict AGMCORE_gget begin + CSA map_csa + 2 dict begin + dup + /srcDataStrs[3 -1 roll begin + AGMIMG_init_common + currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse + { + Width Decode length 2 div mul cvi + { + dup 65535 gt{1 add 2 div cvi}{exit}ifelse + }loop + string + }repeat + end]def + /dstDataStr srcDataStrs 0 get length string def + begin + AGMIMG_init_common + SkipImageProc{ + currentdict consumeimagedata + }{ + save mark + AGMCORE_producing_seps not{ + level3 not{ + Operator/imagemask ne{ + /DataSource[[ + DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse + colorSpaceElemCnt/devicen_colorspace_dict AGMCORE_gget/TintTransform get + devn_alt_datasource 1/string cvx/readstring cvx/pop cvx]cvx colorSpaceElemCnt 1 sub{dup}repeat]def + /MultipleDataSources true def + /Decode colorSpaceElemCnt[exch{0 1}repeat]def + }if + }if + currentdict imageormask + }{ + AGMCORE_host_sep{ + Names convert_to_process{ + CSA get_csa_by_name 0 get/DeviceCMYK eq{ + /DataSource + Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul + DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse + 4/devicen_colorspace_dict AGMCORE_gget/TintTransform get + devn_alt_datasource + filter_cmyk 0()/SubFileDecode filter def + /MultipleDataSources false def + /Decode[1 0]def + /DeviceGray setcolorspace + currentdict imageormask_sys + }{ + AGMCORE_report_unsupported_color_space + AGMCORE_black_plate{ + /DataSource + DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse + CSA get_csa_by_name 0 get/DeviceRGB eq{3}{1}ifelse/devicen_colorspace_dict AGMCORE_gget/TintTransform get + devn_alt_datasource + /MultipleDataSources false def + /Decode colorSpaceElemCnt[exch{0 1}repeat]def + currentdict imageormask_sys + }{ + gsave + knockout_unitsq + grestore + currentdict consumeimagedata + }ifelse + }ifelse + } + { + /devicen_colorspace_dict AGMCORE_gget/names_index known{ + Operator/imagemask ne{ + MultipleDataSources{ + /DataSource[DataSource devn_sep_datasource/exec cvx]cvx def + /MultipleDataSources false def + }{ + /DataSource/DataSource load dstDataStr srcDataStrs 0 get filter_devn def + }ifelse + invert_image_samples + }if + currentdict imageormask_sys + }{ + currentoverprint not Operator/imagemask eq and{ + currentdict imageormask_sys + }{ + currentoverprint not + { + gsave + knockout_unitsq + grestore + }if + currentdict consumeimagedata + }ifelse + }ifelse + }ifelse + }{ + currentdict imageormask + }ifelse + }ifelse + cleartomark restore + }ifelse + currentdict/_Filters known{_Filters AGMIMG_flushfilters}if + end + end + end +}def +/imageormask_l2_overprint +{ + currentdict + currentcmykcolor add add add 0 eq{ + currentdict consumeimagedata + }{ + level3{ + currentcmykcolor + /AGMIMG_k xdf + /AGMIMG_y xdf + /AGMIMG_m xdf + /AGMIMG_c xdf + Operator/imagemask eq{ + [/DeviceN[ + AGMIMG_c 0 ne{/Cyan}if + AGMIMG_m 0 ne{/Magenta}if + AGMIMG_y 0 ne{/Yellow}if + AGMIMG_k 0 ne{/Black}if + ]/DeviceCMYK{}]setcolorspace + AGMIMG_c 0 ne{AGMIMG_c}if + AGMIMG_m 0 ne{AGMIMG_m}if + AGMIMG_y 0 ne{AGMIMG_y}if + AGMIMG_k 0 ne{AGMIMG_k}if + setcolor + }{ + /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def + [/Indexed + [ + /DeviceN[ + AGMIMG_c 0 ne{/Cyan}if + AGMIMG_m 0 ne{/Magenta}if + AGMIMG_y 0 ne{/Yellow}if + AGMIMG_k 0 ne{/Black}if + ] + /DeviceCMYK{ + AGMIMG_k 0 eq{0}if + AGMIMG_y 0 eq{0 exch}if + AGMIMG_m 0 eq{0 3 1 roll}if + AGMIMG_c 0 eq{0 4 1 roll}if + } + ] + 255 + { + 255 div + mark exch + dup dup dup + AGMIMG_k 0 ne{ + /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 1 roll pop pop pop + counttomark 1 roll + }{ + pop + }ifelse + AGMIMG_y 0 ne{ + /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 2 roll pop pop pop + counttomark 1 roll + }{ + pop + }ifelse + AGMIMG_m 0 ne{ + /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 3 roll pop pop pop + counttomark 1 roll + }{ + pop + }ifelse + AGMIMG_c 0 ne{ + /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec pop pop pop + counttomark 1 roll + }{ + pop + }ifelse + counttomark 1 add -1 roll pop + } + ]setcolorspace + }ifelse + imageormask_sys + }{ + write_image_file{ + currentcmykcolor + 0 ne{ + [/Separation/Black/DeviceGray{}]setcolorspace + gsave + /Black + [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 1 roll pop pop pop 1 exch sub}/exec cvx] + cvx modify_halftone_xfer + Operator currentdict read_image_file + grestore + }if + 0 ne{ + [/Separation/Yellow/DeviceGray{}]setcolorspace + gsave + /Yellow + [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 2 roll pop pop pop 1 exch sub}/exec cvx] + cvx modify_halftone_xfer + Operator currentdict read_image_file + grestore + }if + 0 ne{ + [/Separation/Magenta/DeviceGray{}]setcolorspace + gsave + /Magenta + [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 3 roll pop pop pop 1 exch sub}/exec cvx] + cvx modify_halftone_xfer + Operator currentdict read_image_file + grestore + }if + 0 ne{ + [/Separation/Cyan/DeviceGray{}]setcolorspace + gsave + /Cyan + [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{pop pop pop 1 exch sub}/exec cvx] + cvx modify_halftone_xfer + Operator currentdict read_image_file + grestore + }if + close_image_file + }{ + imageormask + }ifelse + }ifelse + }ifelse +}def +/indexed_imageormask +{ + begin + AGMIMG_init_common + save mark + currentdict + AGMCORE_host_sep{ + Operator/knockout eq{ + /indexed_colorspace_dict AGMCORE_gget dup/CSA known{ + /CSA get get_csa_by_name + }{ + /Names get + }ifelse + overprint_plate not{ + knockout_unitsq + }if + }{ + Indexed_DeviceN{ + /devicen_colorspace_dict AGMCORE_gget dup/names_index known exch/Names get convert_to_process or{ + indexed_image_lev2_sep + }{ + currentoverprint not{ + knockout_unitsq + }if + currentdict consumeimagedata + }ifelse + }{ + AGMCORE_is_cmyk_sep{ + Operator/imagemask eq{ + imageormask_sys + }{ + level2{ + indexed_image_lev2_sep + }{ + indexed_image_lev1_sep + }ifelse + }ifelse + }{ + currentoverprint not{ + knockout_unitsq + }if + currentdict consumeimagedata + }ifelse + }ifelse + }ifelse + }{ + level2{ + Indexed_DeviceN{ + /indexed_colorspace_dict AGMCORE_gget begin + }{ + /indexed_colorspace_dict AGMCORE_gget dup null ne + { + begin + currentdict/CSDBase known{CSDBase/CSD get_res/MappedCSA get}{CSA}ifelse + get_csa_by_name 0 get/DeviceCMYK eq ps_level 3 ge and ps_version 3015.007 lt and + AGMCORE_in_rip_sep and{ + [/Indexed[/DeviceN[/Cyan/Magenta/Yellow/Black]/DeviceCMYK{}]HiVal Lookup] + setcolorspace + }if + end + } + {pop}ifelse + }ifelse + imageormask + Indexed_DeviceN{ + end + }if + }{ + Operator/imagemask eq{ + imageormask + }{ + indexed_imageormask_lev1 + }ifelse + }ifelse + }ifelse + cleartomark restore + currentdict/_Filters known{_Filters AGMIMG_flushfilters}if + end +}def +/indexed_image_lev2_sep +{ + /indexed_colorspace_dict AGMCORE_gget begin + begin + Indexed_DeviceN not{ + currentcolorspace + dup 1/DeviceGray put + dup 3 + currentcolorspace 2 get 1 add string + 0 1 2 3 AGMCORE_get_ink_data 4 currentcolorspace 3 get length 1 sub + { + dup 4 idiv exch currentcolorspace 3 get exch get 255 exch sub 2 index 3 1 roll put + }for + put setcolorspace + }if + currentdict + Operator/imagemask eq{ + AGMIMG_&imagemask + }{ + use_mask{ + process_mask AGMIMG_&image + }{ + AGMIMG_&image + }ifelse + }ifelse + end end +}def + /OPIimage + { + dup type/dicttype ne{ + 10 dict begin + /DataSource xdf + /ImageMatrix xdf + /BitsPerComponent xdf + /Height xdf + /Width xdf + /ImageType 1 def + /Decode[0 1 def] + currentdict + end + }if + dup begin + /NComponents 1 cdndf + /MultipleDataSources false cdndf + /SkipImageProc{false}cdndf + /Decode[ + 0 + currentcolorspace 0 get/Indexed eq{ + 2 BitsPerComponent exp 1 sub + }{ + 1 + }ifelse + ]cdndf + /Operator/image cdndf + end + /sep_colorspace_dict AGMCORE_gget null eq{ + imageormask + }{ + gsave + dup begin invert_image_samples end + sep_imageormask + grestore + }ifelse + }def +/cachemask_level2 +{ + 3 dict begin + /LZWEncode filter/WriteFilter xdf + /readBuffer 256 string def + /ReadFilter + currentfile + 0(%EndMask)/SubFileDecode filter + /ASCII85Decode filter + /RunLengthDecode filter + def + { + ReadFilter readBuffer readstring exch + WriteFilter exch writestring + not{exit}if + }loop + WriteFilter closefile + end +}def +/spot_alias +{ + /mapto_sep_imageormask + { + dup type/dicttype ne{ + 12 dict begin + /ImageType 1 def + /DataSource xdf + /ImageMatrix xdf + /BitsPerComponent xdf + /Height xdf + /Width xdf + /MultipleDataSources false def + }{ + begin + }ifelse + /Decode[/customcolor_tint AGMCORE_gget 0]def + /Operator/image def + /SkipImageProc{false}def + currentdict + end + sep_imageormask + }bdf + /customcolorimage + { + Adobe_AGM_Image/AGMIMG_colorAry xddf + /customcolor_tint AGMCORE_gget + << + /Name AGMIMG_colorAry 4 get + /CSA[/DeviceCMYK] + /TintMethod/Subtractive + /TintProc null + /MappedCSA null + /NComponents 4 + /Components[AGMIMG_colorAry aload pop pop] + >> + setsepcolorspace + mapto_sep_imageormask + }ndf + Adobe_AGM_Image/AGMIMG_&customcolorimage/customcolorimage load put + /customcolorimage + { + Adobe_AGM_Image/AGMIMG_override false put + current_spot_alias{dup 4 get map_alias}{false}ifelse + { + false set_spot_alias + /customcolor_tint AGMCORE_gget exch setsepcolorspace + pop + mapto_sep_imageormask + true set_spot_alias + }{ + //Adobe_AGM_Image/AGMIMG_&customcolorimage get exec + }ifelse + }bdf +}def +/snap_to_device +{ + 6 dict begin + matrix currentmatrix + dup 0 get 0 eq 1 index 3 get 0 eq and + 1 index 1 get 0 eq 2 index 2 get 0 eq and or exch pop + { + 1 1 dtransform 0 gt exch 0 gt/AGMIMG_xSign? exch def/AGMIMG_ySign? exch def + 0 0 transform + AGMIMG_ySign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch + AGMIMG_xSign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch + itransform/AGMIMG_llY exch def/AGMIMG_llX exch def + 1 1 transform + AGMIMG_ySign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch + AGMIMG_xSign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch + itransform/AGMIMG_urY exch def/AGMIMG_urX exch def + [AGMIMG_urX AGMIMG_llX sub 0 0 AGMIMG_urY AGMIMG_llY sub AGMIMG_llX AGMIMG_llY]concat + }{ + }ifelse + end +}def +level2 not{ + /colorbuf + { + 0 1 2 index length 1 sub{ + dup 2 index exch get + 255 exch sub + 2 index + 3 1 roll + put + }for + }def + /tint_image_to_color + { + begin + Width Height BitsPerComponent ImageMatrix + /DataSource load + end + Adobe_AGM_Image begin + /AGMIMG_mbuf 0 string def + /AGMIMG_ybuf 0 string def + /AGMIMG_kbuf 0 string def + { + colorbuf dup length AGMIMG_mbuf length ne + { + dup length dup dup + /AGMIMG_mbuf exch string def + /AGMIMG_ybuf exch string def + /AGMIMG_kbuf exch string def + }if + dup AGMIMG_mbuf copy AGMIMG_ybuf copy AGMIMG_kbuf copy pop + } + addprocs + {AGMIMG_mbuf}{AGMIMG_ybuf}{AGMIMG_kbuf}true 4 colorimage + end + }def + /sep_imageormask_lev1 + { + begin + MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ + { + 255 mul round cvi GrayLookup exch get + }currenttransfer addprocs settransfer + currentdict imageormask + }{ + /sep_colorspace_dict AGMCORE_gget/Components known{ + MappedCSA 0 get/DeviceCMYK eq{ + Components aload pop + }{ + 0 0 0 Components aload pop 1 exch sub + }ifelse + Adobe_AGM_Image/AGMIMG_k xddf + Adobe_AGM_Image/AGMIMG_y xddf + Adobe_AGM_Image/AGMIMG_m xddf + Adobe_AGM_Image/AGMIMG_c xddf + AGMIMG_y 0.0 eq AGMIMG_m 0.0 eq and AGMIMG_c 0.0 eq and{ + {AGMIMG_k mul 1 exch sub}currenttransfer addprocs settransfer + currentdict imageormask + }{ + currentcolortransfer + {AGMIMG_k mul 1 exch sub}exch addprocs 4 1 roll + {AGMIMG_y mul 1 exch sub}exch addprocs 4 1 roll + {AGMIMG_m mul 1 exch sub}exch addprocs 4 1 roll + {AGMIMG_c mul 1 exch sub}exch addprocs 4 1 roll + setcolortransfer + currentdict tint_image_to_color + }ifelse + }{ + MappedCSA 0 get/DeviceGray eq{ + {255 mul round cvi ColorLookup exch get 0 get}currenttransfer addprocs settransfer + currentdict imageormask + }{ + MappedCSA 0 get/DeviceCMYK eq{ + currentcolortransfer + {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}exch addprocs 4 1 roll + setcolortransfer + currentdict tint_image_to_color + }{ + currentcolortransfer + {pop 1}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 2 get}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 1 get}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 0 get}exch addprocs 4 1 roll + setcolortransfer + currentdict tint_image_to_color + }ifelse + }ifelse + }ifelse + }ifelse + end + }def + /sep_image_lev1_sep + { + begin + /sep_colorspace_dict AGMCORE_gget/Components known{ + Components aload pop + Adobe_AGM_Image/AGMIMG_k xddf + Adobe_AGM_Image/AGMIMG_y xddf + Adobe_AGM_Image/AGMIMG_m xddf + Adobe_AGM_Image/AGMIMG_c xddf + {AGMIMG_c mul 1 exch sub} + {AGMIMG_m mul 1 exch sub} + {AGMIMG_y mul 1 exch sub} + {AGMIMG_k mul 1 exch sub} + }{ + {255 mul round cvi ColorLookup exch get 0 get 1 exch sub} + {255 mul round cvi ColorLookup exch get 1 get 1 exch sub} + {255 mul round cvi ColorLookup exch get 2 get 1 exch sub} + {255 mul round cvi ColorLookup exch get 3 get 1 exch sub} + }ifelse + AGMCORE_get_ink_data currenttransfer addprocs settransfer + currentdict imageormask_sys + end + }def + /indexed_imageormask_lev1 + { + /indexed_colorspace_dict AGMCORE_gget begin + begin + currentdict + MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ + {HiVal mul round cvi GrayLookup exch get HiVal div}currenttransfer addprocs settransfer + imageormask + }{ + MappedCSA 0 get/DeviceGray eq{ + {HiVal mul round cvi Lookup exch get HiVal div}currenttransfer addprocs settransfer + imageormask + }{ + MappedCSA 0 get/DeviceCMYK eq{ + currentcolortransfer + {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll + {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll + {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll + {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll + setcolortransfer + tint_image_to_color + }{ + currentcolortransfer + {pop 1}exch addprocs 4 1 roll + {3 mul HiVal mul round cvi 2 add Lookup exch get HiVal div}exch addprocs 4 1 roll + {3 mul HiVal mul round cvi 1 add Lookup exch get HiVal div}exch addprocs 4 1 roll + {3 mul HiVal mul round cvi Lookup exch get HiVal div}exch addprocs 4 1 roll + setcolortransfer + tint_image_to_color + }ifelse + }ifelse + }ifelse + end end + }def + /indexed_image_lev1_sep + { + /indexed_colorspace_dict AGMCORE_gget begin + begin + {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub} + {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub} + {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub} + {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub} + AGMCORE_get_ink_data currenttransfer addprocs settransfer + currentdict imageormask_sys + end end + }def +}if +end +systemdict/setpacking known +{setpacking}if +%%EndResource +currentdict Adobe_AGM_Utils eq {end} if +%%EndProlog +%%BeginSetup +Adobe_AGM_Utils begin +2 2010 Adobe_AGM_Core/ds gx +Adobe_CoolType_Core/ds get exec Adobe_AGM_Image/ds gx +currentdict Adobe_AGM_Utils eq {end} if +%%EndSetup +%%Page: 1 1 +%%EndPageComments +%%BeginPageSetup +%ADOBeginClientInjection: PageSetup Start "AI11EPS" +%AI12_RMC_Transparency: Balance=75 RasterRes=300 GradRes=150 Text=0 Stroke=1 Clip=1 OP=0 +%ADOEndClientInjection: PageSetup Start "AI11EPS" +Adobe_AGM_Utils begin +Adobe_AGM_Core/ps gx +Adobe_AGM_Utils/capture_cpd gx +Adobe_CoolType_Core/ps get exec Adobe_AGM_Image/ps gx +%ADOBeginClientInjection: PageSetup End "AI11EPS" +/currentdistillerparams where {pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse { userdict /AI11_PDFMark5 /cleartomark load put userdict /AI11_ReadMetadata_PDFMark5 {flushfile cleartomark } bind put} { userdict /AI11_PDFMark5 /pdfmark load put userdict /AI11_ReadMetadata_PDFMark5 {/PUT pdfmark} bind put } ifelse [/NamespacePush AI11_PDFMark5 [/_objdef {ai_metadata_stream_123} /type /stream /OBJ AI11_PDFMark5 [{ai_metadata_stream_123} currentfile 0 (% &&end XMP packet marker&&) /SubFileDecode filter AI11_ReadMetadata_PDFMark5 + + + + application/postscript + + + Print + + + + + 2011-05-12T01:27:21-04:00 + 2011-05-12T01:27:21-04:00 + 2011-05-12T01:27:20-04:00 + Adobe Illustrator CS4 + + + + 256 + 56 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAOAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A43+WXkZvPPnSy8tC9/R5 vFmY3Zj9biIYml+xyjrXhT7QwJfYP5Lfkt/yrNdYH6ZOrfpY25/3n+rCP6v6vb1ZuXL1vbphQ1rP 5ZavbPPqOlXxmuOTyiEKYpKE8qIwZqn7s3WHtKBqMxt83n8/ZU4kzhLf5In8vvPd5d3a6Pqr+rI4 P1W5b7ZZRUo577DY5DX6KMRxw+IbOze0JSl4c+fQvRM1DvHYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq+Hf+cYf/JzaL/xivP+oWTAl9xYUKMd7Zyzvbxz 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 sVf/2Q== + + + + + + xmp.iid:06801174072068118DBBD524E8CB12B3 + xmp.did:06801174072068118DBBD524E8CB12B3 + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + xmp.iid:05801174072068118DBBD524E8CB12B3 + xmp.did:05801174072068118DBBD524E8CB12B3 + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + + + + converted + from application/pdf to <unknown> + + + saved + xmp.iid:D27F11740720681191099C3B601C4548 + 2008-04-17T14:19:15+05:30 + Adobe Illustrator CS4 + + + / + + + + + converted + from application/pdf to <unknown> + + + converted + from application/pdf to <unknown> + + + saved + xmp.iid:F97F1174072068118D4ED246B3ADB1C6 + 2008-05-15T16:23:06-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:FA7F1174072068118D4ED246B3ADB1C6 + 2008-05-15T17:10:45-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:EF7F117407206811A46CA4519D24356B + 2008-05-15T22:53:33-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:F07F117407206811A46CA4519D24356B + 2008-05-15T23:07:07-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:F77F117407206811BDDDFD38D0CF24DD + 2008-05-16T10:35:43-07:00 + Adobe Illustrator CS4 + + + / + + + + + converted + from application/pdf to <unknown> + + + saved + xmp.iid:F97F117407206811BDDDFD38D0CF24DD + 2008-05-16T10:40:59-07:00 + Adobe Illustrator CS4 + + + / + + + + + converted + from application/vnd.adobe.illustrator to <unknown> + + + saved + xmp.iid:FA7F117407206811BDDDFD38D0CF24DD + 2008-05-16T11:26:55-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:FB7F117407206811BDDDFD38D0CF24DD + 2008-05-16T11:29:01-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:FC7F117407206811BDDDFD38D0CF24DD + 2008-05-16T11:29:20-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:FD7F117407206811BDDDFD38D0CF24DD + 2008-05-16T11:30:54-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:FE7F117407206811BDDDFD38D0CF24DD + 2008-05-16T11:31:22-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:B233668C16206811BDDDFD38D0CF24DD + 2008-05-16T12:23:46-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:B333668C16206811BDDDFD38D0CF24DD + 2008-05-16T13:27:54-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:B433668C16206811BDDDFD38D0CF24DD + 2008-05-16T13:46:13-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:F77F11740720681197C1BF14D1759E83 + 2008-05-16T15:47:57-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:F87F11740720681197C1BF14D1759E83 + 2008-05-16T15:51:06-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:F97F11740720681197C1BF14D1759E83 + 2008-05-16T15:52:22-07:00 + Adobe Illustrator CS4 + + + / + + + + + converted + from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator + + + saved + xmp.iid:FA7F117407206811B628E3BF27C8C41B + 2008-05-22T13:28:01-07:00 + Adobe Illustrator CS4 + + + / + + + + + converted + from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator + + + saved + xmp.iid:FF7F117407206811B628E3BF27C8C41B + 2008-05-22T16:23:53-07:00 + Adobe Illustrator CS4 + + + / + + + + + converted + from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator + + + saved + xmp.iid:07C3BD25102DDD1181B594070CEB88D9 + 2008-05-28T16:45:26-07:00 + Adobe Illustrator CS4 + + + / + + + + + converted + from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator + + + saved + xmp.iid:F87F1174072068119098B097FDA39BEF + 2008-06-02T13:25:25-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:F77F117407206811BB1DBF8F242B6F84 + 2008-06-09T14:58:36-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:F97F117407206811ACAFB8DA80854E76 + 2008-06-11T14:31:27-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:0180117407206811834383CD3A8D2303 + 2008-06-11T22:37:35-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:F77F117407206811818C85DF6A1A75C3 + 2008-06-27T14:40:42-07:00 + Adobe Illustrator CS4 + + + / + + + + + saved + xmp.iid:04801174072068118DBBD524E8CB12B3 + 2011-05-11T11:44:14-04:00 + Adobe Illustrator CS4 + / + + + saved + xmp.iid:05801174072068118DBBD524E8CB12B3 + 2011-05-11T13:52:20-04:00 + Adobe Illustrator CS4 + / + + + saved + xmp.iid:06801174072068118DBBD524E8CB12B3 + 2011-05-12T01:27:21-04:00 + Adobe Illustrator CS4 + / + + + + + + Print + + + False + False + 1 + + 7.000000 + 2.000000 + Inches + + + + Cyan + Magenta + Yellow + Black + + + + + + Default Swatch Group + 0 + + + + White + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + CMYK Red + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + CMYK Yellow + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Green + CMYK + PROCESS + 100.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Cyan + CMYK + PROCESS + 100.000000 + 0.000000 + 0.000000 + 0.000000 + + + CMYK Blue + CMYK + PROCESS + 100.000000 + 100.000000 + 0.000000 + 0.000000 + + + CMYK Magenta + CMYK + PROCESS + 0.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=15 M=100 Y=90 K=10 + CMYK + PROCESS + 14.999998 + 100.000000 + 90.000000 + 10.000002 + + + C=0 M=90 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 90.000000 + 85.000000 + 0.000000 + + + C=0 M=80 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 80.000000 + 95.000000 + 0.000000 + + + C=0 M=50 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 50.000000 + 100.000000 + 0.000000 + + + C=0 M=35 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 35.000004 + 85.000000 + 0.000000 + + + C=5 M=0 Y=90 K=0 + CMYK + PROCESS + 5.000001 + 0.000000 + 90.000000 + 0.000000 + + + C=20 M=0 Y=100 K=0 + CMYK + PROCESS + 19.999998 + 0.000000 + 100.000000 + 0.000000 + + + C=50 M=0 Y=100 K=0 + CMYK + PROCESS + 50.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=75 M=0 Y=100 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=85 M=10 Y=100 K=10 + CMYK + PROCESS + 85.000000 + 10.000002 + 100.000000 + 10.000002 + + + C=90 M=30 Y=95 K=30 + CMYK + PROCESS + 90.000000 + 30.000002 + 95.000000 + 30.000002 + + + C=75 M=0 Y=75 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 75.000000 + 0.000000 + + + C=80 M=10 Y=45 K=0 + CMYK + PROCESS + 80.000000 + 10.000002 + 45.000000 + 0.000000 + + + C=70 M=15 Y=0 K=0 + CMYK + PROCESS + 70.000000 + 14.999998 + 0.000000 + 0.000000 + + + C=85 M=50 Y=0 K=0 + CMYK + PROCESS + 85.000000 + 50.000000 + 0.000000 + 0.000000 + + + C=100 M=95 Y=5 K=0 + CMYK + PROCESS + 100.000000 + 95.000000 + 5.000001 + 0.000000 + + + C=100 M=100 Y=25 K=25 + CMYK + PROCESS + 100.000000 + 100.000000 + 25.000000 + 25.000000 + + + C=75 M=100 Y=0 K=0 + CMYK + PROCESS + 75.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=50 M=100 Y=0 K=0 + CMYK + PROCESS + 50.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=35 M=100 Y=35 K=10 + CMYK + PROCESS + 35.000004 + 100.000000 + 35.000004 + 10.000002 + + + C=10 M=100 Y=50 K=0 + CMYK + PROCESS + 10.000002 + 100.000000 + 50.000000 + 0.000000 + + + C=0 M=95 Y=20 K=0 + CMYK + PROCESS + 0.000000 + 95.000000 + 19.999998 + 0.000000 + + + C=25 M=25 Y=40 K=0 + CMYK + PROCESS + 25.000000 + 25.000000 + 39.999996 + 0.000000 + + + C=40 M=45 Y=50 K=5 + CMYK + PROCESS + 39.999996 + 45.000000 + 50.000000 + 5.000001 + + + C=50 M=50 Y=60 K=25 + CMYK + PROCESS + 50.000000 + 50.000000 + 60.000004 + 25.000000 + + + C=55 M=60 Y=65 K=40 + CMYK + PROCESS + 55.000000 + 60.000004 + 65.000000 + 39.999996 + + + C=25 M=40 Y=65 K=0 + CMYK + PROCESS + 25.000000 + 39.999996 + 65.000000 + 0.000000 + + + C=30 M=50 Y=75 K=10 + CMYK + PROCESS + 30.000002 + 50.000000 + 75.000000 + 10.000002 + + + C=35 M=60 Y=80 K=25 + CMYK + PROCESS + 35.000004 + 60.000004 + 80.000000 + 25.000000 + + + C=40 M=65 Y=90 K=35 + CMYK + PROCESS + 39.999996 + 65.000000 + 90.000000 + 35.000004 + + + C=40 M=70 Y=100 K=50 + CMYK + PROCESS + 39.999996 + 70.000000 + 100.000000 + 50.000000 + + + C=50 M=70 Y=80 K=70 + CMYK + PROCESS + 50.000000 + 70.000000 + 80.000000 + 70.000000 + + + + + + Grays + 1 + + + + C=0 M=0 Y=0 K=100 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + C=0 M=0 Y=0 K=90 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 89.999405 + + + C=0 M=0 Y=0 K=80 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 79.998795 + + + C=0 M=0 Y=0 K=70 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 69.999702 + + + C=0 M=0 Y=0 K=60 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 59.999104 + + + C=0 M=0 Y=0 K=50 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 50.000000 + + + C=0 M=0 Y=0 K=40 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 39.999401 + + + C=0 M=0 Y=0 K=30 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 29.998802 + + + C=0 M=0 Y=0 K=20 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 19.999701 + + + C=0 M=0 Y=0 K=10 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 9.999103 + + + C=0 M=0 Y=0 K=5 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 4.998803 + + + + + + Brights + 1 + + + + C=0 M=100 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + C=0 M=75 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 75.000000 + 100.000000 + 0.000000 + + + C=0 M=10 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 10.000002 + 95.000000 + 0.000000 + + + C=85 M=10 Y=100 K=0 + CMYK + PROCESS + 85.000000 + 10.000002 + 100.000000 + 0.000000 + + + C=100 M=90 Y=0 K=0 + CMYK + PROCESS + 100.000000 + 90.000000 + 0.000000 + 0.000000 + + + C=60 M=90 Y=0 K=0 + CMYK + PROCESS + 60.000004 + 90.000000 + 0.003099 + 0.003099 + + + + + + + + + Adobe PDF library 9.00 + + + + + + + + + + + + + + + + + + + + + + + + + % &&end XMP packet marker&& [{ai_metadata_stream_123} <> /PUT AI11_PDFMark5 [/Document 1 dict begin /Metadata {ai_metadata_stream_123} def currentdict end /BDC AI11_PDFMark5 +%ADOEndClientInjection: PageSetup End "AI11EPS" +%%EndPageSetup +1 -1 scale 0 -97.4355 translate +pgsv +[1 0 0 1 0 0 ]ct +gsave +np +gsave +0 0 mo +0 97.4355 li +442.237 97.4355 li +442.237 0 li +cp +clp +[1 0 0 1 0 0 ]ct +gsave +0 0 mo +442.237 0 li +442.237 97.4355 li +0 97.4355 li +0 0 li +cp +clp +19.3945 78.6338 mo +1.10938 78.6338 li +.369629 78.6338 -.000488281 78.4453 -.000488281 77.7852 cv +-.000488281 .947266 li +-.000488281 .375977 .369629 .000976563 1.10938 .000976563 cv +19.269 .000976563 li +20.0117 .000976563 20.5059 .288086 20.5059 .947266 cv +20.5059 5.67773 li +20.5059 6.34082 20.1318 6.52832 19.3945 6.52832 cv +11.2407 6.52832 li +10.2505 6.52832 9.88086 6.90967 9.88086 7.56982 cv +9.88086 71.1582 li +9.88086 71.8184 10.2505 72.1064 11.1162 72.1064 cv +19.269 72.1064 li +20.0117 72.1064 20.5059 72.3867 20.5059 72.9521 cv +20.5059 77.7852 li +20.5059 78.3486 20.1318 78.6338 19.3945 78.6338 cv +false sop +/0 +[/DeviceCMYK] /CSA add_res +.722656 .664063 .667969 .832031 cmyk +f +61.2715 47.5186 mo +56.4541 48.9326 53.1187 51.7578 53.1187 56.3857 cv +53.1187 69.7813 li +53.1187 79.7783 43.6074 78.6826 31.749 78.6826 cv +29.897 78.6826 li +29.1528 78.6826 28.6621 78.3984 28.6621 77.7393 cv +28.6621 73.1162 li +28.6621 72.458 29.0303 72.1719 29.7715 72.1719 cv +31.2544 72.1719 li +38.2939 72.1719 43.2368 73.7148 43.2368 68.0557 cv +43.2368 55.3477 li +43.2368 51.3828 45.9575 45.9131 51.5151 43.9346 cv +51.8867 43.8389 52.0059 43.6504 52.0059 43.46 cv +52.0059 43.2725 51.8867 42.9893 51.5151 42.8018 cv +46.4482 40.5371 43.2368 36.7666 43.2368 32.2339 cv +43.2368 17.71 li +43.2368 12.1411 38.2939 6.52344 31.2544 6.52344 cv +29.7715 6.52344 li +29.0303 6.52344 28.6621 6.24023 28.6621 5.58105 cv +28.6621 .95752 li +28.6621 .296875 29.1528 .0175781 29.897 .0175781 cv +31.749 .0175781 li +43.6074 .0175781 53.2427 8.46631 53.2427 18.4673 cv +53.2427 30.6313 li +53.2427 35.2539 56.5781 37.8975 61.521 39.5947 cv +63.3735 40.1611 64.3618 40.2549 64.3618 41.668 cv +64.3618 45.5381 li +64.3618 46.4814 63.4966 46.8555 61.2715 47.5186 cv +.6875 .140625 0 0 cmyk +f +37.5352 33.9375 mo +37.5352 35.0093 36.5659 35.8877 35.3828 35.8877 cv +30.5371 35.8877 li +29.3525 35.8877 28.3857 35.0093 28.3857 33.9375 cv +28.3857 29.5508 li +28.3857 28.4761 29.3525 27.5986 30.5371 27.5986 cv +35.3828 27.5986 li +36.5659 27.5986 37.5352 28.4761 37.5352 29.5508 cv +37.5352 33.9375 li +cp +.722656 .664063 .667969 .832031 cmyk +f +93.436 78.7432 mo +86.458 78.7432 80.9902 77.083 76.4502 72.5391 cv +80.4858 68.3486 li +83.7671 71.9307 88.2236 73.333 93.3521 73.333 cv +100.164 73.333 104.369 70.7939 104.369 65.7295 cv +104.369 61.9746 102.263 59.876 97.4741 59.4365 cv +90.6616 58.8281 li +82.5889 58.1299 78.2988 54.376 78.2988 47.2998 cv +78.2988 39.4385 84.6924 34.7227 93.5205 34.7227 cv +99.4063 34.7227 104.703 36.209 108.405 39.3516 cv +104.452 43.4561 li +101.508 41.0996 97.7251 40.0488 93.436 40.0488 cv +87.3813 40.0488 84.1851 42.7568 84.1851 47.124 cv +84.1851 50.7939 86.2036 52.9766 91.4204 53.4121 cv +98.0615 54.0244 li +105.292 54.7227 110.255 57.6035 110.255 65.6436 cv +110.255 73.9424 103.443 78.7432 93.436 78.7432 cv +f +144.054 78.2178 mo +144.054 73.415 li +141.111 76.9072 136.992 78.7432 132.369 78.7432 cv +127.908 78.7432 124.208 77.3438 121.686 74.7256 cv +118.742 71.7549 117.484 67.6514 117.484 62.6729 cv +117.484 35.2441 li +123.537 35.2441 li +123.537 61.7139 li +123.537 69.3115 127.406 73.1523 133.627 73.1523 cv +139.851 73.1523 143.97 69.2207 143.97 61.7139 cv +143.97 35.2441 li +150.023 35.2441 li +150.023 78.2178 li +144.054 78.2178 li +cp +f +188.787 74.9883 mo +186.602 77.2598 182.902 78.7432 178.697 78.7432 cv +174.158 78.7432 170.372 77.6094 167.01 73.1523 cv +167.01 97.4355 li +160.954 97.4355 li +160.954 35.2451 li +167.01 35.2451 li +167.01 40.3135 li +170.372 35.7705 174.158 34.7227 178.697 34.7227 cv +182.902 34.7227 186.602 36.208 188.787 38.4775 cv +192.992 42.8418 193.835 50.0068 193.835 56.7324 cv +193.835 63.459 192.992 70.6172 188.787 74.9883 cv +177.435 40.3135 mo +168.437 40.3135 167.01 48.3486 167.01 56.7324 cv +167.01 65.1152 168.437 73.1523 177.435 73.1523 cv +186.434 73.1523 187.78 65.1152 187.78 56.7324 cv +187.78 48.3486 186.434 40.3135 177.435 40.3135 cv +f +206.359 58.3916 mo +206.359 67.8252 210.648 73.2412 218.555 73.2412 cv +223.344 73.2412 226.123 71.7549 229.403 68.3486 cv +233.521 72.1045 li +229.319 76.4746 225.449 78.7432 218.385 78.7432 cv +207.451 78.7432 200.304 71.9326 200.304 56.7324 cv +200.304 42.8418 206.781 34.7227 217.29 34.7227 cv +227.972 34.7227 234.276 42.7568 234.276 55.5107 cv +234.276 58.3916 li +206.359 58.3916 li +cp +226.961 46.5127 mo +225.362 42.583 221.665 40.0488 217.29 40.0488 cv +212.922 40.0488 209.22 42.583 207.619 46.5127 cv +206.696 48.8701 206.528 50.1846 206.359 53.6748 cv +228.22 53.6748 li +228.058 50.1846 227.886 48.8701 226.961 46.5127 cv +f +266.062 43.4561 mo +263.786 41.0986 262.105 40.3135 258.917 40.3135 cv +252.863 40.3135 248.987 45.291 248.987 51.8418 cv +248.987 78.2178 li +242.939 78.2178 li +242.939 35.2441 li +248.987 35.2441 li +248.987 40.4854 li +251.26 36.9053 255.805 34.7212 260.595 34.7212 cv +264.546 34.7212 267.575 35.6816 270.522 38.7383 cv +266.062 43.4561 li +cp +f +302.311 78.9346 mo +302.311 74.8984 li +299.451 77.9248 295.415 79.4395 291.375 79.4395 cv +287.008 79.4395 283.468 78.0088 281.034 75.5713 cv +277.498 72.041 276.572 67.9199 276.572 63.124 cv +276.572 35.1216 li +287.51 35.1216 li +287.51 61.6094 li +287.51 67.584 291.294 69.6025 294.739 69.6025 cv +298.19 69.6025 302.058 67.584 302.058 61.6094 cv +302.058 35.1216 li +312.992 35.1216 li +312.992 78.9346 li +302.311 78.9346 li +cp +f +338.937 79.4395 mo +332.045 79.4395 325.821 78.6826 320.271 73.1318 cv +327.417 65.9873 li +331.033 69.6025 335.747 70.1055 339.106 70.1055 cv +342.889 70.1055 346.843 68.8428 346.843 65.5645 cv +346.843 63.377 345.667 61.8643 342.223 61.5273 cv +335.319 60.8574 li +327.417 60.0977 322.54 56.6533 322.54 48.5771 cv +322.54 39.4951 330.531 34.6167 339.445 34.6167 cv +346.256 34.6167 351.97 35.7959 356.177 39.749 cv +349.449 46.5596 li +346.925 44.2891 343.064 43.6143 339.276 43.6143 cv +334.903 43.6143 333.052 45.6338 333.052 47.8213 cv +333.052 49.417 333.73 51.2686 337.593 51.6045 cv +344.485 52.2783 li +353.148 53.1201 357.527 57.7441 357.527 65.1455 cv +357.527 74.8145 349.286 79.4395 338.937 79.4395 cv +f +374.848 60.4336 mo +374.848 66.0693 378.303 70.1875 384.441 70.1875 cv +389.231 70.1875 391.59 68.8428 394.364 66.0693 cv +401.011 72.5449 li +396.552 76.999 392.266 79.4395 384.354 79.4395 cv +374.015 79.4395 364.092 74.7324 364.092 56.9844 cv +364.092 42.6904 371.828 34.6182 383.184 34.6182 cv +395.375 34.6182 402.268 43.5332 402.268 55.5566 cv +402.268 60.4336 li +374.848 60.4336 li +cp +390.496 48.2422 mo +389.318 45.6338 386.881 43.6982 383.184 43.6982 cv +379.474 43.6982 377.044 45.6338 375.861 48.2422 cv +375.194 49.8408 374.941 51.0156 374.848 52.9512 cv +391.501 52.9512 li +391.417 51.0156 391.169 49.8408 390.496 48.2422 cv +f +433.992 47.0654 mo +432.309 45.3818 430.886 44.4541 428.188 44.4541 cv +424.831 44.4541 421.128 46.9814 421.128 52.5303 cv +421.128 78.9326 li +410.192 78.9326 li +410.192 35.123 li +420.875 35.123 li +420.875 39.3271 li +422.977 36.8037 427.181 34.6182 431.888 34.6182 cv +436.176 34.6182 439.206 35.71 442.237 38.7383 cv +433.992 47.0654 li +cp +f +grestore +%ADOBeginClientInjection: EndPageContent "AI11EPS" +userdict /annotatepage 2 copy known {get exec}{pop pop} ifelse +%ADOEndClientInjection: EndPageContent "AI11EPS" +grestore +grestore +pgrs +%%PageTrailer +%ADOBeginClientInjection: PageTrailer Start "AI11EPS" +[/EMC AI11_PDFMark5 [/NamespacePop AI11_PDFMark5 +%ADOEndClientInjection: PageTrailer Start "AI11EPS" +[ +[/CSA [/0 ]] +] del_res +Adobe_AGM_Image/pt gx +Adobe_CoolType_Core/pt get exec Adobe_AGM_Core/pt gx +currentdict Adobe_AGM_Utils eq {end} if +%%Trailer +Adobe_AGM_Image/dt get exec +Adobe_CoolType_Core/dt get exec Adobe_AGM_Core/dt get exec +%%EOF +%AI9_PrintingDataEnd userdict /AI9_read_buffer 256 string put userdict begin /ai9_skip_data { mark { currentfile AI9_read_buffer { readline } stopped { } { not { exit } if (%AI9_PrivateDataEnd) eq { exit } if } ifelse } loop cleartomark } def end userdict /ai9_skip_data get exec %AI9_PrivateDataBegin %!PS-Adobe-3.0 EPSF-3.0 %%Creator: Adobe Illustrator(R) 14.0 %%AI8_CreatorVersion: 14.0.0 %%For: (JIN YANG) () %%Title: (su-logo.eps) %%CreationDate: 5/12/11 1:27 AM %%Canvassize: 16383 %AI9_DataStream %Gb"-6CNCc1Pp#o2n/pqR,4)g@A-0h?!ks[6;9rD6[Om2Ecd#e9L4\ij,jqnYSo1u"g0]?U'9B5r@MMIK4>mMFaZ9SJOhedn#Npdo %^0'3@^3b'Fp\jCV5CU"ZBjpD'+!(:EbSOXa\!u8^J""lsE6/RYrP^a("T*+Oi.(Y-,DO%ph[KM/h:p]1n#jE[TjPS3c$T6^'7MZb97MG4rU9f."f&=VK(X'^ %ombK?!)P,Zps\]8^VBU:nF>f&k5OdurDF^4nc$H'X,m8bbr[=@f.Usto65\oIfJC#lJ\1u@;m%#![kbZ;sM1L;OoIrIds7YrF-W' %U(YhHq!cPQs+,BL&Tf&nbMW6soBl4k5Mk5SS.d;je)0#s]=s!(jn?=@X7,.MTS)eg %=89\`a7$2R!5\)A5N=$eC(^+FYSM/[I_8.Wnbdp@5$["DiVoH``-1*c])\?/Lo;=h;P_TD&,7)BI\>5@\QA,"HdJoc(LW6:L/n-9 %j3@3e&S>d*[eoc!/_G51HB(BV&%mI:#/Nna&ZH+Z6\INj9"/bOH$CQJL)/USrD(Mhtkl'q6fpdY$3f"j;^J+:3p-FbYA'E3o^ %n;ZpEm"sn^HcA"]J+:5B2a[&*nOn9Tk]uMW2L[]I>h;M^n.4*epVVKc-XK)fC]9>q %%"Db=Hp:nFSeZ.$mt^r&-[\!^J,GX'NY)+)CZ50L^V#G_,s8C/I!h[J!01=S8(W^?a0Uf6Gi!OKps"*V3-$&V5F6`Jp#6ndK6?\N %'Jo:HYVj0QIuEcNs'dS"DgXd@'5ia.@NBhXo7^Y^mN%lZIKF#giiqF"@N1>t0njU5pP#b!cT@2JB:Y[m''']%_;@p$Xo(0! %hj!$rK7"&Vb&@86?OR$(b&@7s8,cbBo1t>C3C\F?Pb7'#^F?qnB=6aFjZ!4,0/ac(Pi)DFh=Bb"Rt&$I_t4r#%fbX5jj3d[J&D/o %IbbNPgdV2are6t(^]N9;m5AI8+3XE%\D%J9@"%N0[sa&7e8`*+q%iteFO4b/p&&M#AV(g9H_EV]*TE$bk&7&>q?ESY2q2Wp[Y_[. %[b#HA(NlciJlZCJ-`mRm%@/6@U!DTSYms:Z5213`"+/gC0-cJslZ>dG=*e48b'PN3]dhpehqR]BXN[]D9gAKd*nM#o2/[YD390Kn %C^n]/2mcJi?<@TQLT(PI0a& %^*g'-pWe3Y;h,4nV57V=nt*L3]3W1G2A(De9'L/$+'@EJ_;B3KSn7nUs.VH2q6-eE^GiRQFG'`Wg[I4:%B<4]leBOm-cDWP.03lug0S7>83YOI0"0D5?VeB=esVn>FTY@$BsOnYH-T\=V\);i&b&\mFM;[gcQ-n4mVIS0L]ir0uXLugsW%d^9C %]k@md/r1GpT?[',CY^:j*m!Pb`R^I&(Z$F`DHC9%+:`C^-*B]`IGqg.T$Sk$H<\6Tl*4UG4K%0J*E-5&Bu7'>6;oBU %1`#@\e$>FKP^-fmU#f6r&,7%:*Ubg+@p)O%9KT-(n1@;;\=U4"BO,iXI7]l6Psn\>jH6X4KmjDBWLdD=Y:>\*Ic`f% %gGg^ho2mE/hmnlaS8[WSGJ%WP0s.7!KJ($@6>X*W8@/a\a]);J@7^KdO_mrJ6lk5$ZVNlMRc-ISDE=jY]!1Y*r\[VDmkbt4H_9W\o2%Vle^%LnF/`n,5NfWHY.jr8qW$[! %(uY)[j]e,@b>/Z#+)g[$5$bolV=nc%hAh4JUoQ9LHA*I<'Vq=ag*Nur;Ss5Dr-iT&J#CXf(cnegrX %0(/-LhHbVT\_LM?p$)28dgmdX52:Vdo`""@F/btMJ%WM-I/eI!2LG,hp\i-Vhd&TN2gbs7,gVl95(PfQHfZl4tit^)[A;! %s1,l@rd*Q"%P-GR)>r[g#[IeA9TnlqL9Y5pl7]OZKc!PaKKIXV)2^A=agpRa\Jk3fj.o*_"T`?.:YIC7Q[d2lYHNJqP?`5$G4#AehrcBWGNU(a;50OUmgD\mmm!JOal8d3Y!-)h %T+=0QW9-%L_ZB"N:&;U%nd%t^@BmDE^AfRVbJ72/"n-s@!JH0Gmf@BMqb&a@%"+pZXFM7XcMZC#$mC9Y6msK8_^_b*->]CB %@%AiBT-*#`0[,&*=#6^n$"Yusa3D+7GHd1=.Lr>VNs##06A[G9AR*2sgr(e/?0YhJ*5#7Cn6JC";bSVle&nIDPYKl/*FOMR7=t8g %ko5ohSeIHI/[rprEjOORGCV7\(D55o?O\i)btI7Nn4V97+>6"?a3iN!Y=B[/1\c.W4E)27hRM<;k:mnn1_"^F?[bL0ZG88O[ %6pi;*]Fh#PZWFT!ZC;W`6(QtAGrsQqm?Qp35:M,r#61YpR$;SgihWAA=W5&FPguS2-Y64K:"Eu2EEPk99A)kh9%e1jSJ3Tn8YJ(O %r8f\)d@X9.P`hgnV6$JoV/3@Q7"&6M_D]Cm`]1su`]D+$`]V7(`]hC,`^%O0`^7I.,H/])aQQ/##mE&HEK[Sin5:s(EKdYknWP[a %)+7@@.SWkq`Cj&JZVih:gRT&Xfgo7=Tm&<^cVdAu&uCObJeVLo?Ab)D85C5F^crjgk_%+V.D.b7"r;TV:u>c9lN#Tf<6HE;.OYZK %e"XJ\&`dI=D8Te+,W)%%4KU'SLC6h+MPD<;sI8Q]uMT4 %]gU7BF9n_7mCLa',P@_5eL!r&._O'MZ^^8Vf5R>Vk4@E,lN`MagWqR_J`U$".$b:,h/>)q.=s"+.?`5e`NEYGKPj75:':qJ<,3XO %42JTS!;&U!`[h<>Te/T0%*Ja+Q&(cmX9Up^"p7^Oo#[VhZB2:'aDq]2^E4jZ>%J4o\680g&eV/($;"s!qW=SV&[k5c)K"10hi0n0NBs]o&?h* %KgFS[\;W(&OZ+JZZ\'nlW3h6_.qkBEP7bAFTOSLnY^HcJ]nQ8h_hp!ROWmqie_&R+).LpudKc5uNt3uAKMb\N9ZEgSV0RSk#C %>n0LFj_UMCT+Oe[XIP^D;j3;"_rsL:_lcP72+Q;n"(6t@"gVVC,\@E'Gmt^=$(EN`"qRrcHg'=[O!N)T/WbQAD20DKLBp9l^a/XY %7KG#&R@O3tqe0u)MofVbA#2CnL:S5t,rB-JDT_:l0$7e.6"Hus[=;*bi85=eG0$*^do4:!l0P9/3g %i"7$7Ps%9-+u;W.8aJiBPoNB#(]H^lJrC"M2=X(hrWo5V\s$Q#k-=.^ %%N[l@GKSQ_JaNF\6.oTk?Dj%>WN=SlPb6OLjQ.j![`]&e&K.:D)&sidJ6`c$$QunM5XZS341b(p,lA+A863Mn'+ACS&S1q\m"&-h %Fgp(Um(\)bc3j>_JjGD>`XJp)!&_'_%_1mAq!K&Fn.O)*_O_.NV0ek:%d7:*I%3u-J>G6bOj7YCnI\PZ"USm5Vi`R&K7IPXm9J(] %iS0?6_Ae:iR)/6`qN"emL+J_18r>a^_WImViG.>[aN('7UL:c7\_`u!CmdmpgL5`68oeNTj$V!.<\e] %XqqWC*2a*5MY8hqgo61DX,_Whp21C\k.]lNS\Y!VAcJ6@`rG2`m[@sD%"U@)6HVCfg?a!%`o$.6]+rE.$&Hq6-]io/"/ljr8-,rg %"94NZpEQ6jHTJ^T@=>K:Cc@j.>%rh=.:N@c`$$umViVR$OXjn#O]^U.X:Ue-7s&l@e.h.\1djM4,+;%S4/.iVU5Vk\R*;(2n/T9[ %bXi!i(k?:jKObQZ/t#[VKhO+U7#jST4cr2XN*@H_9Fs];L7[$4ZD/:JStUaWhdp?d%O,ug<+KUY&b@Hm %Ikid/F8t%uZ]W3khgBotrU=b8#X&F3fPBG$(G>`+eLn#tV#^),/5_Yh^[@6/_2.80eF?L8:[;0:=*6XLo_2JfIlK0@hRqfY'm/M:>ITOF(@/F3E+kWM!h %qQA8T-Bd[ai7Io!\e``1HI6Ln\t8nBTYH;DFfnpA]YShnEoPmI8e?@lD[1=\jt/#>nVE/^&bmR8)BcEMe\Y&t1S?_GmV$g596! %2V;7q/Kd?#;+i[XR\=*b6e6<6N%[cHk/'/6P1WWD %\"lOJWT:de6*3P(:SaO#a\Q:U3M%OBQK<=b_-L]uD,cq[<+:7flmpIioR(_crP!@aZFuY@mV;uLOm?#I=.,X+HC!_sRKm!PO=8G, %4=[C/L'Qj7niKJ4M'R;0gF^P6CQd:>P1:R,!Yj'a+J=c@S3'SoAg>n8Q.HNGbBEZ:'rN\HnLB!3:,2=[p8#!>U]BX6H`g(JV@HF+ %VN+PI3\FLQd''Fl0ZF*A#Ce!g8)e %V5D1&)(-^eAZ1K2AXLJscWBP/G3[;\kKZ$Pd'rJhf/iNRNdSg"YIO&k`nHOj22fICFsU9j6r+ON#E^93EYMYR,X`@S=/'V-7O5bl %C=cd&4r*cjaA_V("ZmIaSCf3q(=m"NmO=%G>#l"^V\p,sS5fo4-P`s88dZt`K6n/aU[l<74ZY9-pap%B"?UWOunZbrM]"*QL=Vjo-'s:Js91 %rEr;8@I/Br@esZjb/Faaa,;WVpfLMc7qu^aG4.[d%5@T30Qe23%g"V7[RaU"$QC=OKPpZ,E_;ncYg(QR)WTCdO;hD?m0fc %:h3I'0O@qtot)Q@`Ad35(V#1#d1@33[K8n0M?QlH]!LnepP"ktk2TH%XENkq\$r[ab8 %hIN8D0G>tKQ,)!cXR)(:9%/GnC=GTk=ug,Co&<0Rb[HRt0qOrR%Conk_H361>^?^flm8WIaMF2_-P7Y*,3A1RgNmDl5CSlE-FCgXW@fAZ/f@SWnE:AI!8:uf\=;3);;`sSdM:^j-9"&Xq% %d>/f?#:'^K'UD,q34K"r!,d5AoWZr,"BB,3'1^<4R(3ha2])BJ'DQ'XjNh)L>ST%r7EoQ%>Tt;7("c`;"JLmTG='lA'E^?XdL5-p9J)W4 %+Oa=__/r##6qneW31([_3u^sWaTBhu#n37b!0RZ(8-#<;s-4i6CYddOWATr,00=F&dFq=-[aC3(*40R`D5@&Z-[h3ZmRXeNV1`il %,a1#.-*`5O)*m)K5,gnJK6.`#)oX?RR,c-k@?Cc_L27-NhX6["T%EBu#Ef4_-WCJ2Le9*0^*Cd`c %EQfC]bp#lS,FX6Q@mpuJP*'^cQ,kt$d;lH/AL@OT-UH'0pi,aI!;/\U\-+&>NA24U"Y7(!Uh*P`&@/H2759`,;5NWVKd^bAk&lo! %mPRYH=([HH:$E0)ZNhD?=3N5ji!JiA@\2'Dn$L!,NB6(7pa8ZHd5t!pFEl=E#-5_m>Dh8E"71r[W%%K47\&5?d_/g[M(krO))L0W %]&$gJ:]nH$rC*qX5GRP8enEfJ']7ic_I5]9)J@c"CZP2h[Q^A/I^WE1bcA-ZVbSsm&O,Nm1s %;ZHA`nU&4q.+V)Z)c&-*!OL,2j(3@*0rJ#5]t@a.m)^HLbTl3`LPZ\X0]pNArC"qT3PcLYPJ%n$/(_qW^o?R4Xem["g0-QG"#d0HX];[>LRs-`1HTGs;pMp^4iR;r6$5!H %iPT@uAlD;Bc&Qj%V\B@#mi?s`H]A>)kpc(!!c2?+##`>;O?MdV#+YVu79\]Han7e$9rA7FJWKoPmF)ZRc4eq&1J\kGRIB``2E9!g %_=?$"N!$Nc-^WEps6_t%1S:(TmW_bmVo*p9P*oc#XYQJLb`$VcZ1=j/AfbqEhb0%kkNPkZgNpQWGe_IK_+]8c.\@PV3Q>k^9)R58 %e;*G@PZWgb*XPcKKXhLLF*VLIWG"89n:c?u48c'=9M[<2reP3OnQ7LYoJBq;jj?)*:Y#f>r9%%IeC)ZhUXWJJ>,.>t?(*fi>p[j$ %FQW([?CH!HoN"cARR!4bRC%>36?fE;UAO>8!MZ%2='@3@c]ST %Pp?6"%e4L[2j4$2:B%Jiro&emB1BbYC+l_>q*UGDJJ17]g4t]E/8'@gHk/d+?K3bhL(7SN0j`lp?K3bhl?J7(8Y%i)MX\$kf+).L %I$kI?9L8O)bbb>b*BsA`+"88KG'KWBFrl1PF*pC]eD,aF!?!8oGc!6;56$^[o++QIRb],4i2\H`1j10&L8N"QU(IcGUJ#`ZOka6\ %cUE&[Ef&!)5l[t+*$LQS-_q$B_;`kL7]/0&,bu2SUB1@?oO!fn(3ofj:&,ZDg2s>b#'B#&T8chA)2m:l)2jM'igs+U48_V5n>t!` %a,5/YcKJnI?2V&OU4DATXF*JRSVoKo9g)Q9LPhL"AKOuic`=RPQp#<\N7N>/>'+'S:?Aa>m`.,nc\OumlD:,a_cQNZX*X#1^%>7( %Q[Z[Ir"%H=.g^PK@BUsC-eFGEFsYY+jgE"X%UV;FHADM8FSJ(Qb5G=-^8E.C`nh/F;aY2'dNh6XRdim`5#6IgB6BQT]&"TCaeqr@ %^=m"a3PV`'I^I+0[RR$a:<@X-?!4?dniJRs>oaI/,Mf*hchS/Yg$#=P.eH>19m:Yf@ %(0tT&MU1YFITGl#/!hKf=!OsH/%WIcF_?"P!rBKGN80;@0!=ErC?8%jFDTJ8&N]Jqjm*J4R0,$JKcgV(;k7U&1dNcmrc(!CY2#mH %](FcEY1b48F#mXI7nV)%AgStbk!D-+]e[8QT_>dT>=l3O-FR*/Qh=gUAtOIbL8>`(;M(.E@Jou2^2eVE:?]?f6T&)4,qbJf7rokq(a41i.\k->\$G:@selVcBY?'S_XTb;HU8kg[n %SL^?'o@i/=LT_`t?$5p7-XJl^mI7O$a#a,g;FALPp(7tsO!%a=DY@D_!t"VGC\U#'dsMK0b!6R0^#gtoX8-?a070`[hN%B*\!k@b %]^2c__p5p]Xlb'h070`[qJ/9%ZDk02]s0Y7@Fq5$lITnmBN06dfonSk^VR]3:Y:q0E]k?.ogq/BI>fPE&a[d5IR!^]"J+0>8"*ZNF?_h3B?B93l%\uJFC(@,(RD7^Z%OftN %hk0GO5NjSH.#lE_GC/V4F,+haB@==oP0aaFh]h7?M?A@qH0SqNa`RP:KoE-X%V;aP7q#A1Pr0e[+0$9l3!C2R%0bZ:.?gg %\B-J]-AgkY`U(aF=&+j@T+R,KpA\'n-`>GVpY]]J&+L]DB1>pE6=cu^nP[U*N_j-h8'0\iH#i`CJ1?1\ILTb?\38/3H+cH;:uql./q!C4.IDf);U- %0[S6<>4!',n!7#(dMhhdBHo+YP*SR3kHGrHn)$9I'CT8LQgpLXmcQ`V>OSp-Aj?1Wr+3ThjhQp`qKqQI_W.n''>H3L3.^IWQ6Wrt %A766mRdf.8G&ee)_9C2gnes0j[(9JR51k\`g!l2\,Rln/A+h_AnIbPd9#a9Ie#(T %KjQ>D0)/,>>DVHYESJoGHbYJ\Cu5Mtr6@kV$bQ9/ng\m@oX@qYtXTN9'sR":UOb*ZnkjQC8hbX$=9fif7sP(TZgrOeKG"I6=H %-d;tlVG9o'dh>376IO)rllH\P4W[r\2le"B*BB+S4WZi2QWZL,G'<.d4ZSegCCeUbLO/(@dAnra?>eodIRCj(ODY^dB4!%WLh(@o %Pg9*>XB]&tKsg9tb$DEne]M'p'!j%gb=n_4>-?!\<@(>hJlF3[/s8Y.b-kKMRSjeA/__O'o=DK8/+uPJ?Zu7-UaOL %IK>6"%%UY=ksZ"&njT'7,^qlm,e9.\.2R'.KY]0C@?J&[WjY-u9%8LPrusk"aUQknP.I8;rEM'O@,EXu-h!C9OC3L"VIHP9qj5]p %KD)[rX%*[MAEVLZ#:?hcqeRhLe*)jY"AVO!90henK-uGBqEVB:YUNeZPa:[>b_.^X9OfP'[gZo,2j8%le";rV9j(oJ.%>V/oiZ#/ %bZ&NYrUWs9L;Jo)1Oem"T] %D\gE$NMNaIdTIgZ;iQm")#0+ol/l-7P\FD$nL49E&bf2IC]OInE;][?a5lQIo?tH3KR^/W6XiS"ks&70RZ?@I*"\8Y9u*esghV]C %ot_2"S']3r%X=j4-W9AcG3".;&s,VDVR/mQ#BC`?EL0)1 %*4feEWdX7rF]*>g'2ID=g:Jh[3)56s3H\'?n2\`?+bls<2.Y&8qfsI(n4;s0q0^G"lAWKRro`<4?fg!C\b9%+I?eSTjk %>"3i*n@r4`YL\t?lcQ8Njjgs5C0c+mY5Et(Puh=s='r15?a+$G^&!>oqLZEWJt:j.p)9Xq)PQ^?U%0+qnf"4m)PQ`?#aJJTaK%nn %2'9]YPh19gYPA`9o-(d/6R_-H^S?/^J,7:"Ist/mV4Z$WDq/UO/?`pttin&p@N1Q@1B:om9J949q::)36 %-Sj))Cc]*Q@*Z.6T(ZrfRM$-PP$cAU$Sl'7\Sm_qo2tdC`sC_%&NuSB][iunmCA0r7`mhA@hoZ_*k>DQMX@V"rD5/RU\F0>SS^7) %3kor`jc,HIeH[Qg=LMn-riJb"qD5N/ZrRF",a44"\l)<]e5phi7X&@"ntr7;%^qNfN/oY+T!oLu&=C7q4%RY27/P@@dF3g4,G&_= %LfucKUuBB@,j.#DV^.Y3JVN8bi!-p]'&Bd@kSfV*)Y$a2(C*P:Qu(+CMHJJk1!Xg#PA3=CNm(friogjb=8@k[d8T\5P@-OA,)$+L %)7H>;?mUC@#EmepUimsH9SK&qJlX;R+DHh4254^2@q5hEY-HP9f)!Bij&gD`[FVVQ0W?pjQ0tp)51]SN=p%pn+FWTN<^UIf,cQ][ %-F22kf%S2K+'E;'9r!rSeWO&i$)M;^CYe&p[4BrZej/o&D&PjLZkPA1.ur>k)Xh(Kt>u]-qiDoh=?$TcRD-hS>6dt=iCACjM]oN/nPZA2h`Up%Y1-3f2[QAX] %l`,'9dIo=Ct%QgS*i/^qD6$q>GZ]<^*7Cq>>N>+g4E/I'[0h!S[[*CM^:b%a6S,=;)?CY*a@T@KM5X(uBAX&3<:WR\Ak %`W\4Qke?30h6f?!clE:+B[G#+`eJYZe`9Q %jf*7`82:N^$IR.#`JK7=k(bF[/IGuBKiPtGk8A_+'0\H+%<7@0B_"&/DN],pM63\Ailh@"-H!9J1XaeL"- %>0NQekj`]ca.+0bnjkLAi("3#m$i:M6o/VP3GPNZ*%@_Cj %QrDmJ_^6B^lE#dfU1#D^P7/`7p-pSqN]:`#pXs@SHmci`Tb2rk'48Xr135qb457se"_%tSVs+DAcmM-.^(Q]Y8n["e4.U)Q/h5q.(;;;F+c1g %AahLiJ;=()p\^ZL@ZEJY:Lj+Nh5M%C\At-IE'10-&qI %@)Cl#qgVRr$ZfmJCdMA8gUgJ/mAf9<>&IFo-WP1MCsT+NHk>hPRdsmPI1^hSim45sb=OSRP:E,%NVFpE+dK"ntch[CA6MHi2F([[=5-p>O>t?;PplXfMX%8b_jM9c/<=N %+C7D?#`J3N+7F5#67W5$FCR',a[b?JBZiMX:k/7PU/TE&M#n1N74XSPq[:aCNs"o`$BC59C3dS6kSZPCpj2YjP;5KO5 %=ok>Ym4D8>1_,6shpW$15)Z3!RjXaK#IY&WIZ#[b-]i@5kc+S=>eX^IZ&A*r1Jtlrc>N+JJ$!':g(g>`p8+1qOCb_H*"l5,mqUXET-=GipU7`/LG*2A7YBHgsg- %\?:mOMV-FR26gNPFgbW:a?)H@.qp_Na4t`B4/YqkC(3_2L=lcXc>2T"C7d6_:$^edK;nIr3K9p)&qfXc)pHunO&g`OWm1CVHIj'm %4.s0`b8X$6[jE,e-,CA9g-buoMR+_TU*tqO/;g\``$/i,!LD8XCQ3=6d8^A%>&6>p3G8&=ellm\o.O&$FjABJ`,L%r7]H>`e0Cgb %Uo;Ve5c2RV];DOmOa1U]#:)&Gh,%pP&:^. %,*Qgl@oHi8dU$)-`Q0-VIV(?]jKb1(Ad5bn:,.!BGfaE$[_';\%TVDBQ3"?#TN,BbWJRB[1*2UFR@\M@3"D@Ni5&NV`C*X`B`Fu# %imSCUqp]1m.K\W@pq:NVrSIB?JC!5eWT9h^)Tip %,`**_e[68t7Ie<3o7Sjk.oEGVT$?]ei&g(fkXJ=>iJ.R[(V`(0Zc+)OYHC+ni<-d<@Eb\71i;NuHqZHP-/W/<$7V%R^2Wm&kUQElGYAHCLo-H'J\ZZ0jUkfXs"fqU=" %M.cMY`25$%9UX%aYb06Er4ASL!&:QLP;&d6qQTq"/gB6k8TXU5T1eKKI)aK-QAp%4m=@tr7I1r %_$:kcq*I,nFp/&U=TNdZ2[K_]'e %IIYhXGL^-,^0B&,qW"qR"cTX6;QrLBE:jN,KR0AsY^S=ZM[kPpFuT#Pf"VImHkG]K>!Nn<^Bf#HRs+B\g@cc`3k2D5h1^&eS7t3i %OkYrW6m4Gl5>Ug7_Q;l-^bCI[U1ZX[a.,Kgi#e7s4-$8/7SD9WYp#=>-V'nQ(U,M^_X1-:qQ(S'kN9Bp,46h@i`f!X=/*Z:BhcG9 %O+pq!_=Y\UIa8230pi\c)%7fUm*Q58ZNef(-GIcm?1MRI`k5Geb&65#AI`N7Fln3[0mDcB4tC5n`g+?HLRh$/3f#UUl_6*`I2nD3 %UA7$Q2TL'[#\25MerF%NYI6+_Sl2'T*Glm^eFYYRj.Y_8eE25-h:5(kl[p5@F.#-gmod8[LB&.="PpE.uac@o#eZ@>,eurD*4u*^iS.TG+JSEeL+DR %>W)>iHD@KmWFcPbO]jk2[lH2)\Ja`,>Y$=LP%H2%^fu8FJ6^%T,"g0o,+$D/LCn>Lca^&$UL'9SOI`2ZXIUnW2iBNQC6?nEr7\9P %*%kE]Mq7,:d?9EVV;QEQbq1QWiBD*$9m\IPga^ZWC=Cs:,L:),RDInpNT@&KlM2\cfj*Ygmcc;>Lqn$8[)g-]H8:?[7TkXP2diW5 %G`4"4Te0nbJoUJ5c@sVdg5pc:"8f?^-Kd5FV`9GYC8_keGW7`C_!k0B[4,!7UdNqt$#TL+,HM' %KXUeP&19shCDsdZn`]lFI=>CGcS!Y[#U")`n\iNEZW]L&gLp-RKPo'YU*pE").KTs<&Y))K(,QeN0-MFCA<._+]>`30"omffmF8JQ3(l]sDlD/.KXRF=O?c4o=gf.D)%.Qc7[kW#; %pdu]2/)-rsi5pElal)pA_4)nrr&P3SPAmGu.u9YHV<2qE1E2eFB=*tbCuR,^$cfte@q*cOQnep05bfb/%O5&WE/8Z;A %?K^5#E#P@=WNG7>.p;Wk`suj'eiM]kYflk;Cq`91cZpQ/mpfGV=J^8RX,` %<_\U<)68^s;5.Z#Nh'>8#T>;fKkQ_ua%1/D.FUQKC!M8-+NPng[uio;D`HtlQ@hCkIYX-0pinN?T_Q0/B#3`r`B:'gCPP,OLU3C( %VR\JIC`.@3>UV %>N_?&`"#RaG2]qrgS+VlpF/O/]__hi0`QWkRZo4PrU/#5r %Vm<67/C+'VFCsN5d^YTBES0s'Jhn2IQMU]Br%WO-i5qh,!RU1?$HSq%O'a_E]=O6jIuXI]ff:GjgdiW>g%67Ef"8kGQPf0L(JPD/ %2LB.INb*MsJRQf6H)ZYTYM1!`:FerEN&e&]i2\4uipSo;67\/*i`LPgL'hB@L98ZV!C@R88FYVT-''B_43t+O*7%J[>EXj*K;9G8 %^q(J2$>&[8m/-VJqU6B;ah:4TUhd>?GrGk]!Soa1:?NQ090eN%2F<2A04#(DY;`4RduN0I1,&.9+^pTQ@%j4V`/?bDpk(\fduaCgobqdEoCN[$Ptm#CSXi+s%sHa]TI';B44^Z %YtjK=EV?r"+*31Je$"-^FPU`X3'O0!&Nrna;D'riTgs6eFSs"Fl=-!Z@9;hW %.B^nRMc'2N]MY(AjqLZq1(q,g]VQ-GHIH2[;M$pjC6W/hAe^H47[[S0UDD+^qB&`]S`R/P2B;rkGE'3mYPRe4BP26qSbUatXQ@K# %M,-8E>)cCK/%'RsK+o&^<.kj/R#:e<>*(,>AS9oLa8**OHR9>cZS@a %ATn)Oh;[!_>WF^qF+\?Jg.gq>F-bKf`\Q<$Ai4_23GP,@@>3ldSC.idp6/[B6i[he"sTgmXubgrc#]8BEbq1LoQqgus*\ %QnrQs-Pc6ck-#fNGBck@OWe?Nfh+/b_5h3#-V0KoLjXb1LBqj:7.mVBUV^m],`qYS:`U+9m+pg*_ncqg>'6i&3GLh>#3q+HVgc$S %1(e7$6(M"D_?`h,/2HNslR'Jj&YnC)b>om#dtkre*T6arSi4cJRgCFD6:jnZlJnROd\G7L,ak?o,U8_gmI(!:i[8HcF6%8PJ7jdc %XMVNe*(ZRijC2H(]:Z"=a#rpHC/BXb:SL2_/E6#-6PWe3eN:JA4eI,HWuA!C7)^YuksqdbBN,E&kS4(r3`8n>fo)LS/EllG]`K77moT0;N/SbC=E %6iM)7p4GXrVRg7#Oc.I*.7-_Qlr>ge.'FX(BJotPL1H:,S!gU^DJYl7R<+a\r6.2$+hF$TrT3#(7I'5pLXh`e^bjR^#tOH>5EPcH %K3C#6aj9m,9&;r(0SW?03.GVnSlS+=qmANW)Hmr1IgC6e)2S<2uSs!Vn5\Y2#8YMn`&$kFX8r7TL!5+8A!4?LmThac(e+pqUYqB#-E\0`C'(bd$USpJ5I%>A+V6mfp>.n/ZD,HjK545`VUR!649,%5% %/tnl&V3t5`'1t;jfK?_e.=M!f`T&,hP?Xb'$[k2nEnMEB?@Hq!DN6Mkj3)LSq2C*Ue46I**-5XsB().8Cb#/=]V#5P-R:IIDo:"F %7X?:[\[J't`H%id\R"ZA?T7_gVs4cd1$]9o/#ei>$5BK4P1*Y8No$Kl=.4MZe$p8)Z9'$cj7_!/76)kAA[Pj1'XDf%\lra!Gpe7? %43jI5-a__9Q0X!hp_ns,JYnKS>)K*XVK4Ps*h/tDK20?MJN8!@0HUhXE#u,Q()/tY^?$bs*cGr5YR"X9PaHFn %+hp6N[d/XEQQ %lnG*Ym^PgH@`6@"0>@CD0E&%cW%jqIT^O*ulQ!`GXY2K?' %jin_!Gi6.$T4I$HWQ?*2Q4-OD(Hj>?@Y>?df(#5;rmn6)#p1f?Cr:r9rW9g@M[2]8`^$_jJKB;fb:f'K`f$).=%4:Y&+EUR %JUnHldR7`PlW<3Mb`XRVaCu)ksf^>8oU)+8dHMhhpD-a`dkl70IAdS %fa\>/!:>,[!E.?J+E-KZnR-"qHGGPk*4eT0(F]hWX_8PZV^c'`m8CM\JS($P0YiAXq(n+$]R]K)1ME#W6jd(&%")N^$0K990ZNL=(,N]d&7O):lTJ#/HhrFUor_,#a(m0$s!e=E@BpY<#+NtTFqVHha[/HCf]ZUi=Kq+[_'h*rM=JTjY'rL`> %!TG%!Q2jpF.H!6VOS=H1"/[T!-bJOV.(*HHHWVid76eqY\<-h_QkK]AQ@"H)Qn5LgQ2nF_N[WN-&a+TimtK$#Ha2BRPM-,i_!2Lu %O&dS\"2fg5;=s.k"mllnN58^^!@ngS"TUiY9dB$?KE=4D$q76`#i;>uO:b$l*RMtVp'!dH!GnUuHsNqr7*Zo+_@VMe(4ZgXgBfRN %Jm%G?4,S,eV_?@pJ8QhTqp-'\Z%2IVe&VNQ;R_/_\`Vuk-EMU+ZmTm7Gl9fqh_=U0,7][.YCisU$p(#).kX!iT(#ti`9mX1,sCIiMQ(3TE8KB&YibkJMLXfOBH8+kp+^iZT7V?@ %^bc0res^eqR'>uYiu?!?GW4P#`gF39HUQh7oS%>gTLV(3B#jrP>4#M-%?d>N>*=F;%MF:,R;;!3'h_Mnnnd\]RB\rTk1D_bWXb"i %q6dq9`NJmQQ!`jq.(c'G?H'$^.eQ21h1N'D?QpMr5RcKW57'T@4ja+8.!u'@1oP3j662/YFAN-o(?_@DMiqEfdtf1*m>q=94.M4T %8AM50>Qu'D5Vi*)ZGV@Yi_^m#nHp$;@^J6g&7\u.1CPV.)gKW>#i^e1!r8TGCs0ml;n %-@>g("1TXmHl)k=d0&Y6Plpq)*1hgKZlf3rG!kFShA$,+4TJV1Ud.G`j,\F"#mq#iQMAi2WBWj[+9Q&8`N]I@_iNZ7++alG0-H976dMp,;!PaN(bP0H,duA=WE$\[&pVIL[L5O>&&c$SW45neAnK@qabAb$L=bU\YC?q)$TmoQVcKe`7dZIAj5F %EfVskb*>0t^!FTr#_!gp:%<@*9(@%'57blV,J+nGIap7sQoOFb,fg%o%^midaooBsKlpBp+!`sH==O_]q[h`*Pj3n>iOZi`A0329 %,L$kDYFfUiT4((dUP2:XK;fMi(nKW#(4\(a6HTDgZNI#L9E79f2%KZe8L)@\@&Q!:5'$a,P:cp>enb=3Ej@5E,=m(9LOgk9a#QIX %Ve-&gO!pX_8iY:5f211^l[aUS%5Y6X>`Y+G\Np6qllZCa+7(THM$sD\aa!Z`3C8H,3DY0M*iY?bHTZTs$`Z/fT'X&*1]TUl(fTZb %5?FXA_h=Io(IIH\+Vd)[j3T8::@2K\/jG1*&!"=GlIpt;A>$424B$ShjXEt*I-FIHW-JI(:^A[0"o+&.P@]?Z9Mg'<[EY&YcH>Wn;o`7;Kt@PqV@ee9iFSZSI7jbrDMT(,Nk2D;G(OmJ^ON1k)Z3N5h_;H=`44FVe"(h0S18kdU!K@O:f2<7nL^/#+bU+G9e0Z<"X*\+G %r-;Zf\i'T*'*8K4C'&tn,mr:lJ/"AF5gUG2L26mRc]%rrl_saejA8'o^=[odirA4Hq[Xa$!ZH%.raV_%o[WpC!89&br_;fN[KZNBaP[KE?^O-Ict6Z,PZQ_C!SU)$MkZT2J=o#McF9ru_llX__T8!8;8>(*fFjbE(4OMiPidXodh^ %)S6M$%D"_<]+:IXclASC9EJno5,FQKXAB3CCVs3!p6<_h",B0#4mV1E_r4j!=b>o^rY1*ZRY.P&^G$4!jt$I.?2dX:5'0=QpWt)6 %bTkl:KQlXQILar&>3MDrW.@5PLYGu,,Aeo,a:gTi]"_AE`=f=?7=r)cgW*t8QKUNWj7\ODtjV)Aa:c=G#='QreKLniRoLuSXbp"o:.(cMNQ1V-"^ZH&A(FgoITmiWs9/&9uJo"'l:7r8pN*n\\\hJUj>P9]*hRsTkd3lK&7fI#mnaiY#[%A>OiOWA7=?QBY?iFe(6YZHnkIjX4kOcs3 %""Fc@c)2&6'+*ce5/I=,6dI7ORhcF."Z'j93;5*3/'[MkqOI,D/8W\5*W5I1\dJKH"J\/trW7$?.Ku!cQZsJ076m[`p#eX!"IM^X %##Ll]N47Hr_%PHMO+rOBG=[*Z?1CF4(HC67WAdn;d7u4k"Y5<14hA@R35?MG'Pg1kb`9?`g9c!LPk_eAgaUNP)LOUHS]\G/80dP8 %TWQICC#'lcf?\U*WRAA-1!Qf^0f8L*UYT.Q[JA,GdA4`7I_#6?rs=/eFoj]`\G6ua&et;Di?Znqn&_Li-M6ssVfTYD1#i!8c2Rol %dm?;jEtR'uS(qa#6ELqp^GhINJXqmj,<@r2>&jcI0[(2PJijeoT>>_*H"-ug0b!8$huXhD5n!g&7$A%j$9:'r=J/W/C_(?f-^b6$ %@F%aQ3i5DD[:`,E!]sHA5YW@YR"pqg5TK1UjW[O6N]TKF4?E=Ih6?qbOpUYU!A-Um!M1mbc_))&,JF2k-((/3f1dnVjM;[77sEZd4_fO#nL?)W\GNt<_^8ZirP`/B[#I0=]>Md$756$,W_'*(1Q?0(rT %.TSO8cE8?8nH$'i\Y,H'-ZMkNaanF<3Z$hqHN=M3"O-$LBmsGk#rVq0(a'i\UEot?(M/%>)F(pb[AZW,F93TulbWsj,U!.7MgiR0 %&VoFIl6)cE`7)M0/EfcZ5f_#glG2Cd#jf)Tl@<2l4$_DjkS\26]n\k6\i2og%$)#D$*rdC!Zcq;G7]0=GVR8@NBjkPNK3.Oi\6QD:Ol;mGij7/,S1L:.7OJ&>a'ilFVJ^2k\0[R8$ic[ %JI6aI!71.8G!jkABqHT5/$(d6=eoHIX]p?pjUHb:%LT*+lnQ%" %Y7\>m3%Hcb>X.E[N%VU.]AP1n^T:7JlCbWX1[nFOTXTP;bg?R/!A3Fc8kSm3$-;M_(j'>c/eFFj8C_b,ide`DL,bPY:#\oVDP=5M&S`LkfCpR&PguCuP$Lo+XL;r#uG.\#5S&#a=+3-JpGStT7RGA*dkI8M!7%PUUkFDo4-"+.O'ci[f&@.fX %6<5B]AO1(h%of\,+9E9V07%4Ts3k-s<05H8pF'43B.0Q<#`Ua`(Z%iS*WXgZkJ6!B:\89@ie?LkT2;#]5>j$ajl]_:7[**?K]&Q?*'a8@ed:XP]_D34tC`'!lhci*Y"(0%uFSI9F3^0nZSVm>If6cMg,_^Bh1RT9YXQ`".U>lE/#A:Fs %$Zu/]*M6=t_![u1Doh)Ah$\TG,@q0%9.F!1e8C"$/nj#9]babTPaF3>C4# %Yp'/XpT>/#Vou/=-S+RG^N^(V#6Lrhrl3@LdrLgs%"3W?PLlsJWNG]I/#+9ZQLge^;o]W,&aO08"';/*,!35`TLC!N5 %-uoTTp4?Ni3Q>`Z0;hK3=f^pM6A$?@ka[AmP-Gm\kBQCpe_&TlLl)fLp5)iT`9,oH!QI=%V?)+hZie*7>lpLK*!MGK7k]qhSTFmZ %JPTA>[QNTYjFr4o&q^!ehMmQ;DZoG(?H2:8G\8]P#S@=UkP%"C:go]Q: %'DiAb?Iu`&[^cL$X/HCQ9E]p[DVaMJGCWb/0bDX^UJ>V0VLI%.S#67ZS]_t-(S!%eau#=46,d/u/qnCeqd)-H %Jb#-2d6nd38L0FLA>>Jmm6g;L8?/R%OV;lO^h&e^4/Pq$qWWYUoBO4Ag0qX":uBF]Zj[ar?$g1M#TB3WbEu^lG%7b/[e?eJU*h[P %!FRDS7;1S7.5t_9`l&l#nX\dD_2:S_3o)H6:Yt)]S:B`-@F..oNkmSHQJM'LL,21)ob(F]k]kG7FT#%YBW0[KCiP]FchdEj?O4EO>;@ %P]ULuS,454`+&?#8/qihn9YTAlBTAhG_FIO@iA?0d]#Ykae454VEL9W'\=W&JYtEcOt+Vb]Y,P$1fC,:1C2TT6%q>W?Vrn(.Z*+! %$JE][p6htT;r@3ACaW-m-pGlb^#*3+QEOCOdm3:MMsXEIS:AQ<]F %OE.N\1Bq]'=M*skNb\3SJX3_68-O.nfR`@7r);2OE(tjlkR"Oeg-J$p%PJ??,N+$X@hH`u7^fWYM$sefQb5h#XkaJX*@=F3"qD@W %S7dFEn[C6Q0P+b^J:+&9&k05/@"P^6!s<@1;)5^X3E<>C@0D,JHL2iENaP/*%Z>T>>%sah4=%s_#I'pX"Y/YDd%sf`DU_`)ZJ!a5 %RPO7ISRM":ub%"0-.(b/jc+uPgSH_kH;m`HOQ#o.#FA."9G %9Y6a]s:#))8%5r_243*d+K^6TJ;?t!4GaY %!5\mD%OoN`ai@,+::Kaqk[pi.X:?:AA:o%JU3K!p;jF.'*b'9a2Cd8(;a5FZkhGhUge\4nfs5:E;9)]R7<&m09?9].-4a37o-BK: %[=d\-+B/4%)[1TF*2r74TeBP+]BLk#Y`g*fMBn'U2NmAi@c61t#jmKU)#&[2@phV]GL0t'\'O=i%"me"i>Pj\8@#2]1>%IV7jK#, %0?piiHC5_RO\o=^$j[jMr3g)d*@.r]iV=K#m[%GiGC;bPG*W-$mPr$.m_Ip?&L)FsL2b`lV3,fH!aqXE*#[>;"(.TBP:0BC`f%iC %+!qZXo9#lr8@>82TgqW2A[Hkd']hK50WUR30k.\A;O.s6h1P(k]()N)-ihUA`L%L-THcFpOs=/e@n?`2$ghQ!A?-hBV&M(]L*.pH %9EW$1SfW2`75$V^@(__e&p/3E%Xc?6Q2*K;&pVro3k!/)0*,\gaBX>OLC:cf9A`e>E)9)7bjO]Ff*&P&cVZ4q=*IL#1!sK)fahr_Sf8P6T!+>.L %5ubFZeC+S@,Da:'3a_qbKe&#d@%cmJjf7Mec9Toj34q?&jUOW?o_Zc(n-ITMJ0D7E^\+ %Ti7un\[Z@g7Ih/45[t(GW#/[f7?>Ru7q0ToJb(o_ag7lO73fB;X4^@&7Z]Q>?eSFFWEO=2@-gk<(=[_0;8_H<8=m,N=`k/.-a!p)8$s,<0F<-(Gb.-W8[g0rUGUA>#CXTeVttW@Wm4],1[Y5Q4%[Dl?IpoB)k:DL1]sef%8d]d0\;M>3UoSU+MFSo %CK\tOm]r6M%.*nO2=VkCl$!Pn?m?aB\R/B$+jetM$.A#OBRN\`Z#dH=.2bR]@"B*R8V^UaSF&oS,]D?+#24WcWKM0c3Y8ERj5V6a %8ZEH@,A1TiMkjY'@a+O,(d[]o.kdRhH\=FA7\0"Dc"WHt(Pl5M.N1&/T^5om=Dn>Dk/hA%Nbi<;3[^(SNn(/p5AT]OECl.pjG9N. %P)"EqMc6g;X&`<,-<'N/[[&mpTo=003K2Lh(tQ%^%9;cciO1D7iZ-KrPTR:.OQdW)+q^3*ar6MtL>/WM;k7UXZ"h@YRF)HbjK`Ud %I2ROW9#[HjOg6o@ol-sZ<]uE`:=Fis_<)[I'#Bie`("lcF^bBr"OD&tPT@gnjjL3;#C$?kTO^fHa"\?3uN!3[(YJ7j#'Pc"YB: %!aW"^d"gBj"WN^gJnJMdHE\g0&6._@XHR@fH`p3HJg`,m)AO0S;f!Mu8g#3W8mcsE>pZ>*o`Kb29Hl)2j:RcOQ&RO%[d'ABZ %]hXKI*p9h+*bkJ!_!,"2N8b031gpU6FbQq2(@!n7W[p0^6+D8k]nj!sJJ!MpA1OY39F? %6ere#PuJc,-',ju.r3Or'm?$G]Y0nE0TBC.3\eoWVb)S1NTS(#>V]0T&A72]Yd/2a.!:IC/2!cUZD;'eE1r5`3jU'sjd@,KolnXV %N&Op%]@a+HL-5W(Gb0q>?k9B\RRC^?=Ed_=\J(eN7[n$$4ec6km!\Re-n(*ijAbf6K$t4(

+

No worries, let’s build your view by assembling some atomic classes. If you’re doing this more than once, you should help us identify a new pattern by requesting a new component.

+ +
  • +

    My design is super special and…

    +

    I’m going to write a lot of custom CSS from scratch in its own .less file that I’ve included in the bundle. You probably shouldn’t be doing this. With atomic classes, you can build most of what you’re attempting to do without writing a single new line of CSS. The Stacks team would prefer you use these pre-existing classes to build new UI. Every line of CSS you write, the more CSS we have to maintain, the more our users have to download, and the more bytes we have to host.

    +
  • + + + +
    + {% header "h2", "Getting Help" %} +

    Need help? Open an issue. We’ll be happy to help. {% icon "Balloon", "native va-text-bottom" %}

    +
    diff --git a/packages/stacks-docs/product/foundation/accessibility.html b/packages/stacks-docs/product/foundation/accessibility.html new file mode 100644 index 0000000000..e902abf086 --- /dev/null +++ b/packages/stacks-docs/product/foundation/accessibility.html @@ -0,0 +1,341 @@ +--- +layout: page +title: Accessibility +description: A non-comprehensive guide to accessibility best practices when using Stacks. +tags: foundation +--- + +{% assign exampleWrapperClasses = "d-grid fw-wrap gx24 gy64 jc-space-evenly bg-black-100 bar-md mb16 mt32 py32 px8" %} + +
    + {% header "h2", "Target" %} + +

    All Stack Overflow product UIs must conform to the AA conformance level of the Web Content Accessibility Guidelines (WCAG) 2.2 with a few exceptions around color contrast documented below.

    + + {% header "h3", "High contrast modes" %} + +

    When high contrast mode is enabled, Stack Overflow product UIs must meet or exceed the Success Criterion 1.4.6 Contrast (Enhanced) of the Web Content Accessibility Guidelines (WCAG) 2.2 and should conform to the remaining AAA conformance level rules when reasonably achievable. This only applies to the subset of Stack Overflow products that provide high contrast modes. Note: not all Stack Overflow products are expected to support high contrast modes.

    +
    + +
    + {% header "h2", "Visual accessibility" %} + +

    Stack Overflow product UIs MUST conform to a custom conformance level of the Accessible Perceptual Contrast Algorithm (APCA). This custom conformance level replaces the AA conformance level of the Web Content Accessibility Guidelines (WCAG) 2.2 for color contrast.

    + + {% header "h3", "Color & contrast" %} + +

    Stacks aims to equip you with an accessible color palette and has been tested against WCAG AA, WCAG AAA and the newer APCA color standards. Most of our color combinations meet WCAG AA and APCA levels defined below. We also offer high contrast mode which offers a greater level of contrast.

    + + {% header "h4", "Contrast ratios" %} + +

    Contrast is the difference in luminance or color between any two elements. All visual readers require ample luminance contrast for fluent readability. Stack Overflow products must conform to a custom conformance level of the Accessible Perceptual Contrast Algorithm (APCA). Based on our custom conformance level, all text must have a Lightness contrast (Lc) value of 60, body copy must have a Lc value of 75, icons must have a Lc value of 45, and placeholder and disabled text must have a Lc of 30. These numbers will be negative when calculating for dark mode.

    + + {% capture correctElement %} + +
    Robotics
    + {% endcapture %} + + {% capture incorrectElement %} + +
    Robotics
    + {% endcapture %} + + {% render 'accessibility/comparison.html', + classes: "my16", + correctExample: correctElement, + correctDescription: "Use luminance contrast that meets our standards as defined above.", + incorrectExample: incorrectElement, + incorrectDescription: "Use low luminance contrast that fail our standards." + %} + + {% header "h4", "Visual cues" %} + +

    Visual readers with color vision deficiency (CVD) have problems differentiating some hues and therefore these users need help discerning differences between items. This means that color (hue) should never be the sole means of communicating information and should always be paired with a non-color dependent indicator to accommodate all visual users.

    + + {% capture correctElement %} +
    + + {% icon "AlertCircle", "s-input-icon" %} +
    + {% endcapture %} + + {% capture incorrectElement %} +
    + +
    + {% endcapture %} + + {% render 'accessibility/comparison.html', + classes: "my16", + correctExample: correctElement, + correctDescription: "Use an icon alongside color to convey meaning.", + incorrectExample: incorrectElement, + incorrectDescription: "Use color alone to convey meaning." + %} + +
    + +
    + {% header "h2", "Focus states" %} + +

    Some people navigate through a website by using a keyboard or other device (instead of a mouse). A focus state should clearly let users know which item they’re on and is ready to interact with. Stack’s has taken a hybrid approach in using both the browser’s default styles (smaller interactive components like text links) and a custom focus ring.

    + + {% header "h3", "Foundation for custom approach" %} + +

    + The custom approach adds two different outline rings on the inside of the component. The outer ring color uses secondary-theme-400 + {% + render 'color-swatch.html', + color: "theme-secondary-400", + size: "16", + classes: "mbn2" + %} + (matching the primary button color) and the inner ring color uses white + {% + render 'color-swatch.html', + color: "white", + size: "16", + classes: "ba bc-black-200 bs-sm mbn2" + %} (matching the background). +

    + +
    + {% for group in accessibility.foundation-for-custom-approach.base %} +
    + + {% render 'annotation.html', + text: group.description, + classes: "mx-auto", + connectorHeight: 16 + %} +
    + {% endfor %} +
    + +

    + The outer ring color will always display as the theme color even when applied to a muted or danger styled button. This ensures the focus ring maintains a 3:1 color contrast ratio for any adjacent colors (WCAG level AA) within any theme (assuming the secondary-theme color + {% + render 'color-swatch.html', + color: "theme-secondary-400", + size: "16", + classes: "mbn2" + %} + already passes the 3:1 contrast ratio). +

    + +
    + {% for group in accessibility.foundation-for-custom-approach.variants %} +
    + + {% render 'annotation.html', + text: group.description, + classes: "mx-auto", + connectorHeight: 16 + %} +
    + {% endfor %} +
    + + {% header "h3", "Meeting level AAA" %} + +

    Both focus rings are always 2px thick. This allows the focus state to meet WCAG 2.4.13 Focus Appearance (AAA) standards for High Contrast mode. Whenever possible, the rings should be added to the inside of the component so we can better ensure that the rings don't get accidentally cut off by the surrounding layout (which helps us to meet WCAG 2.4.11 Focus Not Obscured AA). However, this does result in a padding reduction within the element, surrounding the text. When choosing to set the focus rings on the inside (inset), the component must have at least 4px of padding at the smallest size. This has been applied to buttons, button groups, navigation, pagination and topbar.

    + +

    When the padding amount is not sufficient enough to support a double ring on the inside of the component, the rings are placed on the outside. The components included are tags, toggles, form elements (input fields, selects, radio/checkboxes…), block links and the editor.

    + + +
    + {% for group in accessibility.meeting-level-aaa %} +
    + {% if group.type == "tag" %} + javascript + {% else %} + + {% endif %} + + {% render 'annotation.html', + text: group.description, + classes: "mx-auto", + connectorHeight: 16 + %} +
    + {% endfor %} +
    + + {% header "h3", "Consistent style patterns" %} + {% header "h4", "Filled" %} + +

    Any component that already has an existing background color that fills the shape will maintain its original fill color.

    + +
    + {% for group in accessibility.consistent-style-patterns.filled %} +
    + {% if group.type == "navigation" %} +
    + +
    + {% else %} + {% assign name = group.description | replace: " ", "-" | downcase %} +
    +
    +
    + + + + +
    +
    +
    + {% endif %} + + {% render 'annotation.html', + text: group.description, + classes: "mx-auto", + connectorHeight: 16 + %} +
    + {% endfor %} +
    + + {% header "h4", "Bordered" %} + +

    For components that have an existing border around the component when not in focus, a background fill color is added in addition to the focus rings. This ensures there’s a strong enough visual difference between the non-focus and focus state. These patterns are maintained across all components for consistency.

    + +
    + {% for group in accessibility.consistent-style-patterns.bordered %} +
    +
    + + page + 2 + +
    + + {% render 'annotation.html', + text: group.description, + classes: "mx-auto", + connectorHeight: 16 + %} +
    + {% endfor %} +
    + + {% header "h4", "Floating" %} + +

    Components without an existing fill or border will only display the double rings on focus. Since the inner ring matches the background color in most cases, this will visually appear like a single ring around the perimeter of the component.

    + +
    + {% for group in accessibility.consistent-style-patterns.floating %} +
    + {% if group.type == "block-link" %} + + {% endif %} + + {% if group.type == "editor-icon-buttons" %} +
    + + {% for button in group.items %} + + {% endfor %} +
    + {% endif %} + + {% render 'annotation.html', + text: group.description, + classes: "mx-auto", + connectorHeight: 16 + %} +
    + {% endfor %} +
    + + {% header "h4", "Exceptions" %} + +

    The exceptions to this pattern are the Clear button variations. All buttons display a background fill layer when in focus. Clear, Outline and Filled styles will all look the same when in focus. The fill color was chosen to match the existing Filled style.

    + +
    + {% for group in accessibility.consistent-style-patterns.exceptions %} +
    + {% if group.type == "button" %} + + {% endif %} + + {% render 'annotation.html', + text: group.description, + classes: "mx-auto", + connectorHeight: 16 + %} +
    + {% endfor %} +
    + + {% header "h3", "Browser default" %} + +

    Some focusable elements and Stacks components currently do not include custom focus styling. These elements will instead render the browser-default focus indicators.

    +
    + +
    + {% header "h2", "Viewport size" %} + +

    + All Stack Overflow products must conform to the WCAG 2.2 SC 1.4.10: Reflow. This requires that our product UIs support viewports as small as 320px x 256px without requiring the user scrolling in multiple dimensions (unless an element requires it for usage or meaning). Very few users will ever use a viewport this small, but it's important to support it so users can zoom in up to 400% and still have a usable experience. At 400% zoom, a 320x256 viewport translates to 1280x1024, which is a common resolution for many users. Supporting this small viewport size ensures that users with low vision can still use our products effectively. +

    + + {% header "h3", "Exceptions" %} +

    + There are some exceptions to this rule. Some elements such as tables and videos may require horizontal scrolling on small viewports. In these cases, it's acceptable to require scrolling in two dimensions. See the WCAG 2.2 documentation on Reflow for detailed guidance. +

    +
    + +
    + {% header "h2", "Landmarks" %} + +

    + ARIA landmarks should be used across Stack Overflow product pages to provide clear navigation structures for users relying on assistive technologies. + Landmarks are inserted into the page explictly using the role attribute on an element (e.g. role="search", etc...) or by leveraging semantic HTML (e.g. an header element is given automatically the banner landmark).
    + Using semantic HTML elements should be preferred over using the role attribute whenever possible. +

    +

    For a comprehensive guide on using ARIA landmark roles refer to:

    + +
    diff --git a/packages/stacks-docs/product/foundation/color-fundamentals.html b/packages/stacks-docs/product/foundation/color-fundamentals.html new file mode 100644 index 0000000000..7328f7bbc5 --- /dev/null +++ b/packages/stacks-docs/product/foundation/color-fundamentals.html @@ -0,0 +1,386 @@ +--- +layout: page +title: Color fundamentals +figma: https://svelte.stackoverflow.design/figma/colors +description: Color is used distinguish our brand, convey meaning, and invoke emotions. A color palette ensures a familiar and consistent experience across our products. +tags: foundation +hide-menu: true +--- + +
    +
    + {% header "h2", "Palette" %} + {% header "h3", "Neutral colors" %} +

    + The neutral palette consists of black, white, and grays. The neutral palette is dominant in our UI, using subtle shifts in value to create hierarchy and organize content. +

    + {% render 'color-row.html', + color: "black", + colorSets: colors[0].sets, + classes: "bar-md", + stopClasses: "h128 pt24 pb32" + %} +
    + +
    + {% header "h3", "Saturated colors" %} +

    + Stacks uses 5 colors with 6 stops per color. Colors are used sparingly and intentionally to convey meaning, draw attention to UI, or create associations. +

    +
    + {% assign groups = "light,dark" | split: "," %} + {% for mode in groups %} + {% assign bgColor = "bg-black-100" %} + {% if mode == "dark" %} + {% assign bgColor = "bg-white" %} + {% endif %} +
    +
    + {% for set in colors[0].sets %} + {% if set.type == "color" %} + {% render 'color-row.html', + color: set.name, + colorSets: colors[0].sets, + stopClasses: "h-auto", + stopStyle: "aspect-ratio: 1/1", + classes: "fd-row-reverse" + %} + {% endif %} + {% endfor %} +
    +
    + {% endfor %} +
    +
    + +
    + + {% header "h3", "Award colors" %} +

    + Stacks has 3 award colors with 4 stops per color. Colors are used to represent gold, silver, and bronze within gamification aspects of our products. +

    +
    + {% assign groups = "light,dark" | split: "," %} + {% for mode in groups %} + {% assign bgColor = "bg-black-100" %} + {% if mode == "dark" %} + {% assign bgColor = "bg-white" %} + {% endif %} +
    +
    + {% for set in colors[0].sets %} + {% if set.type == "award" %} + {% render 'color-row.html', + color: set.name, + colorSets: colors[0].sets, + stopClasses: "h-auto", + stopStyle: "aspect-ratio: 1/1", + classes: "fd-row-reverse" + %} + {% endif %} + {% endfor %} +
    +
    + {% endfor %} +
    +
    + +
    + {% header "h2", "Usage" %} + {% header "h3", "Color roles" %} +

    + Color roles describe the intention behind the color. +

    + {% for group in colors %} + {% if group.name == "v2" %} +
    + + + + + + + + + + {% for role in group.roles %} + + + + + + {% endfor %} + +
    RoleDescription
    + {% render 'color-swatch.html', + classes: lightSwatchClasses, + color: role.bg + %} + + {{ role.name | capitalize }} + + {{ role.description }} +
    +
    + {% endif %} + {% endfor %} +
    + +
    + {% header "h3", "Backgrounds" %} +
    + {% render 'annotation.html', + text: "Default background color", + style: "margin-left: calc((1.5/11) * 100%)", + classes: "sm:d-none", + position: "top", + %} + {% render 'color-row.html', + color: "black", + colorSets: colors[0].sets, + labeledStops: "050,100,150,200" | split: "," + %} + {% render 'annotation.html', + text: "Background layers", + style: "width: calc((4/11) * 100%)", + classes: "sm:d-none", + range: true + %} +
    +

    + Stops 50 through 200 are used for background layers +

    +
    + +
    + {% header "h3", "Borders" %} +
    + {% render 'color-row.html', + color: "black", + colorSets: colors[0].sets, + labeledStops: "200,225,300" | split: "," + %} +
    + {% render 'annotation.html', + text: "Decorative borders", + style: "margin-left: calc((3/11) * 100%); width: calc((2/11) * 100%)", + classes: "sm:d-none", + range: true + %} + {% render 'annotation.html', + text: "Input borders", + classes: "sm:d-none", + style: "margin-left: calc((1/11) * 100%); min-width: calc((1/11) * 100%)" + %} +
    +
    +

    + Stops 200 and 225 are used for decorative borders and dividers throughout our UI. The 250 stop is used for input borders such as text field or secondary button. +

    +
    + +
    + {% header "h3", "Text" %} +
    + {% render 'color-row.html', + color: "black", + colorSets: colors[0].sets, + labeledStops: "400,500,600" | split: "," + %} +
    + {% render 'annotation.html', + text: "Text", + style: "margin-left: calc((8/11) * 100%); width: calc((2/11) * 100%)", + classes: "sm:d-none", + range: true + %} + {% render 'annotation.html', + text: "Heading", + style: "min-width: calc((1/11) * 100%)", + classes: "sm:d-none fl-shrink1" + %} +
    +
    +

    + Stops 500 and 600 can be used for text. Neutrals, blue, red, and green can also be used at 400 and will meet APCA contrast minimums within these shades. Orange and yellow should not be used at 400 because it does not meet our contrast standards. +

    +
    + +
    + {% header "h3", "Icons and illustrations" %} +
    + {% render 'color-row.html', color: "black", colorSets: colors[0].sets, labeledStops: "350,400,500" | split: "," %} +
    + {% render 'annotation.html', + text: "Illustrations", + style: "margin-left: calc((7/11) * 100%); min-width: calc((1/11) * 100%)", + classes: "sm:d-none", + %} + {% render 'annotation.html', + text: "Icons", + style: "width: calc((2/11) * 100%)", + classes: "sm:d-none", + range: true + %} +
    +
    +

    + Stops 400 and 500 are for icons, while 350 should be used for more detailed illustrations. +

    +
    + +
    + {% header "h2", "Layering" %} +

    + Colors in the neutral palette are layered on top of each other to foster a sense of hierarchy and create associations. +

    +
    + {% assign groups = "light,dark" | split: "," %} + {% for mode in groups %} + {% assign bgColor = "bg-black-100" %} + {% assign borderRadius = "blr-md" %} + {% if mode == "dark" %} + {% assign bgColor = "bg-white" %} + {% assign borderRadius = "brr-md" %} + {% endif %} + {% assign layers = colors[0].layers %} +
    +
    {{layers[0].name}}
    +
    +
    {{layers[1].name}}
    +
    +
    {{layers[2].name}}
    +
    +
    +
    + {% endfor %} +
    +
    + +
    +
    + + + + + + + + + + {% assign borderClasses = " ba bc-black-200" %} + {% assign lightSwatchClasses = "theme-light__forced" | append: borderClasses %} + {% for layer in colors[0].layers %} + + + + + + {% endfor %} + +
    Background layerLight modeDark mode
    {{ layer.name | capitalize }} + {% if layer.teamsLight != null or layer.soLight != null %} +
    +
    + {% render 'color-swatch.html', + classes: lightSwatchClasses, + color: layer.teamsLight + %} + {{layer.teamsLight}} (Teams) +
    +
    + {% render 'color-swatch.html', + classes: lightSwatchClasses, + color: layer.soLight + %} + {{layer.teamsLight}} (SO) +
    +
    + {% else %} +
    + {% render 'color-swatch.html', + classes: lightSwatchClasses, + color: layer.color + %} + {{layer.color}} +
    + {% endif %} +
    +
    + {% assign darkSwatchClasses = "theme-dark__forced" | append: borderClasses %} + {% render 'color-swatch.html', + classes: darkSwatchClasses, + color: layer.color + %} + {{layer.color}} +
    +
    +
    +
    + +
    + {% header "h2", "Emphasis levels" %} +

    + Emphasis determines the amount of contrast a color has against the default surface. Emphasis has a range from subtle to bold. Bold emphasis has more contrast against the background, which adds more attention than using UI with the subtle or default emphasis level. +

    +
    +
    + {% for group in colors[0].emphasis %} +
    +
    + {% for color in group.colors %} +
    Robotics
    + {% endfor %} +
    + {% render 'annotation.html', + text: group.name, + range: true + %} +
    + {% endfor %} +
    +
    + {% for group in colors[0].emphasis %} +
    +
    Text
    + {% render 'annotation.html', + text: group.name, + classes: "mx-auto", + style: "margin-left: 50%;" + %} +
    + {% endfor %} +
    +
    +
    + +
    + {% header "h2", "Interaction states" %} +

    + In Stacks, a component will get darker (or lighter in dark mode) as they interact with it. These progresses happen by adding 100 to the color before the interaction happens. Example: Blue-400 on hover becomes Blue-500. For a disabled button state, subtract 100 from the default color. +

    +
    + {% for group in colors[0].interaction %} +
    + + {% render 'annotation.html', + text: group.name, + classes: "mx-auto", + style: "margin-left: 50%;" + %} +
    + {% endfor %} +
    +
    + +
    + {% header "h2", "Light, dark, and high contrast modes" %} +

    Stacks supports light, dark, and high contrast modes. By using Stacks, you will get each of these modes for free. By using a Stacks component, an atomic color class, or CSS variable directly, your theme will switch appropriately based on the following methods:

    +
      +
    1. You can apply .theme-system to the body element. This will change colors based on the prefers-color-scheme media query, which is ultimately powered by the user’s system or browser settings. This can be preferable for folks who have their system turn to dark mode based on ambient light or time of day.
    2. +
    3. Alternatively, you can set a dark mode that is not system dependent by attaching .theme-dark to the body element.
    4. +
    5. Adding .theme-highcontrast to the body element will boost colors to WCAG Level AAA contrast ratios in as many places as possible. This mode stacks on top of both light and dark modes. The only exception is branded themed colors remain untouched by high contrast mode.
    6. +
    +

    There are also conditional classes that can be applied to override assumed dark mode colors, force light mode, or to force dark mode. Forcing modes can be good for previews in admin-only situations.

    +
    +
    diff --git a/packages/stacks-docs/product/foundation/colors.html b/packages/stacks-docs/product/foundation/colors.html new file mode 100644 index 0000000000..9c9290707d --- /dev/null +++ b/packages/stacks-docs/product/foundation/colors.html @@ -0,0 +1,165 @@ +--- +layout: page +title: Colors +figma: https://www.figma.com/design/do4Ug0Yws8xCfRjHe9cJfZ/Project-SHINE---Product-UI?node-id=651-4397&t=UGqQCKW9BZQqF65O-1 +description: To avoid specifying color values by hand, we’ve included a robust set of color variables. For maintainability, please use these instead of hardcoding color values. +tags: foundation +--- + +
    + {% header "h2", "Stops" %} + +
    + {% for set in colors[0].sets %} + {% assign setClasses = "" %} + {% if set.name != "transparent" and set.name != "inherit" %} +
    +

    {{ set.name | capitalize }}

    +
    + {% for stop in set.stops %} + {% assign name = set.name | replace: " ", "-" %} + + {% if stop != "" %} + {% assign name = set.name | append: "-" | append: stop | replace: " ", "-" %} + {% endif %} + + {% assign stopFc = "fc-black" %} + {% if set.invert contains stop %} + {% assign stopFc = "fc-white" %} + {% endif %} +
    + {{ name }} +
    + {% endfor %} +
    +
    + {% endif %} + {% endfor %} +
    +
    + +
    + {% header "h2", "Classes" %} + +

    + Each color stop is available as an atomic text, background, and border class. Using these atomic classes means your view will respond to dark mode appropriately. These colors are available conditionally. +

    + + {% for set in colors[0].sets %} + {% assign setHeading = set.name | capitalize %} + {% header "h3", setHeading %} + {% assign conditionalUrl = "/product/develop/conditional-classes" %} + {% assign name = set.name | replace: " ", "-" %} + +
    + + + + + + + + + + {% for stop in set.stops %} + {% assign colorName = set.name | replace: " ", "-" %} + {% if stop != "" %} + {% assign name = colorName | append: "-" | append: stop %} + {% endif %} + + {% assign stopFcBg = "bg-" | append: colorName | append: "-500" %} + {% if set.invertAlt %} + {% assign stopFcBg = "bg-" | append: set.invertAlt %} + {% endif %} + {% assign stopBcFc = "fc-white" %} + {% assign stopBgFc = "fc-black" %} + + {% if set.invert contains stop %} + {% assign stopBcFc = "fc-black" %} + {% assign stopFcBg = "bg-white" %} + {% assign stopBgFc = "fc-white" %} + {% endif %} + + + + + + + {% endfor %} + +
    TextBackgroundBorder
    +
    .fc-{{name}}
    +
    +
    .bg-{{name}}
    +
    +
    +
    .bc-{{name}}
    +
    +
    +
    + {% endfor %} +
    + +
    + {% header "h2", "Aliases" %} + {% header "h3", "Body text" %} +
    +{% highlight html %} +

    +

    +

    +

    +{% endhighlight %} +
    + {% assign fcAliases = "light,medium,dark" | split: "," %} +
    + + + + + + + + + {% for alias in fcAliases %} + + + + + {% endfor %} + +
    Text classesExample
    .fc-{{alias}} +

    This is example {{alias}} text.

    +
    +
    + + {% assign stateAliases = "danger,error,warning,success" | split: "," %} + + {% assign dHeading = "Danger and error" %} + {% for alias in stateAliases %} + {% assign aliasHeading = alias | capitalize %} + {% header "h3", aliasHeading %} +
    + + + + + + + + + + + + + + + +
    Text classesBackground classesBorder Classes
    .fc-{{alias}} +
    .bg-{{alias}}
    +
    +
    .bc-{{alias}}
    +
    +
    + {% endfor %} +
    diff --git a/packages/stacks-docs/product/foundation/icons.html b/packages/stacks-docs/product/foundation/icons.html new file mode 100644 index 0000000000..eda414a4b7 --- /dev/null +++ b/packages/stacks-docs/product/foundation/icons.html @@ -0,0 +1,108 @@ +--- +layout: page +title: Icons +svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-icon--docs +figma: https://www.figma.com/design/Z5yoO4WH58QDHvmxwMWhr0 +description: Stacks provides a complete icon set, managed separately in the Stacks-Icons repository. There you’ll find deeper documentation on the various uses as well as the icons’ source in our design tool Figma. +tags: foundation +--- + +
    + {% header "h2", "Usage" %} +

    Stacks icons are designed to be directly injected into the markup as an svg element. This allows us to color them on the fly using any of our atomic classes. We have different helpers in different environments.

    + + {% header "h3", "Svelte" %} +

    If you are working in a Svelte project, you can use the Icon component to render an icon. + This component will render the icon as an svg element with the appropriate classes and attributes (docs). +

    +{% highlight html %} + + + + + +{% endhighlight %} +
    +
    +
    +
    Default
    + {% icon "ServiceCCPA" %} +
    +
    +
    With native colors
    + {% icon "ServiceCCPA", "native" %} +
    +
    +
    With arbitrary classes
    + {% icon "ServiceCCPA", "fc-black-350 float-right" %} +
    +
    +
    + +{% header "h3", "Dotnet" %} +

    If you’re working in a dotnet project, we have a helper that can be called with @Svg. and the icon name, eg. @Svg.Answer. By default, any icon will inherit the text color of the parent element. Optionally, you can pass the class native to the icon to render any native colors that are included eg. @Svg.ServiceCCPA.With("native"). This same syntax allows you to pass additional arbitrary classes like atomic helpers, or js- prefixed classes.

    +
    +{% highlight java %} +@Svg.ServiceCCPA +@Svg.ServiceCCPA.With("native") +@Svg.ServiceCCPA.With("fc-black-350 float-right js-dropdown-target") +{% endhighlight %} +
    +
    +
    +
    Default
    + {% icon "ServiceCCPA" %} +
    +
    +
    With native colors
    + {% icon "ServiceCCPA", "native" %} +
    +
    +
    With arbitrary classes
    + {% icon "ServiceCCPA", "fc-black-350 float-right js-dropdown-target" %} +
    +
    +
    +
    +
    + +
    + {% header "h2", "Requesting an icon" %} +

    If an icon you need isn’t here, please do one of the following two options:

    +
      +
    1. Submit a request outlining the desired icon, the icon’s intended purposed, and where it will be used.
    2. +
    3. If the icon is ready, submit a pull request to have it to be reviewed. Please be sure to provide the same information as above.
    4. +
    +
    + +
    + {% header "h2", "Icon set" %} +
    + + + {% icon "Search", "s-input-icon s-input-icon__search" %} +
    +
    + {% for iconName in stacks-icons.icons %} +
    +
    +
    + {% icon iconName, "native js-svg" %} +
    + +
    +
    + {% endfor %} +
    +
    + + + diff --git a/packages/stacks-docs/product/foundation/spots.html b/packages/stacks-docs/product/foundation/spots.html new file mode 100644 index 0000000000..1e6af0a640 --- /dev/null +++ b/packages/stacks-docs/product/foundation/spots.html @@ -0,0 +1,37 @@ +--- +layout: page +title: Spot illustrations (WIP) +svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-icon--docs +figma: https://www.figma.com/design/Z5yoO4WH58QDHvmxwMWhr0 +description: Spot illustrations are the slightly grown up version of icons with a little more detail. They’re most often used in empty states and new product announcements. They’re built externally on the Icons repository. +tags: foundation +--- + +
    + {% header "h2", "Spot illustrations" %} +
    + + {% icon "Search", "s-input-icon s-input-icon__search" %} +
    +
    + {% for spotName in stacks-icons.spots %} +
    +
    +
    + {% spot spotName, "native" %} +
    + +
    +
    + {% endfor %} +
    +
    + + + diff --git a/packages/stacks-docs/product/foundation/theming.html b/packages/stacks-docs/product/foundation/theming.html new file mode 100644 index 0000000000..aa7b2e6613 --- /dev/null +++ b/packages/stacks-docs/product/foundation/theming.html @@ -0,0 +1,417 @@ +--- +layout: page +title: Theming +description: Stacks provides a robust theming API to handle theming in various contexts. +tags: foundation +--- + +
    + {% header "h2", "Default theme stops" %} +

    Stacks provides primary and secondary theme stops that can be overridden in your custom theme.

    + + {% for group in colors %} + {% if group.name == "v2" %} +
    + {% for set in group.sets %} + {% assign setClasses = "" %} + {% if set.name == "theme primary" or set.name == "theme secondary" %} +
    +

    {{ set.name | capitalize }}

    +
    + {% for stop in set.stops %} + {% assign name = set.name | replace: " ", "-" %} + + {% if stop != "" %} + {% assign name = set.name | append: "-" | append: stop | replace: " ", "-" %} + {% endif %} + + {% assign stopFc = "fc-black" %} + {% if set.invert contains stop %} + {% assign stopFc = "fc-white" %} + {% endif %} +
    + {{ name }} +
    + {% endfor %} +
    +
    + {% endif %} + {% endfor %} +
    + {% endif %} + {% endfor %} +
    + +
    + {% header "h2", "Theming API" %} + + {% header "h3", "Programmatic theme generation" %} +

    Use .create-custom-theme-hsl-variables(@color, @tier, @modeCustom) to create a custom theme.

    + +

    This function generates two sets of CSS variables: 1) independent h/s/l color variables and 2) variables at each colors stop that reference the h/s/l variables. Provide this function the arguments defined below to generate theme colors which will apply across Stacks.

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ArgumentTypeDefaultDescription
    @colorHSL, hex, or other color valueColor to use to generate theme values.
    @tier + primary | + secondary + primaryColor tier to generate.
    @modeCustom + base | + dark + baseThe color mode the theme applies to.
    +
    + +
    + {% header "h4", "Format" %} +{% highlight css %} +.theme-custom.themed { + .create-custom-theme-hsl-variables(hsl(172, 37%, 48%), primary); + .create-custom-theme-hsl-variables(hsl(259, 29%, 55%), secondary); + .create-custom-theme-hsl-variables(hsl(201, 70%, 55%), primary, dark); + .create-custom-theme-hsl-variables(hsl(270, 34%, 40%), secondary, dark); +} +{% endhighlight %} +
    + + {% header "h4", "Example" %} + +
    +{% highlight css %} +/* Input */ +.theme-custom.themed { + .create-custom-theme-hsl-variables(hsl(172, 37%, 48%), primary); +} + +/* Output */ +.theme-custom.themed { + /* HSL variables */ + --theme-base-primary-color-h: 172; + --theme-base-primary-color-s: 37%; + --theme-base-primary-color-l: 48%; + /* Color variables based on HSL variables */ + --theme-primary-custom: var(--theme-primary-custom-400); + --theme-primary-custom-100: hsl(var(--theme-base-primary-color-h), calc(var(--theme-base-primary-color-s) + 0 * 1%), clamp(70%, calc(var(--theme-base-primary-color-l) + 50 * 1%), 95%)); + --theme-primary-custom-200: hsl(var(--theme-base-primary-color-h), calc(var(--theme-base-primary-color-s) + 0 * 1%), clamp(55%, calc(var(--theme-base-primary-color-l) + 35 * 1%), 90%)); + --theme-primary-custom-300: hsl(var(--theme-base-primary-color-h), calc(var(--theme-base-primary-color-s) + 0 * 1%), clamp(35%, calc(var(--theme-base-primary-color-l) + 15 * 1%), 75%)); + --theme-primary-custom-400: hsl(var(--theme-base-primary-color-h), calc(var(--theme-base-primary-color-s) + 0 * 1%), clamp(20%, calc(var(--theme-base-primary-color-l) + 0 * 1%), 60%)); + --theme-primary-custom-500: hsl(var(--theme-base-primary-color-h), calc(var(--theme-base-primary-color-s) + 0 * 1%), clamp(15%, calc(var(--theme-base-primary-color-l) + -14 * 1%), 45%)); + --theme-primary-custom-600: hsl(var(--theme-base-primary-color-h), calc(var(--theme-base-primary-color-s) + 0 * 1%), clamp(5%, calc(var(--theme-base-primary-color-l) + -26 * 1%), 30%)); +} +{% endhighlight %} +
    + + {% header "h4", "Manual addition of theme variables" %} +

    If you need to apply a theme without using the above function, you can do so by manually adding the variables above to your CSS. The most common use for this approach is when the theme needs to change client-side, such as when allowing the user to change and preview a theme dynamically.

    + +

    With this approach, we recommend targeting new h/s/l color variables on a parent element that includes .themed class.

    + + {% header "h3", "Live playground" %} +
    +
    HSL
    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + +
    +
    Loading…
    + +
    + {% for set in colors[0].sets %} + {% if set.name == "theme primary" %} + {% for stop in set.stops %} + {% assign name = "theme-primary" %} + {% if stop != "" %} + {% assign name = name | append: "-" | append: stop %} + {% endif %} + + {% assign stopFc = "fc-black" %} + {% if set.invert contains stop %} + {% assign stopFc = "fc-white" %} + {% endif %} +
    + {{name}} +
    + {% endfor %} + {% endif %} + {% endfor %} +
    +
    +
    + + {% header "h3", "Theme variables overrides" %} +

    Stacks provides CSS variables for fine grained control of theming. These variables allow you to adjust the theming on specific components and elements, as well as body background and font color.

    + +
    +{% highlight css %} +--theme-background-color +--theme-body-font-color +--theme-button-active-background-color +--theme-button-color +--theme-button-hover-background-color +--theme-button-hover-color +--theme-button-outlined-border-color +--theme-button-outlined-selected-border-color +--theme-button-primary-active-background-color +--theme-button-primary-background-color +--theme-button-primary-color +--theme-button-primary-hover-background-color +--theme-button-primary-hover-color +--theme-button-primary-number-color +--theme-button-primary-selected-background-color +--theme-button-primary-selected-color +--theme-button-selected-background-color +--theme-button-selected-color +--theme-link-color +--theme-link-color-hover +--theme-link-color-visited +--theme-post-body-font-family +--theme-post-title-color +--theme-post-title-color-hover +--theme-post-title-color-visited +--theme-post-title-font-family +--theme-tag-background-color +--theme-tag-border-color +--theme-tag-color +--theme-tag-hover-background-color +--theme-tag-hover-border-color +--theme-tag-hover-color +--theme-tag-required-background-color +--theme-tag-required-border-color +--theme-tag-required-color +--theme-tag-required-hover-background-color +--theme-tag-required-hover-border-color +--theme-tag-required-hover-color +--theme-topbar-accent-border +--theme-topbar-background-color +--theme-topbar-bottom-border +--theme-topbar-height +--theme-topbar-item-background-hover +--theme-topbar-item-color +--theme-topbar-item-color-current +--theme-topbar-item-color-hover +--theme-topbar-search-background +--theme-topbar-search-border +--theme-topbar-search-color +--theme-topbar-search-placeholder +--theme-topbar-select-background +--theme-topbar-select-color +{% endhighlight %} +
    +
    + + +
    + {% header "h2", "Child theming" %} +

    Stacks allows for further theming various portions of a page. You can simply pair the .themed class with an atomic color stop, and a new theming scope. For this example, we’re using a class name of .theme-team-[xxx] with a unique ID appended.

    +
    +{% highlight html %} +
    +
    +
    +
    + + +{% endhighlight %} + + {% assign modes = "default,light-forced,dark-forced" | split: "," %} + {% assign exampleSelectors = "body,.themed.theme-team-001,.themed.theme-team-002,.themed.theme-team-003" | split: "," %} + {% for mode in modes %} + {% assign headingText = mode | replace: "-", " " | capitalize %} + {% assign modeClass = "" %} + {% assign bgClass = "d:bg-black-100" %} + {% if mode != "default" %} + {% assign modeClassPrep = mode | replace: "-", "__" %} + {% assign modeClass = "theme-" | append: modeClassPrep %} + {% endif %} + {% if mode == "dark-forced" %} + {% assign bgClass = "bg-black-100" %} + {% endif %} + +
    + {% header "h3", headingText %} +
    +
    + {% for selector in exampleSelectors %} + {% assign selectorClasses = selector | replace: "body", "" | replace: ".", " " %} +
    +
    + {% if selector == "body" %}{{selector}}{% endif %} + {% if mode != "default" %}.{{modeClass}}{% endif %} + {% if selector != "body" %}{{selector}}{% endif %} +
    +
    +
    + {% if selector != "body" %} +
    C
    + {% icon "ShieldXSm", "native s-avatar--badge" %} + {% endif %} +
    + + +
    +
    + 1 + 2 + Next +
    +
    +
    +
    + {% endfor %} +
    +
    +
    + {% endfor %} +
    +
    + + + + - - - -
    -

    System banners are used for system messaging. They are full-width notices placed in one of two locations:

    -
      -
    1. Above everything else: If the system banner is related to the entire website (e.g. the website is in read-only), place the banner first. These cannot be dismissed until the issue is resolved. To pin a system banner to the top of the browser window, add .is-pinned.
    2. -
    3. Below the top navigation bar: This is the default location for all system banners. Use these banners when it affects only a particular area of the product (e.g. when a product subscription is about to expire).
    4. -
    -

    Since system banners are a type of notice, you can use the following notice visual styles in conjunction with .s-banner:

    -
    - -
    - {% header "h2", "Classes" %} -
    - - - - - - - - - - {% for item in banners.system %} - - - - - - {% endfor %} - -
    ClassApplies toDescription
    {{ item.class }}{% if item.applies == "N/A" %}{{ item.applies }}{% else %}{{ item.applies }}{% endif %}{{ item.description }}
    -
    - {% header "h2", "JavaScript" %} -

    The .s-banner component includes a controller to show and hide the banner programitically. While it is optional, at least including the functionality to close the banner is recommended.

    - - {% header "h3", "Attributes" %} -
    - - - - - - - - - - - - - - - - - - - - - - - - - -
    AttributeApplied toDescription
    data-controller="s-banner"Controller elementWires up the element to the banner controller. This may be a .s-banner element or a wrapper element.
    data-s-banner-target="banner".s-banner elementWires up the element that is to be shown/hidden
    data-s-banner-remove-when-hidden="true"Controller elementOptional Removes the banner from the DOM entirely when it is hidden
    -
    - {% header "h3", "Events" %} -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    EventElementDescription
    s-banner:showBanner targetDefault preventable Fires immediately before showing the banner. Calling .preventDefault() cancels the display of the banner.
    s-banner:shownBanner targetFires after the banner has been visually shown
    s-banner:hideBanner targetDefault preventable Fires immediately before hiding the banner. Calling .preventDefault() cancels the removal of the banner.
    s-banner:hiddenBanner targetFires after the banner has been visually hidden
    -
    -
    - - - - - - - - - - - - - - - -
    event.detailApplicable eventsDescription
    dispatchers-banner:*Contains the Element that initiated the event. For instance, the button clicked to show, the element clicked outside the banner that caused it to hide, etc.
    -
    - {% header "h3", "Helpers" %} -
    - - - - - - - - - - - - - - - - - - - - -
    FunctionParametersDescription
    Stacks.showBanner - element: the element the data-controller="s-banner" attribute is on

    -
    Helper to manually show an s-banner element via external JS
    Stacks.hideBanner - element: the element the data-controller="s-banner" attribute is on

    -
    Helper to manually hide an s-banner element via external JS
    -
    - - {% header "h2", "Examples" %} -
    -
    -
    -
    -
    - -
    - -
    -
    -
    -
    -
    - - -
    -
    -
    -
    - - -
    -
    - - -
    -
    -
    - - {% header "h3", "Base" %} -
    -{% highlight html %} - - -{% endhighlight %} -
    - {% bannerExample "" %} - {% bannerExample "", "true", "mt8" %} -
    -
    - - {% header "h3", "Info" %} -
    -{% highlight html %} - - -{% endhighlight %} -
    - {% bannerExample "info" %} - {% bannerExample "info", "true", "mt8" %} -
    -
    - - {% header "h3", "Success" %} -
    -{% highlight html %} - - -{% endhighlight %} -
    - {% bannerExample "success" %} - {% bannerExample "success", "true", "mt8" %} -
    -
    - - {% header "h3", "Warning" %} -
    -{% highlight html %} - - -{% endhighlight %} -
    - {% bannerExample "warning" %} - {% bannerExample "warning", "true", "mt8" %} -
    -
    - - {% header "h3", "Danger" %} -
    - {% highlight html %} - - - {% endhighlight %} -
    - {% bannerExample "danger" %} - {% bannerExample "danger", "true", "mt8" %} -
    -
    - - {% header "h2", "JavaScript Example" %} -
    -{% highlight html %} - -… - -{% endhighlight %} -
    - -
    -{% highlight javascript %} -document.querySelector(".js-banner-toggle").addEventListener("click", function(e) { - Stacks.showBanner(document.querySelector("#example-banner")); -}); -{% endhighlight %} -
    - -
    diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/bling.html b/packages/stacks-docs-next/src/docs/legacy/product/components/bling.html deleted file mode 100644 index 2023cdd5ef..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/bling.html +++ /dev/null @@ -1,156 +0,0 @@ ---- -layout: page -title: Bling -svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-bling--docs -description: Bling is used to indicate award type in badges, topbar, and user cards. -tags: components ---- -
    - {% header "h2", "Types" %} -

    Use the clear bling variant only when its associated color is already present in the component, such as within a colored tag badge or alongside a filled element.

    -
    -{% highlight html %} - - - - - - - - - - - - -{% endhighlight %} -
    -
    - - - - - - - - - - {% for bling in bling.types %} - {% unless bling.name == "rep" or bling.name == "activity" %} - - - - - - {% endunless %} - {% endfor %} - -
    ExampleClassDescription
    - - {{ bling.name }} bling - - -
    - .s-bling - {% if bling.name != "default" %} - .s-bling__{{ bling.modifier }} - {% endif %} -
    -
    {{ bling.descriptions.base }}
    -
    -
    -
    -
    - -
    - {% header "h2", "Filled" %} -

    Use the filled bling style to represent a specific achievement badge or to display the total count of badges a user has earned.

    -
    -{% highlight html %} - - - - - - -{% endhighlight %} -
    -
    - - - - - - - - - - {% for bling in bling.types %} - - - - - - {% endfor %} - -
    ExampleClassDescription
    - - {{ bling.name }} bling - - -
    - .s-bling - .s-bling__filled - {% if bling.name != "default" %} - .s-bling__{{ bling.modifier }} - {% endif %} -
    -
    {{ bling.descriptions.filled }}
    -
    -
    -
    -
    - -
    - {% header "h2", "Sizes" %} -

    A bling component has a default size. To change the bling’s size, apply one of the following sizing classes along with the base .s-bling class.

    -
    -{% highlight html %} - - - -{% endhighlight %} -
    -
    - - - - - - - - - - {% for size in bling.sizes %} - - - - - - {% endfor %} - -
    ExampleClassDescription
    - - {{ size }} bling - - -
    - .s-bling - {% if size != "default" %} - .s-bling__{{ size }} - {% endif %} -
    -
    A “{{ size }}” bling.
    -
    -
    -
    -
    \ No newline at end of file diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/breadcrumbs.html b/packages/stacks-docs-next/src/docs/legacy/product/components/breadcrumbs.html deleted file mode 100644 index a4ba1259c5..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/breadcrumbs.html +++ /dev/null @@ -1,157 +0,0 @@ ---- -layout: page -title: Breadcrumbs -figma: https://svelte.stackoverflow.design/figma/breadcrumbs -description: Breadcrumbs are used to provide context for the currently-viewed page. -tags: components ---- -
    - {% header "h2", "Classes" %} -
    - - - - - - - - - - {% for item in breadcrumbs.classes %} - - - - - - {% endfor %} - -
    ClassParentDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    -
    -
    -
    - {% header "h2", "Examples" %} -

    Breadcrumbs show users where they are within a site’s hierarchy. Breadcrumbs help orient the user and allow for navigation to previous page levels. It can be appropriate to use a breadcrumb when:

    -
      -
    • The user is more than 2 levels of navigation deep
    • -
    • The current page does not have its own navigation
    • -
    • The user needs to quickly go back to the previous parent page
    • -
    -

    Breadcrumbs should be the first page element—placed directly above the page’s title. The page the user is on should not appear in the breadcrumb trail, since that indicator is satisfied by the title of the page itself. Additionally, the last .s-breadcrumb--item shouldn’t include the divider.

    - -

    It is not appropriate to use Breadcrumbs when:

    -
      -
    • There is only one level of navigation.
    • -
    • There isn’t a clear navigation path or the page is orphaned.
    • -
    - - {% header "h3", "Stack Overflow" %} -
    -{% highlight html %} - -{% endhighlight %} -
    - -

    What types of questions should I avoid asking?

    -
    -
    - - {% header "h3", "Stack Exchange" %} -
    -{% highlight html %} - -{% endhighlight %} -
    - -

    Close votes

    -
    -
    - - {% header "h3", "Team" %} -
    -{% highlight html %} - -{% endhighlight %} -
    - -

    Payment Details

    -
    -
    - diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/button-groups.html b/packages/stacks-docs-next/src/docs/legacy/product/components/button-groups.html deleted file mode 100644 index b04f01eb37..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/button-groups.html +++ /dev/null @@ -1,237 +0,0 @@ ---- -layout: page -title: Button groups -figma: https://svelte.stackoverflow.design/figma/button-groups -description: Button groups are a collection of buttons. This component is used in our questions view, and is frequently used in conjunction with other form elements such as search fields and sorting dropdowns. If the content you’re interacting with is a simple paring down or filter of the current view, it’s appropriate to use the .s-btn-group component. Add the class .is-selected and the aria-current attribute with the appropriate value to show the currently selected button. -tags: components ---- -
    - {% header "h2", "Classes" %} -
    - - - - - - - - - - {% for item in button-groups.classes %} - - - - - - {% endfor %} - -
    ClassApplied toDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    -
    - - {% header "h2", "Button attributes" %} - - {% for item in button-groups.button-attributes %} - {% header "h3", item.title %} - -

    {{item.description}}

    - -
    - - - - - - - - - - {% for attribute in item.attributes %} - - - - - - {% endfor %} - -
    ItemApplied toDescription
    {{ attribute.attribute }}{{ attribute.applies }}{{ attribute.description }}
    -
    - {% endfor %} -
    - -
    - {% header "h2", "Example" %} -
    -{% highlight html %} -
    - - - - - -
    -{% endhighlight %} -
    -
    - - - - - -
    -
    -
    -
    - -
    - {% header "h2", "Counts" %} -

    - Counts are used to display a numerical count inside a button group. This is good for large data sets where it’s helpful to quickly know how many items are behind each filter. -

    -
    -{% highlight html %} -
    - - - -
    -{% endhighlight %} -
    -
    - - - -
    -
    -
    -
    - -
    - {% header "h2", "Radio" %} -

    - Button groups can be implemented using radio elements with the class .s-btn--radio on the radio input element. This class assumes all buttons are styled label elements. -

    -
    -{% highlight html %} -
    - - - - - - -
    -{% endhighlight %} -
    -
    - - - - - - -
    -
    -
    -
    - -
    - {% header "h2", "Links" %} -

    - In some cases items in the button groups let users navigate between related sections of content, displaying one section at a time. - In those cases an a tag should be prefferred over the button. -

    -
    -{% highlight html %} - -{% endhighlight %} -
    - -
    -
    -
    - - diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/buttons.html b/packages/stacks-docs-next/src/docs/legacy/product/components/buttons.html deleted file mode 100644 index 24e2a8a96e..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/buttons.html +++ /dev/null @@ -1,700 +0,0 @@ ---- -layout: page -title: Buttons -svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-button--docs -figma: https://svelte.stackoverflow.design/figma/buttons -description: Buttons are user interface elements which allows users to take actions throughout the project. It is important that they have ample click space and help communicate the importance of their actions. -tags: components ---- -
    - {% header "h2", "Styles" %} -

    Stacks provides 3 different button styles:

    -
      -
    1. Base
    2. -
    3. Danger
    4. -
    5. Featured
    6. -
    7. Tonal
    8. -
    -

    Each style is explained below, detailing how and where to use these styles.

    - - {% header "h3", "Base" %} - -

    Base buttons can gain clear styling with the .s-btn__clear class.

    -
    -{% highlight html %} - - -{% endhighlight %} -
    -
    - - - - - - - - - - - - {% for btn in buttons.base %} - {% assign types = btn.classes %} - {% for class in types %} - - - - - - - - {% endfor %} - {% endfor %} - -
    TypeClassDefault StateSelected StateDisabled State
    {{ class.title }} -
    - .s-btn - {% if btn.class != nil %} - .{{ btn.class }} - {% endif %} - {% if class.class != nil %} - .{{ class.class }} - {% endif %} -
    -
    -
    -
    -
    - - {% header "h3", "Danger" %} - -

    Danger buttons are a secondary button style, used to visually communicate destructive actions such as deleting content, accounts, or canceling services.

    -
    -{% highlight html %} - - -{% endhighlight %} -
    -
    - - - - - - - - - - - - {% for btn in buttons.danger %} - {% assign types = btn.classes %} - {% for class in types %} - - - - - - - - {% endfor %} - {% endfor %} - -
    TypeClassDefault StateSelected StateDisabled State
    {{ class.title }} -
    - .s-btn - {% if btn.class != nil %} - .{{ btn.class }} - {% endif %} - {% if class.class != nil %} - .{{ class.class }} - {% endif %} -
    -
    -
    -
    -
    - - - {% header "h3", "Featured" %} -

    Featured buttons are a secondary button style, used to visually draw attention to something new or temporary, usually as part of onboarding or to announce a new feature. These should be used sparingly, and permanent placements should be avoided.

    - -
    -{% highlight html %} - - -{% endhighlight %} -
    -
    - - - - - - - - - - - - {% for btn in buttons.featured %} - {% assign types = btn.classes %} - {% for class in types %} - - - - - - - - {% endfor %} - {% endfor %} - -
    TypeClassDefault StateSelected StateDisabled State
    - {{ class.title }} - -
    - .s-btn - .s-btn__featured - {% if class.class != nil %} - .{{ class.class }} - {% endif %} -
    -
    -
    -
    -
    -
    - - {% header "h3", "Tonal" %} - -

    Tonal buttons are a secondary button style, a grayscale visual treatment. Used in layouts for the least important items or currently inactive actions.

    -
    -{% highlight html %} - - -{% endhighlight %} -
    -
    - - - - - - - - - - - - {% for btn in buttons.tonal %} - {% assign types = btn.classes %} - {% for class in types %} - - - - - - - - {% endfor %} - {% endfor %} - -
    TypeClassDefault StateSelected StateDisabled State
    - {{ class.title }} - -
    - .s-btn - {% if btn.class != nil %} - .{{ btn.class }} - {% endif %} - {% if class.class != nil %} - .{{ class.class }} - {% endif %} -
    -
    -
    -
    -
    - - - -
    - {% header "h2", "Anchors" %} -

    Anchors can be rendered with the .s-btn to adopt a button-like visual style for a link.

    - -
    -{% highlight html %} -Ask question -{% endhighlight %} -
    -
    - - - - - - - - - - - - {% for btn in buttons.variants %} - - - - - - - - {% endfor %} - -
    TypeClassDefault StateSelected StateDisabled State
    {{ btn.title }} -
    - .s-btn - {% if btn.variant != nil %} - .{{ btn.variant }} - {% endif %} - {% if btn.modifier != nil %} - .{{ btn.modifier }} - {% endif %} -
    -
    Ask questionAsk questionAsk question
    -
    -
    -
    -
    - -
    - {% header "h2", "Loading" %} -

    Any button can have a loading state applied by adding the .is-loading state class.

    -
    -{% highlight html %} - -{% endhighlight %} -
    -
    - - - - - - - - - - - - {% for btn in buttons.variants %} - - - - - - - - {% endfor %} - -
    TypeClassDefault StateSelected StateDisabled State
    {{ btn.title }} -
    - .s-btn - {% if btn.variant != nil %} - .{{ btn.variant }} - {% endif %} - {% if btn.modifier != nil %} - .{{ btn.modifier }} - {% endif %} - .is-loading -
    -
    -
    -
    -
    - -
    - {% header "h2", "Dropdowns" %} -

    Adding the class .s-btn__dropdown to any button style will add an appropriately-styled caret. These should be paired with a menu or popover.

    - -
    -{% highlight html %} - -{% endhighlight %} -
    -
    - - - - - - - - - - - - {% for btn in buttons.variants %} - - - - - - - - {% endfor %} - -
    TypeClassDefault StateSelected StateDisabled State
    {{ btn.title }} -
    - .s-btn - {% if btn.variant != nil %} - .{{ btn.variant }} - {% endif %} - {% if btn.modifier != nil %} - .{{ btn.modifier }} - {% endif %} - .s-btn__dropdown -
    -
    -
    -
    -
    -
    - -
    - {% header "h2", "Badges" %} -

    Adding an .s-btn--badge to any button will add an appropriately-styled badge.

    - -
    -{% highlight html %} - -{% endhighlight %} -
    -
    - - - - - - - - - - - - {% for btn in buttons.variants %} - - - - - - - - {% endfor %} - -
    TypeClassDefault StateSelected StateDisabled State
    {{ btn.title }} -
    - .s-btn - {% if btn.variant != nil %} - .{{ btn.variant }} - {% endif %} - {% if btn.modifier != nil %} - .{{ btn.modifier }} - {% endif %} - .s-btn--badge -
    -
    - - - - - -
    -
    -
    -
    -
    - -
    - {% header "h2", "Sizes" %} -

    A button’s default font-size is determined by the @body-fs variable. To change the button’s font-size, use the following classes with .s-btn:

    - -
    - - - - - - - - - - - {% for size in buttons.sizes %} - - - - - - - {% endfor %} - -
    TypeClassSizeExample
    {{ size.size }} - {% if size.class == "N/A" %} - {{ size.class }} - {% else %} - {{ size.class }} - {% endif %} - {{ size.fs }}
    -
    -
    - -
    - {% header "h2", "Toggle buttons" %} -

    Each button class has a selected state which can be visually activated by applying the .is-selected class. When a button can switch between selected and unselected states, it is important to also annotate the button with the aria-pressed attribute for accessibility. A title attribute may also be appropriate to describe what will happen when pressing the button.

    - -
    -{% highlight html %} - - - - -{% endhighlight %} -
    -
    - - -
    -
    -
    -
    - -
    - {% header "h2", "Additional styles" %} -

    Stacks provides additional classes for cases that are a bit more rare. - - {% header "h3", "Disabled" %} -

    - - - - - - - - - - - - - - - - - -
    TypeClassDefinitionExample
    Disabled - [aria-disabled="true"] - Adds disabled styling to any element with .s-btn applied.Ask question
    -
    - - {% header "h3", "Resets" %} -
    - - - - - - - - - - - - - - - - - - - - - - - -
    TypeClassDefinitionExample
    Unset - .s-btn__unset - Removes all styling from a button and reverts focus states to browser default.
    Link - .s-btn__link - Styles a button element as though it were a link. Instead of transforming an s-btn to a link, you most likely want to style a button as a link.
    -
    - - {% header "h3", "Icons" %} -
    - - - - - - - - - - - - - - - - - -
    TypeClassDefinitionExamples
    Icon - .s-btn__icon - Adds some margin overrides that apply to an icon within a button - - -
    -
    - - {% header "h3", "Social" %} -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeClassDefinitionExamples
    Facebook - .s-btn__facebook - Styles a button consistent with Facebook’s branding - -
    Google - .s-btn__google - Styles a button consistent with Google’s branding - -
    GitHub - .s-btn__github - Styles a button consistent with GitHub’s branding - -
    -
    -
    - -
    - {% header "h2", "Ordering" %} -

    To maintain product consistency, buttons should maintain the following layout ordering:

    - - {% header "h3", "Within a row" %} -

    Most button groups should be ordered from the most important to the least important action, left to right.

    -
    -{% highlight html %} - - -{% endhighlight %} -
    -
    - - -
    -
    -
    - - {% header "h3", "Within a column" %} -

    Sometimes the layout dictates that buttons need to be stacked on top of each other. Again, these buttons should be stacked from the most important to the least important, top to bottom.

    -
    -{% highlight html %} -
    - - -
    -{% endhighlight %} -
    -
    - - -
    -
    -
    - - {% header "h3", "Within a header" %} -

    Sometimes the best place for a series of actions is in the same area as the title. In these cases, the buttons should be pulled to the right. Within this instance, the button order should be reversed with the most important action to the far right and the least important action to the far left.

    -
    -{% highlight html %} -
    -
    -

    Write your response

    - -
    - - -
    -
    -
    -{% endhighlight %} -
    -
    -

    Write your response

    - -
    - - -
    -
    -
    -
    -
    - diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/cards.html b/packages/stacks-docs-next/src/docs/legacy/product/components/cards.html deleted file mode 100644 index 1081d9dacd..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/cards.html +++ /dev/null @@ -1,169 +0,0 @@ ---- -layout: page -title: Cards -figma: https://svelte.stackoverflow.design/figma/cards -description: Cards are used to group similar concepts and tasks together to make information easier to scan, read, and act on. Cards should use a heading that sets clear expectations about the card’s purpose, paragraphs that put the most critical information first, and (optionally) calls to action on the bottom to direct user action. -tags: components ---- -
    - {% header "h2", "Base" %} -

    The base card styling applies a border and padding to the card.

    -

    Cards can be any size and it’s ok to increase the body text size for larger cards.

    -
    -{% highlight html %} -
    -

    -

    - -
    -{% endhighlight %} -
    -
    -

    Base card title

    -

    This is a description of the card’s content.

    -
    - - -
    -
    -
    -

    Base card title

    -

    This is a description of the card’s content. Sometimes the description is two or three sentences.

    -
    - - -
    -
    -
    -
    -
    - -
    - {% header "h2", "Box shadows" %} -

    Applying a .bs-* class adds a box shadow to a card. Useful when giving users the impression they can interact with the card.

    -
    -{% highlight html %} -
    -
    -
    -{% endhighlight %} -
    -
    -
    -

    Small box shadow

    -

    This adds a small box shadow.

    -
    -
    -

    Medium box shadow

    -

    This adds medium box shadow.

    -
    -
    -

    Large box shadow

    -

    This is the largest box shadow.

    -
    -
    -
    -
    -
    - -
    - {% header "h2", "Linked cards" %} -

    The .s-card class can be applied to an <a> tag for instances where a whole card should link somewhere. If possible, linked cards should visually indication that they’re interactive (ex. including an .s-btn or .s-link somewhere).

    -

    A :hover style for border color is automatically added to all linked cards. For linked cards with a box shadow (.bs-*), adding a .h:bs-* class will apply a hover style to the box shadow as well. Increasing the .bs- size by a factor of one is usually best.

    - -
    - -
    - {% header "h2", "Muted" %} -

    When a card is disabled or considered completed, apply the muted modifier to visually dim the card.

    -
    -{% highlight html %} -
    -

    -

    -
    -{% endhighlight %} -
    -
    -
    -

    Base card title

    -

    This is a description of the card’s content.

    -
    - -

    Linked card title

    -

    This is a description of the card’s content.

    -
    -
    -
    -
    -
    - -
    - {% header "h2", "Stacked" %} -

    First introduced for our collections feature in Teams, cards can also be stacked to imply multiple sections or items. No need to overthink it, we can just nest our cards. Note: You’ll need to compensate for the 4px of nesting on that right edge to keep things equidistant.

    -
    -{% highlight html %} -
    -
    - … -
    -
    -{% endhighlight %} -
    -
    -
    -
    -

    Community announcements

    -

    A collection of various announcements shared across the org.

    -
    -
    -
    -
    -
    -
    diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/checkbox.html b/packages/stacks-docs-next/src/docs/legacy/product/components/checkbox.html deleted file mode 100644 index 3d75c5d268..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/checkbox.html +++ /dev/null @@ -1,511 +0,0 @@ ---- -layout: page -title: Checkbox & Radio -figma: https://svelte.stackoverflow.design/figma/form-elements -description: Checkable inputs that visually allow for multiple options or true/false values. -tags: components ---- -
    - {% tip, "warning", "mb24" %} - Deprecation: the markup for checkboxes and radios has changed. Please update your markup to match the new structure detailed on this page. - {% endtip %} - {% header "h2", "Base style" %} -
    -{% highlight html %} - -
    - - -
    - - -
    - - -
    - - -
    - - -
    - -
    - - -
    -{% endhighlight %} -
    -
    -
    - -
    - - -
    - - -
    - - -
    - - -
    - - -
    - - -
    - - -
    -
    -
    - -
    - - -
    - - -
    - - -
    - - -
    - - -
    - - -
    - - -
    -
    -
    -
    -
    -
    - -
    - {% header "h2", "Accessibility" %} -

    The best accessibility is semantic HTML. Most screen readers understand how to parse inputs if they’re correctly formatted. When it comes to checkboxes, there are a few things to keep in mind:

    -
      -
    • All inputs should have an id attribute.
    • -
    • Be sure to associate the checkbox/radio label by using the for attribute. The value here is the input’s id.
    • -
    • If you have a group of related checkboxes or radios, use the fieldset and legend to group them together.
    • -
    -

    For more information, please read Gov.UK’s article, "Using the fieldset and legend elements".

    -
    - -
    - {% header "h2", "Examples" %} - {% header "h3", "Vertical group" %} -
    -{% highlight html %} - -
    - Which types of fruit do you like? (Check all that apply) -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    - Which fruit do you like best? -
    - - -
    -
    - - -
    -
    - - -
    -
    -{% endhighlight %} -
    - -
    - Which types of fruit do you like? (Check all that apply) -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    - Which fruit do you like best? -
    - - -
    -
    - - -
    -
    - - -
    -
    -
    -
    - - {% header "h3", "Horizontal group" %} -
    -{% highlight html %} - -
    - Which types of fruit do you like? (Check all that apply) -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    - Which fruit do you like best? -
    - - -
    -
    - - -
    -
    - - -
    -
    -{% endhighlight %} -
    - -
    - Which types of fruit do you like? (Check all that apply) -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    - Which fruit do you like best? -
    - - -
    -
    - - -
    -
    - - -
    -
    -
    -
    - - {% header "h3", "With description copy" %} -
    -{% highlight html %} -
    - Which types of fruit do you like? (Check all that apply) -
    - - -
    -
    - - -
    -
    - - -
    -
    -{% endhighlight %} -
    - -
    - Which types of fruit do you like? (Check all that apply) -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    - Which fruit do you like best? -
    - - -
    -
    - - -
    -
    - - -
    -
    -
    -
    - - {% header "h3", "Indeterminate state" %} -

    Checkboxes can be styled by using the :indeterminate pseudo class.

    - {% tip, "", "mb32" %} - Note: The :indeterminate pseudo class can only be set via JavaScript. Use the HTMLInputElement object's indeterminate property to set the state. - {% endtip %} - -
    -{% highlight html %} -
    -
    - - -
    -
    - - -{% endhighlight %} -
    -
    -
    - - -
    -
    -
    -
    -
    - -
    - {% header "h2", "Validation states" %} -

    Checkboxes use the same validation states as inputs.

    - - {% header "h3", "Validation classes" %} -
    - - - - - - - - - - {% for item in inputs.checkbox %} - {% assign state = item.validation %} - {% for class in state %} - - - - - - {% endfor %} - {% endfor %} - -
    ClassAppliesDescription
    {{ class.class }}{{ class.applies }}{{ class.description }}
    -
    - - {% header "h3", "Validation examples" %} -
    -{% highlight html %} - -
    - Which types of fruit do you like? (Check all that apply) -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    - Which fruit do you like best? -
    - - -
    -
    - - -
    -
    - - -
    -
    -{% endhighlight %} -
    - -
    - Which types of fruit do you like? (Check all that apply) -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    - Which fruit do you like best? -
    - - -
    -
    - - -
    -
    - - -
    -
    -
    -
    -
    - - diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/code-blocks.html b/packages/stacks-docs-next/src/docs/legacy/product/components/code-blocks.html deleted file mode 100644 index 30d99b8fef..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/code-blocks.html +++ /dev/null @@ -1,481 +0,0 @@ ---- -layout: page -title: Code block -description: Stacks provides styling for code blocks with syntax highlighting provided by highlight.js. Special care was taken to make sure our light and dark themes felt like Stack Overflow while maintaining near AAA color contrasts and still being distinguishable for those with a color vision deficiency. -tags: components ---- -
    - {% header "h2", "Classes" %} -
    - - - - - - - - - - - - - - - - - - - - - - - - - -
    ClassApplies toOutput
    .s-code-blockpreAdds proper styling to pre-formatted code.
    .linenums.s-code-blockAdds a line numbers column to the code block.
    .linenums:<n>.s-code-blockAdds a line numbers column to the code block starting at a number <n>.
    -
    -
    - -
    - {% header "h2", "Language examples" %} -

    The following examples are a small subset of the languages that highlight.js supports.

    - {% header "h3", "HTML" %} -
    -{% highlight html %} -
    -    …
    -
    -{% endhighlight %} -
    -{% highlight html %} -
    - -
    - -
    -
    -{% endhighlight %} -
    -
    - - {% header "h3", "JavaScript" %} -
    -{% highlight html %} -
    -    …
    -
    -{% endhighlight %} -
    -{% highlight javascript %} -import React, { Component } from 'react' -import { IP } from '../constants/IP' -import { withAuth0 } from '@auth0/auth0-react'; - -class AddATournament extends Component { - componentDidMount() { - this.myNewListOfAllTournamentsWithAuth() - } -} - -export default withAuth0(AddATournament); -{% endhighlight %} -
    -
    - - {% header "h3", "CSS" %} -
    -{% highlight html %} -
    -    …
    -
    -{% endhighlight %} -
    -{% highlight css %} -.s-input, -.s-textarea { - -webkit-appearance: none; - width: 100%; - margin: 0; - padding: 0.6em 0.7em; - border: 1px solid var(--bc-darker); - border-radius: 3px; - background-color: var(--white); - color: var(--fc-dark); - font-size: 13px; - font-family: inherit; - line-height: 1.15384615; - scrollbar-color: var(--scrollbar) transparent; -} -@supports (-webkit-overflow-scrolling: touch) { - .s-input, - .s-textarea { - font-size: 16px; - padding: 0.36em 0.55em; - } - .s-input::-webkit-input-placeholder, - .s-textarea::-webkit-input-placeholder { - line-height: normal !important; - } -} -{% endhighlight %} -
    -
    - - {% header "h3", "Java" %} -
    -{% highlight html %} -
    -    …
    -
    -{% endhighlight %} -
    -{% highlight java %} -package l2f.gameserver.model; - -public abstract strictfp class L2Char extends L2Object { - public static final Short ERROR = 0x0001; - - public void moveTo(int x, int y, int z) { - _ai = null; - log("Should not be called"); - if (1 > 5) { // what? - return; - } - } -} -{% endhighlight %} -
    -
    - - {% header "h3", "Ruby" %} -
    -{% highlight html %} -
    -    …
    -
    -{% endhighlight %} -
    -{% highlight ruby %} -# The Greeter class -class Greeter - def initialize(name) - @name = name.capitalize - end - - def salute - puts "Hello #{@name}!" - end -end - -g = Greeter.new("world") -g.salute -{% endhighlight %} -
    -
    - - {% header "h3", "Python" %} -
    -{% highlight html %} -
    -    …
    -
    -{% endhighlight %} -
    -{% highlight python %} -def all_indices(value, qlist): - indices = [] - idx = -1 - while True: - try: - idx = qlist.index(value, idx+1) - indices.append(idx) - except ValueError: - break - return indices - -all_indices("foo", ["foo","bar","baz","foo"]) -{% endhighlight %} -
    -
    - - {% header "h3", "Objective-C" %} -
    -{% highlight html %} -
    -    …
    -
    -{% endhighlight %} -
    -{% highlight objectivec %} -#import -#import "Dependency.h" - -@protocol WorldDataSource -@optional -- (NSString*)worldName; -@required -- (BOOL)allowsToLive; -@end - -@property (nonatomic, readonly) NSString *title; -- (IBAction) show; -@end - -- (UITextField *) userName { - UITextField *retval = nil; - @synchronized(self) { - retval = [[userName retain] autorelease]; - } - return retval; -} - -- (void) setUserName:(UITextField *)userName_ { - @synchronized(self) { - [userName_ retain]; - [userName release]; - userName = userName_; - } -} -{% endhighlight %} -
    -
    - - {% header "h3", "Swift" %} -
    -{% highlight html %} -
    -    …
    -
    -{% endhighlight %} -
    -{% highlight swift %} -import Foundation - -@objc class Person: Entity { - var name: String! - var age: Int! - - init(name: String, age: Int) { - /* /* ... */ */ - } - - // Return a descriptive string for this person - func description(offset: Int = 0) -> String { - return "\(name) is \(age + offset) years old" - } -} -{% endhighlight %} -
    -
    - - {% header "h3", "Less" %} -
    -{% highlight html %} -
    -    …
    -
    -{% endhighlight %} -
    -{% highlight less %} -@import "fruits"; - -@rhythm: 1.5em; - -@media screen and (min-resolution: 2dppx) { - body {font-size: 125%} -} - -section > .foo + #bar:hover [href*="less"] { - margin: @rhythm 0 0 @rhythm; - padding: calc(5% + 20px); - background: #f00ba7 url(http://placehold.alpha-centauri/42.png) no-repeat; - background-image: linear-gradient(-135deg, wheat, fuchsia) !important ; - background-blend-mode: multiply; -} - -@font-face { - font-family: /* ? */ 'Omega'; - src: url('../fonts/omega-webfont.woff?v=2.0.2'); -} - -.icon-baz::before { - display: inline-block; - font-family: "Omega", Alpha, sans-serif; - content: "\f085"; - color: rgba(98, 76 /* or 54 */, 231, .75); -} -{% endhighlight %} -
    -
    - - {% header "h3", "Json" %} -
    -{% highlight html %} -
    -    …
    -
    -{% endhighlight %} -
    -{% highlight json %} -[ - { - "title": "apples", - "count": [12000, 20000], - "description": {"text": "...", "sensitive": false} - }, - { - "title": "oranges", - "count": [17500, null], - "description": {"text": "...", "sensitive": false} - } -] -{% endhighlight %} -
    -
    - - {% header "h3", "C Sharp" %} -
    -{% highlight html %} -
    -    …
    -
    -{% endhighlight %} -
    -{% highlight csharp %} -using System.IO.Compression; - -#pragma warning disable 414, 3021 - -namespace MyApplication -{ - [Obsolete("...")] - class Program : IInterface - { - public static List JustDoIt(int count) - { - Console.WriteLine($"Hello {Name}!"); - return new List(new int[] { 1, 2, 3 }) - } - } -} -{% endhighlight %} -
    -
    - - {% header "h3", "SQL" %} -
    -{% highlight html %} -
    -    …
    -
    -{% endhighlight %} -
    -{% highlight sql %} -CREATE TABLE "topic" ( - "id" serial NOT NULL PRIMARY KEY, - "forum_id" integer NOT NULL, - "subject" varchar(255) NOT NULL -); -ALTER TABLE "topic" -ADD CONSTRAINT forum_id FOREIGN KEY ("forum_id") -REFERENCES "forum" ("id"); - --- Initials -insert into "topic" ("forum_id", "subject") -values (2, 'D''artagnian'); -{% endhighlight %} -
    -
    - - {% header "h3", "Diff" %} -
    -{% highlight html %} -
    -    …
    -
    -{% endhighlight %} -
    -{% highlight diff %} -Index: languages/ini.js -=================================================================== ---- languages/ini.js (revision 199) -+++ languages/ini.js (revision 200) -@@ -1,8 +1,7 @@ - hljs.LANGUAGES.ini = - { - case_insensitive: true, -- defaultMode: -- { -+ defaultMode: { - contains: ['comment', 'title', 'setting'], - illegal: '[^\\s]' - }, - -*** /path/to/original timestamp ---- /path/to/new timestamp -*************** -*** 1,3 **** ---- 1,9 ---- -+ This is an important -+ notice! It should -+ therefore be located at -+ the beginning of this -+ document! - -! compress the size of the -! changes. - - It is important to spell -{% endhighlight %} -
    -
    -
    - -
    - {% header "h2", "Line numbers" %} -

    Add .linenums to include line numbers on a code block.

    - {% header "h3", "Default" %} -
    -{% highlight html %} -
    -    …
    -
    -{% endhighlight %} -
    -{% highlight html %} -linenums
    - -
    - -
    -
    -{% endhighlight %} -
    -
    - - {% header "h3", "Offset" %} -

    Append a number preceeded by : to .linenums to offset the start of the line numbers.

    -
    -{% highlight html %} -
    -    …
    -
    -{% endhighlight %} -
    -{% highlight json %} -linenums:23[ - { - "title": "apples", - "count": [12000, 20000], - "description": {"text": "...", "sensitive": false} - }, - { - "title": "oranges", - "count": [17500, null], - "description": {"text": "...", "sensitive": false} - } -] -{% endhighlight %} -
    -
    -
    diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/editor.html b/packages/stacks-docs-next/src/docs/legacy/product/components/editor.html deleted file mode 100644 index 4731236f0f..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/editor.html +++ /dev/null @@ -1,113 +0,0 @@ ---- -layout: page -title: Editor -js: true -figma: https://svelte.stackoverflow.design/figma/editor -description: The Stacks editor adds “what you see is what you get” and Markdown capabilities to textareas. It is available as a separate Editor repository, but requires Stacks’ CSS for styling. -tags: components ---- -
    - {% header "h2", "Installation" %} -

    Because of its size, the Stacks editor is bundled independently of Stacks. You can install it a few ways:

    - - {% header "h3", "NPM" %} -

    The Stacks Editor is available as an NPM package. To make it available in your node modules, npm install @stackoverflow/stacks-editor

    - - {% header "h3", "Import via Modules or CommonJS" %} -
    -{% highlight js %} -import { StacksEditor } from "@stackoverflow/stacks-editor"; -// Don’t forget to include the styles as well -import "@stackoverflow/stacks-editor/styles.css"; - -new StacksEditor( - document.querySelector("#editor-container"), - "*Your* **markdown** here" -); -{% endhighlight %} -
    - - {% header "h3", "Import via script tag" %} -
    -{% highlight html %} - - - -
    - - - - - - - - - -{% endhighlight %} -
    -
    - - - -
    - {% header "h2", "Examples" %} - {% header "h3", "Empty" %} -
    -{% highlight html %} -
    - - -{% endhighlight %} -
    -
    -
    -
    - - {% header "h3", "Textarea content with tables enabled" %} -
    -{% highlight html %} - -
    - - -{% endhighlight %} -
    - -
    -
    -
    -
    - - diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/empty-states.html b/packages/stacks-docs-next/src/docs/legacy/product/components/empty-states.html deleted file mode 100644 index 0ff8233f72..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/empty-states.html +++ /dev/null @@ -1,95 +0,0 @@ ---- -layout: page -title: Empty states -description: Empty states are used when there is no data to show. Ideally they orient the user by providing feedback based on the the user’s last interaction or communicate the benefits of a feature. When appropriate, they should explain the next steps the user should take and provide guidance with a clear call-to-action. -tags: components ---- -
    - {% header "h2", "No data" %} -

    - Used when a user hasn’t interacted with a feature yet. -

    - {% header "h3", "No data actionable" %} -

    - If the user can take an action to fix the situation, it's best to draw attention to it, explain next steps, and provide a call-to-action. -

    -
    -{% highlight html %} -
    - @Svg.Spot.EmptyXL.With("mb24") -

    Why is this blank? Explain it.

    - Call to action -
    -{% endhighlight %} -
    -
    - {% spot, "EmptyXL", "mb24" %} -

    We haven’t received any data yet. Have you connected your Stack Overflow account?

    - Connect my account -
    -
    -
    - {% header "h3", "No data non-actionable" %} -

    - If the user can’t take an action to fix the situation, it’s more appropriate to set expectations. -

    -
    -{% highlight html %} -
    - @Svg.Spot.EmptyXL.With("mb24") -

    Why is this blank? Explain it.

    -
    -{% endhighlight %} -
    -
    - {% spot, "EmptyXL", "mb24" %} -

    There’s no data associated with your account yet. Please check back tomorrow.

    -
    -
    -
    -
    -
    - {% header "h2", "No results" %} -

    - When someone performs an action that returns nothing, a blank state can explain what happened and help get someone back on track. -

    - {% header "h3", "No results actionable" %} -

    - If the user can take an action to fix the situation, it’s best to draw attention to it and provide a call-to-action. -

    -
    -{% highlight html %} -
    - @Svg.Spot.EmptyXL.With("mb24") -

    Why is this blank? Explain it.

    - Call to action -
    -{% endhighlight %} -
    -
    - {% spot, "EmptyXL", "mb24" %} -

    We couldn’t find any tags matching stacks-1-0-0. It might not exist yet. Would you like to create it?

    - Create this tag -
    -
    -
    - - {% header "h3", "No results non-actionable" %} -

    - If the user can’t take an action to fix the situation, it’s more appropriate to set expectations. -

    -
    -{% highlight html %} -
    - @Svg.Spot.EmptyXL.With("mb24") -

    Why is this blank? Explain it.

    -
    -{% endhighlight %} -
    -
    - {% spot, "EmptyXL", "mb24" %} -

    We couldn’t match users for Namey McUser. Try refining your search or trying something more general.

    -
    -
    -
    -
    diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/expandable.html b/packages/stacks-docs-next/src/docs/legacy/product/components/expandable.html deleted file mode 100644 index de81d33f1d..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/expandable.html +++ /dev/null @@ -1,175 +0,0 @@ ---- -layout: page -title: Expandable -js: true -description: An expandable, sometimes called an accordion, is an element that can be hidden / revealed with a sliding transition. -tags: components ---- -
    - {% header "h2", "Examples" %} - {% header "h3", "Basic" %} -

    From a purely visual standpoint, all you need is a container of class s-expandable and a child of class s-expandable--content. Toggle the state class is-expanded on the container to collapse / expand the content. Care must be taken to keep the collapsing functionality accessible.

    - - -
    -{% highlight html %} -
    - -
    -
    - … -
    -
    -
    -{% endhighlight %} -
    -
    - -
    -
    -

    Lorem ipsum dolor sit amet, ex iudicabit necessitatibus usu, cetero laboramus concludaturque mel no, facilisis posidonium cu cum. Pro ex senserit dissentiunt, imperdiet intellegam at sed, ex pri dicit eruditi convenire. Est harum movet gubergren ei, errem dictas evertitur ea sit, at mei oratio eligendi. Ad vis legere possit, vis ne ipsum democritum appellantur. Nullam ancillae iudicabit his ad.

    -
    -
    -

    Accusata reprimique interesset in sea, est graece dictas scriptorem ea. Consul facete mediocritatem quo et. Idque hendrerit theophrastus in vim, eum possit feugiat fastidii id. Idque invenire at quo, accusata salutandi sadipscing et qui. Eos doming adipiscing ea, eu pri debitis indoctum dissentiet. At libris labores adolescens eos, ex nec nobis aeterno.

    -
    -
    -
    - - {% header "h3", "Multiple" %} -

    It’s also possible to control the state of multiple elements from a single s-expandable-control by listing all the ids for the controlled elements in the aria-controls attribute.

    - -
    -{% highlight html %} -
    - -
    -
    - … -
    -
    - … -
    -
    - … -
    -
    -
    -{% endhighlight %} -
    -
    - -
    -
    -

    Lorem ipsum dolor sit amet, ex iudicabit necessitatibus usu, cetero laboramus concludaturque mel no, facilisis posidonium cu cum. Pro ex senserit dissentiunt, imperdiet intellegam at sed, ex pri dicit eruditi convenire. Est harum movet gubergren ei, errem dictas evertitur ea sit, at mei oratio eligendi. Ad vis legere possit, vis ne ipsum democritum appellantur. Nullam ancillae iudicabit his ad.

    -
    -
    -

    Accusata reprimique interesset in sea, est graece dictas scriptorem ea. Consul facete mediocritatem quo et. Idque hendrerit theophrastus in vim, eum possit feugiat fastidii id. Idque invenire at quo, accusata salutandi sadipscing et qui. Eos doming adipiscing ea, eu pri debitis indoctum dissentiet. At libris labores adolescens eos, ex nec nobis aeterno.

    -
    -
    -

    Aenean aliquet vitae erat sed luctus. Nullam elementum orci id leo lacinia fringilla. Quisque rutrum mauris at mi rhoncus, vel vulputate erat pellentesque. Sed blandit rhoncus sem at pulvinar. Curabitur maximus, metus a facilisis efficitur, ipsum eros faucibus quam, nec mollis lectus nunc ut diam.

    -
    -
    -
    -
    -
    -
    -
    - {% header "h2", "JavaScript" %} - -

    In the usual case in which you have a button or other clickable element that toggles the expanded state, you can use the built-in s-expandable-control functionality. See the JavaScript introduction for general information on JS in Stacks.

    - -
      -
    1. Give all desired s-expandable elements an id attribute.
    2. -
    3. Give your button an aria-controls attribute whose value is a space-separated list of all IDs in 1.
    4. -
    5. Give your button an aria-expanded attribute whose value is true or false depending on the initial state of your expandables.
    6. -
    7. Give your button a data-controller="s-expandable-control" attribute.
    8. -
    9. If your button is an element that is not focusable by default, be sure to make it keyboard-reachable with tabindex="0"
    10. -
    11. Give your button an aria-label attribute that makes it clear that this is a expanding/collapsing control, unless this is already clear from its text content
    12. -
    - -

    A common need is for one or more CSS classes to be applied to the expandable control whenever the state is toggled, e.g. to indicate a “selected” state. To achieve this, you can add the data-s-expandable-control-toggle-class attribute. The value should be a space-separated list of CSS classes. These classes will be added to the control whenever it expands the expandable, and removed whenever it collapses it.

    - -

    See the previous section for an example of all of this.

    - -

    If you are writing custom CSS to indicate the selected state of the expandable control, consider targetting [aria-controls="true"] instead of creating a new class.

    - -

    If your expandable control is a checkbox or radio button, then the visibility of the expandable will be synchronized with the radio / checkbox state:

    - -
    -{% highlight html %} -… -
    - -
    -
    - -
    -

    @Svg.FaceSmile

    -
    -
    -… -{% endhighlight %} -
    -
    - What is your mood? -
    -
    -
    - -
    -
    - -
    -

    {% icon "FaceSmile", "", "64" %}

    -
    -
    -
    -
    -
    -
    -
    - -
    -
    - -
    -

    {% icon "FaceSad", "", "64" %}

    -
    -
    -
    -
    -
    -
    -
    - - {% header "h3", "Events" %} -

    When an s-expandable-control collapses or expands an element, it will fire an event of type s-expandable-control:hide or s-expandable-control:show, respectively. This event is fired synchronously. The event’s target element is the s-expandable-control element, not the expandable itself.

    -
    diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/inputs.html b/packages/stacks-docs-next/src/docs/legacy/product/components/inputs.html deleted file mode 100644 index 795a7719cb..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/inputs.html +++ /dev/null @@ -1,452 +0,0 @@ ---- -layout: page -title: Inputs -svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-textinput--docs -figma: https://www.figma.com/design/do4Ug0Yws8xCfRjHe9cJfZ/Project-SHINE---Product-UI?node-id=713-24991&p=f&m=dev -description: Input elements are used to gather information from users. -tags: components ---- -
    - {% header "h2", "Base style" %} -

    Inputs are normally paired with a label, but there are times when they can be used without a label. Placeholder text should primarily be used as a content prompt and only provided when needed.

    - -
    -{% highlight html %} - -
    - -

    This will be shown only to employers and other Team members.

    - -
    - - -
    - -
    - - {% icon "Lock", "s-input-icon fc-black-400" %} -
    -
    - - -
    - -
    - - {% icon "Lock", "s-input-icon" %} -
    -
    -{% endhighlight %} -
    -
    -
    - -

    This will be shown only to employers and other Team members.

    - -
    -
    - -
    - - {% icon "Lock", "s-input-icon fc-black-400" %} -
    -
    -
    - -
    - - {% icon "Lock", "s-input-icon" %} -
    -
    -
    -
    -
    -
    - -
    - {% header "h2", "Accessibility" %} -

    The best accessibility is semantic HTML. Most screen readers understand how to parse inputs if they're correctly formatted. When it comes to inputs, there are a few things to keep in mind:

    -
      -
    • All inputs should have an id attribute.
    • -
    • Be sure to associate the input’s label by using the for attribute. The value here is the input’s id.
    • -
    • If you have a group of related inputs, use the fieldset and legend to group them together.
    • -
    -

    For more information, please read Gov.UK's article, "Using the fieldset and legend elements".

    - - {% header "h3", "Required input fields" %} -

    Labels or instructions must be provided when content requires user input. For any input field within a form that is required for successful data submission, provide the asterisk * as a symbol and a legend advising the meaning of the symbol before the first use.

    -

    Stacks includes a special .s-required-symbol class to ensure the symbol (asterisk) is clearly visible.

    - - - - - - - - - - - - - - - - -
    ClassAppliesDefinition
    .s-required-symbolabbr element enclosing the asteriskUsed to style the asterisk indicating that a specific field is required.
    -{% highlight html %} -* -{% endhighlight %} -

    Required symbols are not necessary for areas where only a single input field is seen on the page (ex: sign up modals). For more information, see WCAG Technique H90.

    - - {% header "h3", "Required input fields example" %} -
    -{% highlight html %} -
    -

    - Ask a question -

    -

    Required fields*

    -
    -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    -{% endhighlight %} -
    -
    -

    - Ask a question -

    -

    Required fields*

    -
    -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    -
    -
    -
    - -
    - {% header "h2", "Validation states" %} -

    Validation states provides the user feedback based on their interaction (or lack of interaction) with an input. These styles are applied by applying the appropriate class to the wrapping parent container.

    - - {% header "h3", "Validation classes" %} -
    - - - - - - - - - - {% for item in inputs.input %} - {% assign state = item.validation %} - {% for class in state %} - - - - - - {% endfor %} - {% endfor %} - -
    ClassAppliesDefinition
    {{ class.class }}{{ class.applies }}{{ class.description }}
    -
    - - {% header "h3", "Validation guidance" %} -

    - In most cases, validation states shouldn’t be shown until after the user has submitted the form. There are certain exceptions where it can be appropriate to show a validation state without form submission—after a sufficient delay. For example, validating the existence of a username can occur after the user has stopped typing, or when they’ve deselected the input. -

    -

    - Once the user is presented validation states, they can be cleared as soon as the user interacts with the form field. For example, the error state for an incorrect password should be cleared as soon as the user focuses the input to re-enter their password. -

    -

    - Similarly to using for with labels, validation messages below inputs should be associated with their respective fields using the aria-describedby attribute for accessible behavior. -

    - - {% header "h3", "Validation examples" %} - {% header "h4", "Warning" %} -
    -{% highlight html %} -
    - -
    - - @Svg.Alert.With("s-input-icon") -
    -

    Caps lock is on! Having trouble entering your username?

    -
    -{% endhighlight %} -
    -
    -
    - -
    - - - {% icon "Alert", "s-input-icon" %} -
    -

    Caps lock is on! Having trouble entering your username?

    -
    -
    -
    -
    - - {% header "h4", "Error" %} - {% tip, "warning", "mb24" %} -

    In addition to using the "error" state for a field, be sure to use the aria-invalid attribute to indicate to assistive technology that respective fields have failed validation.

    - {% endtip %} - -
    -{% highlight html %} -
    - -
    - - @Svg.AlertCircle.With("s-input-icon") -
    -

    You must provide a username. Forgot your username?

    -
    -{% endhighlight %} -
    -
    -
    - -
    - - - {% icon "AlertCircle", "s-input-icon" %} -
    -

    You must provide a username. Forgot your username?

    -
    -
    -
    -
    - - {% header "h4", "Success" %} -
    -{% highlight html %} -
    - -
    - - @Svg.Checkmark.With("s-input-icon") -
    -

    That name is available! Why do we require a username?

    -
    -{% endhighlight %} -
    -
    -
    - -
    - - {% icon "Check", "s-input-icon" %} -
    -

    That name is available! Why do we require a username?

    -
    -
    -
    -
    -
    - -
    - {% header "h2", "Icons" %} - {% header "h3", "Search" %} -

    Stacks provides helper classes to consistently style an input used for search. First, wrap your search input in an element with relative positioning. Then, and add s-input__search to the input itself. Finally, be sure to add s-input-icon and s-input-icon__search to the search icon.

    - -
    -{% highlight html %} -
    - - - @Svg.Search.With("s-input-icon s-input-icon__search") -
    -{% endhighlight %} -
    -
    - - - {% icon "Search", "s-input-icon s-input-icon__search" %} -
    -
    -
    - - {% header "h3", "Credit Card" %} -
    -{% highlight html %} -
    - - - @Svg.CreditCard.With("s-input-icon s-input-icon__creditcard") -
    -{% endhighlight %} -
    -
    - - - {% icon "CreditCard", "s-input-icon s-input-icon__creditcard" %} -
    -
    -
    -
    - -
    - {% header "h2", "Sizes" %} -
    - - - - - - - - - - - {% for item in inputs.input %} - {% assign size = item.sizes %} - {% for item in size %} - - - - - - - {% endfor %} - {% endfor %} - -
    NameSizeClassExample
    {{ item.name }}{{ item.size }}{% if item.class == "N/A" %}{{ item.class }}{% else %}.{{ item.class }}{% endif %}
    -
    -
    - -
    - {% header "h2", "Input fills" %} -

    Input fills are used to visually connect input text boxes with related content.

    - - {% header "h3", "Prepended inputs" %} -
    -{% highlight html %} -
    - -
    -
    https://
    -
    - -
    -
    -
    -{% endhighlight %} -
    -
    - -
    -
    https://
    -
    - -
    -
    -
    -
    -
    - - {% header "h3", "Appended inputs" %} -
    -{% highlight html %} -
    - -
    -
    -
    - - -
    -
    -
    - -
    -
    -
    -{% endhighlight %} -
    -
    - -
    -
    -
    - - -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    - - {% header "h2", "Nested inputs" %} -

    An input can be nested within a container that has the .s-input class applied to display styled elements as if they're within an input.

    - -
    -{% highlight html %} -
    - -
    -
    - - svelte - - -
    - -
    -
    -{% endhighlight %} -
    - -
    -
    - - svelte - - -
    - -
    -
    -
    -
    diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/labels.html b/packages/stacks-docs-next/src/docs/legacy/product/components/labels.html deleted file mode 100644 index c50ec11454..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/labels.html +++ /dev/null @@ -1,178 +0,0 @@ ---- -layout: page -title: Labels -figma: https://svelte.stackoverflow.design/figma/labels -description: Labels are used to describe inputs, select menus, textareas, radio buttons, and checkboxes. -tags: components ---- -
    -

    Labels inform users what information is being asked of them. They should be written in sentence case.

    - {% tip %} - For usability reasons, if a label is connected with an input, the for="[id]" attribute should be filled in. This attribute references the input’s id="[value]" value. This makes clicking the label automatically focus the proper input. - {% endtip %} -
    -
    - {% header "h2", "Base style" %} -
    -{% highlight html %} -
    - -
    - -
    -
    -{% endhighlight %} -
    -
    - -
    - -
    -
    -
    -
    -
    - -
    - {% header "h2", "Sizes" %} -
    - - - - - - - - - - - {% for item in inputs.label %} - {% assign size = item.sizes %} - {% for item in size %} - - - - - - - {% endfor %} - {% endfor %} - -
    NameSizeClassExample
    {{ item.name }}{{ item.size }}{% if item.class == "N/A" %}{{ item.class }}{% else %}.{{ item.class }}{% endif %}
    -
    -
    - -
    - {% header "h2", "Description copy" %} -

    When a label or input needs further explantation, text should be placed directly underneath it.

    - -
    -{% highlight html %} -
    - -

    Clear question titles are more likely to get answered.

    -
    - -
    -
    -{% endhighlight %} -
    -
    - -

    Clear question titles are more likely to get answered.

    -
    - -
    -
    -
    -
    -
    - -
    - {% header "h2", "Status" %} -

    When you need to flag labels as required or optional, use the following flags. Use the full word “Required” or “Optional” for these flags instead of using asterisks. If a majority of a form’s inputs are required, use the asterisk symbol to indicate which fields are required and include a legend. See Input Accessibility for more details.

    - - {% header "h3", "Optional" %} -
    -{% highlight html %} -
    - -
    - -
    -
    -{% endhighlight %} -
    -
    - -
    - -
    -
    -
    -
    - - {% header "h3", "Required" %} -
    -{% highlight html %} -
    - -
    - -
    -
    -{% endhighlight %} -
    -
    - -
    - -
    -
    -
    -
    - - {% header "h3", "New" %} -
    -{% highlight html %} -
    - -
    - -
    -
    -{% endhighlight %} -
    -
    - -
    - -
    -
    -
    -
    - - {% header "h3", "Beta" %} -
    -{% highlight html %} -
    - -
    - -
    -
    -{% endhighlight %} -
    -
    - -
    - -
    -
    -
    -
    -
    diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/link-previews.html b/packages/stacks-docs-next/src/docs/legacy/product/components/link-previews.html deleted file mode 100644 index c2717f633f..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/link-previews.html +++ /dev/null @@ -1,235 +0,0 @@ ---- -layout: page -title: Link previews -description: Link previews add rich previews to links included in questions and answers on Stack Overflow. They’re also known as oneboxes or link unfurls. -tags: components ---- -
    - {% header "h2", "Classes" %} -
    - - - - - - - - - - {% for item in link-previews.classes %} - - - - - - {% endfor %} - -
    ClassParentDescription
    {{ item.class }}{{ item.parent }}{{ item.description }}
    -
    -
    -
    - {% header "h2", "Examples" %} -

    Link previews automatically appear when you pasting a link into a post, providing a glimpse of what’s been linked to. This approach has been popularized by Slack, Twitter, Facebook, etc. Link previews should be tailored to fit the content received from each third party. It might be appropriate to use atomic utility classes for further customization, but Stacks provides a few reusable patterns:

    - {% header "h3", "Base style" %} -

    Use for links whose expected body is rich text or markdown like Jira issues or Slack messages. Wherever possible, it’s best practice to support basic markdown formatting (bold, italics, line breaks, lists, etc.)

    -
    -{% highlight html %} - -{% endhighlight %} -
    - -
    -
    - - {% header "h3", "Code blocks" %} -

    Use for links whose expected body is code like code files or GitHub Gists. In these scenarios, replace s-link-preview--body class with s-link-preview--code.

    -

    Add a s-code-block class to the <pre> tag if you’d like to apply highlight.js’s syntax highlighting on Stack Exchange sites with this option enabled.

    -
    -{% highlight html %} - -{% endhighlight %} -
    - -
    -
    - - {% header "h3", "Code blocks with line numbers" %} -

    You can further configure highlight.js’s syntax highlighting to include line numbers by adding the class linenums to the prettified <pre> tag containing the code. See also Code blocks.

    -
    - - - - - - - - - - - - - - - - - -
    ClassDescription
    linenumsCount starts at line 1
    linenums:<n>Count starts at line <n>
    -
    -
    -{% highlight html %} - -{% endhighlight %} -
    - -
    -
    -
    diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/links.html b/packages/stacks-docs-next/src/docs/legacy/product/components/links.html deleted file mode 100644 index 5b264190fd..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/links.html +++ /dev/null @@ -1,242 +0,0 @@ ---- -layout: page -title: Links -svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-link--docs -description: Links are lightly styled via the a element by default. In addition, we provide .s-link and its variations. In rare situations, .s-link can be applied to n button while maintaining the look of an anchor. -tags: components ---- -
    - {% header "h2", "Single link" %} - {% header "h3", "Single link classes" %} -
    - - - - - - - - - - {% for item in links.single-links %} - - - - - - {% endfor %} - -
    ClassApplied toDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    -
    -
    -
    - {% header "h3", "Single link examples" %} -
    -{% highlight html %} -Default -Grayscale -Muted -Danger -Inherit -Underlined - -Visited -Links -{% endhighlight %} -
    -
    - Default - Grayscale - Muted - Danger - Inherit - Underlined - - Visited - Links -
    -
    -
    - - {% header "h3", "Accessibility" %} - -

    Any link with adjacent static text cannot use color alone to differentiate it as a link. If a link is next to static text and the only visual indication that it’s a link is the color of the text (often blue-400), it will require an underline in addition to the color. Reference WCAG SC 1.4.1 for more details.

    - -
    - -
    - {% header "h2", "Descendent anchors" %} - {% header "h3", "Descendent anchor classes" %} -
    - - - - - - - - - - {% for item in links.descendent-anchors %} - - - - - - {% endfor %} - -
    ClassApplied toDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    -
    - {% header "h3", "Descendent anchor examples" %} -

    Sometimes you need to give all <a> elements inside a container or component the same color, even - when it‘s impractical or even impossible to give each anchor element an s-link class (e.g. because the markup is generated from Markdown).

    -

    In this case, you can add the s-anchors class together with one of the modifiers - s-anchors__default, s-anchors__grayscale, s-anchors__muted, - s-anchors__danger, or s-anchors__inherit to the container. -

    - -
    -{% highlight html %} -
    -
    -
    -
    -
    -
    -{% endhighlight %} -
    - {% for item in links.descendent-anchors %} - {% if item.name != "base" %} -
    -

    There is a {{ item.name }} link here, , and another one.

    -
    - {% endif %} - {% endfor %} -
    -
    - -

    One additional level of nesting is supported, but even that should be exceedingly rare. More than that is not supported.

    - -
    -{% highlight html %} -
    -

    - All links in this outer box - are dangerous. -

    -
    -

    - But all links in this inner box - have the default link color. -

    -
    -
    -{% endhighlight %} -
    -
    -

    - All links in this outer box - are dangerous. -

    -
    -

    - But all links in this inner box - have the default link color. -

    -
    -
    -
    -
    - -

    An explicit s-link on an anchor overrides any s-anchors setting:

    - -
    -{% highlight html %} -
    - All links in this box are dangerous, - except for this one which uses the default color, and - this muted link. -
    -{% endhighlight %} -
    -
    - All links in this box are dangerous, - except for this one which uses the default color, and - this muted link. -
    -
    -
    -
    - -
    - {% header "h2", "Block link" %} - {% header "h3", "Block link classes" %} -
    - - - - - - - - - - {% for item in links.block-links %} - - - - - - {% endfor %} - -
    ClassApplied toDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    -
    -
    -
    - {% header "h3", "Block link examples" %} -
    -{% highlight html %} - - -{% endhighlight %} - -
    -
    -
    - {% header "h3", "Block link right/left examples" %} -
    -{% highlight html %} - - -{% endhighlight %} - -
    -
    -
    - {% header "h3", "Block link danger examples" %} - diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/menus.html b/packages/stacks-docs-next/src/docs/legacy/product/components/menus.html deleted file mode 100644 index a635d68894..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/menus.html +++ /dev/null @@ -1,423 +0,0 @@ ---- -layout: page -title: Menus -description: A menu offers a contextual list of actions or functions. -svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-menu--docs -figma: https://www.figma.com/design/do4Ug0Yws8xCfRjHe9cJfZ/Project-SHINE---Product-UI?node-id=610-18810 -tags: components ---- -
    - {% header "h2", "Classes" %} -
    - - - - - - - - - - {% for item in menu.classes %} - - - - - - {% endfor %} - -
    ClassParentDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    -
    -
    -
    - {% header "h2", "Examples" %} -

    - A menu displays a list of choices temporarily, and usually represent tasks or actions. Don’t confuse menus for navigation. -

    - - {% header "h3", "Basic" %} -

    - At its most basic, a menu is a simple styled list of contextual actions. Because they’re contextual, it’s strongly recommended that a menu is contained within a popover or a card. When placed in various containers, you’ll need to either account for the padding on the container, or use negative margins on the menu component itself. -

    -
    -{% highlight html %} -
    - -
    - -
    - -
    - - -{% endhighlight %} -
    -
    -
    -
    Within a popover
    -
    - -
    -
    -
    -
    Within a card
    -
    - -
    -
    -
    -
    No container
    - -
    -
    -
    -
    - - {% header "h3", "Titles and Dividers" %} -

    - You can split up your menu by using either titles, dividers, or some combination of the two. Titles help group similar conceptual actions—in this example, we’ve grouped all sharing options. We’ve also split our destructive actions into their own section using a divider. -

    -
    -{% highlight html %} -
    - -
    -{% endhighlight %} -
    -
    - -
    -
    -
    - - {% header "h3", "Icons" %} -

    - Icons can be added to menu items to help visually distinguish actions. Include the s-menu--icon class on the icon to ensure proper spacing and alignment. -

    - - - {% header "h3", "Selected states" %} -

    - Our menus also offer selected states. -

    -
    -{% highlight html %} - - -
    - -
    - -
    - … -
    - -
    - -
    - -
    - … -
    -{% endhighlight %} -
    -
    -
    -
    Using .is-selected
    -
    - -
    -
    -
    -
    Using .s-radio
    -
    -
    - Select one -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    Using .s-checkbox
    -
    -
    - Select multiple -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    - - {% header "h3", "Radio groups" %} -

    - In the case of user management, it’s appropriate to include radio options. In this example, we’re setting a user’s role. While our examples up to this point have all been simple unordered lists, the s-menu component works on any markup including fieldset. -

    -
    -{% highlight html %} - -{% endhighlight %} -
    -
    - -
    -
    -
    -
    diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/modals.html b/packages/stacks-docs-next/src/docs/legacy/product/components/modals.html deleted file mode 100644 index 4824b8adfe..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/modals.html +++ /dev/null @@ -1,422 +0,0 @@ ---- -layout: page -title: Modals -svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-modal--docs -js: true -figma: https://www.figma.com/design/do4Ug0Yws8xCfRjHe9cJfZ/Project-SHINE---Product-UI?node-id=610-18811&p=f&t=c9NSyJWdASb80eVC-0 -description: Modals are dialog overlays that prevent the user from interacting with the rest of the website until an action is taken or the dialog is dismissed. Modals are purposefully disruptive and should be used thoughtfully and sparingly. -tags: components ---- -
    - {% header "h2", "Classes" %} -
    - - - - - - - - - - {% for item in modals.classes %} - - - - - - {% endfor %} - -
    ClassApplies toDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    -
    - - {% header "h2", "JavaScript" %} - {% header "h3", "Attributes" %} -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    AttributeApplied toDescription
    data-controller="s-modal"Controller elementWires up the element to the modal controller. This may be a .s-modal element or a wrapper element.
    data-s-modal-target="modal".s-modal elementWires up the element that is to be shown/hidden
    data-s-modal-target="initialFocus"Any child focusable elementOptional Designates which element to focus on modal show. If absent, defaults to the first focusable element within the modal.
    data-action="s-modal#toggle"Toggling elementWires up the element to toggle the visibility of a modal
    data-s-modal-return-element="[css selector]"Controller elementOptional Designates the element to return focus to when the modal is closed. If left unset, focus is not altered on close.
    data-s-modal-remove-when-hidden="true"Controller elementOptional Removes the modal from the DOM entirely when it is hidden
    -
    - {% header "h3", "Events" %} -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    EventElementDescription
    s-modal:showModal targetDefault preventable Fires immediately before showing the modal. Calling .preventDefault() cancels the display of the modal.
    s-modal:shownModal targetFires after the modal has been visually shown
    s-modal:hideModal targetDefault preventable Fires immediately before hiding the modal. Calling .preventDefault() cancels the removal of the modal.
    s-modal:hiddenModal targetFires after the modal has been visually hidden
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - -
    event.detailApplicable eventsDescription
    dispatchers-modal:*Contains the Element that initiated the event. For instance, the button clicked to show, the element clicked outside the modal that caused it to hide, etc.
    returnElements-modal:show, s-modal:hideContains the Element to return focus to on hide. If a value is set to this property inside an event listener, it will be updated on the controller as well.
    -
    - {% header "h3", "Helpers" %} -
    - - - - - - - - - - - - - - - - - - - - -
    FunctionParametersDescription
    Stacks.showModal - element: the element the data-controller="s-modal" attribute is on

    -
    Helper to manually show an s-modal element via external JS
    Stacks.hideModal - element: the element the data-controller="s-modal" attribute is on

    -
    Helper to manually hide an s-modal element via external JS
    -
    - - {% header "h2", "Accessibility" %} -

    - Modals are designed with accessibility in mind by default. When a modal is open, navigation with the keyboard will be constrained to only those elements within the modal. - To ensure maximum compatibility, all a tags must have href attributes and any default focusable items you don’t want focusable must have their tabindex set to -1. -

    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ItemApplied toDescription
    aria-describedby="[id]".s-modalSupply the modal’s summary copy id. Assistive technologies (such as screen readers) use this to attribute to associate static text with a widget, element groups, headings, definitions, etc. (Source)
    aria-hidden="[state]".s-modalInforms assistive technologies (such as screen readers) if they should ignore the element. This should not be confused with the HTML5 hidden attribute which tells the browser to not display an element. (Source)
    aria-label="[text]".s-modal--closeLabels the element for assistive technologies (such as screen readers). (Source)
    aria-labelledby="[id]".s-modalSupply the modal’s title id here. Assistive technologies (such as screen readers) use this to attribute to catalog the document objects correctly. (Source)
    role="dialog".s-modalIdentifies dialog elements for assistive technologies (Source)
    role="document".s-modal--dialogHelps assistive technologies to switch their reading mode from the larger document to a focused dialog window. (Source)
    -
    -
    - - - - - - - - -
    - {% header "h2", "Examples" %} -
    -
    - - -
    -
    -

    You can wire up a modal along with the corresponding button by wrapping both in a s-modal controller and attaching the corresponding data-* attributes. Make sure to set data-s-modal-return-element if you want your button to refocus on close.

    -
    -{% highlight html %} -
    - - -
    -{% endhighlight %} -
    - -
    -
    -

    Alternatively, you can also use the built in helper to display a modal straight from your JS file. This is useful for the times when your modal markup can’t live next to your button or if it is generated dynamically (e.g. from an AJAX call).

    -
    -{% highlight html %} - - -{% endhighlight %} -
    - -
    -{% highlight javascript %} -document.querySelector(".js-modal-toggle").addEventListener("click", function(e) { - Stacks.showModal(document.querySelector("#modal-base")); -}); -{% endhighlight %} -
    -
    - -
    - {% header "h2", "Danger state" %} -

    Not every modal is sunshine and rainbows. Sometimes there are potentially drastic things that could happen by hitting a confirm button in a modal—such as deleting an account. In moments like this, add the .s-modal__danger class to .s-modal. Additionally, you should switch the buttons to .s-btn__danger.s-btn__filled, since the main call to action will be destructive.

    -
    -{% highlight html %} - -{% endhighlight %} -
    - -
    -
    -
    - -
    - {% header "h2", "Celebratory" %} -

    Sometimes it’s appropriate to confirm a user’s action with some confetti. You can combine our confetti background utility with some extra spacing by adding the s-modal__celebration modifier.

    -
    -{% highlight html %} - -{% endhighlight %} -
    - -
    -
    -
    - -
    - {% header "h2", "Sizes" %} -

    Most modal dialogs look good by default, but may need some combination of .ws[x] or .wmx[x] classes applied to .s-modal--dialog. Additionally, the following class is available for modals:

    -
    - - - - - - - - - - - - - - - - - -
    ClassValuePixels (13px base)Pixels (15px base)
    .s-modal__full100% - 48pxN/AN/A
    -
    -
    - - - diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/navigation.html b/packages/stacks-docs-next/src/docs/legacy/product/components/navigation.html deleted file mode 100644 index 2096fa8704..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/navigation.html +++ /dev/null @@ -1,933 +0,0 @@ ---- -layout: page -title: Navigation -js: true -figma: https://www.figma.com/design/do4Ug0Yws8xCfRjHe9cJfZ/Project-SHINE---Product-UI?node-id=610-18812&t=5ggsDIb9OENEwDl0-1 -svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-navigation--docs -description: Our navigation component is a collection of buttons that respond gracefully to various window sizes and parent containers. -tags: components ---- -
    - {% header "h2", "Classes" %} -
    - - - - - - - - - - {% for item in navigation.classes %} - - - - - - {% endfor %} - -
    ClassApplies toDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    -
    - - {% for item in navigation.navigation-attributes %} - {% header "h3", item.title %} - -

    {{item.description}}

    - -
    - - - - - - - - - - {% for attribute in item.attributes %} - - - - - - {% endfor %} - -
    ItemApplied toDescription
    {{ attribute.attribute }}{{ attribute.applies }}{{ attribute.description }}
    -
    - {% endfor %} -
    -
    - {% header "h2", "Horizontal" %} -

    Care should be taken to only include at most one primary and one secondary navigation per page. Using multiple navigations with the same style can cause user confusion.

    -

    Forcing a navigation to scroll is an established pattern on mobile devices, so it may be appropriate to use it in that context. Wrapping tends to make more sense on larger screens, where the user isn’t forced to scroll passed a ton of navigation chrome.

    - - {% header "h3", "Horizontal default" %} -

    Use the default size for primary page-level navigation, typically placed near the top of the page.

    -
    -{% highlight html %} - -{% endhighlight %} -
    -

    Full width

    - - -

    Wrapped

    - -
    -
    - - {% header "h3", "Icons" %} -

    Use the icon variant for a prominent, secondary horizontal navigation bar that directs users to main page sections. Limit use to one per page and do not use it for in-page filtering. Icon styles should change with the state of the item (ex: selected items use a fill icon)

    - - - - {% header "h3", "Scrolling" %} -
    -{% highlight html %} - -{% endhighlight %} - -
    - - {% header "h3", "Dropdown" %} -
    -{% highlight html %} - -{% endhighlight %} -
    - -
    -
    - - {% header "h3", "Small" %} -

    Use the small variant for on-page filtering in space-constrained areas, such as controlling small lists. Avoid using icons on the small variant.

    -
    -{% highlight html %} - -{% endhighlight %} - -
    -
    - -
    - {% header "h2", "Vertical" %} -

    Stacks also provides a vertical variation with support for section headers.

    - - {% header "h3", "Vertical default" %} -
    -{% highlight html %} - -{% endhighlight %} - -
    - - {% header "h3", "Vertical Icons" %} -

    Vertical navigation items with icons have a larger padding.

    - - - - {% header "h3", "Avatar" %} - -
    - {% highlight html %} - - {% endhighlight %} - -
    - {% header "h3", "Titles" %} - -
    - -{% header "h2", "Buttons" %} -

    This component can be used for in-page navigation patterns, using button elements in place of link. When doing so, it may be appropriate to annotate elements with role="tablist" to indicate the dynamic behavior.

    - -
    -{% highlight html %} - -{% endhighlight %} -
    - -
    -
    - -
    - {% header "h2", "Interactive tabs" %} - -

    Stacks provides a Stimulus controller for interactive tab-style navigation within a single document.

    - - {% header "h3", "Attributes" %} -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    AttributeApplied toDescription
    data-controller="s-navigation-tablist".s-navigationWires up the element to the tooltip controller.
    role="tablist".s-navigationIndicates to accessibility tools that the navigation element is a tab list.
    role="tab".s-navigation--itemIndicates to accessibility tools that the navigation item is a tab. Used by the controller to automatically connect mouse and keyboard events.
    class="s-navigation--item is-selected"Initially selected .s-navigation--item elementsProvides visual indication that the tab is selected.
    aria-selected="{true|false}".s-navigation--itemIndicates to accessibility tools which tab is selected. Used by the controller to track the selected tab.
    id="{TAB_ID}".s-navigation--itemA unique id for the tab. Will be used by the tab panel to refer back to the button via aria-labelledby="{TAB_ID}".
    aria-controls="{PANEL_ID}".s-navigation--itemA unique id for the panel element corresponding to the tab.
    tabindex="-1"Initially unselected .s-navigation--item elementsIndicates to the browser that the element should be excluded from tab navigation. When interacting with the control, arrow keys will be used to switch tabs.
    role="tabpanel"Tab panel elementsIndicates to accessibility tools that the element is a panel corresponding to a tab.
    id="{PANEL_ID}"Tab panel elementsA unique id for the panel. Used by the tab to identify the panel that will be shown when it is active, via aria-controls="{PANEL_ID}".
    aria-labelledby="{TAB_ID}"Tab panel elementsRefers to the id of the tab element that corresponds to the panel.
    class="d-none"Initially hidden tab panel elementsSuppressed display of tab panels.
    -
    - {% header "h3", "Events" %} -
    - - - - - - - - - - - - - - - - - - - - -
    EventElementDescription
    s-navigation-tablist:selectController elementDefault preventable Fires immediately before a new tab is selected. Calling .preventDefault() cancels the display of the tab and keeps the state unchanged.
    s-navigation-tablist:selectedController elementFires immediately after the new tag has been selected.
    -
    -
    - - - - - - - - - - - - - - - - - - - - -
    event.detailApplicable eventsDescription
    oldTabs-navigation-tablist:*Contains HTMLElement | null representing the previously selected tab, if one was selected. This is the element with role="tab", not the panel itself which can be found using the tab's aria-controls attribute.
    newTabs-navigation-tablist:*Contains HTMLElement representing the newly selected tab. This is the element with role="tab", not the panel itself which can be found using the tab's aria-controls attribute.
    -
    - {% header "h3", "Example" %} - -
    -{% highlight html %} - - -
    - … -
    - -
    - … -
    -{% endhighlight %} -
    - - - -
    -
    Review the following question
    -

    -
    - -
    -
    Answers
    -

    -
    - -
    -
    Potential Duplicate A
    -

    -
    - -
    -
    Potential Duplicate B
    -

    -
    -
    -
    -
    - - diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/notices.html b/packages/stacks-docs-next/src/docs/legacy/product/components/notices.html deleted file mode 100644 index 706944964e..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/notices.html +++ /dev/null @@ -1,476 +0,0 @@ ---- -layout: page -title: Notices -svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-toast--docs -figma: https://svelte.stackoverflow.design/figma/notices -description: Notices deliver System and Engagement messaging, informing the user about product or account statuses and related actions. -tags: components ---- - - - - -{% assign variants = "default, info, success, warning, danger" | split: ", " %} - - - -
    - {% header "h2", "Accessibility" %} -
    - - - - - - - - - - {% for item in notices.access %} - - - - - - {% endfor %} - -
    ItemApplied toDescription
    {{ item.item }} - {% if item.applies == "N/A" %} - {{ item.applies }} - {% else %} - {% assign class = item.applies | split: " " %} - - {% for name in class %} - {{ name }} - {% endfor %} - {% endif %} - {{ item.description }} (Source)
    -
    -
    - -
    - {% header "h2", "JavaScript" %} - {% header "h3", "Attributes" %} -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    AttributeApplied toDescription
    data-controller="s-toast"Controller elementWires up the element to the toast controller. This may be a .s-toast element or a wrapper element.
    data-s-toast-target="toast".s-toast elementWires up the element that is to be shown/hidden
    data-s-toast-target="initialFocus"Any child focusable elementOptional Designates which element to focus on toast show. If absent, defaults to the first focusable element within the toast.
    data-action="s-toast#toggle"Toggling elementWires up the element to toggle the visibility of a toast
    data-s-toast-return-element="[css selector]"Controller elementOptional Designates the element to return focus to when the toast is closed. If left unset, focus is not altered on close.
    data-s-toast-remove-when-hidden="true"Controller elementOptional Removes the toast from the DOM entirely when it is hidden
    -
    - {% header "h3", "Events" %} -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    EventElementDescription
    s-toast:showToast targetDefault preventable Fires immediately before showing the toast. Calling .preventDefault() cancels the display of the toast.
    s-toast:shownToast targetFires after the toast has been visually shown
    s-toast:hideToast targetDefault preventable Fires immediately before hiding the toast. Calling .preventDefault() cancels the removal of the toast.
    s-toast:hiddenToast targetFires after the toast has been visually hidden
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - -
    event.detailApplicable eventsDescription
    dispatchers-toast:*Contains the Element that initiated the event. For instance, the button clicked to show, the element clicked outside the toast that caused it to hide, etc.
    returnElements-toast:show, s-toast:hideContains the Element to return focus to on hide. If a value is set to this property inside an event listener, it will be updated on the controller as well.
    -
    - {% header "h3", "Helpers" %} -
    - - - - - - - - - - - - - - - - - - - - -
    FunctionParametersDescription
    Stacks.showToast - element: the element the data-controller="s-toast" attribute is on

    -
    Helper to manually show an s-toast element via external JS
    Stacks.hideToast - element: the element the data-controller="s-toast" attribute is on

    -
    Helper to manually hide an s-toast element via external JS
    -
    -
    - -
    - {% header "h2", "Visual styles" %} - {% header "h3", "Classes" %} -
    - - - - - - - - - - {% for item in notices.visual %} - - - - - - {% endfor %} - -
    ClassApplied toDescription
    {{ item.class }} - {% if item.applies == "N/A" %} - {{ item.applies }} - {% else %} - {% assign class = item.applies | split: " " %} - - {% for name in class %} - {{ name }} - {% endfor %} - {% endif %} - {{ item.description }}
    -
    - - - {% header "h3", "Filled" %} -

    Default style used to separate notices from the main content

    -
    -{% highlight html %} -
    -
    -
    - … -
    -
    -
    -{% endhighlight %} -
    -
    - {% for variant in variants %} - {% assign variantCapitalized = variant | capitalize %} - {% assign variantClass = " s-notice__" | append: variant %} - {% if variant == "default" %} - {% assign variantClass = "" %} - {% endif %} - - - {% endfor %} -
    -
    -
    - - {% header "h3", "Filled important" %} -

    Used sparingly for when an important notice needs to be noticed

    -
    -{% highlight html %} - - - - - -{% endhighlight %} -
    -
    - {% for variant in variants %} - {% assign variantCapitalized = variant | capitalize %} - {% assign variantClass = " s-notice__" | append: variant %} - {% if variant == "default" %} - {% assign variantClass = "" %} - {% endif %} - - - {% endfor %} -
    -
    -
    - - {% header "h3", "Styling child links" %} -

    We recommend using descendent anchor classes, typically .s-anchors.s-anchors__inherit.s-anchors__underlined for notices containing links generated from markdown when you cannot manually generate the inner html.

    -
    -{% highlight html %} - - -{% endhighlight %} -
    -
    - - - - - -
    -
    -
    -
    - -
    - {% header "h2", "Behaviors" %} -
    - - - - - - - - - - - {% for item in notices.behavior %} - - - - - - {% endfor %} - -
    BehaviorClassApplied toDescription
    {{ item.type }} - {{ item.class }} - {% if item.applies == "N/A" %} - {{ item.applies }} - {% else %} - {% assign class = item.applies | split: " " %} - - {% for name in class %} - {{ name }} - {% endfor %} - {% endif %} - {{ item.description }}
    -
    - - {% header "h3", "Inline" %} -

    Default behavior for notices that are inserted within the content area

    -
    -{% highlight html %} -
    -{% endhighlight %} -
    -
    -
    -

    Inline notice message style

    -
    -
    -
    -
    - - {% header "h3", "With an Icon" %} -

    Notices are often accompanied by an icon.

    -
    -{% highlight html %} -
    -
    - @Svg.Alert -
    -
    - … -
    -
    -{% endhighlight %} -
    -
    -
    - {% icon "Alert" %} -
    -
    - This question and its answers are locked because the question is off-topic but has historical significance. It is not currently accepting new answers or interactions. -
    -
    -
    -
    - - {% header "h3", "Toast" %} -

    Floating notices, but aligned to the top and center of the page and they disappear after a set time. Visibility is changed with animation by toggling between aria-hidden="true" and aria-hidden="false". When including buttons, you can apply .s-notice--btn to buttons to apply a toast-specific color.

    - - -
    -
    - -
    -
    - -
    -{% highlight html %} - -{% endhighlight %} -
    -
    - {% for variant in variants %} - {% assign variantCapitalized = variant | capitalize %} - {% assign variantClass = " s-notice__" | append: variant %} - {% if variant == "default" %} - {% assign variantClass = "" %} - {% endif %} - - - {% endfor %} -
    -
    -
    -
    diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/page-titles.html b/packages/stacks-docs-next/src/docs/legacy/product/components/page-titles.html deleted file mode 100644 index 177580a231..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/page-titles.html +++ /dev/null @@ -1,145 +0,0 @@ ---- -layout: page -title: Page titles -description: Page titles create consistency in the layout of similar pages, specifically the placement and appearance of titles, descriptions, actions, and breadcrumbs. -tags: components ---- - -
    - {% header "h2", "Components" %} -
    - - - - - - - - - - - - - - - - - - - - - - - - - -
    ComponentDescription
    Page titleTitle of the page. Refer to the content section of Stacks for things like word choice, naming, and capitalization.
    Description OptionalAdditional context for content and actions on the page.
    Actions OptionalFree-form area to include buttons, filters, or other HTML content.
    Breadcrumbs OptionalBreadcrumbs can be included to provide context for the currently-viewed page.
    -
    - {% header "h2", "Admin sections" %} -

    - These components should be used in the admin sections of our private Q&A products. -

    - {% header "h3", "Base Styles" %} -

    - The base style for pages that don’t need further description beyond the page title and don’t have any actions for filters. -

    -
    -{% highlight html %} -
    -

    Page title

    -
    -{% endhighlight %} -
    -
    -

    Page title

    -
    -
    -
    - {% header "h3", "Title with description" %} -

    - A summary of a page’s content. Helpful for large pages with multiple actions. -

    -
    -{% highlight html %} -
    -
    -

    Page title

    -

    -
    -
    -{% endhighlight %} -
    -
    -
    -

    Page title

    -

    Optional description de Finibus Bonorum et Malorum with an optional link.

    -
    -
    -
    -
    - {% header "h3", "Title with actions" %} -

    - When a page title includes actions, they are located at the far end of the component. This area is free-form, so we can include any markups we'd like, from single button to a d-flex of custom filters and text. -

    -
    -{% highlight html %} -
    -
    -

    Page title

    -

    -
    -
    -
    -{% endhighlight %} -
    -
    -
    -

    Page title

    -

    Optional description de Finibus Bonorum et Malorum with an optional link.

    -
    -
    -
    - - -
    -
    -
    -
    -
    - {% header "h3", "Title with breadcrumbs" %} -

    - Breadcrumbs are used to provide context for the currently-viewed page and reduce the number of actions a website visitor needs to take in order to get to a higher-level page. Breadcrumbs should not be used for single-level sections that have no logical grouping. -

    -
    -{% highlight html %} -
    -
    - -

    Page title

    -

    -
    -
    -{% endhighlight %} -
    -
    -
    - -

    Page title

    -

    Optional description de Finibus Bonorum et Malorum with an optional link.

    -
    -
    -
    -
    -
    diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/pagination.html b/packages/stacks-docs-next/src/docs/legacy/product/components/pagination.html deleted file mode 100644 index 4b24730331..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/pagination.html +++ /dev/null @@ -1,144 +0,0 @@ ---- -layout: page -title: Pagination -svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-paginationcontroller--docs -figma: https://www.figma.com/design/do4Ug0Yws8xCfRjHe9cJfZ/Project-SHINE---Product-UI?node-id=1189-2035&t=JFrmhokx3ZOeRP9b-0 -description: Pagination splits content into pages, as seen on questions, tags, users, and jobs listings. -tags: components ---- -
    - {% header "h2", "Classes" %} -
    - - - - - - - - - - {% for item in pagination-component.classes %} - - - - - - {% endfor %} - -
    ClassApplied toDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    -
    -
    -
    - {% header "h2", "Example" %} - -
    diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/popovers.html b/packages/stacks-docs-next/src/docs/legacy/product/components/popovers.html deleted file mode 100644 index a50f8e86ff..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/popovers.html +++ /dev/null @@ -1,663 +0,0 @@ ---- -layout: page -title: Popovers -svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-popover--docs -js: true -figma: https://www.figma.com/design/do4Ug0Yws8xCfRjHe9cJfZ/Project-SHINE---Product-UI?node-id=1617-27089&t=W4QmlFOpYoEpInDB-0 -description: Popovers are small content containers that provide a contextual overlay. They can be used as in-context feature explanations, dropdowns, or tooltips. -tags: components ---- -
    - {% header "h2", "Classes" %} -
    - - - - - - - - - - {% for item in popovers.automatic %} - - - - - - {% endfor %} - -
    ClassApplies toDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    -
    -
    -
    - {% header "h2", "Interactive popovers" %} - -

    Stacks provides a Stimulus controller that allows you to interactively display a popover from a source element. Positioning direction are managed for you by Popper.js, a powerful popover positioning library we've added as a dependency. These popovers are automatically hidden when user click outside the popover or tap the Esc key.

    - - {% header "h3", "Interactive Attributes" %} -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    AttributeApplied toDescription
    id="{POPOVER_ID}".s-popoverA unique id that the popover’s toggling element can target. Matches the value of [aria-controls] on the toggling element.
    data-controller="s-popover"Controller elementWires up the element to the popover controller. This may be a toggling element or a wrapper element.
    data-s-popover-reference-selector="[css selector]"Controller elementOptional Designates the element to use as the popover reference. If left unset, the value defaults to the controller element.
    aria-controls="{POPOVER_ID}"Reference elementAssociates the element to the desired popover element.
    data-action="s-popover#toggle"Toggling elementWires up the element to toggle the visibility of a generic popover.
    data-s-popover-toggle-class="[class list]"Controller elementAdds an optional space-delineated list of classes to be toggled on the originating element when the popover is shown or hidden.
    data-s-popover-placement="[placement]"Controller elementDictates where to place the popover in relation to the reference element. By default, the placement value is bottom. Accepted placements are auto, top, right, bottom, left. Each placement can take an additional -start and -end variation.
    data-s-popover-auto-show="[true|false]"Controller elementOptional If true, the popover will appear immediately when the Stacks controller is first connected. This should be used in place of .is-visible for displaying popovers on load as it will prevent the popover from appearing before it has been correctly positioned.
    data-s-popover-hide-on-outside-click="[always|never|if-in-viewport|after-dismissal]"Controller elementOptional -
      -
    • If always, the popover will appear disappear when outside clicks occur.
    • -
    • If if-in-viewport, the popover will appear disappear when outside clicks occur and the popover is currently in the browser's visible viewport.
    • -
    • If never, the popover will not disappear on outside clicks and will only be dismissed through other means, e.g. data-target="s-popover#hide".
    • -
    • If after-dismissal, the popover will not disappear on outside clicks unless it has been dismissed some other way at least once.
    • -
    -

    If left unset, defaults to always.

    -
    -
    - - {% header "h3", "Interactive Events" %} -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    EventElementDescription
    s-popover:showController elementDefault preventable Fires immediately before showing and positioning the popover. This fires before the popover is first displayed to the user, and can be used to create or initialize the popover element. Calling .preventDefault() cancels the display of the popover.
    s-popover:shownController elementFires immediately after showing the popover.
    s-popover:hideController elementDefault preventable Fires immediately before hiding the popover. Calling .preventDefault() prevents the removal of the popover.
    s-popover:hiddenController elementFires immediately after hiding the popover.
    -
    -
    - - - - - - - - - - - - - - - -
    event.detailApplicable eventsDescription
    dispatchers-popover:*Contains the Element that initiated the event. For instance, the button clicked to show, the element clicked outside the popover that caused it to hide, etc.
    -
    - {% header "h3", "Examples" %} -
    -
    -
    - - - - - - -
    -
    -
    - - {% header "h4", "Default interactivity" %} -

    To enable interactive popovers, you will need to add the above attributes to the popover’s originating button. Custom positioning can be specified using the data-s-popover-placement. In the following example, we’ve chosen bottom-start. No positioning classes need to be added to your markup, only the data attributes.

    -

    To promote being able to tab to an open popover, it’s best to place the popover immediately after the toggling button in the markup as siblings.

    - -
    -{% highlight html %} - - -{% endhighlight %} -
    - - -
    -
    - - {% header "h4", "Dismissible" %} -

    In the case of new feature callouts, it may be appropriate to include an explicit dismiss button. You can add one using the styling provided by .s-popover--close.

    -

    In order for to close the popover with an explicit close button, you’ll need to add the controller to a parent as illustrated in the following example code:

    -
    - {% highlight html %} -
    - - - - -
    -{% endhighlight %} -
    -
    - -
    -

    Dismissible persistent popover presented with a close button

    -
    -
    -
    -
    - - {% header "h4", "JavaScript interaction" %} -

    There may be cases where you need to show or hide a popover via JavaScript. For example, if you need to show a popover at a specific time or if you need to hide a popover from an event outside of the controller, Stacks provides convenience methods to achieve this.

    -
    -{% highlight javascript %} -Stacks.application.register("section", class extends Stacks.StacksController { - static targets = ["help"]; - - showHelp(event) { - Stacks.showPopover(this.helpTarget); - event.stopPropagation(); - } - hideHelp(event) { - Stacks.hidePopover(this.helpTarget); - } -}); -{% endhighlight %} -
    -
    -
    -
    -

    Lorem ipsum

    -
    -
    - - -
    -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et metus molestie nulla luctus sodales ac luctus justo. Aenean iaculis ac ante sit amet aliquam. Duis dolor velit, imperdiet sed mauris eu, sollicitudin egestas nisl. Ut vitae nulla eu risus iaculis semper sit amet vitae tortor. Sed convallis lacus quis libero placerat finibus. Phasellus pulvinar vel nunc eu tempor. Sed pharetra magna a felis egestas placerat. Sed imperdiet dui a sem fermentum, eget consectetur elit feugiat. Phasellus non condimentum orci. Nam id molestie elit, ut gravida metus. Vivamus vel nunc risus. Maecenas posuere sit amet tellus vel laoreet. Nulla lacus mauris, rhoncus eu laoreet quis, mattis vehicula nisl. Integer efficitur quam et nisi luctus scelerisque. Mauris efficitur lectus ac malesuada congue.

    - -
    -
    -
    - - {% header "h4", "JavaScript configuration (popovers)" %} -

    Situations may also arise where popovers need to be attached to an element after the document is rendered. For example, a button could have a contextual menu that is too expensive to serve up on every page load.

    -

    Popovers can be attached to an element after the fact using Stacks.attachPopover.

    -

    This method takes three parameters, the element to attach the popover to, the popover either as an element or an HTML string, and optional options for displaying the popover.

    - -
    -{% highlight javascript %} -Stacks.application.register("actions", class extends Stacks.StacksController { - - var loaded = false; - - async load() { - if (this.loaded) { return; } - Stacks.attachPopover(this.element, - await fetch(`/posts/{postId}/actions`), - { autoShow: true, toggleOnClick: true }); - this.loaded = true; - } -}); -{% endhighlight %} -
    - -
    -
    -
    -
    - {% header "h2", "Hover tooltips" %} - -

    When a popover is intended only for display as an on-hover tooltip and contains no interactive text, the s-tooltip controller can be used in place of s-popover. This is a separate controller that can be used alongside s-popover on a single target element.

    - - {% header "h3", "Hover attributes" %} -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    AttributeApplied toDescription
    id="{POPOVER_ID}".s-popoverA unique id that the popover’s toggling element can target. Matches the value of [aria-describedby] on the toggling element.
    data-controller="s-tooltip"Controller elementWires up the element to the tooltip controller.
    data-s-tooltip-reference-selector="[css selector]"Controller elementOptional Designates the element to use as the tooltip reference. If left unset, the value defaults to the controller element.
    aria-describedby="{POPOVER_ID}"Reference elementAssociates the element to the desired popover element.
    title="{TITLE}"Controller elementIf aria-describedby is not present or valid, and the title attribute exists, the title will be removed from the element and be used to create a popover immediately after the element. All content will be escaped and inserted as text.
    data-s-tooltip-html-title="{TITLE}"Controller elementActs the exact same as the title attribute, but inserts the raw text directly as html. If both this and the title attribute exist on the element, this attribute will be used.
    data-s-tooltip-placement="[placement]"Controller elementDictates where to place the popover in relation to the reference element. By default, the placement value is bottom. Accepted placements are auto, top, right, bottom, left. Each placement can take an additional -start and -end variation.
    -
    - {% header "h3", "Hover events" %} -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    EventElementDescription
    s-tooltip:showController elementDefault preventable Fires immediately before showing and positioning the tooltip. This fires before the tooltip is first displayed to the user, and can be used to create or initialize the tooltip element. Calling .preventDefault() cancels the display of the popover.
    s-tooltip:shownController elementFires immediately after showing the tooltip.
    s-tooltip:hideController elementDefault preventable Fires immediately before hiding the tooltip. Calling .preventDefault() prevents the removal of the tooltip.
    s-tooltip:hiddenController elementFires immediately after hiding the tooltip.
    -
    -
    - - - - - - - - - - - - - - - -
    event.detailApplicable eventsDescription
    dispatchers-tooltip:*Contains the Element that initiated the event. For instance, the element hovered over to show, etc.
    -
    - {% header "h3", "Hover examples" %} -

    If the user doesn’t need to interact with the contents of the popover, it may be appropriate to only show it on hover. This will make popovers feel like a tooltip. To do so, we provide an alternative controller, s-tooltip, that shows the tooltip only on hover.

    - - {% header "h4", "Title attribute" %} -

    In the simple case where no markup is needed in the tooltip, the popover element can be omitted and automatically generated using the title attribute.

    - -
    -{% highlight html %} - -{% endhighlight %} -
    - -
    -
    - - {% header "h4", "JavaScript configuration (tooltips)" %} -

    In cases where the tooltip needs to display simple text or HTML, the popover can be configured using JavaScript. Plain text tooltips will render characters like <, >, and & as is. HTML tooltips will render the HTML as expected.

    -
    -{% highlight javascript %} -Stacks.setTooltipText(el, - "Plain text tooltip", - { - placement: "top-start" - }); - -Stacks.setTooltipHtml(el, - "Tooltip with HTML", - { - placement: "top-end" - }); -{% endhighlight %} -
    - - -
    -
    - - {% header "h4", "Rich tooltips" %} -

    When a rich tooltip is required, a popover element can be configured in much the same way as an s-popover controller, with the most notable difference being the use of aria-describedby instead of aria-controls.

    - -
    -{% highlight html %} - - -{% endhighlight %} -
    - - -
    -
    - - {% header "h4", "Tooltips and interactive popovers" %} -

    Hover tooltips can be used alongside interactive popovers. Tooltips will no appear when the interactive popover is visible.

    - -
    -{% highlight html %} - - -{% endhighlight %} -
    - - -
    -
    -
    -
    - {% header "h2", "Manual placement" %} - {% tip, "warning", "mb32" %} - Our Stimulus popover controller handles the positioning of popovers for you. Popovers can be positioned manually for various legacy reasons, but we recommend using the s-popover controller's placement property instead. - {% endtip %} - {% header "h3", "Manual examples" %} -

    Popovers can also be positioned manually if you aren’t using the built-in JavaScript interactivity. Practically, this might look like adding something like t8 l8 to .s-popover.

    -

    By default, popovers are hidden and positioned absolutely. Adding the class .is-visible will show the popover.

    - -
    -{% highlight html %} -
    -
    - … -
    -
    -{% endhighlight %} -
    -
    -
    -

    Example popover with manual placement

    -
    -
    -
    -
    -
    - - - diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/post-summary.html b/packages/stacks-docs-next/src/docs/legacy/product/components/post-summary.html deleted file mode 100644 index 8b1eae70b2..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/post-summary.html +++ /dev/null @@ -1,1944 +0,0 @@ ---- -layout: page -title: Post summary -svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-postsummary--docs -description: The post summary component summarizes various content and associated meta data into a highly configurable component. -tags: components ---- -
    - {% header "h2", "Classes" %} -
    - - - - - - - - - - {% for item in post-summary.classes %} - - - - - - {% endfor %} - -
    ClassParentDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    -
    -
    -
    - {% header "h2", "Layout Examples" %} -

    Post summaries are a flexible component capable of previewing various content types—questions or articles. Post summaries are meant to be flexible, allowing for each individual piece to be removed. Let’s start with a full example of a few questions and an article interleaved.

    - - {% header "h3", "Full" %} -

    At their most complete, post summaries are presented in two columns and can contain:

    -
      -
    • Title
    • -
    • Excerpt
    • -
    • Tags & other categorization
    • -
    • Author & creation date
    • -
    • Stats & various states
    • -
    • Contextual menu
    • -
    -

    At the smallest breakpoint, the layout will switch to a single column.

    -
    -{% highlight html %} -
    -
    -
    - - … - - - votes - -
    -
    - @Svg.CheckmarkSm - - … - - - answers - -
    -
    - - … - - - views - -
    -
    -
    -
    - - @Svg… … - -
    -

    - -

    -

    -
    -
    - -
    - -
    - - - - - -
      -
    • -
    - -
    -
    - - @Svg.EllipsisVertical - - -
    -
    -{% endhighlight %} -
    -
    -
    -
    - - 95 - - - votes - -
    -
    - {% icon "CheckmarkSm" %} - - 5 - - - answers - -
    -
    - - 104k - - - views - -
    -
    -
    -

    - How to generate the JPA entity Metamodel? -

    -

    - In the spirit of type safety associated with the CriteriaQuery JPA 2.0 also has an API to support Metamodel representation of entities. -

    -
    -
    - java - hibernate - jpa - annotation-processing - metamodel -
    - -
    - - placeholder avatar - Paul Wright - - Paul Wright -
      -
    • 1350
    • -
    - -
    -
    - - {% icon "EllipsisVertical" %} - menu - -
    -
    - -
    -
    -
    - - 280 - - - votes - -
    -
    - - 4 - - - answers - -
    -
    - - 10.2k - - - views - -
    -
    - +50 -
    -
    -
    -

    - Cannot read property 'startsWith' of null in npm install -

    -

    - I am creating my first react-native app. I am attempting to install the react-native command line interface as shown here. I keep getting an error when I type the command to initiate the react-native command line -

    -
    -
    - node-js - angular - npm - javascript -
    - -
    - - placeholder avatar - Aaron Shekey - - Aaron Shekey -
      -
    • 205
    • -
    - -
    -
    - - {% icon "EllipsisVertical" %} - menu - -
    -
    - -
    -
    -
    - - 1 - - - vote - -
    -
    - - 15 - - - views - -
    -
    - - 1 - - - minute read - -
    -
    - - 1 - - - comment - -
    -
    -
    -
    - {% icon "DocumentAlt" %} How-to guide -
    -

    - How to run a product research study -

    -

    - This article aims to guide you through the steps and processes you may want to consider when running research at Stack Overflow. While there are obviously many methods, this guide will focus more interview-style research. For a full list of Product Research templates, guides, and links, see this article. -

    -
    -
    - ux-research -
    - -
    - - placeholder avatar - Mithila Fox - - Mithila Fox -
      -
    • 323
    • -
    - -
    -
    - - {% icon "EllipsisVertical" %} - menu - -
    -
    - -
    -
    -
    - - 1 - - - vote - -
    -
    - - 1 - - - answer - -
    -
    - - 7 - - - views - -
    -
    -
    -

    - - {% icon "Shield" %} - EF core 3.1 - common table for entity and owned type - -

    -

    - I’m trying to implement DDD approach in my project but realized that I have too big aggregates and trying to minimize the amount of data loaded from the database. I have an aggregate Order which -

    -
    -
    - c# - asp.net - entity-framework - domain-driven-design -
    - -
    - - placeholder avatar - dantey89 - - dantey89 -
      -
    • 1,315
    • -
    - -
    -
    - - {% icon "EllipsisVertical" %} - menu - -
    -
    -
    -
    - - {% header "h3", "Minimal" %} -

    There are compact views where it’s appropriate to reduce the amount of information within the post summary. The minimal view forces the smallest breakpoint layout in any context, stacking the meta data on top and putting everything into a single column.

    -
    -{% highlight html %} -
    -
    -
    - - … - - - votes - -
    -
    - @Svg.CheckmarkSm - - … - - - answers - -
    -
    - - … - - - views - -
    -
    -
    -

    - -

    -
    -
    - -
    - -
    - - - - - - -
    -
    -
    -
    -{% endhighlight %} -
    -
    -
    -
    - - 0 - - - votes - -
    -
    - - 0 - - - answers - -
    -
    - - 2 - - - views - -
    -
    -
    -

    - Clicking through a viewpager2? -

    -
    -
    - android - android-studio - android-viewpager2 -
    - -
    - - placeholder avatar - Callum Osborne - - Callum Osborne - -
    -
    -
    -
    -
    -
    -
    - - 0 - - - votes - -
    -
    - - 1 - - - answer - -
    -
    - - 3 - - - views - -
    -
    -
    -

    - What permissions does github_token require for releases from a github action -

    -
    -
    - github-actions -
    - -
    - - placeholder avatar - GuiFalourd - - GuiFalourd - -
    -
    -
    -
    -
    -
    -
    - - 0 - - - votes - -
    -
    - - 0 - - - answers - -
    -
    - - 5 - - - views - -
    -
    -
    -

    - Parentheses is Invalid Bash -

    -
    -
    - linux - bash - docker - shell -
    - -
    - - placeholder avatar - thatkingguy_ - - thatkingguy_ - -
    -
    -
    -
    -
    -
    - - {% header "h3", "Excerpts" %} -

    Posts can be shown with or without excerpts. Stacks also provides various size

    -
    -{% highlight html %} -… -

    -

    -

    -

    -{% endhighlight %} -
    -
    -
    -
    - - 95 - - - votes - -
    -
    - {% icon "CheckmarkSm" %} - - 5 - - - answers - -
    -
    - - 104k - - - views - -
    -
    -
    -

    - How to generate the JPA entity Metamodel? -

    -
    -
    - java - hibernate - jpa - annotation-processing - metamodel -
    - -
    - - placeholder avatar - Paul Wright - - Paul Wright -
      -
    • 1350
    • -
    - -
    -
    - - {% icon "EllipsisVertical" %} - menu - -
    -
    - -
    -
    -
    - - 95 - - - votes - -
    -
    - {% icon "CheckmarkSm" %} - - 5 - - - answers - -
    -
    - - 104k - - - views - -
    -
    -
    -

    - How to generate the JPA entity Metamodel? -

    -

    - In the spirit of type safety associated with the CriteriaQuery JPA 2.0 also has an API to support Metamodel representation of entities. - -Is anyone aware of a fully functional implementation of this API (to generate the Metamodel as opposed to creating the metamodel classes manually)? It would be awesome if someone also knows the steps for setting this up in Eclipse (I assume it's as simple as setting up an annotation processor, but you never know). -

    -
    -
    - java - hibernate - jpa - annotation-processing - metamodel -
    - -
    - - placeholder avatar - Paul Wright - - Paul Wright -
      -
    • 1350
    • -
    - -
    -
    - - {% icon "EllipsisVertical" %} - menu - -
    -
    - -
    -
    -
    - - 95 - - - votes - -
    -
    - {% icon "CheckmarkSm" %} - - 5 - - - answers - -
    -
    - - 104k - - - views - -
    -
    -
    -

    - How to generate the JPA entity Metamodel? -

    -

    - In the spirit of type safety associated with the CriteriaQuery JPA 2.0 also has an API to support Metamodel representation of entities. Is anyone aware of a fully functional implementation of this API (to generate the Metamodel as opposed to creating the metamodel classes manually)? It would be awesome if someone also knows the steps for setting this up in Eclipse (I assume it's as simple as setting up an annotation processor, but you never know). -

    -
    -
    - java - hibernate - jpa - annotation-processing - metamodel -
    - -
    - - placeholder avatar - Paul Wright - - Paul Wright -
      -
    • 1350
    • -
    - -
    -
    - - {% icon "EllipsisVertical" %} - menu - -
    -
    - -
    -
    -
    - - 95 - - - votes - -
    -
    - {% icon "CheckmarkSm" %} - - 5 - - - answers - -
    -
    - - 104k - - - views - -
    -
    -
    -

    - How to generate the JPA entity Metamodel? -

    -

    - In the spirit of type safety associated with the CriteriaQuery JPA 2.0 also has an API to support Metamodel representation of entities. Is anyone aware of a fully functional implementation of this API (to generate the Metamodel as opposed to creating the metamodel classes manually)? It would be awesome if someone also knows the steps for setting this up in Eclipse (I assume it's as simple as setting up an annotation processor, but you never know). -

    -
    -
    - java - hibernate - jpa - annotation-processing - metamodel -
    - -
    - - placeholder avatar - Paul Wright - - Paul Wright -
      -
    • 1350
    • -
    - -
    -
    - - {% icon "EllipsisVertical" %} - menu - -
    -
    - -
    -
    -
    - - 95 - - - votes - -
    -
    - {% icon "CheckmarkSm" %} - - 5 - - - answers - -
    -
    - - 104k - - - views - -
    -
    -
    -

    - How to generate the JPA entity Metamodel? -

    -

    - In the spirit of type safety associated with the CriteriaQuery JPA 2.0 also has an API to support Metamodel representation of entities. Is anyone aware of a fully functional implementation of this API (to generate the Metamodel as opposed to creating the metamodel classes manually)? It would be awesome if someone also knows the steps for setting this up in Eclipse (I assume it's as simple as setting up an annotation processor, but you never know). -

    -
    -
    - java - hibernate - jpa - annotation-processing - metamodel -
    - -
    - - placeholder avatar - Paul Wright - - Paul Wright -
      -
    • 1350
    • -
    - -
    -
    - - {% icon "EllipsisVertical" %} - menu - -
    -
    -
    -
    -
    - -
    - {% header "h2", "Answers" %} -

    Previews of answers can also be attached to the post summary as needed.

    -
    -{% highlight html %} -
    - … -
    -

    - -

    -
    -
    -
    -
    - - … - - - votes - -
    -
    - @Svg.CheckmarkSm Accepted answer -
    -
    -

    - … -

    -
    - - View answer - - -
    - - - - - - -
    -
    -
    -
    -
    -{% endhighlight %} -
    -
    -
    -
    - - 2 - - - votes - -
    -
    - {% icon "CheckmarkSm" %} - - 2 - - - answers - -
    -
    - - 1k - - - views - -
    -
    -
    -

    - Azure API Management and Backend Web API -

    -

    - Right now, I have enabled basic authentication to the developer portal in API Management. Also, I have enabled OAuth 2.0 authentication for the back end server (user Authorization). So, if i login to the developer portal, i can see two fields - Subscription Key and Authorization. The Subscription key will be the developer's subscription to the portal and the Authorization will be the OAuth authorization which is required for the back end server. -

    -
    -
    - azure - asp.net-web-api - oauth-2.0 - azure-active-directory -
    - -
    - - placeholder avatar - karel - - karel - -
    -
    -
    -
    -
    - - 2 - - - votes - -
    -
    - {% icon "CheckmarkSm" %} Accepted answer -
    -
    -

    Subscription keys in APIM are tied to a user and product, thus if you change (or create new one) product to not require subscription (option available at creation time or in product settings) no subscription key would be needed to call any API included into such products. The downside is that all such calls would be treated by APIM as anonymous and shown in analytics as such.

    -
    - - View answer - - -
    - - placeholder avatar - Aaron Shekey - - Aaron Shekey - -
    -
    -
    -
    -
    -
    - - 2 - - - votes - -
    -
    -

    Yeah, you can do that (a bit of a hack). You have to use REST Api for that, specifically this call. For me it didn't work to edit the existing API (they key was still there), but when I've created new API, key wasn't there:

    -
    - - View answer - - -
    - - placeholder avatar - 4c74356b41 - - 4c74356b41 - -
    -
    -
    -
    -
    -
    -
    -
    - -
    - {% header "h2", "Stats examples" %} - {% header "h3", "Answered status" %} -

    Within the stats section of the post summary, posts can have various answered states. A checkmark icon is displayed in questions that have accepted answers.

    -
      -
    • No answers
    • -
    • Has answers
    • -
    • Has accepted answers
    • -
    -
    -{% highlight html %} - -
    - - 2 - - - answers - -
    - - -
    - - 2 - - - answers - -
    - - -
    - @Svg.CheckmarkSm - - 5 - - - answers - -
    -{% endhighlight %} -
    -
    -
    -
    - - 3 - - - votes - -
    -
    - - 0 - - - answers - -
    -
    - - 32 - - - views - -
    -
    - -
    -
    - - 12 - - - votes - -
    -
    - - 2 - - - answers - -
    -
    - - 145 - - - views - -
    -
    - -
    -
    - - 95 - - - votes - -
    -
    - {% icon "CheckmarkSm" %} - - 5 - - - answers - -
    -
    - - 380 - - - votes - -
    -
    -
    -
    -
    - - {% header "h3", "Hotness" %} -

    Post stats also have various states of hotness and display in corresponding shades of orange.

    -
      -
    • Default
    • -
    • Warm
    • -
    • Hot
    • -
    • Supernova
    • -
    -
    -{% highlight html %} - -
    - - 23 - - - views - -
    - - -
    - - 1k - - - views - -
    - - -
    - - 10k - - - views - -
    - - -
    - - 100k - - - views - -
    -{% endhighlight %} -
    -
    -
    -
    - - 3 - - - votes - -
    -
    - - 0 - - - answers - -
    -
    - - 23 - - - views - -
    -
    - -
    -
    - - 28 - - - votes - -
    -
    - {% icon "CheckmarkSm" %} - - 3 - - - answers - -
    -
    - - 1k - - - views - -
    -
    - -
    -
    - - 92 - - - votes - -
    -
    - {% icon "CheckmarkSm" %} - - 10 - - - answers - -
    -
    - - 10k - - - views - -
    -
    - -
    -
    - - 126 - - - votes - -
    -
    - {% icon "CheckmarkSm" %} - - 18 - - - answers - -
    -
    - - 100k - - - views - -
    -
    -
    -
    -
    -
    - -
    - {% header "h2", "States" %} -

    Post summaries change their appearance based on being watched, ignored, or deleted. Articles can also have varying draft states.

    -
    -{% highlight html %} -
    -
    -
    - @Svg.TackSm - Pinned -
    - … -
    - … -
    - -
    - … - - … - - … -
    - -
    - … - - … - - … -
    - -
    -
    -
    - @Svg.TrashSm - Deleted -
    - … -
    - … -
    -{% endhighlight %} -
    -
    -
    -
    - {% icon "TackSm" %} - Pinned -
    -
    - - 10 - - - votes - -
    -
    - - 12 - - - views - -
    -
    - - 1 - - - minute read - -
    -
    -
    -
    - {% icon "DocumentAlt" %} Knowledge Article -
    -

    - Network graph of popular tags on Stack Overflow -

    -

    - I wanted to see how different tags related to each other. The below graph depicts associations between popular tags on our site. Description of analysis: I started looking at the 1000 most popular tags on questions in 2021. I created a list of tags cross joined by the question ID (so if a question contains tags for both Python and Numpy, it would show up in my list). I scaled up by the number of answers each question received (noting that some tag combos had 0 answers) -and then counted each distinct combination of each tag. Due to limitations in graphing, I only displayed the top ~2500 tag combinations - which accounts for tags combos that had more than 40 answers over the entire year. -

    -
    -
    - data - data-insights -
    - -
    - - placeholder avatar - Aaron Shekey - - Aaron Shekey -
      -
    • 1,025
    • -
    - -
    -
    - - {% icon "EllipsisVertical" %} - menu - -
    -
    - -
    -
    -
    - - 10 - - - votes - -
    -
    - {% icon "CheckmarkSm" %} - - 2 - - - answers - -
    -
    - - 10k - - - views - -
    -
    -
    -

    - Could not load type 'System.Web.Optimization.StyleBundle' -

    -

    - Sometimes after build and launch my MVC4 web app I got this error. It can dissapear after rebuild or not. Same issue I got after publish to Windows Azure. Does anybody know how to fix this error? -

    -
    -
    - asp - asp.net - asp.net-mvc -
    - -
    - - placeholder avatar - Nimantha - - Nimantha -
      -
    • 5,337
    • -
    - -
    -
    - - {% icon "EllipsisVertical" %} - menu - -
    -
    - -
    -
    -
    - - 3 - - - votes - -
    -
    - - 2 - - - answers - -
    -
    - - 205 - - - votes - -
    -
    -
    -

    - PHP URL Param redirects - with wildcards/regex -

    -

    - I recently found this solution for doing php url variable to header location redirects. It's so much more manageable compared to htaccess for mass redirects, however one thing I want to next work out templates, guides, and links, see this article. -

    -
    -
    - regex - php - redirect - parameters - wildcard -
    - -
    - - placeholder avatar - Jase Wolf - - Jase Wolf -
      -
    • 93
    • -
    - -
    -
    - - {% icon "EllipsisVertical" %} - menu - -
    -
    - -
    -
    -
    - {% icon "TrashSm" %} - Deleted -
    -
    - - 0 - - - votes - -
    -
    - - 0 - - - answers - -
    -
    - - 5 - - - views - -
    -
    -
    -

    - Adding authentication based on API key and API secret to APIs in Spring Boot application -

    -

    - I am working on a Spring Boot application with user authentication is based on Oauth2 2ith 2FA. Now, I would like to call the APIs in my application from the third-party client as well, say from another service. -

    -
    -
    - spring - spring-boot - authentication - spring-security - oauth-2.0 -
    - -
    - - placeholder avatar - Joy - - Joy -
      -
    • 3,622
    • -
    - -
    -
    - - {% icon "EllipsisVertical" %} - menu - -
    -
    - -
    -
    -
    - {% icon "PencilSm" %} - Draft -
    -
    - - -3 - - - votes - -
    -
    - - 541 - - - views - -
    -
    - - 4 - - - comments - -
    -
    - - 1 - - - min read - -
    -
    -
    -
    - {% icon "DocumentAlt" %} How-to guide -
    -

    - How to make sql_mode empty on Cloud SQL -

    -

    - Cloud SQL allows users to customize several flags that allow you to adjust options and configure and tune a database instance. In the case of the sql_mode flag, there are several options that are -

    -
    -
    - google-cloud-sql - sql-mode - sqlmod -
    - -
    - - placeholder avatar - gabidavila - - gabidavila -
      -
    • 874
    • -
    - -
    -
    - - {% icon "EllipsisVertical" %} - menu - -
    -
    - -
    -
    -
    - {% icon "EyeSm" %} - Review -
    -
    - - 26 - - - votes - -
    -
    - - 2k - - - views - -
    -
    - - 1 - - - comment - -
    -
    - - 1 - - - min read - -
    -
    -
    -
    - {% icon "DocumentAlt" %} How-to Guide -
    -

    - How to make sql_mode empty on Cloud SQL -

    -

    - In Android apps that use Firebase Authentication, you can always get the user who is currently signed in with code like: FirebaseAuth auth = FirebaseAuth.getInstance(); FirebaseUser user = auth.get -

    -
    -
    - firebase-realtime-database - firebase-authentication -
    - -
    - - placeholder avatar - Frank van Puffelen - - Frank van Puffelen -
      -
    • 464.3k
    • -
    - -
    -
    - - {% icon "EllipsisVertical" %} - menu - -
    -
    - -
    -
    -
    - {% icon "NotInterestedSm" %} - Closed -
    -
    - - 0 - - - votes - -
    -
    - - 12 - - - views - -
    -
    -
    -
    - {% icon "DocumentAlt" %} How-to Guide -
    -

    - How to make sql_mode empty on Cloud SQL -

    -

    - In Android apps that use Firebase Authentication, you can always get the user who is currently signed in with code like: FirebaseAuth auth = FirebaseAuth.getInstance(); FirebaseUser user = auth.get -

    -
    -
    - firebase-realtime-database - firebase-authentication -
    - -
    - - placeholder avatar - - Frank van Puffelen -
      -
    • 464.3k
    • -
    - -
    -
    - - {% icon "EllipsisVertical" %} - menu - -
    -
    - -
    -
    -
    - {% icon "ArchiveSm" %} - Archived -
    -
    - - -22 - - - votes - -
    -
    - - 1k - - - views - -
    -
    - - 5 - - - comments - -
    -
    - - 1 - - - min read - -
    -
    -
    -
    - {% icon "DocumentAlt" %} Announcement -
    -

    - Faster Cloud Storage transfers using the gcloud command-line -

    -

    - We’re pleased to announce gcloud storage, a new set of Cloud Storage commands in Cloud SDK that includes a new approach to parallelization that can accelerate both small and large data migrations. -

    -
    -
    - google-cloud-storage - gcloud - gsutil -
    - -
    - - placeholder avatar - Frank van Puffelen - - thomasmaclean -
      -
    • 165
    • -
    - -
    -
    - - {% icon "EllipsisVertical" %} - menu - -
    -
    -
    -
    -
    diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/progress-bars.html b/packages/stacks-docs-next/src/docs/legacy/product/components/progress-bars.html deleted file mode 100644 index 940230a0fc..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/progress-bars.html +++ /dev/null @@ -1,453 +0,0 @@ ---- -layout: page -title: Progress bars -description: A component that visually communicates the completion of a task or operation. It shows the task’s progress and remainder. -tags: components ---- -
    - {% header "h2", "Classes and parameters" %} -

    These are the various classes and parameters used within progress bars.

    - - {% header "h3", "Classes" %} -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ClassesDescription
    .s-progressThe parent class for all progress bars.
    .s-progress--barA child element of .s-progress. It shows the user’s current progress to accomplishing a goal with a background color.
    .s-progress--labelA child element of .s-progress. It’s used to describe what progress bar is tracking.
    .s-progress__brandA modifying class applied to .s-progress, it changes the bar color from green to orange.
    .s-progress__infoA modifying class applied to .s-progress, it changes the bar color from green to blue.
    .s-progress__circularA modifying class applied to .s-progress, it changes the bar to be a percentage of a circle.
    .s-progress__privilegeA modifying class applied to .s-progress, it changes the bar color from green to a lighter green (for legibility reasons).
    .s-progress__badgeA modifying class applied to .s-progress, it is applied when a badge progress bar is desired.
    .s-progress__goldA modifying class applied to .s-progress__badge, it is used when a gold badge progress bar is desired.
    .s-progress__silverA modifying class applied to .s-progress__badge, it is used when a silver badge progress bar is desired.
    .s-progress__bronzeA modifying class applied to .s-progress__badge, it is used when a bronze badge progress bar is desired.
    .s-progress__segmentedA modifying class applied to .s-progress for a segmented progress bar
    .s-progress__steppedA modifying class applied to .s-progress for a stepped progress bar
    .s-progress--stepA child of .s-progress__stepped that’s a wrapper for each individual step
    .is-activeA modifier .s-progress__step that adds visual styling to the active step.
    .is-completedA modifier .s-progress__step that adds visual styling to a completed step.
    .s-progress--stopA child of .s-progress__step, the circle that might contain a checkmark if the step’s been completed.
    .s-progress--bar__leftA modifier of .s-progress__bar that draws a line on the left side of a step.
    .s-progress--bar__rightA modifier of .s-progress__bar that draws a line on the right side of a step.
    -
    - {% header "h3", "Parameters" %} -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterDescription
    role="progressbar"Applied to .s-progress--bar, this parameter communicates that element is displaying progress status that takes a long time or consists of several steps. (Source)
    aria-valueminApplied to .s-progress--bar, this parameter defines the minimum allowed value for the progress bar. (Source)
    aria-valuemaxApplied to .s-progress--bar, this parameter defines the maximum allowed value for the progress bar. (Source)
    aria-valuenowApplied to .s-progress--bar, this parameter defines the current value for the progress bar. (Source)
    style="width: [value]%"Applied to .s-progress--bar, this is the aria-valuenow value displayed as a percentage.
    -
    -
    - -
    - {% header "h2", "Base style" %} -

    Since most progress bars are used to show successful completion of a task, the default fill color is green.

    -
    -{% highlight html %} -
    -
    -
    -{% endhighlight %} -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    - {% header "h2", "Fill alternates" %} -

    In addition to the standard progress bar, there is also a brand (orange) and info (blue) progress bar color variation.

    -
    -{% highlight html %} - -
    -
    -
    - - -
    -
    -
    -{% endhighlight %} -
    -
    -
    Brand
    -
    -
    -
    -
    -
    -
    Info
    -
    -
    -
    -
    -
    -
    -
    - -
    - {% header "h2", "Circular" %} -

    In compact layouts, switching to a circular progress might be more appropriate. Our circular progress bar inherits the parent’s text color. You and your designer will need to choose an appropriate font color. You’ll also need to pass the --s-progress-value CSS variable a value percentage value in decimal form.

    - -

    By default, the circular progress bars are 32px. These dimensions can be modified by adding t-shirt sizing classes to .s-progress__circular: .s-progress__sm, .s-progress__md, and .s-progress__lg

    - -
    -{% highlight html %} -
    - - - - -
    -{% endhighlight %} -
    -
    -
    - - - - -
    - -
    - - - - -
    - -
    - - - - -
    - -
    - - - - -
    - -
    - - - - -
    -
    -
    -
    -
    - -
    - {% header "h2", "Privileges" %} -

    Taller progress bars used within Profiles to help users understand how close they are to achieving their next privilege.

    -
    -{% highlight html %} -
    -
    - @Svg.PromoteDemote - Access Review Queues -
    -
    -
    -{% endhighlight %} -
    -
    -
    -
    - {% icon "PromoteDemote" %} - Access Review Queues -
    -
    -
    -
    -
    - {% icon "AchievementsSm" %} - Trusted user -
    -
    -
    -
    -
    - {% icon "PromoteDemote" %} - Protect questions -
    -
    -
    -
    -
    -
    -
    - -
    - {% header "h2", "Badges" %} -

    Taller progress bars used within Profiles to help users understand how close they are to achieving their next gold, silver, or bonze badge.

    -
    -{% highlight html %} - -
    -
    - gold badge -
    Electorate
    -
    -
    -
    - -
    -
    - silver badge -
    Civic Duty - 162/300
    -
    -
    -
    - -
    -
    - bronze badge -
    Proofreader - 16/100
    -
    -
    -
    -{% endhighlight %} -
    -
    -
    -
    - gold badge -
    Electorate
    -
    -
    -
    -
    -
    - silver badge -
    Civic Duty - 162/300
    -
    -
    -
    -
    -
    - bronze badge -
    Proofreader - 16/100
    -
    -
    -
    -
    -
    -
    -
    - -
    - {% header "h2", "Segmented" %} -

    Stacks provides dividers to create segmented progress bars. The progess bar can be either independent of the dividers, or locked to them.

    - - {% tip, "warning", "mb24" %} - Note: The segmented variant has been deprecated. A similar layout can be achieved with several .s-progress-bar elements in a container. - {% endtip %} -
    -{% highlight html %} -
    -
    -
      -
    1. -
    2. -
    3. -
    4. -
    5. -
    6. -
    -
    -{% endhighlight %} -
    -
    -
    -
      -
    1. -
    2. -
    3. -
    4. -
    5. -
    6. -
    -
    -
    -
    -
    - -
    - {% header "h2", "Stepped" %} -

    If your experience has a small number of discrete steps, it might be appropriate to use a stepped progress bar.

    -
    -{% highlight html %} -
    - - - - -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -{% endhighlight %} -
    -
    - - - - -
    -
    -
    -
    -
    Payment
    -
    - -
    -
    -
    -
    Create account
    -
    -
    -
    -
    -
    diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/prose.html b/packages/stacks-docs-next/src/docs/legacy/product/components/prose.html deleted file mode 100644 index b90afd302c..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/prose.html +++ /dev/null @@ -1,186 +0,0 @@ ---- -layout: page -title: Prose -description: The prose component provides proper styling for rendered Markdown. -tags: components ---- -
    - {% header "h2", "Classes" %} -
    - - - - - - - - - - - - - - - - - - - - - - - - - -
    ClassOutput
    .s-proseAdds proper styling for rendered Markdown.
    .s-prose__xsOur most compact version with the smallest font size and line height.
    .s-prose__smDecreases the base font size and line height.
    .s-prose__mdIncreases the base font size and line height.
    -
    -
    -
    - {% header "h2", "Examples" %} - {% header "h3", "Minimal" %} -

    We modified this test document from the folks at Tailwind to demonstrate and explain our design choices.

    -
    -
    - -
    -
    - - {% header "h3", "Answer" %} -

    The following is a real-world answer taken from Stack Overflow

    -
    -
    - -
    -
    - - {% header "h3", "Link preview" %} -

    Let’s see what a link preview looks like within the prose component.

    -
    -
    -
    - -
    -
    -
    - - {% header "h3", "Full Markdown spec" %} -

    This example includes the full kitchen-sink collection of everything the Markdown spec includes.

    -
    -{% highlight html %} -
    - … -
    -{% endhighlight %} -
    - -
    -
    -
    - -
    - {% header "h2", "Sizing" %} - {% header "h3", "Extra Small" %} -
    -{% highlight html %} -
    - … -
    -{% endhighlight %} -
    - -
    -
    - - {% header "h3", "Small" %} -

    In ancilliary content like comments or side-discussions, it may be appropriate to add the small variation.

    -
    -{% highlight html %} -
    - … -
    -{% endhighlight %} -
    - -
    -
    - - {% header "h3", "Default" %} -
    -{% highlight html %} -
    - … -
    -{% endhighlight %} -
    - -
    -
    - - {% header "h3", "Medium" %} -

    Depending on the context for displaying the prose component, it may be appropriate to size text up to maintain readability.

    -
    -{% highlight html %} -
    - … -
    -{% endhighlight %} -
    - -
    -
    -
    - - diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/select.html b/packages/stacks-docs-next/src/docs/legacy/product/components/select.html deleted file mode 100644 index 865c41f9d1..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/select.html +++ /dev/null @@ -1,268 +0,0 @@ ---- -layout: page -title: Select -svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-select--docs -figma: https://www.figma.com/design/do4Ug0Yws8xCfRjHe9cJfZ/Project-SHINE---Product-UI?node-id=4537-50988 -description: A selectable menu list from which a user can make a single selection. Typically they are used when there are more than four possible options. The custom select menu styling is achieved by wrapping the select tag within the .s-select class. -tags: components ---- -
    - {% header "h2", "Base style" %} -
    -{% highlight html %} -
    - -
    - -
    -
    - -
    - -
    - -
    -
    -{% endhighlight %} -
    -
    -
    -
    - -
    - -
    -
    -
    -
    -
    - -
    - -
    -
    -
    -
    -
    -
    -
    - -
    - {% header "h2", "Validation states" %} -

    Validation states provides the user feedback based on their interaction (or lack of interaction) with a select menu. These styles are applied by applying the appropriate class to the wrapping parent container.

    - - {% header "h3", "Validation classes" %} -
    - - - - - - - - - - {% for item in inputs.select %} - {% assign state = item.validation %} - {% for class in state %} - - - - - - {% endfor %} - {% endfor %} - -
    ClassAppliesDefinition
    {{ class.class }}{{ class.applies }}{{ class.description }}
    -
    - - {% header "h3", "Validation examples" %} - {% header "h4", "Warning" %} -
    -{% highlight html %} -
    - -
    - - @Svg.Alert.With("s-input-icon") -
    -
    -{% endhighlight %} -
    -
    - -
    - - {% icon "Alert", "s-input-icon" %} -
    -
    -
    -
    - - {% header "h4", "Error" %} -
    -{% highlight html %} -
    - -
    - - @Svg.AlertCircle.With("s-input-icon") -
    -
    -{% endhighlight %} -
    -
    - -
    - - {% icon "AlertCircle", "s-input-icon" %} -
    -
    -
    -
    - - {% header "h4", "Success" %} -
    -{% highlight html %} -
    - -
    - - @Svg.Check.With("s-input-icon") -
    -
    -{% endhighlight %} -
    -
    - -
    - - {% icon "Check", "s-input-icon" %} -
    -
    -
    -
    -
    - -
    - {% header "h2", "Sizes" %} -
    - - - - - - - - - - - {% for item in inputs.select %} - {% assign size = item.sizes %} - {% for item in size %} - - - - - - - {% endfor %} - {% endfor %} - -
    NameSizeClassExample
    {{ item.name }}{{ item.size }}{% if item.class == "N/A" %}{{ item.class }}{% else %}.{{ item.class }}{% endif %}
    -
    -
    diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/sidebar-widgets.html b/packages/stacks-docs-next/src/docs/legacy/product/components/sidebar-widgets.html deleted file mode 100644 index f08a84b3a8..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/sidebar-widgets.html +++ /dev/null @@ -1,675 +0,0 @@ ---- -layout: page -title: Sidebar widgets -description: Sidebar widgets are flexible containers that provide a lot of patterns that are helpful in a variety of sidebar uses. -tags: components ---- - -
    - {% header "h2", "Basic style" %} - -

    - In its simplest form, the sidebar widget is an element with class .s-sidebarwidget and a child of class .s-sidebarwidget--content. - This sets up a sidebar widget with the appropriate inner spacing, and you can put into it whatever you want. -

    - -

    - By default the content is a flex container. If you require display: block instead, add the d-block class. -

    - -
    -{% highlight html %} -
    -
    -
    - … -
    - … -
    -
    -{% endhighlight %} -
    -
    -
    -
    - 13,672,187 -
    - questions -
    -
    -
    -
    - - {% header "h3", "Simple items" %} -

    Oftentimes, your widget will be a list of similar, relatively simple items. By giving the s-sidebarwidget--content a modifier class s-sidebarwidget__items, and giving the items a class of s-sidebarwidget--item, the content will be spaced out nicely.

    -

    In this case, each item is a flex container by default. If you require display: block instead, specifically add the d-block class to the s-sidebarwidget--item, or add the s-sidebarwidget__block-items modifier class to the s-sidebarwidget--content to make the change to all items.

    - -
    -{% highlight html %} -
    -
    -
    - - balpha contributed 6 edits -
    -
    - - Paweł contributed 7 edits -
    -
    - - Aaron Shekey contributed 3 edits -
    -
    -
    -{% endhighlight %} -
    -
    -
    -
    - demo avatar - balpha contributed 6 edits -
    -
    - demo avatar - Paweł contributed 7 edits -
    -
    - demo avatar - Aaron Shekey contributed 3 edits -
    -
    -
    -
    -
    - -

    - There is built-in support for table content. The table element should have the classes s-sidebarwidget--content s-sidebarwidget__items, and the tr elements should be s-sidebarwidget--item. -

    - - {% header "h3", "Complex items" %} -

    - If your items are more complex than that, whitespace may not be enough to separate them clearly. In this case instead of a single s-sidebarwidget--content element with multile items, use multiple s-sidebarwidget--content elements, which will be separated by subtle divider lines. -

    - -
    -{% highlight html %} -
    -
    - -
    - balpha
    - contributed 6 edits
    - joined 8 months ago -
    -
    -
    - -
    - Paweł
    - contributed 7 edits
    - joined 1 year 10 months ago -
    -
    -
    - -
    - Aaron Shekey
    - contributed 3 edits
    - joined 5 months ago -
    -
    -
    -{% endhighlight %} -
    -
    -
    - demo avatar -
    - balpha
    - contributed 6 edits
    - joined 8 months ago -
    -
    -
    - demo avatar -
    - Paweł
    - contributed 7 edits
    - joined 1 year 10 months ago -
    -
    -
    - demo avatar -
    - Aaron Shekey
    - contributed 3 edits
    - joined 5 months ago -
    -
    -
    -
    -
    - - {% header "h3", "Headers" %} -

    - Besides s-sidebarwidget--content, the other possible child class is s-sidebarwidget--header, which unsurprisingly creates a header. Headers can be used both as a title for the widget, as well as to create several sections inside the widget. -

    - - {% tip, "warning", "mb32" %} - The examples of s-sidebarwidget--header are shown shown added to h2 elements in examples, but the appropriate heading level may differ depending on context. Please use the appropriate heading level for the context to ensure heading levels only increase by 1. - {% endtip %} - -
    -{% highlight html %} -
    -

    - Stats -

    - - - - - - - - - - - - - - - -
    asked4 years, 4 months ago
    viewed7,437 times
    active2 months ago
    -
    -{% endhighlight %} -
    -
    - - - - - - - - - - - - - - - - -
    asked4 years, 4 months ago
    viewed7,437 times
    active2 months ago
    -
    -
    -
    - -

    - The s-sidebarwidget__small-bold-text modifier is available for headers to modify the text appearance. -

    - -
    -{% highlight html %} -
    -

    - Stats -

    - - - - - -
    created9 years, 1 month ago
    -

    - Recent Hot Answers -

    - -
    -{% endhighlight %} -
    -
    - - - - - - - - - - - - - - - - - - -
    created9 years, 1 month ago
    viewed88,020 times
    active3 days ago
    editors164
    - - -
    -
    -
    -
    - -
    - {% header "h2", "Alternative colors" %} - -

    - Three modifier classes are available for changing the background color of an s-sidebarwidget: s-sidebarwidget__yellow, s-sidebarwidget__blue, - and s-sidebarwidget__green. -

    - -
    -{% highlight html %} -
    -
    -
    -{% endhighlight %} -
    -
    - - -
    -
    - - -
    - Visibility: Public - Update privacy -
    -
    - -
    -
    - Your Developer Story is searchable by employers. -
    -
    -
    -
    -
    -
    -
    - -
    - {% header "h2", "Navigation" %} -

    - A common use for sidebar widgets is as a navigation block or table of contents, including a highlight of the page that the user is currently looking at. -

    -

    - The recommended pattern, as shown in the example below, is to make the s-sidebarwidget a nav element, and for each group of links to create a ul with the classes s-sidebarwidget--content s-sidebarwidget__items, within which each li is of class s-sidebarwidget--item. -

    -

    - The currently active navigation item should have the aria-current attribute set to "page" (if it is a direct link to the very page that the user is looking at) or "true" (in all other cases, e.g. if it is a link to a page that is conceptually a parent or the current page). This aria-current attribute should be placed on the a element. -

    - -
    -{% highlight html %} - -{% endhighlight %} -
    - -
    -
    - - {% header "h3", "Second-level navigation" %} -

    - If you have a second level of navigation, you can add a ul of class -subnav to the top-level item. Highlighting the currently active navigation is a little more constrained in this case: -

    -

    - If the currently active top-level element has a subnavigation, the top-level aria-current must be on the a, not the li. -

    -

    - The currently active second-level element must have its aria-current on the li, not the a. -

    - - -
    - -
    - {% header "h2", "Header actions" %} -

    - There is often a need for a header to contain a link or link-like clickable that refers to the whole widget or to the section that this header starts. We call this an “action link”, and it’s created by adding the class s-sidebarwidget--action. -

    -

    - This link must come before the header text, otherwise it will not be placed correctly should the header ever wrap to multiple lines. -

    - -
    -{% highlight html %} -
    -

    - Watched Tags - - Edit - -

    -
    - -
    -
    -{% endhighlight %} -
    -
    -
    - -
    - -
    - - -
    - -
    - - - - - - - - - - - - -
    64remote jobs
    238 - jobs in Berlin, Deutschland (within 20 km) -
    -
    -
    -
    -
    -
    - -
    - {% header "h2", "Accordions" %} -

    - In order to create an accordion, i.e. to make part of the sidebar widget expandable / collapsible, you can make use of the s-expandable component. -

    - -

    The s-sidebarwidget-header element that controls the accordion needs a modifier class of s-sidebarwidget__expanding-control in order to display the expander arrow. Beyond that, it needs all the attributes as described for the controlling button in the expandable documentation.

    - -

    The (one or more) content elements that are meant to be collapsed must be wrapped in the s-expandable element; inside this wrapper element there is the s-expandable--content. This can be the same element as the s-sidebarwidget--content element (if there’s only one content element that is meant to be collapsed), or it can be an additional wrapper element around the content element(s).

    - -
    -{% highlight html %} -
    -

    - 2 Recent Searches - - Clear - -

    -
    -
    - - - - - - - - - -
    - remote jobs -
    - -
    -
    -
    -
    -{% endhighlight %} -
    -
    - -
    - -
    - -
    -
    -
    -
    - You have no favorite jobs -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/skeleton.html b/packages/stacks-docs-next/src/docs/legacy/product/components/skeleton.html deleted file mode 100644 index 520117f0cc..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/skeleton.html +++ /dev/null @@ -1,70 +0,0 @@ ---- -layout: page -title: Skeleton -svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-skeleton--docs -description: A skeleton component is used to indicate that a large block of content, such as an AI responses or post summary, is loading. -tags: components ---- - -
    - {% header "h2", "Classes" %} -
    - - - - - - - - - - {% for item in skeleton.skeleton %} - - - - - - {% endfor %} - -
    ClassApplied toDescription
    {{ item.class }}{% if item.applies == "N/A" %}{{ item.applies }}{% else %}{{ item.applies }}{% endif %}{{ item.description }}
    -
    -
    - -
    - {% header "h2", "Examples" %} - {% header "h3", "Base style" %} -

    The default skeleton should be used when loading large blocks will render multiple rows of content.

    -
    -{% highlight html %} -
    -
    Loading…
    -
    -{% endhighlight %} -
    -
    -
    Loading…
    -
    -
    -
    - - {% header "h3", "AI" %} -

    The ai variant of the skeleton should be used when loading AI responses.

    -
    -{% highlight html %} -
    -
    Loading…
    -
    -{% endhighlight %} -
    -
    -
    Loading…
    -
    -
    -
    -
    - -
    - {% header "h2", "Accessibility" %} -

    For accessibility, it’s important to add fallback loading text that is visible to screen readers. Additionally, you should add aria-busy="true" to the component that triggered the loading state while the skeleton is shown.

    -
    - diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/spinner.html b/packages/stacks-docs-next/src/docs/legacy/product/components/spinner.html deleted file mode 100644 index 6f5d6d343a..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/spinner.html +++ /dev/null @@ -1,91 +0,0 @@ ---- -layout: page -title: Spinner -svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-spinner--docs -description: A loading spinner is used for indicating a loading state of a page or section. It is colored according to the currently applying font color. -tags: components ---- -
    - {% header "h2", "Classes" %} -
    - - - - - - - - - - {% for item in spinner.spinner %} - - - - - - {% endfor %} - -
    ClassApplied toDescription
    {{ item.class }}{% if item.applies == "N/A" %}{{ item.applies }}{% else %}{{ item.applies }}{% endif %}{{ item.description }}
    -
    -
    -
    - {% header "h2", "Examples" %} -

    The spinner’s colors are based on the font color of the element, which will usually be inherited from its parent. If you need to apply a color override, the font color classes can provide themability. In most situations, a black and white spinner based on the default font color will be appropriate.

    -

    For accessibility, it’s important to add fallback loading text that is visible to screen readers. Additionally, you should add aria-busy="true" to the component that triggered the loading state while the spinner is shown.

    -
    -{% highlight html %} -
    -
    Loading…
    -
    -
    -
    Loading…
    -
    -
    -
    Loading…
    -
    -
    -
    Loading…
    -
    -
    -
    Loading…
    -
    -
    - Loading… -
    -{% endhighlight %} -
    -
    -
    -
    -
    Loading…
    -
    -
    -
    -
    -
    Loading…
    -
    -
    -
    -
    -
    Loading…
    -
    -
    -
    -
    -
    Loading…
    -
    -
    -
    -
    -
    Loading…
    -
    -
    -
    -
    - Loading… -
    -
    -
    -
    -
    -
    diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/tables.html b/packages/stacks-docs-next/src/docs/legacy/product/components/tables.html deleted file mode 100644 index f6c4bd164c..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/tables.html +++ /dev/null @@ -1,1256 +0,0 @@ ---- -layout: page -title: Tables -js: true -description: Tables are used to list all information from a data set. The base style establishes preferred padding, font-size, and font-weight treatments. To enhance or customize the look of the table, apply any additional classes listed below. -tags: components ---- - -
    - {% header "h2", "Default style" %} -

    Tables should be wrapped in a container, .s-table-container. This provides horizontal scrolling when necessary in the smallest breakpoints. The default table style is a bordered cell layout with a stylized header row.

    -
    -{% highlight html %} -
    - - - - - - - - - - - - - - - - - -
    -
    -{% endhighlight %} -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameReputationJoinedLast seen
    Aaron Shekey -
    -
      -
    • 350
    • -
    • - - gold bling - - 1 -
    • -
    • - - silver bling - - 2 -
    • -
    • - - bronze bling - - 7 -
    • -
    -
    -
    Dec 1 ’17 at 20:24just now
    Joshua Hynes -
    -
      -
    • 260
    • -
    • - - gold bling - - 1 -
    • - - bronze bling - - 4 -
    • -
    -
    -
    Feb 12 at 18:47Aug 10 at 14:57
    Piper Lawson -
    -
      -
    • 1460
    • -
    • - - gold bling - - 1 -
    • -
    • - - silver bling - - 3 -
    • -
    • - - bronze bling - - 12 -
    • -
    -
    -
    Jul 5 at 14:32Aug 14 at 12:41
    -
    -
    -
    -
    - -
    - {% header "h2", "Borders & backgrounds" %} -

    By default, tables are outlined, have borders on all cells, and have a styled header. Depending on the size and complexity of a table, these can all be configured.

    - {% header "h3", "Horizontal borders" %} -

    Shows only horizontal table cell borders. Good for tables with lots of data that can be sorted and filtered.

    -
    -{% highlight html %} -
    - - … -
    -
    -{% endhighlight %} -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    First nameLast nameUsername
    1AaronS.@aarons
    2JoshuaH.@joshuah
    3PawełL.@pawełl
    4TedG.@so-ted
    -
    -
    -
    - - {% header "h3", "Simple borders" %} -

    Removes most of the default borders and backgrounds. Good for tables without much data that don't need to be sorted or filtered.

    -
    -{% highlight html %} -
    - - … -
    -
    -{% endhighlight %} -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    First nameLast nameUsername
    1AaronS.@aarons
    2JoshuaH.@joshuah
    3PawełL.@pawełl
    4TedG.@so-ted
    -
    -
    -
    - - {% header "h3", "No borders" %} -

    Removes all table cell borders.

    -
    -{% highlight html %} -
    - - … -
    -
    -{% endhighlight %} -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    First nameLast nameUsername
    1AaronS.@aarons
    2JoshuaH.@joshuah
    3PawełL.@pawełl
    4TedG.@so-ted
    -
    -
    -
    - {% header "h3", "Zebra striping" %} -

    When tables have a lot of information, you can help users group information and isolate data by adding zebra striping.

    - -
    -{% highlight html %} -
    - - … -
    -
    -{% endhighlight %} -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    First NameLast NameUsername
    1AaronS.@aarons
    2JoshuaH.@joshuah
    3PawełL.@pawełl
    4TedG.@so-ted
    -
    -
    -
    -
    - -
    - {% header "h2", "Spacing" %} -

    A table’s padding can be changed to be more or less condensed.

    - - {% header "h3", "Small" %} -
    -{% highlight html %} -
    - - … -
    -
    -{% endhighlight %} -
    -
    - - - - - - - - - - - - - - - - - - - - - - - -
    First NameLast NameUsername
    1AaronS.@aarons
    2JoshuaH.@joshuah
    -
    -
    -
    - - {% header "h3", "Default" %} -
    -{% highlight html %} -
    - - … -
    -
    -{% endhighlight %} -
    -
    - - - - - - - - - - - - - - - - - - - - - - - -
    First NameLast NameUsername
    1PawełL.@pawełl
    2TedG.@so-ted
    -
    -
    -
    - - {% header "h3", "Large" %} -
    -{% highlight html %} -
    - - … -
    -
    -{% endhighlight %} -
    -
    - - - - - - - - - - - - - - - - - - - - - - - -
    First NameLast NameUsername
    1AaronS.@aarons
    2JoshuaH.@joshuah
    -
    -
    -
    -
    - -
    - {% header "h2", "Cell widths" %} -

    Table columns will size themselves based on their content. To set a specific width, you can use one of the following table cell classes to specify the width for any column.

    - {% header "h3", "Classes" %} - - - - - - - - - {% for item in tables.widths %} - - - - - {% endfor %} - -
    ClassWidth
    {{ item.class }}{{ item.output }}
    - - {% header "h3", "Examples" %} -
    -{% highlight html %} -// Example 1 -
    - - - - - -
    -
    -// Example 2 -
    - - - - - - - - -
    -
    -// Example 3 -
    - - - - - - - - - -
    -
    -{% endhighlight %} -
    -
    - - - - - -
    .s-table--cell2No Class
    -
    -
    - - - - - - - - -
    .s-table--cell3.s-table--cell6No ClassNo ClassNo Class
    -
    -
    - - - - - - - - - -
    .s-table--cell4No ClassNo ClassNo ClassNo Class.s-table--cell2
    -
    -
    -
    -
    - -
    - {% header "h2", "Alignment" %} - {% header "h3", "Vertical alignment" %} -

    The default vertical alignment is middle. You change a table’s or a specific cell’s vertical alignment by using the Vertical Alignment atomic classes.

    -
    -{% highlight html %} -
    - - - - - - - - -
    -
    -
    - - - - - - - - -
    -
    -{% endhighlight %} -
    -
    - - - - - - - - -
    .va-top.va-middle.va-bottom
    -
    -
    - - - - - - - - -
    .s-table.va-bottom.s-table.va-bottom.s-table.va-bottom
    -
    -
    -
    - - {% header "h3", "Text alignment" %} -

    Text alignment can be changed at a table or cell level by using atomic text alignment classes. Columns containing copy should be left-aligned. Columns containing numbers should be right-aligned.

    -
    -{% highlight html %} -
    - - - - - - - - -
    -
    -
    - - - - - - - - -
    -
    -{% endhighlight %} -
    -
    - - - - - - - - -
    .ta-left.ta-center.ta-right
    -
    -
    - - - - - - - - -
    .s-table.ta-right.s-table.ta-right.s-table.ta-right
    -
    -
    -
    -
    -
    - {% header "h2", "Sortable tables" %} -

    To indicate that the user can sort a table by different columns, add the s-table__sortable class to the table.

    -

    The <th> cells should include arrows to indicate sortability or the currently applied sorting. In addition, the column that is currently sorted should be indicated with the is-sorted class on its <th>.

    -
    -{% highlight html %} -
    - - - - - - - - - - - - … - -
    - - - - - - - - - - - - - -
    -
    -{% endhighlight %} -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - Listing {% icon "ArrowDownSm" %} - - Status {% icon "ArrowUpDownSm" %} - - - - - - -
    - Site Reliability Engineer, Generalist
    - Sydney, Australia -
    RunningSansa Stark50213
    - Senior Product Designer
    - New York, NY, USA -
    RunningRobert Baratheon90015
    - Product Manager, Developer Products
    - London, England -
    RunningSansa Stark31
    -
    -
    -
    - - {% header "h3", "JavaScript sorting" %} -

    Stacks provides built-in functionality for letting the user sort a table by the values in a column through clicking the column header. This requires the complete data to already exist in the table (e.g. it is not going to work if the table is paged and requires a call to the server to update data on sorting). See the JavaScript introduction for general information about JS in Stacks.

    - -

    To make your table user-sortable, do the following:

    - -
      -
    1. Style the table as sortable as explained in the section above.
    2. -
    3. Set data-controller="s-table" on the <table> element.
    4. -
    5. Set data-s-table-target="column" and data-action="click->s-table#sort" on each of the <th> elements that control sorting.
    6. -
    7. - Add the three icons for showing ascending sort, descending sort, and unsorted to each of these header cells, hiding the first two with a d-none class. Add the js-sorting-indicator class to each of the icons, and add js-sorting-indicator-asc, js-sorting-indicator-desc, and js-sorting-indicator-none to the appropriate icon. -
    8. -
    - - {% tip %} - Note: Using js-… classes is not really the optimal way of doing this, and will probably replaced with something better eventually. When that happens, the js-… mechanism will be deprecated but continue to be supported for a while, so you have ample time to update things. - {% endtip %} - -

    By default, the data is sorted by the content of the cell. If you need to use a different value, for example because your cell contains a human-readable date, add a data-s-table-sort-val attribute to the cell.

    - -

    If a column contains any data that is not an integer, the data will be sorted lexicographically. Otherwise it will be sorted numerically, with empty cells being considered the lowest number.

    - -

    If the table contains rows that should not be sorted, but rather always be at the top or always be at the bottom, add data-s-table-sort-to="top" or data-s-table-sort-to="bottom" to the <tr> element.

    - - {% header "h3", "JavaScript data attributes" %} -
    - - - - - - - - - - {% for item in tables.data-attributes %} - - - - - - {% endfor %} - -
    AttributeApplied toDescription
    {{ item.attribute }}{{ item.applies }}{{ item.description }}
    -
    - - {% header "h3", "JavaScript example" %} -
    -{% highlight html %} -
    - - - - - - - - - - - - - - - - - - -
    - - - - - -
    WinterDecember2
    SpringMarch13
    SummerJune25
    FallSeptember13
    Average temperature13
    -
    -{% endhighlight %} -
    -
    - - - - - - - - - - - - - - - - - - -
    - - - - - -
    WinterDecember2
    SpringMarch13
    SummerJune25
    FallSeptember13
    Average temperature13
    -
    -
    -
    -
    -
    - {% header "h2", "Bar graphs" %} -

    To help users, you can add data visualizations into table cells. These are useful to help visualize the reported data and calling extra attention to the table cell. These graphs should always be paired with a number.

    -
    -{% highlight html %} -
    - - … - - - - - - - - - - - - … - -
    1,854 -
    -
    -
    -
    43 -
    -
    -
    -
    -
    -{% endhighlight %} -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ListingStatusOwnerSourceViewsApplies
    - Site Reliability Engineer, Generalist
    - Sydney, Australia -
    RunningSansa Starkstackoverflow.com - 1,854 - -
    -
    -
    -
    - 43 - -
    -
    -
    -
    - Senior Product Designer
    - New York, NY, USA -
    RunningRobert Baratheonlinkedin.com - 900 - -
    -
    -
    -
    - 15 - -
    -
    -
    -
    - Product Manager, Developer Products
    - London, England -
    RunningSansa Starkm.facebook.com - 3 - -
    -
    -
    -
    - 1 - -
    -
    -
    -
    -
    -
    -
    -
    -
    - {% header "h2", "Bulk actions" %} -

    Generally for a checkbox input that’s placed first in the table row for bulk actions.

    -
    -{% highlight html %} -
    - - - - - - - - - - - - - - - - -
    - - -
    - - - … -
    -
    -{% endhighlight %} -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - Display NameFull NameEmail
    - - - SansaStark - Sansa Starksstark@company.com
    - - - RobertBaratheon - Robert Baratheonrbaratheon@company.com
    - - - Test Developer To Be Is Not A Developer Yet - Test Developer To Be Is Not A Developer Yettestdevelopertobeisnotadevyet@team-mgmt.dev.company.com
    -
    -
    -
    -
    -
    - {% header "h2", "Totals row" %} -

    Used mainly with data tables, the totals row increases the font-size for all cells within a row.

    -
    -{% highlight html %} -
    - - … - - … - -
    -
    -{% endhighlight %} -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ListingViewsAppsApp CTR
    Site Reliability Engineer, Generalist - 6,8711875.02%
    Senior Product Designer - 2,24219616.46%
    Product Manager, Developer Products - 3,46922914.9%
    Totals12,58261214.65%
    -
    -
    -
    -
    -
    - {% header "h2", "Inactive rows" %} -

    For tables that include inactive or disabled rows, such as inactive users or teams, .is-disabled can be applied to any <tr>. Additionally, .is-enabled can be applied to any <th> or <td> that you’d like to ignoring the parent disabled styling (such as a persistent link to reactivate a disabled account).

    -
    -{% highlight html %} -
    - - - - - - - - -
    - Add -
    -
    -{% endhighlight %} -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameEmailLast seen
    Aaron Shekeyemailaddress@website.comjust nowRemove
    Joshua Hynesemailaddress@website.comSep 28 ’18Add
    Paweł Ludwiczakemailaddress@website.comApr 17 ’19Add
    Piper Lawsonemailaddress@website.comYesterdayRemove
    Ted Goasemailaddress@website.com5min agoRemove
    -
    -
    -
    - - {% header "h2", "Atomic classes" %} -

    Further control of table behavior is possible with atomic classes. For example, you can make non-table markup display as a table layout by pairing .d-table, .d-table-cell and .tl-fixed.

    -
    - - - - - - - - - {% for item in tables.atomic %} - - - - - {% endfor %} - -
    ClassOutput
    {{ item.class }}{{ item.output }}
    -
    -
    diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/tags.html b/packages/stacks-docs-next/src/docs/legacy/product/components/tags.html deleted file mode 100644 index 13b3a29059..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/tags.html +++ /dev/null @@ -1,135 +0,0 @@ ---- -layout: page -title: Tags -svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-tag--docs -figma: https://svelte.stackoverflow.design/figma/tags -description: Tags are an interactive, community-generated keyword that allow communities to label, organize, and discover related content. Tags are maintained by their respective communities -tags: components ---- -
    - {% header "h2", "Classes" %} -
    - - - - - - - - - - {% for item in tags-component.classes %} - - - - - - {% endfor %} - -
    ClassApplied toDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    -
    - {% header "h2", "Accessibility" %} -

    - Tags should be focusable and navigable with the keyboard. - The various tag states (Required, Moderator, Watched, Ignored) are visually distinct but do not include any text indicators for screen readers. - For that reason it is recommended to provide additional context using hidden text elements with the v-visible-sr class. -

    -
    - -
    - {% header "h2", "Examples" %} - {% header "h3", "Default tag" %} -
    -{% highlight html %} -jquery -javascript -Google Android android
    Sponsored tag
    -{% endhighlight %} -
    -
    - jquery - javascript - Google Android android
    Sponsored tag
    -
    -
    -
    - -{% header "h3", "Moderator" %} -
    -{% highlight html %} -status-completed
    Moderator tag
    -status-bydesign
    Moderator tag
    -status-planned
    Moderator tag
    -{% endhighlight %} -
    -
    - status-completed
    Moderator tag
    - status-bydesign
    Moderator tag
    - status-planned
    Moderator tag
    -
    -
    -
    - -{% header "h3", "Required" %} -
    -{% highlight html %} -discussion
    Required tag
    -feature-request
    Required tag
    -bug
    Required tag
    -{% endhighlight %} -
    -
    - discussion
    Required tag
    - feature-request
    Required tag
    - bug
    Required tag
    -
    -
    -
    - -{% header "h3", "Watched" %} -
    -{% highlight html %} -asp-net
    Watched tag
    -{% endhighlight %} - -
    - -{% header "h3", "Ignored" %} -
    -{% highlight html %} -netscape
    Ignored tag
    -{% endhighlight %} - -
    - -
    - -
    - {% header "h2", "Sizes" %} - - - - - - - - - - {% for item in tags-component.sizes %} - - - - - - {% endfor %} - -
    ClassApplied toExample
    {% if item.class == "N/A" %}.s-tag{% else %}.{{ item.class }}{% endif %}{% if item.class == "N/A" %}{{ item.class }}{% else %}.s-tag{% endif %}css
    -
    \ No newline at end of file diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/textarea.html b/packages/stacks-docs-next/src/docs/legacy/product/components/textarea.html deleted file mode 100644 index f56821a670..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/textarea.html +++ /dev/null @@ -1,173 +0,0 @@ ---- -layout: page -title: Textarea -svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-textarea--docs -figma: https://www.figma.com/design/do4Ug0Yws8xCfRjHe9cJfZ/Project-SHINE---Product-UI?node-id=4537-49735&m=dev -description: Multi-line inputs used by users to enter longer text portions. -tags: components ---- -
    - {% header "h2", "Base style" %} -
    -{% highlight html %} -
    - -
    - -
    -
    -{% endhighlight %} -
    -
    - -
    - -
    -
    -
    -
    -
    - -
    - {% header "h2", "Accessibility" %} -

    - It is recommended to follow the same accessibility guidance as the Input component. - Including marking Textarea's as required via the .s-required-symbol class. -

    -
    - -
    - {% header "h2", "Validation states" %} -

    Validation states provides the user feedback based on their interaction (or lack of interaction) with a textarea. These styles are applied by applying the appropriate class to the wrapping parent container.

    - - {% header "h3", "Validation classes" %} -
    - - - - - - - - - - {% for item in inputs.textarea %} - {% assign state = item.validation %} - {% for class in state %} - - - - - - {% endfor %} - {% endfor %} - -
    ClassAppliesDefinition
    {{ class.class }}{{ class.applies }}{{ class.description }}
    -
    - - {% header "h3", "Validation examples" %} - {% header "h4", "Warning" %} -
    -{% highlight html %} -
    - -
    - - @Svg.Alert.With("s-input-icon") -
    -

    Consider entering a description to help us better help you.

    -
    -{% endhighlight %} -
    -
    - -
    - - {% icon "Alert", "s-input-icon" %} -
    -

    Consider entering a description to help us better help you.

    -
    -
    -
    - - {% header "h4", "Error" %} -
    -{% highlight html %} -
    - -
    - - @Svg.AlertCircle.With("s-input-icon") -
    -

    A description must be provided.

    -
    -{% endhighlight %} -
    -
    - -
    - - {% icon "AlertCircle", "s-input-icon" %} -
    -

    A description must be provided.

    -
    -
    -
    - - {% header "h4", "Success" %} -
    -{% highlight html %} -
    - -
    - - @Svg.Checkmark.With("s-input-icon") -
    -

    Thanks for providing a description.

    -
    -{% endhighlight %} -
    -
    - -
    - - {% icon "Check", "s-input-icon" %} -
    -

    Thanks for providing a description.

    -
    -
    -
    -
    - -
    - {% header "h2", "Sizes" %} -
    - - - - - - - - - - - {% for item in inputs.textarea %} - {% assign size = item.sizes %} - {% for item in size %} - - - - - - - {% endfor %} - {% endfor %} - -
    NameSizeClassExample
    {{ item.name }}{{ item.size }}{% if item.class == "N/A" %}{{ item.class }}{% else %}.{{ item.class }}{% endif %} -
    - -
    -
    -
    -
    diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/toggle-switch.html b/packages/stacks-docs-next/src/docs/legacy/product/components/toggle-switch.html deleted file mode 100644 index c8ed370088..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/toggle-switch.html +++ /dev/null @@ -1,126 +0,0 @@ ---- -layout: page -title: Toggle switch -figma: https://svelte.stackoverflow.design/figma/toggle-switches -description: A toggle is used to quickly switch between two or more possible states. They are most commonly used for simple “on/off” switches, but can contain multiple options. -tags: components ---- -
    - {% header "h2", "Classes" %} -
    - - - - - - - - - - - - - - - - - - - - - -
    ClassDescription
    .s-toggle-switchClass to apply toggle switch styling to input[type="checkbox"] or on a parent of multiple input[type="radio"] elements.
    .s-toggle-switch__multipleModifies the base container to accept multiple options.
    .s-toggle-switch--label-offApply to the “Off” or “None” option so it’s highlighted state isn’t lit up green.
    -
    -
    -
    - {% tip, "warning", "mb24" %} - Deprecation: the markup for toggle switches has changed. Please update your toggle switches to match the markup structure detailed on this page. - {% endtip %} - {% header "h2", "Examples" %} - {% header "h3", "Single" %} -

    A single toggle is appropriate for simple “on/off” states eg. enabling emails, markdown editing, or various cookies. Toggle switches take up less space than an “on/off” radio button group and communicate their intended purpose more clearly than a checkbox that toggles functionality. They also provide consistency between desktop and mobile experiences.

    -
    - {% highlight html %} -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    - {% endhighlight %} -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    -
    - - {% header "h3", "3 or more options" %} -

    Toggles switches can be extended to choose between three or more states—in this case, the user is setting the frequency of an email digest. Use the multiple toggle instead of a radio group when unifying the aesthetics is important.

    -
    - {% highlight html %} -
    - -
    - - - - - - - - -
    -
    - {% endhighlight %} -
    -
    - -
    - - - - - - - - -
    -
    -
    - -
    - - - - - - -
    -
    -
    -
    -
    diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/topbar.html b/packages/stacks-docs-next/src/docs/legacy/product/components/topbar.html deleted file mode 100644 index 3f09e3d642..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/topbar.html +++ /dev/null @@ -1,215 +0,0 @@ ---- -layout: page -title: Topbar -description: The topbar component is a navigation bar that is placed at the top of the page. -tags: components ---- - -
    - {% header "h2", "Classes" %} -
    - - - - - - - - - - {% for item in topbar %} - - - - - - {% endfor %} - -
    ClassApplies toDescription
    {{ item.class }}{{ item.applies | default: "N/A" | markdown | newline_to_br }}{{ item.description | markdown }}
    -
    -
    - -
    - {% header "h2", "Basic usage" %} -

    At their most basic, our topbar component provides branding and context for the user. In this example, we have a scaled back version showing some global navigation, user settings & preferences, and notifications.

    -
    -{% highlight html %} -
    - Skip to main content - -
    -{% endhighlight %} -
    - {% render 'topbar.html', hideNavigation: true, hideSearch: true, showMenu: true %} -
    -
    - - {% header "h3", "Skip Link" %} -

    All topbars must include a skip link. - Usually a skip link should be the first focusable element of a page (with the expection of cookie consent dialogs). - Skip links are a mechanism to bypass blocks of content that are repeated on multiple web pages and comply with WCAG SC 2.4.1.

    - - {% tip, "info", "mb24" %} - Note: Skip links become visible only when focused via keyboard navigation and they are announced by screen readers. In the example below hit Tab on your keyboard to see it appearing when in focus. - {% endtip %} -
    -{% highlight html %} -
    - Skip to main content -
    -
    -{% endhighlight %} -
    - {% render 'topbar.html', hideNavigation: true, hideSearch: true %} -
    -
    -
    - -
    - {% header "h2", "Advanced usage" %} -

    Depending on the user's authentication levels, we may need to include lots of options and menus. The topbar can include new marketing notifications, marketing navigation, a search bar, user details, moderator tools, review queues, achievements, inbox, help, and various bits of navigation.

    - - {% header "h3", "Theming" %} -

    By default, the topbar automatically switches between light and dark modes as expected. In specific products like Teams, we choose to force a dark version to help the user differentiate between contexts. You can choose either light or dark by applying their respective classes to the main component.

    -
    -{% highlight html %} -
    -
    -
    -{% endhighlight %} -
    - {% assign variations = "s-topbar__auto,s-topbar__dark,s-topbar__light" | split: "," %} -
    - {% for variation in variations %} -
    -

    {{ variation | split: "__" | last | capitalize }}

    - {% render 'topbar.html', additionalClass: variation, isMod: true %} -
    - {% endfor %} -
    -
    -
    - - {% header "h3", "Search bar" %} -

    The topbar can also include a search bar. Depending on the user’s products, it may be appropriate to add a select menu to choose the context for their search.

    -
    -{% highlight html %} -
    - Skip to main content -
    - - - - - -
    -
    -{% endhighlight %} -
    -
    -
    -

    With select

    - {% render 'topbar.html', showNavigation: false, hideUserCard: true %} -
    -
    -

    Input only

    - {% render 'topbar.html', showNavigation: false, hideUserCard: true, hideSelect: true %} -
    -
    -
    -
    - - {% header "h3", "Navigation / Notices / CTAs" %} -

    If a user is logged out, or is anonymous, we provide a container for various calls to actions. This is a less opinionated container that only provides layout without styling of the individual children.

    -
    -{% highlight html %} -
    - Skip to main content -
    - - - - - New - - - - - -
    -
    -{% endhighlight %} -
    - {% render 'topbar.html', showNotices: true, showFullNavigation: true, hideSearch: true, showCtas: true %} -
    -
    - - {% header "h3", "Variable content width" %} -

    By default, the topbar has a container that is full width, up to our widest point as defined by our global variables. If you need to override this, you can apply any combination of atomic base classes to the container.

    -
    -{% highlight html %} -
    - Skip to main content -
    -
    -{% endhighlight %} -
    - {% render 'topbar.html', containerClass: "wmx75", hideUserCard: true %} -
    -
    -
    - - diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/uploader.html b/packages/stacks-docs-next/src/docs/legacy/product/components/uploader.html deleted file mode 100644 index 04a3036fbd..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/uploader.html +++ /dev/null @@ -1,267 +0,0 @@ ---- -layout: page -title: Uploader -js: true -description: The Stacks uploader is a custom-styled file input with added functionality to preview the file or files the user is uploading. -tags: components ---- -
    - {% header "h2", "Classes" %} -
    - - - - - - - - - - {% for item in uploader-component.classes %} - - - - - - {% endfor %} - -
    ClassApplied toDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    -
    - {% header "h2", "JavaScript" %} - {% header "h3", "Attributes" %} -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    AttributeApplied toDescription
    data-controller="s-uploader"Controller elementWires up the element to the uploader controller. This may be a .s-uploader element or a wrapper element.
    data-target="s-uploader.uploader".s-uploaderWires up the element containing input, previews, and reset targets.
    data-s-uploader-target="input".s-uploader--inputDesignates the file input element.
    data-target="s-uploader.previews".s-uploader--previewsDesignates the element to act as a container to file preview(s).
    data-action="input->s-uploader#handleInput"input[type=file] elementWires up the element to provide files for preview on change.
    data-action="click->s-uploader#reset"Any child elementWires up the element to reset the uploader to its initial state.
    data-s-uploader-show-on-inputAny child elementToggles element visibility. Shows when input has value.
    data-s-uploader-hide-on-inputAny child elementToggles element visibility. Hides when input has value.
    data-s-uploader-enable-on-inputAny child elementToggles element disabled state. Disables when input has no value.
    -
    -
    -
    - {% header "h2", "Examples" %} -

    Including a file input with the class s-uploader--input within s-uploader will provide the correct styling for an upload section.

    - - {% header "h3", "Profile picture" %} -

    In this example, we’re showing a single file input with an image as the example’s placeholder illustration.

    -
    -{% highlight html %} - -
    -
    - -
    -
    -
    - -
    - @Svg.Spot.Image.With("fc-medium mb8") -
    Drag an image to upload
    -
    - Or choose your image -
    -
    -
    -
    -
    - - -
    -
    -{% endhighlight %} -
    - -
    -
    - -
    -
    -
    - -
    - {% spot "Image", "fc-medium mb8" %} -
    Drag an image to upload
    -
    - Or choose your image -
    -
    -
    -
    -
    - - -
    -
    -
    -
    - - {% header "h3", "Multiple files" %} -

    In this example, this uploader accepts multiple documents so we’ve swapped @Svg.Spot.Image for @Svg.Spot.DocumentAlt and changed the input’s description and attributes to allow for multiples.

    -
    -{% highlight html %} - -
    -
    - -
    -
    -
    - -
    - @Svg.Spot.Image.With("fc-medium mb8") -
    Drag some files to upload
    -
    - Or choose your files -
    -
    -
    -
    -
    - - -
    -
    -{% endhighlight %} -
    - -
    -
    - -
    -
    -
    - -
    - {% spot "DocumentAlt", "fc-medium mb8" %} -
    Drag some files to upload
    -
    - Or choose your files -
    -
    -
    -
    -
    - - -
    -
    -
    -
    -
    diff --git a/packages/stacks-docs-next/src/docs/legacy/product/components/user-cards.html b/packages/stacks-docs-next/src/docs/legacy/product/components/user-cards.html deleted file mode 100644 index c5bb1ccf11..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/components/user-cards.html +++ /dev/null @@ -1,598 +0,0 @@ ---- -layout: page -title: User cards -svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-usercard--docs -description: User cards are a combination of a user and metadata about the user or post -tags: components ---- -
    - {% header "h2", "Classes" %} -
    - - - - - - - - - - {% for item in user-cards-component.classes %} - - - - - - {% endfor %} - -
    ClassApplied toDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    -
    -
    -
    - {% header "h2", "Examples" %} - {% header "h3", "Base" %} -
    -{% highlight html %} -
    - - - - -
    - -
      -
    • -
    • -
    • -
    • -
    -
    -
    -{% endhighlight %} -
    -
    - - - demo avatar - -
    - Paul Wright -
      -
    • 2,500
    • -
    • - - gold bling - - 5 -
    • -
    • - - silver bling - - 9 -
    • -
    • - - bronze bling - - 1 -
    • -
    -
    -
    - -
    - - - demo avatar - -
    - -
    Paul Wright
    -
    Mod
    -
    -
      -
    • 2,500
    • -
    • - - gold bling - - 5 -
    • -
    • - - silver bling - - 9 -
    • -
    • - - bronze bling - - 1 -
    • -
    -
    -
    -
    -
    -
    - -
    - {% header "h3", "Highlighted" %} -

    Highlights the entire user card by adding a background color, some padding, and rounded corners. Used for post authors and edits.

    -
    -{% highlight html %} -
    - - - - -
    - -
      -
    • -
    • -
    • -
    • -
    -
    - - -
    - @Svg.StarVerifiedSm Partner -
    -
    -{% endhighlight %} -
    -
    - - - demo avatar - -
    - Paul Wright -
      -
    • 2,500
    • -
    • - - gold bling - - 5 -
    • -
    • - - silver bling - - 9 -
    • -
    • - - bronze bling - - 1 -
    • -
    -
    -
    - -
    -
    -
    - - - demo avatar - -
    - Paul Wright -
      -
    • 2,500
    • -
    • - - gold bling - - 5 -
    • -
    • - - silver bling - - 9 -
    • -
    • - - bronze bling - - 1 -
    • -
    -
    -
    - {% icon "StarVerifiedSm" %} Recognized by Hum -
    -
    -
    - -
    -
    - - - demo avatar - -
    - Paul Wright -
      -
    • 2,500
    • -
    • - - gold bling - - 5 -
    • -
    • - - silver bling - - 9 -
    • -
    • - - bronze bling - - 1 -
    • -
    -
    -
    - {% icon "StarVerifiedSm" %} Recognized by Hum -
    -
    -
    -
    -
    -
    -
    - -
    - {% header "h3", "Full" %} -

    Displays a larger avatar, best paired with additional tags meta data. Currently used in user directories.

    -
    -{% highlight html %} -
    - - - -
    - -
    -
    -
    -
      -
    • -
    • -
    • -
    • -
    -
    -
    - - - -
    -
    - - -
    - @Svg.StarVerifiedSm Recognized by -
    -
    -{% endhighlight %} -
    -
    - - demo avatar - -
    - -
    Paul Wright
    -
    Staff
    -
    Admin
    -
    -
      -
    • 2,500
    • -
    • - - gold bling - - 5 -
    • -
    • - - silver bling - - 9 -
    • -
    • - - bronze bling - - 1 -
    • -
    -
    Paris, France
    -
    - js - node.js - graphQL -
    -
    -
    - -
    - - demo avatar - -
    - -
    Nick Craver
    -
    Mod
    -
    -
      -
    • 17k
    • -
    • - - gold bling - - 108 -
    • -
    • - - silver bling - - 265 -
    • -
    • - - bronze bling - - 812 -
    • -
    -
    Architecture Lead
    -
    North Carolina
    -
    - .net - sre -
    -
    -
    - -
    - - demo avatar - -
    - - Aaron Shekey - -
      -
    • 768
    • -
    • - - silver bling - - 9 -
    • -
    • - - bronze bling - - 1 -
    • -
    -
    Senior Product Designer
    -
    Minneapolis, MN
    -
    - css - js - html -
    -
    -
    - -
    - - demo avatar - -
    - - Aaron Shekey - -
      -
    • 768
    • -
    • - - silver bling - - 9 -
    • -
    • - - bronze bling - - 1 -
    • -
    -
    Minneapolis, MN
    -
    -
    - {% icon "StarVerifiedSm" %} Recognized by Hum -
    -
    -
    -
    - -
    - {% header "h3", "Small" %} -
    -{% highlight html %} -
    - - - -
    -
      -
    • -
    • -
    • -
    • -
    -
    -
    -{% endhighlight %} -
    -
    - - demo avatar - -
    -
      -
    • 2,500
    • -
    • - - gold bling - - 5 -
    • -
    • - - silver bling - - 9 -
    • -
    • - - bronze bling - - 1 -
    • -
    -
    -
    -
    -
    -
    - -
    - {% header "h3", "Minimal" %} -

    - Minimal user cards reduce the amount of information down to who asked the question, how much rep they have, and when the action was taken. To read as plainly as possible, e.g. “Paul Wright modified 3 minutes ago,” we change the positioning of the time, and remove any reputation bling, leaving just the aggregated reputation. -

    -
    -{% highlight html %} -
    -
    - -
      -
    • -
    -
    - -
    - -
    - - - -
    - -
      -
    • -
    -
    - -
    -{% endhighlight %} -
    -
    - - demo avatar - -
    - - Paul Wright - -
      -
    • 2,500
    • -
    -
    - -
    - -
    -
    - - Paul Wright - -
      -
    • 2,500
    • -
    -
    - -
    -
    -
    -
    - -
    - {% header "h3", "Deleted" %} -

    When a user is deleted, we still need to show their name, but we strip the meta data.

    -
    -{% highlight html %} -
    - -
    - -
    -
    -
    - -
    -
    - -
    -
    - -
    - -
    -{% endhighlight %} -
    -
    - -
    - demo avatar -
    -
    - -
    -
    - -
    -
    - demo avatar -
    -
    - -
    - -
    -
    -
    -
    diff --git a/packages/stacks-docs-next/src/docs/legacy/product/foundation/accessibility.html b/packages/stacks-docs-next/src/docs/legacy/product/foundation/accessibility.html deleted file mode 100644 index e902abf086..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/foundation/accessibility.html +++ /dev/null @@ -1,341 +0,0 @@ ---- -layout: page -title: Accessibility -description: A non-comprehensive guide to accessibility best practices when using Stacks. -tags: foundation ---- - -{% assign exampleWrapperClasses = "d-grid fw-wrap gx24 gy64 jc-space-evenly bg-black-100 bar-md mb16 mt32 py32 px8" %} - -
    - {% header "h2", "Target" %} - -

    All Stack Overflow product UIs must conform to the AA conformance level of the Web Content Accessibility Guidelines (WCAG) 2.2 with a few exceptions around color contrast documented below.

    - - {% header "h3", "High contrast modes" %} - -

    When high contrast mode is enabled, Stack Overflow product UIs must meet or exceed the Success Criterion 1.4.6 Contrast (Enhanced) of the Web Content Accessibility Guidelines (WCAG) 2.2 and should conform to the remaining AAA conformance level rules when reasonably achievable. This only applies to the subset of Stack Overflow products that provide high contrast modes. Note: not all Stack Overflow products are expected to support high contrast modes.

    -
    - -
    - {% header "h2", "Visual accessibility" %} - -

    Stack Overflow product UIs MUST conform to a custom conformance level of the Accessible Perceptual Contrast Algorithm (APCA). This custom conformance level replaces the AA conformance level of the Web Content Accessibility Guidelines (WCAG) 2.2 for color contrast.

    - - {% header "h3", "Color & contrast" %} - -

    Stacks aims to equip you with an accessible color palette and has been tested against WCAG AA, WCAG AAA and the newer APCA color standards. Most of our color combinations meet WCAG AA and APCA levels defined below. We also offer high contrast mode which offers a greater level of contrast.

    - - {% header "h4", "Contrast ratios" %} - -

    Contrast is the difference in luminance or color between any two elements. All visual readers require ample luminance contrast for fluent readability. Stack Overflow products must conform to a custom conformance level of the Accessible Perceptual Contrast Algorithm (APCA). Based on our custom conformance level, all text must have a Lightness contrast (Lc) value of 60, body copy must have a Lc value of 75, icons must have a Lc value of 45, and placeholder and disabled text must have a Lc of 30. These numbers will be negative when calculating for dark mode.

    - - {% capture correctElement %} - -
    Robotics
    - {% endcapture %} - - {% capture incorrectElement %} - -
    Robotics
    - {% endcapture %} - - {% render 'accessibility/comparison.html', - classes: "my16", - correctExample: correctElement, - correctDescription: "Use luminance contrast that meets our standards as defined above.", - incorrectExample: incorrectElement, - incorrectDescription: "Use low luminance contrast that fail our standards." - %} - - {% header "h4", "Visual cues" %} - -

    Visual readers with color vision deficiency (CVD) have problems differentiating some hues and therefore these users need help discerning differences between items. This means that color (hue) should never be the sole means of communicating information and should always be paired with a non-color dependent indicator to accommodate all visual users.

    - - {% capture correctElement %} -
    - - {% icon "AlertCircle", "s-input-icon" %} -
    - {% endcapture %} - - {% capture incorrectElement %} -
    - -
    - {% endcapture %} - - {% render 'accessibility/comparison.html', - classes: "my16", - correctExample: correctElement, - correctDescription: "Use an icon alongside color to convey meaning.", - incorrectExample: incorrectElement, - incorrectDescription: "Use color alone to convey meaning." - %} - -
    - -
    - {% header "h2", "Focus states" %} - -

    Some people navigate through a website by using a keyboard or other device (instead of a mouse). A focus state should clearly let users know which item they’re on and is ready to interact with. Stack’s has taken a hybrid approach in using both the browser’s default styles (smaller interactive components like text links) and a custom focus ring.

    - - {% header "h3", "Foundation for custom approach" %} - -

    - The custom approach adds two different outline rings on the inside of the component. The outer ring color uses secondary-theme-400 - {% - render 'color-swatch.html', - color: "theme-secondary-400", - size: "16", - classes: "mbn2" - %} - (matching the primary button color) and the inner ring color uses white - {% - render 'color-swatch.html', - color: "white", - size: "16", - classes: "ba bc-black-200 bs-sm mbn2" - %} (matching the background). -

    - -
    - {% for group in accessibility.foundation-for-custom-approach.base %} -
    - - {% render 'annotation.html', - text: group.description, - classes: "mx-auto", - connectorHeight: 16 - %} -
    - {% endfor %} -
    - -

    - The outer ring color will always display as the theme color even when applied to a muted or danger styled button. This ensures the focus ring maintains a 3:1 color contrast ratio for any adjacent colors (WCAG level AA) within any theme (assuming the secondary-theme color - {% - render 'color-swatch.html', - color: "theme-secondary-400", - size: "16", - classes: "mbn2" - %} - already passes the 3:1 contrast ratio). -

    - -
    - {% for group in accessibility.foundation-for-custom-approach.variants %} -
    - - {% render 'annotation.html', - text: group.description, - classes: "mx-auto", - connectorHeight: 16 - %} -
    - {% endfor %} -
    - - {% header "h3", "Meeting level AAA" %} - -

    Both focus rings are always 2px thick. This allows the focus state to meet WCAG 2.4.13 Focus Appearance (AAA) standards for High Contrast mode. Whenever possible, the rings should be added to the inside of the component so we can better ensure that the rings don't get accidentally cut off by the surrounding layout (which helps us to meet WCAG 2.4.11 Focus Not Obscured AA). However, this does result in a padding reduction within the element, surrounding the text. When choosing to set the focus rings on the inside (inset), the component must have at least 4px of padding at the smallest size. This has been applied to buttons, button groups, navigation, pagination and topbar.

    - -

    When the padding amount is not sufficient enough to support a double ring on the inside of the component, the rings are placed on the outside. The components included are tags, toggles, form elements (input fields, selects, radio/checkboxes…), block links and the editor.

    - - -
    - {% for group in accessibility.meeting-level-aaa %} -
    - {% if group.type == "tag" %} - javascript - {% else %} - - {% endif %} - - {% render 'annotation.html', - text: group.description, - classes: "mx-auto", - connectorHeight: 16 - %} -
    - {% endfor %} -
    - - {% header "h3", "Consistent style patterns" %} - {% header "h4", "Filled" %} - -

    Any component that already has an existing background color that fills the shape will maintain its original fill color.

    - -
    - {% for group in accessibility.consistent-style-patterns.filled %} -
    - {% if group.type == "navigation" %} -
    - -
    - {% else %} - {% assign name = group.description | replace: " ", "-" | downcase %} -
    -
    -
    - - - - -
    -
    -
    - {% endif %} - - {% render 'annotation.html', - text: group.description, - classes: "mx-auto", - connectorHeight: 16 - %} -
    - {% endfor %} -
    - - {% header "h4", "Bordered" %} - -

    For components that have an existing border around the component when not in focus, a background fill color is added in addition to the focus rings. This ensures there’s a strong enough visual difference between the non-focus and focus state. These patterns are maintained across all components for consistency.

    - -
    - {% for group in accessibility.consistent-style-patterns.bordered %} -
    -
    - - page - 2 - -
    - - {% render 'annotation.html', - text: group.description, - classes: "mx-auto", - connectorHeight: 16 - %} -
    - {% endfor %} -
    - - {% header "h4", "Floating" %} - -

    Components without an existing fill or border will only display the double rings on focus. Since the inner ring matches the background color in most cases, this will visually appear like a single ring around the perimeter of the component.

    - -
    - {% for group in accessibility.consistent-style-patterns.floating %} -
    - {% if group.type == "block-link" %} - - {% endif %} - - {% if group.type == "editor-icon-buttons" %} -
    - - {% for button in group.items %} - - {% endfor %} -
    - {% endif %} - - {% render 'annotation.html', - text: group.description, - classes: "mx-auto", - connectorHeight: 16 - %} -
    - {% endfor %} -
    - - {% header "h4", "Exceptions" %} - -

    The exceptions to this pattern are the Clear button variations. All buttons display a background fill layer when in focus. Clear, Outline and Filled styles will all look the same when in focus. The fill color was chosen to match the existing Filled style.

    - -
    - {% for group in accessibility.consistent-style-patterns.exceptions %} -
    - {% if group.type == "button" %} - - {% endif %} - - {% render 'annotation.html', - text: group.description, - classes: "mx-auto", - connectorHeight: 16 - %} -
    - {% endfor %} -
    - - {% header "h3", "Browser default" %} - -

    Some focusable elements and Stacks components currently do not include custom focus styling. These elements will instead render the browser-default focus indicators.

    -
    - -
    - {% header "h2", "Viewport size" %} - -

    - All Stack Overflow products must conform to the WCAG 2.2 SC 1.4.10: Reflow. This requires that our product UIs support viewports as small as 320px x 256px without requiring the user scrolling in multiple dimensions (unless an element requires it for usage or meaning). Very few users will ever use a viewport this small, but it's important to support it so users can zoom in up to 400% and still have a usable experience. At 400% zoom, a 320x256 viewport translates to 1280x1024, which is a common resolution for many users. Supporting this small viewport size ensures that users with low vision can still use our products effectively. -

    - - {% header "h3", "Exceptions" %} -

    - There are some exceptions to this rule. Some elements such as tables and videos may require horizontal scrolling on small viewports. In these cases, it's acceptable to require scrolling in two dimensions. See the WCAG 2.2 documentation on Reflow for detailed guidance. -

    -
    - -
    - {% header "h2", "Landmarks" %} - -

    - ARIA landmarks should be used across Stack Overflow product pages to provide clear navigation structures for users relying on assistive technologies. - Landmarks are inserted into the page explictly using the role attribute on an element (e.g. role="search", etc...) or by leveraging semantic HTML (e.g. an header element is given automatically the banner landmark).
    - Using semantic HTML elements should be preferred over using the role attribute whenever possible. -

    -

    For a comprehensive guide on using ARIA landmark roles refer to:

    - -
    diff --git a/packages/stacks-docs-next/src/docs/legacy/product/foundation/color-fundamentals.html b/packages/stacks-docs-next/src/docs/legacy/product/foundation/color-fundamentals.html deleted file mode 100644 index 7328f7bbc5..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/foundation/color-fundamentals.html +++ /dev/null @@ -1,386 +0,0 @@ ---- -layout: page -title: Color fundamentals -figma: https://svelte.stackoverflow.design/figma/colors -description: Color is used distinguish our brand, convey meaning, and invoke emotions. A color palette ensures a familiar and consistent experience across our products. -tags: foundation -hide-menu: true ---- - -
    -
    - {% header "h2", "Palette" %} - {% header "h3", "Neutral colors" %} -

    - The neutral palette consists of black, white, and grays. The neutral palette is dominant in our UI, using subtle shifts in value to create hierarchy and organize content. -

    - {% render 'color-row.html', - color: "black", - colorSets: colors[0].sets, - classes: "bar-md", - stopClasses: "h128 pt24 pb32" - %} -
    - -
    - {% header "h3", "Saturated colors" %} -

    - Stacks uses 5 colors with 6 stops per color. Colors are used sparingly and intentionally to convey meaning, draw attention to UI, or create associations. -

    -
    - {% assign groups = "light,dark" | split: "," %} - {% for mode in groups %} - {% assign bgColor = "bg-black-100" %} - {% if mode == "dark" %} - {% assign bgColor = "bg-white" %} - {% endif %} -
    -
    - {% for set in colors[0].sets %} - {% if set.type == "color" %} - {% render 'color-row.html', - color: set.name, - colorSets: colors[0].sets, - stopClasses: "h-auto", - stopStyle: "aspect-ratio: 1/1", - classes: "fd-row-reverse" - %} - {% endif %} - {% endfor %} -
    -
    - {% endfor %} -
    -
    - -
    - - {% header "h3", "Award colors" %} -

    - Stacks has 3 award colors with 4 stops per color. Colors are used to represent gold, silver, and bronze within gamification aspects of our products. -

    -
    - {% assign groups = "light,dark" | split: "," %} - {% for mode in groups %} - {% assign bgColor = "bg-black-100" %} - {% if mode == "dark" %} - {% assign bgColor = "bg-white" %} - {% endif %} -
    -
    - {% for set in colors[0].sets %} - {% if set.type == "award" %} - {% render 'color-row.html', - color: set.name, - colorSets: colors[0].sets, - stopClasses: "h-auto", - stopStyle: "aspect-ratio: 1/1", - classes: "fd-row-reverse" - %} - {% endif %} - {% endfor %} -
    -
    - {% endfor %} -
    -
    - -
    - {% header "h2", "Usage" %} - {% header "h3", "Color roles" %} -

    - Color roles describe the intention behind the color. -

    - {% for group in colors %} - {% if group.name == "v2" %} -
    - - - - - - - - - - {% for role in group.roles %} - - - - - - {% endfor %} - -
    RoleDescription
    - {% render 'color-swatch.html', - classes: lightSwatchClasses, - color: role.bg - %} - - {{ role.name | capitalize }} - - {{ role.description }} -
    -
    - {% endif %} - {% endfor %} -
    - -
    - {% header "h3", "Backgrounds" %} -
    - {% render 'annotation.html', - text: "Default background color", - style: "margin-left: calc((1.5/11) * 100%)", - classes: "sm:d-none", - position: "top", - %} - {% render 'color-row.html', - color: "black", - colorSets: colors[0].sets, - labeledStops: "050,100,150,200" | split: "," - %} - {% render 'annotation.html', - text: "Background layers", - style: "width: calc((4/11) * 100%)", - classes: "sm:d-none", - range: true - %} -
    -

    - Stops 50 through 200 are used for background layers -

    -
    - -
    - {% header "h3", "Borders" %} -
    - {% render 'color-row.html', - color: "black", - colorSets: colors[0].sets, - labeledStops: "200,225,300" | split: "," - %} -
    - {% render 'annotation.html', - text: "Decorative borders", - style: "margin-left: calc((3/11) * 100%); width: calc((2/11) * 100%)", - classes: "sm:d-none", - range: true - %} - {% render 'annotation.html', - text: "Input borders", - classes: "sm:d-none", - style: "margin-left: calc((1/11) * 100%); min-width: calc((1/11) * 100%)" - %} -
    -
    -

    - Stops 200 and 225 are used for decorative borders and dividers throughout our UI. The 250 stop is used for input borders such as text field or secondary button. -

    -
    - -
    - {% header "h3", "Text" %} -
    - {% render 'color-row.html', - color: "black", - colorSets: colors[0].sets, - labeledStops: "400,500,600" | split: "," - %} -
    - {% render 'annotation.html', - text: "Text", - style: "margin-left: calc((8/11) * 100%); width: calc((2/11) * 100%)", - classes: "sm:d-none", - range: true - %} - {% render 'annotation.html', - text: "Heading", - style: "min-width: calc((1/11) * 100%)", - classes: "sm:d-none fl-shrink1" - %} -
    -
    -

    - Stops 500 and 600 can be used for text. Neutrals, blue, red, and green can also be used at 400 and will meet APCA contrast minimums within these shades. Orange and yellow should not be used at 400 because it does not meet our contrast standards. -

    -
    - -
    - {% header "h3", "Icons and illustrations" %} -
    - {% render 'color-row.html', color: "black", colorSets: colors[0].sets, labeledStops: "350,400,500" | split: "," %} -
    - {% render 'annotation.html', - text: "Illustrations", - style: "margin-left: calc((7/11) * 100%); min-width: calc((1/11) * 100%)", - classes: "sm:d-none", - %} - {% render 'annotation.html', - text: "Icons", - style: "width: calc((2/11) * 100%)", - classes: "sm:d-none", - range: true - %} -
    -
    -

    - Stops 400 and 500 are for icons, while 350 should be used for more detailed illustrations. -

    -
    - -
    - {% header "h2", "Layering" %} -

    - Colors in the neutral palette are layered on top of each other to foster a sense of hierarchy and create associations. -

    -
    - {% assign groups = "light,dark" | split: "," %} - {% for mode in groups %} - {% assign bgColor = "bg-black-100" %} - {% assign borderRadius = "blr-md" %} - {% if mode == "dark" %} - {% assign bgColor = "bg-white" %} - {% assign borderRadius = "brr-md" %} - {% endif %} - {% assign layers = colors[0].layers %} -
    -
    {{layers[0].name}}
    -
    -
    {{layers[1].name}}
    -
    -
    {{layers[2].name}}
    -
    -
    -
    - {% endfor %} -
    -
    - -
    -
    - - - - - - - - - - {% assign borderClasses = " ba bc-black-200" %} - {% assign lightSwatchClasses = "theme-light__forced" | append: borderClasses %} - {% for layer in colors[0].layers %} - - - - - - {% endfor %} - -
    Background layerLight modeDark mode
    {{ layer.name | capitalize }} - {% if layer.teamsLight != null or layer.soLight != null %} -
    -
    - {% render 'color-swatch.html', - classes: lightSwatchClasses, - color: layer.teamsLight - %} - {{layer.teamsLight}} (Teams) -
    -
    - {% render 'color-swatch.html', - classes: lightSwatchClasses, - color: layer.soLight - %} - {{layer.teamsLight}} (SO) -
    -
    - {% else %} -
    - {% render 'color-swatch.html', - classes: lightSwatchClasses, - color: layer.color - %} - {{layer.color}} -
    - {% endif %} -
    -
    - {% assign darkSwatchClasses = "theme-dark__forced" | append: borderClasses %} - {% render 'color-swatch.html', - classes: darkSwatchClasses, - color: layer.color - %} - {{layer.color}} -
    -
    -
    -
    - -
    - {% header "h2", "Emphasis levels" %} -

    - Emphasis determines the amount of contrast a color has against the default surface. Emphasis has a range from subtle to bold. Bold emphasis has more contrast against the background, which adds more attention than using UI with the subtle or default emphasis level. -

    -
    -
    - {% for group in colors[0].emphasis %} -
    -
    - {% for color in group.colors %} -
    Robotics
    - {% endfor %} -
    - {% render 'annotation.html', - text: group.name, - range: true - %} -
    - {% endfor %} -
    -
    - {% for group in colors[0].emphasis %} -
    -
    Text
    - {% render 'annotation.html', - text: group.name, - classes: "mx-auto", - style: "margin-left: 50%;" - %} -
    - {% endfor %} -
    -
    -
    - -
    - {% header "h2", "Interaction states" %} -

    - In Stacks, a component will get darker (or lighter in dark mode) as they interact with it. These progresses happen by adding 100 to the color before the interaction happens. Example: Blue-400 on hover becomes Blue-500. For a disabled button state, subtract 100 from the default color. -

    -
    - {% for group in colors[0].interaction %} -
    - - {% render 'annotation.html', - text: group.name, - classes: "mx-auto", - style: "margin-left: 50%;" - %} -
    - {% endfor %} -
    -
    - -
    - {% header "h2", "Light, dark, and high contrast modes" %} -

    Stacks supports light, dark, and high contrast modes. By using Stacks, you will get each of these modes for free. By using a Stacks component, an atomic color class, or CSS variable directly, your theme will switch appropriately based on the following methods:

    -
      -
    1. You can apply .theme-system to the body element. This will change colors based on the prefers-color-scheme media query, which is ultimately powered by the user’s system or browser settings. This can be preferable for folks who have their system turn to dark mode based on ambient light or time of day.
    2. -
    3. Alternatively, you can set a dark mode that is not system dependent by attaching .theme-dark to the body element.
    4. -
    5. Adding .theme-highcontrast to the body element will boost colors to WCAG Level AAA contrast ratios in as many places as possible. This mode stacks on top of both light and dark modes. The only exception is branded themed colors remain untouched by high contrast mode.
    6. -
    -

    There are also conditional classes that can be applied to override assumed dark mode colors, force light mode, or to force dark mode. Forcing modes can be good for previews in admin-only situations.

    -
    -
    diff --git a/packages/stacks-docs-next/src/docs/legacy/product/foundation/colors.html b/packages/stacks-docs-next/src/docs/legacy/product/foundation/colors.html deleted file mode 100644 index 9c9290707d..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/foundation/colors.html +++ /dev/null @@ -1,165 +0,0 @@ ---- -layout: page -title: Colors -figma: https://www.figma.com/design/do4Ug0Yws8xCfRjHe9cJfZ/Project-SHINE---Product-UI?node-id=651-4397&t=UGqQCKW9BZQqF65O-1 -description: To avoid specifying color values by hand, we’ve included a robust set of color variables. For maintainability, please use these instead of hardcoding color values. -tags: foundation ---- - -
    - {% header "h2", "Stops" %} - -
    - {% for set in colors[0].sets %} - {% assign setClasses = "" %} - {% if set.name != "transparent" and set.name != "inherit" %} -
    -

    {{ set.name | capitalize }}

    -
    - {% for stop in set.stops %} - {% assign name = set.name | replace: " ", "-" %} - - {% if stop != "" %} - {% assign name = set.name | append: "-" | append: stop | replace: " ", "-" %} - {% endif %} - - {% assign stopFc = "fc-black" %} - {% if set.invert contains stop %} - {% assign stopFc = "fc-white" %} - {% endif %} -
    - {{ name }} -
    - {% endfor %} -
    -
    - {% endif %} - {% endfor %} -
    -
    - -
    - {% header "h2", "Classes" %} - -

    - Each color stop is available as an atomic text, background, and border class. Using these atomic classes means your view will respond to dark mode appropriately. These colors are available conditionally. -

    - - {% for set in colors[0].sets %} - {% assign setHeading = set.name | capitalize %} - {% header "h3", setHeading %} - {% assign conditionalUrl = "/product/develop/conditional-classes" %} - {% assign name = set.name | replace: " ", "-" %} - -
    - - - - - - - - - - {% for stop in set.stops %} - {% assign colorName = set.name | replace: " ", "-" %} - {% if stop != "" %} - {% assign name = colorName | append: "-" | append: stop %} - {% endif %} - - {% assign stopFcBg = "bg-" | append: colorName | append: "-500" %} - {% if set.invertAlt %} - {% assign stopFcBg = "bg-" | append: set.invertAlt %} - {% endif %} - {% assign stopBcFc = "fc-white" %} - {% assign stopBgFc = "fc-black" %} - - {% if set.invert contains stop %} - {% assign stopBcFc = "fc-black" %} - {% assign stopFcBg = "bg-white" %} - {% assign stopBgFc = "fc-white" %} - {% endif %} - - - - - - - {% endfor %} - -
    TextBackgroundBorder
    -
    .fc-{{name}}
    -
    -
    .bg-{{name}}
    -
    -
    -
    .bc-{{name}}
    -
    -
    -
    - {% endfor %} -
    - -
    - {% header "h2", "Aliases" %} - {% header "h3", "Body text" %} -
    -{% highlight html %} -

    -

    -

    -

    -{% endhighlight %} -
    - {% assign fcAliases = "light,medium,dark" | split: "," %} -
    - - - - - - - - - {% for alias in fcAliases %} - - - - - {% endfor %} - -
    Text classesExample
    .fc-{{alias}} -

    This is example {{alias}} text.

    -
    -
    - - {% assign stateAliases = "danger,error,warning,success" | split: "," %} - - {% assign dHeading = "Danger and error" %} - {% for alias in stateAliases %} - {% assign aliasHeading = alias | capitalize %} - {% header "h3", aliasHeading %} -
    - - - - - - - - - - - - - - - -
    Text classesBackground classesBorder Classes
    .fc-{{alias}} -
    .bg-{{alias}}
    -
    -
    .bc-{{alias}}
    -
    -
    - {% endfor %} -
    diff --git a/packages/stacks-docs-next/src/docs/legacy/product/foundation/icons.html b/packages/stacks-docs-next/src/docs/legacy/product/foundation/icons.html deleted file mode 100644 index eda414a4b7..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/foundation/icons.html +++ /dev/null @@ -1,108 +0,0 @@ ---- -layout: page -title: Icons -svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-icon--docs -figma: https://www.figma.com/design/Z5yoO4WH58QDHvmxwMWhr0 -description: Stacks provides a complete icon set, managed separately in the Stacks-Icons repository. There you’ll find deeper documentation on the various uses as well as the icons’ source in our design tool Figma. -tags: foundation ---- - -
    - {% header "h2", "Usage" %} -

    Stacks icons are designed to be directly injected into the markup as an svg element. This allows us to color them on the fly using any of our atomic classes. We have different helpers in different environments.

    - - {% header "h3", "Svelte" %} -

    If you are working in a Svelte project, you can use the Icon component to render an icon. - This component will render the icon as an svg element with the appropriate classes and attributes (docs). -

    -{% highlight html %} - - - - - -{% endhighlight %} -
    -
    -
    -
    Default
    - {% icon "ServiceCCPA" %} -
    -
    -
    With native colors
    - {% icon "ServiceCCPA", "native" %} -
    -
    -
    With arbitrary classes
    - {% icon "ServiceCCPA", "fc-black-350 float-right" %} -
    -
    -
    - -{% header "h3", "Dotnet" %} -

    If you’re working in a dotnet project, we have a helper that can be called with @Svg. and the icon name, eg. @Svg.Answer. By default, any icon will inherit the text color of the parent element. Optionally, you can pass the class native to the icon to render any native colors that are included eg. @Svg.ServiceCCPA.With("native"). This same syntax allows you to pass additional arbitrary classes like atomic helpers, or js- prefixed classes.

    -
    -{% highlight java %} -@Svg.ServiceCCPA -@Svg.ServiceCCPA.With("native") -@Svg.ServiceCCPA.With("fc-black-350 float-right js-dropdown-target") -{% endhighlight %} -
    -
    -
    -
    Default
    - {% icon "ServiceCCPA" %} -
    -
    -
    With native colors
    - {% icon "ServiceCCPA", "native" %} -
    -
    -
    With arbitrary classes
    - {% icon "ServiceCCPA", "fc-black-350 float-right js-dropdown-target" %} -
    -
    -
    -
    -
    - -
    - {% header "h2", "Requesting an icon" %} -

    If an icon you need isn’t here, please do one of the following two options:

    -
      -
    1. Submit a request outlining the desired icon, the icon’s intended purposed, and where it will be used.
    2. -
    3. If the icon is ready, submit a pull request to have it to be reviewed. Please be sure to provide the same information as above.
    4. -
    -
    - -
    - {% header "h2", "Icon set" %} -
    - - - {% icon "Search", "s-input-icon s-input-icon__search" %} -
    -
    - {% for iconName in stacks-icons.icons %} -
    -
    -
    - {% icon iconName, "native js-svg" %} -
    - -
    -
    - {% endfor %} -
    -
    - - - diff --git a/packages/stacks-docs-next/src/docs/legacy/product/foundation/spots.html b/packages/stacks-docs-next/src/docs/legacy/product/foundation/spots.html deleted file mode 100644 index 1e6af0a640..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/foundation/spots.html +++ /dev/null @@ -1,37 +0,0 @@ ---- -layout: page -title: Spot illustrations (WIP) -svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-icon--docs -figma: https://www.figma.com/design/Z5yoO4WH58QDHvmxwMWhr0 -description: Spot illustrations are the slightly grown up version of icons with a little more detail. They’re most often used in empty states and new product announcements. They’re built externally on the Icons repository. -tags: foundation ---- - -
    - {% header "h2", "Spot illustrations" %} -
    - - {% icon "Search", "s-input-icon s-input-icon__search" %} -
    -
    - {% for spotName in stacks-icons.spots %} -
    -
    -
    - {% spot spotName, "native" %} -
    - -
    -
    - {% endfor %} -
    -
    - - - diff --git a/packages/stacks-docs-next/src/docs/legacy/product/foundation/theming.html b/packages/stacks-docs-next/src/docs/legacy/product/foundation/theming.html deleted file mode 100644 index aa7b2e6613..0000000000 --- a/packages/stacks-docs-next/src/docs/legacy/product/foundation/theming.html +++ /dev/null @@ -1,417 +0,0 @@ ---- -layout: page -title: Theming -description: Stacks provides a robust theming API to handle theming in various contexts. -tags: foundation ---- - -
    - {% header "h2", "Default theme stops" %} -

    Stacks provides primary and secondary theme stops that can be overridden in your custom theme.

    - - {% for group in colors %} - {% if group.name == "v2" %} -
    - {% for set in group.sets %} - {% assign setClasses = "" %} - {% if set.name == "theme primary" or set.name == "theme secondary" %} -
    -

    {{ set.name | capitalize }}

    -
    - {% for stop in set.stops %} - {% assign name = set.name | replace: " ", "-" %} - - {% if stop != "" %} - {% assign name = set.name | append: "-" | append: stop | replace: " ", "-" %} - {% endif %} - - {% assign stopFc = "fc-black" %} - {% if set.invert contains stop %} - {% assign stopFc = "fc-white" %} - {% endif %} -
    - {{ name }} -
    - {% endfor %} -
    -
    - {% endif %} - {% endfor %} -
    - {% endif %} - {% endfor %} -
    - -
    - {% header "h2", "Theming API" %} - - {% header "h3", "Programmatic theme generation" %} -

    Use .create-custom-theme-hsl-variables(@color, @tier, @modeCustom) to create a custom theme.

    - -

    This function generates two sets of CSS variables: 1) independent h/s/l color variables and 2) variables at each colors stop that reference the h/s/l variables. Provide this function the arguments defined below to generate theme colors which will apply across Stacks.

    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ArgumentTypeDefaultDescription
    @colorHSL, hex, or other color valueColor to use to generate theme values.
    @tier - primary | - secondary - primaryColor tier to generate.
    @modeCustom - base | - dark - baseThe color mode the theme applies to.
    -
    - -
    - {% header "h4", "Format" %} -{% highlight css %} -.theme-custom.themed { - .create-custom-theme-hsl-variables(hsl(172, 37%, 48%), primary); - .create-custom-theme-hsl-variables(hsl(259, 29%, 55%), secondary); - .create-custom-theme-hsl-variables(hsl(201, 70%, 55%), primary, dark); - .create-custom-theme-hsl-variables(hsl(270, 34%, 40%), secondary, dark); -} -{% endhighlight %} -
    - - {% header "h4", "Example" %} - -
    -{% highlight css %} -/* Input */ -.theme-custom.themed { - .create-custom-theme-hsl-variables(hsl(172, 37%, 48%), primary); -} - -/* Output */ -.theme-custom.themed { - /* HSL variables */ - --theme-base-primary-color-h: 172; - --theme-base-primary-color-s: 37%; - --theme-base-primary-color-l: 48%; - /* Color variables based on HSL variables */ - --theme-primary-custom: var(--theme-primary-custom-400); - --theme-primary-custom-100: hsl(var(--theme-base-primary-color-h), calc(var(--theme-base-primary-color-s) + 0 * 1%), clamp(70%, calc(var(--theme-base-primary-color-l) + 50 * 1%), 95%)); - --theme-primary-custom-200: hsl(var(--theme-base-primary-color-h), calc(var(--theme-base-primary-color-s) + 0 * 1%), clamp(55%, calc(var(--theme-base-primary-color-l) + 35 * 1%), 90%)); - --theme-primary-custom-300: hsl(var(--theme-base-primary-color-h), calc(var(--theme-base-primary-color-s) + 0 * 1%), clamp(35%, calc(var(--theme-base-primary-color-l) + 15 * 1%), 75%)); - --theme-primary-custom-400: hsl(var(--theme-base-primary-color-h), calc(var(--theme-base-primary-color-s) + 0 * 1%), clamp(20%, calc(var(--theme-base-primary-color-l) + 0 * 1%), 60%)); - --theme-primary-custom-500: hsl(var(--theme-base-primary-color-h), calc(var(--theme-base-primary-color-s) + 0 * 1%), clamp(15%, calc(var(--theme-base-primary-color-l) + -14 * 1%), 45%)); - --theme-primary-custom-600: hsl(var(--theme-base-primary-color-h), calc(var(--theme-base-primary-color-s) + 0 * 1%), clamp(5%, calc(var(--theme-base-primary-color-l) + -26 * 1%), 30%)); -} -{% endhighlight %} -
    - - {% header "h4", "Manual addition of theme variables" %} -

    If you need to apply a theme without using the above function, you can do so by manually adding the variables above to your CSS. The most common use for this approach is when the theme needs to change client-side, such as when allowing the user to change and preview a theme dynamically.

    - -

    With this approach, we recommend targeting new h/s/l color variables on a parent element that includes .themed class.

    - - {% header "h3", "Live playground" %} -
    -
    HSL
    -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - -
    -
    Loading…
    - -
    - {% for set in colors[0].sets %} - {% if set.name == "theme primary" %} - {% for stop in set.stops %} - {% assign name = "theme-primary" %} - {% if stop != "" %} - {% assign name = name | append: "-" | append: stop %} - {% endif %} - - {% assign stopFc = "fc-black" %} - {% if set.invert contains stop %} - {% assign stopFc = "fc-white" %} - {% endif %} -
    - {{name}} -
    - {% endfor %} - {% endif %} - {% endfor %} -
    -
    -
    - - {% header "h3", "Theme variables overrides" %} -

    Stacks provides CSS variables for fine grained control of theming. These variables allow you to adjust the theming on specific components and elements, as well as body background and font color.

    - -
    -{% highlight css %} ---theme-background-color ---theme-body-font-color ---theme-button-active-background-color ---theme-button-color ---theme-button-hover-background-color ---theme-button-hover-color ---theme-button-outlined-border-color ---theme-button-outlined-selected-border-color ---theme-button-primary-active-background-color ---theme-button-primary-background-color ---theme-button-primary-color ---theme-button-primary-hover-background-color ---theme-button-primary-hover-color ---theme-button-primary-number-color ---theme-button-primary-selected-background-color ---theme-button-primary-selected-color ---theme-button-selected-background-color ---theme-button-selected-color ---theme-link-color ---theme-link-color-hover ---theme-link-color-visited ---theme-post-body-font-family ---theme-post-title-color ---theme-post-title-color-hover ---theme-post-title-color-visited ---theme-post-title-font-family ---theme-tag-background-color ---theme-tag-border-color ---theme-tag-color ---theme-tag-hover-background-color ---theme-tag-hover-border-color ---theme-tag-hover-color ---theme-tag-required-background-color ---theme-tag-required-border-color ---theme-tag-required-color ---theme-tag-required-hover-background-color ---theme-tag-required-hover-border-color ---theme-tag-required-hover-color ---theme-topbar-accent-border ---theme-topbar-background-color ---theme-topbar-bottom-border ---theme-topbar-height ---theme-topbar-item-background-hover ---theme-topbar-item-color ---theme-topbar-item-color-current ---theme-topbar-item-color-hover ---theme-topbar-search-background ---theme-topbar-search-border ---theme-topbar-search-color ---theme-topbar-search-placeholder ---theme-topbar-select-background ---theme-topbar-select-color -{% endhighlight %} -
    -
    - - -
    - {% header "h2", "Child theming" %} -

    Stacks allows for further theming various portions of a page. You can simply pair the .themed class with an atomic color stop, and a new theming scope. For this example, we’re using a class name of .theme-team-[xxx] with a unique ID appended.

    -
    -{% highlight html %} -
    -
    -
    -
    - - -{% endhighlight %} - - {% assign modes = "default,light-forced,dark-forced" | split: "," %} - {% assign exampleSelectors = "body,.themed.theme-team-001,.themed.theme-team-002,.themed.theme-team-003" | split: "," %} - {% for mode in modes %} - {% assign headingText = mode | replace: "-", " " | capitalize %} - {% assign modeClass = "" %} - {% assign bgClass = "d:bg-black-100" %} - {% if mode != "default" %} - {% assign modeClassPrep = mode | replace: "-", "__" %} - {% assign modeClass = "theme-" | append: modeClassPrep %} - {% endif %} - {% if mode == "dark-forced" %} - {% assign bgClass = "bg-black-100" %} - {% endif %} - -
    - {% header "h3", headingText %} -
    -
    - {% for selector in exampleSelectors %} - {% assign selectorClasses = selector | replace: "body", "" | replace: ".", " " %} -
    -
    - {% if selector == "body" %}{{selector}}{% endif %} - {% if mode != "default" %}.{{modeClass}}{% endif %} - {% if selector != "body" %}{{selector}}{% endif %} -
    -
    -
    - {% if selector != "body" %} -
    C
    - {% icon "ShieldXSm", "native s-avatar--badge" %} - {% endif %} -
    - - -
    -
    - 1 - 2 - Next -
    -
    -
    -
    - {% endfor %} -
    -
    -
    - {% endfor %} -
    -
    - - - - + + +``` + +Note: stacks-svelte contains components we can use natively, for example can become +{% endhighlight %} +``` + +**To (MDsveX):** +````markdown +```html + +``` +```` + +### 7. Icon Handling +**From (Liquid):** +```liquid +{% icon "Trash" %} +``` + +**To (Svelte):** +```svelte + + + +``` + +### 8. Interactive Examples +**From (Liquid with inline script):** +```html + + + +``` + +**To (Svelte Component):** +Create `ToggleButtonDemo.svelte` with proper Svelte reactivity: +```svelte + + + +``` + +## Decision Points for You + +**Analyze the codebase and decide:** + +1. **Approach Selection:** + - Should I write a migration script (if patterns are consistent)? + - Should I manually migrate files (if lots of edge cases)? + - Hybrid approach (script for boilerplate, manual for complex parts)? + +2. **Component Strategy:** + - Should JSON data files be converted to TypeScript constants? + - Should complex tables become reusable Svelte components? + - Which patterns repeat across multiple pages? + +3. **Scope Analysis:** + - How many pages need migration? + - What Liquid helpers/filters are being used? + - Are there custom Liquid tags that need special handling? + +## Expected Output + +Based on your analysis, provide either: + +### Option A: Migration Script +A Node.js/TypeScript script that: +- Reads Liquid templates and JSON files +- Converts frontmatter +- Transforms Liquid syntax to MDsveX +- Generates Svelte component stubs for complex sections +- Outputs migrated files to target directory + +### Option B: Manual Migration Guide +A detailed guide covering: +- Step-by-step migration checklist +- Common patterns and their conversions +- Edge cases to watch for +- Testing/validation approach + +### Option C: Hybrid Approach +- Script for mechanical transformations +- Documentation for manual steps +- Component templates for common patterns + +## Files to Analyze + +Please examine: +1. All `.html` files in the source directory +2. Corresponding `.json` data files +3. The `buttons.html` example I've provided +4. The migrated `index.md` example +5. Any Liquid includes or layouts being used + +## Success Criteria + +- Frontmatter correctly transformed +- All Liquid loops converted to Svelte components or MDsveX syntax +- Code examples properly formatted with syntax highlighting +- Interactive elements use proper Svelte reactivity +- Icons imported and used correctly +- Tables and complex layouts extracted to components +- No runtime errors in migrated pages +- Visual output matches original pages + +## Questions to Answer First + +Before proceeding, investigate and report: +1. How many pages need migration? +2. What unique Liquid helpers/filters are used? +3. Are there shared layouts or includes? +4. What's the structure of the JSON data files? +5. Are there any custom Liquid tags? +6. How are images and assets referenced? + +--- + +**Start by exploring the codebase and proposing your migration strategy. Once I approve the approach, proceed with implementation.** \ No newline at end of file diff --git a/packages/stacks-docs-next/src/hooks.server.ts b/packages/stacks-docs-next/src/hooks.server.ts index 798b9daa6b..fef666bd2a 100644 --- a/packages/stacks-docs-next/src/hooks.server.ts +++ b/packages/stacks-docs-next/src/hooks.server.ts @@ -1 +1,18 @@ -export { handle } from "$src/auth"; +import { auth } from "$lib/auth"; +import { svelteKitHandler } from "better-auth/svelte-kit"; +import { building } from "$app/environment"; + +export async function handle({ event, resolve }) { + // Fetch current session from Better Auth + const session = await auth.api.getSession({ + headers: event.request.headers, + }); + + // Make session and user available on server + if (session) { + event.locals.session = session.session; + event.locals.user = session.user; + } + + return svelteKitHandler({ event, resolve, auth, building }); +} diff --git a/packages/stacks-docs-next/src/lib/auth-client.ts b/packages/stacks-docs-next/src/lib/auth-client.ts new file mode 100644 index 0000000000..0832f1845c --- /dev/null +++ b/packages/stacks-docs-next/src/lib/auth-client.ts @@ -0,0 +1,9 @@ +import { createAuthClient } from "better-auth/client"; +import { genericOAuthClient } from "better-auth/client/plugins"; + +export const authClient = createAuthClient({ + baseURL: typeof window !== 'undefined' ? window.location.origin : "http://localhost:5173", + plugins: [ + genericOAuthClient(), + ], +}); \ No newline at end of file diff --git a/packages/stacks-docs-next/src/lib/auth.ts b/packages/stacks-docs-next/src/lib/auth.ts new file mode 100644 index 0000000000..0531065b88 --- /dev/null +++ b/packages/stacks-docs-next/src/lib/auth.ts @@ -0,0 +1,46 @@ +import { betterAuth } from "better-auth"; +import { genericOAuth, okta } from "better-auth/plugins"; +import { sveltekitCookies } from "better-auth/svelte-kit"; + +import { env } from '$env/dynamic/private'; +import { getRequestEvent } from "$app/server"; + +console.log('All AUTH vars:', { + issuer: env.AUTH_OKTA_ISSUER, + id: env.AUTH_OKTA_ID, + secret: env.AUTH_OKTA_SECRET ? '***' : undefined, + authSecret: env.AUTH_SECRET ? '***' : undefined, +}); + +export const auth = betterAuth({ + baseURL: env.URL || "http://localhost:5173", + + // Secret for signing cookies and tokens + // openssl rand -base64 32 + secret: env.AUTH_SECRET || "", + + // Trust the host for OAuth redirects (important for Netlify) + trustedOrigins: env.AUTH_TRUST_HOST ? [env.AUTH_TRUST_HOST] : undefined, + + // Cookie configuration + advanced: { + cookiePrefix: "auth", + }, + + // Plugins + plugins: [ + // Okta OAuth via genericOAuth plugin + genericOAuth({ + config: [ + okta({ + clientId: env.AUTH_OKTA_ID || "", + clientSecret: env.AUTH_OKTA_SECRET || "", + issuer: env.AUTH_OKTA_ISSUER || "", + }), + ], + }), + + // SvelteKit cookies plugin (should be last) + sveltekitCookies(getRequestEvent), + ], +}); diff --git a/packages/stacks-docs-next/src/routes/+layout.server.ts b/packages/stacks-docs-next/src/routes/+layout.server.ts index 9037a3084a..7337e1e866 100644 --- a/packages/stacks-docs-next/src/routes/+layout.server.ts +++ b/packages/stacks-docs-next/src/routes/+layout.server.ts @@ -29,9 +29,10 @@ export const load: LayoutServerData = async (event: any) => { const active = findByPath(structure, path); - const session = await event.locals.auth(); + const session = event.locals.session; + const user = event.locals.user; - if (!session?.user && active?.private) throw redirect(303, "/auth/signin"); + if (!user && active?.private) throw redirect(303, "/auth/signin"); return { structure, diff --git a/packages/stacks-docs-next/src/routes/+layout.svelte b/packages/stacks-docs-next/src/routes/+layout.svelte index 02f8246a98..aed0d9b6a4 100644 --- a/packages/stacks-docs-next/src/routes/+layout.svelte +++ b/packages/stacks-docs-next/src/routes/+layout.svelte @@ -47,14 +47,16 @@
    -Un\32CD& %T^(&GPUWVQa'pG!.DA?/8(S,FNF=L@VoNt^S!T(UP4GhCG<%5r"&l+qetOLb%PjmGK^OKf46lD!4W`6B&G*_)45^g$/Ghh`==@A0 %kju%TXE[R"0%CF06qr2SXm2($Hm#@jT(*L0'SQ$`-OX9)d1eRGLc!J%d5]m6[M9ei,B=&.WIUd7f%XrDHZhWFO2:K"TF %1+&j).+Mt@6*1k-8*'CIT"C-\W1_1]b.4/P_&&/ %$@>Hm%M]QZ:IQc/OZl>ueN(_k*()V_-+1h#UU!,4=lpkfPm5c-+%IT60?:e_dV6i/SX@P]\ZAKGA/cUKAgL0C'T!2+U/KJN<2&@% %5F#[XSarPg"(JZ>Z>0dOQ+D?HbZm/>ot56j#)5u&2.Z(lJo0I/*!>D%GEh8EC8V[u8uUU5!K8p3Bmcq>-bX3#n6KU0^_F^$EsGuK %Q$3eiO2IcM6WTiq?oB\QK*]cHct*;H*:e3NrC=inaB!83oSom-LVR5%(b.#" %Gifk04'f&L-RR\"\1g@',,YS/!7u#-f)*N6$\;>Sf(o)k-`DDF<#7!b.gZoAJhQDWYfTVWe6%^e/6(1,&1+ %i]9L1MA^YT[Y?%CVC>Gb6QsBb! %B[t=&VI"-nPiM(@-k>/R.[^X^4.ZJs:7FD`;\%7d.GLRsF,*c9;;JT:CkF3M:S9=TYJkWe %%FbXlqHft1cu+d%<$sL@KCT7iH;,TH@Ei,l^LL0p#@m/-O)GR3KguN/`nleU3Wmpn/FMQR6--<+10TZK/Y6Uh:Y`q1DMqbdc]f7[ %hIdE];aU\7N?_)D9dYK#*g5M.KG(QM/sqE#l8/HeY%o#!G9hup72h? %>b%7W<"g'P$DJV"RY8>?[0*8T*Tt=TV_Q5$cqq\3U!n*j!Z(eQGQXdu+^9ZI_1>B13.aGKm-%EMl`1M^SZ6FD!5a7I<\=b6fN^/- %dQU0bORYZA@i/bW%XlkEW-7pWo1,N*/m&J;M]r\Z6I0\o5]K;i$[jeN2""P%gZ^]%kGZHbH70FEJdj@F2MMQSiACIsY6Km2H'f %ETZWq9rrm`]05IT)44t^8ig[/&X:_Sm$ll4M+'0RM`_7dFXtm;qi1/3p1;2k_N73@IaH^VeY@Gd,"ai91oGq!2%RCDU+;0%6dcZ/ %#TT#Q/U9(N1cQ`iQVn&12lc]_4%SJ7:"MT"=OdJ,-d=sA+(]&0PE2`T)frcFZ%\Ob=(beJaRJK'8TjXM;qi2jbNoQP6HoRQ@2r>q %#H3C@PVoBW%b2\V_)7;02PAl55+6_+qnsa?5)?4A@;r %b[Cm\)YMgfNN+Y^4>KLAMFh5lK>(E1HpX)OCOHo@5`%iIn:33UO*6QCd!1\.P=EPb3W<.M:;Er;]mDq!p1dKeGYC' %*OO_O9([ki(a^5RL5L46&on5^KH1J,bg9++oaQ=8@i9eudk(W$T#8>K#rkqj+b:iNDBs5+Tt$OHWZ6gf(Y.`$of4Qo!g/UtZ:%E\ %8jSSQa@QdgJgi)5A&_,+kO]3/Y-`jI%B1a)&1fccdYg[V@*BdGW1RNU_HSYa)O/lTN438+"L3WQ*Jil3%SNSmcjrPO03PlsK2K=n %YccH20f^YD(rO0$ERZ6[oWBJGXCFnTM@1DWQ&Q!d_qAN_%XJ2N@H@bXEMTd^I3]2)<2(P@qapC.%$L)S98\cG$QoLDi-MSH:^CZ+ %!$rOk+2T2`f\DQUR?<[-S=fu0a.*fnG+I^25`\F+6g&d?WZ]-k7,uh`+*0ShRD_[KN_s;hLoWUSn(>Sq4&sCj\n.]mNf/*/-@8:@ %>&kl2+FB=bJ_%UEb[W@_Z]Ajj`M=C2*C;F&>7U,\iR8D@?-^gUR0ohio."fqe8p\! %.?PMp4&D2!8SA6LJ@?V(:$j&NoU2dJs%M[50Mdh3PQsr^BLN\:7"5eJ.?Sq95UZCQ28(>g.#p%g%T\Yd+_OEAHO8aM(!";[#hCaf %1u`,nBI'>@'g1Q5&b/[FrGQjSetJf#XZFIDfuWHT2[6?GEA0mEJ5`'Bhl4SD^Y_!J5VgDk^ElDEX##"Em_%SQ-CJjMf--#ZqGI_j/gsPef+FOd;^DX+D)uFG;EqYh!Nbn61bJ+p %ceb-Da)PAMU/-;`kWas/:E708@o[CE,!jZ9]4kJXg"P/"is#Se5m^$uF?kpCpXA$terZ0ISV=6/!-Ej1LCJ3rVOZ9-X`"Lu7DDN[ %'/Bn-IXhjiFi$P8KKb%]E\\4#FWgV44F1,*8EnGm>LHH[)ZI03:o4rU/O*oLblF? %GmIa-+!OMLHm\PBX@$9N=9HH.*[c1<1'UH%'7=t-QDq*5Ct-7@,:[8+-ETm"YOV]\ncl\TS6&4KpO:We8n,$T9o5+ %0^7IB;Yl)aAXDa=^;8p%?;[g#N\&",]-;=L^itDiTpX.h;hBm[kO$&;]Zd]3iXnstrl,7aFB-FpKU.&+GR`hfVNP^bA4b/\K1sGK %YYaJa')WIbiJL`QdGe^E!LiZ(F,r7P1cfCF$?=n2g06.DP#D#@\KNVnt2ND!lk+NO*!RSAf[[ %Fg.OQn,,XPOQEg/: %^E+5@/igDSOGlj*Aekb]+KB,M-Kh<]6]:Cn%2Qg@s%PTgVfXRi8Q77&$=m!feeU,`756$*H^(fW'P-D(H`d]I7/fd`O3E?=e4U(8 %4G&_53\+2jkhObp#fMkD3JW-e0(>?W;8=(r;LoDYQ;^r4+h#hX3G=%)Z'?@Zna`q"+kbZK!2F'WG^s8Y.6Uj<9@`6/R+**'6DSnr %")QA=$'H!!0WtHb_Huo#CKUkN23U5uu\^<=Num58Vg5=!NWZ+[#l5qKsnA.nV4 %<0rXr_c8,S"^3C+%X0?tdqS=b3Z+@E[9Z.1Qa(lK3\"&T#93gq+DuNpg$)K(P^AG[G[2uil>98t!WNcUnqtC[B!d\e;8Omm`?0q6 %_"p2/Q%@'Yb(k\P1g/WY1@d#P)eA!P-p@9\@+SBEKIMeDA;gUE7:!)Q:?R`Qh4DRu$%dH[kfTgi-l-uChs65B6OV?4&G-A$a7d2! %g^m2A0p2=q%hRA- %m74i6ng&^:%[p.'D%h%#S,<KiIcm)Vt8qm"QdD;3?.?O.[8Fm]se' %+MqIXJl1?eiOdTR".WboWeHcJ/I6u0cl/'hS_$->(T&&^ElK?<@"@>E[t0mepo-A`Qphl3lT*J4TB3[9oQj=F3Ij;Dl3jo#dV0)" %@"X]@j,`2:%l3%_g]N]c()f24+d,YZfZSV1cY,SSi?SuJ?*jZpXp[,ff7mTQ5UC\u=F.N@JDU-Q`cpuY_U7kc8@k8r40:/hKFK06 %Di!UYk7I;5M]5[t0X1b!ct(olY09T_i0$8h$c3S`,-)^BW)(rS]WUbJ;LPOW$5G;s0V?V![uL#p``jT"Y`TtLmdsp*8,4]SXZC'J %U'U3HXZdlP$E9sk7pFgW=UTnmc.f+2>F?7('IuZfp$sS9)X<^?pieLo@iGU9KE2GJ1.;e.ML-_H&oD/FWfN%Aj-_X[/9AooaC$CZ %AD$8;.E[_EJd#0p?E/Hs$`m.inZ7X'[]jOW$P1fr`f %q07cMkcIQpj>B!uaZjV&AkHfHU"0hh.S*QPA.&d52Ni_%m6aCEXprQ@YGr`kF1Hf.XAp&Me;L@M/U!'2^+fc?O.(bOo_DG!+i:7]&@LYgN\Ue)CkFu-4-^ABf2U&Ur %21%W,A\N7%G.N`LqFsps3BdgZbl!"(2[P6iRg.:+0%-e4YO`BRqsXX'5n9mR!^h.C24;"0;@Asp2r('3i:A)4k'0FOO8qBd<+Xl7 %>Z$4Q!'N\C2U,F/Kt,ooMm83>i5IZ>*SNKa)-^,C+%$=>87e6a8t#=]>$k4s4Pp]l$-)9.n`d %OD3j:;2\@F[Ae..ll\VVKN*1+0&T@ZWPpIUiB_.=ZZ4jcH7^NHaIH``Qcp^>5i9#]?g.!1:k:V@+h#(i1^M,ta<^pZkk2k8N_pFY %TLV@GOItr.%J+KXesmt_T>ePd5D'&4I(bkV$+\7GM?D*u44(:ZGiV-EbW1@imc&2:/#k6e9,0W'_aDBN;im'oJjD/8P&9:$ZUQJ5 %_/4rig57g"@egF7JQ@%*OH4ZIQ;UOCCuG4Y56O\tbRZ8#%3l]BA/b0TU;n8V+3A8YqRXQUC.15SirG:'CtCW-GjF*,/.[L>#5<1#4;!f+Dj %_(,T.gkUMnYlOQrKa`o>Tt\bB^,!E'E]6hj\BCT/hJoN,&ZX.)ZQ_*;2D$9gB&D*/BF>W8!'B+R./Z52fVVfjo5#uGo&'pCg."NP %[*1#D05JGq[2k$Rfs0OXG-?5?7$pt2-E(4]ei<1Lj:ckcltl3B/64_aoYIKON[?j9#+5q=Qbr*1lg3oE^/a@dn:'=. %&XhKNpXQ%rGL_OC5]4&F?05/TDg@@+*\;XE,-8M8m2m6HJ#.?2"oKhF!GYKc`;TLjsb!Gd4lC/q2C#[+tqY#Tjf1D$^JKO%N'!;XE:Y)8te585m/ %$erPE6GiY&X#bEDXX)AZm[NGdC_KHMG0)].^F66*KO*?8aEfEW>D`l&`3HO$;)LS[W.^E\pd#L(j+h\ma4Ce>H)K'AW&3ole-EKs %h9*.No]j52]nSDG\2m=JcAicA=Bld^3@P1)^e,6608-6t.#Fr]^37l&'n&:Z;AO/!JCOmd_>SCSXS`=b,77lC7RDO+TWH/b8nKTB %/%OS]Je@A^JS7ME&rl]`cslU!F^D,9aT.QQHbQ/3anR8Sb/1>V@K93b5O1,o-l-pUu=V,gA"G %:8'jf$^*.W3co6nY+f#LD78IuT9B7YTdD.>WFsD-ASPGK_-CZQB>2L03^L?2\J %LNq9=**q.SoXHLL-*']!50U$GH#9/op`3FA)@KCre."p7-XULNCU?V@??qqJ[b59YF]1*X8F"g2,D!>,@gN+/<<< %.E62m`U)cAd"T1Fk&Z9>%HD5((s7Na5tI.5jTbpjC-dWD+PK]HW/XHB-,Q`S1QoA[[Kr4EA`Q3j[pUUFhK@N%S]S*a4!YPr*!L,! %313;XRTKjg!N6R((0W?>TFVmXSaq=+S=O(GkChJJ,^7iq %i^SP^`a6I@68UDYbA %6Y>`*ReKj[73bD:_Z(%hJK<1GEFgA69N!B&@FrY9OKgs5$S;l3\h@=m)ZFqScm1F%n>Kq;e3[44'o:nj.:B'[8q\G\&m8X8+,(SE %jQJG#fb,rrQ#jA?SambST&F@F'7cC&[-?iX#&urqP&s,*9)>Z+(qaXb:`#8WmOk]&),3"4m';=81c,d?N$6H?^tbRN&&ps++;V.5 %g6jlh'l$6oY$(1V:.]i[-]O(,.3oN5h/*@9H+YBGUR:DTh_(gef47f>SK4qb;Pf)J>s %Q,spP%A.Adln)XbHrImfg'kN,11YVhMHn2me:CN> %>H&\O>Rdc+Qn[Bukg82J^b3!"_,mOs&Ot58WJ#6CotY,VF=V'GnrHbFpQ<".gn7TH)uFB_X,XTc1(k$QZB%!c`3&MCsSdC&1HCn)E9M6*ke_B:(@`+d< %.K\,`qTTf6_22,;2FEoiWe'+@l;'oZbIGYD2Ys&@F3Zd+t\$R4*5>S/nek[tX2j4aV&Q:Z^.W5Bf:+NnQ",+ug7eUVMD!$gKPYuji6 %,%3NCCnG2GNUI'BG*C6G&aBI?oo?2_S`U-dY,qu9;n*Bs>AJN$/)1EAFJHnU!&oL]bOEI@g.^F)mKo_/LmT"SUQ$T[NAQ8Ir %(tpZ#Tb-sd.c9AP+Q7Zq)&H6ZE_sl50c`@B#PDd@_T6,?gtYAi[;G@Jb;(QtI7Pu$8K:U$"u;,?M2H).k&go,K";\*&]?9?e8B`8 %0[5pO6^o6a,1J8:3a9(6Xdi+:R%[PkK=*QLq_%(;W#%U/\hbgJ_.Jr\_@P`"2.4"iUncSed@AO\7U;hsc@8?[')L#;;1q+8'f4'/<1-LD"PI_D-oWsDCoC5TXK<\i7gBh9)I9>SW$Qd8lp#W7rL1peRlA'>LGk %%Z5$:PnPsKiP6tI6@FBYW(,C=QQZj:9!@GTS@38nkg^$nP*W@LfFOZ7\VuJFhZ8T+G,\4k^/@(\L#,iqiCY,O)#kPiEig$))*`6T %P$5"!(rY:l9>q#^ASR+.9IEqMPf7UL`Hp7:Z8rn1CLM;#4$&YV]5"E+Xt'Nl3rL$qZEu[@1UaL?uj@OGMr& %:I`:ii;:V;0dd*!//5"B$M=F/R>nBbf6SmimKB7DC'OF',U1*C&#sTV>`$Q]6PeS+"!YrpQqci)>3T*I&=/?0Zo'LrJ]h;.`D^'g %\R8oUa/)B!"2'N/OM;LcZA5+fdc$qpWu/3V3FArL8;7b5O5D5"Cs-l>@=53DBFr1^:JF!e3X`6YiA,ZpAL0'24.>7g%oILlOm27f %'B"d!)eHK.V>tTPoBkWZ)PYC7CF.EoUtF\40]r#$6G %\'Kj['rk`rp.JJ=6mrRK4SK4)t@%Slq[eZWc0a\aGGHte-@C;_s#f\dXHu#PR&a` %$JQ2h9/BZ47[s3&JtAHXR+e&6ko6Mk<:`j-BikI,09qt9fEA"m_+7+-@s\.tejEpIA/1U*J4LVrjHp*E$W(0a1+]:b?4'i]a@X+\ %'^LcJok/VcCb?N_;H5Uj_E<`&@qBa6V<[SL[G5[L*$@k-=SP!iD?`6GFEJC*;!nEf?C]"l^/f3Rl9ud&Ka^m%0SjfL81AA/8\\A6 %L,%<6M,G9*WgZhcZm\`uMaju6,@QqP15-R511!&i1]@hlWaQf6Y"l&bS](q8D8G/A@g?eh.72;b;kGp9u$5dJ>^,B^&NeJB\)$pQ( %]F["H@Mo(q.#XeDOCB/$+[7+0ZHI#f/^RLfWMM/$GXbTJZa6lWWWZsH_2LY20@_\N9NH%4/$knrEb`^*&UNJ8fQ58(kM[P$2*W3( %q_fj.6/1T*deYDH\ea$ocD/u,]76Hp"\(fsR!bcAEA#`Mo27RnS9XBCjN?.JU8&5)_$I6'-FRDC&;lH"Voomn[]g94@ZBddHPb[E %/oN+`0T.W'-W)*lq:]88)#X+Q+g%0om:8K[+U,2d"gFn?OXd:gV,/8\Ao=/O.#]biFF6B\]HORS\+D@bA`YFH/f!X*4?!Z,kk1d> %+qUM="e/Xi7`'^-V[sAHpYf)(+4',69!\LiN"Epq1Tm[l/tZ-/QU\hMF5;en>*`[^Q[foiY*:*Z,=1V6k"3o:EI4^P]4`#.TItF^ %l1c9UK;9+rI39YDNOR/d'Y$^G3a!oe7s9M %60gq]JY$Th<$0+\pG:(Zn^qJ38NTNIUWA+=>3KP?;;'9lK=O6Ag.##A9&Tc0G6QKo5f"8gH=lQ%hiZkh>7mg0?bl1HkLUe-?C-0#b5N0P;#__SK1iM7!Bj3elm"1i7/634Q1_@](M`4\@#3C:QG4 %d]RRBUX'nEkZS;TiN1MWhJ8*R'l";REIR`;^m*J&<#W8E=BIV\fF-dLl:?,f3_IMp*tFUU1$64#YO-A\)@/]/$CAN9\2KSiK0cgu %V!+,coQFlZPq-F(+BgV2,,T6$HO8a]6F5+q9nf;^p=A$'fT %8-*g\5Tpnt,>1HA-"":9U9(21!<%tt8sr`fgS&GnIVYp9%#Hn([8BRfBrWlq'alb=5L)h\j(frZYfK6M$"M]u8W&-[-[\Eq#T5Dc %9@7/#NlUOZ&apWp'aE6(dU=$^C:/$/#_Ipei53n%CXl=@ %K9$:!YhBB]O9RkDHl%_MSJLug]1f8nASGe`KeURF_uVs2G)-[k4t),<.mC*@,7>cdQ09UKN5Sh?\KVMN7H6#\("H/Z!1(iri_2mC %b%mi2`5k1a#mX,-&6hm23uh[b4P)5+J#`irTMIIrdBsnWo0[\=.3ql``qh6mKU:?K;Fp#opIj+AN\;H>!=<[c0Y%01=t5W1+"Mo* %_OWh.RQ_N8?Q(R`SeZODJmQ#&%9D/G7*ItNXEKp&?5>S79;/B$R_q>#eoskea7ARLK`pG[%iE5Z %[sG.lV^>FsAYGm1n+m%/rC.Q)`o%+C8e@#tAYBur0T-;MAT:&+JLkXD9BGuodp=1!`O,^/)*uJ:77.L#'#\+44XXd#:T'<1beuK= %hcaP(,;$ihQ"qZtYJBjlKa"/?+k;3]Gbg?bbH\]Tn[EhNSut'eA&na)S]7M1?qV?T:9%OGJJW@HK;ns7RDoJ?<[YH-CO,;T&JSM3 %#UPU$+#&MY1f'gDK/=a8CQ$r;AU:s"0GIUN$B/Qn$!1%4ZSEr%O3tAPD1OM\FdGQlX\tiV5^3LQf+Rs)$\M:k="9<4:`ggE)rk^t %7Nmb.Pfp]R;M6tn+H*q!RN6M237R%1<;4K,.Fa1('0-Q*#abA/L$iY+loC+]]9fk6=6u$log&tSQr;T!AFr0&33.dX#,OXgBLQk2B%qlqQR8 %h3eR/R5J)W(fk\i-h8$'3KDX+aN;ZJC6iEW+*/WMF!Ar:RM!+XHZYKd>0TX@k-%g,?)Ou;f4E=kCti]2mYi.BSF9\,%%bNaY%A[* %&sGi]bBe(QcZpraqSU.T\B(8EjB5:>A5D9)=#7PAAq_$=jOIN,>$?50K>!`>5+NM)P!WO#[@bO`YNG=UZi)8=!NI[P^'C6iA-BTe@aBF%UK$0t4H8<X$o)DC&"]]i%C'6q?\V^`#UFHAo"C"ch=fKQ[1r7aBj`RRW %5Y\IO9e]4?3N1O"<>F:i'c*kW`iKJiXZ@!Eh4.aqI]k47=HtbFatQlX,$W)lpnR1KS.` %>K^>S@ChrGT3(..X0V:r)>pLNIl1EF3e:[uC9YiP\9]l=D';oc^2I8^&hWZ*'Na;>Hqi,GQff0k`l'ar@`$*>?CS.V1iEog'p>M/6"IA5+eBiVh='-u3Ut %P]^'-'jBnQ>Ul"GW\n7_lcE+AceMg&VEi[4X5C!Xb5$"\+s*cL<9s!PC\:ZmqFjigR]%"/6+N\/]cqki[C4I\*MiF&f8aSm#jRa2&'=0FC#^IYC\$9Jl$98I&t=cFuQ&H"SLG/6FA<=g([99 %3_Hl4rN/[*2aJloTqA@ue]f5Eb63&iWk8XA]da3Ch->@A[!j5,^a`LF'!\)nTLqP\6s04mjk>=AYY'O-6((iQ=0*#hek$g]"HO9I %a9gSA)T?6PN,jfcZ:].?A&DPES6:A\WcXaEe=BU.cRL+%>4U#Pd:ef.FGdf>7Whl\7@bPtXcTYcBiuf3>cVtM;oGo`e8ialP(p,/ %=LUV72e7<;A;OQoLas>hF7N;13A&eJQYNBk261=5s(3HVVk2L=blCq6/Q?6rS$uM^37bAY-Sd&"=dITcbfSYbHCjKt?^aPj8`qpmQUf4>O1)9::_jL'9W7ETZt27fAI>t_Z0jCM-JE)5PA=#7a\ZH2\@.N.D"g$.s,Xt;H_ %=**4Go&D*BuIM\ULpNi33CUl^j&LdPCP#'Wb.0CGcF&DKCW-'LjTh:5'!(S`<>is1ZC)HO %B<*"d'7=OnghToU[Pa"]"oDMh-Z4N7DM!A@b#Gj1e8CqoX751EE9^I!pSpo8CK^VU%"L4<^^4>`$3t")X`/mFE.S7ub*TVm>B.U! %=Cl%NGZ %i/h6^2[aA(4]X'Q[WT==.Q?c0Msacgh1D3,7cR]ar2m7,f4fnRN5JY=i[Gr/$-qQl5B<#\Goc3k_9cHKEaHZ\4Q;1"YXqVE:J\2o %=8ArLEaNIFljB5*SU%iidTu&-T#:Lin:]C!`UDq106t\jI-)*dk>di?.\HP_pNhgr]gh0k,CZgm`)jM1fCI4JWUhWVp63_po)XMRp;L0CR28kk(tq@=7I,-"Wh-7VhkX&W-b>-+]S0rgR;(=lS?bctE* %UKXjr>1mCk'p,_18?KGV!KqiB7Uh\GUC42pn/Z*:=VMPXU'@ibUQ(t?:VP`WUeS8/cX'@6=d,bLkK96=`D1sJ,EkHZ6 %XD1]3CJ.oL3L7=plaFq:pYfL_>k5kaR,r'6FB->l3k*pK*k[(\YKF",ai([2g/mD1X)Z=bL^P98$=VaG[@L4E/^aB!Wb&n:rDP!K %>/r!IVB2b#'\uJs<0/2%Bp'ekQ)aIL'1>Q18Y&HTW#A[c"KbXgJuVFD2*l%Y-,HV0APH!:mS/"g0'b*"rlaW*h6Th#kt!n\>\YS6*4qYkE)2tbIgH#.4!gQsqZ4IZ/:Pjq"J6iLS]d]?3##\Z`Bh_$iPcO'@$7MN>:7?0 %qgDe:*s366D'T/?5&Sjd %9DsU!qlbX$nV9=]If-B2eo-*.e_dO5^:QD?\imh)q='Kb[&hG8*;o1_r5CMjVsf-1o8E3uoU(7qj^/i(EU]kJs8);)f<I6>?2sPHc;&;M?GF*u %S\FRWopW9C2"1sVs)dMmgY&\Kh/i$ZII`_+:G.+njlD\pgW&j:l,kl#_DV@?`YWR:2L52fk,3D>B32!DF*iIVSN4XbT)7A$P8-'d %4[5LM4aV0ip4(tr:7/eM0&:[=/[TSgGP1Cpn#*WBn'C."bOUsGDqNV5pUB=pVe`a@Tm^kDl@5C4Cs]uF4nmf"/@iV8< %Xa7c_F*rE3g\'=mgGt2S97-a(@;Fd!Ve9X\(>nP^^$TLRhV-`@(@A6;8h7Bhg@J[X[J/hG,UrF'J%ImoqoJ-;fgbmWRX;ARmG?XQ %RsTL'Df>(2c+Ug$pNXrr6i0so^.he:jX-ULF=,lL/_Ur'0A/Weceb:"I/hC3lg*HCmb$--V>BTHlXsl!cVO$r)ebf(9b2>tP0NmC %cHgiTdSC\Jeu3&iX%E?ejPAS"k9j>,\W+4q9@$p2YNI!6YIE6$IQ_&1Gl80\`?pLRgDBe\Rl>93DP',PAcHshi=7I7fs$@Cmr%!P %S=Y.YH?(atI5nt*!IXgO>PHn*l+;k;S*0hNmJ?,7CAs/r^%))+\S3:LYHQg>SpWpNLE#]qOVcBJJS%'Y^::oQO5GFqF*jdqpL07G %b?+-kqG1c4-HtB)XdNSkZHI105'n-8B(g,LjXq%lCs\L8G&eSV:"o/&ZeP%8&#b,.GC=p_qbl2c&)iR3qd.R+Qa1>oO?W:rK*`X] %4P9@p_M3iirlfadb@m(^agQ!i-TC4t^KdAdc4=(Fd\\_qf_]fNKi'Z3QYru-oW+J=&@^1!RD1]\q@Hm&r2I*D:KKHmDuZ]IrJ0P6 %"QJn+3H4lOan[uQ``IV4mZ+E^\XRhFOqg^h?kbB/5h`MNqg'4L?m<5?EZUYF@5@WjB8eO.u^:ni< %F*@7AZ_KsM&K19lVlj@?)p[1)2ULSFjRrG*]\_e*m$`e,fB\p`I_!2&rqXGAR3qfJD25R-8$eW. %:WqG^c0WiTZ0gUaG5,aT[i=D1D>?f]/=g7>Qhp'7m+PY#3Q1=Fc.S_kZKu2KrbSP*5%fAQJIe6V^VNCRm75Uk7CMkZdX2F8a,Zsd %A5RS,3sK^&bK8;bfu<\u(MBY8R+&)phYWi?a6\o8a#7u2`d;Xb)N[n&O)L?-o0>l0)shfRO1om-kKrQu[e8h1m$@"l3V;\9m;Edg %Ve;?/=10Y8W<6#Q+[NUT5Pc7^e._*;3f_!oY,-AH^*fDggoIqAeLmWnlss4,fECn,`*@8HoLrH`qaL)V2L.sj.#:7duI^:Sd% %*XkmU>]Is#\*`=:%$TAhHi2 %HTrnuAqO[$m2Nj9J]#]Maf]I\T.BoI4(t2pB'#oUl[d&p(Kgi!JBI7LiQK%Y^?.`VEZad90Ah3+`[?7]oo(kW?>\gXRAD_+c4T_o %H&LfHO*62akYW/!hMW[b&n"qq9T3T7,5sg8!KMpA3Hk5Ps1.ZSJKN %C9o>d,MUd]2u^-OMK^;"[pM%7Q;.660:UXSh_1J&I+`mQeUkLss7b3cG8DVK?>Z"p\;clAcn*%MoHa2/5;iL<(3f,nc?F>QH+f5/ %@^ijRAe*Y"'>;'W%9,!%gUJVWfb;'c.7HG#?&stC`6MC]&8H7Qudf7$U^Sd^]VEZUQ>H5X;ea'P#k?$j<"3YDj %3BOd"[_XX5GAKE.bdQ_3pM2oUM#6jBZUbi2g.)AVJn:2l3Jfmk1bk*pjEEn+%"h>O?]Z;CV0O5 %q[i=9\@Qi?KKP_Tm-VES2b=&JIP\"ld7mh.hmRqTG^]SRc+EeJ>./i0fW[@X]c1d'5YTm]I!q:(K<+f">Ij4ZS+tt/io9h/\a@$h %s7r#9o_67%nDVZ1k43BD4-2ST2VT!;p["Gg&*\2jA:Er0DgTgbrO6Y4H/!]&UdYgVH2F>T@37meq=a!@Za6]NPD*uLmJ5;uo:N5$ %I=H]oEH_6Hc.VE$YA[1=I\+76p+Enh9CA"0=#\n2Hh'DaQg\hD'M'c6GJ4"4-X3+sVR)3QO,^f2`>oKOms0(O#1uT4Nt6r#H,dk^ %9@70lC!&YT^XEChqsE`,.@)p=s8?/"@5mZXXPW^Pn[M:t\ZrVRou=ZUnWPa(\NB7)CZF9RUbrY.0Ar#Iqec%US%[]kn$h!ID>&FJ %^#.rn]GL(cYhqp?397g,qec%US%[_AZRT":"_Fo^6@F,,eG!EOm[tB]1%T$?Z4u5XE*_hD0b4bOgiI.FgZC2^Z!kg92!-SPCcR9j %r.aPu1q"$d])@EIr=h0#G=1Kc]9Di/_5.%_\N`1Mr)4]>"Dmne\`]U=[^5S#m'LUo5;t`?G3.rCo1j^;hf$]C]CC.63N"e2J-UDr %So\YU32aLjjlH+-mpDfM6/2 %s1_K*^CCA(j%&bs=p!G6.Z_35ptdj^A^g"mKQ$!Jana!K6_)GkZt-njoFM@nn]gEdr-nWk"#uuZIK(m>o3:k1fm;^fd3QF'r\^XX %dAcX>=L<9B]8Cs5`i#da>AUM1RT6\h:6"\H3&ThWAFJ%#!V:NeQN,g@n[7)tgG17*VoISmZ)pc\YKSi84kTgKq%sRI2`E+^[jMuA %]0;jJf&iH7Nj6=_^]Zab!*B3lr*k9_ %NpaIP(7ot8PhCJoA2CF?(?[^(DoiePGdc^5G^O$l)f5(lY+n(J\*#gK6;-aoEZI#-ZR[BY?I)\(YI@`>O-PFa %Oc_QhWJeKte**FmDLQnUO`Z4]ng!S5=*>qhD$)k68,U#hjG3,.X]8ZdS&^($S)95Xa,W$<%Qh*bMtYf.8h1uG5V_IKYL`1K4ROoB %D5j-jU*)nraJ0HUYs/%-`G,Js2FrBF[fnDS]t(U2pNFj;gLT^<%DKNl[l=*U#2e:qgDbMbK5\24n/)VKa,nK@m4H&c %`OE>Op(lQBinI[bO4E5O1loW7S9g&b3s-7r4Ci^ZG85HcCuG1Oo*T %Sp*&&cZnu:)M[fJ4GrNAcel"8gXr!RUtm&_?=-spr5VSL-`=_.]3s%ZD^VIG[ibTZ"/#);gCG+lIGAl9rM,q2f#P)%2JUI=/Z'>O %Lc_u0*iDO#;eUKch(cLo?EiNP_crjU4FTuYgXi2[ls_iffbf7Kmr%!PS=Y.YHErBV0Y1t:9mf932D'0bjh&Bac2$S*i4_A9ZOLnl %s7,d4gY7p7P'p>D:C8aWq!mEkRh'@pjugun_:mJ?*aK@>&;`pGpWoNO7T0ii5J/+0$=dViH/GuqB/LJ\6L %qU3:I97(eqY:e)uL@8[Ugd-AQECL$O,sM/MNnM,.Y]lLb`3>ceSDXX?r9TrW"Dmne3PQa7ZZBoARdE=(2a(pL8*;*V3d8UT]s#ko %NOmIQh_]La/ABmEm*J.FXAhTKSpY]g,&_\9Ld!9oZJA^=5<%`/hDMu`-V9UV:XZ"MdnB&E`blQOr3uB(QHX2$rAK/_d*$W@I;SkA %n`P#[g[uDuh;'b5PNo?_!-`"pp^2gL*nA+(2'fZu.)j6cC_L@63Bdop%EZZ(325iO9n31XZ>%&XCd6'jqo:X.2_WHp[_YDi:tpKPb[WZEkM`ALhHc]O %@u#5k7lSVOg-r@C3p,+fp[d_PkF)-L[^2kB"Yh01#7LV4]K*NKqdr;4M=$`"O4,3AOXU^nmL&b,%@8j_nk5ZUM"iNe+Xq:J%E?Rpk*q,q!Q&E %alW?a`BR,CYC=(^rJq3PdXRb*h[]ofc&Wsp5Q7;IbPt/.h\Ub3f>[des##_d8c%I3%M%5<'4#8fLF+!dlat-t6$(O4epETkp;dCV %(,$1.+Z)B;`M)rpdCBb(Q(),%4T-^OllZ4LKhcm+q"a(5om'GX(<6<8^;bs#'rF7pR)ROH&%X"7Kb,$;cb;8r>9)d4g>7$DYq]k< %frd@#U32A90+X"'lE.N'rE6`eg8!.%T5KVXW-;NL4?Yh57nr3q#OB]]DgY0Je!n'oMu66@$>\Bfr- %`JsDd0t,&\EuO;4UC\F$R&$UaB]PX>`_W5(4Y$E8Qk&jLjp_iIgXHEj[Dp8>/PPG7n,1%iUS`24im8c)/rb_sJP!PFRan:Ok^/4R %O%7dTY$IDQ%7+d12[4cm9u*,8$t;VKR+,Co]a3M4g6qCss3J2.I?WnVFMC$q2GKXoM)FE(QP4E*A?ojlODb(2:hR]X`3%i[/;<>Cj_.:mFifJgAWnPP]'mA9E/cC %s1nZ4Ai,K'M`ZC`:V+-i&TCs1-3ftOB(=Iu3)&5ZGA2R^@j8Y^'%1lmO'R[cj\eGcAt4Z_C0S:'V*-s.?n\S,JFm^ThnRV>qSaQU %\G5U/;A5Z"VPi"(O8jA%fiGi$l(UsJ83NE]f&9!NZt#Q3H.jL8`]Ga]S).R_>a14AJ*bV%3^+ZpQTCalBa+-N?.uC/<.UtUkli?< %f#OJ6pssu/r6Y(+D$YHcmF0fa9X!n)^U/3!cK?gEQaU2(,]p;.q7=rG*Jr3QBc#gdDge)#kuKVk/W(hFBl#q,-J(,8pOLcOFQ:_6 %l*mOfO,[kO^^>\;UaG+Omi.FC,NI0'.iit_:cpm8e;.Id01`"02h(CmW=SMXDI[H5q@c3IE;-/`Fj_)_6kP.(&)D;!\%4crm8>l$ %@C`_nY1!)R9_d1)BP;0T)b/l8Yt5R5itg\.*h/i$b1">*:M\1KQr7YiBt;9MqXkR$l8qYPO]6q`;XYQoc?LCkeCBh54\eZJ?O+/? %rp]"AohT4Yj-,CZo:O]?Z$:Tdmd2ZcIpQJ0_[FX3D0S9oGOS=jHDjDBgplOL5BbAJG>H*apWPb)0>]Mhgl26m8,l2*0E((5pJuc> %a%Uf$RUsgo-5Y]^1p+e]YEH;54#3hMGr=g+o]<:?A'\JrqX0%$kIu5,PiGhed\R7RXQfB;og+gSS&M]9Ci73ud!%[eHSO7'`nS@- %ht14>A_t`sqr.?O2r4%o>+[ENhIk:IhVp6a*?/JL1\_j2+$t>>lDN,QET`qiCjBAnrQ5R-eFMG@,qXm1e@*?aP*Wds>3prW3C$`e %6FEAjMc'@f88?SXFEATE$Y*AdO>q/>mKOd#OoueHH;NCPI473p8DitB*b^nVPjZ,Vj%^,NKYHX8N5:8r8Q*XA`OO)qgWG+l>o.e& %a+3oWagAs^"Wt3Z*=hHTlhsSPNf=94InM[=DFF!$`Kc-=BrQg %qDW7sI>cr(`W9AlFT$G(Yj3U;A(1m#ZYSQ&AC<006YFoFW?3,R[R-.G&^m71gk[+I1F9`@OJVp."Z_BThoZNE.NNh/*U7'+OfZCX %R3].$j)*Y_8r'!el3@+'4H&INHL]M=kKS)B_M0t.NdG)MO&$gC")VH)Fd!d.^Zl>J`<#Q.%tB'$r@]P5Sc)L"+8MmJnr_hB_QNe? %GI4FI2udU:^RK?%VDJ$Ds#<*N=T%.2H*V:)cYi`%opXWh-(eeGr;"IbcPL6Uhi_TJJ,9JNqd,i,I@L99mG\X>s0hdPc6`-qqP?dZ %o2@;:.\+9FV7urWF`TRh*;SgOfDGJXSo]B).d,9e=3jWZ:L="]frMlZr3g^hPJ?anT)\]SoGp,7Him`dDQ4TH$ZKutC9]4t6N&lrKPH:>O7;D;BMLT+;gOkqo#744WF"-PJ?UG/'HV1$K'3I77F+\@!N[JSe %QtAFn%fWF68\QcZ6`h@lgipjIMWG)=Dko&/rhPY^?DmFA9/3%)ROU?EHa&6r'0k*q\)Ia!)7*8#=k?,$GT(AG-*HdtF\=XElB%PX %$r]Ii9Z(BQ=&_2Nfj0kdM`,5Z\e\"\`j0gGS"=C %\juZVm.g+'EsHXO4(%c4apq?'&UL)Je"nup4SkntW=TNA.Ga*k"&#(9/hW<+=CL]PNJ5r)j?aqg(DXEVD7a6.M;_Q+,N4X3m^*N! %AMXqt:.LB#a8q.)?XPlF8l=;O$m&"b(YQ23i8H[[(^hoRATMBfm.a^hH9$c9S<_>Iif32bBdt"s#h*mO_PWBh0l2p!cA[Q^+,tN8 %XJ+[Y%8G/DW%RHYR#U>eOSRCgmSqIcl=+X8)beSlWh_f* %pVq+r1?WstB.=FlL3\7@E^c.q1EE%b%=)8*UQ[H=X.S;dd7YO0J1'JV% %\,*m3;t`sK<3fj_bkh7d6Z'2Pf'tD1+-KnGg#+W5\c<8kV]1dCR"&.SD#Ft5QsJ,dP6)&k''a-kXXu(/r]0G,A<%RlNfpb,kV'>J %IF"@%]![78,2uW+2U[=35:18h2R[F$2B@Drk-WO6:JG%8XOq(0R\mjCl1BM4+?fNQYYAk/:Pb?J$`#NAP,61GP*eq7:<"P9$uYC[ %Q_o!*#]15 %eBDIE?SW1m(Mlm9rQ-*6:fBQ^,;*i(h&m1IYYE/eD^10ASp\:\Wr2^h<4=IkQn!NmD\;U0dZS>'$=()4G1#'APKXpnp`acOT7,,F2\mq_DL&d@IPd6+WM %0Ub8EFE)-h%Pu79HQ(-jTDC#sSut+9I7A,="AVHn(Ilk9=WVOD;V12;83Nrg!F@EB:SPusT$flegD[7%^$Wc$_>@HjdXnY2jX6Ok %a"D]8`#Tr/:S4F=j$ij`7J#$BfM/h\hWSF;KfFBk,K9(`Jd7@@3r#!$Q=^[Ybs#[)koTc$@EaP$^VE>o\r>*=qo*iA+Wu/ %*M24nY3dN'dbn)Xk2J@8%t?f?TkR/>0sZ]^blYde9%PmO^Wor48NHmBH='g.cReE(BSu$f!>"j,?Q6D#-+\O86e<@u9HL2[c$FTBTec#u#)i6&]oI %o^]Pj`NkN';)j4I*!q$iYae+d0\FAu+l;9.BqTKN3p'*LHft46FB6d47&rms7?gK.bY9%e#PsI#d2h4V1qf*]6Q_?0K-H)ioaNQ' %"-%:3]>03"Z`u:L`s2\j'Bm$k"JZ8.(dX3ED_$J>al+?A1jr8D0DbC]M\hA"Sef]egPsOAYM#Il^RP!g]/_=!1[T1@d+tSSS:1<+ %2eS$hif9@[/l&u<&]EJ:3RuAgQCr?C-f3rNA\)8U&ZPs)b-WZk%NCtHa%cD!m%&YI\4)o)AfRos90O9!jEj@^V!Y_Y]NFa/8:J4i %Xm+2?e"EC)<:4ib;;nV?!ISZ7qaLXq6W1H^@jZ)!IAqb`6I3)F3e#oG(OMsCP.-(=mKC8oT!74icnr+U-gihXm;N>QiQbS#[2.^) %p?(#[`AK'ULRJaQf=#ZgUiWAd/X;?:$%^Bk&G,>^P\[)/:MVj+<5;4#+5L3&]S@HU]+L;=18s8=1bIrkW=)8qRD7$7QOJ"7dF+4g %R(,(/\;4FSDK)h'7'/"ts+nfbrHr#US2IlE<#e)p!:XcBD$2^89DhiqZ9S&$Da0Y[\huJ@,M@9A"f1i'.COofD^5oBC*$]N>m%k*s7oUU*!pb%,UT`c]_L0B>d\?n4%.6("*ZJQ(a/u8[/>6RK1jF.96WT'\l^]OcL %&L!5Z0PoD7a]NYcA!_)]8^RpC-;PQ'JAYf%_.2^kRZ'<%i79^b+mSFd8#\T)@Kq1.,60bcbMbgJ#j1>3?n^iM<8`Tj*OG*L/Uce'`@:i6CV&l\gD5Zf7=&aGK?iL^*^".p:p%1fbTGj!!'#(ioXJ0QICoM(g>M]6=6\f>3$:2jf)kkfANE[n%&XHp'kRt:TJ:e$Jtg#"g-?N%2>?a96`.;gSE-!klc:I=8[V=b$A1-< %CInn%0T\BR#)\I!+I)r&P$IVgbm^24Q'Lp^>J<+HrmY'Ei`Z""D:@oUqm:E??L5"B$Z+ofDR^dL\\t($m2&GgfOT<1K/`h*S<3g\ %4EgcgP>X0,83F[FpWgk*QHi#/WWEEgUgB"r4Gg:`VWkO`<5]Pa["_J*SsO/J@pZ<#Dq[j(-fQnp3h>i"r3Ia\Vo<*DKo"f9gB1:e %-+iTcAG#u]Sp"B;=hCqS3A%;6?8c)?S^Ak3L\lOH-l+P03"O`/PPP.c!W-`M`<2 %)&gNGZWj0gmS*8$\634ah*=,mMul?OBKG_BiFtP.d:4CETEb[tj&G6hj4)("kYi:eF<,Bd]%#?>qc]17HlIPSCk4 %>WG]nk.Hd<75O@!AA6"j@iEh!UQM)lPHM(ujIK'"[7qGRLLU-iW;9iRRm["9mB %!CnhZ-f0Z8Ku]X@8WW6!`X[YW+JNs0n4D.ZO?O4TRH_^D]tF:pF63`[,#VGBW+5a\-,?3M`Z5.Wi&Z$5qt=2ZWAUj;S8KlT5mK1%$o:t8""jDW %PP*:3llFId1,tBFG"12^%^onM[?6"_8%rb$V<\?&jeBeHIXo#e;-kaRGbRe(TtA_sM4H?c3Qhtl-9Ko!0*p0aIVT^.5r9fA53+a! %-5I4!A[YYQ3J)1dhR./tMK?(u:psh#a_PWN_l\TH!b0S3%pZCP)e-!Fhoif.$MSY42,+0=LEqgn:drf?;/.t])O*rTbW'C"K6Br; %+Q2.^Qc*i.#[u(7bMIK,0Rg6]_Mhccgj*`TI,m0Z4;s.*A5>GFLkZEqkEKut/:?N0Zc^IH.A_rujPXf^E[i(Q\PWt'm+Y>jnEH*7 %!kt6]OKIFdJ`CQ.6bfH(+XXjRAfL.=a(0fbA`-'Qau3D6lmG)DeQ^)n8DcB^E*K8_ka?N&\t78L+e8t+oG?,BRis[H&1[j%8csUI %9!]oW5GZ7D:/feb7cNtMI'V:;T3:b:=fLf;(Y1J3BmeW!H-s39]BQ9\>S"monq3*sgU!Z<^#*TFQ![k,(u1?]3pt()T@SP_!Z8<\ %Hc2qVEqRG!TRmX>nbp(T,bsXi>A>=l.hH;N6mn3 %-4,$Lf].^j8Ec?[F52m&5TUC?_>lld,Rhd&SS^jgFYINm$6u$2JEMd%Ye=sHNtH;"#/aBd/J9bMVpkb(76i1cq!=U/K\U*6DGLK( %PljT>i@/n'[PWe&Tuh9`_U8q,@u+,:&&BukpON1<#<1]t6r_bnpIiC6@hY&T)_!%FXJ`iL!CgLI*?nRRJGG9pL6R&:7/"-fj+GX, %7mSF^m9OKfo0>3Oi6>J%qeYJ11DSUli"LI$]q!bmVeHTm#F<*>'P!5r5T+k/n7cD`$Tb)"[fokMVihKpq*$2X"HS=8$4VR&T%%Xf %d[g\^G>`g`*5&)N^tasAkp$5fUjR2"k::%cb_lOQIiq_4[>[C>[lZ"e_6/gO-c7=(5'u_G4F;PDT"4XG4b%(94cdj4n,Jh>QM7r_ %I^HjF=e9i6CE$Y>Vd,!"B)3p*AX]<:+Z@dr1\jp^)1-jEp/egTGZ#p@jT3U@1+RIL:b9mG1H,"V7^:B>/QmAQUjlkpUaeO>iV^)# %aY"]GgkmiS.0hUK+/B:&1!W@e%PT9V+[N'B[2Zpl'GqKP+FeEN6q\t,/Rhf>`0g9gJPEQeO+PR'1rOlA]/_(KJK.^H,sf`^n,hPS[65LWXb/9(]-I2YLApE^ %>ZntZ"(c!Ps&S;$`Z%ZpGXLHOmbr\4JU1`eK1B+3LF$AUJj;TKDj(4P+15f#_(!lUIpVbQ518Su2fS7C#-2:Em=Hi$lqb%D8X!AN[(g7edJ`l$9jD)?(%6/=_e(Lp8*jK!J)S`8rp\O_0X"KNi(fQON:kHHLdfb8c&%Am^S]VZjSogk1f2R`Mk70;pC1(IZX[dTLM %A#RZ#(RD:oZ0>Hfar(]+[@dIRBL[.?&[u=>E(.HlCgR]j6Z)MS,(UQ,1#t_'Yp0.qdB623Y!k:+o*c+Q6_R9KfF_hk,838(_[Y8Y %8Nl\5`HKXP>D;248&d't+ %3\>?g\4$JIG!;Z:0cYW6Mq&"$aW#UDSj0X&]g/-N(JiiXd(`+]YfA;t?l$NTf)!c(^]4Z5ZnF&r5a.&K#!D>rjT(7bhXsdu$lRJD %g!^4:llCWA!;%MO@`Pjj_fRD<)+_^SVGo)0ZI%]X,G0@jq7^*^fVG8bhMG9taIN7:ph@7B'E=53fS6,(Y[eb4m7:p0rWqf$ri"W' %,=@">IphjOC>^O[heB:g5W8,XH1,7E@`6*faM65BNCXFo"Qi6-GqM/)U5/C(`/R@_NI2s6iouskL5>VlA%r)A6emApI$!;_#LM;j %2V1#`5uob2:as7P,";@8?3Z)4K.cCSVuf6Z2?Q9JRt`)7#V<15N?&n"(s18/ihBkb?QU^]0c_X@a6('tI=>sM9Z$iL3_^W*]eQGC %S1fjnO`1H%MbkDQZ3.Rapi-^H2iM:.L=BL*jCSp4lHEd/#6HAuTT>W^7jrpFOE@q:Zd6'6ndHSulE*a(g=QrnZ=QdR7Of`0R`p2@ %Z3'\\_43o#9--1l=XMI]6n5)-op,^6SK\fBh6M5P[`pQh,k<;:cjisrY!n2&.)P(YhD7i&h_%TLBk:GM4+b*jU>rSacX=F+f/Ore" %C]h2g3<9V--@l7s4u9$]Q/%KoP+Vc"7!r#;80LUP<*"=/uOV]Op_qgTLPWP#*?Wt^*\[+D:+^$'(PSlp.u"_U`J;gk''bg.noCaZmRBBFhECjS1 %FHn'Tb7)6>=+Ar///*Tf(+>h^kfPlQSZ5e2iF8l.m-=)62b]QP^te&]q^*9b9YkRs4d@Rp]G<40+u>8$EfE&M!_7RAS@`kd#B,qu %l]al>-c6t0+OAZd,_fT@9kC[q*@BHao@1;5.*^F.GL'VQ*Qj!%W[BX&)fR](bZe.3?1%niITcWH5YB`?3&Z$D/^XM2kMR12\aja: %aZY%.16s:9%Y*RR.hA2+QWP08,06D*UKR3GN`k6$!dt!;ndt@d3Z?Up4D1oi@3AN+Y(\=u*`tm+a+r %Q5MlQ71CX(11_d-\-g)FqR8>po/'EOZ:FbX("u7/Ud1H/#dI(DP\Y-D)Ap]MMlS9mOc"WG.nn'nVaX %Ku)%:e/knm3#k-S\GGD3l8j+CE=f^6`_#P@o\[eFiGcmLNn-'mO]GfEF0YW$o.6.-&f`lWc>)oqC317$d\,8DMXq;6601aJ73ru1 %o\;\m#6:8B2qF[iJt\EfL<*+-Td\QsSA@&uHS06-XS/H"i68+1p/"9g %\a>7B,^hBQ/;+.b0*Bp1^CpFgB_]"TcS43Dt\PFo%s6%esZ)]0-Vbi(+;W,c+8;bCe?UZ9"i%;pUGE5))'Y"eT"O[rT.s[cRcSOb`!HE)o() %JO)R]8?cZ<:B<3!-2U>\Sm`@7mn@>[ %El!ZPFCnaH('b&W']1nY96m-c+e!8<$HWYK7(NF(R]0M,F(+45LiW-=Cu92p_ihY9jKYMfSG?q^.BOai %$llG$WI;U%Q/.S7PF]#hV:kP_&j*!<6gGTE#Y./sA01Q,;0G*cN2Gd#$$#=brT&h-jWToMF`FP'LmO[6290FNXVDo.ji9LiSe>:3 %0#54/7h@8B7Q"i\AtU%M\UYm&V-YD8iDA+1iWLmh)4[+'Y`3G5OFUQGL_=E8D")+oI!Yh=`s&H%"t[HkbcuW8sTb@)neaj %2+)Hk1Q-al-k>lm2B0M-EZXPM'lA %SV694bg8q(57UUGq^>mO[QJlsa!=/fG&sg46Be34Q4peG4cLKPM\9DF]lV_XB9B>l-rb?p=ARKlN,_X0%k**(R%ad+$:8;M4,^E1 %ab&"X_a@,>jY@Rm)bE/"BqCKkP3d"V_EG/oRROKu#V8s5.k*OAm!u6lF1uDoE2>1G:\H1p:MjiOZ4m,58MtQB%-jf4mqV+P4rpX[ %C"p'(Z+cFIK33SbF'Uqdpms;U/Ua"GZ=lqpe"([_.u/%8gN^]uXP'J90:O_Af/OE3qWNuk;lVJ^,V)OlWW#5)./LcR\EY>j,\e)Q %4?4F7VN$[%Y56@Y>1:R1adWVC>oYFkU\=R-1(\-m?W79d;%Y\JO&*^[Y;,FN;LP972X7\9DcZ[YXGR#NO:i$1cgd?l*:` %\'-LGI#p`J+U1'E!(k!oknrF!Fi;I3(*=#i0s_?q4R,90gBDJ15g\I/Ju.#-c_un9'>qnN!7u6 %T`_Vl3Y,C]HuXoO%]&`"D8QO)iSJK7rF/E)p;t;U('X^bH7=dD/$4pE#;MeC`8Y>7K:T_8VVM>g=G/,RPn8RWKZN"hMuPtsi6.q= %*KFjS;PV<4`D+;#o%s]:H[;V;\AfZr'dIHE1EdNr#=hUT#ffkZM%2U8-E/5u:PL"q6=ENCb3ga-[s,F;!kBVP(r!LO0&NU+YpZTTkX^"gd<` %$Nn?NO`jNR/O&[^]nD3'3:n2P-,t]4.CouT6U2%>3.ZU=hp[464M@>i+m<$m\TI$[2_n+H-kt;to'?MQf+[%IjCRj&PERH54M1g] %@MHE:%n*KSBs0$+_D11t%r,.HjUSUI4h-J>UEdFT!HB[2eU_Dm;9Os\F^Y8>_CC)EN8^[T*%N[oe#^,XrW.."dOGR#f[uf[I<'Z1 %md_IO[jS\o4SXKF-.SH6=@rTdHX\[nY="488t&Qs#`r0rW8TFI-,f-;U%3MOfjX5L4nEUpUucc>?n`6lRiM>E8Ma[unG=lh'`O6? %?YU#ro$Zen4HEZ5bL1DP3Z:@SUJkY.>el=B?:?Ns6>-cD&l"@ZEERSTkA-%B#kp\3M7oYt$PZq":+ZP9%RH_Y$D]__8H9'PgT`6-,^J:bX48HH\a;e9_;?aY*%c"Sb>>5g-r"lZr#QAkJ!5coua)ha3$:d:r_V)Tr@@kp:%S)>usfOqHfl4;VP)CEh++]i:DB6uj&h[dF1oC#OW?m$$(Ap*21"aCb126Q'B$<,BoK:idKH %aN8;d;:)#1-r!&b!G?l%jIV+SmF+chr%*?&!M]DlcXBNT_h'*]W>Ssj!@004KD5!jcNP[ILc/=hqf=@5oV12h#'`Lf^-(nq#&lr2 %&'6.X,#?#uQp:)`qh(]0n3Ml)[r<]ll'fDZBP]Fe,q!r3VdmEH:G]e;8:fD[TV]'Kfc:hZ@EMcXc_UkFUk,5?#Sns2 %&o'uqNNBUcoq.9:%LNpd1EbPWA%t7e?(kt?/&pd>.umU$M2"Vgc=m]NElKr;ct3ltqg_!r-GG+pfe:j=E=Lj>2M %J2b]7"I4NX;ZD1'/K[k)Lk@PbSI%8k*#O?2LQUTlj.Q8p?'RDOkn]^E?;,Xm%hZ[3H:5EKkp*0NoJ)S>k/0Qq67G[9ZJu%Yo_%=. %rd;9bBe'n3+eB%%r@*.r:Yn8\F(*[rM:FUq.HZ6?m6jq2`_bZ9=WHV4[H?d8@r!>L-`FG!%,H(%6iT5e[an"4bf+qi4YGl %mN%ljI)EP@]GMLh2lCb4c`G7Xl4IXTJ`N!SF5RDF#t`ZiW1^U+P(4RpnS8Gt8?KkmSbQt<%nOB\N3#-.QNL4om2J]aBSU!h+s=?M %MP"\45UV//6rgH?iC9_+3&&\,0 %+fJo;Vck70B45N[3F4=pBUj+FCsQDh;M.M#JPRXkT63_("i/iCGa3G_9;-7gC8Ob7&kNI"kq=M9\$YT-ElLNBi8h5nrbT2(X<8\eN!q"e(gbDJc#%n)38t&??abD#+\8NYeMXUZY(_5e,"uEcK %i'd3hWJ8f;8Ne=XO0oDFJNdM`CW/Iue=Gi-V\jd7S0C0=hdX5A]rItc\]`l[B6V0%na37"/U'Tb2S:aR50^3sk8(6Y6ZH/4ZcN#t %Z^n`YBQHP<5ak#m,lo\&9?p3'!pEcteYdg%-S,rqU3lFC'>dkk;MSFOX,[m.ih:qL//bI\]u(5NbMt8j2%sO95Vn259LurM'!e1M %UpGt5[1nq=lgFS=ll=W,id=4,"F?X'K?e,H&-Yh@LO_:q1oi%9 %o)n*);Un_:K$bHl.12-1mmP8eDPQNcI=a6Xa;mQZDr>CZ+482h>ksUG=q5\ckupX_Qp"\V"5Xdp:dm"R %OVY(*m,(&n]qK3cio3)^k_gHDM7l`TJc6$P@*6[4JP8KG@<^'T9cB*:!L]U@**"#Y(1[X-9SLq`e*BIFr8EQ\:KEuHQaHe>4>nDC %RY9%dT[Fb4fT=*E`!`0leL$\j4Jb3G/Q:P5*,t?jbaaa5V:U,J1N^Ul_Wg'2*.pAS)g8;mX2N]`*i^72kXP3W:UAY3]RN9d_Z&g@ %DbrH3Qg3PGQKA,^j?)F`&CTG&X;o=.LK>6\O-*BJ1Yf_ihiK %KQIgZ[DXPOG=SeT'$8s^ZH_6&72_n.!KmXl,j=NL9YBJoF4(35>mbobLcnV+*Gb@G'!95t7HNI7:(@%EP/RMF#Gjm1=X#_u4Ka\a %M2i!2UDkdHd6p)e6BDlG2hk%u?A8K6@1Ke8m$ah4pMZWrccM?o=.J?1hG_N_otWPKn0 %`ujlkUEC&nTq;/^JZq,#aF7Z[;Ku42iJ/-<8McBk=E!Je"/qo(d?8Viaf.COoK@H3-2*(m"Q05*!(003$d]U)Y;f$5:Nes"`R/!^ %(fr/r+MgK+EUa1X,p>P3g'>J"6$&*W^IX)5**#B9-T!$HPK9&+3KSUs:KC#e-jdI+jtS[mA;'YA*d,t>*.k&+a-l0S-TMfi4nA+R %1TQl(Sk_f<:Mn1k3ej,qWuFuNb#o5Q[:4RDY;jTJqa0OfW89,1W.?#A[-Z;87+nD3r*4Oi>7;,JL>86f!0]+Bg?&?5GDF0OL.dhD[G]W9[_XAn^&YT[)6-hGjoQ*0(t+/TK@]unk`JhV%<*6?LHkm7''bf#ME %5"K`aY]>b5fLG.C_*QgH2((<\O5[^4$68,6,dI`N1OsY.+SgKh[Dpt%V-"<57Vou=XK^rbn%tTf3'\Tr'PGFDcSJ6(4*&fNa\'(] %g!8Bs%D28SQm*#/WfmXplj%b])p-j3@k0,5!j+KU';>sDi?2&d$t8/u^b2#t6DSoum2?Yb2Og9?K&"4.m5R>,Y@l]5&;oJj\l!iLi8A1.]'J*3q.H^OaJnBVh"*r/;#K %MQ]q7G6`cW_3cB>X+\3DqS^hk,jun>?3i+N-p$:^,*0nddcc7SYF?mjCs$os>60[q5_Vek9bWlK;O#I:4_p!1dkClQJ>:G!H_P0Z %qi8ee8_tLVn!9R@fc.2:RUH8;!C0]\OOM;J,jH$th#].s89sP2l]-'JUSADs1U9hB=%_4O7r@icBF;5XOTb_H*9?^G=aur$M`X]A %3YT]BWC%Rd*@jZBZ%3M%#Qi@h8)2`0dl"D_+`UG:W@^JD8@>i>V19H3nLbUaq[HiZ&4(P:MFS5t>^.k`\c*VE&IcW_4G=#7i"\08 %Wm;]:0kpt*hApT4Jm,uQ25Dlp30-,<^2I[Nd@kl"&6D..3*U29[6RSM(s.=92K`L(@j.sZ!]U_m[cB)ome),t0NJMsOPP'\&`^BW %qLBeL*/-i,%:UXP&X]Df*^mpn**P?^iFQ[NE"&*I'd"]E,7ar>[5F;",(hJaES$&6YlWc8@f0DY&96TXehGH.Sh\_:&05DT@2miP %T:X7G4*q25Z+Dt<:g;*T8=ZFX/L&DEbHpe'`O;Q)N]*gIq/UU;?@K$_Y!Ce#_kpDE9:T.L)FZe`Om;RM;*MM+#C9L&;8*6LZk$tF %+Mp[;77fbg]Fa]`U3hi$2MWq*Q.j)$'XsilK=!IJqu[Ji'5ukSD0CU0DT$G79kUf+A5d %4[)uXYM`+G'PJe3'k&ei,5@23`WY]4#72F/*G@#8.@ea]GEZKihBg2\@]raq"1i#=qf9IV6V\jOFJMK`5pL7XQmcpgPJTs_7k!UsSgPTW/ne]E%'!reu/j@bL!+rHllFA %KbKY(1!3RPfI(k:ed/Pnb7nkY#"G"G/E@b(_hY8.$egsXWKn\:$oKpGGA8s`eha#Q1>%u`^5afH>RV8ef9h:7@fX/T%HVht+L$?h %eOe^N"4UMkc#IJUc&,P@&QiM,a*EPCF)>5"G`K2a,C;nt&j^s#E3(#\"`2"SCoR$Ik,7&^<-Z;,/ca_IWCK>88/Z>S/.f,;Z""k7 %\Y^1A/)G([R6nDaW"0.9(srI-a4Q]Tr8">2M%?EliBBP?"jT %0oeT?pg=tIPQ;Moo)L*J]Ep+8iFC:"TtG-K=,$mu;ReiRLBXO@1c0A-h%&aWHY*iJ>]= %)AdW6:tg`kCBr^+@`N.Il3MY3:XN5PNq>:L>FJ"i-2!CGV,fYPMgDu:H#W;!*JJ![/bAPk&-\X*QLfVfThR,216t],_q'r;)j:Zd %L5Y\_QI%j@"SqJOTDA<<>d[9?o1OLf[%o@Ks)<))n>_-SWDJV0^j`!;S;e#?FG<5(STAV-0PXY8.-]rW*0aQ&El[*a2+-03NB5l#[rdigm-2Mr`m#QAJLBSLHbGFLG<9E;5bIR(UtU/Mk(cEiZMsC!fKI>Z;s(I5R137CK*13DR02q %05pQXap7Sr4AMHs-;Hq`1CGhG/J!j-hc:pT+!cNpOE3N\'K):aSiOuq'0HL#;b[h`N7->sp+loY6V)>Gf!_Go39KWTmS#Ke-k:fB %'aYrm:DTR>&kkj.'l!ZkhFUJc^TECU();[RJI^^.-r6S%cQ^(ggG59M13dL)gsfh6RU-&A:mq\h)r9enKMH_cP/s.?t`D.qt^\qT$+^jf2?i-5lVoha1U49,FFiHW5l`,USE %!\5$!O[RL:oAT]B\(99F>HNIm3B2!u4m1[CXJ3;3`m1Oe_??Pt4!?D,QlJ6l"ATNSjoBW29[&BDgn1nj&.\[Z7'$D%bZ-J! %g8L0;BtZ&BJo1^CM?N(gCLIGX;B88l5h/5YF>["n)jX$\oo+90#1nJ.uU*8$Ym#c[C)49%e::>tgT"Kq$N!gD$, %JujV?5PMa$Bd^^^HkFctd.#.oSg=a0%@P[N$;qdSYp:d`ppLG82TBt=^+uqf-IBU0L^QbNKYpNh3`_Omar$,Z&eM9>M2enGj3EfE %f$?A:!7?UD@khd\V#8g=+S''[8SO!>&crJ.I7_DI$Ls11[fS_od$e&AOb4646)XgL(e2RDO;/`f_M)D$.#L#1'g9s_`2mBJ)7YJH %09f'@)0<4(Z6U%n@=j+_AkCpd*1]\93I;aBnf1s6*'44q!+UT./>F)(<(LF!L^VA(ZP$.$oXQZ]PfbiK/':hkJuBd5#RbW:q.;@, %C.f>fEg+mh*RSs/Op$**P`g/QR?-7BK!:`:'?.gdKQ=i:?h^85[6q=,)J\(b_6'B %V?r=+J.hu*#a6Y:P)'dsi*I`U`OFc;M'R,&Z4b<9aOIrC#lHJ`f9r"g3AfCQ9Iea=Jh7AOQ]s9$T7i)pP6SkGJOCo59dS@?FN;fL %@BojkjbhQp_"fbXHr?A.-+;:G21[anldT:b1elr.5Roe* %!R[ibXV#'"+jHOC!:(jUTk3CD"r1\fYajst0Ths/Lu2eH!8W3Q]YWbd.A>[ZX#K&$,>j4/iqj?(`&)56a9>Is2`EU(!>\cAo_B+b %c7gBZihpT:e5[hQ`3/)7JJ-/,/lTY/JuM=A(*J9&kc&tJ%n;f*mH7-XCZ7tg#tBTNc6EoI[d$ %AA$Lk$s$(T:3KnX_)]#S?ou:=+U]gm(Eon:>f.%84PCa6B[=KhqfV$f\Pf[l69'o4)%a_%Vj(aFQE:[uX7(pq/*OQ5=Gb-H#BA0\ %7P%bcO&/ZKV,lVJ;PXUWU3g(+37C^oh(^T:IaCt;nH!F\1'4`N&rPf %.u``BAeFg[r/)mpOgG`ibhI_/V9EZp$pPsWr??GdU+W^2T_AU@&g%[tE%XU`*f1"o6l`2%&m'kW`8X@APg=.iLiri!.1:jFJ;o8! %Q:2ug2HT %N7%ho!l2KXb[AqtlQ:V"Go0[0'_C+4:n*8d_ec1_H@]90i_4++TLed^aD^HW)CGat]+VlPgo$9*OGJGV+rm%:'/2Ye9;Q<$!Y@VUh_FI8U#Op-`,bqAPXqfGX:,q^6B07^h.A]H&p5pfba4FR %70uH3<13rjPeWP`8,An4*!D`F[%:<;j:ngL^.66__KiD=d0!M`rW.L)J:1R\@j%idSfQCY&n$EPG;,dRjT2-ibba<>B+JJ$(TOW3 %ecJWB7[P?d-9r5SJ[RgqaNt#^dhk)?S0'krr('/bH":DtVZHjkbF0oW*uc0""Z-oCPQlNpeECjG_?0m]4d=?IffG(Zn&=ii:)7%% %6Y&ueLGS$>kh$8rEPb0Xd>QnF("btg<07/^i0T*#)bNfmTc[>5E[cLdX%[)kauY1i*5$7Xj!IN[kdJ7$"s_P^Q]7Isab4C<%LW!+ %.F!Z)JiPk1E/=C4/#&pB0S>b`.9fGj'1#;7UOg`9A[i@r&Vc;^EQEr$l4=9P$qZ?uqqZp]eW`qo&>C?AK7sIE*%VU&>$0n/1D1W/ %b_)V=B:(]I6]4YA&O0f60CdXJhml_5XV(dS$dpL_,2F2a"o+Q!h2n.SK,E.XD%:7s67"6NOcq*f)X^/DDkK]V\;>N=NGs)4%4k(Q %6fO4Qm/lns$/Eehhh=[=YS*4Y-<&PLS/4$;@!KLbQjQLie?Y+6Wc"r(<5n!QSZnJ"ZVN,P`4jp\JPe9`(u;$18J#tu/3 %Pk[-$q5!9VKKDe_>8'R>`f_0#;8SN5+IXHM*/#;?Ma5L=(Q40XuN8PA?a1]+9@[;,alLD9F@NpO#/n;PEZA[Gf5/1K#0-"`"C`W;i6a"0+m\j!XF;8,9Ufa %!X*dY=u0ejA>TZ`75:1u-u@>)K",X^UaTnX:ZH)D!%^GJpl("Y<5:BgVeG#X@g<5YY%j %d]&qZ+D#OZ]5/o(@bG9c#,YY!'$p[t&'&"TB#Vb0DIo2SB_6m$(&hnO@3V[UOXUQjVhCLGMNBR55pRTeo=t>TX',]j@^5DK,RgZf %&`?Y'Pc,?@OcZLB-5@`3]`o-C68poJ]HkB-Or-G!K6#<"O>0*EK`uKR,^P?0h@f5:TQ:'c#fgF;.O3^h@t%"#;O\mf*[pYOr+euE %T!/DRH8(&'D)G5Vbm"Y^Rd*^Y;TAM$@cQp5VmTS,,fEqT)e"P3,A=cs@\NiF!N.n(SpWf&W.uYs-:;IJ)"93n$P.2T8D?WYR>;D! %6KWR.6Z7MCM]3B86gSEVI0#`rKLh?e)Qtm6J#@s/E@&unT5s,Vk9u@qG5NDj&*E64&;mYeMkP.?4;q_.Nf%:2%@o %R2TOs"=7T!#g(Ag'%J*M)DX>h'sK3]ZbS^;BtIlLei@ir_VLl['ETX+[K-<#8L.kp2PGm\K*)t_aadOQ8cWr[U1YjkH/p^ii(J;s %;?j#"/*%%P*b/e3,1?UJI&2EKJFqek657DOQ_6pdP(Er?SAU2TpC%A9jHKpU_RNN-s'^7$9iW\6FV5-p$RD(U)[&H%1>rE;<*\!o %::-d11?#UdKXAq[V&=_pEokceJX\8-i]EZ9:fCgp:mNfQGU,MUdT027isguDAO8Zmj9c)L+f0(n8YieWW'c<\$P6bM,"uD>+@.?* %6j_i@Netk#>T(^4..s;N\6lI8&eWkrQgbZFKF`V?"=J&f*"Z/qplPb5>'b"%6#]M<3LV,M&qi^_Gr8DFp-bLFA5m-$Hi^k"f %BT:BRJXTH2gMg"VW3SiW9Vs#A-6n/rbS'7"FU5VdS'K"l37 %eFr^"dMkM:V?\Zl@:ND0190o&L4L]rIi8^-Z:jq9Aq]i5'0qnqqLAV1KEQiYM#;cr$e?UX!a+-4,TRQ^G"hlulrKikNQ+Aa+sd'R9)4K#C74\_a,.)fcA,40TCm"0%0r;YY[(V0E\GHPl_fK(ujT;HY'M$r\LS,#r3]6X=>M?8di;:@1P:WG_12d %;ODYsU7ek]5.!S#Z=7!DEE>T6KGTaO$(c*+5uodSOe3eSL,SQ?RFgG[K83.1L`VIgO@,N[HBdnGM"hVQo-31[mUDEr@Z.CP#0#e[ %''TOo5SFRA;*\"lA>*T#i.dDn0P%0uEu.P-&n$q9A1;6^5[6[d4RmQM4p+mmn]Mi7(mE?L`%*&F1h.L]<``$ZBH>$OUr73a.:\'G %!>9%.M%'hbF!U^,Zn:5\'?Ce@CCDMFl'i-9.tsi5-'Eioj!_<[d9cD.''P>H?+=!Q5)c1GiMERY/o=.HU!48_POKI5]MOPDQKSCg %.N+r6TFhKV?c'`6C@7..<2Vc=[*)lr_Yd%$#PfU3@R?psU.#32GpC$r3Uh"p-d(sF;dL_IV@3RnlOZEMKlRcg_hZ0l1im0p %W(k3>SADc\9jOhI41KBhm8*BL_tMLVNZt8e8!*s?%0\)B*>SoM>5QW5$o1%tZC-oA#s0S1'99\&ii76s`kj9k&J5,*=dKDk/V33h %2_(Id3_h5#;jOXN`=4=b^X[k;C83Xf#XF&\Lqns/@n]X`PL9e.,019m_$@u;@R\@R %.WpD3$5%PCRqVu"GD!on:`f2m&V5`EZ\d/t'bCEh!X()HjD0H/'P)fo[>CDhErX!7QH8S11L(mX-h?A$@De1\N.<#[%k^t[!ik\s %"X+d5BgD#QP9!_WgngZ/Js?hh,9pMIPXrju%O-cl/ejL5]jS(^/26HfJeU$Rior#M[.m6[V:>\M;1LAQQ:*h\%_tD]R1aZm\hSku %`<_N\=#FKm_a<9NL*0T,O\&da(K76inkArBT7A&KBd>_@L1%8EH;Tm01eeYs@,`0]!<]Xfbq4]8>rN=Gl*//M]2Z=[JRW"n$)a\3 %W3J#$M$6.hGr!2T$("GNlNb^,4>0;>W?Mlf'OVk>F]]@SJP-d><[*f;6p*N4Z&BX<+p(ddJj1[i1Qn;4X,^.%lCe8^,:OZ>pEu.N %VMX7\+X:lM3^i7H,MWbL0A0dP448sMI:s%(9p=SVFd^U\X8Ba9FB4O:V3-N"-#k!jP<-s_%8R$LWNnYS"*&i&Te]&@_sSA"r@3^o %!/LTBetakF(aF9\@91K:OdrIGq8_.4/5Ttk&/-&AfYm?O5_#@8 %n:`O8?eN97ONNhGHCdPYU79&_+rb*H"'Jc!/AU@<=9T0oQI*uleA+nEa.b!2kNH&+Z5m%6/20ZrImS]rT[@9X:(Oo5V!c(?QM@'iB#=^g/&;su$M1nceAd\eqd,]m.;C6%M;9,q:*6Y#aoqdp.3BT]IXY06EWI#0igqt/LB.N8e;"Zl/hAc@rkSkSB7B3,\iGb %N`$MS]11Ln=e0'N#XAU02M+qP7,3m]l7kMXgB'VL/3$#7BoF;X36+ani)86%0nQ21!H>D_THm45^q]*3Wm-gOS.NF@k(Dn!ZNZ>( %7sYl9&T("%Q\)Tc>na9tPj&n'CeAeD-nK8C_Ah4.KgppD$`-BJSV3b!/I<]hcsN+@pSDl87OToUW@4NuQrr44iVogl_@.l,/)\%I#O0CNm`uoGcn!^K,^ae7[!Ug?j2?:21 %KT$GL)&!&3$qX`ToJ-JfUJ#9)4GY]Q"8+M[h.J?j+;UgsJ^"(nk;`4AH,Mg$XgAA^%!(#+n;L^Lu2+)5[KcO %H%D:qg+"6:j;d+4KqTsBW54RaXaG9c=M[,kl.7l"r3Ci`K`81baRW).O;N)BFL^;-q>cYJKRU%7)Aq> %2-:#B"T\,M,UEl:W+ZZnardYX#WYYa%sMFY,FjE('a@W@Tcb\@)q2TYHdX%3LcRN$SM6'QOT_irBofgD2#=_:O#-eohh0;lm$pD^ %1Wd0CWJ)#E9W;]W1rH7VS,r#a\tkKBLWQgN@cSg1%0Fc+8Xe7^H;asZ0]`KM=W"fkg]6&I'P'g(5u84&a9LTkC$1fkqZP:S[lt// %FX(H4!_$V!aj:_&"UH/$m?la$5RR]/&2+G3`"(7^Us.GbltWc*/*R)fSs)tR@2+eXQo$DS1DKllTjJ@U#dG#"BM>ikNik=(\O?N4 %$VKto1=9l,2$P%+/:8/X8LVe %c'0W+Y&^aWJp&K@`2bmA9o*bj_MKI!(bg[Fq#ugN*/b*=/c-&on8Kj+FTJbdBa?[(r;X.\&ndb*ZbX@ET5?"R*(GE# %]1a>^N"(I#$2@ReD$[:UO8o9-`,>elBFkKL[ag%2TRS\ZL'RoM@9aCTXJ&KSjq9N[1>t`:jT60cAsKZ\UD5s_7QXa4RFKu_Bn8`9 %0OB`C*^p*$qaao1ha4Rpgk[A_.1+Kp+^;j.KS((X_4bK%2MMkZ#8-V7?us_RY93^ZDeG/>U!J_3iQM@FLeS'UCJ5YL/@:P]U9-g;Jm['gi%5eAsj82 %.7XV"5=)q$Fh;SOGB%&jccr*#0.lg8%0cWZN2S4.Io %iej#>8?kR+aJg#0U*INpO>Fd%Ec(6kn!k[jM'^9"XAYjGEuck;`0`u]Cj^+,Gq4HE.)J?M,bNLQ(C^_,70;o/-mL%gfUnpAQq(F6Qi.qT+S5jY`GdQ:@3!EUI8T^&I]"gP+[;FU,[g-UfMn__J![-)T_D:$Eg+l9NBs_A/IA%6kJ.<46`M*;pJ!Q-D^(k@?AS$ %JgXbdP_h\Z\Bl@U`OEnJ*6rj"&3>qnOHh1&,r$9;8jBioRbn:A$lJL70NS#U+Voo&+2D#M!#?hUH787qS/r,Cd4!gcC`XrDm"62/ %Fu"UuiF%S?5*#"u3'@S,5XrCW&eIYX/7T9$!YFBoX;IUCKQ3L"JtY %"ehF0lkX6NQql:\+M_[+RU?guRSbh0#q-qKBW=]m62Ba.WmpQ;fA %g8?U76#E#%"'&6#o.3Ct-[H;cQqo0j&9#m1N@7U0e.i*gUhsL2+9c5/0t@i6EMZ581B&:"=/SkFOG/J;E"MN;dK"Z-K],i3`t4\+ %hu]\XAr;>J;DJrLZrC.(dsqH8.+0'G)A'b:m4soQX$H>.qk,U:_Z\tUUghF&#(Vu$A0RCLSI*YJY"V3#\b4Y([G'$)5Pg^,5T66bnqUQHN-b./F!<0#Eung6'e`eetp %kI;em"";tt:.^0K_/'<[)\rh5?'Z!7-tcT]P %=phhBp5>/?M9hu[9&^H-ZCn3kKL(r%LtbV\8dR_VMipWQ-kK!n;0'+%VF:=_M?oXQ,n.+@-;$`oP''oMOi1J_9Lo;],oE?&#e%Fh %]Jik(C_1LGFB:>]cpMg^_VpF'Mn&dh!2e?D[(0*rL0k#aW)9^>L]KCg %'nK84kq&-A@S_Ug#i(ORH\@O;80]Fe:4c!)JQhZb_mV%uUjpg;%8(aKk.ib)k]%tPZ4?LA^DP_K;q+pcU&JH0[MT"mJrj(UtgJr>8W %TbcB/@n\F/U!psp8]V)>32'/&i_TbS!R`0#O9YYq8k=]H9,bT6EW6lbYXSEHm,qDb:eE//QG'g*V7 %)5&Zcid%BtrriXH)DMmT4oGAW]22tZKG+Mj2(4?L:Gm/ZIr)VeH,/gkj`1;/I3F]1+Coe`dD>1jB9_pM$YAbK8J,GMC-9@ %$#M3.oqAlZ&hBmsk"9eR[U]N7+g2BP7$8*)*rsUP*R%9A8R=aKWW:%OYm:i&!Atu9&[O0$nM)g9+tmC36/M^E1I>nHT$ID1,?_gH %K^alc?r\(4;A4hAG[fXAKE4G\K+SOn0IW>4&?V?hKW=X("K"&>Zu&Kd&M^Jn8DfRnQ$HtO=+inLM@c;>B6ZkB8`lcoLQfMTR<8_= %);KSkBd?rZhSbC"E;J?qCu/e*I3:N@::97\jQGImg;Q@jH>9`%"85TI-Hs:&#F:6']8Y9Xk(DiSHjK,f%N` %&->>5d.7U:#m.VVYTRh>1!!$IM3#LVarFR&(/oUrX9,Rt2)3=M>%*ISWgpR\!E=r@'%AUb07sY+V]m9"JoOGR<)H8LA5o/C#q/Q5Stfc2U`+iErcK4-kQuM;'*hMj.gfpK6ZW+VlS4T5qDd+ %N,DJ=Z\So;K!o,h??ek3kWaN+Mc+k)t'Wig&`3Ac.sXs(_bC7%c8?!,\e3NMAFS75V1,c,g@] %R/D`<3H!9`IRhFccTG9dm_]RJ^K3uj@!8B8%iphK_c*C_W:8TJ45b[0h,T6m++cY %"/6pUJ:Ys[i3D:=60j>B_o3]OY8(X!)Tf'Igq@[@PJe?ZFiZ%afYGlIE%"$r/L&^Q7np3m0sdV4Y\#pD@(?Q8F?rZC%]2(!8*2"N %\_AFIJnNV^"C!&VYnQ,hC1Jf(ed3iEpbk_68nNoJB5s-BXuuAbMM&T@C'@^pL`'iqWDugr!:=HJ8'Z4(1l2@@,E]^94@:)3q)e(4 %#u;08GM%UYM2uh:Ji4l3GpoZQ8b'th]MR#32ul9:`Cf[*6"6u*k$FG()58'Q0f6p>A(Z4Pcut3m%Bg,[__F>R>DS6F3$BV_j %l\T5SelX5cj`2,nWmXXH9foY?H+.lbP&Ml^gG=P-YZWZm#rtoB7n>JI1\R*^,hQXY8QHrF_/PCL8;O!H!%*S]JI2f9K8,1qA-O>f %@q0&>)!-J3"XVNd=9>'#`(C5#!tH1Ka%3CQ/lF`4h&q!0C1pPKd@,PelZ"ckh=7'ranD[^^kelq"r.N'BV>3SM-& %lXgo4/0Xe;)2s_lFH./jR=dnJ,9`@DUG1cZjK_PoJYCG?,FSN&KM'<)6-hJ!/ja>Ck:_*OW";0#Uctc3<*H1(*s[DP6=1^R7M2=.-lq$kEpT' %,-hld!LU7DF3.VlnJE-,1k8%M_h"#ea%1j6S0i.2_0#LD(@`F7-A*"c"B[,f;&u?Hj.$=[Kd)"U,]M@ul9cfs@dn*b.DYK[Mh:Ja %8J;_nmAA:dODpLqKrkq1X(84_.]B&V8m#Xh$KNb]+usKgQY54qaY^")g`hL2$G,!MS.T/@#'r'aO/W\+OicMZH9hF.fTs/_8.::d %5VafS36Zk:3^g&YHUP"i$GY5ij!qTieH77%]\O=e>G')03D<+\Fp+,UmLiN1u.+;n"kLV#=-=RCXT=\dZ#p"%0gmPNX_ %H1PtgJ5e1Z#^cc`eM8S*Aju:(7gKdg!p.*M&Lraj91:D-'q<8^9)hoZ^Q:bY#l_e^V?dMRm1ah;Wg#UiP"3VbiHi^m3ADdT^j=po %_-&3)\Y4:A?72I-70IV_fiJ'pN#Mj$(K+C$VCu2fYge=mIV/qS7L9a%^c=Yq4Ma"+9>[BSnAQrDpKE,0#+.pi!stn["$?iCFput( %k1PQ?=MiH:ofp;?(j7K:U>1S-dOJZV`']3A`2Tah30Bd,iYkL6%F[:#A!Gf:Cu#D]Quf)n'%Cf!R1LKsjVP8/&R2 %U2\h3!@%C;,F+<;![ro!O?+m?+suJJKMR_$-35Z]TZ/F$#6bP,AXEhKj[=73RHtk3l9buA7+=km82qRi+O8.#O;94pB!UV,ED?\C %Lle3!OjQQ?&M9A0("J#TO%+OimLYSuI$cq9O)>+>jAL!/'02%d,O!Edp)AfTW>^'cEZX;/6ZR=,O.1n,,IJif]&,5YYL/#*ZpVH) %1fjeqR[BRH&+Cbf;@54JVH*1#(u[TR+i^i` %#YJU3Ybd0XSeI9R)8c,WFdY9.IUo<*_K]<8#XQ$Bp$b8_(@HApEet?QJft_]1@\R&32K6!,\YeoUl#RqX77@MD,[_>&Zc^?$s.ll %^dne$%?>NsiaHb,1-Yh/nKII`!IuHp0kR6OMDL.2[i&tu5f@V1Wd#l->Qka*3\t2j",T8]X1ON9FG-2S6CEl.3[G&kKbtkLafJ;V %-KH"t'F9qe*mJ@LKNgQ(brTIt)7]s>@!,[C/cpnff(^-rOZE5pi9M%[;\9`\b"dT>(jKnR66rP)-(:/;'DcN<'bI0LUN$M@Tapl* %#(27`-%-*X.:U:2H7WRf[LC+b^m(K'"MGSnf>[k-KWrQ*&tZ4nj*#*0+>]l0&dNt3!r#)"Co.^TOdV'R;u;3O6VE2m+G=SM;g'P- %/mb%T9H74E+a5W/if$2pW6fmf@_`4,0pK?gAL(*Zb)si3$T\H\LmK-'jtC-e1h2AZ-1rp/+4C*r=\<90*Za62upFe"$an8bH4 %Ge&J@j$b\T5SBd'g6%^L-7Hg#"`j@7H@0Vb)+^$/[NZX2W>,VP[@.VG0rFi$=9j:omoR)j(*i?P39C+>6mV`)aK2D34;QpK)i&IG0#L)i5jKa8'D %"$*`I^aM_lmcYlK4s'%M0n_!U^O%bH.M8SM5*0F47sc6kgB+'TtRW6o<*4,m=Yg%*W7Xb):9cAL-Z#e7Qo;\D'S!@jIku)9#0-$# %<5(be %YCD;aMk8N*K4_Il1'3;a$p1U!lIBVISE73HYp<-tO %(XL1rT\""'.P&2=pHQa8G!](7-=FGnC,MY"aT.8r;hd)[bt`(XaB;jI#0"@W:#\mi>aE.pk=jf%je)DAaNI3e=1*?sXMXc$eNJBd %?$kDle;p'qQ,?pV^X_u:m)&)T)WK&MTD&3p=0`Dt>)+(K[lgjGj*0`jhQu;ijZj1$FQ)bZDoT7a,'oe@f %XX*pnTeEQTm#/fh^]kmXM,5@s@e0ehe^ZZfm(A]a9_9,cRt8"jou#:9NA>i$Vm=nj$qO'33;[+jO:3ojm]A>!!W?&*bOT]a^^h,$ %PZMSRVMLNMeq*nS0\.dDIaiN0k''V2043_Rd2/a/BDgcrCR;IE*qQk_Isfqur#JphkP8?Da;4oD8l,]?./:[(EZnm1TSfrbWW:$5 %;W2SRJN\]2L=0cnnOciP;HEej6n;-ep\u>UCOYgWQ'Gi#-I:g,1,9ZljB2CBjng8fb2G+5$#5]l(kaOuT.+Tb:4U!VUq4WgkV5Fp %7R2o74OMbK#YkIn1nGLC7Z6jU/V0-q9WE]PYsTeAQ_+q8A=XLL8a]Y"H5E"Hu3$0B=q0K(p( %i_it.aQ5o]YY9-3d19bV%phdG+HPZ3sZh"`rC %nJ%U*PHo#WVMS>Lko0Gk-H#i'9#[0Y:heJG+@[XRN(7VZ]$G#`>S%U13!i;QBt_Rq6D\MBIjX,%Q5tjCD%DYU;/2o8,4=Tm/YP6\L=MY!gXXP`$fJ-rq$8dpcIS;7*OilZUG!-D$]]<[!K6#0;Hs,-jA/m%Auop3UXf^Ur+!eEZFE %b=a8(+'OZHC@@tuTsEb`qJs&S/>bl@&@49''!m]D71Ci.FC %;%V&IdtEIU(0eMr`]!R8]sdI)Ug>a*.P"lX,IsNl&4)!Rj=+J!8jKopAoD)NT8[(L6P8P*Q9P2V^^%m=cnI7uL4b)NUla<:f@Fe4 %6#XCh^1=<(V%RW2=h(b@1=i@361L8GAsR#Bih>nV9Ii,%L-)T^(RO'7+(duS9JaO'6_Ss:#(%\OMW<]?U:HHZ2[(3Pc6fZE%8$hb %PYmceW<>se,<>.LZA>CRnoHYT.%j"d,"6^BT$->'.m7L/(:P^MJrbW6 %$NLeKNOr)M.L]:+Nib"NqbosI%KE#6R&77>[OX"MYgaDW*:fCg_EWcB1V>PVuZ.[d`+8qj.+S8^fI"S5f*5*7]mA&Iu_F^F9=F %Pr(9?7lSA=NpdjJfo>c/!76tOa[i*f9Pco@`#sOS8$=m$6?Kp5gYp=c?':"E+Q'QAC6DQl %bgPB?rfcKt3_BQZSNdFa5dZ^j`2\jY^EFLaq=9[]pqjSQoJ[&tj5CrEG_NTNU-qp^a+DK$i"ek$,#)2DEQli1&1VE8%`n_=46i[-XKa_]=M)>qq&PSUPiD"m!'+\Mcf`!3uLfko>("MHi;oD3t.,-[Y@%:hZP9M?3%Yn&CCqWY]jVM:[+s> %r0I!2-iq=XkB2%J'e@%$_ch]Y`Y;'Ub$H6^P&QB@2<;7'"(Q,Un\<4VX(HK!W^RlPXOM!cd<`I6&V]PGo%;+B/WU'F7_CI$lnf)3 %n]q[LZO:anRo;Q@:D@t5s5Tb'N]fB$S*9u1nJYB0XgRFabsA]1ZEpaSHl.F`r6Hma_fiBY[fDbYrp;$0)4bBS?i5>OE\3d;Ld:m4 %Vgm1t1k3Y<,CiJ5qIi"iUZ_$E@N;f'(Tnhr?^B7BW7)j<4,rCj>('6)IC-H[[!k,o541cGuj!TjJ(PZ];!GWt@[G:Xo/+k>pDi,;7/F7c=r0.J+JjMIYu/63Z% %KVJO6!!@UZ209;T>R6Cr8j5bO67g_QP/Di!J;I>E*R)l08J=O9!%l=KS&=-LERr%bOrec@7$YS4Te38M1K@7(ORs@;V0PNIJ:@a,QthppaPFp4 %9;lGFfr;7o!1$UF)T`V%3S4=+ODu_s4?Z(E7jR[;?5mLe8J8kX98Jta&./tNC>=^I^6om&Pke$,C?g3cYafeedL;6YRUK/VHX8LRF@=POCf6eq@l@:P3[foUWON"bK;S(S9o!W5: %'-B=XJi(XJR1Y8U,>g"rhW2hs.'\AkQE'a7_GUZtAi1[nHl/mZ>_&SAU$8)N(`F%IgoL7((A'q,]9?KJTgBQq>T'LdlQ_4gb/NDZ %[O*8W`Mh4np?h8k3@q+[G-=P(i%j;@:7*%dt13&+b?qLR/Am_@ai>CMdMaDpm#=P=Yi=LM-ktfT?j]#)=3:_%Hcp9@.q/;Ff/j %5klm.`X!;JT^G?m`2"MfEmWc`.(M1]k-"r!P49OfLS=C(N,#G20S/*MA4ON]USPB: %4W4T[HorYZ,PndSB:8FWbXn3J"GMc)nKPrD9dTN@2?qbQ"6'K"S,kTanoR&JPd!HngW2Ep8sV(D,E[Z#_ke/$#e>qrD:4T1?QgoM %Ft-XQ,oMNAm?C1k_ofnGeE/Xl3JI+5?s`tu(YPhL87R*^:d^>::)A>A^HI&aZHPi,[#UX%nj'be7 %PXOU7hP7si-PSu1L[qecGl]lN9^*G8\Ot#jfS.c2YpW(%0tpb*PNs"ig5X^;(dT]IX:-d\\rj&\#[E@PX94,O!-X"jM6'^C(Fs#K %7f$76Mdf.d.DfA%e"R1OBanNpnq*fJAC[$`X%)8an^WEqCQ\dZ[d6pf[GleuBKL;d5:EPKl:PTTjBVcK9dY\Q7/$g+-E/[Tc5Qt8 %0ffeA5E7Kr1mGYjKfjEa+aNrJASiT9)pP:JMk2qU?>ZhV7WToYTlc1!d%Ms)JA6Pd[8j5\eg>6[=FO]HC*$ %,qf6Ze1_,(?4o'C5ZAX#:+/3d^QSgU)"Itk5:1]NX>=E2G=eK-,t`=knN2S!#an2`"Y0<36PIZf-(&FQ;R-5D?4Lsq.@8ZL!^mo*UdqJPj-orYg;jCMlQNmr37LA3WkTTP-.bo/? %3+i@:_C`Ym/>J])Toc[m@?Fb:P?teM)#MbM3&0C51P$bAo)]!@UXDNfl:f?]i*6SOe;dLJ19;M3>qA=es]q#GT@? %A!.6f`sV's;]H^pBS+Y6!B7uRj"?Xb^g^>@KG^^uhJeH`4EY7]X"q\-=MT1#iD0Xkj?K23h@-G(`/YYa_/bSrDZ-!P#8Yj0h9+D& %bK>rJH>Jks`g>ND-X9Hs.*,';d)3ONGWZ6U!P6[p:)X!H:H-J1<.o^n\A %4@V'ALu/80aEVq"3sQWL,i)6C)EKgUW.%DuC;SECB6%r#hj2CM9Dq8O!g?@@Mp<`gFj]UofaM.aXQP[U#!CL6+JD=\S3*21JhaPZ %+Y@SKY$;`F&i:=L9K?[ZOch,U6_l,gKN`G!M81-5/s$aUr"'8Ml,Z5k12W9`W9m3tfFM_hRB%#bKg6WD7YB461aEeD,F%u`@RN!] %IOIZK;6KoPn19ip<1GG+4+o-#el9k3_PB-G)L52/g6W.[j=,O&MDjVh(.GTG-D`cM3e:9L(:a9G)&B'cTMmINGg"%jX%b3;]iJH8 %U1b6rIj%6AdGR\nL`n6+Z'%AgBJb&nVoF;C`1VT"_/t;"19Am%&6eTF-KO(iM^Ct(_<*=sa[S5tO?uap!c8,J=\\Gq-Q04%0tFJ) %h82^M3M#ZH+kGHUod5']#k'QX+OloiTSpG;S(_BX0l0G,6^K=<7jo"2U/gRoH%O0/@203;.$Gg5Sf5BPnNR](@S+CpL_)7&OMRAZ %Bh"i'!D88qrPm"'&)nL46ZF0R\A0Bo69/Qc@7[3A"9`8h,kj,H[btmp`9p*1_F/V#[&R",)ThGP`&h8]5CQ19"'1$B$&L!P"ONfd@<"m][@A_7NB/:9ra=i-AC3"-CQ5A6h,s9G!kg)"0e"jWJ=t#OFin0q-)(KP9kYRX% %_H/)Ip;C@/T&^:b6L=ff<]XVdHN^.[+rC%_oAa)O$nJtJG_efLR';`o#c)=]IMn#..hpnZYZ-@a'\(8B(`4Wh %DO^A'qO)#;,KA;1l0%,0N/uPS&KMtbM)cHG2rQPc@`:rBAm_5VM"s%S"b;L49W$%_-pF4n8M\(!,O6N#'Y>VL#>ad?aIOB8phB>S %4#SCr=*DbTj,V4E->>T,]E\[*e6rb<'iaDTZq2HB4ehZOmf>BY73$0kmZOCM;+;ZiQnkiYF$I2r-AGrLUaF*%EkF&GI6]_Ze^J9$g@'rMKH[G=Qm7Z^n(e'XMf_'b9 %*ku\dVa*:d-9God3[+W^"GNqq$AR5qD+LUgckDr;+eo2rWiL!YTYR)BR[Kj4q74]6LB5VCI*%:4%PD1K@n`,iA5E?l?QcmJM3Ld^ %B\P:'6'J2Y/WbeR2HI3,,)Zk67W!R0[t:m>dI&-?uHQaWZBP.^[<]WMEps6;l/q1YK\#)j1nGU1b3/ %P3S(c7aXjXa#\?fj-`_q*FeHjg>qIf*]X1V2[8Cg%rqMk(66BR.HCr6?cNNVla1h`p`\"F^="T+LZKD^NMaHbMY,$GcT- %T2G^N?(\2$E8u>O)W77a1Q'!0NF\Fu!BXi/_Te9S>YC1-BM;2eiM'hnI&.:XL(G&iQmOpa%km3A:GT %>^,ZP-aX,ENU%*R5(/jtU)#J#UJ0&d=SV-l"aVkr>tEqPl5,8.S^9&epa:.lhs!]aK8#r!B1s2Fc-*b\A<)DqEW1='545nu\2M4Y %iEUeaC[PGeKSseS-_XX]N`L1gK.padpE-#,5fo:0Y=-eNAG1Y@?J':oKJ#5D^=R&Yj;mD2TWn"LK&5n+P]0CC!ci*DOq"@ah;G:b%q%%O2*9/]Or8i5$ %`;fS<]jI7g5u'upnaB9>Sbcd$=*`BO8,W(KJ#f(W7DDq2/'!9rb-U!krnio>Y?.b'($5;6RJ!IWjXW7Cote33,M"6=^h@#f@`ef@ %Zj.rD8k2Q1q1N+-cT32k(jU8k6bV+8%QiojnJ,!&DUjf;^#jd_Du]7Gk*`E<$;T&R*=Z[=YLl`sSMM@Q!PF6VSITuLF!B9S43CrZML %Gs>Jk0g9@I_()fu).`=V^?`cCg#)+f3lmYu"/bI0hlcksiF6&nj?1pia&fI_Mj=3)(obI]LW`>`6h]b/3HV1+W-nH3g+!b2DcY76 %F1I8K4[[8Y'aEhXjtE4be';1T?o`1%*RH(">3a+#H+``E<]ZbtRcY`R_DYs;e:AU;(.LfS6u^P9pi@Gp^OK#E@5PBEPD/A^e@uDA %'>oC<:^-q=FD)9q"(+q%*<\!SObE#K`oE7a7OEWTC\ZH,19"':>X`DTXc&:>YI`kBSGi@^&?4B0\F7D2jf))R=W<(i#r^gmEO[kc#.Z;X=]ts>aHtlHsg2R/-[8Yq(9cdb\<*lN4 %Nr9[5<;T1S3Z6Nr?gat3[0D"OaOdnnp#Q$:$d3jQT@3/cA[BeW1A/B]@ht#B@mLQ+I,NW,bN8g^\C*6>3L@[a]I9KCC")u!V(K9+ %.K[74q!bW>0nQ[#1gk(bK)^2YOLg7l\`FA,,Q>$g2;d\qb$=%3l%TI-dooIl#5NM"K4#hQ@ %oj4]GPD^\4,OT+dMRF0DB1eq3_`(B*S\?k+EpbN+X/K;Z0J)I7!g"\$o0uSpn>3]WsNKc5cB0!:jo< %5^L(pnF*=33^Q+i&0;T=mN2!*(L6[?oDDP5o.tF'S?gERCM[HDI@Z/"A,Qd!egDp<0DekdoJ6qjZh&!_s,0u(DRMqcGDS`(f=")1MiGpA8;I4u)*TR9hrRQ$hkUR+L5DL+/Ei5l#7Ai>^RniWPt4D)Y1bi\HK!$:QDoA7f0*gaQ. %d][MEb\S=F1H`R!HmY%I3&>j(9HKfN30'_H#4M>RM8oQ&MhaldN!ZQ@7EFma:!f_-9KBG(bUah8r8W0:nX(?_ %1Q0<:=(f93+9'LFES5-GIW]F:B(Hk-ic'YDpe4/P1/'N'MPW6mf&hj %L@^d84hc[BHtN&=*U>M^a(O";c&B_R[RACqHC1mQM9KcWUGG$MH$gZs7m&SQbY0(M:IK@YE^F4TUm\%agfZ$)8E7$Y%VCHVY>IXc %G8NMAAo[sq.7c=f.nm'PnMA)'bjb-;SE_oJa6Zp#)*U5G[f*CKoZdjes5YKcZEJ/&bR>R<1]1;s^Aa[hO(;kuQruU:,M457_\c"= %[:*I;:Q^cPVN7oX7fIV!5!kH@X]o<`s.i(J1P![X+TIhHI:`JI*UY]caCf_n-=<6DIqJ_jCi%IWi8a.3J(PY.j7AX&m*,A^1Ojd) %#oS>6(+(1Nim;9qAK3rR8(l,QnaDX"rtT.,/2U4m#cbusGVctPbjP!9T'A,Da6[o?fff<9SL=3t]_XG%a!EANo@5FTRGhWig+rh[ %HksmqCpT;dj&PF/\6W3#3-u$9&t+iu]J[urY9>TVV)Ql-jQ!/`Z#=6FO!'UoD4Ah:\Y_HP@'4#mB[kc %JEk41:RkKp,/3p&\+i2N[f*jSkj.K]-X8.h$Vq?m41]&ppXaY3>78ge:57+n7%54QZ_RC2O7"Y`e\UV9SfQWoj3\lYE>!8./-I*5 %O(LoVm-+GeU\bEHCn2U&Z_RD54M%l;"W?,W2G-=](=L]E@Ng_*4?LVs#Pf_fjBjkUea+EN*TUSj6(Y^"&s:!.6(ULtq-RB4Z\/25 %H]ZumAdA>Dd&'AGR'?/>_HZWX?qLArJ2#9A$hWIPa+!s.>P=3ib!1)]rS*@3?K6ZVd">Z2g%hq7W\7!JZX`.-o9O&YOkuQb=(-D=U8Y+04/8:bF_qqZ[eAqq'_j=]_mgmpH\&JI[ElV %RN^[?_8M0b_"C)mP,1th_?C_[W?$Q,ql*-8aK*2X^lX?;(>O/`0]un6=qd@e<2#gD[moSg!q,0'F0E49k %#_H69/@=P32+\RB98M&X_LI$YRk^Pq<;>(HQZM3n&49G@+2ip6$b/OBp]Y3CL8FKE/sLk1d[?P'4lCWX@'B'49p@5?REPMcECjcW %JeaK1d7i-@q:5Q2^F-Vdq5]eZqQ^(*HV@AVDQV`AGZcr%$(:6KAgW`9l]B9fibC!I\+6QmkY[eM2.9e[J"$DWs51:YO+.&snc*@+ %]?rM6cKph@40@N:[jce+3rIgMmpZ05YMsbQq"t[&n"(W=C]!cj*M6,;2%ZG=FL %>V#DHYMSLcFF-NEFiK\QGd6;2kfb0!np,ZAgX)W;eHCTNZ/;LhS(kR$S%XQk-a$)]8,fkmDtp2h(b0mg6%.,8?#(MTRa%gMI!GK, %+.i#BQi=Rr9,id1o].FQ\R%J-[I>aT,<\,L>Fjs5Q@,u_nPT%)FDil,c?a-E3og$;!t59>3tj*Kuk)em3$D7?d:?;R@5/nVkU:JP14ZWh'clc`&5k8l7Z51K>=s-\^ns58n3&$r=XJ,Xm"\D1"u^$]kdhZRRt %CT&ZS:'Du']^'%9RE[Ck^%R;=C(%10?$24oNU*JQUA8.#Z/96hb(]NbrnInD?E%?XT'u3o %ps6?l0E#6,j8&\ga2GXXc]+::4`?S]Ep_,,et?.q`#A=olgFp-'YBbdX?GBb;L-sN0.N=3GFIp-hdlMG)>fV*E:^gIV8(OZW98Xa %,C`g4T/;JPQiHQ^IctpT])6E],_VeP\rB_XqN@b#Tp+m!c%=(Os3J?cX9J$(W>PDV)63M,-[1?RJ8ECuC8H=2BW\)o+KHcdK!1L+ %7*3@PIF76`(BOZtd5ItXjqj$'.tsf#]c./ZA`S1G8\%SO]oF&2jH?L-88i>JegD22):P<468Fuj!JMJfrIP1%Y^_.Wk:CWoUG#&EjYPi %-J#cKa'LTcm[X0kdFri=Q`p9..Vd#:54Z)Yk?[=PmjlFg&'3^Pbn&hV1_`);/78(Us79a@YJ%5lY`NJrs5M.Hfk<8+CSg9+[&f9;Y\2DnPYa %`akU&(bf5$.,CH34&#+fnN4t[R5b\Sjth2',L9F!))rFTLVdt4.\?Or=QF,o-'t8`]sM"0l3j*(FNa')kAA)D3YkIK+gU]lk=Y,? %)K#WPe#P]np:>+Rk5Rdf)]s'a>h`rC#9UU1jboR_rZL!6_L:A:[6M-$l^\Oc[,G6Cg)p-[]ZpI.g93X=UK9\NIt-^jN]djQqbUG[ %p$bW.i*0K)_#WdHc,dE^-u&a,V7Um`D,Bf^#+K93!cIRF-Va9n,4>+C`aO1>UVk6J";Y=BDQgT(25=QT*R@Ib %a1e6[[j3NcSBEa7;! %G7IE]Sl^3o4jI^0g:O9-rRT(fBmAK1L-eR\)hKC@9tsc*8V7@,I!OuO8rX24cZ+A_Ir(Ajeb^H/3ncgd%`W86gT>p=Xp*Nugfi&b %b"Xs'1%icZ/tp[XPnPf1ji\cbgtS`r56-KoD,9uJrd3/_pchi.ms;+LP9=5Z[>4)8pF)9OmJ&QmHr]&KF %\TYC0hu17FlS&'&OO&BdlL4CT[BmMq9"e!)(pkUfO^J.8dHLoXke)I\j.b5AaN3F"054kofm`=rGlF0?oZ]$!^].lKTARD(m7WoI %s)B=.R3Q^FrjV1l_S!t,5Bg0.8K7X%mhajGW;8HVBQUFtdNG.:9tFm2u8h$bhW# %k&&I`[i5;=ZT&@0P/J(jnu3:MTum8F:L4.A^H&JNIpAd&J,J,NM-[cUfJ#=h2udUZPE+SV*biU.H%rVH+Z*nT?EZOL@4/ZX\+5u; %F2)a$n[&enFU)4ofPDT;T(Q9BXj0AH2YkQ5E;/tNHdt:D24CSM]D_,`^V?NBmNro2#B^?%ptsefrK$?UOrMUtZFWYnVqFd6f@$^3 %qdFoWent3U21(D8qY]Zd&*@iK5(2)R."=f'Rfc<$jm %iK/3Z_">\Z9K/K-/>ciejj@43dddOGD@JC#e!YJaSsf0AZ`;Y7(Y(ON3\p/8S%R7r*PI_aB4$YjA&e!M"1gSts)hnL-P+VW4T<_' %6XVD0cX0t"%&EIYK.pI&R4c]bj]tt0/#d^N_34)U3a2+(q87@#iYt2,NS32*LJl-d5>L04o.M""7Wu=IYahYFYW< %4Jqe,=4Ka23Sm!kIr9H_go093$bopt3Q2ZNka1TU+86OS8+jd^6JGj>(TKIYWY`UBnEcUWTn)I7F6\Y(GX_cRW;E2>REWsWp0k&V %`/+EHh=DlFD]O!nQZRIE78E3@MN"IX;,OTFctYMcr\Efiqg5H];>p:VW`#`R[OJ*(DR=`uNG]!*>^1ksB@e[EkrjUHS6ED2^X2@V %A(T'&]WZS<:SAcV4*3-8fA_34.2bj-e[Mbg5@4,(_0WkghR;I^UQ5dhL@eBu`HDb6OR4ioc&4^EVec?8\$fjVW!,sroc"giE(RT' %[HY_\K=!ZEh/fUh9#0/%W`$F`X7uI'm5bDVqq*!-o`ZfU&%;)qQu@24$6"0 %Gg^MVM3*nT)8#[:1K`:J+868VS[16OEIS!EQp3n5B.o2BJj1t5^?.8%AZ'OYk'rF.HK,5C-%]hg%khsFq0I@-%>EnX__eGB)T:lY %m-XQDUH@=+RjD+Y7J?]uVgIH;+kK4&7t7%O?4JK/M3^/M_#6DB8'Dk:_Um1ns4f-6FHE#4fp7Umf=^>.:S@[/hB/#jSl[@fkF?Mj %q4XI%`[*cgUn)Zt2b3T?j?TFP&LJ;TI;r>KZu,*1#?gB*l_J`LrfuO0k]Kf2\/qimJE?]7kLM`TqN=IkmD^5\/5Xo3FS]VZWNS*k %[EFZ.kpK=m%q7Po%Ss.sDOFg[U/#L0*+1!i1:9mWA2!CO2#Z?I%orU-Nj_+!MO[hGdla]Bm4,"TV&`u'3MT@(i4uJX9qFQ=3,Ut1 %pRAjZ).[Kad1b2-'<:u83,ZX$H??T"B*b!@6MJ!0L5:.)#6J\m4.R?)2:SiXC7TPUq_NZ1 %9!>p7GdU@ne(jQ[G(&9Zc_%ARHLpM!:Y.,3LZbV/\/Iun_)-;Pf7=Rfb&*V@"b$pSPa/mjA]4B=8^OjOqoMfY5]Bo/XbdFsW%hn] %$ViQA9RV[s)10IcgAge:V2FBHm4XO<1Ub4u'5P)'Y1a.F2Qbr6@.GC %HfXjVb#B>RX8;;0VdA@r*OhLgUCB=u3i9<\ebRkc%t%k^`n0jXcGp8'^84l#7K4(ZIs1M@br]k3I_Sj3Hg>ZnoiZE[\bG%G_sP@e %2ifo3\TR<:>-#Bas3A?-\8JM*?@Mk2hUD9!mEM9;J%FDsBt0/qn7aq%iqQ+Wo[eOt41l;U\%MA)_N!Y=[uU@/r?pR`h#-`kju9ud %dc81/iPQJ$bBMt.X'4iW]uJdC_Y8g!TA&)Xn_\D')tUPpNt2G1^V4'7J#qL13U1MUrGW61gq7:'S8>:Ghn<1k[Jg&n\bWXci:5[R %Q[S&&"1S6gh+oP*[>""s5?b46qu-)VNuRPSDtb'.DQ_fa5Mi1@+#`kAe%LTirS+I.@boA6H$]3goi?.Am@GCk%sBkoQYVZM>^qkA^_]!qP+\uk8Ggtposbkindf,![rY&8W.o>_od@e#5Gq%d#!Rh,5,I2);12t(V=d=9ttZi3@m %f5@_j+tj=J_FK(>^("u:]=35>>e>K1=5WW3m[^3Q?[qj=1KcQe^[KijU0mGUIAg]?efq:[X2q(lU,0do)-,>e!7$ho!?*jhX=_>cg:\Arq;]U-cHY=WZ>6>5CXZe/8['4*p+-Edp5%[ %[D'uWoWPB(^No:jdMnSt]QnCDIFm90?B*i+hH94=5.lno5CIUF1R'5gT(S:kj4;K*DYE\s:l]_34RW#)ai*1=F7W$`n"*e==DODV %i,Nels4;mr-1ABWpU\O@>D$iq[N5rS-AQVX-;3Bj:]/u(2^mGOkLa\\Xd/Er3dI,N2m-FL^0^\E?iIRL(YlR+f'N'I"jQ4SQ\pO= %E"mr0q-[e.Z/KH0;uL8048$_4g7r"\?1u!+B_q#'UF.S!]=a"j8raBV2Q6,_2#IRUIAT:mSh`VLR?[;9_fW1k2mAia+-bm0]eX;m[*T?hOGF,eoeRu;7hmUbMQ#YjLg;1r+5EFS#0/ke4 %YCH.ph=,&pVs1ZiZ8_JYSULG7j2aqnHMWB26m$O&Df%B"qGDY1`c(4Qhqbqhf1,](b,\aiSQ`)e@NSnQ#$&+_Sih:#h70e_>j#JA %Qbsa_WP8%IH%*1"3*\S;:LBR(T3nci=24QK4hUdMcSb.jA5Yf1OObghW<5*#APYkPuk*CWG]5A](Ro7rUG+Q[U^-nn-:MiDLP#ZdP1=#OAPbPWL67Nk<1m %U[ka*K0$G>kN7[G]K=]h@SC[#^>f-*CMLb"q:Dm4lF[Q"?"q9:bj)n#Wb#b#`6+=HZ;e4#H#\)M,*flYE#e]-M[jm/%;2g[%_83[ %N+;DGHd`HiG-0DcT=,.g+YmMNM@ZqN05YI,5NBLhpkt_)]=i1A&+EpN^%\gtcH==__^AclHu_>m@B=9^5Nuu8)tS&erk\Mb>sB[X %2-Z5<:0u0%g"7<]h,mtjSptg&IJ`ELr$nar,QYA*T8KPTq[.<;&$SNlCb?iMEI*dAom&B3XBik8@rR4*,4"Qo(4.NE55e>$Z#JA9kfC,2)edc$Y %?S/^X^[kq+qJS6R\"iHIG@rEnVlE()o4;KH\3eS#dBMN24PO!8p!%BVorDA'3]NQmo^_AYj2^6;0@%8dn"OgPTmWYFm&TjWiN)lK %esCeZRYAFPfE:QD*EKB$QOg`bmeu,K[:eCK52=qm/[k*']rc?53_gp2a@F#3(H.#*YWp1NF7B)NLYmS<\cUp.VQ>&KS>Ct1VGpg6 %-gQ/i!M2MlHd-"Js,TePV1rS(Rnme56i/f$IbDE$XZb>!re!Q:BCMZ06ln:$C%US%?i6UYI[IF%l]'M[s %Wji-d3OjOPF7nR-qoWdRr;O^$NV1T=0B%;%Pj7Vm\b4e<]@8\r+0WD'^?ka&F7b)7pa8/p.kc?r[CrhgI6[bLE3XVj#4CNnhXb.H %aklPa7io-"KKjqXo2>JTdl4aShKuK=S$/pf$[r9rSudBgHIIfGcOYbWp,4HR5HfMEms[(j6X^6+DXS[T"'d$7@'kD'>!'C:2s&e\ %rFM+UIOK-jj+S:.mr-g-b'&)W>[qq9,m#Q):4H+DZ;QX>6+E=Or1GH[Qj9ekgVLm*bE6_f_eO0PNuKe8k-ObNpY`Cn@u?^Zq$HBd[%*3?pW^Yfc(BL%GkSOb&(^16$2We%JnmPT4aM:thdRg^`t._*Z]jTC5L_@`lSib7K@5`:>^':Bp:DiiV9?@*r75%4Gdqt- %I/E;#q,MHEMsd2(c->k"^2n)1530=KGIQ-3Y'E0Yd.$Z$j3h-&pt7"5$%$5>^4NY0mE*r.Dhjs/g[36;J'm*PDLFJ-]O*bQ>!&+@ %?bb->HEr\bYIn(X4E"RK':73(GrYiO+/ml%Y.sbLp<(tK1:CUlSS\4pCWjD+G-^]:jl60lXe4&E5N?["pj"rH++LZl %DEllY?96BUACn10k/Gqol&4th;_,,qmJ[!sh^5E%=Bu^qQ]l2dlW;TQI^0aEd,6fg2s&7JH5qp$_$eZ+BD*mk+N`4=YVLbL3Mnhn@ar]lNe2n))B^epm[Ad%ChgE]bEPf(W3` %>aq4trUa^oDImVLl8KrGjo2%7[@:p-dUf[4LN*7aVc+AP_^c\6Q1nTQ>^l=rT4;ZG[Z\L>.':bns5q&%/X9mMp_WEA6q&k)%L+22 %MHNp&TGWsq,i!J8Qi#OpWh.]rbR?j@qn17#cJ$]&e(%`0\Z<;+$^HX%XId,)_GftD-$YsM9),>'Dk2go#;,Y'!kNGl %oMU/6<`AX^"cOu:;Z?I_c'#i1&FM]pM\N(X],-pO9cj!,P[Du>YAu#\&Q'KCKC*F4lXuK96QPe#X,gJ1Rn'=A?2%(cJe]ktaWj/3u0p);L=_Xd;a;(OB?S(ZR^EO?^kNaB'\@Fgk=dgc]m&cR=>1sj-4#K39HYRWBoba:H;Ii,E^prWp-^=3lOc-t\\9>\XpKu9Y4t-'[Nt\n`jN"6Qlj]$%Qgi8Xq^pJ)^pW1E %mIT%;/Q02^J6kF[eB=UVoc@-u^J7H7Z:BapZBRR)B9(lY.B:WaWEqFo:J"pu#n_,&nm>q6EN?-(?g:j7dXICO.34#mjf2Oa6)^5gLl&A_jAB3qf3W6Kqe:Hc]q8/St>N0`Q$GVV>[d1>5V-5:^YpL1!9@F4h?B5rh/uP*M$&T2_e61.'J]9M"S\>R,!$Y %L.3NLo?SP*?/6@l]1$.5"A]7bD9=4RYC+A)OJ&#a=7OV/PC.ZEj`FJYO2\-/%D&J))\p*@ho%@ON&LCH#3>_;=Q>UbCW"DKe]la_ %g'c>7Wc4DO":b2)c-kTrIlq36DJRu:IaI6Z#0QPVk0ZP/>^^qV^6-E[F#3cL-Dd8NOV7]8k8GBcbi^Q+L[/(e]4je %ect6r+nZ&?0hfZX&'8nJ%n\n7Koc9'?k>T(P&Z-"f6+>I[c4AseX6#!4qqlF^)8:17aWK?i>A)8Cf& %[otc5pGWV:NsfK&nen`%0YJ^pu97bgsDjjhWa9>;2eS_+NIeHbAWWPe=U*LkucMVf.:](bUp0UDT1m$Bfch)!ut>eS^7lou("BsNd)k0:lmj+KK:^sggkBlI85"k.*#7.e<6OUT?fNcM&&&^o.:e3&#u!iIqTeHd)r %^\RLQ4><.\RbpaIA4(c'O"$WZ*m85NUMRI?K8D>iXGIW%TV;*PSJ31]<*G_+e1>-C&4;D4D+E5h50Xl$/u\F>PmYAN#a4;>n2apl_p5.6KjLHW[0EQ%_T*!fq5sO+;?#7\@*A:_pDiu* %k?n%dd2C#`P8E/lO):8gbnR9Z2en>dQ&_(8DlB"c[/]YC?)1[`>U>mmB&A)Eg?\%YeH!Tm`u<\V>P\W_7Y+p0MlcdE4-Z`#)KrHk0U+S\\Ml-^O"ZWA[p %rE=tQBJOf^R;ruKYait[P>ltD;ecIq/9j(9Bp]WuIY7<$7XEFaV('4khJfYUoTSjPaD+'h:s'1W!JVmN[JSZT^`QjS.S9dR(P?nG %DjD+6%f(M-5tq$%7VB5+4sad[(ZsC)]%dkq3!_P>!g^[."f3t5hen5/ZXc2,K %.sf=t$K)G]BXmW*p[6AMYl-f-K'aZVm`6+g`Kg-.Rk7jc3$9WU!mn/Ept+BU5J?SZ+38@((oXK4!WfEGpP.:pIFnOrPQ*9mGGgn[6#dB$&SAXmg3t?2tVbE*iYe&5Tr;\R2@+%X%Uq`*?!,-9qFX\l4;6^r$5"'@8!X98gSk:KJg!Co0^YK?G/a9U%Gp=l %!;.8+AQ8P&=Z]^dqTO>J0aM=3o]$>'JhLfeCnm0X)`fJL`7hU1=Cu5/$^$k(/ZpsCadi,O-[.4* %=XKV#9I=u@7m-di$/;AI]_UL8r/3\iicd%F`U^'5qlHulmBk'?9Ija>jcV]3FD]LrYhObdfTh,!V]_eiqSNk($WW%(OHEjNHiLBda %VZ([81-lpr@jD^sip-pe57C/f[C^D:pu.rMh6%$5N9N6TK)mq/%]=eO45glT/\kVS2mK/=Tn@=T3E$9_pXSSK1AA>Oi>X9EZ."a> %6[nuu!7cl&[(hOO<_2%:\N;4"/'5]KXq5,Xm$[$GF;Vk-^h\MiE\9%Hg^RKhIcYc\Ilg)%/'!t4G %Hc%(C]%VgjnctAlrffb^k=`=&K=giZ!7Ocaa]pF1@BBor9W<$lel)g&f"RNg(?^i$>n%&<.%^)PG8paNNjl`?`7\H,EBEt,=@ %8o&4/2b,(N8sd'qXW+-@P`B$^\m#'-XT.co-Z22;lK`NI!L,js_/=3YX5XQ&_662(tWKK*R+DFpE=m8VA:'^XDo(D6CdaI^//A[(a`^YW(u8 %Km5,Yp!l11JUAJm08fSWg0(Z:haeFr,T%'!OQt[P[(o*T=N6i[6!*#HtG%X?%LR)j!.?mdI(6\rXi>NqLWBIG'q2a/lPYa)iHWbnmtH)>Rc&RBsjepiJGkLuor$M6#,poo:c]%Fj]59EN%&"pCO %k'XKsF9d,R^,pT(VFGGg@9q/#GIK]tH?<6G07!XN0pg:'`>rW%D1)?6Gu4iDcnCEi?8gH--dZHW>PmsmHGEeZq7IZn:^"T%`\/F: %SdMV+^=qs"4Fo[[(.M@H5jnj4MZn %eAG?X9S3!W+K\2h8/mO<^<>"$)T^hgPS4S^E3L?cG0bY.<2f!"8u14(/U+7?t?og0S`.B!R!oQZ+:rhAh\Ve?ULLN8b(0K %K^[Kf.KI^(-ZnWZ:F/8G?"0(`"2Wq_of/rP]cV+ZgI5O,\Q.P?8"eO,S_@W'Eb",?!3M85TE'[r*IR4n[CP^CSn;e(`Hnj-g"7W: %q;#YX@@QN8m830)&l$8;$@R&,om1_k(IA;G3Noo!fn79f2CKQ4(.NBn? %Qgq&5=R5lUEcmqlVbWsPY,oD4V4X^)]01qI56L`V^+O^o*K:akG9a^ah:i4uO0:%2)TH$RO1#Plp=G&e:Ciii7PZEQ4e>9,8,:q" %C-ACJ#1!fd:H%=X[-Q>dd1%%UmG?^[e't1S#H9An?o?@fPSFtBlZ(pdF?M_"/\:<>G5;?teQ`'S7>EcYS0_Y9gBuiZ.YM7[ac>#tS\j,Rg+&th3a'JG;YKZrl %oZuBo#K@rhV_=CAnBnDne%oGTnW_@l`a\^"1\m7cmN%o8^[Z#]Ot-cka7!I35$GCdkPF`9537?hR)u?#ofkkDB`;-`SN$_>e<%?` %C."#8'*h`X3)r/S$E#KucGQX%Q]#hL2Eo-q:=-l]?h<2Q,lX8[F`TXX:Dh?%T"qZTB+L9".(Fl\A!H.2&<8QmoedEeM^Hu=q)'%`"Glq?S^+g+jTa6WcYl6e98o&,=GJ&I7I=Tn9 %9q+:XT.@/q4Fs5$dI]bDaoO=5Z-@E0_m-4X$L@otT)>E<`6n?+d!NfK>mKhF]X`@$'+WCL@/Td;Tqhk;fnp.$SiA#Q?8b\9.P([O %Q-b9?,D\'.CN=gip^D+hR*u#fAbIZf?&u)oWAC$gT0(^+&Jr,4l(_pa'k*c)]j*eqEo@R(#el[Sn!53nc^G._i>0'67:86eAN!E` %;oP)J>P&6??7o<9;#c&VZn1?<4_A<>I'W9X]V83RN%)T)R=-e&+o`Z>fUN+lX:Jo>:?FTbSO/teEJ"9N:Z1C?#-,ZLCIfA`g]fWX %)jE4Um)RglMYs7.;iA1G_LWWJ)dk$h7lpJ/N-=>hk-rMT1d'rV(aCg^s0SuQSh!@_O5IX`31RF+WC*4_1nP!7BD9BP)/^buOVN9B %C?Iea*i6iQ+j6dib:1@N$:=.`=j1[RpNe1/ZKR17$_aXCgKorlB?.XmhQn!SFU9igju^H\Oob66)mVa(d%[G'qJhCab$CuB"#+BV %,'pUeYLdMO<7o@lY\&'p]-FP'Yb<"I0"@t;*KTPl3ADR!gJdmn/KHa?^g.+lhuaLpmD5'-c`-I#>6g/@Ve0ZuD/si9do!fPnW;?f %Qu;f+l'Ra8`@RI-MJnSZ\Vnj9Wc(rP5peE;@4HK_N(q0VChTSbVL+KZYhSI81?E7p^D:!0)OgsdYFDd90.hTe&l"7XjJ5RaV9Ef' %c6g+X\B]nik;lkoa`m.&`c"\foAdE*Q/[4Q[7jRug->F;Bq#g#AC9@;4dRr=Tb\@BdA7rl7([DYHhEKnln&%j9C>K6C\-.Nmru9K %Y'?`0]2(1^N4E&!Y"N5KI(<%LmoU4t\iK8F[6[5W%FJ)(pQ?j2P[8?)fs9;J:gXrD^dX>#,gE%tj>(rK2g*b>'(@]'?%@ %XmlNJklBT;Rb*Yl(=.^Z5uu@aUdLUqlG%e69R`s81[0LphnW2k]KsYtFS6>a1r!Pc\B#/`d?uZ4cSS4K[X\a4fiX9_e>FiAJ(Ct+sPdUJBad!k57NAq3XhLI\ %$1@L)\?SI;o]8:4%N7h+QqM>\&.1&f&n%-)\p06dKHb;$R3i)h%)cjac@qHrCiAnROiBG0gf6cXY9/JOHua(&d["ES`aPGsaYrl2 %*SQO=8$`6c#\r_"K3RrS@GJeV#D7OG[d$)QcjYPq?NAI$&mkUE[j1tSo@oY_htNYumcNbB!0i89&#qa4fF$*e)3^B!*p_kSL[XT8 %LoT%k4!Xon$g6[IGkpEMp6\p)[2"oi6P4fYc,AV5D@cMOJ1P[@AG,1.T6<[;%*i>,IfQ[!H?OKg*4%ZFj\4h]dFQ9&iO(a+5#*dDth4_;M:O;9Al-=V[f5Lc8SP:QL`Msb8eoC %I^^3RK2)\$fq$P%-C!@,!hb$.[%5G_Rh%7&JqZZfa]*C([OblXSkTaKD-;3Zkp[ZHg@I72ssrZYU3D18Ct]/fo`PG/c'_P=pGPr&BL+p8(cpC=?-g-t#8_7rm2.O?IU3cb^YmHF\*VfkW?gQ@9k[Zg0b12X]qU^-alD&pbX*BZhI)gH1]lQb;7sO1TSt9fE+*nfrY9I$"3l=j68ka[LV,1'[sM?LCsaq %31"S0Fj60Gi1G(5IHg2k#MP>rjn'7mla?HoS^!T$5dBWj<-K33:OF2c"]Gno_'I7SIU!>mR77jI/0tION5jTb %[-bM%mDk];r(V4pD?B'=`i,M2X;Ye;V8k4Tg@/icqq`ID]3e2IcL(.qO#9@W=h;taPUTUakbn>?DhJ\e%fW;\!)(ZI>:!\KkMG8CuIb\rc,J3dJk?_sj0\N9ap=2(fgt %%HGrNpC3[I.2HJk9,D7M3X`lf!A%O?8t6Ysn[:79/U$jRW`hqp+j4p:Y^;"nNTSk2nA&.fGd>rHJ:/_8o'Q&dXPTA#M,DE+I?JLXMBF\- %b+J8EP[bYS(?RrCXN,iBK0`-;GCaBg@chK4`Y2q/YqiHo:+PR!cO.6[A2uMhk!30%kidnt7;D&a/*K5C0;XEK^Ojb+>&`UB\tj6J %SQRPS?k&Y3:q_J+ZMG?;U%>I\Z`40FX.f+f8h0$eWs*.;U%>I\dkXl=YG(Q;%kE@#;+'MS>Xnsg*edh.L5tDnaU1)GPuDG]lj:ej %AT)umCYL?EhRaCKs#^+>>U$j/)hVj]gH1s.J9iXp`+3E7bT"Ygfa*`Q)CX#AGWM6=QeZqKmj'q?djuo=S5hJU>#B^#4V=n8//\F` %p,tU3c;MiR+8RYiQ#je)Q^PiHJW]BQbR$6Sf?2,_@5+;sH'HN5._2FpNe>HB[(?Xu2bM(.$G"YF/Qmb:f+pTcZ'bVaM))`UMdL.P]dScqMR&E1YlYbs0*J %cag?5<^)-SmI#<0BppLIbT?PE#8;qhURY6g:"WslCtZ;oe,i*le\0t.e*?$7?+>%8&3+QmNu+nkcP5dgmB-\:@R="`]nt+=O0e"aMK-Vd %lGf'P>GcR`rTNXV=R3%iepH=cU/Z%('q3nqnb.7@9AHE75!ap!5!PdZH]-9;p7B?uc;g6d%R8.555iQd28@eRh2^RaLRjC[Nng+) %'l0Ii.OEs_IqB!k\@YAe=e.@&/\EU.4ACc;m4fH@Z`#ask,*nsG!Ck$/;tqr;Uggp1cM#]_E/5?YiifKPJFQJ3<(.)rX5$ubnQ<1 %)%o0'(A"T2Ris!9PFWbf.*cHrcEfTUg&7Thrl_LGr@'p9OGM+5Ha()+QJ-f7L^\EHMjN2f]t\MS`pi_2Em_k,[_*e>,eG:G);:Sm %)1/caqR]RUYYg-5&Wq(88=`eR2fhB!1Tnl_o;WLrSfg@Wlb!b-Z>m'^>Pb2]!T^Ye,?59.@f@6J %PbKCDnOuV[<^#6F3<+$aiFY3%CsI@:M(Ek'q1/q(_bo)`<(5TJlf%2M(o&9mg%B=` %VZ\QO*\QMW&a,Eo3EJB!KJ2JmXb3mCKf8.rHEjLMX97WRP!atVfTngD+t'ZAk2ZF&ioTh]KE>aP#3a)eema1N?L5_k4O6,.S."Ro %rf'p(1`dT]'05R2-!JbV+Qcj&@,>JTcA!rUH!%pAPmna-kT9--Kigr9eFCV9.P/euQ+P3gS22V74P?rZf:'1=e?['phb.@pH^&))% %74Po!/u'Vu]m?%Q+Rc1.Ud@;(b>#*F/C:@?;b,m850Zod)Z1H9M3-:V?6:#uKDn-a.>OMP-]=0'Y``!1dl6`jq8=mDa,@p%DB,kod`GS2XF=ie]!2eX^2dEt2S^?=G>7"DL %ZZOsm.X&GtXKWY&T/KjLm[L!(NCb+9!0u-djg4`q=0^ME$G/Lj2HRTED=+4b#rK6Fah2oL@`@^LG)g%@'9T&?g.T59;0g'jlIB&( %L0%W/Gu`K'EM!TMeS72+$'_D1CnGqPQ.@.r;>J>G_X>gTfPOpb#$O)o]5[hIn)K)PZ?uNZK:K/(B_hcMc7W>=Y-0U*.I`\>?T'<">AT1ps]'a)S-!,+!c3 %h9i2^=5JQZ:!"alOQSnb<-LZ?jR]AMe85nsq#`SDTpPe<' %1Gh@.eT>]:F=ua;/Qba1 %elD2jkb-IJF(s^'X6JF5Bf',+b\B2JfY?P:0<:PeXd1S1DU3.LFDe@,ik6tPRa/V7FkP;eDT7[(41_e63k&9Rf@/juWhsjgf^O7HQEY2W^[FKs/$CcaaBpP0\EuS]C,<62$(H\E;)MOt0WX?19Yd4nFm%Msf`"OFGI1oNPpT %bEN'7F#PD>\3K/!5Ah(PBc#SWI*E[o0JhhlH^&b$f0&49oUMu]_:%U"FuN2!'u*L>;1bca`YP`=koU&N`A$N)I?t0Hl%7^"j%H!L %QLjG`JIbdP(G,;>'U_j-kafX(]Y742oo;u^"8]gJ#_o)7J2_;8Hr&<,SUC;b\r!be]_6]V>V.c#KaLd;eG8[@U!B!m%Aq4gU&g(9k$o4GgqaYh"7kZ,SdW)a"%&3r#\)fNDoF]7oF>d1)Xd %JMP+lh;sL95M^u3.fJg_ouj$5CG"tuTS>AV9:ELVER,Wik3StWqb;?/]>=!B\&93o073\P$itX'p_iju>5uacXi-sr6tu4Vijj65 %8O%:GF&(S%2/u%S]X)Y8P;qSk4:VQ%:rj2qLDOg2`'bb9oQNo=9$dkA&oP3(SqYK2GK[PUDQ\>eB>3?M]CKqJ=*0ihgb!tR?4cf: %E`:gmlB6P`\=7&1hFDqAF\)W!6fu&?cMP?-e78u'q@.X7:Gp0S7F11/$FSk0a5@[S*rP-?\sK.1DMXT7c:PqnBtMpcWJ*g6ZV<=ba:oa1^m$FoRpXTb%.EBg(_UmC\\j& %a/;lH8\c;0hE=YLn3428b8r0FVRT'GO/@N3`*i=B"K?AmAY_T!eNmqTSbX5@2Aa$o(0pdK8%^+n:jLNiSu55gQL>]0NiH_VojAY* %9XaebG(XFlR<;/T_(H\S9(X`Zj];2Sg:@PYau>SO^/1.Kp.NBKF/`-_*afoLH/DF\OY?V$o]VIu*k#\\ldi`jDEE4bMYLFuGIi&d %PEN$h0"LY&lrA]d^*b,Zi>sS7m0-_N[=?*El:]\A-r[f-SpCC%ej9sQQ'eoOn&YfJ/Zho9SbK@*-ANpE?E<.]&1h)$2mth`s&NX$ %V.kSP'C/qW#>hk<^7BJn=`\_t?-f&*X^C2I2cX`dlnNkS?gm!k'Bho\qu5RY[-J#T'H&AjVq7M]AL^3Z2%Q?Ph0+(;'BlD!<7Ap( %KJiE'OM>m0hjdesp\2,ohm;Sumi$b'']LLoHb,Y^81mB0_78%cf>QK@^2`/FS$qo]RnQ_Xb?;F6CW_`D8CPj; %JWW,pQBp>#3p?pNm_%SuZONlqo"Ht+YDm0M2qBUa1;/OhlW1%SY\!"11Zb;ce+TV.h5bg=>gQb=YM`H8\A&&>3"3$0rD6Y6/e:YC %DXmMS6Y5dtTQ/4>\#b4SCV<8LRE?PP/E7R\X8r`50/h?r_9T^"["?6:*(_@qY32mTD6Gkqk8[IicO^g%YO_`Vk>gGEtYJt<\?G%j.CE&G=r[#/)ofVC[J2L(4 %Bd->eJPnbF]_=&?Zn*Nl;SX^tnH;rYUWt'pF.$@E1UATEc&[e>&)LGIkd\k%>+a*;?N*"o`hqV]'7>tgZCln*k.Kbf+cH`!SP>=V %HWZ&V?fnKm$sE`Mll6Ya/crVUT&+7U._q]7J>"u@f^buUo;MaI:H4lF$8?-&?mri8LD>>tV.eI_.2#'J]0<#Y+IX5AMA6^d]F/R$9(['QHlE3Glo2:o^Bfs5J.n+E.n:MGB,rG675EN@t:B1'5dlfT?)Eq@64 %\_#00*7=LsW4D?hRmtNC\_#.j+Ck`]bo0se?9c1s/iGI2VA/f35Q?,.:h5<2Y0Xe1r_p/Z?b*tcIb$cMEbr>)r)D[A;i1Z%H\f1W0Z %SGW)YD5`,RFK_G-tEXp2rp\O](78al"$f1.3go%EH&9b4Hs'@qiKPRn.#>Q*c, %XqnS"cQ@`!9`$-klfY[Qg9#fs\W:[omVoE-p_H$3_n;%Kn[\st>Q&06k*Wg5caW=N9"++,p\O^ClK9.8T`FfF(PqXh!=,j&_%74Mr*d_D\s[_A_cSf5U.r@?9`b!P<1[GHYi\. %rVZ8<2(c93]mbMd[d^tZm,+-U_5tIDo;$*T@_/?k4Wn"h;A%1uJ31Z$MB)%+lDS4I9%L1^m&5KkI::'3+jp$Nk\AQ>He"d9n"pTSB%@V!P][^m<*d/#daNE'u+HF?RF=a@4_/brnUsg,!Wl.K>I!<8N:]s3t-2Lj0.OpZ]Jh"b\iH? %?=EU"O1,n,WEIr1`l"r!h;%4667>aB.fNc:Z_KoKW=#24Z,5&_cuupkIr/L3($a5r;,S-QG,sp) %fh:RYJ#uIXaq\.&MFQ'>(ES+AMW+P,/6P_:`mn1>Di_"_Ci5S'g0#3ejgb1dH2d_ARI'TZRX;-NUmPuq2iTkI*A\nfpbaJDS_ba/ %gK`!bbo/sXY=4:(`+2:[:4<8aniccYR3Y"JREpl=Eo_kl1S8H:\AYOcNM4g>Bjg^5`Q%"[oc38,gpQ\aq0-.qu]nrNhp. %];A\45Dr_YM;/OGdPV!2:C:(b)M@j#;k?M^7:?\",Gi%%Z!\jdA>Mq'&#VdYfMP4>T %3&7@8O(*_&0:pRIk6f`!)WeV$J&tL]Vq'87&Y@X@&)Z^$Um+H5H5*YEfoPGr7LN1EUc+FTm,6L).f4,O)A(!;JOYpe5PUmC;RoYb %jlABIL,?'Xm3J[>p?Gs+g.I$7@`YO@`NRga.[taG];Cg&Ou`?D?@)H!]K"u5k.Mh!bEd]3'pdd?XYjSqXP;JaI!q5'ig?j]$&Gi2 %Pg945D2"[#7Fc7=VhPQ0b&SCaC+1\_+!+4crpe,po/)M]IM5#V_h\CsM7'$9N2Y'G(m;\6Ib3@Y$ju)kJijfEj %&Wn^deIP5>_o6/q6Mu1X@IUYEf&b^$bf3T^A*kHGZf-I"A97c>CWN@JU)Lcm-Lui?Mgr9j2N=>hH;;_Xb6+:c@tS,H`*S^,n"ag. %<*4hbcUR^+V60/llQT*8coXdH<#co(9C'2)4e>?Md,nePMmk5`d^H`UgT>1Eb[@?8TM8WE*Pb:HC7[)(RH^l3=[r_Kf-c9@C%^k@ %`$gP4YV%XD#\@$([aP)neh%9j>Y_Q3LQ(@kO>_&j/i-\crU>r)DsrDbcT[@?P1$.;<1Di)pNC;`qH7+3cKRSEA/-2nlt7)%bmD'2 %nlL[VEA5?Ad'S&m6QUn)GgA5;SPXC!=eVH85h9Kd[S58V0YH3qXAs;i\%8Gtk,Wbq)fOed:*!i`pjm-)f'bDqJ"";>7'dNffL^#P %ena`\fId'qkX8Bj7u_+G';3>g.V),` %:dAY'CORB,b0.ht3YJqW)itQ8(1CR*HeF:2JjHYa9B;J#KNMmcm*:4noIY@[nP;()YeEBD\qJh=_A'fJXIi@Q?VEmOU %Tu`tW?p%MCk"$uaI1/kMOpn(Q<[/Q:iuMWKA9MN#?&^Dq %L.['&^s`S+)fB/i:'Ag^$h?cQ&#,3P_TlR=WHBr:M7fquDBU#c1btDdNX>_?Gk%[q#+bMe0Yq<9U^3!HQ;]W&LE>HB!+YMbQ5j]? %C"FgSDu#[V'^!MWF%')kAX@>nUZKVN>l'W:i/!QEEI_faoN@C=#i[T2,9]):*Q$;<"7eH9s+q(6GrA.(&_3\,Yj %h@bO+kLW3!?nZnF6.'/P\9Xh9]fm_lFnjrti1B_=ZXb\2b&U9ZYIX!ild$1?SDLfO"7B4H3-r%_gX:E,Hfs`3"#PlI60N^u!cq95 %rH0p:5+a_ngsdOQ`N4XbMiF<,? %F,RB_rk<`TKnSno'(R7:7OkiM4M*^2_`NNl:'h(JQ"94l%S3CSS-`>Z"/oh"fl+XG8bNDDC$_hco3$K7$[QL0W4uEnb,6OPVAoAY %koi\DSTY"#7p&R7eK!fCC&oe7(9d+RfV]nmM:Q`[;Sah!?bbIZ2\OkIS:/`DLAh[t0hA6dnCLimEXbf7#Q>`b&ao090C%XhUKB%W %bAHb(@sqJB$fu/h9uX8VD!Es<2#SloKrt6KSMgue4MA&P830^LkWhqZiA^skgMgk(E/`\qkPKY %P*iZ_Z:aKThKk*]=RS(\K@U/cE!^s2iSJl>S*/HUJDen*o,^]#o9otc\-_DVrS8baB5;fULIC8/>+5KZ@\9P]eE;--XD7#O`0L+ng-S^.3LB_k1ni+Y[NK;[!OL9'G %AF1?6jL7PhJ8%,k8Bu;+,=aqZ&$I@@qc< %GZaYnq"nm0rsb3!]8?+u:T$_ZTWUL4PIXGdO*Xn/QJ:DU^?.B6a"e]r-Q$QmAG4oi9_WTAoU\`5NICNToja5PYB!B>C\IRVBY)#u %=PQL'k2NiY%iF%)74=HOn8_E;lhPWg-dk^)Cl4#.*?a1I\sC#1F=pD?:WC-%VpZs7*^o^9b\-@?ko3&nhOpQ5A7OcIA_`:nL0Qm\ %f%B:,Lk;i1(NA-$0B<``.-->NIt`Yc?4:uCb1 %Rtr>:i*N=tPpEu:G^VZ(T;@M:@5Vi[KV:.tJ/5omX:rX7Wg0GhgK#VE5a^Z"&4JX^F7NB!"`9I<3-2A#5DP %&BLQ$Yn(&2;3*-H[CluX+osL5,:P6bmXFqD$kLWcnrqsJL>h;ehWk!#jS2)HQ!c%,p;FR3,'P`):*DW1)PL_N.Or^*YoU#jCJ6>Y/@F?/+4hCt5K+*Y+]mH1to:4SX^@K)Lm:.(0*FDFEVdVXA=3E;>J2';3l %PkSL-_P[(]\n2Ct]&5,cio4=+CH=Vdg&dPl606gBNjVOjSVTAPXA8J[CBdLN]Y-/V\Rfp3m6#>JFcV/tla1rtY8;b3TeH!"=^"Jl %^][=*H#7*kI,6Wu?Omq.Fbi7mdb*^j:Ha"0o8d)Kb1#<2H*oJ82i&^k^B\jJ6"JIk:n/m27pm?"aBh*+E07oeDQsi %^5]bN"k#>UMn__OHFnY5V-oIRFS26F,Cg.*'`pAQ]]P#Ygo;)jD>ae"L,\qB%Za4nY\8h.1_aqj\Q[e]OC %Wt)_sMsgV*b.[!.GP>aWZFQ,MSHPZjC.)k@G[2ETDEY,gEGg=h6VKPppQ`q(N'`*2q?+CI!3I#1h%c"cCW0o3_/fW %"*E,4BHnMS4q]O]kn;gX1s6(#*T;Y,E4Wj"KN!ZXol/o7D*U/ajQ;%'/ue@JV.HZfNs9TooS@;iBe`!uXg];3 %ra\5p[IcLS'V!qjnRhI/rcAgbp.*/U8lR!!2e,ChFcCFLZtm>_@$m(m?[Gae+t^N\kt-YrUeH;Ml:Hbse5@rdXsY5nOsC_m?V`_i %Upi[KqC"0b($X;A*\%QOUVD!Ee;^0C'"+L4DT#GrV.iFqh$A(ie;jM7fR;4s;hBlEPa3G*:mu4\?i0WEXsRp^^\qYd0k8?\4l2:V %cr6o#?%)LC:\VAgd$#YF2Q:SIK4lHSek")FSnEIOC$QqHp*8;PopD'BfH#F<8/t;>.I:eMf3i!(@cm_k`^,@1jS]^$W,@C?!WA`E*JbcF^A]KMAF`T\c&`K[9C?4OeP)fIQ_-hWa4@uCE0me,DN4k/D>k9[I0bXk_/r>6sF<]ZQ\*lj5 %A1H?S=pLEe`XP]k],9;6W,L1".S1i %ABm3@0-!8bE]DqXaddT`M1NW-#9edF_7F=Q(SO:'I<##I3Jq3SGT?L&@&9!3G0q0[`_s5=Z,r8PY/\Rh56+EA$NSF(*&N*7keS$# %;0gS1>11i?)Lff5\W^?EqA;%glA:%01]U957>qBGI69F^;:9,f]CGr1tLs: %,^Lh"kR:-'o-'58^M1=c7\qJlI?#+JNRf>nXr>=80]CbTB/[ke>0PYgGHf_7[,-S^oQ5?XBme2lf\2HhAf!\l"fF'\]5\&M0>XP@ %?Cc-GVO`+@[Pj+0\`'+076#VhISPrte+(uiPXbAa7&Tpoa;@`WG2=#\Wm9dH;/+_Z),1ig^3ZaL4/VB*R97,*H^LSaV#:Ko/O7-o %7sTejN-)F^o&SNjhfkN5*o1Oe>)n-g@9mM+9t:c:Y[n/V53$-Tg.NepABfgV@9>KRLY3+ID.KsKqe3q-+J&=RMHYo/KZ %Weg[I%5G#DXbunWe.@gsBY')rYLF,Q(c/1JVpu=tGK.3/qg+P=LEaq*EE_J.(/\'2EoetqmJ2*o_\uU"JlE5T[q/"NLsrP_`H>!s %K>UH13Z27R-B6)HnbQ[m"iEQ*:H$F)ps=h(B;-[O5`b#a6HJnG$.H]g8XLh3jgIA#1-PS:>om5=kP=5e!OL9seD*dat@g95@9)R4s^QM`gRkUn+j.p)5gq'SP;Hg,%+H->AI8a\OJ%6-[ %'lG$T5jLl]OCgW**brD.VK@THV%5=Y[FXKJdtZGMGBr"--0d0[e5].7]FV=>4V4D"tR;>K6to[3PM&,o_b %`2;k<7WYcGZFQ^CqZuY.Xi+U(bTjb0O5dZNo`udi"IOlS]5milp]LL=]3RC$k_NB`igptSIDP71=8TVAp[ci3?g[U`W&OLlpq7D_ %+,g]JR+1dnn7*R>p]F7j=V4[E=)RJpPnsRQ(*[\0KVXl8I-(2S1a`64&I"$C*^RGh;?FS;\Xb\8(*S,Kmb13]rWC=W/,]$gM.&gZd(s^b-lM6QHBeK+ %WmV_@4"Z;Q?\+9L!Qt3X%4_C5Cd,FHM(hj3(jkI`Aa6a[5XPuaiY5.0iio.15D%rHJoSkUPP'uYGYTgrZTg&G&Eth"Rd>k1XKDOD::sMY;2TWHI>\@5!NW=2R'$V2`Ufp+lgKG'5P:mcP.JbfjQ+^2HV:ur,/0jlj-8qn!ZU@UA&,>OP+?i`ZX_3"f11GUThenY`\23*6Q %PCQsX0&7[g>kNCo/HY[iZ6I?:&f?#o]WK,0`POEu3G6$&)rIL9N2DYY@,R_Ue1;fJO,2VT::j\#Q8-2gdg/N=SMZG<)%7e9a$=)c %"0!uTOi75L7M8)PB/V83jjD0-=G>@D"HfIJ)HIO(-_R#!di<=FZ9EXF[+'i?Ymj&6,*%4NN>>daF4WnXEt929f60'q$K4SG#$<>h %er1p_CM;(N,1"XrEbi!FSJc@s5\Lk"rDAOg@-W+5_@11lX/o'!!Nn<`5nT9dB7e-sLQ>:r.J9Gu:5=R#JgQVG8K0 %;1K9ie\2GED>L0=-DQ&%R=[hd?t/K!i!\X%DbX_'BT1S*\=0A8h)]BQ06eh'-6UKotVdN4ID3"?e(_"+THH9G+._\3u0TI9qoTWOf]B2I+Ug-8qgB=n&+f.<^YP %D&,m.5UN^%dC-`.B$AU7haE.@jP;C9,>@*+(B$ZoieC7+H*^>:fa%qPI&M*i6,q--id4F,'][>Cm3$[_0J0[4$&46K!t`5SP.hA3c:\Njd?0%1n$3!m?ur=o8aM3kYRe%`bW_3@3+J %!)]g74_doK`AE+6%4*!].']MsKUrKhS%r0$clfBHVW&:)h+Oc!^b1>B-=fqAdJD7[^nDL)`PG^>"Kas&'lHI\MYS4&J][LGB/P6- %"]C9X#_'*8Y;L8Si7r&IOig9E3K,;(XVd'PN7fCfGY.3)H\J)N!`#,5R)&sSIp7^`=tI=Rhrs[l-29.gDq&\8*C'u]`hHTqi>KmK %2c*s7\qT@laKCQ*0J]fN$b`=pO5R^Z1H/mj8"&6hnAf_hjs0d;Z4@M`40dP4R;pfl*u`Xm@W?=Hdo`e!TPUOmo(cX-7@Zh %.:8CRp=^I5lN>Uj>8Y3:c?RhZ@^id9<^Vfl*]q:'XulT;q+-:Cr?]JR1Dg22:dZYDoK(ggcCaOrkcbM5s(dfs2W6LO&u%dE7DSDbN9.GM,#9&j]F9&UO"uX*r3hI'CKdO#T]->B_&O6E[DdXW@5n._=n/-3ZOf46T&qpC]QJl+LeV"8Z8H?a9XD%ScKg]Hc %eS8fO6mVs3Kf<39^++_OJT=7X=R.omYTP0kRk7Nm_<=gMDNQYA#(?%^V[uU3TcKe8E5qZU$GiOsIFW.JKHr6r($Zg,$5)4/QiUVJ %S%f+b_t"42`FokZ%$j"C+(gE>.)XsZW(R^S/5G=21e,9h!eb&6ar1GpP!ND@"#%`GE>HJ?n0TW-*c,c[\'2Z\4bosO&jeO(O>1'?#. %$`0dQI]HkH'eNdX`q!e]AmcOulbVp?L&Q+ncbV8Yk_n>7T^ %8d\"@b4>S4#hNK@RXIRl\B8il\jR,oZVcKTGHa>gS.X-<0cRnVQXq@D'TBa.H%OgJ<[7]N3T(Y42rR\h;^Jc(n>R[hAcqOl,bo&) %]/5"Q0F=*-_D`bBg2)A$_+)4#K28M*=P<"*J6Ga/;M629XGu8+Kq/*CGZ$-()BU+($ckWYCJ;]"N@?^".(1NmrQQd&rdW6EC/ChY,>u4t^:lpJlX\&p]>uhUO*_X"07b8_,!uOeKO:`$^V[0Rs1W5Gd-*mUX%He+^fm60,YQmcc?uuFoC_.8qOO/O- %9,n]_S9ou,80,b+ %03Rb:)'X&G>bXib@Po!Q8g1Nt)NKbS<)h\BN5]I(Y"s#361rUjbMbl#4+%fM<5;iB*u&u4=79MX71D/DGR0l0+q.mO]U0OkfTl$? %/BKU`+coi+6&LU?dGQrN$b2+@$`emJbQ)'C\lE,r!'L^gIt::Q-:,^,15d7=SJZHa_QddD@u2.C20!#.0J^\<]pK6E,dYT0NS04R %>j$c:SM5R9NWiaUOo)q38$;_9"&MsJL^;@a$M4MAOUV@L-=3V %=Hp`Nc-KX`o]]eB%Nf#oND4JEL2CBp_QmOmM43lMW$(dA#Y>\8+H0kU/3-PV6jdET7=bDY?jhUL+HZAMXO7R/EZ%RQXqD"'ZPO[X %\LP?LYqEOoMCZgf;N'Rc@RM;l'1pcMAc6YJ %L4MfFCR>ccSj8?@Y978YS8<SL9FInLtYb[HV[=dbd.C],/G%FW1QN+@A@^KF^%X_s\N %1kh(F5@@54OUAE$9FkGriJ/=X@#4'+\KrqT)(ZYn1E0`q^hFFb=\ma50KMMS,9[7#LS4oPZs5YZLr=!N33m>:Oa4`8i$"c0-)9p_ %$UM529K=M/"@Mq*0$HG %K'%!+!nATM!n#J+'Nn.])?Pcq05p%;^_rjM[I"qN_gg:m!:p:5=OD6#J]UkTK?78b_i<6"$J_N$VQn%4WO#LhL%Ui %1oCI4@9$13)Gh7n8H\K#9pQ[AJR7G_qs56rk&*F"7$SZaYRHlm[Ir'JC5.=;L)$b`BK(qM8a]` %kR*%i8&tbcpDcPD=cD7a+j`SaZ8,Go&([X0_)FLEf#d\o:m`6&%M7PLfa?ffN$mAB5a")P:sb@jFrNFM!a6%r(?<8-oHk]#7NqmT %5qBm(SnnIn7a-"d$)\/Zi>b6S94YiR,0l<]'^NMB:)kZa"ZY"V"/\CY!OE0?5mL<+]qKJ?(#L6_"ON)r5LAs"B8n;:11mnNW:dX4SAYnu/L1FHDaq3J7TL+Le]PWep+R%*CqM!j>E0^ptG_I:P/84#1@45QI@1N51'-#X?.$`[#W4.7LP%bi=-g)P@.LM5u:Wp$j87 %crrPtQ12_V,hY`.Dp6O<<5Obe$[BQ=.U'-Y`Y6o)7oLT&"&"h:)fV`"fu(2R_0c;UF1?L)blE_/'%iSuXh^-;#@:Ffiu!c%'%k)> %F0&&Y',<>N&8s\aEJFHI=Fm\6P>uOG-?EeH1:Q-!1]meR=-8.HN!An[7#lYj2o4QcM1eqqO`2F]0FNEM8P185#(LFa>;5(GaB0Jc %rMjJuo9cA+SqW!+'2q"-p^/es78,/hW!84!&BimG!EB-K6W/F`TdaPNV3>p%#P(=W0*VqUAdQ:@%&(b$MIMGD7JQ?>3,5Z8/X!Z5q?cer%G@tKpth>0nJ1'Al\(i%BTrn2SXk$K#FZi^Wot#DS4Xea=UQU8>`fJ"Ho)To3*9KM]rIP@=!pK!^GZep#"'u@j5Qn %+FI'tB*_Xk_u(:;W6lt>@`("GW$8j_>!WAunePd=mdT68K#$=TWZmi>M4h\I(+J!3?nd^I[bfuZ:EZ''\4_EK]@d1YQX_iYD`"-i %NdHQ`_ePHX7#k_;Wj0K3"$co,$E2'm"iI/L6[T7J(Y3Cf0-6Vq1/#=&^i*]qjg04%,5W1oKd+-^E$5F6_"&Js8$if%I*iq+Cp+WF/Q=I>V1Gjo=kg9WJ"K]%>oY;F@,%.L)l%.tW&sqJE9_.dXgc$oo!A5b&516j[=q.tnLYRW<1O9_-M %@BLu^R9L=Zid$]k%3Mm=imNGC!*C;#/H?W13#W0Xh#X`&o+og54BYR1@W;te8BJ)?i_Id.$DIG]DSB*B4R35E"#Ceb^nc.Op;3ahJF:)\p$-A#!$_PId:;Kg)j\X60N1 %AI9_PrivateDataEnd \ No newline at end of file diff --git a/packages/stacks-docs/assets/img/logos/su/su-logo.png b/packages/stacks-docs/assets/img/logos/su/su-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e85927f74f701538cad6ce60b30e2281be7acb60 GIT binary patch literal 5111 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 \ No newline at end of file diff --git a/packages/stacks-docs/assets/img/logos/talent/talent-logo-compact.png b/packages/stacks-docs/assets/img/logos/talent/talent-logo-compact.png new file mode 100644 index 0000000000000000000000000000000000000000..d080b7e9aa93a119aaa7a411b68e7952e8c6e249 GIT binary patch literal 6270 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 I*RYQK7uqsy^Z)<= literal 0 HcmV?d00001 diff --git a/packages/stacks-docs/assets/img/logos/talent/talent-logo-compact.svg b/packages/stacks-docs/assets/img/logos/talent/talent-logo-compact.svg new file mode 100644 index 0000000000..8ef01dae5b --- /dev/null +++ b/packages/stacks-docs/assets/img/logos/talent/talent-logo-compact.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/stacks-docs/assets/img/logos/talent/talent-logo.png b/packages/stacks-docs/assets/img/logos/talent/talent-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b504bad0d124aa2a9bbf92a6684ef7090fcc5e7f GIT binary patch literal 14593 zcma*OcRbbK9|wNzQAQzIU0afsY_63(Zlx&eDnulEyGBAHWF+%iQQ67PMa4C{E(wuq z-P~(k<676n@2$`G@tgnr?&IF~<9%M|^?JU>d7be-=Y11yS{Sl0^D=`#AQoez8@E9q zdNK$^RnABQP;_R!F+joOrr8~RLvOR~ND*Qrm=q;?`i&IZiWJ$765WpakNCg)?MTs` ze+L`3vIqVT^eArbL^MG4>v=mkVbQNpME!eYVzr>NNJR|K$47`Oot02hE801JRR z1r!FCZI?{NK{-%RP@s62PldNivq5RiU5itMZdJQ?L>=! zMa6fbMD`-VThYQB@t3xvMcP_hH=~44PC&$%OMqY7fRE1r?f?630l@*H0r(pw0$l$w zhywT2(yf7jWl#NYTUdg$1v^gUZW6KVDG0Q;7g4STmKy0;;~iBfr!B`Wc+)Y;`;-Hb zO2kGMrg&iyFxX8;bVm)sv9^W^`QUhcMh<PNu5>>E{7~iGLfj~<8#y52C1XHd4VF;blxDbai-MB5}(yHM5=;Ta( zM-cbrWacivK&mfTnj5CAASK$%aMn5=Q0-xwszn_ONN#PLTe*%2bn`D|$P?5_KMn80 z{$Zm6%00Vz3#4o0@gVy=MjJ(QY|mr7Kf_DFZIG=T~nefk4 zpnkX&p_m0U?2=h`gAX*TT0z1vg7EeI=Rtx14DZ^feib@UFC0{B;Ahps0!lpuIle;n z!vRu_Dj?v<3mCPC96yVp2L-=A1nM39IQ|o5*}K1hr2S7ezVZ{>f3k5I|Cr>VfB+tc z90zzc_4z=B>4y$lyRJu1iPgM+#Op^DXoK~Q1iz|gw{fb+1@hce+})I#K?s&#HS{3Gd$ z)#yF|b;_jFeU}eyAufY%A{TG%miNNjRJeh5uMDJ2yh}fX_Vmd39jTrNRfn!#1DYMEPHWO4MZWN12Dv$|3hz-3k4)g? z^kW}aYwA;L^EqYxo>ry>eU=YAxB@7zs~hmMQvFxXHURW^zOujKhdp8k4fjmo^w((| zot&~xTrzV(QHsg-K>H@y$MsKJQ-gk~1Oic)3siN^{6B5{)g!~zUV4LVSz z)9Of8u(d3psjAM@bA1XRxvY+KhpDv?C3e^SIz0K#mh79df9iXLvW(e^d*t#c<*=jX z$60r3`6$LWKTiB|^Yg&54B{Y1bdO9m3Qi5`Ea7RRboqcU1hgiGQs1!Jk(H6Hv1)!3 zqHKMkiMmHd33@jw<)%UxYl}i6J@t1>dsd>sqx`zTwrdxZsTq>&Ro1^XjxhMgJJnx~ zAa_pSx}z(DO7j<~M;Is{-LGB4rb0@u2hKIivW_s2%0--vz_wG*T@ppP;`1gb&fZ8A7dgQ_p{x*#Oh&(NUhM%;~LinaE(Q0M< z3Q(IEMWXUDh$GFl>3Y~#(4u4*ejDFnHUc{;C}^cZ^1{^>21fYWyr&Jx>@+wLc<+vK z_teiG8Jy+XV)hf-5r!`crEC?l=QzF6dE1)7dkxMssgOb~VYplHyWE#eS3cAYFrnb3 zY#Y{!P5Gs4CbE~^Gl7;jQdi|lg*aAy5Q4k8t++IpxUSy5z`yqz(m5KYM;cLW)j@jKp)qbB?(mI&s@-`-uUxF1l@t5r(F#V^@wRx_zN@cf5Q>S5hG(4B>+C zKn>CXN_JzSd#mrsYo=4^DXhjwysr8{JytbPRoX>oMF$+11~A*DL(W_xYy2&EjgoPl zfpy1{UPCq*5=lbiYQ7YW9vSJwlwafr5&(p@ixHUjn&(pFc$e4eL)G=LyZz#T8C3QQ z&Lkg|Ff1vVwDxW4DG*?-n^le1166I`ZjcNlR7lR`J)~T1pGXWdm zwndwjZ?fkZ0apa!ny2LXf8_VvR9dT|fH_|pABcvfLoz%COsXPQCdAa!9F4#P8p2^S zlo0b0+_B-5)%hR6guE*q5z8uyewbo^N+~Y&s`Vnos4-pWnD?BnGp#-)8iAj^xBv)o zpGILMo-|+nFxmdve+BJN8uuvfI4m+>Z9@c5UCK77so5j5bQ;eTS-4=tC8sQr(+~yw z6KH}2fOde!l8%OELL5;n)KnRynYJFz?q_tr*sLidVZJAP@AjM(N8Wk{A5*a>ZHD)6 zyct8ut<*r`uxfc4Xs&|6&D-E_%TD`M-}<(9-lmM9mYwdw&khisTOMX{JUcDEwfTwK zu#G=lxj)^v?6hM{*Yg=`OwTKMMPKoE>8`p#jE(O^!$A`L%})+HeH{;HUi8oUqU*=s zI6eYGu$mLUv0WZ8Bv}5dviSYNRfjp+~pQ`D0iD3H*G)cWBIRe`oddM6_9tJ zL2jFeurtpIE9Hu~fr=VP?NiZ^z4wRp%^BN2Xq-!51Ta@XJq14SF(miS36B}RXwiRT zmCK3~g4Y{pZE}J)wtoz@&Zx1!w0}cBv-WBe>a>sch1enr?+ffmj#~KU`6z6B9uuVF z3KhCRIbVAB4%j}N_F)ah`Lg$QW1}6uBNo9#-ZYjOPW#7`DjJ(r-^dT|&i2CV$Nzj9ljve=xzwAoF(UUH_g!?i#>}$*?9Px;7Ggqu zd$-ZEa;?O8e5t?w$FC+~xAa1{XK6#Xq%B*|Hz3I$^H=*;u_w8MNNAcKCHzJ$Be6r8 zsjzFC<|#ivC-bZ&3)EctgGw~^U_W1zZkA?)17nyyY&EKnI97@iwcS%B-;}yrcdrGWW~kZGEhw#}8Zvru<}3Iqr}kCVnAE1JP#- z-)(OjpWDXw<-0ziZ=AmO407L4iujTNd71ZHf3-%i78O}ImF?<*%6aD1VBd~u$yar&_U5slS5rF+Q@esEA=aoHF0q zQ)BFt0UP$sEu5eJ&i^_E&8ZqoTcweo=S$KT1ivtMRQ)NXUSP|=R_!j(kjY9exN`mB zGTwH~)o%4^ADcY)>tG$!jkkL$0wg1#x`lU!!O0Um}ZvL+ztErdKkqZH7b^SZ)cFW_(kpd zd~wZn@uM(-nS#}=PPy)6p9s2PZf#`jIP-VsxvT)P6m>Fke{sRX6OKwBkDpsySf$}; zzCL27azNYeD398jck12LxEexOCe7__MyBLVKSq3{S2+jI3%4e(WxOM=h-qU!t>w*b-mnN0Ec$g`{xY{N@BhmuqzqW7Wj*-5!277a`%R(Lwjl?mT3L-C7hb zAR4@sE(mr-*t@GKknsa;ZxTXXxgmpF*|Nl3=UwrXgxsX2;cKR>rF^tY7>-n1}IA}ljnsn9MJ z7a`%T!KU0vG&`!)ySio&y0ZOZk;A6H@9QKAgX%*We=NT?OE6wt%6?nb8hjZZzqf_b1@>FMa8qlgaKAfm2*|q4vKuEkb zI&kkQMxlE@xk(MJk35F>aE&V>y&I*A>7J5U<*C7A_1aG>W!CbeZvv!`jsteG=qLI; zb7uzNi};1b#0N%9_DvI;XA$#SJoV)kRPdAL{>QvkB3}h%=pVE_GdLcnvNfB z{l!0k>?*L%C%t*=-b5Fyc8xv_z4#*h>r-1|oRa^Ll$SGwxinllEu|zSJ*C7!4_+&I z_wqshWUpobCy<1rhS(Bv=@s2I(wXHTYSgxeL#x`6KeQ@_HT+D)P^Y<}@PQd?uS9K4 z0Q1b#0rR<$-qv;c*C{2k+x*<*QQwT18E;hjVZIaTvjh;;+^gi^u&9sPsL>czuIo~4 z>J%=*H=-p?Y3sXD+rS}&HYB}*`^eT-#5B2m#PsW`oZ^w5~0W=r}^9{9Xx&7eoU|%MFHqQN1a%p|qG* z$)37!pa6J$;E#qn5lI4%%ie24SV%lmCweNaN-<(zf>&&j$W5Uzp(y(U4PD8s6eQ&` zgi_XspK_m>v-zA!g)ez9=~|iD6>lSpyUuk#P?}cn1(HP&F<*=(R@=E8m-gGQg=^k} zn#~SQU*YeaNSzE1ldi=aRjnF1dVWW^0xh;ErWnF&|HQs4;fODYnz>%FZuO$|vhmD(xVNSk7 zT+LqI*Ey7gr_p-8p{bnrFKx)R1O-6)_2#}Su{M!ZXpt!kj96nw&k*P{Zf!sI$BUR&m ziD76zIqn1dd(Ia~DY`8tO#`#ul$c_^AdLrYQya_4nLTventF(7Vr9Cmsv;@C(LXv& zN#<)oRFhgn`G29ej-)h>NNVlxmoViAG`r3}-N`&R%y6e)NYZ=$ajcS*3pJMk8(c~o zBBuZ{t2Mld|K3M?YgfHVr|c?Q_Y7|`BvOXbsKH#AQV{MBk}B3qYS~XH-wv`9(2gtf#4$PUQ`b`URcb!A=;hVqbTBmUbW z&C^en9-leSoBjR!y@fGFk3(kH23omN5pQ*lK=@6?5nn4=eT}7VdzOt0g#gO>nr8GSR*vo%M zBl6x0s-K%0(>E^T9y)(#nu>%)_;2~6Wfw|_!c?R#jV$+j8h^eUVl6EovwwWVNe!iE zSFyNAV{ zC@urcjlpjhS7u~_i`VeF@0lQ18%Kxa?lWjLyfa%_9B$(C^UsVUT@3j=?^k}sLdvCioChd36 z+QKd+BjX80UOW)t;AGct%4s-J}v2$HiSKuhm|%Jx4M)&D_u&bdlkyo${0B!qe*)FXt#No z%UKrseNkvo0R2rySCTswr`vb}0R{>uY4T#%>?0Br-!sf`ITTVL+2Ov!BtC$RkESrbMO$nbJ$}>6)%mxpU;Cw+Vyi)#V zUihW@@U^JPDPzt5*E z4`Wzw2V{6EG`BaAH#I)KpW0dW9!tmQbC-9QNjrT>5X<+;)#9HOWttC^iFV_frx5S` zcS!Yi8-JS4iK5-D6v)pzc=!N^L@aKQG8fA(%Ay{pcCZ@_1oC{edb*ng@%4?1oC?7Y zU(uylI6dP>yME3X0Oa>~VYE!@Ql3gBMDwa4;UcIY>`!vmIUk=bFOO$)XDC1PH5>bR z;Ey!d@oEfu9?jUtW-k^(-1Y_T+x;Ew#ap%?USNDnf7pE(4^dV7t%B$1MPd2aEqKQi z7xlay2BvOy`01UO`FwW}pN_G9A6P;AC^QQDSodG1y?TSY=5@mKproBVe`Emu;QcWL z5*_{bkTNkWn^LFXLmy6E@wg_4)%49fi#huc#ky-(8JQaRR< zit?g{RMF4OeHv>wF|OzwLr-{63l%>v7~ZZ8Sra3KGUKP{0|Ja?Xx?JDY2eD|hEc9} z0mBx9k>?|VTrDb6jypS;Mu^b~SEk17A|~_hVuoG0Sqd*1z!WZ#qxuO&=xe0=;M(MY zTPia{_{1oP{D_9CBDo)w;xAc=*X2jojG0=~z&8@XT5m6qBV6W9ew48PTt`2lB}wzb zR{HvgkL4ee4%~h53TNSEOm5#V9DVmSz;a@iGBDf@{eqpuv%s^4$I-}`83I6I@;o^z z&*nXhy5!lTkFZZzH*UpCF~bM^Oz?i6PFLMLa0RlNa_~U7)W3ifSzflUYB}0FxDJdW za+0+*yNAq$DbHjbyBIJ_5{bxpX)o_=X7ZpT$}%}}ED6a2|9+F5@&g#8xn%A0NxO)I z8p=HnH`uEfq$g-!j=cP#xF&e2wRh^yu*CQ?al*0!`4Oq52yu?`Lk@W80J@B7lnCWdC?D<-U z?2v8up~dI5pWG2-d_AxQM2(l4x&N}TA)&B_e;@msehgKBQ7(b{Y7FQ^xB}ykf>moy zd?fNn`N|0-hnZ~V@V>LA$|4>TR*Cf>aee)YzZNU9Mw7g2@7>`C8Ruq$V^Tg3h^)*B zb|?&PhO<&E*pD;!_ewC0CrJ=;b0e?YCXY7Q+hx?k?_96zwe#U+Ns!s#-?c0*__m?i5N{BqDDg z{iP55OnjK?MR-JdmxxTVuXutxCqvGE0BphBYgM~I?zs|ilxu|N$neZ<+o)-f(8jhY z*tOdGH3U@imJ&tCFCR#iJW<=*aryGM@v-yivtfB*kbt;bTMw_2vK`!C@S8|YqpQb%jU_?qt@N=T`<^X769hXf12tgJM#j#4 z>!>{{4>G+^$bfzb|BYhN2dt)j3CsI)TDqGnSTiQL z_ETxDTwri4cW+nB!E?-1D%o7W`Ze%-Gp=P;H9LGMRkh$%^NU)Iz0Y#w9E>$POCB^#UPW@!A-_qK#O8HaeU}zgQw{q*G-FNCO1-1y)1$r>w`sjnU9_<-bWcpZ0^sn zCQdl0oz$}NfJB_H58L7&$fpH29{vfK@@x&i(N zHtaJP)-829l;v<0u#4t=NZcmMk{9oM(`AFRNKbZST(PsyzrTnZ`Q5m*Gia3EEwLdP zv#?i;}!C4 z$i2q)f2KVg=DbVpd5fI!hE9GdaB5f_VEf1eZ+vqnIsNsRRQj?QOkbS+cybr(`k@fL zy4c%;$zrk_(?txIByN^G==$@hQ~<5DWUDUv^I0eNfg?5vvcP3%-8ZUl{=w|ZYVZui zSeOzsKaR+89?lBeG@r#wg}5!@Jq)l^HpNc$5JE5>dGVG>Dmxg zxiW2qqy1c9od4BHjcOaA5mHe`QJz9hT|nV z-`CZ21)g=NSLFXLQT|b3IR`WT^NZw1Nrl*t*aQLelzA&2m@JP3g@7(5_gRHpsrH<{ z;d@Cfm5QE;J7iDKbM1vkN-~BB%!POd~`?s!$OGdyF|!?Lt=f# zur+hFs3Dem{}!;DGjRC07){B0P3IyUJP=AFEEc43^e3z7mz#$H%qm5t^}Rha#bP-) zBGX`>p}PkBHe-0{IR=H&nh{&9$c>ZvB0lG;T(xdY&1w{D7mC&xFAh7uHiceC!r*Tqr%zecB-Wf zN%M}7{LpK!;MGzfW|vcBkW(vnk1YNMN2D9=BQWFn%y5sj@bvL-HlJclqZ#q_`6K;e z<5Y?F7iLRmgO#peSI-XPFvt#kSg~B)a;AZ`0WumL3oQLqOQ86}B*@065s|I0h)fQB zL`zx7OF^o_LRz}}t(satQSEmexMm;QgV%sXncu4ix9FRd!Xp~>4}dLAXP8O}bT|o8 z_UNAJ)!g*uk`#rn(XJ&R>8a@1(m?78!xED@glACX^1U5oaSfF`wX-Yk&!0d36>G&E zv=K{5$Q$H!i5Lib;IwvL^M_*Dy(c*8r~a>F4wDZJuil96|0^^7`g{f$hf;VH#ULZ_*3-rm9Qq1$+b+b9_HG(huLo^;^2?&oI6@Apznj zt{VI)r5?@t(!2m=JGnCdO9r88*O#&smW+)3DpLz~_1~Gc&_3NV_9_P-yOM5|uhyL> zGry!&y}?jPe%fd{uUQzPZqet{nrkf=Z`6- z4*f0$Fiz6_lH%A^jeyQH!vlFiPL)kBuB+&=mnA7#b#K7el9|?ySG}mNXxU1ybdjZ@ zCiA0y%kN~+Gm2`~4sqJNc-!SWy* zV6&z*HS66Or-Y3C=6U?W1qUXinD*L`Z^&rq(N(iWvxe)ER*sbUR~vSfZ@j6lhmba1 zwuVaPDTu}W8EIa7XzV7pY2x#m5TjNqm5M(kTAPdg?(a4X~!4o?dxDT^>T!apO z0nxx}yH9?PhmJ)p9K6cL0H-%nLK$qo#@KUILR$x7S-gCwf5&p6>^8CXz*A18pp}K| zBm-sncKeITdk>ncMs%?`#a=&Mum&B<(9f>7vp(W;F(~*e_Gw%)oLg1VV`m}}%k zMbt}vEZTM(#$Q95=+1!{p|dS$ulKX!BR0J)d%1-uJ+VGu7zZx`-WSyuvt# z{Ag9$X@YqTCLv$oZJCVw3WJN}sL#Ai^~I0q409RBKmD2|qZ^&h4V(ek$Q--BaP3vQ zRPq8=ght*0vN#SYzr@$g^j8!5c`vyGI3oZ;N5EMR>yh+gQcFxhD|aV??lTlY<=ny( zz{6)=KrE^P)!vlX1h@Mft+*s^PGo_|*W!@p%ww%QId~S+J4UY9YnDJ$uN)MvJPvxc zCP@D??T6Bo2S;%@55GdJK5F6R@hWDy7+Rg>!-L&gZ2QdeB5dD>P%kS0%q%qUzoEP> z-&$T~f%wt3B`<-e4d#U8H5W(vul?~8taRo)K028q+CIjp)ebma>A==`$cv@kbOJ58QSG#|!85>?!own{#jLH8E9{F%vrP4y0_XcU zBDv4dd^70oH*TS|2;e;ZcYPU4Z;GSr7ubapO7m9zBZ3QUFJ7ORM$(@#$B)Oe)4 z*$^XBJg_?9WQSin6jos_ILwdJ%C7-Z!!2&90eq)nqgcf@{K1J&=U>;QZv6oX7~RlV zy~C50gNLtA>=U&bNw2LX({L#| z{6isIa3=Q_A6MTkw`Ob~us-lLfbo-}YkwWzXVx30zVNC}Y@u2CE9`bMY

    NFKaUm{JEtggf5T#O%g&$p33y9x+G8YRN>>Zb4`iH|e|kGzv8o=BuQE;CuWx0%LemXax`~eG3e=DVR^tYUNiyT2LSqcx z(l&pXKX`@q6i z!1jTMlnwZR1zJ?Zx(L7IkcKwm!Xc%B3O~A_{UP|S^hEbW^jQwduui+>G2YhC8t2h1 z>F9FX03oSDCb?QwDcsZCQ!iRL_ye>oexXMF;2;lKX>tJj^$O;LTfxHG7K=Q1d!;84<7F>-7^IRkw9x8>(e!DfNZ^R9EG_wP( zB(z&<{JGW?~S$BBd;wct_ zO}`?~m8C$0$Mr~kSkVD)-V=Y+k;NxoWYwM1=YAbkd-6dK=H742oq#5Kd8R_Ps~I{* zH}DHy0nzbBqaR|$1sPnIv_mlGwxt!sB}toE7tbz)udRRt&UoBeY&ji)YX&ohl}l1a z(Zqa3yD0%Z*gfy9FxRu%U^=RalvzAYworDLuiipBP~E>39LT!({H;t`8hRA207JqXOTaNCw%+ej3+r>ai+=@G(z>s{Wx+EI)Gi$dg%SjK=*pL- z*f!dZN@b!K57%nQo164Mwx??$RD8`I;$m_JShCeUPAEH0e5?sFhlmRq=5UX9lOqSO zfp?hh_4^@)N))6ZzsQS5`9YhnT)q_YtM?=y=Q8CeU&+7{e>Ndg=I{URiXGHNqgFXC zuj4PzGUbcSKl1_yJc5qyto?|dN=Y7~`T6NLlJBcu8jtAQ-LhMz=0oq%JM4a*R~z>g z_P#n~g{InmHSgBD?D+Yf3YDB%RKVvnMVp>CIaw9=Jy-cbPqqiSB7f~&U7I~m9#kyI zaHwpd{p9Gt+!pxb)AN?fPHjSTJgwn9tGeHvE&HkB+qW2trIwzNii*2hYe)L!Fa0EI z?>hKKR*L+HU%o;YTer=3LZ*EF_L=&4vOha zU$wK&xz?KyD!nHjHXFQboniR)e0(ZJWT#&k)2U@l;P62#MQl zXO~iu7D?1b;Kkq)neV1A$Mt#|%818rX{JO*v$7M<$euklF}U0`cyncNCi`dAb$A!p z&v6NAftX$v=9L8juXY}SJ9utCRm6oF`Q94g)$GlOl6xLBCW_edT0jx|#{nbn%BH_q zkUcq1ea9V8Ze$0&i{DvFhe$}YjVA5BCvlw}^K$k%g|by*wyzY1+l!w1FHP{c?(|+5 z9;$b0xyeWqChw*pnIwH0sHD=GFHCjGqyVB37&Kz7M=t)`5Ks#B`d^8D=uBoQ6q^o& zyXF~*E`P2#jimVcG>m^omjaUO(nti;(^zFgVHJM<4gX_Bhmv{oyT{Uy;%UfH(0IkV!C(C#q1;EtZ;UX2;zpY=ExL+?(X3K7 z(AjdJ^&Q+yD#hXC0uoi!Bq_wag)L|JS2}*SJJ$9A>}V%6V75Kt%qeGD9_yu+1O= z{b&8sbsXf7o7mn$a`_)6i?vIC*H56;O&UJgmktCvfz)lmk;5bH_iH38Ujy*vtr50R zaxL#p=c`Lzd;_S$krcNdeZ6HlFZ&kA#iS|*9k-h`W_ z{2!VKVY@Xi&`Nq;>&MRScGB&g?Ub;S4}$Qm)6g0Ksr%d2&BUm@rgJahHWwq2d4#(O zFx#xO29q%(pyYPjP7VHBCI`YoN8kWn5C>8sPdua#f8E7S13vVLFnTZbKLZ5eK{;E3 zs_kXZyGP55pi-Eup4;snBst<5OO9<(I)J~0*MN}u05Lzd zV@fQ!Rvm*<$Uk3|ZV^~+d785zBr7|aUWKRt;*)RWN zjSOEBeH=Uyxq!Nr{94m-dfjvt`6J \ No newline at end of file diff --git a/packages/stacks-docs/assets/img/logos/teams/teams-logo-compact.png b/packages/stacks-docs/assets/img/logos/teams/teams-logo-compact.png new file mode 100644 index 0000000000000000000000000000000000000000..3a4f4990533c3c92d4bf4a491360f5b1a9457c3d GIT binary patch literal 9798 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 \ No newline at end of file diff --git a/packages/stacks-docs/assets/img/logos/teams/teams-logo.png b/packages/stacks-docs/assets/img/logos/teams/teams-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9ab76e3d7ee815f6a7373325844cf16c18f2d90d GIT binary patch literal 16625 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 literal 0 HcmV?d00001 diff --git a/packages/stacks-docs/assets/img/logos/teams/teams-logo.svg b/packages/stacks-docs/assets/img/logos/teams/teams-logo.svg new file mode 100644 index 0000000000..15e2166cab --- /dev/null +++ b/packages/stacks-docs/assets/img/logos/teams/teams-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/stacks-docs/assets/img/open-graph.jpg b/packages/stacks-docs/assets/img/open-graph.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1b7f35b4c8bb576cc04f654f809f286922518587 GIT binary patch literal 101740 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 literal 0 HcmV?d00001 diff --git a/packages/stacks-docs/assets/img/placeholder.svg b/packages/stacks-docs/assets/img/placeholder.svg new file mode 100644 index 0000000000..0ffe820c47 --- /dev/null +++ b/packages/stacks-docs/assets/img/placeholder.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/packages/stacks-docs/assets/img/preview-long-transactional.svg b/packages/stacks-docs/assets/img/preview-long-transactional.svg new file mode 100644 index 0000000000..848c1db52e --- /dev/null +++ b/packages/stacks-docs/assets/img/preview-long-transactional.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/stacks-docs/assets/img/preview-promotional.svg b/packages/stacks-docs/assets/img/preview-promotional.svg new file mode 100644 index 0000000000..69b8c5ebb2 --- /dev/null +++ b/packages/stacks-docs/assets/img/preview-promotional.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/stacks-docs/assets/img/preview-short-transactional.svg b/packages/stacks-docs/assets/img/preview-short-transactional.svg new file mode 100644 index 0000000000..c64f26728e --- /dev/null +++ b/packages/stacks-docs/assets/img/preview-short-transactional.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/stacks-docs/assets/img/team-avatar.png b/packages/stacks-docs/assets/img/team-avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..55e774a8e069dcd8238d73471ffe0bdf3d21d077 GIT binary patch literal 516926 zcmV(lK=i+fP)-PDpGoaJ;t6u z&k*lahAFW?^?Y@YT&c?3JHp*eKO~6H|L6bv|NsB_Nay>H|NZ}T^nd?F|NEc*_h0?r z|NP&-`S+jb?+^U@XLbMl`TO&Ke{z1>zyGQK_4jl3KRx{Y;vfFsPrjdzzvBG+&zxWV z_j}bp#P=Kh{SH09;_nYg>lfco`tMKtdldCE@87x)>Hda!O8@>1-=FyR2km?Ye)8k} z*?fPZ^!<1KF5x@O&-8r=^DXk(<_q38XgqO#srrKbJbrxr`I67md!A+etJ7bE&q4RM z=8y4v-50SJ4F384*!LZL%b1_d`^)E-+)pKZHqRQv@>_4AKF``#s#RU!s(Q!2Zo*K6xg!c9p;GUa{-TW}V;d zqk|Ld?$&qP>V1rSdajkjM?GI>t^5CaXy?E7?;K6;f+JbrTHj3R;0mP^I>x5rplxH0pzR|#}_VY4>jt?^u)`KA1U+MCqR zNrFpT+#~Nz@$=|d|8!La^}3%5>VN;h@>3}Ab^q6)uU{`~{+ds=)j7{neCog~!nJgN zRv6mlkbiwPKUc|FyX@C3T)*P1%CuGmD}j`A2UP@qY2A-Jb+A6yX&~=6dtASQ$HI@F z@b_Q-Ikivz_t)-n`zr|M*GT(l;Nh$Le>r`8o`U)o8QOowY(EaJ#{YeE=`I)jJc(4t z<^09(_x*kHb(uN;T}u6zzvX}bp72Uh<+CEsU*RP`E8O=e?pxvCRqnZ#-l|S`no@tu z`*!(tl;88?HP09HT~B(eAMaN=e?C9d_t)KzH(zT0u)Dc(J=FYUUXT*LviJR(4?idS z{ZRHU4RwDRALFW@%-Z5SEAXB{+6U;pc6C3`uj6mdHQ`-U1#lZS&+;?Z*L=77hu^nz zo}`U8(!a&)*nLVcou~Sr4W0|k+==FmXsmkIJIyEbb7Ia@Rmzd?<#w^?zAmQ5Vh^>u zCcN2iP0m_!{$v_F*VE`9HKmkaEJODb8k

    RjQXgD=N9lh`CCo>iNG@(Ks{3BlA~* zh$CLl2hM4UCnjTg`v?Bg)&H!u`V7XY{-ZR+Lr%-Ylf-#W-{0$hB;~>Wtxsbk1j|@g zM%M@5d-1-Qcwzm$O$%#_T<+IloY_yB|FtrcRi?TW5s}t>Zi{ z9?`kYRn_^zzt)E{eh6Q#jQxH~5aF@h%kJ-!*jU53r0(-MwLion4?(Umb>hQh1r7(_tdw;1Mxf=Mu>XN}ci;Oq*SB1t1h$$2N7=kb@%xell2%6io)g|egFB@J__H>=?Bd6-Pl)hO%GTfi_gn-La`0PVK+Caq=R^}0p>iO`s zsyZ27lPo*f4-6Xd?JhkFOIXV1t6=n_I?F}Rwc+!$g1E!f$Hez|ooyr6i*`2|^EAwh zU#Up^9^&}2&WrmRLSX?DJg76J&tpB8Ts}abPo5`u?YkcAqS|CpF;*^?mc#$l1FDM_H!A1&BCvla#MUT{@rxVYgeUj=39R>GN9nHu-i&UrmPB{3I@Nm4^Qq?3 z3vohEIKR_43{51ej-Xl_x5&$^tU8hV`CUi8fn~U%zA9>YA?iC+{gyROcjN|Q7EbSh zY1iCUMEW%QQPb5-*XG^-%w89#!E?Q!TFPQp4fao6C?q9xTbI+uR`1i^Py{S^V)Kpv z#1zCclV@WZq&^XdRXv#IdGVBWPEOl{et=-a*{7cuf{<(Rh1Qj2Ge^@wb@!G_YaBF} zuYZoL8{V2;=ey+lZq3hEU+!xS+`9QZprlU9&Wy+om)!R%^OkQjf8&V z@6%`zMt=U-{eF6dyK0ql>K6X@oUvIa^thmk%zuK*`ZUZV)q{|==A>>uPkI{nl=D0T z)^%9mRKuw)uU&DvKR#NG?;=x7izeI89MLntH41Bd5d%vX_RM{(vVXiBW7!q?!2p$c z_y7CDtvyJn_FAc8@49hj7vA^xR2aMU>_VK_hSxcW%HH19tNU*Sv*db6+bWJ?YQfx< zr{*SoMPW{76K(xY6V>fV2_@7G^Ygx^!i`$37v3d(N%b%945 z`z#bt#!5cL;W@a^E_|y!u@&HULMHb)>lC>A_kVVkRywE3%5$Xb8cC%zg8&n<%16= z-EOIe#_sanJ$ zF8}Ia*H-^A&;O7A{$2#C`VO}|$^p-j%iY(r;PT?84UbpMwEG)wfI ztm#2I(bcWFM$K_fk+$_-MI3LTi@Fmu*U%R4=CHI?a0~u<_gLAeJg8n6m`Xf;{Om>l z7&fuOShX5ifO;Ta@^tUnp}7*&EgBCaV_KvxOMLq2sXFg9(_9Uxo3&EsLbtXld1t<> zwA5dZ=+uAeX76jm{>phnJmA_t1U_C$v$Zy~WxuFs>RWqg)75*s%0KNfaZ#Z#q@JbAb*@EATktl=DP0c!{e3rUlVY1{KNb|K zAc8ouO}?2LKr*J6KN@|9&QzQk^w8Gk?bKMtfR1~x&iilf4V@Y+)R6YEG@$$a8&`dx1#f5dHyg^e z@~z_OO@VJUiAx8AF%gYc)1^3I7XWzD!~Jwkc6IWkm0LglKnCwkCj6m_SFXdg`kTYtLoT& zzdz|K=s%jWvgBBRVlCAi!v$4jaG}C{T=U{$vW(GkP^<{)MW}$*HDkm>}aSfldoH9wpPS9tmviK>-MlW|Yxv zKuue0vu61BCxAM(F7&5CI`627u*=^BV4$R80RMs&_3(7{=vUbB&tmc~p^CvE6z-2d zWblq@tj+&^7N2&BqdgN)(IK1z2nV;0ieRInn5*H9nl+2O?dBA6_r6fdSyXIc9C20; zs;b8Rmgv2(j<*=#LE_C#?^iZc%f$zmg!D|Td_pF2Q(agdxp|*|Xs>#rO6uDhAWZ-3 ze}NUxW)F&AXMviXTn8YaGU0$#%@h2Nt^5OP)SPK(V2*R*2lII7-9+!ihcMOp8jh2) zd?9n`L496ke<}0q=8O5xSG{+o1SI>HUQ;Z-za5HkN=>?&i2U{e`gH-=Rl9F3mx^-p zsx$vzW{;?Kd{ATvbGEZ!?DK<-{c9et^WaQw{;1TG$rQUY{y9y0%8O>l$YJ9U!VCuB zkN=qT15jOBQ04jpR*Qd%DQA>N=Ld@Ux4?3V4ZlWpm3WaqLE|$^Y6@h3RCPKahvZMW zsRY(p`c$nBP&LJU@X`A-x0(wVP@jfSrDr3%NV95hfVpj0&)sch@>faZJuegQ)Wsw| zN%FY-5@m5=_y@W7JVzyfBvYs7+uF+0eLwrgMaJ{vi=eYvqghK_auN{GE)Y}_YHFFD z4iF79$Q#B_Kwsx#1}h7rlwiLGxo_9Q(bg7gdCs@Z(U`VM+MH+CjG{~A{xhpo$bVOn z;(~2kFI`jj`lGIK5s9Oq^ZdW=%y^0D2RFu#>xmyV<2I*(nEDS^7Aw+6{>6^A8dNst z?MblcSnuUvjMRessu7}gE16F3?+ojgz6sAWTw3h+4e9zRwEpiO{=;>|8g$K-7j4fQ z|69nVn_|nYPSn#{^_tZH_A(x^_Vaa}o{+BMs}`WOrs~bs+QSWnFJ z4Oj0O4FXB9VilN0*h<*!r>mCJ7}%Z6iYzaI=6G8L9IP#aj?IHv%;k0(ed>KU%>tg% z)2UvDQKs|DiAjrl{A&sM(RB#tU{LSh48t(}rllNi4p?V*_`{RvLK`X>It6pW0xpFs zB{4rpr>)o{BGGCgY2UT~HK3c*CRmIcHBl8hU_V;Lrx$m}y5s2yb{eaDjc9P7e|^b! z462GS^aB^wb^(Fv%0UYp63fJV0lg}O&=TZlic41UXrGk3$9*5)R>RfopI>xdmpW_T zp`n}pA_M5v0Bn_oekzwrtuAnBo*~JLsl60=8N_w)57nJHM`x?e2=>>)n2Uv%CUaGG z`e~T+ALz9k-I%#wTagsyZ!O)Y%sQ`f4)cEe#urlYfnaqe%xjD<*UTIzRq+oELcE@D z?X#vUFF^b+$dnPs_PQ|05lfm1V+Lr7Hc9v%welkmZCV5rcWyc`8~rU9)SbBWu_irU zd7IOC8ei*GlV^J#3C*uM4YStBez*nZn}0{KsBiIV@&jMFd1!11{ma;`RO$IUE}q~V z7xx@(vjNj81`V=)@Y+ffkD{KG1aC>+dop?x&b1(t27LX)8v^qRT!Mn7(}y|zvt?8u zWj<9MkLlHQjempPb?{Q+pC!!cTJwmq51N6vi#+$(`s8ZAsG%Ax0qbASI`i3kW8r@U z(O$cxsvFJ+C^`y@NG8ZzL+RlTZo=mj_MpdEnuSw|(3afy#pDCxfJ|Io?!Q13V%zHBWX z6^7Q}0($L2A6};H%=n@dlY3-=d*Qw@EoPBScZ-LbSdLmhd5KFAuB`+k%fZ`{=}@-A zK}t!O9@yaz*d~{wh2l8Z_kmzNv~Jmp5vn!)K*_MF2=(Z4aDdT^a>#ly*V77V6^6S- zdm0qEFi?ZWd0lE;&SpQVeA=QlZs0a4-b0kM=vwx1nnUiIlGuC*E-^jk$|+qi`g{f$k;Bk2?*a~$u;wJiIux2cEP5=PQTBt2Y()SlWnNJ*<5O@UFrgEnJlY$L`!$h^V}t(@QXRf z#M)5Me^1inh-&F^4VUodqmH!C{(%w5I<3nmyjyZ`Z$|fDd#UsI5jFiuC5{ifZho=- z6tu=c+C~L_$@Ub8O#RIXUTZ$mZhfVW{-*(OAsgH2;(b@^Yfob@qaX9YST)a57OY?- z^1v(?J24GzFfW(M;cAD-<@#qhmiFuxH2^BGhA8A!Yf3I*`)OkLx9WN|VNlyxxmG7P zomsilxNYodf%yMo6&EK5E$W+Njc1{?f7~j)WjWnRg^sQoG>AZp?ekC9yeCx-U z-4D`s&ae3r?vWtU%0?{+ByR(Isk$ z8OmT`mZXQvBJ{&jPnJ)i^YlANJQI4Lj@9_ z^Js&L+x3GNgvNVuVjrAdL+d_;q-yyOuP)u~b}xI$`}Sp`E88hukWEjB*pu^yQB-x- zquzep4t+Kc3YPFX%cki*{f(sdR(a>Z(7CrQ8P9h&vetSC0$L_o=a&&5%T7-J|BLMO{+b0+F7f)}hu0ajh8I{%bT9$AI#^xY_j4EF@Sivovq3H zdZZ_pB*Io*ZL7-$#=~ou3UU)|kpv{!3#Gd)ne`uDmWN{QhKRql^fTe9;@Hw|NQwwj z&+y0PB5Z-6xiw!Z_+S{1!S8b1YCi?|Ba8Yaxzt z+H4lB5-`irWQ?iNX5qWq;S*)sa-Z-Idy0>xfb6(%%Wt;~Z|@}&s7KoR#m~FrX)*8N z?z)lXO@3vOO3H)|XM}#NQ7Df&u!%e6`sc+4rgNOzvqId_5HT;Kx=3C3*mF%%yIo;t zrSHkp5b*vA?Sr)3!IW2n|Xe^+N&THMpN~iM4?`&sPV4BMY&WO zYMk>Nb;5Z#bu9ccEd9=>>vqVGzW1IB!`0iCO}1BitQV0C2h3I@ikhxBFGx(|`r(MJ zQihxbuYEoNQV&4h`m1(9FLeOW z!@HR@Wga~|>1s=bWK==53Yip#fFLBWU8Q&r6_Mc0%0 zx>)AcgOxEsO{1gBu$3gK1&HvB%Se?+%9?cvU;Vj_)ov38KaX9|-yQjjj!50Pw~B+A zscPg;gTgvvuA=w+wnK6GPowzs9}1$yCJNpx%l+)N9e7th=5Iu&Qrl*H?YU}4e8er3 zzPL%4(|cE36hupc#Qw7zya8DU``kq>_lo7Xn&K<2&oijzoVWF(a3`)=P zGFl`C4jTmbGY;%gmJ7ndJGFR7fWd6M3-XZ>3lt=GuYS%Ns3;71ZH=C5q^#HVaz&AF zNK0X6j~7;$gH+Mcu>Y^7W+{CIyO(FuDlxy>h-d84|bpUt@(SF zdIc^8)Bt5JS%#{~wF^OUR8R3(Ioo*zYtPy}txb1=;OJ=!%`n=Bp@YCa(Y@_FazZ*~ zowjuIKRNKPO!XdP`w7mPK8&)W!N%@ze=SwQR#nT;cnJ@{GXa$BnNCtbd(e8WK>4|N(dYYDHhfucj%b(aUJ)rvN z9$~7^lmoX4xc~w>NThgGxv5eFGru(SuCnzqB|8)tNIx)p#@~J$?<*h2B8s`Heg(54 zpGtd(JLZ;NVv;qo5?YI%=1dbq)k8l3nq2ac65~qW|lN!1V3k20{_e3clZE zsmfc_jJxwuI@9fYEilcxCLyuGLqxoUfT1mQHe z+TDl>s#Y#R3P6v0{)#Ss*HuoZ`90Swo@ui5-QooS`Tm=OiIv2VBFfPK|$tE_LXEq1!8U;N^`F!zI%smo0* zq;z{p9)}7<4?q1NicRUWlih||Fl3dQ9Lz}uk+Pels+lvpo*`~uZ6sAyDS4U(rX7)1 zZFj(e4@NG=aVq8qv{Jb&J_4hFtt3#Ly2YW85} zh&}Mg4I2|4x9y{~bc82EZ`brpZxzVcN0LM2ElYzFE!Kn`W@-N#*F4jYO`M}ha!ZeK zs;tB}y4<)M@4Ib5#d?C|SCyhD3MZkmvN=?~VcTHv2ftzzAEg|K(Fh?Yw{UF7y{n@o zmVwKpclctoJTZ(3c%1-V`N0)4agSt#B`@Z{%8j%po&p zPP2IRsGXnXbwH!nQw>$3Xca~mZ2)MZpK|2Dw^wh=YSqZa%_0#|EbTMo&Jx9BaI?pvT|JRRK?{f6>#S^NYCMAMX1zjl2SMyd=n? zfLee9L885MPM2fX>9|~#C(IZFotz>dEPPlsQ_z2n>c-&3m!G4yCjyfo@lxh();MB$ z0(#Rw&cn@Rp>g4#%4NTgOQ(mtQDAgbI|r{`q93SQe)t34xEJ1DRd> z75XbqGhiy>X8-u1TIw?iH5}h`+C5r2s2swpDbmZM)C3JcNCRnire8dP#U1i94Is0J zK0FXw;A=9)(Zr=Zo%eYn2o{y2`hoUYdc82)3`gaBr<`n3*f`;Ju zi7@L{`zb0b3G+ko%M(GLt+~eB>Tq}Ki{yI~eH}5w%s-t8vJlQCC+@vq+Y*#b$ezL2 zgS>TZ&#x-t2$1@IL|c7nKuq;!fQSTfhtXS!FzP{OdvtN8iuo^ zWkcPsywQCnBzvRXwIIWgtsENNzM)IS(0SW`_<`MyY4hO=UYyr$FSAPwEY|+kifu05>^XF_ zI4=8ECL}S5-hyu+(?OI+D_p52%g`fNl6qSftRC(?rKUfq%kKnLpW#h-? z#q$08@Besg*zN@<5KFWXO7)f%S<5t*epRfiMjI8Vi%L-x{ZSXcBX2Saf8-?%|lda-qf1}!ANaDc7EizSxih+RiW~Zr&-~9Gm z?c6v&#QQ2a8>U>>Q;?%Cdb32;5rvGYUGs@m;hPXAz_SeV)^d0hZS|~9LO7>B&s6!- zJZMwN_vNDwWTS!U3BBzHgLh7F`~1K#F%c-w4}JK5U&E1eh|J}mMlmjV&%I}92s9O9 zGohl?H0BG$FTA{f;P6mwU4mm>wUGKC_wh?3@pu|(64HOMAid4pW|o@Bvx_uMA6R3n z-j~fE*E6YXc8x`^bqO_%8JtWzxguo*l(W37UQb23rhthjTTM`nBUY=oAgzvBBKnxK@7V6j?-~^sp!sD8Z86LNHUz$^=J>K zi|RU)f_!1AO4l}>aG)qfPkW2P+y{lIHUB2RiDHKErZqXOBH6? zOB*ICsV@Bk zUey?t{8R45VzQ$teQy_kcPE6%>u^@5mnbhO&AqOj0Xe{|Te9OpNHjT0DmCJd2(;~> zGSfL%zohHwewGyvcV%*;%5p+^6hAyE?}tvZ$&51Wk~s$DD#g%2F!{QMJ&*TXOEJo( z!DGzawwANXupCJEmJo~=N^F1H{cXGznUMF;(!ncbo90a$K7b5Yk1t~Cu=_JiEl1Mr zJ0x=Pv=3{L1*^`SJ$h3Oe;37*_?EVElu<)_{f2rLyW4<61eFn21)|+2fSKB~XK~6Yzavg67sfGZcI%k?h->jCER~8?gbf>qehoVs)wnMB zYg(w@(>^QMDD+S}_4_E^*Yrt`FqxH*n5W+MLOKKUgEebZIU)_Dw%F%Muk$-jEdHco zoQ1K2qT&x?4rPb6RN*(2pu)}-PeoHPt4VPV7G^*C>9Te!q7ie~%L(I%vtn=LqLQJ< zv;Us_^5&_hKkrnAyX7qUwUqqyn|O+NK#S#vVm2|`UyD`ay0fQ4t_+uv(t0}_%&j$* zz_zx&w{&)#MGZw1=IuA+#kwiZ@C5o;?ex0*SXbx`NI~JpNe0LN^d!1izho8_3BL%S zaR{hi_Us>HYW>64 z*p^f=84vzL%TlG)`}&XO9F~#UUy+bh-Klj~DkYcHjXQ@z+ZEw1yJy6l z9L!uqOHJFbqb{jw(XttgI495jl5akZl9rU>w6bsAgLxy>ssmOFfl(!Jl?c&|IwE@| zw}eJFK$7llx;kO%&|lE>jN0@=j$x9r2(ss2nPd))YX%~dUOZ1~7A{avt7Av0^HsT3 z3al^xv2^bjXE5YO*L9mUb-aAB7Q<~*l1KjP|C)#YS;K*$n>n{`UJe*wHI5qt+XYOD@~-9U8Fv>u}IN$%mm8JYbgtXFtwNY zFZr9b(Bd*@Wq|y5pm`11V67x=spUZ)MaP@i`w+VbY7}>6_1afJnRUY2A^5$^*S;b( zZdlQzSXkZ;+r@5ysn46`cf1G_>5XIZQ{~nlOUt{Y;wa8%yGeqxQHofd4FdjI;v|oZ ze|(AnFKuWSe+$|D`{p$->QMF)jnLx>K&jY!(aG`RJNi3de=sH7FzwM&G={JPk@lL= z<=7;6$V6?yrr{cU}^b>P`_s{oymE1IpYpp)ckI>Y2;q))4#ED zAhIbxQE=$InRJ0}?;_Nq+8Q=Too$d5xket}1o-kJZ$~ zgZ#Bx-o+hKjVQ=|sOh9D$1G|SKTQNZpuf-=V>aD^OUvQ*HcwlDAZ zzXN<T{1*wZSb+c>Wq6RZ%vnijHfYsm2EjTo@Rksy&^% z6vSVPQ|HqK0V*svZX7a<2cAt_SIUtm_c9MgUl9xcW_DC%Cv&zE!{8&0XN*v_D6xyM z_3~8weAW$?Y7-+Dsk!iV&?V`ibodX$oQYaiD$m_Mj)FuvSKyt_M<$ zQzY{I5|`>7KZh$7uWnQ21ngjsJ(m0Ya)*eISK8K6NXEMhgMowT0;nUV0Z0iI9%g_a z0y{Mm>MlHyPjCmSR9jf2R0hEPGliEYpml%7fNt7+u~bq=zi1|M`od^ zjkVEO%Fn{$XoyZBkkQ@mSA_4&%P2B$$Cr#=0;$9DT;HNW>DL!)7!h8&v?8{}Bi6#W zZdeX+1BUX1Hufztz2{RC#Nnk#59qhm5F`PmkGi~#_#B?;oz8XcQWzK$5&y866S&Z@j4*L0DZ>DI=n zV0>#eaIY(xK|J#lF~~=8=Y?ucB>b-f;m@lK8-ux}aMGDvL zszyItFTmi^h?eA%nW$X_B#H~bTARLRIsd?e6an^Am;9Z&T8x@|U(wDg(*Ut@>RpR_TR8Qb}ygTk}(jWt!8jdJ>{ak9kQ``_cwb{{!_ULcCg zf0Jo7G5&Z;-oO!)YdXIt@!X}MX9=kqW45yrymNXnecL< zE;eOq*KlC*teFI_h-*~5bi+RqVvW;o;OPvv^tB_ zRYoi5hb@&i@2_lEP-M(6Dm)%LijyFbYg!HGuNj)p<4g@_Yf<9u+ZkhupoEDp`(2T_ zqG&Ex1h7dV`sydq_^=h^LvujIl*6Rfn;{CcN&}**w7vjtPg6moyf`T@*I>cn(?|*| z`Vwt*B)PqhMG1)@)YY29Oxr6;Pv{}zt|LY5j+$U_mPr8GU`N6AY1vwg>)YmNk>Pk& zf$6e1Z!T5?Vq)(w&}q-q0G0!m4|VV2>t{isdW?xYon(RpjJ#2~BeaXT$H!Vt;WK-P z9Ft7-%wh(df==fQ@>GGjyV?GFE1zZIz%pim1@JW1Y%Eey9G06n$b~u(3enfm0q2VA z`fc}W5$Va=reXK!!dsLapLj10kl1>`di1MIV~fZb_)F=)*s1bv0P4BA6Phc0C;4mm zekxL1r@TSg&hy7x+lpFoF!kiszEL}~A`?$}EH61Id}-ST^=nfdGi|L1c85=}UHd|E z3n$oc6%Piya@9`(SRtT-gv+VT>)r4_7oZd1AoHkXOrOv(xMi}O@#Eo z48mXOfw;Hi1>*gf=-I;LyvB$$p+oVLS|u92XjY0#qf?dHa_YUZl2U1QYEUmFk5xgC zNiW&Uv{h;^VjUWF=>Re-QO1GNNIQj(PPM$havAq05&`Vx`=*Pw9qtfV#v;~%0u2NLrR1J#gYct+mp|AA1y#?r# z*g-ze8F}FOwS?Tb#OQp7-#)0fR*qGr>Cv}oY|Xh8($C24yD;%0i{2JJ)~!EQ-Xv`q zk6s~kw)Qq0(pj?CRr}IAS!}0_)XPm#e@YxdMjrJrDHGFA`XO2pY2i3>pb~CJ;B2iedUIvOI=B4 z=O&_*?`UTrGX3;$hOAPHC2am8^C7$6ui-=IaKiJ;1M!oExR@|JOAbw8! z!=`^|>pBpp7~LHVUNu{Gx!H=J2uD=ey!dRJ$O|b43Fa#s@W^f8D5~+t4dRp=c6(`2 z*#-Il&tdr_+9adhOUBQ#dghZp+rEl{~{{huF^a)^>qs_b&p zNlHMNTT<4dDdt}`t57hjv*Hcwuv6~3Le4Bukn9pqz-`4LI!Ka^7jAbr65S>#eD83C zQ>DkR@C7I$4qQOYyqils)cBvyRrDe00+FLyR8u=J2lok8t>XEVR@S;E8--p(f~lX-t{%Ia`6}aBFEGQtmy52I|S6JZl{9 zbxhHKNQfKYQK>C1*A9D5_#=V1vUkdtzj%l*qb=_Ew|a9V9k!X7dw?A^XTIsJ`#2`i zzmcAmJ!6Qcjnz6Qz@h~=S@dG_3&Thi6Mkmh5-s~>AU%M2O_q6l~ToX>R z6yN+*!G|WMLS><$4!@>})jA2W5!`ZLAPj%7MI}SA^I!t?L`xWUy!2DRWcC8<>XPmr za-)Bx2WJp#8*;GP9@(%Y zyVwA|+k$-v#@Pd7EwyW6WX9*TqkU1}W1E%`XuO*@r%|1hd0EYME#DE})2&}pn&YO8 z{?I4h^QCOio&W5Cw#$;9!b^ctitO}q&DUvi++@q?D!VRBZv?G$R)SVQhl?>BPR%uq z6rx_Ll5+GI%N4@oA%zN-aYSvnT5GoYdB9_{otVo0Ts|p!2(+q$hFT{Ih>fb zQ_QyvB-KoW(ZDUDPqfw-gb>_-sO5uI<7=yQrO~D|E?OFqT2`j6TC-871tAOHjEd$C zD4rfoL&m&96@qb7SSHK4bn&itcM%XfH)jK#j^ATD`EYbGc@e@`!yD_P`aE#x`Q)ra zpUnG>wW}CmfUfK?K@u?|7S+H-0&SlM!+2zxaS<_CmK=8sPWA^>k~{YPHDJt2UDro|%3oJkii7*{zksa+ayH`2gGRDkG9z|LVTxCKFD> zc+fC1=-z8bhp$F`A}rL-o<57YJV3yr52!)W2oPsuV|;e0YeFxs?$XzwIv1u-|3m_I z8it@nnWn<;@FDYlL>N{^cxyQnUDu0vKFN5>5laDLluth(R;Jq*lV5Q@;OwvF&>7UZ%C?1Q&~Cjx>iU%{t&@}12O{wC$}-d#5!6Eq3tlo zF_J8aXe@Rk0RM{E63I@XQ6}jDGbadZ~-0cb^$*1Ch528bwIl>6<<&qp^+avg+ z+xb$j2sL8TU-cs#hDPvbZCuaGs4GD=6&4Spw%gZcgc-68QDwwm>a>GYQ5)JLSp3A0 zmxQCgyVVn9=&?V&%UdcGK&S&wVlPH9JFSJsMYcVO>~%Ak(r5p3nzMDs&BY^MSRq*3 z_vqce(mG_8pQbBavsxjqcjWG{l{5-m#Q-u0-JID{G8vqi`kCG!*)JKABfsgy1J5P) zFO~0`1YQ!euk{qA!=R!a)o`udwbUNxD86b^RH&ABp7HunIwG@8Ew~4T*JKXx9N4({ zVMyQTqdJN%gXA3bBGp@vA358fAy1?CDtw>p}z^@t9z+N66NvAqxx+$KnCBz$%r- zGtOm%j08ipU{-J}@3`Nj+G@+ZN}7mKu_CeT-yRQh+zDq@P_Z6l~YG zZ|38b^m)uDA}YT!CK9~wlaoSgihOK6et&y&*+GH*5nr7tqA&I~L8^wx3NhvG`#|vS zaFJnf0IK~ZPTBueCSs?7k&kO+@l28d5~tgY%jDW)Tr$szxns!;nN?s6e#HnYOeB|K zU*HCph_ehHPvXFp(VogUZ~ITUXKFaX2C$#o=5uT`ctnOOlcq>QGLAY!cIiJnNu#BI z@M=bvm7pjcnhbUQ2>%Q2g2Y9TGxoLt%}xGcSkexSyedZ*Vs zq?1j^txMEh9x{0#LG!Cgwe@SjiyADOcig*Jb!)dkv^Dhag&?(1xgijn!lRSYG<|^ zHL=3thz}L6C743@5d79FqPI^Oe+!b#NRJ|~1f13G;c*vLM?I)PhTy`-h~$_68kxbN zfP6+pJH1JK8b*2b?@RqBQvuy=HGQ~8ITYA%`)Jg($Vb~yX(DitqjYC(0tb<)!x`MW z6Qn{g6l~=s<_xZF#8mmZ-{{nN7h@3;2$;jUp+je8d3x~;UDZ||jx%r6ss#KGZQqR9Dz+HcUf+KfulCS8cqN15Ekf)z^j?^ zV(fsWT>+a8=pZrtCB}}V&IR<$DOF%)2ravD4~N}a^a?>4=fjCYr22+op%A3tK29z{E}mF)b-y0_y_^Aq%YQW8D>7eofp^Hohw~{Fwl-8o zrzMJ`vsl!ssY6x8nZVy^dm0u=7C8`=+$OH6y3cwPFdZ*&IbkB^!CSaSz`e_(yL`Tf zz#R=onmOe}q5&w`hYj--V|TRvMxOK#Kxo6`&9GWb)?5m_UY$&Xu zAu4(<701k%T%Kw`qXnDw;h79IOC?>gi2J0{A4KAZW97Kyn|S?Y9lIr|C&hftuLY%Q z5Q7e0Q6)c(a5=D8rzxv?wQSzxE#g%hU3#sv@tT;=#or-$| zf324;>sz5{^mJ@X8RG}s|LI>GD zu4MP=_adRZ}$h{(=JW-t){^)TQ=;FPcI6uVhB>8Iz67^ zDwANEO7T{_V@HaW)o3lvfAmWj0)Xu0g$m;>npU-w$^}vGf|@gc_ z3jEb=etUANi{Tw~Ui%o>hR9~QI`bkqI~ksa8nO14aM7mCVfo@Vga5X`tz=NBTFIM= zdD1PiB#co(_A{r{n3`NCiX+i%;*4(-BggKB%Wx95V3iXb$E|{De7dVUNAw#5e&#)Q znTm}wCodPZ8ueP;pM`dRdDeQUi)vE_QO5xZ*Gx=BC215J(E+bXG?fZzev8Fjj<_rK zmP%DE0h5?nvD<_GMVPiqG*t3XV!JQ1wNZwGml zynCs)Q-UyD-ucyzkKS5Zz|7Q<2v}IIR&&KyzSMpT4(EPOmN>0YbTx<^AC8Av{+UHy zu;?OwZe{#YdlRXAG`>CTi~n9E&{Dz2Vq|#Ra4TE}&QpfJj^PN>SCUL~T;6K%=nMn2 zqg7lhv=e+?yH7RC(y!hW!I`6uRg7`9#|c9>f>+8tTZ8~>29P1XO^bXxf|Tp$DN-tF z74b56g_v_+?mwjFZg-9q0xd5c*V6h{qEg*xI&i~z2Hq7f3v-$hGPz>PM*e(tk?5|} z@C_z5u-;VDv<@mL5>gFI`Su-|Pz)?}S4=`mA_M%0S9)hVrEv4v<;i8B5yeNYL7yt) zAn=-2%$D%vE!MP$W}O&oY3w-viJInz{u2P6D}}pn9jP3ty%^|advhVXEGyVg`y6rv zsXse`v6av!a??yR9S+BRxZ-@+MrU3Ir>i-X@617n9Fof1gVsP^rrsk|cbgJ?^4}yS z`n;UW%Js;qF|h?W*ari*==a`-^W);VA|F>GDTQEW^@+jNYO-fZ}+Q|WoAYjIP#Y7oWBfd;yq z^^GZ4C!Ls947Ar7YTP(uF5j)>N~VyUMV9HG&ERxHD*t^i88G@}!*fC)umrb{&L!8T zq50}J=F5%fA#fjto>Mg55id06fIene)rt}?UJ<878iWgGqNhR{^VTxx8JCFl*9#{#u79c?vD*gsy>%F7NmLF3#)kg=1*;#-sl5r?s5~&08lMkfJhzQYWy5 zqBt;(aHE6eU2ZdbA#?vrz){-6$PMUjNvP`;3LNODTXJG$v}JlqE+>$9c)ql|QZN)~ zU`&Bq->e0{b-`0|I;}qU9&(~=Grl}D@n`%;RX(udHwpm_w{iR0WqM^y_AwsNVT;-c zw`1{^+(Z|}aOkK}T)P~Kw2aNc!{~T#`i)-(WCh{2`1vkA(Xl!OqdopE4Vjh~M2~ND zT{rzl0a^@!5U+r}F{>w%oEF5g9dOu7%^6aB$W8=MZYRowr;&{i#zjL9uw(Wp3_)nq zS!&6%jQJds+R zVZ_;hU=&TW0#JZ(1@k|QmK0lllGRE~{}O@tdNy6p6kduJ;SdI7I42 zS87>zYn)G+NhYn2ICJRqN=Sce4uY?&!qr(-g(nfj7Wzi?WOnvhbbY_2)7bApY5hR3lFB6orVPiWmjGy4U&B& zSfSU$YVRQOBzNa`%2z0x7Uzacm_NN(O_SX!?`=G|!Z@Ia*7Usbk~C!k2cp!SMh4@{ z2^wQvbZ1Fr3zbzsm1#ag@-9o42@k?@?H5K))A@YA`5)-$zlx3lH#hiQsx%FW^qY0q7K_b`TIrZ#DkN(pWoSx1WAY}|CbsGM1CcD1lh zY&*HWVA&T9*Fbp2`{MH9)q>#Lws>4h?gtajK@`}t#dUqHi1j?Zkw-@qhFxZX@)}ct z1kV7Hr5&7(70NjNX%@}Fit#r(HB72-&C^KCNv;XB8k~-5VvwzaqJ5IN6UMA+=PHTH z9WEb{Mk(WlEMW|a;zOVWqWX|J7Qns`J@ut4W<@_XmW&Iuz}e!^>hwTs(G&K{d|T2; z7d2*0CybS$u*`~u2zq9%gLWupQ^;Yi10I|jA6I~>d(>Tmud*nWRpe7pP}F9l2Z(pH zUnN$%9VON1dl+DHmH22qTMn=cjk0kKkDNndZMsM_=fLI{vU-7*79+c6!YDITjoPu9 zOJxb}!fP?=ui)6N*3hXsFL9P$JndU6Wim$RCTaOMa+X^B=1cF4iClR{1tHD6Va+s5 zN1st@!{0y1Lond$YecMSS=gU+mx-l|>$}iDVp#e)85<^XTv75^Bwg1KcXG3aKzh)R}H9_c;G5=zIW(c_kNG&)Q?=!79Aw{=MJBK1KmfJ_B zU{lfOE2t&><$H0uGEki-^jeJ>lxSe*@ynkXxPPn7@EFJ1Xp; zXkh!|xej%7EM4Z>#+;^bamE;%IWH9blsl;DiKL(?o|r|D54^LOV+GVs zM{Xn;xTqg`&;KR>2r*#P#!@NTEXr}N<&^tKJuoOQFRafd70yo*=8`sZX)a`!feRbH zQIg3;5i5F+$01HpAk0kBiExK>@Ss!3_7uzkh9e=;6DL;Uj^|OKo@5fA5lc{TMR7P? zn-cjl3!Z^fD6sdiL7a2XMJR^%oJNYq+JoL?lj91MNk&SYzJK}_d>Q$ZO^qk0+-<;CBgrRmSDL3m`7 zol{)7z|%&vWP}!*-B0#khO_CD%%ks?YtVcGFBN}CWgD? z9MuJwSBXQx_;LoI*TGmIgCBKt+D#9xOO0jSvZ$cg@j`0u;I6|=gwdFYcO(lO6iLB; z+o01?;G{DUK`x&x=a!k+ura%RwC~Dv0Pb#DzaVYY1f`Eg5I8mPw$l==r6rKgp-HeE6(5AHDr94FiD={_8*;r zlLtvz?kqL0 zehI>1ic|t!Af0aFBbakcd&Di7In$$S8TKg z&B;T8mq;YUrjcM_*lo2ZPCAoyJt2bBkYxxE8=i5Y}7$Tx$Z z4RfzbTF_~_g)@w*F!v%O275u9Uvi~PIE3kq7{^jJjpww@+!6rrvZOf)6Co;XJA4QV z%)>!WvPMRoa&b&WO637rV%DibL@zI|43tHY0z9U**uh{u6hjV6KsCq|U4U>-U~o|( zFYPDb$#k1R6?}u(c}O2#%^Df*z)7CXEheaq=*&(iqCf+lkTZ z74e~O`$wIYKOEA_%d=BDwAq~l_(Ql(hYiD$&||^%X~nd&YUm0AT0_M%oYHr~3+%4I z(DvNG*ntfFJG>a%v9R8ItHQGZf&iw(Ol4xbhh?C>_+fc$yTp4W~rO99HK=X_I5|K{Y^2htA3!0WVij9yuUz?mnvzO z_hqVjIA;knLzu@1rS5_1T1aSMgiHC0A-OFhSSM10agTTQD1krlm7r!4U0iR46W!$` zVwHVTb$ME@3?zNdeGCA-(p@-0Z?j9Eg%2lVjsEyjJC?XbAQUSd=-U51m;b^1%PQ8O z)}Z3@-8F$_Qh*VGk3(1aS>7F;zRV>TSxQ#J>UX5OcZ$+|~DboPTFr4Z;3_nU@aW&ja~xXzok(ospi41JQO3hoU6KGCzkI_=`#~1qro# zmeYif0a-8GgRVHIP9?-R!k&-`YEmE3ovN)-+QP`ng@SsiHqneGjs{i@7xyqV(Ctsj z`drk;@&pAu>7EkV;5}3xx&-%S%zv(dior=y5#=0v_mEyqLp3mh=9wjxZRlcAD#Nx0 z(Oi_7Lx*I#Gu+w56@jP|DC5^YWf-H>Vf#*U2cgsk2--ukB+Pc~7($_WZt zC-ls^vR)!ZRO_nEN9c-x5-rt3_D?yYc<`(O*@ zW2IX2^?n;sikIOsOlDmu#i2c6QA#qvK7)= zOq4)*yk0$)$l=z^s_$>7`>EpSa(Showj~I`XLZ3>HAI^Ub2xcI%E?-_&f_g?B5-@R z*Ch9>Oh;7YWa%Z#)4}yGKNcp{K&D*sE@dB%dXf=?$9f&tsQq2c`C{{U%>bF zd|(26rNP}of7{8_jg>V(9FR=A>CO|Ug-ooK;Z$huZF;*v@%>HyydokWyL^3ZYWp$X zbq&Qr3b@JfJ4q}QzRz5LDv@d!eN77s$y6{nICn1L2r-6oORq~!qnSQ~?3=dT19^KL z`%Mpo&Pa<+VMA(i0JMV%tv(Q=S3ZX96H>(3QO!6)?R#y-s-aRtD-@&5TiubokohTU zB(;Ucfh7ae;e^yslH~o8$*dm6RTA zz;i+ma%jU~GH~3==p8);C7J_gx>;Z!L>0+Ogub_VjXTk4@p4aCMG@W3d5yWShKY0t zkc0R^Pnm8QCKzc79d^c|2!dfl=sCgTAWi!RA zz3;|TMWpt9wsSg9-R9YG=;ty8&udHys;_?2v~%kj*Qh{Zk>Pj_()eg9{uIVPuT@ef?x&o88=c-<51ip;}p{ zQ2J@G=T5>tE0L4NMsRnui9HvNETM%Z2O;dCl`v`-o~NQ(G$3eGw|4kx1jo~Mr|@~t zhdtX^3}%|11Yj(Wk4qq&7z;5psptW4B?5Wb-TZC8g%b+1?>GigE<${sgfF*F_r$-t zW85uONy5~ia3`Fgw6X(?8`PwR9P4RJw9NX;MgTJ%t0?2A0y($At|It4`6|pr_CQT0f!P^uH#}AfJY)r%DE%9&F`B+>>MXUWp@7yIh$k@D!hp zEuDL20PygTkOf6cEwx6J0iG4B_eA?;=W4CN94J>{EtUHv&89M$(8X&noH1sE8C^(> z8iH9WS@WhUdVHUV)*MoN!1&Mf2(qEm-ZO3<=QEv=;ecPf0rXCX=`uN$NHEAt{`=Jb zgn0>9#}Q~JeUN^R3~YWTcl$o;h#jG>u;r9r9v>R%H>`okuMnhO0RhOJ>e_ zX^Tu~kZx%Pj~}O$2meH!h2XoA-k8wlrSj?eQTz>3gnIyP2<5m`nw(2fPZZh-FAf&9 zcTSb@gKCh*G%N-{_{7Jqv?S$UdfFRKC95NO?o>XD7|;k84j1W=F_sySgZ~Sw3ynGO z*bu@!q^vd(snF(OL0iJ0KIJt<&_)?t9GGw2;4K9g(ivfKFl?9Kz^a*wKG%WAS6?rT zQ(Y;Y)bk1@2KzG+3`hKa48L|Ng4^(GLRZeCBZE$+h1c-q{s=7{$)xBD6UlTB;(6hAP(8> zpZ?OB#oZ{5adwF(jDYa3Eu_?ronEU3^f&=ds9#37XJcJ4Ic%x_Uj_}fB*Ss8Yi{wlW3^7 zVa^sMrDBTM!gLZ{LbSkCw@VTGcVHg^%~_6I1Zr;f#%(x`6u3C2j0jvSW9rV!$5vcz z4$24Nc(yYr!N~9vUGYrlpzXV_JSav>X?Y9CKxX9xxQsq~V>ctFt&F5MM$pC2ZmaZC zbA#}q!7~*51DB@wuv7XBdSWNvN}zMr7_j`02rXWRLz{IAxkqtVERXh3>T7iqO|wen|f~k;nCZLTQ8;nLNJG7i#Qc_n%WIGs};eCK{bzI&*I zOC6yk;N5zVsXKzjTp8vY0R+$nsb?hPqU8!v`Nn2=i8)s0g*l|b>xmN6!ProN$#g2Z zuz*IF0<5eP|OdalNdRc_cJf{JNOAKJF z%%n3A>m6Q&11+B|lBFnjqJ52onM)SblA6cVFm@ths-5WOKXlYoL${~Bu9B+Bqp0Pq z*@K1jZ6|i3l67FIp3|l+FH)lC%GDa@$1Vcs+~9v|S^)Em@y(+U=Nd z_JpN<6DjyqP~hu)E2=+q8at}XK+38fy>>Krn8$bsKN^0Ni-GL%CkINB0J)sO(_k^z z!lw$Y(IcyJqO=lgb|8wVcn3jh2shT7lq>4-4VHRWH z-!@)l`3i>mT|GX{)yd32;>0BW>7oa0T4vDI8x8DqbqPgaGg@grH^ag*tANF2+)vP# zVaA}eD3?%gucGD`t!5|4$04s0H23bQqEqDlwtC(L1)mB?gRki#;OIoN$wUN?V+X!B zTp?0HE2RE|D|N8#AwRgR%jsQlNnTRmapm?L}22H?KlO)nS%?L(0pTAbZFeEeW0|aR1 z_lWk_Dm#1HCEV%&p)N2-bu;d=(_LP^*R5nY#@}fw|hnSn} z4KlDQyqn3m#qO4$B|dF2MyU5KB*O9l01jn}#Oaf{Ug9uDZDuV@`;M2@fo=mNlnMt7 z5+@NvT45g-aPwwuWlL176gZg{iGXo8pR+XX0&u20h?+eZi`s1)$}GF&m&fOML}O}4 z#{+AYks?2g&WM$KZGJVH@ioTSJ^aPo#y*Y1RN~iymUFU3BJ-Pp!cqO-B{(tFy!tXTVHZv zhUEoqV`(%{z1?L3%MC*-5tyLB0l5uTWzq8x(dg(e&Os7QCyQtK%tX4VXZcj)5FSe! zs{4=(402R4Md7}u;$nWjF}`@(cP9(xyP(m*tv{PBY4e{FpY9W;KKF)cLyekb4A|10 zxc5;FZCE@HJAB1+2tEHnBFSyX{uzR*%}eEwCe<@$f~RC_rxtPA)sSYR4lVu7Sn-UojJ3 zq6Eso12#dCV00>Z=7UzBK;B_Mms<7~uw^X)AD_Y)rVg^`GF`dn73wp%@c7~wDUN`q z4wPqyqy;3rCW?H#x^32)F?%~ia8U=>NQos2S>3$Sy=ftpb)jOj`i#|ts#bhd2*-2YJ% zHwe_?7|A6Rr}3b5atsw!m?#1CK+xSsXZ}!`w~5vmjH2Ub$Kpd6herBp*i8yvpJK-5 z2O%suLrK%ZM53Si1ka{k6^3gZ(-K~uecQ_E=|1luc)Yxf`N!Dq`fM|Wc_*lc1>Zp{ z#%4Z9POq9Bg_bg4(K#?1s=Db*3NS?faG;ivvJxctAonO)Z1Vz{DDPy2Uy|iGes)kQ zk!{WnaxqUuH&dh`t_x}(;r)ib074B@T|_@&{ZLR6W_7F@<|qWM3<<$PAuLsJxB6Cc)QArv)# zagm5A;SIYlUs;I{Qq%0ItT>Bis@Pm$Oong)I)>B>@JNM7y<1P@qHR;E#?gk?cHX*0TvGfv-M9i@-1oG4t?w)mARu3bK%mGzy z&vD``qdJ3U5MH?8o3~v61mS^cmBQQT@+4Fu;2u=^&?TtaNR!6jX+3c)kYQd8nTnGB z#{s%a#tn08n?xssyNNbgM9kE7DC0m=e6UDp+xm$D2RK&TwUf-ABe02qYx3mHfz3tjDr) z2;i0flc#0S-9+zL!-8-&$dtkus5OCT#1pzfCY`{2FFnIwl=$-qCjVS1pn^iz^T%Jg?TbCq|5fw<+01EXK31Br-lxQ?{ zf2?5)1g=CgGV96`xZSS$6(jVv*8;~-G*|!uCo5VWj-*dzxRx)LLIU(+yH}dF+AwnA z_xM?)V5n8*&UhI%Xi6wsflSWO|bQ|2}cCw83Osx(@hnW!7xz4o52+hmUj$2 zlF9@mZqSKcIc1PWIFL}M!lf{^DEzVo>(oIo{N)Qhq>L3!K<}6?)*5huS4{~B8_5(aR*r#G&utOS!1^Ge}C~Gmc4}P@264MpQi(7uM@3(YwoD)lkQqoyk?@$h|Z(Z~}!TIAWZ8+j;qrqHrpS$&7uf zxoc1CjQelpe;e7HE-S-RUBfq=f=}srRQ=0B+~ci~YZK!$<4u!SNLxY^_WYD zjGJUF3s|(uwLzyWz7A5dYwTK9T=dcz%C0%1LD6N)brS{exg&6xS(>T~*S42n$j_uR z<|Ld7hXWN--<>>D_d80vCRro<=KWDvoX^JGL@PlpKpT*Viy~YD(@3ba#5fNZl1X+n z3j|`hs)gnr#m=QWyA!IvOLw`FP|%qpP|0S5!blh?U`Qsxa#oA{iA2k0JRN{u@j4KX z4A?!n!nBAetC(5WYAP=~vcijTPMK{0m#hXTg(C0e5HMK+r?2n4Tgb zXN79m?IsS!1aw-KDiYQ1^~t6{W1spP)+HGYqR;XMD=8?7<~n5YL;DjBqa8iyfP;pi z8fGhTOv<>ewtsDx%U6h_p1O`vGq^`)Ys3_$H&HnRma3!%65SB_>s$qosg_-pHe|#E z%s7Y56UPcVHN^<;%DB-C@89TfnZT8)&ZXV@ZD}w!uYgBC%IIk!hok9*XeU$A0YBvE zi~cDc*-g+rWz?)9Kb$7qiz6+%q_CXv{)?um`EbYkSc0HiN#kyWS~S>pJ9efT=RPz_ zz9MFZL?y)!KF*jJ>#c|nu+TTTcnRddUPk;C=QUfYg$hD*a8_U)48q*hU-+JegCTXa z@ikBA6kRn>Z6fYgI#v&1^cYf$iPd7>C$0|7Ho9{3&&dNL(Ku=WViN56i^fVvtb_QP z1A=CGAQ$o@2AhI-(Dls&FoQY?HvfFB+8E9>5!r9vO<$q*uAUaQA~%*ULn&*A!-;uV zKE<~UgWq5U&`%SUR7@ks;1i6AasP<%nL7v~)!6}yik6)d*3<@)s*Q%1sLsMrC@y>< zinW1@x3sxK#Y~2Qm2Y^43QUu5iC+Okk{%qjDI7lz2QZJyw&q+*g{%fFsB z>pXFuGE11efw`0}XK`9)6e~eNJ-76VovjXSC_T@`@O>53ucBd8piS%Mfby7A zZK7K&&M$h&$Oez}kyb8RQJ{noPjLp&;2MPVK*}P+DuRrC8yJC4mDMUR4@E7m_azVK zjB(p;5hf@lRQ0Fn}i&+q~LYE7mRs++bc1pGJ2ftM1@qjh*I%geJ z8mbKQ7YkWjs%g191VSpEG=f_bpoc%e4d|T zP?|&RD%{|0Br@?BEZO8U6l0U2;qa_ZCnZ|Tg-U?|>Jm}d)rWb205TE#3Wp73Xk8x_ zm*8r&QCcQ`=0;5M?v*I+lmrZSnY73;H)eRxSQAA>5c+minKiytSb^NTODZk21--C^cp*uZm2$>|_X=V-Gz?)2xwU8G5N_Q}L+8YXZGl z5e>p_Uo3ZLFyaHA{`kdc?PA1kyJVfG2K^u&(ey#fg88i2cMKoIQ8x3rV%URf6wcf> z>}~|_5>kom-1fqpffQX&HZNm9Pp#|0lVZ+B9+OL4rIOun{OwYy!>p@#W;!hFr6m`D zAy78236XyL&ed!lR~s^f_@NEDx*gFpE@0VYRtbz`uQ*XiXcEUN&~37dC#n08*wI~4 z_<7|LkaPq?)B$(Plb}S?U}R(phHjMppm@K~11Vd>BspGO08ZzoVS3E-O{bgT)3=Ym zv<$hCoMDDBsFA?p>Xdd;$r=Oeg2tjr9f>kwOrqRrn`iV(L32CT5aV(e6W0p2fdrT` zlW|I~ks%$}9Uhvv1;VqI>rU=njmGM)^`%7;lKUE5N-X`h+8S30ftmv2O7R0bS+cOV zIVDFKV<-!ybZd2Ly*0hPMp6VTb?`B1epoaClPN$?JGa#@_*`BNM5b|0pnA1m>P3Ra z-8y&fFq{Rw8wsS2mvAK?MYLBTPsIwj1O9076M@TH>;8{P12Ch%L9O|y98pm4IH8DT z)$fDPrJ;cU*1a#!_d3!q)0m63=h;FVJ(chZJm8BE1(`Zg)SdPeq z9_$$OVSood*{GvF8&EXdcWD!{i(`Lhd?_Vs8&UQ6I)!=8;3hK>%1x zIXu(+4#GiS`=IL+BZOCq_p4aBX1=UC{(4X9FKvaG8t6o9EY z`Gry}K_vm;f!=vVJQi+%KoGYbzglS^rV=s$WDvFmtO_|BNTem>ZUS1$ZR#8NCGh~i z4YMS$3cL*diy}Eb@h)DL@5sNf^?5xC0g!U+SbbtQro%e(Vt!I?Tiid*7CB@lEfg=Ih?c_ORZ{#ZIOj}=J0M!o<@j2!BVz*V!$ z%hyCAFF^v;&wv<7p+i0f*}(XVN6kE>1u=#N6 zq|8p!=im~MQt)&H?FSek8`1ADSc64nLaSs_!Pv=|tODFI1?4p54WYcKoD;4fF!X_d zD<)vhdML{QBLvg+1gqXtx#3*kM}`wj+v|=M+vw*Um#Zn4Zx8jq2>@wNH%~|)qfacz z%m@RFC}x(vS@G&qB#9vhT&$JzmZUn<)TZr9Si?%h5>)z^ttyL8a7!46rlo zIN51RpYh3U7ydmFZ!3hb@)N?DBe@uOAU!B941^a!x4tY~xrC8h4?gxp&T-_&g8+Q9 zT2UiCkMdi^h7#2Ro-9(%SVhGdESJhB(Z-rhg=$Jd6)Reod&@MgDvF*TXUW4LT6J5h z%9Qq|)l^-44@^p^+63lAf9tl%SXR(Y0*x7Ou^)jN$5v<;YiTqoJm3BkS4osqIxeF4 z(F$5i&Mgo}17f@Z9Q>+ngt6dA42 z!D(1Vd{~@$4Q&wdHxWiBwlTiO<0R}u?&uv#S)m6gYGlD9Bbw%dnB((wliBg*K_#3> zQ0QkE$_E_n)Q`y&z>wH+U9>>}S^qIcsnNTz(#}D44z1HFrs0l<6VdG&dt@Fu`2ui+gsMW~d8iahjRr$^tN_kP~r! z5V7l#AO`V@t-L4cLl_&urA?J@Q^&T?Y3Dy5L=leU@x(mUMMD@ee(x<`;-zX9ERl^B zx7KQD=~mR~dA#R!U{!Hh)fRmi9T`S@`jyiFkT|b#e-KPTsh_nLI6v(P6k~baCKV0w zwM`>;l-Luc8~@j4o`%hNo50w|hd8|+;wd5qR%v^i7F*J&NC|P~b5Y_ZGtELFvHa4( zn6s&Y{S7K>k6C7>gD{{%5LXBQ!H7fYdazHZkv>uF#E#z>D)0cQOYGEXul&0N1GdJz zE2JD>9&^vXLzV>LKkP?pE-$52Xvju=W2w@O%Jx;!SW)MJ47yNHX>v2TwkcwRnhRuk z8SxZ*SiD#OX9=s2cnX??X|Tt_AnH(9r#ppwa@QF(lNMR9GX1`%Qf}2&rHjJjbA@PI zToZD;v11(?Okh};CS*!IR&SH7dkQ@r^(9e@1o2ZuN7EsS?tY8l8_}*PXFW{M(u{Gx zu^Fd1SHpfMw4-F|WtMsDY^JQpXmr( z86x-h_5Pvn;Ba=cS1I?=jl`l-@D!zcUUjM?nx}$0;9G-U>8JY~=H*WQ^~WO`gS-ES zuXE9sBUf^3K>z>G@Z46Bu>q#+HTI0>c1!0}Ws>m#HrUYavjY&-wuI-QzK}%Rwq_Dg z_!*Z93#8v3`{lEaLUZL`uU07}`z9mF;5A5TyG`DV@Ddw{w5Elb_qB!SrHcho1Y$bo zjD_M{w_yTbb_ryK8QP&;Xocdwt1>JLGip|n*XMA{*}0vY!N`bA+s)+gDwsRu`Jnx% zso|Ti3w6eXIEqT`EtP#rjH^ut7AYaZOM9O!fQ1>=B#4rC#4*fSFACx5fDJu{-Gc9f zrCyEJ!LR5;9qywDy|@TrU2&o5=<7;yb0M}jZruI!5=^eE!Q9@RWS?EGrT?MV%^Z0S zHW5a1s|74koZ(bti7W4Gt^SRoFItku5o;F%SJHn~PRsj3YQ`O~(N6`1IM^-g4tE-s z_|ol9a5>YP7gdNsBykKNh#y|DyHGg;zc}hP@|Hde==z8u2h@bDL8F1^t#C;^mxrXi zeGmYg;DIxhpv_cav0pB`Ihezwn7MUA8mr)i+@-TimN#4$)8+rWt>q+Kp>2CU*8^B3F5OirtEkMUZT##M$=Zl)o(?5+z`Zdp!5kq~d38~W+&5!vrY3KS zZ4hcHN1WHL@c&%C?_GX+4CGQSt*8wk@pUQ!9!irNEpWs`k>7y{YzW|%1w#nfg{rQ8 z>MBrz7d2^O1Cr_Q+&JQ7P9=S9Pu|IzC)71|4v7acAp=Y!5Xkar!?HiTu{{$AvlJdjd6J%Lh>8c4`C6H~4RZFt)cmpxBKTl{$6UMEu-GPOCb- zI2^_luIFz*V2x<$*e_8zv6Q9^Zft1i)#W70>k;K&e9@ zkEYhm;yJh;=38mWP)4mDRChgRjf@C`7 zHVg%k4^WK=h^d=Zyhh&}o;PGxub|O6Q)4JIIravx=8)yhP2aO|yK@Z?p$|b!iUvmB zsi3cNEE1Bg(h12S3e&-lpm2T%m+*IIgzMVHxZ#k~N%gkaK7 zhJ&0A6M&-oO~P~vI#+}SIuzS7Jj)c^d!0lhercrri((KU!6UgajE8sNo8T-?nUOcL zUnMz?3C`k7T`-bSJiFjZ?_hSdJ=@i%+A#m${kdH;7GhJde%!^sh+-zU0jjm!6if#D zWeBG|jDX&bB63Jf^qk>`^~%OD=Q$=y^ zi?y;mW1+L6zM!PvJ*2M?-Ww(!`+9T6mD zT6&k~HAmSIhz^$a-TU1dheWkq_qL#6Qj4ke4!jbETO9?1KXfgF8t|v}^&U}#Hzw-c zos@4DKXVTABQtK+BLud)0=tw!u@J>Q0-fNM-gO z;^-z(84Hlw7x3?I{|71Oh^$5KhyuViq!xuwG>e=|bT^ww>;^?f6IpM@KoJ>-mjO$0 z{PIVO0W)bv$mXo@Ay3H1s2AZ;R$>RoS^A}Hf&}0qki;MVoL0ow-}I??ha$A|cM+Iw z_2hLxgYJfE(Cz^&PT*!T)N^)z>x=~dEea&SMu1S8`p84jHak8ErFjtm(bFgg9^#0~ z2#y6!X!}Ddi@ao;bwHiOaj7%UMb-AzzB_Xtyc~(np;%4X1;avIR-92AHzI<}uuY_% z)WPXQ=c7>T*+p295?mNjq@f&}McvC07<=V*n?i5K*pm`Z^EEaZPevfeQnXq9dEg%TPkk0#YM zy=KTPZNdGr6BHg#tiK}!Ej-1O=?aEtp~M8tlvn}oMwE%+U;)C5Gg{joYc+)O#`e-4 zXSz}DqpDg*!_Ek=)8!97+3x2|zyJJpe$nt6cujA^eq4J-j_~h%vDoRe&!x218~T~# zDO$jw^So+mlL&Q51_NOi+#e-QN0`)Uio8-Bg88O!`#&ud(!(*WP)7D*v*$fdgj!|^ z7U#cEKV)pYdu(@8U(InL18eGpkJ~eamno%lk6^r%l?5MOWfWE&tQ^Fvyc8%)m%dI= z_O-X`&oQ_QbTF*}mu^CK3$1km5 z7h7q<@;2jg0?>7v`mLS_)H|wsz|7YJdBwB22|ScCCg&Kda=wW}=f-++!rXlmNzR=a zIc^YD-ZgFrXE3G+*4ze2URta|+`IC{^Kbn*f`RMc_J_#t*tQizLX6!o8M&j26_se$ z^Nc(p>P8vixzl`8I2G81c;`p8Y+v2NDsFzKZW>q4tU|%boF|;ssn3dxd&I_plo-4a zXqBB&4eQDdnF9racX4WXhNmq7dyk!v$y*1F^LvC#l~=F`pk9Q9s@ta#q54U$ zZ{$kebXUn2kFNx)G2YwZ)3}GA!g8+=xtTW`6~HNRy?5(?1xbuj)D(7ObiY)-lHKtC3WyREoC>(ix~`DkJ2~2tJ~y$ zc+8ZH-+V4)P#3%mPKSf6dt2vz&S7A3Sr3PDo!z2z7m8~J-uJm$5@6rgNDdG~AW*FB z8c(X^Lsn#$=yUfBn5PnKd?okRW`;mgs1R*MQiKGz8ES@vP|}6T+H=hX_q)u|L`*TS z|2v+^qup4x(VgsIf^s2*HyeANh4ryg3^sa4%k8OM3gB})(72r>GtKTy-Yl)|VS?pT zN#ARgdub#SJCE>tLQR&u-V1Xe1>5a}-r;}XGg&TQtl3JmP5MQou^U&lLXRx-vV(gJ>*=cQYyAeb~c z3ZW5s=S|*e*K*Hq$PC96=kD&fgYAQ`{#_`c%m~c=R@OTdv%~@*gy6wi?;p0RA ztrvMqw$I*{m%L`jPHYVvu)dugBw32PRo^w0kS`>NT9z2c+`B8Mgjn~8e11vP&Ip?> z0Igbg`YQEy=f8tjcaonN^f;y}z}nSSP`zS@TTjrwgIAdC4Z28S#)2UBp;}9TG8gY^ zaBtqt$-cXHAw=>6@Ji3GZ?IZ8P_~@X+APx6?5oJ|9ad=^Q7lVfzmu`t*g6#^+lA$7 zn!klh#7v>#W+`o4UL?6pdxI2XnYFxTsl0|GwpDkgMfUyC)PccqSV9=AmA-r3S7mTYp`J|Qyl#E$@)o!SBSgjq@_lJ zc(1`PteW6^gDgAyRRS?g?f8XQ{jNP;o1u49V9LKrH;z!8$3kpr;_|ux3neJ&K&j~Z zILi+kKue~sn49S30f^8kXQqr+wPP(QbX_3CPa`sK5TE?5`u4!*uv5zpk_iYR!edsqJFoL$OzuK$N zpqCCq?bG+$kWz~VcJ>zczE<$fb`|6g=e_;mx05U8grN#qQct+wqX9A3RJYF5y)*Q% zL2husaY5XJSUuB0hR>?hA|hf>(d3gXwmPwr{A{s?LjRg`?aV)^O*m zaWcDnz+T&v(w#;hJ<+rFrACxMQh}{NlLgWt}@CC zw~@ocia_jmy{U)$8mjgHyPP$x)k-H1lCW!8&rUuOMcO zxGZ*5Ar5kmBV#qfm@1{@0@Q$uGtw}T4(U9-%TpqARAJ6a+a3@$IBz-twjfPv3buEa zl?hxL^5)}`xwpNAWCNyy^BE)PcPWRWfas2V?9c*TWR#J;HEUKnb`pp9QGqR39D|#) zlx&6xhZ0e&Vn#BfLk-<25Q>zf3dzC5 z&ZL$g{rVJlOK430#L63dp*41ta#kxm@%|}??qP_RA`p%fu{fp7jIA<_I2QN|p9#0n za7VKf3WUmvfEDay1S61LN{7cGwDV9;BId9W+G1CRoaBxLw^>qro*2$5pM)J{@{W&y zS9;C2*TEa=mNl_qKTl2Qnkx6I&2ND(-yh%b;z(|@04y){Q7a~5RC-+B-~n}B$PG3d z2z{}q)gX@!Tn@RFB8|8`0gN!y-4bhEDq%}oBJ-xd{yk*=cmp~q?H!qpKY-4yzUBb^Ra{q=h6(*WAtM`z{W<|NHyzG%c-#izX$m zoN16~?UtlxLVLWt@xNStSUANec&bZCyfcCgBQ>&|%=%sz2M}<2$99NmhRmCfult}k z2!rPo!3-dC>v!^}zv(1971)Rvhd2=s7&ACln;pJm8|Oklt2Y2ExG!e9$}hEMQ&pIB z=IUdCd6{+LLlQ(HwKfI>HnwrGeKRFk)A9hb-BoFRWO`1Cs%3~+1kGlV!P*zPZ7n;O zA{NlS6#h8#HpTXT(j3jUpVDwj z&lVKg4c;a*NluE^@0k|2BgBWqI9ItDKAlTy(YrkT^@e~Glt#<7|N8-MQ{l!l**lHu zUSr?UVq!Z;D$6=PnIN^a4?2Hr;h10`aG&qFDk4|Mkv zFcKZM;;k@RELdI_#Hp6))1kOoKi4HB04nh68e#NP+}W@)YOlbpGt@&b?-NQA8pEmkm^jmnT2rb5DHJoqZ_$i1t*(`i>1u-D+Zs22yM? zj3aq!K7xMV0l#<=F0CU{@8Z4AQN7`)c9s9rO!TMyD4b4qpX zjMYx)2Z^;>0o{{|xOouTvOA5?0c4@n0=lb}kURXklPr-N;wF8Jkr?_RqzZx`cg->} zH)2=g3wYJWuSD_*Ciw~{>rpn|vsk~?s0d1B{hf-V4Idy+6zj55-R1!zZ~SR3fW`^C zyD0&@S$9f$fleGnDsshA%aD`)=u4HCY1qkwbXT=aftDZJ{UkYKZ95elM18E5&*Dmv>w&B}rt9s{ zj?WA{6R~;h6F7@P=Q$e$92f4*y-6Vr3JD8|heHV>_W-}nCSjZm)l}rN$g5Kyp`?sX)oIw1c|iTRC(o=eEKnyYLBlI zbxV~CH=tI?+X8^_Yn{xsJ$uyHJZUkQ_x7?A8UcIUf&zD+ro)tij6omr{W3ax9L=bg zyzUf+c{=fc`m{?gN#M>*TFbIZSlmT=g4eZE^30t)!-%;Mm+NPa>d>gUP2B~IVJac$ z^{iXNp>st$-MCp#I3J)^-@8ERI&f7+xtOK9K+dJy4Rg?1;GaZrMN`yhmObi`<;ON-Z{BHw*(t&{EJ95)n z>BWTts9ny`KCRJLneym>KpQopt|%68_p+GG&5lctjt8qmI6-Kp`=}zKcjrg0o4-5C8O$hgfN9zS#oR=GwLKn9tGOM0%93 zhZy3&Z7P@QcTm~cp+$_gLo4NCAs_c%Rj9Ol-HEINKE(XRoypzr0?5nrs;n|Cw(n4% zY;>!bo-$7omD?0}TcD!cZeGri`@342O|kP8K7t9Y;GN5%OAS{dlSX%>9~cu}pKBbK zgex(?wK#jsLBI_Q&4T7`GkwOctE`41FfOueEo^v45L-{X?Ovx!c#)FxlZNaYZZ?XT z6V|(OVtOGQ4>D%?N`VEqk>3LGgL)(h)Mt3LkA-Ps1oSywrpTE1u9zZaaJ8R`ickn; zDC`V^t0Oa!7!aZE8ItMv)g|2}1f`T08spe077Zf;CbK=n)9-B0uuLfnUHX6<>xzTy z$sj+gd?92M)wokmInVBwJvQoibaC2&Q8@<^kc3rqLwrnYfgxBgOLrNuCTcH+G@ysr zpG};R8+!VkSKO@uu|Jz)hda^{g6W!|r=K$CvLA7C9W@Yot|>GE4x+sh5V@k-TKim8 zz~4MNv|x7nT{Vgu7<(SgHKJC6$`!^?m=jKDbT3Xf7bGwJoLjqg)ZuO9UP?PutQF=k zF*m?u3xGDdcUmc&Gcebm7HLN}QVHW^CMY{_j^0cR{OXxDuv0>zaEA(hMx+F(9+@LF z5KbM9vn;FHMT@Sd4A)v&Cui!S0zR?rU?ySnut8>KO!p=xDMB}D?kq}x-b9QjbR4m^Cn966F&$A*W3!=lQQkmuFU}TkBoQvROhI=UPs&&jo1?7i7+{$6XiY0^&Zkn|Go<G03qOHfwOaFVARF&5C(N5JD+PKxNtVwcyE>Q0{WB#nfPV! ziH?ijFi+z247u%jX(du42|Tgmc2KY?w3xfm3m9gUH!*+l2VeM?nE^(Q;WD}yyyeWg zx+{30%_4*LD#5UYS0s5!?d(i;oP5)K&}Nr^4hQ!nKxreh9T5o*?#jw{2k675fRlFe zz9zvl9lvf>{P0Y+I?`1u$)JIQ-SC<;vODCP<3gHljHw(B@W@PoE+RSyf1MS_Za9l&CUO*nCx|J8MFsMa6-Z7{ez| zPHRmi5?Zu-f`4+SRL<1vumLC;R;I!IY zZau2Jq+AwuI)&3yipg4pPIn@NLJsu;Cm>?BK&jgIMtSlqqjp;_ITujDXA@DTJMLAa zNX^H#1OmQ{iHJAWCmU)YCge~|qj!3vWW*&!g{+#>>_rZ#l5jN$Ukj7HNB`1FDaxVT zq{1@>zv4{=w~3)6jtpju6eH#1Dh^P5=~a%vAqs&$_6e^y3vJt^(v4M9V2crF6yG}; zm6Psj9_H6&>&o1~)m%UN#O5K4h1R5C^`6PZA34k%8j(GdY8R;~XJ*1hgckBVO z_tFron8qN_C!FEtxh}kEUf;8}e^3Gkc{J#$cqacwaAngOUz`XO98&C3rM#s&=BDg_ z5Nbcli5rP_qryp^v>rsveRQw1t2n!y zgss&eH3DXs!AG1Bx!srRY(Ja)$Z`fSG*ht#nl4s3^(yccSRtt~`W@<&!p~jv^`n>K zjEsh}p8-Yc_VTBvaJMm?8-?0#J7k>6Mqo#jTn;S3q?1qYG8Zu-F0E=UT%3c(SifFXY8v09=2Y+{0fewB_DV?`42+1Z#DT=9I8In`Ea1+>vU= z9pB^jxq_&#R!97o%T(6mPmL3xr1F_R_iU-pFRcP8ww!!X#qO`z!I!NlS8=yDve~Vs z0+9Wis6F=dspqgM#eSUfmsmZSVMO^Or8EmvH(GHz#4w>>CdT!$}5KK^1v zI3|us9)7$&g=^3wVou)~K%XmEbajA}DiPDu6oWm+Akf00lE*~68>E&KI>n)}2@E_K znB<_EM;C#~S`4%%cQ_YHP#YK}X2Z`c{8A3)*=YAT#-W%bA;k71T03*8LMN(6VD+oj zW+QrO7t!0nPQPN4x;xUuL&2=r^&vDqXaC$BVog8bV>lzauRhGr%*ARwuAY_MJU%f! zitK##>}gQ}nUD8fU>l}foW{X>{CLXj>I!+VNlv^Kss>r_;bT^{vO(rijwo|32gjtR z)+}Ijw(g7n1IbRpy}8Qfvdu`r?McIcqw!0z!2~YmsgCj%pdFep<%#P!KB62E3QExv zPyq3QTi?GPCkHmVo`HE7%~6d|@|VFZsxfe03Ph8QBZ7kJ*?@y9@S2lInPmQb(9_C_ zD!FheRIy}E`Nv4h&6sj+LY8gqM^cC`Yo%y{EMAF^(__^jVwD^UJ%2d;j)p&2kaka> z0Ax{?!hY)a{%WE1q&HQawX2NCpj0T#C#3|6%5z7D1#VJy#jVWm1RCCX-+w>EA5BXzl`os}`Pi>qXl3ZQR#70aL%?{OlP3Ukq*e<&g<4@` zVy*TLJ7NvA9L5K})76aonbJG|pfi=;_J|r@r!RtyF@$iY_9PjAM1|0gcB*`eF3d!k zqFF^6BA1MMS80<6v9keGXh1`qpVF+-(v*KU3Y74(JK8OV^4_{Ad*bV^{wUG03tOC^ z@;{C|z4=FH@ZFX$bg4=}hK@Oz$$VX8r*HLixitt#BS z=rC|4(p|BOrvP2guIcBGP>+#HyIK2kUvN^B0@5+ZEZTCCe zajgiPO2z!Gr#vQTbb~YndG;n%C}J6E-J>VYmfE~oJ$8|lNrVYeQ2n@Jk3IsPg+9B* z46%U(*K0?H-YsbDZQ60!25!fBs5?9sTNEV+eToVJ8A*NYlNWtFNX%qOrU?mS^|xMi zVubSu{;rAgx_h~zw>@lb&R;?_<&TLk4zXAdGRP@o?*gL~P1-cGZZi$_oXr3DgemP{ z0l<({`thp7q9wxw`m^fw&g=BF))lj%g=-(HiRx#>c{lmv}MAsGtVKTbcJnm zm~rw|NoU|~wz#RMngn2GCw6SFbz&%H7UVeH_c}GNXqB@?=`V4fW*`F6B6W@@zXQ#b zk&du0@BMha#sB?_f5^nGd040eiG;|_Cpwrmkp`El9L6SR3LQdMk;q6HnD@3fgR z6b_CD=GI2L&T_cTqF>4?^>sFT)@|Q2A!qiuqI+OODtOhBdzaNkuj365iHb|rl*HhaC!rdKU3 z-LVQ4V$PsFQ^tm+6BVfnhgqCFH44qd7M0nl;+E%iv3;zzgRnHuHHKC^z1k^bRm6z0 zM}1;^a80D|C|peEa=F_}eatRD48CmXyJmH&9}_u1WuP8VWB;5ODutLcB}`4kpN}yr zDl>7qJbnbk(*tbX*{NgTs)^X_cDK6M9Thqe|4j9VkFMRE+@YJAifr?)dZ-#==c7rw zr33vL7NNR8r<^%)w!5zW0v^!O=Cf}1YK7M7Hq3vmbsGnWBQPrp_Y_$+>0=gYjV-C)y zoHJNNY#hq-N^%k%>y)}F^&v58!t&KFI(SE!<(fO#j1KVIJ$~tqI6;niU#e{W5Wd?7 zv_3=>^BB@)%o0)%Nvs~lMIj&qV?pXeO86dJdD^KPX5H*B)(!PJ%3L8~hT+G-Jz0jj zda^GzlXv%R9-vIn8%(lw6lcy$^KTOcor|?Qg6plxL9pNK!3!=41SQVJ@I)UOLiP&!eG>wnC)N1-Tle#LgMa$~CJHaa^;q_r7m zHjOgSI)-5rOr)7FVeU39Up#9jWl}Sv@CXH~CqLVdETYGR?FkJYFF9voKuC8K(N3|K z=54B{-mQSkT#hp(bc#VVJ$m?2@I{nCPoJR8YND@JmI@HsgtM%?Kq;=_ChCg?d;kR*W)2 zj%?)Y#vMaOHb`RPs-KH2s~uO4P0dLh#Iwn@9y6qCXUG{=1;|!r=%jwqo)7s*Bpf?Z z3vo7zOk_1YQ-1EI=@Hd_$l9`YrQ<2V`up$wL2%5od31gm^PxAG%s($#-mrq1pbkS- zlFHE}IuRi+IwM!v;+iLYI2TKzl6S^D&l!tvrbZ7qdMeTUWb$!htx30~ZM0MbFzY;; z+8iv|jwj<$a9*{F6X-O}>&%@Uw;7Ig8*K9*I25zO#ZKBDJcnz#ai{~&Yi*jB|5#UFaFwQBm#ylzO z61D<>aJwWWsOkz^!FD1v+~C`CLNi%x}I2)u%Pn&S_#Vg~~WVt4CwqA*XG< zv~&F>Dh|UxKR|OCSRW90G&=qkW^^ot;_w~nG@d2POe`N6nf7i{%>9?72PW-lX|*t{ zxYc$XeloG z0v z{OM1kp~{TIV&Ypd`6KPF5ZB6=H>zq3LJ*GDYLNPrgb7U$MSg&bi@TBJ`np|(9e<>- zk+fe~PQS8y_UV7Xj@u~37^j?RdHNiFwKqME5%BQSW11<<4mJ#axqI30=wW8NwuLBe z^z}!{A?;AQT%vMy>Le%9f=tpSvBF+Hpf6eSOHTP@7(|#_BtpU+_i8jWL0q|mdnwgl zgv3A0&0iU#3YF<$s&6Rd1h8C%*~>wR~$H zOc@pP?hZG@l&VVkz3*BxbT$kTww;gwqgzu-75Eu`sO{E9?Ym`M>lbvG|1M@ z7*;pFX+FQfX`pir_yhHwIJJN#xlMhwqb}8)tHJXVm6uS|+YJ8+o$@KoOLYN0Sw zEUC#b8Z)zw3N$fIPsgG*_uvW4-Q9PELpc%1o6&v6L?`$l!s;(BS~2Sd?OuHHl<%jN z7MWzpTVJx*+wIt|k)?WiI}6H3Z(8FkMRs#;jgb$(j39mC+Z2PMQkxas)u|N&JYfUf z7^%apUluMp{_?xmq|nd0QptQ{h@tWITgYxW2i%bG!>$_ht$rn zbkRgU=Z3CDykPxO0Nc@3&_%7vf4sQ%nzD#k2A6n6EiyFhQdVCHbq5hnrL>y4_%q6( zZ{|cYLhjI*$6p7Fsz-Im7u#)`oQ>YWqSoPw#Hscx2rRip+;%4k9zOV0TPbZqR|eg& zGkWY*fe*cZsj8sAzmnnweHvq92sIz`GOIT&7r*wg(LKE5BNJ9}OXiI?$>w|!2#)%7 zaM)UeCOIWVnjHSh>O|WzPHEcBXu`Juu=sAsJ%ZlM)Vg9r8C;Oeq=vW~n>9?4jtN8%1Av z>UvgNY}yPJgI|TD>OBg9ajg)mwD7Y?oPQX~H_b3g1y5$AM9hiX_~8emQXRdX!Foj3CpQ-bDsYR%vZK>CmIM zvBTMY3MeTMw%;QD30b_-dJ7OiPuB`1V#O#?HP&)4I&T+i5%7~Muu?WZ$&{6>scwo|1Y@#aYPjA4x3)MGLhA4Uaq)!5Hv}OjxR4T*9r{ z=i?b4{vvjTitl9>6$oq|IgOvq+Ek^r!VHi54=Ih%e61<(ccDxssdy#>6o4tXLzH~t zHWg^_*6@VIr|PznTkL(TWq>O2WL{aqCS?1WMX~)>ie-_M?EFbSIH8mZ%rLNQQhkd} zh}YHQjiPclP-#(}P!EpRX{{XQ6>iUn+2X$SaX-CD7!5dPyj@6BpTTb=+3REYW~X}L zux={@PHL2vaoERz9CkYE**MoO4(`vg{Y3}(wL)}O$)G?cQ|Qe$UR94+t5MU>bl7=v z`tD?3{ti_6${g`~RXbY*yDsveMf-hJ%og;+(0N~mUyRC@;|eD7WZ)xhV0Pa%mGlCt z#503WkmxoE_Tv?g4(G&map7b4vSn^u;F+v5-0)#r)ap1`s2o6$h=m>6fu>llA;nE+ zo1kb=^jr87KfA%&A)oU>5`_u*8=X91KZ{x_rb;nU!47^ixocj77oYZndX=HD&<<#h zeT%8;B}pGDNOO#+GVFpjqlC0DaJl@zjwEvQN0s2l0rmzhF7_Ny{{ zfDau;E4{@1fBm1xOVH%&IcLUkZB>fG1-?>t>J^}?J*-t?+)SY!aa}ZMa5|H3c<0P zR3e1mBip$w4qw`2UGC8R--Asja9b(s#~ONL|JmOc9ceo zf}X6Hpe{c1T;G1XG>R}#DlL4@I07bEdmAlH&IDVz;mB{QG{Y$@iffByLT&yQYylv0 zST9ClW<7=F`jn&zib7IQ&zW@|z%|6{-|nJr6zQS7G55#Gx+yhhe1WDSq2#>m`%Q_?+xXj!Y^!op z;U;+$KD~|;vb|IWqlsSsYNc-JtGt|ov7UyryXV4WRC=bZ3-r`pqhXr$&ITym5Oxzf zQzU&3^Ae13!!fyf3oB|h48JG)8s=27g<#-DAeSaHas1F8CcxVPao;{lyMHiJ0~N|B zmCH&kab|CD{=~=uRC?ckGlgeX9V)o%EKlRj3Vfc>uGN9(kQkN&WsQ4skRzXnj+I{< zsEkJbdlBg$nN7bxML#A$pv;n6cYZ1P8OKF*aV}S*i+RNiinKl)3*vFARO9Wpt&dgJ zkZ|v?`IcZq!rhbGaHT8Eq_xmY`}^d6k<)TN9NwIcVW}MQU!RHQO}W00O)laIE8Ckw zy*Jb2pAlt&zG2)!kSi@1%FvLEM&l|cD)c^X5dJD{4{xC4Jee|v7UHW(d(FqQxY2yB zQmVM2>5wIK@b(jQ)WJ2*a(4ca=;W8v)zoVLqoxbs8>;qe);jWF>BBn}W5Es=_miS? z27+tgp*TlHp0G+s;D2Do)IZS8-~3x3o*byHv`d>eb!!Y=O^*2$S@X`B;2kgGJkX9n z9aK$ySrr6j@HP~wmsQw zJOVo<1m@L5GJYo)LhpfrgG-r2Q)=iZc4LVX3lFQG7u;B!4zUI)iR6@m6O2jH@ME0r7WsFnBn z1ERj?5h-b=EzCKZ-UUR)13QE4Ry1tofbhd%sl7ic7JBAm$bGNCX^}V6D?J`R{sBrJ zoWV?7po9s5ql!rIqh;^a!f<1B%thf=%ps zvNr3tp0qhCchVKJR#by(_M9))<6{28p>(SfPSE13K)EL;@{7{~8*}ILZ58$WM%Waz zkpm%LHUJ*}h^aXJ#NT5o=D4c?|E>2Z1JFCO`Pf3m%PYA7CSLvaz3S-3{;1KX4Uzjv zqwif8prluBL`;TOeW81BbFZm%)|snHME{=AvgXkcCPKNmosp)|_j^!YOvm@9?JMD5p~P$Zmsp+I5bj=OVq>EW$U!NDQ; zb4WxSHd#SnpC;qRP6$TQ5-H-F|EnVkaQ0>QDL!Y@W>3w1BEL7#li#~M9jkn2OLw^t z=YS$QSs?)V!qd635g!Yza^g8YL7dKJJi%E*lLT6&)EOVYcW_;kiSnqB2JD(D(qvE514GW*N`*jv`vAvKxwLFB>xl(VmwdID3p3$Nd( z+DA~JukI-=J{@#jvzy=a_)y{QQsQ{pP$a25cITis-Ca}`{7i8hwhQ~eewzMxeoRJ~ zUgmM=0g&KZjzc*^&~}e^lM<~QQ7!`YcYxu}h-~Rm;o|C*EAfgWDl$Pm_f(0PIZm%9 zV@#cT@86H&$lY@+X`)Ot{2X;2X-^Wg&nZCxyN`G0`jOXjanLZtJ#e99D z<>-a)^_s_p8KJ3?Utg6&Sm^l&9{PNwSFQfvn--0zA3BpT3J&6p132?C(fI6yv^edW zzBVZ*Jereew6^i=K1yV%tDhD4|!gLJ6^J)#u=<+)*ynLUB zC3@$fh7Lzr`tPQuycmvmO*?O>9E)pQJpq#W=pva>QNEiMxMR#5u}cn+omDx)w^5Ow zh*GtAN!ba=naZiPC>DQ)c&@xCZkTY0;#8#_pVQl7kj3f7U@&7rQG!BlIIH1_DW0Py z2zs&{;YAAm&n_R9b#8L)^-zQTB~1m>Pc@Jemu3Y=x(jQkSM<~}cUWbyX9%0b_AHt| zbZ<|QIv&#ouWR=g7Ty13!Q>s!Y)I32mbmvanIi$=JS8<9M|Qei-Wk$!0xRNySgZ^G&ZH{CuJ-BvLVxG4 zjx_iyJbQ9>UA2~$!QxAa-7nWnuB8H!3-xdWMl-GJv|eBDX|{Ak!M8RPYni97{YzLe zi*j1QRxIeypu4rmAbe}Jhtj-C1_ix$9-S5M-AF52f{-Xeo5v~D?n*y!cZavlDD}`U zy+W%un?~W0(DhlcXM6%^9}JXrS-i)SzgowKPywAVMI(LNBv*t2*85BP**f0e(-4qM zh@)gL5zwy}Lg55;3?hDm;;ocKS+Jnsa>!eA4_vZuijJbO^rVi&)^o%?u|d)keZ3-e z9VoETW(SWLd_ScEN{?^z6hmIQh0Cq@^AK1cn?jd=qrZ&HUyl#SaNU@{q5sAmjp zUuCKpg#0OE2vX-#kw7}xh3TcT=5p2s)PnLAKP@oIPzTttI4YTOmYpB#G1Gyj(hYeN zg_S7PGwz_8OX1okr@=3ckdEbv9ekR9ILZCV_4UpNzZ@Z68JWRyxFL>3-L>=e^<^BhT3N- zsVPm|UtUYcgl~_bH>5Hic(%klfY7u4k~+1IBaisg{{9?)H1Rs&N_mE za~Uk>2dQN5eGTPMzteGf>lsE|NicqCo8lboZauG8GJACKc~mA~Ub>U`(0Y1;>4f%F zS!Je36q$PFR4&*Ep>!1GlGQc@*9^uE6}jar@5~Ub{myud(;xwN81T|?lKMc1Iqx6)>`JWogEUd4H1>1UjB`Oo@-hLN1;A zUp;^`5aUh+?GhL8*Q^2A-|m@T@1rb`9cV9Mt8o82^^E(IBy)W;-JHaIt$5AiPO!Y3 zAuO4PKeHOCuuiGEQ=c2Mr@w)tK=V zS1aW&shfgiid3HS^cNNByq>ySdtQk?PkJBe2BiPa9V?N?xfBWH>8V!Yo z$wgcE_I4_)}Kx@3YJNP{Xerm?bqQ()`G_+7WRh^q;JT-Uyj-jgGN@w^MTGcMUU zl}OM8_!*kX@SD44P>gioxH+Ub*j08C7yZM#T@@bw#I%EjkdHs`XJ^W}&o{zq~GHX|m84jzxdTyOpg9 z8PzqIC|0k*ZHzGKH5%^U=&z7n#W2M45!R;*+0<@f?iAX^6_FevO@MMlGXz+{dMMr3 z{#?TGoph8ok*w#ozKb2T(WCHKbjx8RZ3-J((&>786>D{^(wOoHHN1@%!VFK<61z_JM3Ahs!3hoRKmVbofukJT@P{FM7rQ0fanhP}+ z22+>jq{ukBGa5s%ja|f2Y5q!J4U3me*|zsSReqxGv&XP2o@e_IE0dG!FLzCFLXX$W zKg3yUVpnso^xEOcE9crP7y9MfEZE^~{n1aAK7%I#JvQ6aUMt2%xtyquczwelV-_-VtRFOQ{X ze^ExLJ4YdHL12@sg3-ljUcam)44qwxvy_75Y&uXAGMWcXW0as~%?y{x(H>ieN;beC z!X0Ob;*k}W;mW*WMzkEbKBY<%=7QlXUz6>8#?jS0BDN}qqV~c;U4&BijOu7z4Wo+J z)uPwp8@-uUv=&>ha3D#lu&^Q?KR#NNKb*a;qQg$;^Buy*U;Oy)rzF?j)_RbH9VwoR z^f{l@?-vqXdcJc77smUXnu%*unt<#CI{p2_&2Mb(@ZAwgpof^!g2&qV-@@R1+LP5i zUlQj-JzXM-x4xd}+mHzPJVq{&L}?^2YuD**=XwiQF8rIvZa%j`^ZK>)N>D_ttx{vF ze|V2|C`5~tMG7@2`FA88!KDW2ID~yA+m;;t@@T$NxK;qG^o|=YvNZ2bM2|%>>F+ZV zy_|FjWQ?9e^C-={fOWr0&1{T=B|nACenzItR1g4Jgsqe-F;^|}=HEExQfKl>Kc=&z z3bGbg8e5-wH`w(;d<6?eYNtD7FQkwf(}kKHQuZ1fa-uZ7q1 zmdH+gI-PSsF^Y#}i~OE`-B2fJV3 zN5w0N_4O7&ih)}MN~mP9dgFaUMv}qv8+z~D*FyzR%OvIYGhEBRpw5|>qOo5(Q-It8 zBjui1Im9kPB2R)}gwXj>c68;h8?^1k=BmZpwTe!Omtq51kd?#?CK51!JnXyhrf^fB zJE*{e;t(X~P}lLjV?KnaL`sa0ie!CeTusi2W}hMiig4!`%E>6}-<$nW;- z3TUsT$}q?3x;&iF`^)l1R@NS{Vp_WDc{~GS@uYRj=V|@@uv{wjV`}68TpxQw{D#)^ zVx#sq6%^Dv`?%}MN_v?NHF``mnk1xugvL~Ef+t{l>=#$%B`}L8tKo@@^|s2dQj*rj zRg5?`b))p4A3hRdAu39QHujWd@{CAF*?zGwX6!AX+h-5qSx#-|-7Vjr&k*=^@~C2S zDLUD)Xmx5de#NV!{x@iGE;i+31Jvin-9tFp(5pysd@K$)JW;W^4bw)wl(pE;G&dJ4 zYZx(?Gqs|Voq33HZ70M_;Vf0=QE-2L{G_9b`=Iwv<&ZVD_Tm?1I5FU~4^Svv2LV|T zSZtAdcpFp<7n|6t>+L$JMX5Of6Pqc4|lOlPu-E75BXgZXQX zt*;c8-AOR+@K&$)(#@%w-&Ll%_f|IHd+ox!h#c*Z^&WlGg}@#)*Cny!oSD8!E}ji+ zmyq3(+m}iia9TC+c!m``7vhm~-U2EWrkHGs8=qOD+X9LMkNaEF8MPm8NlpIP=RK6` zPo=tS3uMDz=izj6(*NlrB;IQExw7m;WzF79ae`T&FOm3x3foGEtzkeT;)hdht!(fo zjkpK+youLA^++q~0`4 zEpn$VSDy1TZjr|&X?))aKG_Gr4x@j~A?R1f7rL=Rt~7~D%tTN)aixtqtuNh}KJQ&@ ze!eLj6rgK5(dit6C$e?71-e3toJtjB?iG5umL7>KnKUbRO;uFQTp$^^g< zqBDDyx0vQ+Cg8EfDb@TF=95cZ_w&2|M3}QGmH>}Dx))>c{IrUWe5$=K9_e9N34P%N zselMwY1?GXALdq~`J6<~PrU14*}{Kt*X*x08Vj~d6%QZ739dG&YZne;sO=#Ir6NFo z;1b#WAS=j>rPi(B6IVF8OyVV<+k8av?I* z1x!uL@qX@0IZ4&T0E2|Gk993cg?H1x@vHkanMqNCTAe~?oY$zmZSf@S_o&02gV!KQfA+M zs zH03EoAE7{Th7DoJS;t`g40hAJS(D4jbVXm@&-U2{l3I+%=5S;ku1~+705L$$zXm>o z5%rQF1kvwrn<~0`R;>(rZ|)qNehup*<-i+>Wsnz0V2^TGSXKrgd+!I;^H2Jg!_H~x zIkElRL*)p1bS*;4Qf$H}h0i#(V`IDFtxyoGpz6->G5YXgi?{-CBY&)^ar`hhpjL}D zNYL5Aq@GQVnJe3~O_Xpt5zkU0_Hs;ZPwV;g)*vgaCVMKK1$g!yu7s3YKvd`3e>$(F z*nfK6anW3N%JtA{rQ{x^KIp;GY?I*D%}pgoE30s=TBGC%_`5>v#|{|9Tc+e(?yuofeIGI;*9d|xOP&)lti~tEoOGsjZ`+;tB1zaQtBPCLPR?!RP zqY3R%L0pXEId$EWdTju^IK9^0t*5Dy+Okq0z$aw6l5oAkh^5ba&y%{%7?A7c0B>$}2%0t3 zF6_@B(!f5#JxW2Va>m`V!s`iIr^H>TTcM$$1@OXWC&wy(KjfQPb9K~)a=}%e?@MN! z6#LZ++uEDv>mTBeJNis0S6QB|iPvLS3u0aCz9gbCSGTA2p?^qqlnop=XO}j!D$hHb z*M|~A>%;%`8TQj+B&}qoV+WP;j6j1rHd1<*Z#ciLiNFg8LY?bwqe0*Or=NM#ugEwX zl%L(gaLX)#)QU`W%$S_&Ha2qRX!B@dCEyt=o@ATBlYg`h;In!{1JO~Qh%#Ka)ou_Q zYd+iE%=Pzd-G4qtRa5-jkkstOIv2{o5@!~@mAw67`nEf_>Ge}0h8ZJcakmAbRfZEh ze{z0>k@fXDeKCOZ6Q$i*7Lw<3*>kol~~^jlTIw~n-|Sp6yoTimvPG`S#{H}2-yzOnl4Df~MUNyox`HBB_2 zW)jam+{20=u`a_*LdW%Dg<=7upXIA~A_IDd4|*4mj!*&PK(<42mZyhq#(-J?*Te3+ zXxaW|1E;l^`=c=WA(JSO)ViDuaXBnNuqVYV@VaoKx4+A7?6#dCdtQK{z2tT2(J zt@iMRO)i%3;>m`uMVWAobq+Bnt7CRuEhNDN+Ht4^n6TM6lRow2XnB$=aswz__>op; zSBG=Dqi{|p;P;xhl~-!a^jJD+SwJ_0Cddl6>o&nydF<(LRXgYXFAmN8I*ho9}EMX3@FGs zxy9?)Po@Sa9UBbcl)@|y$q~D2LP%a*jc@D>_=7bi=Y5@W32X%gr#8>MI2+?k& z@A22i*noTBbFWfk!tgJC`q)Ew7$6Wve*|5xjS>jPY$x>$sk2^h5V@iP11kU)Z9^FN z!2Xw4dtbqe?@<4v!7+^GjOQblHrQfvvAurqusvITqvRed@+1%FT9JNDg}lRju_lu{ z55AYS&4rK+VArvV?1RJsuPcM)9tCBvepTWR((sN2;e82B#Wbsq{Jf&mBIt-p+;g0dqBjvJ0{k6Ohjll=qkKHJ{jv zmhodbN$3r4o#focabsZ?5D1bG3| zxv(tVmb&O^rX#Xy?>x?O*!j5@~e|IgnuZu{j$dNo- z5$751N^naxR^}K@Cck@Yg|*UJp~=Vo-3;6u*q<_yN;QhI!%@Fh&~iEK;Ffa83gH{d zvwt7R6}lQEgIcez6u_)H*3YRAvhpmJ=Q@Ry>-*L73bV{VLEFpuWlJ*BUlP}`FNR*u zc*cE_(s{yU61UU~$KQ?$5HKAwn&C5#_zL_mKDbFw^MJX1WyDH_vwNxw zUAApey{|4_rnqpxbs=}iQQMjV;>=4*C&{oEES`u9g(b( z7)n#sT6NJ!0GY^@iOe_@d$Env;puIvhnLv~yUap`bRa{?h35$?tX;Uh$3k_Dd+ebV zq4QZQcse15(~q5lZn0%F|FC1`T;Ht&#G+{%C}d!9>gESIN&;^_^iPs|HC zMiIt11uNbBW{>J9@+!;~t^Z%<|M_#PNp@<9Cv*pCd}+<>&te2{t6#@i^0+617ECA$ zyiY!2V8oNDlTTB4u9UzTVqb-BUjrs;WNKdtY^0zu_;!+DgXDv|t3x`|D`PW054V%y zhZBVXW);SnF?i>E`^hU@-~pY{Fw}mZ7u9BXI|(Uc`<_dAybhqd31FZYAW^QgXKnIn zo*<6!g~$1{Yo9d)~~p9!L9y~2el1x{sw_jb$0DH_d!zZr{0WiJGF&7-WFGK z?@iFgO{O1?*?6az;T+Hsgv(y~x+Y^qw__FSxx3@G>(jjByxl#d1YneDe-99)cAJ;# zDnbXE6D_|N>@S{PqAYLRe)c$d1c zs5`R%umSXSLiq9B=u6Q1gemnywVzMfTz;~AedI$gi>W~$QNcYC!1tQjmilI8)+{N< zWUb*drBlvk3|o)GKvjY|9O4fVV)HV~FJ2KbuY$9b+M;v#ZT6ITT#8D$mT6kj}9>*}^LD0aqh(%$*VY~W*lrr|*NefRCFB5LM>6!e8dx9m}2AVp$3-l@~OCJ6KW9h$?TT%UUcjmq_ z6b0Zfl}s8Cj(=$c!4McSy4<3@sni*|s%~*JZw@&rUNdc+5EuUnmdO=>z+prMp=s01 z3vzO8(@IBR1&u)}O=TgLG;PxN;Q|gJ^6^OUvxegmM@ERk1G=t|sLcY71vi8vfZW8H zJMcx1c4!slQ7PtFXA&+L{f_~ne2NYfL3&F&MchrCwWXS*o)kGbwkH@|0Rs?%|9~(* z;>C^>zn9Lck9QnNDll9|G$e?MQFx zAb&gs@tOCS@gF^%of;t+QH3)IrEn{9xUz5wuOC0;&9`<2O*m)LPrL9Mf!Ha;W*IU~ z^InHmQ|Ta@nGDOkE6g9`X8DB0%+_Ss^W*g0E#}R7gSItxh@AgEyx+-hP@U>~W$((T z=d@>g?!%is7~N3s0djBc_^$LP(Ol@ntcZ9DU2jNE(-||9B*rM>`2xX^ zXsHj1WX4bWD8d1fWCQO~8$i=V9XX*grv>(Na5eO%P-^UUs6C!m)L(fb(-Bn4ka=!x ztM|=ru4up*LjSgzd-;cljULm?N^IL<#g)iWW@#*JA!nG6fce=6YXb=*Yr>oy8Q;C$ z2r0)VQOx*rdQNUvO@Z-qn}eB|%1sigPBe1_9$j{{Vpi+3=gRy$_-6uXqxYGMdBU9m z{6S6iLevyaU-`L?`F&i$WjK|E6lAfmha><2R_U~(lm)q`3uMkYsX*o1Fy=>vwoJ*S_4%oK2PJws6QoE{ zADG$vitS>}d$g4(`)*42y_0Y8vDM+6CCusLnLkCr%C4!lVDW zMW|z${yWDro3#eO(IsI?j%G%QE>s>7#7^lXlx-fRaYmWllj6;_L2yxKdYDauCiLj0 zH#@@M%7go=*N#=U);#y}@>&UlDpsD?8mUF<^Ho9-Y#L5<2z4=OzCFR_ABt_A)S#O$ zh^X0WuUwoLlfBJ~=?`))$R5kXT&JnSC35ZK_rS%_z6GDu#fs@Ia$~tf(0pwL{P@9O zq~QY})N}3!(^wor->I--$<+n|JNjinNqrWPqC4#DW!Uw>sHaYQPiSnV>q?V`$P#^NsKF5Jz{#9FA#Hog+_zQiu#aN@YW55t{Q1VYoR_yDly8PpT^3I7yshYmA?-WZbl# zDe3AsN}ecJ=i)w_JWu^a7#Q66zkxd~gyT*M6(_K|M|s`jHJG_74s+9tDXpFEuD}i` zV%qKm!L_^QpCtm&m#>>-7J{pWfUL7>@Xmr*9%U4R_&w78krEXA@2vJ@#^+E;_S#xt zrN)fnB6$**8GZ=9~yRuG_^!oa@J}x~RCj4V6ka zZ*`vf9bT-9EMf~DPl%qcuM%PH-9@3|UZdwa_ zb&)5P`{bNVSbRU6HD|KK^Fh69C9C7M?=@iaopa0*l@BPJ4O*YXp!3{ero5vqTZ8R{ z;x|%OE&HqgxlNtF!UZpujUAh=*E);=8S3KHZQy_#wFJ{D9qDj|#)lNzcE_YS+zH*n zu$)y~M$PhMxZ#@Ql8By)QH7MRN% zBgIt;`yzhz4%JE_+m|sI6IbqqJSBYPYrESwv!45{0_zsr^CdjDu5sULX9ZQtGpu^9 zEGJ8QlYJ&z>wJ`Ui3g!qc$rVG0jKgqP&-r0W_O|3W@RX39LTAOK8r0sdC*_U)S8Eg z%0eihozqGcE7jCYr(G<(oK>|e_pKBdak=s;L%%=h@3EE1Y12yGay9Gs+&{*2B zV4RS=-r?f2mx{@y=i&O;BJ$@W7nU57qldlv!p+o_o!vU;e%ELhq0H(0ev->HMIUg5 zNxe<9u9{M6bKQBDB~3>u-%XTr6bCh02xw8y2CXMv23~ zDW1I=Zk-fql}*T;JGkg1U>$Csi;?Ba1ZjzCW{=wC+PRA%rxUQ&>kd~*T1!SBf4z(Q zujQ?JNj2Ie1l%>+eWa4%A!NtZ+vE+xHEu!96K^T5e>3XKmGFfXh2#aN^O-K(Un#kYT(}BqfzVfp+8o;8)Npl>Q6k<9e$U$(>mee zkchqBPBt>N^C(|`Avayn>V+BaQudVo^AkszVxf2^!Yj6pXTOHVC}ak|#Z?8m8!(yH9FQJ;Gfv^=1RZ z*$~!T*`CL}SyXa+EvEN1QT}yu)*wI8gf0l|kV(fuj*?6MLza|sUC6oeE@P$$loPdV ziwKmHwdwc$Mx&_HpTXz~N$g%p0@bdoW)i+`KToS&m3mPe((Ydnw@)GT9eE_N&nXEKH%BbN$%V;>ME1G*(Q66tSQlS2bub)G`z(2ENQ7)t_UCWUrml!L#HxA zU)axZisk983E$4^&ytwBsU2n#C0)c&aGLc7V_srUAn-n7aSP&q6IaW%w%G~FTPgPx zhRxkn_8RBgG#_GZwXg*2^q*=p1t=mhW1LK9yr&qwaE%15ef@ulg@BzLL2u^_7yxPOddoe=IuSH4~fsjhO z)=%*OC2PSQ6}~Yq-m}AMj%=pe)`)?YHClV@{HMLpJ%qF>8`YAi#%=r~)K?Ni2!XIG z(?iOd3cRn^)E|*LY?9}#X?zl3jMllq=D3rvD2N=ein>&&fDG_i)%8tO3}4YGO^)Hj z6@z2GK796C)O-UAp<2gtrgb{8%j#&sRv|?I3z0bMj}35dy}t}6Lqn=MMU+Eq!br;> zCPL-T#_5NZ>r-R1I0t?sX1iVAo4h|8hnQQH;t<%nja!;Iv886oML(dA6liNYH##m4 zx`sO)+u)7B!veLyj@+orFdF^R=gHYo7xmbcol} zBaX44O0|{9Ch571gXyA2$XAeCrz-4mZmOIi39J;L;HJfZ=VeLGY?Vwm1!|%}#G%*o zCwuye3N?DIki&HYG+^`m;>J2^%gKuLU-$l%M)#@rA`p>73T&b|~H^C>SwB zs9M5Vo?^fn3^WZKNq&{mt)bWj7J*yYw&vVNPddDq_m{_)QnkQj$yj*KbenW4x&L_p zHa<<^W@AD6B#Q!%X0n!X?3OLEx0b(F$!d1>hjMx|@gDMWjvEzjo?uRW2p{XoofHn@ zgA?gZ%JGkxesSJ+g)3!w<^J$O=+Xv?h&)+^#A=eWMl;u(3Si}IuipF@n$E#_?)~iYDm+E}K{Iz4j&jBC`4|^NylWDuE2bz056_eL z+^kcy`V_CvV-#sqS=ZMA zrukjxINg0~@4Z%XM*``DeB3DY?+&>Y^TVXz+-|K5P;by#sJ(<>njA@K^TgjLrE8t< z|CkZi`b>JhnC5N^V=Tz##E;6svCVcED_a6bagHAOqs!WIS`&+v>52e^#XLlwe)FJf*jkQskd6m1UvE9 zw+lyQ;CPdA0eV+q^l;eE5RC{Y2N*jfIL>XdJCyw;0(A+Yyp_s;ud=SGWw45BIuNLd z$`YT{n((PLuW{glb0@$0vjt{pIE+y(k(APBBg<^6-JO3J7SeQ6!mSR3cB`8svcWA~ z<8b$h>Ydj9Ws;pUn)|hc-FDH6kc2&)nQ^SHx~3G^St4+)M2)*3v8^l0k@=gxE~OG@ z-VgI(Jvpm!PjlCex&a>(h|B-oZr07fE&^XJxmJ?lFhv>q>yg0CR~_j#YA7Vs zA-jD<15bhO3=yj5-%1XyKeV6RAvoa#?EOG(0iaTZHfSolfNN98+zWT6D#!sm9Nl)-a z0ZqYl&tK|6!NKy=@K&b9q){`}Va0mGUg3=ea;6#dgeCXh#E#)h33S2hk}!!x4p}t8 z^db+_+>^@>)Pu$x2qn1e;^bbhg-TKRMv7&M-+WzTjym)FFC*FIeALCS;KR#^X8NR~ zwOhpi2b{V=LjQRH{J5ruoMLgny^x0qhw|h!>f~wUDmjeoeiwXU&iou*NFk@~Dr7#q zSuHoRW5*2}rRKr>IW+4cs_5+{voFexmCC_A8P6BjUXGAy{&Pf!@dH6~>5m(M^++8o zeTaxAA5c4UDWOM;X67xr=MZ!-taIyJxl8d+J83UiaC6>4+7e$PTrH-CcA<@1|E-w& zw#@7|JkZAsm~i}N;W*~30{Qy}gm8A2_qs}-P<){qVk~_WMVFzmn*@R6fEwrL{;=Zg z$?7fyZwK&$IaHOF_7Wy?g_yMIOHt*032ZqegpQp?-;RA4P}55aL>OT(UU3b)H=tmW zhdsG>e(JpP(Kt#9Oz6d-Mqp@Qj$eD9h_DR3-0jJwlr1^6%Wq=O_{(YVZ$Z3LJkZ;G z@68frimsz%pNGWr&wLiRAC>)5Cm+^fA8W6>(*Cx8VB)UIa$Tp{BfV7xp{UPZ^%qOP zV+2}-E(=|tzcR}{4s?aQ#W9rM92aFWG^EwK&(-8gWnnyuYzHGX!hJXZ8UVb7ZXZ^O zzuZ3{fk@Tl>nYkCN3QTUI*pta5zTQ>^?^>Q`h38^f1kH+SC65BU&DQd8MsD=iZPZy zB3ts2cHrUtETf8C7#DPEij=aP`0MCN)Bh(Yfak!Mch2-4{6EItElZMR#}y-L{&R-Z zC*4Q@WNb+vSF5{sRb@uFn~``1P2@m$f((XU$xonE9D!Xo&Ql57?~#p60-sB~4N6uc zh758gWMVms^i)ZQzv?DYMi>%4+W5= zDWsKBPut=Gs>Z!6@t1xzSi^cJIC;qTJSU)y7yNM@sI8ws-K~q-$b?GeZ4~mjD#W78 zRG6w+4B55!uy(q<7;8q45^btMwfrI1$BaHY?~ZB5mEoCSkc~6itIJ;V&L40o9bGml zVXU|_sk5O44*%-_gZPxB13uiOdUwy8(!N^Ssa0Ns{gm`{oi4EXF%NhkM4#jQSO}N& zT46_Dh_0B&R3<44SQ*@Y^6TLsRU}L>-pyflP(vlIW`9|Q0o+l+1!5kHm6@{*ed zh71h{>}z+JHBpjH!(}3qw~HoRQ4O!B50r6FT;u@#4wGC);bGmPux+V2@-~{TL=XAG zD{(*z2vKqR%FEU0eh$Xp053Hx*#dd^sgjQOzY{Rs|4z>!JTjeT08&mcH#dtbW-ZEF zCWE0(NxPPyvb>dMU}wShmLRFUMp@yBskSn4gpRD}mvInyyF_r2GP~j;W5U&hdcjK= zlQ#@&$%Ysr&%0WB3V1<@(PEW2Wjq+rym$(Dsh5p=v$S`XF2LA3v*zO~qO5{`IM!Y| z{nNGxJ1Q{C1{Ojef;YXQux{2&CM^?KM;)66Mpdk}mT8%m7XFe4_&-1i~(QP!Kqb6uAHA}D_mDv5Z#%j%+1 zV@U|#krJJ}8s!LW828m^|L1-ix}lG{k%s~^?ytWh5tjwpe;+D<{e{I4PXR_5x3(w$ za=FQrEtFgemqt$@>2-$3)?t}n)IgNb;7O>G+`p3GLfH2xJc8q)+3gYXkZg|t6RwVL zdCGV?bGa@Hs9T#-$>XAyvd4o8llWEyF}vujC+9ySL4C&G| zstC-5Q|k(=br*XSbDzyt$j<9JVsBi2UGf%f87|zz4%{tl8E2&DsoPsnha?nAcL;1oL^7Yl zQC_nksqM>Cavu6VA4ISK%PA3hOEk6;*WO~RULh_ma-6o();m<1@?DaXz(zo!nKrjM z!VRfDo+p2|mAt$v(Ej5mA@2*RP!AqH3BQbAB!kwWmZF@ z_}v2u51~Q^p-Iq+7U?i?P&>zP`BS;H<1R`m?=Pa&SGhai^}e;P%r-@E5@KZ6)ybE; zevV~I)Y5$0+DU)>!EDHOXZ{=s`sWG-q9Ym+u8;_KWnsl35WnVt(#PA~^U(Si2NLcz139wa>wRn>!8Vk{0Y~dyq^IbhvbEN| z*q~GL>T+(Fy}26qq5d#h0q8#fKjsYu{^pn`2Eu#!V)JP&au${kpn7t zP^vce5*hM%XGoJ|jic_;_Rvv4mB=fIs90B8E=Koa_>I2d@bK>g#zSg+BgipCuJ43p zXblB6VBD14k|U;W!Nk1&TbC1>nhcW&0pxRY$y3zxMN9kkZ%pcofR0*9qGi;US)sr~ zq?B?kkPe(=N79-vmFU+3BLr#VZ~hMYFgh~s0E7>6P|UeaH)2{T$iX_+;pZusd1U%c zRm@2mVq*ibMO{&V)$)06HPg*qySEfZIX2dDu%2R8roeCdNG|}0 z2fP=yDwjX4Xr@($WxYIJA5Kpo)juMcGZSkTKNIr84m_z+6Ki0kB}kOr`oSF1Wf-O~ z!O{pZw=!hDh9A`WFgrt72$lb=%3AOO*?UihJ$ME#^=(MozYBdRMm+0+X(V#L;A^yw>u}ekuR& zSv$lK5&j!177SGk61P_%3ti-))h0~MqOHt`R~w!;z&qDE=4|duL7y~U#Zt^FF>)o* z`HLKf+c6ZZxaU(1ufjR_EnF~yA|6P#eHqKdCE1;EXYnF}LW+si$RWosvAmtABj4|Y zW~|qBxw8UUL`F1Ob2%#jGFtG)kIvbRm>+ap)R{*c0M=>D5V#y$6J0<|u^n!^QPnd6 zt1Kz+t*Zp+(>kuv$9hbb=$!KV1oEWh1ubaQPIkJm6;6{AM|R3#`qXW#(~XQF@;vX_ z1I6OyDQHI^pk`u7upgO}=(3+WKKyEhAB7QR`U6Z9Aqp-P&oCtNV$!95VqE%oX*&*8 zi!J5);^C!1Mih)ra;bLkTq#RNqlRx?)B%s>-i(Z|gQIJv3uz-O4fMnkdvG0T`w;gp zG!jJ5{}Em(U9PnNQ-SS_j)<((&G`}@_oI6=5wvKEK4lOzGQ6(GP{x&(3WsoLzF2*h zylva#B6ytnVm2i-4A<2Ga7-vIA`%G#eT0mpezvPu&aE&QOzc7GaK?%VgW?g?;~lzM z#o)u4zNe81i$noIJ2P9a1&w-!Q}d|HyWz%Sm}FeVcwC`aiRno4I!(ACHyJ``H>n9F zJ>|91ca#S%>1S0LVXd>PB*uW^$tHXg9?}DcFb}q=4hqJMIOO7&tWS55?~zf6lnJd* z#t~cW4Y+J2!zym+;(Mi+yUD&T)j@fwYD;vv+%NSQR~7dPG`^&vn8IBFey=WB&7R8+T2W|Q!cT<#BW_oHFed;fLviV7|g+sHM2rV+x0QV7CR zk`gsbBhM&rQ5*_r&C?Tjs>Vq7D{8;xA|`2*E)48D6UHoyQlF&|8qfyoo#0ifg{FF{ zT~&)DQuLN>e&;D8CmY&CtN5W`?D7WMpexaM!3^;YUr-F6sdvrMc#=fMWAEJ&7n~jSt!~s`T>0Wlwq3&AyRS(SDKr5OHh+&9R z(rwAR(x^ar4slnI^*d%EcQ4{ff0VDA4-wRn69%`+g03tfT4gv(TPaBJrbZq3?^n*!Fd zRvy~55uuFfvJ(<|Iad})pHM73G!loV5veJ(dT#g^q20{dn5K#dXuDR~?ep2}0a}Bh zcT*w3I7WCH9Z)b$2Z3YEtM!coxo7^FfXRI_(zv!#_!GQ9g)U|U_c)j%Ht;}TlmBwH zSCkX;&q_<$JqIfOr-2&?4hXVh#@ghZn}N-T6$yra2M1&dZ2o}Z*Hc>;;q{>;C^3BN zCu)-uJa;0DK3(sIwJQrD%Yr*xL;4l8-Qt=RP_M1h!7j8`b0Fx?9(NKsMKppVcrliu zh-s&qk4cRbU@&~{b@_?MXvjQP5-94#CVmjP21p}v$Dv`Vt_7-SA+2M`;-MW!@S`fx zt|_ubx>x#GK*+#gS$j138Io;)cXf%fWo`Qcqk2b}^xJ17O^d$|L(P z+J@=CjIP*4e-|>rF3m_lL_^pkK!+8_3uHgW)ci;n{K_rUIgDQ{3_W-xFjwwU*s|g+ zGbaQ(R&LZtW{josDss&sImjjx3xh}@a+JR+@k|j!;^H3DifC8BHf$(~UDwC~mqv$@ zhL#spA}g-TyyrYWb@k;ol3}n*gs$n*C}L-nmq#yd0a)yd6WhoXEpLtnYn!dH2hdZM zj=zUp6yk~Ab?BpvWwP8`j4AYm0KoD;@YqGNj@Q4qe<@ohY%FmWot(xJkA8}6mSmzW z|M%toqX1iQp=5a`%xpW>*rNM-DV>pPB_@NE-+QzVC&Gmvr8*pF8!zjiCekGtz+o

    E;sKzdncHfZkd9;w3kH9Eua|!{wN!mJA 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

    4zFa^H10R>#mGb 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∓acxnPA<5ZLU9OcVHXZ*PUZMJ1xAX(ZWH$kY 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%0D|4pkXm0C={kDX|ATIhr6FCmmiWssTD}3o8_5O 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 z zpiVJnj=`?U7UlAwOqErlt_gV6p%L?IS8(>3FSn-7x|1>Dht&TvS=Wr_5JCe3xEQ3@GXO*^c?Z`x_HA;cn1q6t~dcIs-?~+61~sWt$Qn3 z*{Y(*&8nBR3_ACxvhj%iINa|eHHF3%WwTMuAANNI&vXT5vGo>7Bfh8M(BNK+hZ5}z z8E@8pGkzF1w1cUKD2#ko^w{6|476KufS!!sQQ7kLMvT$tG$E;*AZ>^f915}V$59xl zM!`F!a|KEHUYw4jL6^4Pv5H8{kPfqNK_gO7Wc$@P_SvbJ|I|Vob&7ErXMilvP8a{H zeR>PgOajgK136~hZ(RB3)sC?eQ;W7@(K*m}V&1sv?9v{@(cv%NeJ3cco(JtO^{8Z%jrhcQGubMUsF22h{NiEQFxE@uUo~qm}l7dqt<_&D{r*bh^dX7yMzxqh7Ni0TdC38Qr4k#I0xNvDl| z65Z2W8-+KLMXaAtkDDJDfiM3C6=)8tfb--e6%Y`$a$Y~-FCC`Wx>$WGSpJ}UoUh~n zuSD6S5YH&t3F=+2rMPC+g^f$CuAoOEGcB~cqrMq7DA#5E_oaDbd2wFQb~`ClA*TxA zjAL3=$c=Y7^`%}0nKzb3L`IkV}d~kJ1)Od{g81bF6zMFPJ>ryD3vta^MNlVY*2^7 z=UZ_LpN9F8&g{QzjvR*D_=CBl_Hlbwr#N)Yr9Q;CA4y~`X9d4vEL~_qZHD0-5pqg$ z5wm86!_uYp=KMk+L?N|w@eD#Fzaupg3YLhYOK2p*BTfdl?&&9)$|wos^rPfxcM~=< zf{GngWMxCpKvjr^~o?u}yT zyZ+ESaA>-`oe!#3{xYm_E9Ξ?HfWx#v}K`U;txnxHTwAL>lTjF=3akD7X_&Lv&E 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

    s$2NJxjzfB2e}1#tX4^GsHq&k$r<@q3x1 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 `s-banner__${suffix}`).join(" ") + " is-pinned"; + + function setShowHideBtns(show) { + if (show) { + sysBannerBtn.addClass("d-none"); + sysRemoveBtn.removeClass("d-none"); + } else { + sysBannerBtn.removeClass("d-none"); + sysRemoveBtn.addClass("d-none"); + } + } + function setStyle(e) { + var sysStyle = sysStyleMenu.find(":selected").data("class"); + e.preventDefault(); + e.stopPropagation(); + + sysBanner.show().attr("aria-hidden","false").removeClass(typeClasses).addClass(sysStyle); + setShowHideBtns(true); + + // Pin banner + if (sysPos.is(":checked")) { + topnav.removeClass("t0").css("top", sysBannerHeight + "px"); + sysBanner.addClass("is-pinned"); + } else { + topnav.addClass("t0").css("top", ""); + sysBanner.removeClass("is-pinned"); + } + // Add `important` modifier + if (sysType.is(":checked")) { + sysBanner.addClass("s-banner__important"); + } else { + sysBanner.removeClass("s-banner__important"); + } + } + + function reset(e) { + e.preventDefault(); + e.stopPropagation(); + + topnav.addClass("t0"); + sysBanner.hide().attr("aria-hidden","true"); + setShowHideBtns(false); + } + + sysBannerBtn.on("click", setStyle); + sysStyleMenu.on("change", setStyle); + sysPos.on("change", setStyle); + sysType.on("change", setStyle); + sysRemoveBtn.on("click", reset); + + document.querySelectorAll(".js-banner-open").forEach(function(el) { + el.addEventListener("click", function(e) { + e.stopPropagation(); + e.preventDefault(); + var targetSelector = el.dataset.target; + var bannerEl = document.querySelector(targetSelector); + + Stacks.showBanner(bannerEl); + setShowHideBtns(true); + }); + }); + + document.querySelectorAll(".js-banner-close").forEach(function(el) { + el.addEventListener("click", function(e) { + e.stopPropagation(); + e.preventDefault(); + var targetSelector = el.dataset.target; + var bannerEl = document.querySelector(targetSelector); + + Stacks.hideBanner(bannerEl); + setShowHideBtns(false); + }); + }); +}); diff --git a/packages/stacks-docs/assets/js/entry.brand.colors.js b/packages/stacks-docs/assets/js/entry.brand.colors.js new file mode 100644 index 0000000000..c77299f0a0 --- /dev/null +++ b/packages/stacks-docs/assets/js/entry.brand.colors.js @@ -0,0 +1,27 @@ +var copyButtons = document.querySelectorAll('.js-clipboard'); +var copyNotice = document.querySelector('.js-clipboard-toast'); + +for (var button of copyButtons) { + button.addEventListener('click', copyToClipboard) +} + +function copyToClipboard(evt) { + var target = evt.currentTarget; + var selection = window.getSelection(); + var range = document.createRange(); + + // Grad the text + range.selectNodeContents(target); + selection.removeAllRanges(); + selection.addRange(range); + + // Copy to clipboard + document.execCommand('copy'); + selection.removeAllRanges(); + + // Open a toaster + copyNotice.setAttribute("aria-hidden", "false"); + setTimeout(function () { + copyNotice.setAttribute("aria-hidden", "true"); + }, 3000); +} \ No newline at end of file diff --git a/packages/stacks-docs/assets/js/entry.colors.js b/packages/stacks-docs/assets/js/entry.colors.js new file mode 100644 index 0000000000..af26a5d7b8 --- /dev/null +++ b/packages/stacks-docs/assets/js/entry.colors.js @@ -0,0 +1,63 @@ +var css = document.querySelectorAll('.js-css'); +var less = document.querySelectorAll('.js-less'); +var hex = document.querySelectorAll('.js-hex'); + +var cssButton = document.querySelector('.js-css-btn'); +var lessButton = document.querySelector('.js-less-btn'); +var hexButton = document.querySelector('.js-hex-btn'); + +var buttons = [cssButton, lessButton, hexButton]; + +cssButton.addEventListener('click', function() { + resetSelection(); + + this.classList.add("is-selected"); + + for (var item of css) { + item.classList.remove('d-none'); + } + + return false; +}); + +lessButton.addEventListener('click', function() { + resetSelection(); + + this.classList.add("is-selected"); + + for (var item of less) { + item.classList.remove('d-none'); + } + + return false; +}); + +hexButton.addEventListener('click', function() { + resetSelection(); + + this.classList.add("is-selected"); + + for (var item of hex) { + item.classList.remove('d-none'); + } + + return false; +}); + +function resetSelection() { + for (var button of buttons) { + button.classList.remove('is-selected'); + } + + for (var item of css) { + item.classList.add('d-none'); + } + + for (var item of less) { + item.classList.add('d-none'); + } + + for (var item of hex) { + item.classList.add('d-none'); + } +} \ No newline at end of file diff --git a/packages/stacks-docs/assets/js/entry.icons.js b/packages/stacks-docs/assets/js/entry.icons.js new file mode 100644 index 0000000000..ee4f0b2c9b --- /dev/null +++ b/packages/stacks-docs/assets/js/entry.icons.js @@ -0,0 +1,18 @@ +const List = require("list.js"); + +var monkeyList = new List('js-sortable-list', { + valueNames: ['js-name'] +}); + +var icons = document.querySelectorAll('.js-icon-list .js-svg'); +var button = document.querySelector('.js-color-toggle-btn'); + +if (button) { + button.addEventListener('click', function() { + for (var icon of icons) { + icon.classList.toggle('native'); + } + + return false; + }); +} \ No newline at end of file diff --git a/packages/stacks-docs/assets/js/entry.modals.js b/packages/stacks-docs/assets/js/entry.modals.js new file mode 100644 index 0000000000..6fda6f0455 --- /dev/null +++ b/packages/stacks-docs/assets/js/entry.modals.js @@ -0,0 +1,17 @@ +(function() { + document.querySelectorAll(".js-modal-open").forEach(function(el) { + el.addEventListener("click", function(e) { + e.stopPropagation(); + e.preventDefault(); + var targetSelector = el.dataset.target; + Stacks.showModal(document.querySelector(targetSelector)); + }); + }); + + document.querySelectorAll(".js-modal-close").forEach(function(el) { + el.addEventListener("click", function(e) { + e.stopPropagation(); + e.preventDefault(); + }); + }); +}()); \ No newline at end of file diff --git a/packages/stacks-docs/assets/js/entry.popovers.js b/packages/stacks-docs/assets/js/entry.popovers.js new file mode 100644 index 0000000000..cbf30fc996 --- /dev/null +++ b/packages/stacks-docs/assets/js/entry.popovers.js @@ -0,0 +1,21 @@ +$(document).ready(function() { + Stacks.setTooltipText(document.querySelector(".js-text-tooltip-example"), "Only members of this Team can see the information posted here. It will never be shared publicly or accessible outside of your Team.", { placement: "top-start" }); + Stacks.setTooltipHtml(document.querySelector(".js-html-tooltip-example"), "View all questions with stacks", { placement: "top-end" }); + + Stacks.addController("section", { + targets: ["help"], + showHelp(e) { Stacks.showPopover(this.helpTarget); e.stopPropagation(); }, + hideHelp(e) { Stacks.hidePopover(this.helpTarget); }, + }); + + Stacks.addController("actions", { + loaded: false, + load() { + if (this.loaded) { return; } + setTimeout(() => { + Stacks.attachPopover(this.element, `

    `, { autoShow: true, toggleOnClick: true, placement: "bottom" }); + this.loaded = true; + }); + }, + }); +}); diff --git a/packages/stacks-docs/assets/js/entry.prose.js b/packages/stacks-docs/assets/js/entry.prose.js new file mode 100644 index 0000000000..8ab8000b21 --- /dev/null +++ b/packages/stacks-docs/assets/js/entry.prose.js @@ -0,0 +1,5 @@ +$(document).ready(function() { + $(".js-spoiler").click(function(e) { + $(this).addClass("is-visible"); + }); +}); diff --git a/packages/stacks-docs/assets/js/entry.stacks-editor.js b/packages/stacks-docs/assets/js/entry.stacks-editor.js new file mode 100644 index 0000000000..75a026001e --- /dev/null +++ b/packages/stacks-docs/assets/js/entry.stacks-editor.js @@ -0,0 +1,18 @@ +import "@highlightjs/cdn-assets/highlight.min.js"; // TODO move away from using cdn-assets? +var { StacksEditor } = require("@stackoverflow/stacks-editor"); + +new StacksEditor( + document.querySelector("#editor-example-1"), + "", + {} +); + +new StacksEditor( + document.querySelector("#editor-example-2"), + document.querySelector("#editor-content-2").value, + { + parserFeatures: { + tables: true, + }, + } +); \ No newline at end of file diff --git a/packages/stacks-docs/assets/js/entry.toasts.js b/packages/stacks-docs/assets/js/entry.toasts.js new file mode 100644 index 0000000000..00bb5a1415 --- /dev/null +++ b/packages/stacks-docs/assets/js/entry.toasts.js @@ -0,0 +1,18 @@ +$(document).ready(function() { + var toastOffset = $(".js-stacks-topbar").outerHeight() + 16 + "px"; + + document.querySelectorAll(".js-toast-open").forEach(function(el) { + el.addEventListener("click", function(e) { + e.stopPropagation(); + e.preventDefault(); + var targetSelector = el.dataset.target; + var toastEl = document.querySelector(targetSelector); + + if (!toastEl.style.top) { + toastEl.style.top = toastOffset; + } + + Stacks.showToast(toastEl); + }); + }); +}); diff --git a/packages/stacks-docs/assets/js/entry.topbar.js b/packages/stacks-docs/assets/js/entry.topbar.js new file mode 100644 index 0000000000..0795f92c62 --- /dev/null +++ b/packages/stacks-docs/assets/js/entry.topbar.js @@ -0,0 +1,13 @@ +$(".js-topbar-example .js-search-button").on("click", function() { + $(this).closest(".s-topbar") + .find(".s-topbar--searchbar") + .toggleClass("s-topbar--searchbar__open"); +}); + +$(".js-topbar-example .s-topbar--menu-btn").on("click", function() { + $(this).toggleClass("is-selected"); +}); + +$(".js-topbar-example .s-topbar--notice").on("click", function() { + $(this).toggleClass("is-unread"); +}); \ No newline at end of file diff --git a/packages/stacks-docs/assets/js/global.feedback.js b/packages/stacks-docs/assets/js/global.feedback.js new file mode 100644 index 0000000000..3ba8456ede --- /dev/null +++ b/packages/stacks-docs/assets/js/global.feedback.js @@ -0,0 +1,35 @@ +var feedbackForms = document.querySelectorAll('.js-feedback-form'); +var feedbackToast = document.querySelector('.js-feedback-toast'); + +for (var form of feedbackForms) { + form.addEventListener('submit', handleFeedback) +} + +function handleFeedback(evt) { + evt.preventDefault(); + + var formData = new FormData(evt.target); + fetch('/', { + method: 'POST', + headers: { "Content-Type": "application/x-www-form-urlencoded" }, + body: new URLSearchParams(formData).toString() + }) + .then(() => openToast()) + .catch((error) => alert(error)) +} + +function openToast() { + feedbackToast.setAttribute("aria-hidden", "false"); + + for (var form of feedbackForms) { + form.classList.add("pe-none", "o50"); + } + + setTimeout(function () { + feedbackToast.setAttribute("aria-hidden", "true"); + + for (var form of feedbackForms) { + form.classList.remove("pe-none", "o50"); + } + }, 5000); +} \ No newline at end of file diff --git a/packages/stacks-docs/assets/js/global.hamburger.js b/packages/stacks-docs/assets/js/global.hamburger.js new file mode 100644 index 0000000000..694ea1eef9 --- /dev/null +++ b/packages/stacks-docs/assets/js/global.hamburger.js @@ -0,0 +1,12 @@ +$(document).ready(function() { + var navigation = $(".js-navigation"); + var hamburgerBtn = $(".js-hamburger-btn"); + + hamburgerBtn.on("click", function(e) { + e.preventDefault(); + e.stopPropagation(); + + hamburgerBtn.toggleClass("is-selected"); + navigation.toggleClass("md:d-none"); + }); +}); diff --git a/packages/stacks-docs/assets/js/global.jquery.ts b/packages/stacks-docs/assets/js/global.jquery.ts new file mode 100644 index 0000000000..49089ffc0c --- /dev/null +++ b/packages/stacks-docs/assets/js/global.jquery.ts @@ -0,0 +1,2 @@ +// @ts-expect-error +global.$ = require("jquery"); diff --git a/packages/stacks-docs/assets/js/global.navigation.js b/packages/stacks-docs/assets/js/global.navigation.js new file mode 100644 index 0000000000..1c912936f5 --- /dev/null +++ b/packages/stacks-docs/assets/js/global.navigation.js @@ -0,0 +1,92 @@ +$(document).ready(function() { + // Cache some variables + var navigation = $(".js-navigation"); + var hamburgerBtn = $(".js-hamburger-btn"); + + // Disable any empty links + $("a[href='#']").click(function(e) { + e.preventDefault(); + }); + + function regenerateMenu () { + // Hide the navigation if we've opened it + hamburgerBtn.removeClass("is-selected"); + navigation.addClass("md:d-none"); + } + + function killEmptyLinks() { + // Kill default behavior on empty links + $("a[href='#']").on("click", function(e) { + e.preventDefault(); + e.stopPropagation(); + }); + } + + $.when($.ready).then(function() { + regenerateMenu(); + killEmptyLinks(); + + window.history.replaceState({ + 'href': window.location.href, + 'title': $('head').filter('title').text(), + 'nav': $(document).find('#nav').html(), + 'content': $(document).find('#content').html(), + }, '', window.location.href) + + $('#nav').on('click', 'a', function (event) { + + // Allow opening links in new tabs + if (event.metaKey || event.ctrlKey) { + return + } + + // Prevent following link + event.preventDefault() + + // Get desired link + var href = $(this).attr('href') + + // Make Ajax request to get the page content + $.ajax({ + method: 'GET', + url: href, + cache: false, + dataType: 'html', + }).done(function(html) { + + // Parse the HTML response + var title = $(html).filter('title').text() + var nav = $(html).find('#nav').html() + var content = $(html).find('#content').html() + + // Update the page + $('head title').text(title) + $('#nav').html(nav) + $('#content').html(content) + + // Scroll to the top of the page + $(document).scrollTop(0) + + regenerateMenu(); + killEmptyLinks(); + + // Add page load to browser history + window.history.pushState({ + 'href': href, + 'title': title, + 'nav': $(html).find('#nav').html(), + 'content': $(html).find('#content').html(), + }, '', href) + }) + }) + + window.onpopstate = history.onpushstate = function(e) { + if(e.state){ + // Update the page + $('title').text(e.state.title) + $('#nav').html(e.state.nav) + $('#content').html(e.state.content) + } + } + }); +}); diff --git a/packages/stacks-docs/assets/js/global.search.js b/packages/stacks-docs/assets/js/global.search.js new file mode 100644 index 0000000000..18aa501f38 --- /dev/null +++ b/packages/stacks-docs/assets/js/global.search.js @@ -0,0 +1,37 @@ +// TODO docsearch expects `process.env`, as if it were a nodejs file, so polyfill it here +// usually these are stripped out before they make it into the distributable, but I guess not this one... +// @ts-expect-error +global.process = { + env: {} +}; +const docsearch = require("docsearch.js"); + +$(document).ready(function () { + // Algolia search index configuration and stats: + // https://www.algolia.com/apps/J0LOVOL3W6/explorer/browse/stackoverflow_design + docsearch({ + appId: "J0LOVOL3W6", + apiKey: "7c82233c09f195c775eca63b6407d0fd", + indexName: "stackoverflow_design", + inputSelector: "#searchbox", + }); + + // Show or hide search + var searchContainer = $(".js-search"); + var searchCloseIcon = $(".js-search-close-icon"); + var searchIcon = $(".js-search-icon"); + var searchBtn = $(".js-search-btn"); + + searchBtn.click(function (e) { + e.preventDefault(); + e.stopPropagation(); + + searchIcon.toggleClass("d-none"); + searchCloseIcon.toggleClass("d-none"); + searchContainer.toggleClass("s-topbar--searchbar__open"); + + if (searchContainer.hasClass("s-topbar--searchbar__open")) { + searchContainer.find("input").focus(); + } + }); +}); diff --git a/packages/stacks-docs/assets/js/global.theming.js b/packages/stacks-docs/assets/js/global.theming.js new file mode 100644 index 0000000000..39853d56e9 --- /dev/null +++ b/packages/stacks-docs/assets/js/global.theming.js @@ -0,0 +1,65 @@ +$(document).ready(function () { + var themeDarkToggleSwitch = $("#toggle-theme-dark"); + var themeCustomToggleSwitch = $("#toggle-theme-custom"); + var themeHighcontrastToggleSwitch = $("#toggle-theme-highcontrast"); + var body = $("body"); + var browserPrefersDark = window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches; + var isCustom = body.hasClass("theme-custom"); + var isDark = body.hasClass("theme-dark") || browserPrefersDark && body.hasClass("theme-system"); + var isHighcontrast = body.hasClass("theme-highcontrast"); + + themeCustomToggleSwitch.prop("checked", isCustom); + themeDarkToggleSwitch.prop("checked", isDark); + themeHighcontrastToggleSwitch.prop("checked", isHighcontrast); + + themeDarkToggleSwitch.change(function (e) { + e.preventDefault(); + e.stopPropagation(); + + var isForcedDarkMode = body.hasClass("theme-dark"); + var isUnforcedDarkMode = browserPrefersDark && body.hasClass("theme-system"); + + if (browserPrefersDark) { + body.toggleClass("theme-system", !isUnforcedDarkMode); + body.toggleClass("theme-dark", false); + } else { + body.toggleClass("theme-system", true); + body.toggleClass("theme-dark", !isForcedDarkMode); + } + + $(this).prop("checked", !(isUnforcedDarkMode || isForcedDarkMode)); + + localStorage.setItem("forceDarkModeOn", !(isUnforcedDarkMode || isForcedDarkMode)); + + return false; + }); + + themeCustomToggleSwitch.change(function (e) { + e.preventDefault(); + e.stopPropagation(); + + var isCustom = body.hasClass("theme-custom"); + + $(this).prop("checked", !isCustom); + body.toggleClass("theme-custom", !isCustom); + body.toggleClass("themed", !isCustom); + + localStorage.setItem("customTheme", !isCustom); + + return false; + }); + + themeHighcontrastToggleSwitch.change(function (e) { + e.preventDefault(); + e.stopPropagation(); + + var isHighcontrast = body.hasClass("theme-highcontrast"); + + $(this).prop("checked", !isHighcontrast); + body.toggleClass("theme-highcontrast", !isHighcontrast); + + localStorage.setItem("forceHighContrastModeOn", !isHighcontrast); + + return false; + }); +}); diff --git a/packages/stacks-docs/assets/js/index.ts b/packages/stacks-docs/assets/js/index.ts new file mode 100644 index 0000000000..2d5f96991d --- /dev/null +++ b/packages/stacks-docs/assets/js/index.ts @@ -0,0 +1,14 @@ +import "@stackoverflow/stacks/lib/index"; +import "../less/stacks-documentation.less"; +import "./controllers/docs-resizer"; +import * as Stacks from "@stackoverflow/stacks/lib/index"; + +// @ts-expect-error +global.Stacks = Stacks; + +import "./global.jquery"; +import "./global.search"; +import "./global.navigation"; +import "./global.hamburger"; +import "./global.theming"; +import "./global.feedback"; diff --git a/packages/stacks-docs/assets/js/tsconfig.json b/packages/stacks-docs/assets/js/tsconfig.json new file mode 100644 index 0000000000..ec817e7532 --- /dev/null +++ b/packages/stacks-docs/assets/js/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../../stacks-classic/lib/tsconfig.json", + "compilerOptions": { + "declaration": false, + }, + "include": ["./js/index.ts", "./*.ts"] +} \ No newline at end of file diff --git a/packages/stacks-docs/assets/less/stacks-documentation.less b/packages/stacks-docs/assets/less/stacks-documentation.less new file mode 100644 index 0000000000..d8cf5be6a7 --- /dev/null +++ b/packages/stacks-docs/assets/less/stacks-documentation.less @@ -0,0 +1,439 @@ +// ============================================================================ +// $ IMPORTS +// ---------------------------------------------------------------------------- +@import (reference) "../../../stacks-classic/lib/stacks.less"; // These are actual styles used in SO projects + +.stacks-section { + margin-top: var(--su48); + margin-bottom: var(--su48); +} + +.stacks-header { + margin-bottom: 0.75em; +} + +.stacks-intro-crane { + position: absolute; + top: -15%; + left: 17%; +} + +.stacks-intro-field { + position: absolute; + bottom: 5%; + right: 9%; +} + +.stacks-home-nav { + margin-bottom: 316px; +} + +#stacks-internals #screen-md({ + .stacks-intro-crane { + width: 135px; + height: 327px; + top: -8%; + left: 12%; + } + + .stacks-intro-field { + width: 537px; + height: 390px; + } +}, @force-selector: true); + +#stacks-internals #screen-md({ + .stacks-navigation-shadow { + box-shadow: 3px 0 3px 0 hsla(0, 0, 0, 0.02), 7px 0 6px 0 hsla(0, 0, 0, 0.03), 13px 0 11px 0 hsla(0, 0, 0, 0.04), 22px 0 20px 0 hsla(0, 0, 0, 0.04), 42px 0 37px 0 hsla(0, 0, 0, 0.05); + } +}, @force-selector: true); + +#stacks-internals #screen-sm({ + .stacks-navigation-shadow { + box-shadow: none; + } +}, @force-selector: true); + +#stacks-internals #screen-sm({ + .stacks-home-nav { + margin-bottom: 170px; + } + + .stacks-intro-crane { + width: 90px; + height: 218px; + + top: 0; + left: 12%; + } + + .stacks-intro-field { + width: 358px; + height: 260px; + bottom: 20%; + } +}, @force-selector: true); + +@media (max-width: 320px) { + html .stacks-home-nav { + margin-bottom: 230px; + } + + html .stacks-intro-crane { + background-position: top 0 left 15%, bottom 50% right 0; + background-size: 69px 166px, 272px 197px; + } + + html .stacks-intro-field { + width: 272px; + height: 197px; + bottom: 33%; + } +} + +// $$ BACKGROUNDS EXAMPLE +// ---------------------------------------------------------------------------- +.stacks-bg-img { + background-image: url("../img/illustrationBgImage.svg"); +} + +// $$ NAV SECONDARY SUBNAV +// ---------------------------------------------------------------------------- +.toc { + ol { + .list-reset; + .d-flex; + .fd-column; + + li { + .mb8; + } + + li a { + .d-block; + .fs-body1; + .lh-sm; + .py2; + } + + ol { + .pt6; + + li { + .p2; + .pl12; + .mb0; + } + } + } +} + + +// ============================================================================ +// $ TYPE STYLES +// ============================================================================ +// $$ TITLES +// ---------------------------------------------------------------------------- +.stacks-title { + text-shadow: 0 0 10px var(--theme-primary-400), 0 0 10px var(--theme-primary-400), 0 0 10px var(--theme-primary-400); + text-rendering: optimizeLegibility; +} + +.stacks-h1, +.stacks-h2, +.stacks-h3, +.stacks-h4 { + margin-bottom: 0; + font-weight: 700; + line-height: var(--lh-sm); + color: var(--fc-dark); + text-rendering: optimizeLegibility; +} + +// -- Page Title +.stacks-h1 { + font-size: var(--fs-display1); + margin-bottom: 0.5em; +} + +// -- Page Title Badged +.stacks-badged { + margin-bottom: 0.5em; +} + +// -- Section Title +.stacks-h2 { + font-size: var(--fs-headline1); + padding-top: calc(var(--su96) - var(--su8)); // Hack for #anchor positioning + margin-top: calc((var(--su96) - var(--su8)) * -1); // Hack for #anchor positioning +} + +// -- Sub-section Title +.stacks-h3 { + font-size: var(--fs-subheading); + color: var(--fc-medium); + padding-top: calc(var(--su96) - var(--su8)); // Hack for #anchor positioning + margin-top: calc((var(--su96) - var(--su8)) * -1); // Hack for #anchor positioning +} + +.stacks-h4 { + font-size: var(--fs-body3); + color: var(--fc-light); +} + +// $$ PARAGRAPHS +// ---------------------------------------------------------------------------- +.stacks-copy { + margin-top: 0; + margin-bottom: 1em; + font-size: var(--fs-body3); + line-height: var(--lh-lg); + color: var(--fc-medium); + + strong { + color: var(--fc-dark); + } + + a:not([class]), + .s-link { + text-decoration: underline; + } +} + +.stacks-copy__lg { + font-size: var(--fs-title); +} + + +// -- Code Tag +// ---------------------------------------------------------------------------- +.stacks-code { + padding: 3px 5px var(--su2) var(--su4); + border-radius: var(--br-md); + background-color: var(--black-200); + font-size: var(--fs-caption); + font-family: var(--ff-mono); + color: var(--fc-dark); + line-height: var(--lh-xs); + vertical-align: middle; + overflow-wrap: break-word; + white-space: normal; +} + + +// ============================================================================ +// $ LISTS +// ---------------------------------------------------------------------------- +.stacks-list { + margin-bottom: 1em; + font-size: var(--fs-body3); + line-height: var(--lh-lg); + color: var(--fc-medium); + + a:not([class]), + .s-link { + text-decoration: underline; + } +} + + +// ============================================================================ +// $ CODE STYLES +// ---------------------------------------------------------------------------- +.stacks-preview { + margin-bottom: var(--su48); + border-radius: var(--br-md); + box-shadow: var(--bs-sm); + + .highcontrast-mode({ + box-shadow: none; + }); + + > pre.s-code-block { + border-radius: var(--br-md) var(--br-md) 0 0; + border: 1px solid var(--bc-medium); + max-height: 24rem; + + .dark-mode({ + border-color: var(--bc-lighter); + }); + } + + &._preview-none pre.s-code-block { + .bar-md; + } +} + +// Preview area +.stacks-preview--example { + padding: var(--su16); + border-bottom-left-radius: var(--br-md); + border-bottom-right-radius: var(--br-md); + border: 1px solid var(--bc-medium); + border-top-width: 0; + font-size: var(--fs-body1); + + .dark-mode({ + border-color: var(--bc-lighter); + }); +} + +// Checkered background +.bg-checkered { + background-color: var(--white); + background-image: url("data:image/svg+xml;,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cg fill='%23e4e6e8' fill-opacity='0.4'%3E%3Cpath fill-rule='evenodd' d='M0 0h4v4H0V0zm4 4h4v4H4V4z'/%3E%3C/g%3E%3C/svg%3E"); +} + +// ============================================================================ +// $ ICON PRESENTATION +// ---------------------------------------------------------------------------- +.stacks-icon-container { + scroll-margin-top: 150px; +} + +// -- Preview Area +.stacks-icon-preview { + padding: var(--su8); + min-height: 4em; + border-top-left-radius: var(--br-md); + border-top-right-radius: var(--br-md); + background-color: var(--black-100); + box-shadow: inset 0 -1px 0 var(--black-200); + color: var(--fc-medium); + + .dark-mode({ + fill: var(--black); + }); +} + +// ============================================================================ +// $ GRID +// Used to showcase grid layouts and cells +// ---------------------------------------------------------------------------- + +.stacks-flex-example--item { + &, + .s-table td& { + background-color: var(--black-200); + border: var(--su-static1) solid var(--bc-medium); + color: var(--fc-dark); + font-family: var(--ff-mono); + font-size: var(--fs-caption); + padding: var(--su8); + } +} + +// ============================================================================ +// $ Search Customization +// ---------------------------------------------------------------------------- +.algolia-autocomplete { + display: block !important; + width: 100% !important; + + [class^="ds-dataset-"] { + .algolia-docsearch-suggestion--highlight { + color: var(--fc-medium); + background: var(--orange-300); + } + + .algolia-docsearch-suggestion--text { + .algolia-docsearch-suggestion--highlight { + box-shadow: inset 0 -2px 0 0 hsla(186, 45%, 48%, 0.8); + } + } + + max-height: var(--_tb-searchbar-popover-content-mxh); + } + + .ds-dropdown-menu { + width: 100% !important; + max-width: 100% !important; + min-width: calc(var(--s-step) * 3); + } + + .algolia-docsearch-footer { + float: none !important; + width: auto !important; + height: auto !important; + padding: 5px 8px; + font-size: var(--fs-caption) !important; + line-height: 1 !important; + color: var(--fc-light) !important; + } + + .algolia-docsearch-footer--logo { + display: inline !important; + overflow: visible !important; + color: inherit !important; + text-indent: 0 !important; + background: 0 0 !important; + } + + @media (max-width: 640px) { + .algolia-docsearch-suggestion--subcategory-column { + display: none !important; + } + + .algolia-docsearch-suggestion--content { + width: 100% !important; + padding: 0 !important; + + &:before { + display: none !important; + } + } + } +} + +// ============================================================================ +// $ Theming +// ---------------------------------------------------------------------------- +body.theme-system { + --theme-topbar-height: var(--su64); +} + +.theme-custom { + &.themed { + // v2 colors and theming + .create-custom-theme-hsl-variables(hsl(170, 37%, 48%), primary, base); + .create-custom-theme-hsl-variables(hsl(260, 29%, 55%), secondary, base); + .create-custom-theme-hsl-variables(hsl(170, 50%, 60%), primary, dark); + .create-custom-theme-hsl-variables(hsl(260, 70%, 70%), secondary, dark); + } +} + +.team-avatar { + background-image: url("../img/team-avatar.png"); +} + +// ============================================================================ +// $ Highlighting +// ---------------------------------------------------------------------------- +#stacks-internals #screen-lg({ + .lg\:highlight { + padding: 3px 8px; + background-color: var(--highlight-variable); + border-radius: 40px; + color: var(--highlight-bg); + } +}); + +#stacks-internals #screen-md({ + .md\:highlight { + padding: 3px 8px; + background-color: var(--highlight-variable); + border-radius: 40px; + color: var(--highlight-bg); + } +}); + +#stacks-internals #screen-sm({ + .sm\:highlight { + padding: 3px 8px; + background-color: var(--highlight-variable); + border-radius: 40px; + color: var(--highlight-bg); + } +}); + +@import (inline) "~@stackoverflow/stacks-editor/dist/styles.css"; diff --git a/packages/stacks-docs/brand/colors.html b/packages/stacks-docs/brand/colors.html new file mode 100644 index 0000000000..06357639b3 --- /dev/null +++ b/packages/stacks-docs/brand/colors.html @@ -0,0 +1,153 @@ +--- +layout: page +title: Colors +description: See the Product section for colors when building with Stacks. While there is some cross-over with the Product colors, using Stacks color classes will mean they adjust depending on context (e.g., dark mode) +--- +
    + {% header "h2", "Primary" %} +
    +
    +
    +
    +

    Orange

    +
    + Hex + #F48024 +
    +
    + Pantone + Orange 021 U +
    +
    + Stacks + orange-400 +
    +
    +
    +
    +
    +
    +

    Black

    +
    + Hex + #242729 +
    +
    + Pantone + Black 6 U +
    +
    + Stacks + black-600 +
    +
    +
    +
    +
    +
    +

    Gray

    +
    + Hex + #BBC0C4 +
    +
    + Pantone + 442 U +
    +
    + Stacks + black-300 +
    +
    +
    +
    +
    + +
    + {% header "h2", "Secondary" %} +
    +
    +
    +
    +

    Blue

    +
    + Hex + #0095FF +
    +
    + Pantone + 2995 U +
    +
    + Stacks + blue-400 +
    +
    +
    +
    +
    +
    +

    Yellow

    +
    + Hex + #FFB500 +
    +
    + Pantone + 109 U +
    +
    + Stacks + n/a +
    +
    +
    +
    +
    + +
    + {% header "h2", "Verticals" %} +
    +
    +
    +
    +

    Teams Purple

    +
    + Hex + #2B2D6E +
    +
    + Pantone + 2105 U +
    +
    + Stacks + n/a +
    +
    +
    +
    +
    +
    +

    Advertising Blue

    +
    + Hex + #075EC3 +
    +
    + Pantone + 2935 U +
    +
    + Stacks + n/a +
    +
    +
    +
    +
    + + + + +{% include 'toast-clipboard.html' %} diff --git a/packages/stacks-docs/brand/copywriting/concepts.html b/packages/stacks-docs/brand/copywriting/concepts.html new file mode 100644 index 0000000000..7fdbb6fc83 --- /dev/null +++ b/packages/stacks-docs/brand/copywriting/concepts.html @@ -0,0 +1,54 @@ +--- +layout: page +title: Concepts guidelines +description: Quick guidelines for how to identify and refer to different conceptual units present on Stack Overflow +--- + +
    + {% header "h2", "Post scores" %} +
      +
    • Questions, answers, and other types of Posts have scores.
    • +
    • A post’s score is calculated by subtracting the total number of downvotes from the total number of upvotes.
    • +
    • In almost all cases when referring to the sum of votes, we will use the term score.
    • +
    • + Use of the term votes to refer to the post’s score is only acceptable in cases where we need to present the data in the format + {ScoreValue} votes (as is done in the post summary component). In this case, "votes" + stands in for the "balance of votes (up minus down)" on the post. +
    • +
    • Upvote and downvote (one word, no hyphen) should be used when referring to the individual types of votes cast on a post.
    • +
    • While the unit for score is obstensibly "points", use of this unit in reference to score or votes is not encouraged.
    • +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Incorrect{% icon "Checkmark", "mtn1 mbn1" %} Correct
    Highest voted postsHighest scored posts
    Total number of votes for this answerTotal score for this answer
    Only top voted answers are eligibleOnly top scored answers are eligible
    When in the Post Summary only:
    8 score8 votes
    Score: 8
    8 points
    +
    diff --git a/packages/stacks-docs/brand/copywriting/naming.html b/packages/stacks-docs/brand/copywriting/naming.html new file mode 100644 index 0000000000..58fd574294 --- /dev/null +++ b/packages/stacks-docs/brand/copywriting/naming.html @@ -0,0 +1,284 @@ +--- +layout: page +title: Naming guidelines +description: Quick guidelines for using Stack Overflow and our product names. +--- + +
    + {% header "h2", "Stack Overflow" %} + + + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Incorrect{% icon "Checkmark", "mtn1 mbn1" %} Correct
    StackoverflowStack Overflow
    stackoverflow
    StackOverflow
    + + {% header "h2", "Stack Overflow for Teams" %} + + + + + + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Incorrect{% icon "Checkmark", "mtn1 mbn1" %} Correct
    Stack Overflow TeamsStack Overflow for Teams
    Teams
    Stack Overflow for Business
    Stack Overflow for Enterprise
    + + {% header "h3", "Specific plans" %} + + {% header "h4", "Do" %} + +
      +
    • Use “Free, Basic, Business, Enterprise” once you’re talking about specifics.
    • +
    • Use ‘Private Q&A’ as a descriptor to refer to our product suite on stackoverflow.com or with an audience that we’re certain is aware of our special sauces – our Q&A format.
    • +
    • Once discussing in-depth, use the terms: Stack Overflow for Teams, Stack Overflow Business, Stack Overflow Enterprise. Note: we won’t reference the base tier as Stack Overflow Basic.
    • +
    + + {% header "h4", "Don’t" %} + +
      +
    • Don’t use “for” when referencing each tier. It is simply Free, Basic, Business, and Enterprise
    • +
    • Don’t append Free, Basic, Business, or Enterprise to the end of Stack Overflow for Teams
    • +
    • Don’t use ‘Private Q&A’ when referring to our product suite for marketing and promotional efforts outside of our core stackoverflow.com audience.
    • +
    + + {% header "h3", "Knowledge Reuse" %} + +

    “Knowledge reuse” is a term we use frequently in reference to Stack Overflow for Teams as something it facilitates. It can be lowercase the majority of the time, except when referring to our {% icon "Lock", "va-middle", "14" %} proprietary metric, in which case use “Knowledge Reuse”.

    + + {% header "h4", "Examples" %} + +
      +
    • “Unlike simply sharing information, knowledge reuse takes collaboration a step further by creating a system where ideas are shared, quickly accessed, improved upon, and then put back into the system.”
    • +
    • “We have calculated your Knowledge Reuse metric as…”
    • +
    + + {% header "h3", "Communities & Community" %} + +

    “Communities” and “Community” are capitalized when referring to the Stack Overflow for Teams feature.

    + + {% header "h4", "Examples" %} + +
      +
    • With Communities you can help your teammates know what’s trending, who’s sharing knowledge, and where there’s opportunity to contribute or learn around specific areas of interest.
    • +
    • Subscribe to a Community and get notifications for new questions and answers.
    • +
    + + {% header "h2", "Collectives on Stack Overflow" %} + + {% header "h3", "Trade Mark" %} + +
      +
    • We have trademarked “Collectives™ on Stack Overflow”.
    • +
    • Apply the trademark ™ symbol to the first instance of “Collectives™ on Stack Overflow” in a document, communication, or marketing materials/assets.
    • +
    • If there is a headline/title slide, use the symbol in the first instance of the product name in the body copy of your document, in addition to using the ™ in the headline/title.
    • +
    • Where possible, use the unicode character for trade mark:
    • +
    + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    <sup>TM</sup>
    TM
    + + {% header "h3", "…on Stack Overflow" %} + +
      +
    • Use … “on Stack Overflow” sparingly.
    • +
    • Don’t use “…on Stack Overflow” unless there’s a lack of surrounding context and we need the audience to know it’s associated with Stack Overflow.
    • +
    • Adding “…on Stack Overflow” doesn’t add clarity in the context of other Stack Overflow products and features.
    • +
    + + + + + + + + + + + + + + + + +
    {% icon "Checkmark", "mtn1 mbn1" %} When to use “on Stack Overflow”
    You’re writing “Collectives™ on Stack Overflow” for the first time on a page
    When it should be differentiated from other external products or features
    When it needs to be associated with Stack Overflow
    + + {% header "h3", "Collectives vs. collectives" %} + +

    When do you capitalize the C in “Collective(s)”?

    + +
      +
    • Always capitalize “Collectives” and “Collective” when you are using them as proper nouns.
    • +
    • If you’re just generally referring to a collective, even if it comes right after a company name, it will always be lowercase. +
        +
      • We can see in Audiobubble’s collective that there are…
      • +
      • Google Cloud has a collective for its biggest advocates…
      • +
      +
    • +
    • Even if you’re putting “Join a collective” on a button or in a headline, it will be lowercase unless it is directly following the name of a company.
    • +
    + + + + + + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    join the Google Cloud collectivejoin the Google Cloud Collective
    join an Collectivejoin a collective
    A company’s Collective page will be located at the top right of the screenA company’s collective page will be located at the top right of the screen
    + + {% header "h2", "Capitalization" %} + + {% header "h3", "Headers, subheaders, and tabs" %} + +
      +
    • Do follow the capitalization rules for headers, sub-headers, and menu tabs.
    • +
    • Use sentence case for all headings (Sentence case involves capitalizing the first word, first word of a subtitle, and all proper nouns.)
    • +
    • Capitalize the first word of a heading
    • +
    • Capitalize proper or trademarked nouns (names of products, people, or specific companies) +
    • Lowercase for everything else
    • +
    + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    User RolesUser roles
    + + {% header "h3", "Product and feature names" %} + +

    + If a product or feature isn’t unique to Stack Overflow, don’t capitalize it (blogs, pages, etc.) If it is unique to Stack Overflow as its own product, do capitalize it. +

    + + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    As soon as it’s ready, put your Blog Post upAs soon as it’s ready, put your blog post up
    content healthContent Health
    + + {% header "h4", "Articles vs. articles" %} + +
      +
    • This can be confusing, because we have a feature called “Articles,” under which you may write a how-to guide, or an announcement, or indeed, an article. So this one depends on the context.
    • +
    • If you’re referring to a generic article, it’s lowercase.
    • +
    • When in doubt, ask, “Is this referring to the specific website section (Articles), or to the thing (articles)?”
    • +
    • If you’re talking about the Articles section of your collective on Stack Overflow, you’ll call it “Articles.”
    • +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    I’m writing an article and then I’m going to put it in our team’s articles sectionI’m writing an article and then I’m going to put it in our team’s Articles section
    In articles, you can find how-to guides, blog posts, and articlesIn Articles, you can find how-to guides, blog posts, and articles
    Create articlesCreate Articles
    Pinned articlesPinned Articles
    + + {% header "h4", "User roles" %} + +

    + Capitalize user roles, no matter where they are and in what context. +

    + + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    employeesEmployees
    Recommended membersRecommended Members
    + +
    \ No newline at end of file diff --git a/packages/stacks-docs/brand/data-visualization.html b/packages/stacks-docs/brand/data-visualization.html new file mode 100644 index 0000000000..4c387f5582 --- /dev/null +++ b/packages/stacks-docs/brand/data-visualization.html @@ -0,0 +1,269 @@ +--- +layout: page +title: Data visualization +description: Tell a story with data visualizations. Use this section for guidance and examples. +--- + +
    + {% header "h2", "Guidelines" %} +

    Why use data visualization? Charts, graphs, and visuals draw attention to the data. While raw data can be hard to understand, data visualization presents a compelling story that answers a specific question and can inspire action. When presenting data through visualizations, keep the following principles in mind:

    + + {% header "h3", "Focus" %} +

    Designs should immediately draw the viewer’s eye to the most important information. That’s why the most important data should have the highest contrast. As you design, consider how much attention the data warrants—is it the main focus or just a supporting asset?

    + + {% header "h3", "Explicit" %} +

    Designs should be easy to understand and accessible to all. Always use real data that’s represented accurately. Consider what range your data set has and how it will scale with more or fewer data points.

    + + {% header "h3", "Purpose" %} +

    Don’t add extraneous data or ornamentation. Answer a single question with clear and accurate information. What’s the story you’re trying to tell?

    +
    + +
    + {% header "h2", "Chart types" %} +

    There are many types of charts and graphs, so when you’re designing one, think first about its function. For example: are you comparing something? Or are you highlighting a trend over a long period of time? Below, we’ve grouped several types of charts according to their recommended functions (You’ll see some types in multiple groups). Before you start designing, determine what you’d like to communicate to your audience, and use that to guide you in selecting the appropriate chart or graph type.

    + + {% header "h3", "Comparison" %} +

    This is the most common type of chart. Compare two or more values within two different parameters as the framework. This chart type helps to show differences/similarities between items and give context to the impact of those differences/similarities.

    + +
    +
    + +
    Bar chart
    +
    +
    + +
    Bubble chart
    +
    +
    + +
    Radar chart
    +
    +
    + +
    Grouped bar chart
    +
    +
    + +
    Stacked bar graph
    +
    +
    + +
    Stacked area graph
    +
    +
    + + {% header "h3", "Part-to-a-whole" %} +

    Uses size or area to show how some group, entity, or amount breaks down into individual pieces that each represent a proportion of the whole. The data represented in these types of charts aren’t just about how things are divided, it’s about how they’re divided in relation to their whole and to each other. Each part (segment) of the chart represents data points that contribute to the whole and amount to 100% in total. This type makes it easier to identify equal or obviously different values.

    + +
    +
    + +
    Donut chart
    +
    +
    + +
    Pie chart
    +
    +
    + +
    Stacked area graph (100%)
    +
    +
    + +
    Stacked bar graph (100%)
    +
    +
    + +
    Treemap
    +
    +
    + + {% header "h3", "Correlations" %} +

    Shows relationships and connections between the data or shows correlations between two or more variables. Often used as the first step toward the detection of cause-effect relationships. Use this type of chart to check whether there is any relationship between two variables and also to notice anomalies or clusters in the data.

    + +
    +
    + +
    Radar
    +
    +
    + +
    Scatterplot
    +
    +
    + + {% header "h3", "Trend over time" %} +

    Analyze data over a time period as a way to identify trends or changes in values. Viewing data over time helps to understand performance, particularly when paired with an established target or goal. Use this type of chart to better understand how something is currently performing and to track any changes over time.

    + +
    +
    + +
    Area chart
    +
    +
    + +
    Candlestick
    +
    +
    + +
    Histogram
    +
    +
    + +
    Line chart
    +
    +
    +
    + +
    + {% header "h2", "Color palette and usage" %} +

    What colors to use and when? Consider the following when choosing the primary color of your data visualization and in what order to add more colors:

    + + {% header "h3", "Blue" %} +

    Useful for denoting neutral related metrics.

    + +
    +
    + #004487 + blue-600 +
    +
    + #0077cc + blue-500 +
    +
    + #379fef + blue-400 +
    +
    + #0095ff + blue-400 +
    +
    + #cfeafe + blue-300 +
    +
    + #f2f9ff + blue-200 +
    +
    + + {% comment %} + {% icon "Share", "mr2" %} + Open in Google Sheets + {% endcomment %} + + {% header "h3", "Green" %} +

    Useful for denoting positive related metrics.

    + +
    +
    + #1e472c + color-900 +
    +
    + #29603b + color-800 +
    +
    + #2f6f44 + color-700 +
    +
    + #48a868 + color-500 +
    +
    + #a6d9b7 + color-200 +
    +
    + #eef8f1 + color-025 +
    +
    + + {% header "h3", "Red" %} +

    Using for denoting negative metrics.

    + +
    +
    + #7a1819 + red-600 +
    +
    + #ac2726 + red-500 +
    +
    + #d1383d + red-400 +
    +
    + #de535e + red-400 +
    +
    + #f4b4bb + red-300 +
    +
    + #fdf3f4 + red-200 +
    +
    + + {% header "h3", "Multi-colored" %} +

    Useful for denoting unrelated metrics.

    + +
    +
    + #27348b +
    +
    + #f2720c + orange-400 +
    +
    + #48a868 + green-400 +
    +
    + #379fef + blue-400 +
    +
    + #f7cc46 +
    +
    + #fee3cf + orange-300 +
    +
    +
    + +
    + {% header "h2", "Accessibility" %} +

    It’s important to remember that you know more about the data than the target audience and that others may have a different set of constraints than you do. Make sure your data visualization is making the data clear and accessible to all by:

    +
      +
    • Having sufficient contrast with the background for any objects using colour (ex: dots, bars, lines, etc.).
    • +
    • Color must not be the only means of conveying information (consider adding labels).
    • +
    • Avoid overwhelming the user with too much information
    • +
    +
    + +
    + {% header "h2", "Sources, resources & inspiration" %} +

    Here are some links to help you learn more about data visualization.

    + + +
    diff --git a/packages/stacks-docs/brand/logo.html b/packages/stacks-docs/brand/logo.html new file mode 100644 index 0000000000..441c57516e --- /dev/null +++ b/packages/stacks-docs/brand/logo.html @@ -0,0 +1,245 @@ +--- +layout: page +title: Logo +description: Guidelines and resources for using our logos. Use of our logos requires our prior written permission and your compliance with the Guidelines for the Use of the Stack Overflow Trademarks. +--- +
    + {% header "h2", "Stack Overflow" %} + +
    +
    Download as:
    + SVG + PNG +
    + + {% header "h3", "Logo breakdown" %} +

    + Generally logo breakdowns can get a little silly, but in practicality, our logo’s spacing is based on the following dimensions and angles. +

    +

    + Our logo is broken down into two components, the glyph and its wordmark. These are often separated when displaying the full logo wouldn’t be appropriate. Examples of this include favicons, or logged-in headers. These are accessible in various pixel-locked sizes within our icons set and are available as @Svg.LogoGlyph and @Svg.LogoWordmark. +

    +

    + +

    + + {% header "h3", "Color alternatives" %} +
    +
    + {% embed "LogoMd", "native wmx100" %} +
    +
    + {% embed "LogoMd", "native wmx100" %} +
    +
    +
    +
    + {% embed "LogoMd", "wmx100" %} +
    +
    + {% embed "LogoMd", "wmx100" %} +
    +
    + + {% header "h3", "Minimum sizes" %} +
    + + +
    +
    + +
    + {% header "h2", "Products" %} +

    + If you need to use one of these in product, you can find them in the icon set. +

    + + {% header "h3", "Stack Overflow for Teams" %} +
    +
    + +
    +
    Download:
    + SVG + PNG +
    +
    +
    + +
    +
    Download:
    + SVG + PNG +
    +
    +
    + + {% header "h3", "Collectives on Stack Overflow" %} +
    +
    + +
    +
    Download:
    + SVG + PNG +
    +
    +
    + +
    +
    Download:
    + SVG + PNG +
    +
    +
    + + {% header "h3", "Stack Overflow Talent" %} +
    +
    + +
    +
    Download:
    + SVG + PNG +
    +
    +
    + +
    +
    Download:
    + SVG + PNG +
    +
    +
    + + {% header "h3", "Stack Overflow Advertising" %} +
    +
    + +
    +
    Download:
    + SVG + PNG +
    +
    +
    + +
    +
    Download:
    + SVG + PNG +
    +
    +
    + + {% header "h2", "Community logos" %} + + + {% header "h3", "International" %} +
    +
    + +
    +
    Download:
    + SVG + PNG + PDF +
    +
    +
    + +
    +
    Download:
    + SVG + PNG + PDF +
    +
    +
    + +
    +
    Download:
    + SVG + PNG + PDF +
    +
    +
    + +
    +
    Download:
    + SVG + PNG + PDF +
    +
    +
    + + {% header "h3", "Stack Exchange" %} +
    +
    + +
    +
    Download:
    + SVG + PNG + EPS +
    +
    +
    + +
    +
    Download:
    + SVG + PNG +
    +
    +
    + +
    +
    Download:
    + SVG + PNG + EPS +
    +
    +
    + +
    +
    Download:
    + SVG + PNG +
    +
    +
    +
    + +
    + {% header "h2", "Stack Overflow Meta" %} + +
    +
    Download as:
    + SVG + PNG +
    +
    + +
    + {% header "h2", "Stack Exchange" %} + +
    +
    Download as:
    + SVG + PNG + EPS +
    + + +
    +
    Download as:
    + SVG + PNG +
    +
    diff --git a/packages/stacks-docs/brand/principles.html b/packages/stacks-docs/brand/principles.html new file mode 100644 index 0000000000..e6868ac43c --- /dev/null +++ b/packages/stacks-docs/brand/principles.html @@ -0,0 +1,18 @@ +--- +layout: page +title: Brand principles +description: Whether it’s in an internal project, a product feature, or an external marketing campaign, the following design principles guide the Stack Overflow brand direction. These principles represent the approach and opinion all things Stack Overflow should have. +--- +
    + {% header "h3", "Focused" %} +

    Designs should focus the person on what’s important at hand. Designs should focus on the central goal, pushing distractions and interruptions to the side until the stated goal is completed.

    + + {% header "h3", "Welcoming" %} +

    Our designs shouldn’t feel “members only”, but inviting and approachable. Designs should be intentional and intuitive, not be some secret codex for users to decipher. While the subjects developers talk about may seem impersonal, our design approach shouldn’t be.

    + + {% header "h3", "Purposeful" %} +

    Everything in its right place. Our designs might be packed with information, but everything should be purposeful. Don’t add extraneous data or ornamentation as it might distract people from the central goal at hand.

    + + {% header "h3", "Five percent fun" %} +

    We’re quirky, not corny. We enjoy the long joke. Our humor is dry and pops up in unexpected, but appropriate, places. We’re “business in front, party in the back.”

    +
    diff --git a/packages/stacks-docs/brand/typography.html b/packages/stacks-docs/brand/typography.html new file mode 100644 index 0000000000..49d0e16dbb --- /dev/null +++ b/packages/stacks-docs/brand/typography.html @@ -0,0 +1,134 @@ +--- +layout: page +title: Typography +description: In our Marketing material we use two fonts, here is some simple usage guidence. +--- + + +
    + {% header "h2", "Headers" %} +

    Roboto Slab is an open-source slab serif with geometric forms and friendly and open curves. We use it for headings and numerical call outs.

    + + + {% icon "Share", "mr2" %} + Download at Google Fonts + +
    + +
    + {% header "h2", "Paragraphs & subheadings" %} +

    Source Sans Pro is an open-source sans serif that works well for legibility in UI environments.

    + + + {% icon "Share", "mr2" %} + Download at Google Fonts + +
    + +
    + {% header "h2", "Examples" %} +

    Some examples of common patterns. Sizing in these examples is based on the Product standards. In other mediums you can just use the relative sizes.

    + + + + {% header "h3", "Hero headline & paragraph" %} +
    +{% highlight html %} +

    + Knowledge sharing and collaboration without distractions +

    +

    + Stack Overflow for Teams is a knowledge management & collaboration solution that technologists already trust. +

    +{% endhighlight %} +
    +

    + Knowledge sharing and collaboration without distractions +

    +

    + Stack Overflow for Teams is a knowledge management & collaboration solution that technologists already trust. +

    +
    +
    + + {% header "h3", "Section headline & preface" %} +
    +{% highlight html %} +

    + Improves other tools +

    +

    + Streamline workflows across the entire organization +

    +{% endhighlight %} +
    +

    + Improves other tools +

    +

    + Streamline workflows across the entire organization +

    +
    +
    + + {% header "h3", "Item headline & preface" %} +
    +{% highlight html %} +

    + Improves other tools +

    +

    + Help engineers be more efficient and streamline knowledge sharing using a tool they already love and trust. +

    +{% endhighlight %} +
    +

    + Software engineers +

    +

    + Help engineers be more efficient and streamline knowledge sharing using a tool they already love and trust. +

    +
    +
    + + {% header "h3", "Numbers (large)" %} +
    +{% highlight html %} +
    + 82% +
    +
    + of developers visit us at least once per week +
    +{% endhighlight %} +
    +
    + 82% +
    +
    + of developers visit us at least once per week +
    +
    +
    + + {% header "h3", "Numbers (small)" %} +
    +{% highlight html %} +
    + 5,000+ +
    +
    + Stack Overflow for Teams instances active every day +
    +{% endhighlight %} +
    +
    + 5,000+ +
    +
    + Stack Overflow for Teams instances active every day +
    +
    +
    + +
    \ No newline at end of file diff --git a/packages/stacks-docs/content/examples/alt-text.html b/packages/stacks-docs/content/examples/alt-text.html new file mode 100644 index 0000000000..3050371c6d --- /dev/null +++ b/packages/stacks-docs/content/examples/alt-text.html @@ -0,0 +1,153 @@ +--- +layout: page +title: Alt-text +description: Everything we know about alt-texts, when to use them, and how to craft them. For a helpful decision tree on how and when to write alt-text, check out the W3C’s alt-text decision tree. +--- +
    + {% header "h2", "How to write alt-text" %} +

    + An alt-text is a description of an image that’s shown to people who can’t see the image. Alt-texts help people with little or no vision who use assistive technologies, people who have turned off images, and search engines. +

    + {% header "h3", "Describe the image concisely" %} +

    + It might sound obvious, but an alt-text should describe the image in case an image doesn’t display or someone has trouble seeing it. The goal of alt-text is to give the necessary information from the image at a glance. It’s best to include only the necessary information. +

    +
    + Man and woman using laptops at a standing table, Illustration. +
    + + + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    “People using computers.”“Man and woman using laptops at a standing table, Illustration.”
    “Man in a purple shirt and woman in blue pants are typing on laptops and there’s a plant on the floor nearby.”
    “Man and woman using computers, illustrated by Jane Doe © 2019.”
    +

    + Take context into account. For instance, if the image above is part of a blog post about standing tables, then it’s safer to skip the part about standing tables. +

    + {% header "h3", "Don’t say it’s an image" %} +

    + Don’t start alt-texts with things like “Image of” or “Photo of.”. Screen readers add that by default. If it’s a special type of image (like an icon), you can note that at the end. +

    + + + + + + + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    “Image of a rocket.”“A rocket.”
    “Illustration of a rocket.”
    Photo of a rocket.”
    “Icon of a rocket.”“A rocket, icon.”
    + {% header "h3", "End with a period" %} +

    + End the alt-text with a period. This makes screen readers pause a bit after the last word in the alt-text, creating a natural pause before the next bit of text. +

    +
    +
    + {% header "h2", "When not to write alt-text" %} +

    + In most cases you should use an alt-text for images, but there are some exceptions where you should leave the alt-text blank. +

    + {% header "h3", "Decorative images" %} +

    + If an image does not convey any meaning to the user, leave the alt-text blank. +

    +
    +{% highlight html %} +
    + +

    +

    +
    +{% endhighlight %} +
    +
    +
    + +
    +

    Improve efficiency and ship better code

    +

    There’s a reason the world’s largest developer teams rely on Stack Overflow Enterprise—it leads to better product and allows distributed teams to securely collaborate and share knowledge.

    +
    +
    +
    +

    + The rocket here doesn’t add meaningful information. +

    + {% header "h3", "Images accompanied by text" %} +

    + If an image has a label nearby, leave the alt-text blank. +

    +
    +{% highlight html %} +
    + +

    +

    +
    +{% endhighlight %} +
    +
    +
    + +
    +
    +

    TOP LEADERBOARD: 728X90

    +

    This ad unit is the most visible on the site.

    +
    +
    +
    +
    +

    + The nearby text here already explains what the graphic illustrates. If there was alt-text here, screen readers would repeat information to the user. +

    + {% tip %} + Note: In these cases, leaving the alt attribute empty (alt="") will cause a screenreader to skip over the image. Never remove the alt-attribute. When a screenreader comes to an image without an alt attribute, it will dictate the filename (Eg. “SO underscore logo dot png”). + {% endtip %} +
    +
    + {% header "h2", "How to add alt-text" %} + {% header "h3", "Using <img>" %} +

    + Inside an <img> tag, add the alt-text inside the alt attribute: +

    +
    +{% highlight html %} +The alt text. +The alt text. +{% endhighlight %} +
    + {% header "h3", "Using inline SVG" %} +

    + Inline SVG doesn’t support the alt attribute, so instead add two wai-aria attributes: role="img" and aria-label="The alt-text.": +

    +
    +{% highlight html %} + +{% endhighlight %} +
    +
    +

    This content was adapted from Axess Lab.

    diff --git a/packages/stacks-docs/content/examples/error-messages.html b/packages/stacks-docs/content/examples/error-messages.html new file mode 100644 index 0000000000..3a09d9cccc --- /dev/null +++ b/packages/stacks-docs/content/examples/error-messages.html @@ -0,0 +1,208 @@ +--- +layout: page +title: Error messages +description: Things don’t always run smoothly. Our systems can fail. It’s important to craft clear, logical, and accessible error messages that help folks get things done. +--- +
    + {% header "h2", "Understand the error" %} +

    + Before writing anything, make sure you know the answers to these questions: +

    +
      +
    • What happened?
    • +
    • How did it happen?
    • +
    • How can it be fixed?
    • +
    • Is it a user or system error, or both?
    • +
    +

    + How can we expect a user to know what’s going on and how to fix something if we don’t? +

    +
    +
    + {% header "h2", "Set a basic structure" %} +

    + A good error message structure explains what happened and what can be done about it. A good error message has the following structure: +

    +

    + [The error] + [How to fix it] +

    +

    + Here’s an example of an inline form error message: +

    + +
    +
    +
    This SVG file is invalid.
    +
    [The error]
    +
    +
    +
    Check its syntax or pick another file.
    +
    [How to fix it]
    +
    +
    + +

    + If we can’t place the specific error, we’re deliberately vague. The best we can do is tell the user how they might fix it. +

    +
    +
    +
    There was a problem syncing data.
    +
    [The error]
    +
    +
    +
    Check your database configuration and try again.
    +
    [How to fix it]
    +
    +
    +
    +
    + {% header "h2", "Keep it short and simple" %} +

    + We want to help folks fix errors quickly, so error messages should be concise. Strip out unnecessary words. Keep detail only when it’s relevant. +

    + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    “Can’t create ‘Engineering’ because a team with that name already exists. Specify a different name.”“‘Engineering’ already exists. Try another team name.”
    “Your notification failed and needs to be re-authorized.”“Notification failed, please re-authorize it.”
    +
    +
    + {% header "h2", "Consider etiquette" %} + {% header "h3", "System error" %} +

    + Apologize when it’s the system’s fault and let the user know it’s not their fault. Use an active voice to accept responsibility. For example: +

    + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    “Your changes couldn’t be saved.”“We couldn’t save your changes.”
    + {% header "h3", "User error" %} +

    + Sometimes it’s the user’s fault, but there are ways to tell them without sounding like we’re pointing the finger. For example, we can focus on the desired action rather than telling the user they’ve messed up: +

    + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    “You’ve missed your name.”“Please enter your name.”
    “You can’t leave this blank.”“Please enter a team name.”
    +

    + A passive voice can work for more serious user errors, such as “This card was declined”. +

    +
    +
    + {% header "h2", "Use the right tone" %} +

    + Tone is how you say something. A message’s tone should depend on how serious the error is. Warmth is great for less serious errors, but avoid anything too lighthearted for serious errors. +

    +

    + Avoid mechanical language and jargon, opting for plain language at all times. The aim is to make a user feel like you’re there, helping them solve the error. +

    + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    “The password entered does not match our records. Please re-enter your password.”“That password’s not right. Try again.”
    +

    + At the same time, error messages are not the place to be clever or make jokes. This will only muddy your message and add to your user’s frustration. +

    + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    “Whoops! Looks like your card was declined. Better ask Mom for another one.”“This card was declined. Try another payment method.”
    +
    +
    + {% header "h2", "What happens next" %} +

    + Some errors might need a button or link to fix or dismiss the message. +

    +

    + Always say what happens next. Buttons and links should make sense when read in isolation. Avoid just using things like “OK”. “OK” can be used to dismiss a message or take an action. Be clear to the user what they’re saying “OK” to. +

    + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    +

    Can’t display metrics

    +

    You need to restart your data sync.

    +
    + + +
    +
    +

    Can’t display metrics

    +

    You need to restart your data sync.

    +
    + + +
    +
    +
    +
    + {% header "h2", "Design, placement, and timing" %} +

    + Error messages should take the whole user experience into consideration. It should be clear what triggers an error message and what it’s related to. +

    +
      +
    • Inline validation styles are best for displaying errors in UI with form fields.
    • +
    • Inline notifications are best for displaying errors in UI without form fields. They should be located within close proximity of items that affect a feature.
    • +
    • Modals are best when you want to ensure you capture someone’s focus.
    • +
    +

    + Toast notifications are best for confirming that an action someone performed is taking place or successfully completed. Since they appear away from the layout and disappear after a few seconds, toast notifications aren’t recommended for error messages. +

    +
    diff --git a/packages/stacks-docs/content/examples/preferences-settings.html b/packages/stacks-docs/content/examples/preferences-settings.html new file mode 100644 index 0000000000..a4f77bf91f --- /dev/null +++ b/packages/stacks-docs/content/examples/preferences-settings.html @@ -0,0 +1,274 @@ +--- +layout: page +title: Preferences and settings +description: +--- +
    + {% header "h2", "Write labels in the affirmative" %} +

    Preferences and settings should always be written in the affirmative—even if the preference is meant to disable a feature. When a user checks a feature preference, they should be getting that feature.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    +
    +
    + +
    + +
    +
    +
    +
    + +
    + +
    +
    +
    +
    + +
    + +
    +
    +
    +
    + +
    + +
    +
    +
    +
    + +
    + +
    +
    +
    +
    + +
    + +
    +
    +
    +
    + +
    + +
    +
    +
    +
    + +
    + +
    +
    +
    +
    + +
    + +
    +
    +
    +
    + +
    + +
    +
    +
    +
    + {% header "h2", "Use descriptions to explain" %} +

    Descriptions are optional and can supplement a label in a few ways:

    +
      +
    • Further define a label
    • +
    • Explain how the input will be used
    • +
    • Show an example a valid input
    • +
    +

    Avoid using tooltips.

    + + + + + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    + + {% icon "Help" %} +
    +
    + +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    + {% header "h2", "Don’t rely on placeholder text" %} +

    Placeholder text can be used to show an example of a valid input.

    +

    Placeholder text disappears once a character is typed in the input, so the user should be able to complete their task without placeholder text always visible.

    + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    diff --git a/packages/stacks-docs/content/examples/success-messages.html b/packages/stacks-docs/content/examples/success-messages.html new file mode 100644 index 0000000000..49e72772f7 --- /dev/null +++ b/packages/stacks-docs/content/examples/success-messages.html @@ -0,0 +1,101 @@ +--- +layout: page +title: Success messages +description: It’s important that we keep users informed when actions are successfully completed. Success states throughout the user flow let users know that they’re either getting closer to achieving the goal, or have completed it. +--- +
    + {% header "h2", "Understand the situation" %} +

    + Before writing anything, make sure you know the answers to these questions: +

    +
      +
    • How close is the user to achieving the intended goal?
    • +
    • What does the user need to do next?
    • +
    • Is this message likely to appear frequently or is it unique?
    • +
    +
    +
    + {% header "h2", "Be specific" %} +

    + A good success message provides clear information that the performed action was completed. It’s fine to let users know that what they did was successful, but even better to be specific about the action they took. +

    + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    “Successfully saved.”“Your account details have been saved.”
    “Upgrade complete.”“You’ve upgraded to the Business tier of Teams.”
    +
    +
    + {% header "h2", "Use the right tone" %} +

    + Tone is how you say something. Excitement makes sense for successfully finishing a large task, but avoid overdoing it for a regular system success. Limit exclamation marks to one per page. +

    + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    “Thanks for updating your email.”“Your email has been updated.”
    “Account created.”“Thanks for signing up. Your account has been created.”
    +
    +
    + {% header "h2", "What happens next" %} +

    + Is the successful action part of a larger goal? Are there other recommended actions that need to be performed? Success messages can be a good way to guide the user to the next action for a more seamless interaction. +

    + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    +

    “We’ve saved your profile changes.”

    + +
    +

    “We’ve saved your profile changes.”

    + +
    +

    “Your payment is complete.”

    + +
    +

    “Your payment is complete.”

    + +
    +
    + {% header "h2", "Design, placement, and timing" %} +
      +
    • Inline validation styles are best for displaying success in UI with form fields.
    • +
    • Toasts are best for common success messages. Since they appear away from the layout and disappear after a few seconds, these are great for simple actions that were successfully completed.
    • +
    • Modals are best when you want to ensure you capture someone’s focus for a decision.
    • +
    +
    diff --git a/packages/stacks-docs/content/guidelines/grammar-and-mechanics.html b/packages/stacks-docs/content/guidelines/grammar-and-mechanics.html new file mode 100644 index 0000000000..b40c1a8735 --- /dev/null +++ b/packages/stacks-docs/content/guidelines/grammar-and-mechanics.html @@ -0,0 +1,631 @@ +--- +layout: page +title: Grammar and mechanics +description: A guide to help anyone who writes, edits, or translates public-facing text for Stack Overflow. +--- +
    + {% header "h2", "Basics" %} + {% header "h3", "Use active tense (most of the time)" %} +

    You should almost always write in the active voice, particularly if the user needs to do something.

    + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    “You should update your profile”“Update your profile”
    +

    While it’s generally best to avoid the passive voice, in certain situations it helps you sound softer without adding too many words. It’s especially useful for time-sensitive messages like payment confirmations and error messages. You can also use the passive voice to avoid referring to yourself or Stack Overflow.

    + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    “We cancelled your order.”“Your order has been cancelled.”
    “We’ve suspended your account.”“Your account has been suspended.”
    + + {% header "h3", "Use contractions" %} +

    Contractions make copy sound more human. Avoid contractions that sound awkward when you say them out loud, or are not commonly used in everyday conversation.

    + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    “This’ll help you get answers to your questions.”“It’s designed to help you get answers to your questions.”
    “There must’ve been an error with your order.”“There’s an error with your order.”
    + + {% header "h3", "Use sentence casing" %} +

    Use sentence casing for all headings and calls-to-action. Proper or trademarked nouns (e.g. countries, product names) should be capitalized. If a feature or product is unique to Stack Overflow, capitalize it (Stack Overflow for Teams, Stack Overflow Jobs).

    + + {% header "h4", "Headings" %} + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    Performance OverviewPerformance overview
    Edit Your ProfileEdit your profile
    + + {% header "h4", "Buttons and links" %} + + + + + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    Post JobPost job
    flag commentFlag comment
    cancelCancel
    + + {% header "h4", "Feature or product names" %} + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    Job Alertsjob alerts
    Blogblog
    Profileprofile
    Stack Overflow talentStack Overflow Talent
    stack exchangeStack Exchange
    + + {% header "h3", "Use American spelling and standards" %} +

    Use American spelling for all public-facing content. When in doubt, check the Merriam-Webster dictionary for the preferred spelling of specific terms.

    + + + + + + + + + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    RecogniseRecognize
    TravelledTraveled
    ColourColor
    9 April 2019April 9, 2019
    + + {% header "h3", "OK" %} +

    Let’s use the abbreviated version of “OK”. This is preferred to “Okay” and its variants. “OK” should be fully capitalized in every context. Tonally, it may be appropriate to use “OK” in an actionable button—if it isn’t used alone.

    + + + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    OkayOK
    okay
    Ok
    + + {% header "h3", "Pronouns" %} +

    We think it’s most clear to leave off any possessives when referring to users or features. However, if you must, refer to users as “you.” Don’t put words in their mouths with phrases that use “I” or “my.”

    + + + + + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    My TeamsTeams
    My settingsSettings
    Change my email settingsChange your email settings
    +

    When referring to Stack Overflow, use “we.” However, try to avoid inserting Stack Overflow into the content as much as possible.

    + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    Stack Overflow is here to help. They’ll make changes soon.Stack Overflow is here to help. We’ll make changes soon.
    +

    Use “their” as a singular, gender-neutral pronoun when the gender of the subject is unknown or unimportant. Avoid using gendered terms.

    + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    When a new user is added, he or she will be able to edit content.When a new user is added, they’ll be able to edit content.
    We appreciate the guys and gals of Stack Overflow.We appreciate the Stack Overflow community.
    + + {% header "h3", "Mind your verbs and nouns" %} +

    Take extra care when using “login,” and “log in.” The former is a noun while the latter is a verb. Do not use “login” as a verb. The same logic applies to “signup,” “sign up.”

    + + + + + + + + + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    Login to ask a questionLog in to ask a question
    Add a log in to your accountAdd a login to your account
    Signup to ask a questionSign up to ask a question
    Complete email sign upComplete email signup
    +
    + +
    + {% header "h2", "Punctuation" %} + {% header "h3", "Ampersands" %} +

    Don’t use ampersands (&) unless it’s part of a branded term. Spell out the word “and” instead.

    + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    Update your email address & passwordUpdate your email address and password
    Stack Overflow Q and AStack Overflow Q&A
    + + {% header "h3", "Apostrophes" %} +

    Use apostrophes to represent omitted letters or numbers (can’t, you’re, ’90s) and to form possessives.

    + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    Admins roleAdmin’s role
    Moderators’s tasksModerators’ tasks
    + + {% header "h3", "Colons" %} +

    Avoid using colons unless you’re introducing a list. If you need to use a colon in a sentence, don’t capitalize the first word after it.

    + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    Your job listing was published: On January 15Your job listing was published on January 15
    + + {% header "h3", "Ellipses" %} +

    The ellipses (…) can be used in place of a missing piece of text (most commonly to show the deletion of words from a quote). Avoid using ellipses in text. It’s appropriate to use an ellipses in input placeholder copy. Use the real single character ellipsis unicode (…) instead of three periods (...).

    + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    Avoid subjective questions… stick to fact-based questions.Avoid subjective questions. Stick to fact-based questions.
    Search...Search…
    + + {% header "h3", "Exclamation points" %} +

    Don’t use exclamation points unless something is really exciting! If you have to use one, limit yourself to one exclamation mark per page.

    + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    Your email settings have been saved!You’ve published your first job listing!
    + + {% header "h3", "Hyphens" %} +

    Use hyphens to combine two words that modify or describe the noun that follows, or join prefixes and suffixes when there are two vowels beside each other.

    +

    Use an en dash with no spaces in between (–) for a fixed range of numbers. Avoid using them in a sentence. Avoid using em dashes in microcopy.

    + + + + + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    Start your free 14 day trial.Start your free 14-day trial.
    January 7 – 9January 7–9
    Get started – sign up today.Get started. Sign up today.
    + + {% header "h3", "Question marks" %} +

    Avoid using question marks wherever possible. Reword into affirmative statements wherever you can. It’s okay to use question marks if you don’t know the result of the question (“Did you forget your email?”).

    + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    Want to learn more?Learn more
    + + {% header "h3", "Quotation marks" %} +

    Use quotation marks to define words (“Accepted answer”) or to quote text. Always use smart, curly quotes (“), not vertical, straight quotes ("). Single curly quotes (’) can be used when nested within a set of double quotes. Place punctuation marks inside quotation marks.

    + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    "I meet people who use Stack Overflow every single day", said Joel Spolsky.“I meet people who use Stack Overflow every single day,” said Joel Spolsky.
    + + {% header "h3", "Commas" %} +

    Use the oxford comma in sentences. Don’t use a comma to separate two distinct phrases (comma splicing). Use two sentences instead.

    + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    Our community is rooted in kindness, collaboration and mutual respect.Our community is rooted in kindness, collaboration, and mutual respect.
    Thanks for contacting us, we’ll be in touch soon.Thank you for contacting us. We’ll be in touch soon.
    + + {% header "h3", "Periods" %} +

    Don’t use periods in interface copy unless it’s a full sentence or description.

    + + + + + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t use periods in:{% icon "Checkmark", "mtn1 mbn1" %} Do use periods in:
    Sentence fragmentsComplete sentences
    Top-level headings and titlesBody text, descriptions, and subtitles
    ButtonsHelp text under text boxes (form fields)
    + + {% header "h3", "Semicolons" %} +

    Avoid using semicolons. When connecting two closely related ideas, use a comma or write two sentences.

    + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    We shaved off about five minutes from last year’s survey; the survey should take about 25 minutes to complete.We shaved off about five minutes from last year’s survey. The survey should take about 25 minutes to complete.
    +
    + +
    + {% header "h2", "Date and time" %} +

    These conventions apply to all English language sites, and do not include international Stack Overflow sites.

    + {% header "h3", "General" %} +

    In most cases, use relative dates and times (eg. 3 minutes ago) with the exact date and time in the title attribute (eg. September 2, 2019 at 4:35 pm). When possible, use the longhand time (eg. 7 years ago). If there are space constraints, use the abbreviations below.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    LonghandAbbreviation
    7 years7y
    3 months3mo
    6 days6d
    6 hours6h
    5 minutes5min
    12 seconds12s
    + +

    Use exact dates for moderator tools and other cases where the user needs quick access to the exact date and time.

    + + {% header "h3", "Dates" %} +

    If you’re using exact dates, use the month’s full name where possible (eg. October). If there are space constraints, use 3-letter abbreviations with the exception of May, (eg. Oct.). Always write out the full year.

    +

    Don’t write dates numerically since differing international standards can lead to confusion (eg. 08-12-19 vs. 12-08-19).

    +

    There is no need to add st, nd, th, or rd to dates.

    + + + + + + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    September 2, ’19September 2, 2019
    9-2-19Sep. 2, 2019
    September 2ndSeptember 2
    + + {% header "h3", "Time" %} +

    If you’re using exact time, use the 12-hour clock, followed by am or pm. Include a space after the last number (eg 1:20 pm)

    +

    Time should be relative to the user’s time zone (not UTC).

    +

    If indicating both the date and time, separate them with the word “at”, rather than with a comma (eg. September 2, 2019 at 4:35 pm) or “@” symbol (eg. September 2, 2019 @ 4:35 pm).

    +

    Include a time zone only if it’s necessary, such as for an event listing (eg. 7 pm Eastern).

    + + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    15:303:30 pm
    + September 2, 2019 @ 4:35 pm
    + September 2, 2019, 4:35 pm +
    September 2, 2019 at 4:35 pm
    +
    + +
    + {% header "h2", "Components" %} + {% header "h3", "Buttons and links" %} +

    Buttons and links should be clear and predictable. People should be able to anticipate what will happen when they click or tap. Button and link text should be sentence case and action led (starting with a verb). To provide enough context, use a verb+noun format except for common actions like Save or Close.

    + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    New teamCreate new team
    SettingsView settings
    + + {% header "h3", "Headings and subheadings" %} +

    All headings or subheadings should be concise, scannable, and sentence case. Don’t use periods at the end of headings. If a subheading is a full sentence, you may use a period.

    + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    Edit Your Profile.Edit profile
    + + {% header "h3", "Lists" %} +

    When writing lists:

    +
      +
    • Use a colon (:) to introduce an unordered list.
    • +
    • Use sentence case.
    • +
    • If any list item contains two or more sentences, punctuate all list items.
    • +
    • If all list items are one sentence or fragments, don’t punctuate.
    • +
    + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    + To edit your Team’s tags… +
      +
    • Go to your Team and select “settings”,
    • +
    • Select “tag settings”
    • +
    +
    + To edit your Team’s tags: +
      +
    • Go to your Team
    • +
    • Select “settings”
    • +
    • Select “tag settings”
    • +
    +
    +
    + +
    + {% header "h2", "Naming guidelines" %} +

    For guidelines on using our product names, see Naming guidelines in our Brand section.

    +
    + diff --git a/packages/stacks-docs/content/guidelines/principles.html b/packages/stacks-docs/content/guidelines/principles.html new file mode 100644 index 0000000000..caa863ffa0 --- /dev/null +++ b/packages/stacks-docs/content/guidelines/principles.html @@ -0,0 +1,173 @@ +--- +layout: page +title: Content principles +description: Principles and tactics for writing at Stack Overflow. These will help produce clear, consistent content for users of different professions, identities, and levels of English fluency. +--- +
    + {% header "h2", "7th grade reading level" %} +

    + Write for a 7th grade reading level. Stack Overflow users are busy people with limited time and attention. They’re also located all over the world with different levels of English fluency. You can help everyone follow along by choosing simple, consistent words and phrases, and being careful about jokes and cultural references. +

    + {% header "h3", "Simple words" %} +

    If there’s a simpler word to say what you mean, use it. Always choose the short, simple word over the long, complicated one. Don’t complicate your ideas with business or insider jargon. Only use jargon when you have reason to believe it will improve user understanding.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    OptimizeImprove
    FalsifiedFake
    In order toTo
    LeverageUse
    GarnerGet
    Despite the factAlthough
    + {% header "h3", "Short, simple sentences" %} +

    Trim word bloat. Don’t make people read more than they need to.

    + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    Questions should be merged when they are 99% identical and it would be beneficial to have all the answers from multiple duplicate questions in one place.Merge questions that are almost alike. This option will also merge answer lists.
    If you need to delete your account, merge accounts, or have an issue that can't be addressed by Meta, please use the form below:Questions? Contact us.
    + {% header "h3", "Jokes & cultural references" %} +

    Be careful with jokes and cultural references. Jokes, idioms, slang, and regional or cultural references don’t always translate well for our global audience. The next time you’re making a reference, ask yourself if there’s a more universal way to make your point.

    + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    “It was like trying to take care of your kids while playing WoW at the same time.”“It was like trying to rub your stomach and pat your head at the same time.”
    “This person likes to keep an air of mystery to them.”In this situation, humor isn’t appropriate. See more about tone.
    + {% header "h3", "Naming" %} +

    Pick names early and implement them consistently. Consistent language reduces the number of things your users have to learn or remember. If multiple names already exist, identify and eliminate them.

    + + + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    Inbox alertsInbox notifications
    Inbox notifications
    Inbox messages
    + {% header "h3", "Exaggeration" %} +

    Avoid exaggerated statements. When possible, back up your claims with facts and data. Be careful with adjectives and modifiers.

    + + + + + + + + + + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    Endless possibilitiesChoose from external hosting options or host on stackoverflow.com.
    Dynamic
    Innovative
    Powerful
    Your privacy is our #1 priority.Manage your privacy through simple settings.
    +
    +
    + {% header "h2", "Action-oriented" %} +

    Users are trying to get things done. Write and structure your content so that people can easily scan and take the most important actions. Avoid using negative language.

    + {% header "h3", "Make it scannable" %} +

    Use headings and bullets to make your content easier to scan.

    + {% header "h3", "Say it up front" %} +

    Think about what people need to know right away, and move that information to the top.

    + {% header "h3", "Use active voice" %} +

    Use the active voice, particularly in product content. Start every CTA with a strong verb.

    + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    Your company can use Stack Overflow to reach the world’s developers. We’re excited to help you start the developer hiring process.Reach the world’s developers.
    Create job listing
    For 14 days, you can try Teams for free. We make it easy for you to create a team.Get started with a 14-day free trial.
    Create Team
    + {% header "h3", "Negative language" %} +

    Be careful with negative language. It is usually longer, less friendly, and less active than positive language.

    + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    “It doesn’t work” is not a problem statement.Use specific examples in your problem statement.
    Password cannot be empty.Enter your password to continue.
    +
    +

    This content was adapted from Nicely Said and the Shopify Content Guide.

    diff --git a/packages/stacks-docs/content/guidelines/voice-and-tone.html b/packages/stacks-docs/content/guidelines/voice-and-tone.html new file mode 100644 index 0000000000..17db03ea02 --- /dev/null +++ b/packages/stacks-docs/content/guidelines/voice-and-tone.html @@ -0,0 +1,132 @@ +--- +layout: page +title: Voice and tone +description: The difference between voice and tone, and how each applies to Stack Overflow. +--- +
    + {% header "h2", "Voice" %} +

    + Voice is the company’s public personality. A clear, consistent voice makes all communications sound like they came from the same place. +

    + {% header "h3", "Transparent, not blunt" %} +
      +
    • Be upfront with users, especially if we make a mistake.
    • +
    • Back up claims with facts and concrete examples.
    • +
    • Break down complicated situations into steps to help users focus on one thing at at time.
    • +
    + {% header "h3", "Empathetic, not overprotective" %} +
      +
    • Communicate in a way that’s thoughtful toward people’s situations and emotions.
    • +
    • Offer encouragement and practical advice.
    • +
    • Help people on their own terms by using words they’ll understand.
    • +
    + {% header "h3", "Confident, not arrogant" %} +
      +
    • Don’t talk down to users.
    • +
    • Don’t assume users are familiar with Stack Overflow or how it works.
    • +
    • Help people succeed by speaking plainly at the moments they’re likely to need help.
    • +
    + {% header "h3", "Mission-driven, not political" %} +
      +
    • Be straightforward about our mission to be a welcoming, inclusive community.
    • +
    • Avoid us vs. them binaries (eg. newbies vs. power users)
    • +
    + + + + + + + + + + + + + + + + + + + + + + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    “Join us in building an expert community of the best developers in the world.”“Join us in building a community where all people feel welcome and can participate, regardless of expertise or identity.”
    “Join us in a movement to diversify the developer community and amplify marginalized voices in technology.”
    “If you’re new to the site, make it as easy as possible for experienced community members to help you. Remember that they are volunteers.”“If you’re here to get help, make it as easy as possible for others to help you. Follow our guidelines and remember that our community is made possible by volunteers.”
    “If you’re an experienced contributor, be patient and welcoming. New users may have a hard time learning how to participate in our community.”“If you’re here to help others, be patient and welcoming. Learning how to participate in our community can be hard. Offer support if you see someone struggling or otherwise in need of help.”
    +
    +
    + {% header "h2", "Tone" %} +

    + Tone changes to fit the situation. Help people succeed by showing your empathy and matching your tone with the user’s emotions and situations, especially in times of stress or confusion. Avoid jargon unless it’s absolutely necessary. Let people know how things will benefit them, and what they can do next. +

    + {% header "h3", "Positive" %} +

    In positive situations, a user may feel interest, curiosity, and/or delight. You can match those emotions by adopting an encouraging and friendly tone. If you’re writing good news like an announcement or confirmation, it’s ok to be more casual.

    + + + + + + + + + + + + + + + + + + +
    Context{% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    Payment successfully processed“We have processed your payment for 65 Candidate Search seats on June 12, 2018. View receipt“Your payment has been successfully processed. View receipt
    Team has hit 100 answer milestone“Your team contributed 100 answers, 90 questions, 354 upvotes, and 19 edits in the last 30 days.”“Your team contributed 100 answers last month! Continue growing your team’s knowledge by inviting more team members.”
    + {% header "h3", "Neutral" %} +

    In neutral situations, the user may feel interest, curiosity, and/or stress. You can match these emotions by adopting a straightforward and helpful tone. If you’re providing instructions, provide enough detail to give the user confidence. Avoid telling the user how they should think or feel.

    + + + + + + + + + + + + + + + + + + +
    Context{% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    User’s bounty has been posted“Your bounty has been posted. The bountied question will get a special indicator and appear on the Featured tab for one week. Don’t worry if you don’t get the answer you want – you can always post another bounty.”“Your bounty has been posted. You’ll be notified when you receive answers.”
    First time posting an answer“Tags come with advanced features like tag watching, wikis, and synonyms.”“Use tags to add as much (or as little) structure as your organization needs.”
    + {% header "h3", "Negative" %} +

    In negative situations, the user might be feeling confusion, stress, annoyance, and even anger. Match their emotions by adopting a gentle, calm, and serious tone. These are important moments to show readers that you care about their feelings. Write calmly so people can focus on your message. Avoid scary, technical terms and words like “alert,” “immediately,” or “urgent” unless they’re absolutely necessary. Let people know what went wrong, and tell them what they should do next

    + + + + + + + + + + + + + + + + + + + + + + + +
    Context{% icon "Clear", "mtn1 mbn1" %} Don’t{% icon "Checkmark", "mtn1 mbn1" %} Do
    No Candidate Search results“0 results.”“No candidates matched your search. Try different keywords or adjust your filters.”
    Account is suspended“Due to clear signs of falsified accounts being used to artificially inflate your reputation, your account has been temporarily suspended for 7 days.

    It is not fair to other users of Stack Overflow to allow users to gain reputation through sockpuppets.”
    “We noticed fraudulent voting activity on this account. This violates our community rules, and the account will be suspended for 7 days.

    If you believe this message is a mistake, let us know.”
    Error message“It looks like there are incomplete place-holders; please ensure all necessary detail is complete.”“Update the placeholder text to continue.”
    +
    +

    This content was adapted from Nicely Said and the Shopify Content Guide.

    diff --git a/packages/stacks-docs/email/base/border-radius.html b/packages/stacks-docs/email/base/border-radius.html new file mode 100644 index 0000000000..a361cb1c45 --- /dev/null +++ b/packages/stacks-docs/email/base/border-radius.html @@ -0,0 +1,71 @@ +--- +layout: page +title: Border radius +description: Border radius classes are provided as a progressive enhancement to email containers. The border radius on containers are removed at smaller breakpoints, once the width of the container matches the width of its viewport. +--- + +
    + {% header "h2", "Classes" %} + + + + + + + + + + + + + + + + + + + + + + + + + +
    ClassOutputUse Case
    .barborder-radius: 5px;Rounding all four corners of a simple email.
    .btrborder-top-left-radius: 5px;
    border-top-right-radius: 5px;
    Rounding the top corners of a complex promotional email in one location…
    .bbrborder-bottom-left-radius: 5px;
    border-bottom-right-radius: 5px;
    …and rounding the bottom corners in another location.
    + + {% header "h2", "Example" %} +
    +{% highlight html %} + + + ... + + + + +{% endhighlight %} + +
    + {% include 'notice-email-head-support.html' %} +
    diff --git a/packages/stacks-docs/email/base/mso.html b/packages/stacks-docs/email/base/mso.html new file mode 100644 index 0000000000..1f05132865 --- /dev/null +++ b/packages/stacks-docs/email/base/mso.html @@ -0,0 +1,180 @@ +--- +layout: page +title: Outlook conditional CSS +description: Windows Outlook 2003 and above use Microsoft Word as a rendering engine, which can lead to some weird rendering issues. Outlook conditional comments allow us to add bits of HTML that are only read by the Word-based versions of Outlook. +--- + + +
    + {% header "h2", "Basic syntax" %} +

    + We can use MSO (Microsoft Office) tags to add HTML / CSS anywhere in an email template. This code will be ignored by other email clients. Here’s what it looks like: +

    +
    +{% highlight html %} + +{% endhighlight %} +
    +

    + Only Outlook will render this table. +

    +

    + MSO tags can also be used to add styles targeting Outlook (Outlook supports CSS in the <head>): +

    +
    +{% highlight html %} + +{% endhighlight %} +
    +

    + It’s the same thing we used to do to target old versions of Internet Explorer, except it targets Microsoft Office. +

    +
    +
    + {% header "h2", "Ghost tables" %} +

    + The main way we use MSO tags in our emails is to create “ghost tables” so hybrid emails don’t fall apart in Outlook. Hybrid design uses inline-block, max-width, min-width to stack table columns. Outlook doesn’t support these CSS properties, so we use MSO tags to create “ghost tables” that apply a fixed width just for Outlook. +

    +
    +{% highlight html %} + +
    + Outlook can’t render the CSS in this DIV but other email clients can, + so we wrap this in a ghost table that replicates the DIV’s desktop style. + In this case, a container 340px wide. +
    + +{% endhighlight %} +
    +

    + Without the ghost table above, Outlook would display the <div> at 100% width. Learn how we use ghost tables to make our emails responsive. +

    +
    +
    + {% header "h2", "Targeting specific Outlook versions" %} +

    + We usually target all versions of Outlook using <!--[if mso]>. But sometimes when testing emails in Litmus, an email looks ok in one Outlook version but is broken in another. It’s not common but it happens, and there are a few ways to target specific versions of Outlook while omitting others. +

    + {% header "h3", "Outlook versions" %} +

    + Using Microsoft Office version numbers allows you to target a specific Outlook version. +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Outlook version(s)Code
    +
    + All Windows Outlook + Most common +
    <!--[if mso]> your code <![endif]-->
    Outlook 2000<!--[if mso 9]> your code <![endif]-->
    Outlook 2002<!--[if mso 10]> your code <![endif]-->
    Outlook 2003<!--[if mso 11]> your code <![endif]-->
    Outlook 2007<!--[if mso 12]> your code <![endif]-->
    Outlook 2010<!--[if mso 14]> your code <![endif]-->
    Outlook 2013<!--[if mso 15]> your code <![endif]-->
    Outlook 2016<!--[if mso 16]> your code <![endif]-->
    +
    +
    +
    + {% header "h3", "Conditional logic" %} +

    + Using operators allows you to create conditional expressions for targeting multiple Outlook versions. +

    + {% tip %} + Note: We tend to keep our designs simple and don’t use these very often. They’re here if you need them every once in a while, but if you find yourself reaching for these often, please open an issue or ask us about it. + {% endtip %} +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    CodeDescriptionExample
    gtgreater than<!--[if gt mso 14]> Everything above Outlook 2010 <![endif]-->
    ltless than<!--[if lt mso 14]> Everything below Outlook 2010 <![endif]-->
    gtegreater than or equal to<!--[if gte mso 14]> Outlook 2010 and above <![endif]-->
    lteless than or equal to<!--[if lte mso 14]> Outlook 2010 and below <![endif]-->
    |or<!--[if (mso 12)|(mso 16)]> Outlook 2007 / 2016 only <![endif]-->
    !not<!--[if !mso]><!--> All Outlooks will ignore this <!--<![endif]-->
    +
    +
    diff --git a/packages/stacks-docs/email/base/responsiveness.html b/packages/stacks-docs/email/base/responsiveness.html new file mode 100644 index 0000000000..3817d99c7d --- /dev/null +++ b/packages/stacks-docs/email/base/responsiveness.html @@ -0,0 +1,148 @@ +--- +layout: page +title: Responsiveness +description: All email templates use a hybrid approach to reconfigure the layout for different screen sizes in all email clients (regardless of media query support). Once a mobile-friendly baseline is set, media queries can be used to progressively enhance emails further in clients that support them. +--- + +
    + {% header "h2", "Stacking columns" %} +

    + Media queries are a standard way to optimize layouts for small screen sizes on the web. In the email world, though, there are some “small screen scenarios” where media queries aren’t supported (eg. some Gmail Apps) or only partially supported (eg. some Android device native mail apps). +

    + {% header "h3", "Hybrid design" %} +

    + Hybrid design uses inline-block, max-width, min-width, and ghost tables stack columns without media queries while imposing a fixed, desktop width for Outlook. +

    +
    +{% highlight html %} + + + +
    + Column 1 +
    + +
    + Column 2 +
    + + + +{% endhighlight %} +
    +

    + In this example, the two columns will display side-by-side on wide, desktop displays and stack on top of each other in narrow, mobile displays. The promotional email template uses this technique in a few places. +

    + {% header "h3", "Media queries" %} +

    + Once a hybrid baseline is set, media queries can be used to fine-tune a responsive email layout. Since columns are (hopefully) already stacked, media queries can be used to change the width and text alignment in small viewports. +

    + + + + + + + + + + + + + + + + + +
    ClassDescription
    stack-columnMakes table columns 100% wide and stacks them in source order.
    stack-column-centerMakes table columns 100% wide, stacks them in source order, and centers everything inside.
    + {% include 'notice-email-head-support.html' %} +
    +
    + {% header "h2", "Responsive spacing" %} +

    + Default desktop padding for email templates is 30px. Utility classes can be used to reduce spacing to 20px or remove padding on smaller viewports. Useful for tightening up email layouts on mobile. +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ClassOutput
    .sm-p-nonepadding: 0;
    .sm-pt-nonepadding-top: 0;
    .sm-pb-nonepadding-bottom: 0;
    .sm-pr-nonepadding-right: 0;
    .sm-pl-nonepadding-left: 0;
    .sm-py-nonepadding-top: 0; padding-bottom: 0;
    .sm-px-nonepadding-right: 0; padding-left: 0;
    .sm-ppadding: 20px;
    .sm-ptpadding-top: 20px;
    .sm-pbpadding-bottom: 20px;
    .sm-prpadding-right: 20px;
    .sm-plpadding-left: 20px;
    .sm-pypadding-top: 20px; padding-bottom: 20px;
    .sm-pxpadding-right: 20px; padding-left: 20px;
    .sm-mbmargin-bottom: 20px;
    + {% include 'notice-email-head-support.html' %} +
    diff --git a/packages/stacks-docs/email/base/snippets/border-radius.html b/packages/stacks-docs/email/base/snippets/border-radius.html new file mode 100644 index 0000000000..4f87810b8b --- /dev/null +++ b/packages/stacks-docs/email/base/snippets/border-radius.html @@ -0,0 +1,53 @@ + + + + + + + + diff --git a/packages/stacks-docs/email/base/typography.html b/packages/stacks-docs/email/base/typography.html new file mode 100644 index 0000000000..0af5729335 --- /dev/null +++ b/packages/stacks-docs/email/base/typography.html @@ -0,0 +1,221 @@ +--- +layout: page +title: Typography +description: This page provides some common typography patterns for email. +--- +
    +

    + It’s safe and accessible to use semantic HTML tags like <h>, <p>, and <ul> for text in email just as we do for the web. The main difference in email is that CSS should be written inline to specify intended styles (like the color of an anchor tag) and zero out unintended defaults (like the margin around a <p> tag). +

    +
    +
    + {% header "h2", "Paragraphs" %} +
    +{% highlight html %} + +

    A lead paragraph with slightly larger text lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras nisi magna, mollis luctus sapien varius, mattis ornare est.

    +

    A regular paragraph with strong and italic text, consectetur adipiscing elit. Cras nisi magna, mollis luctus sapien varius, mattis ornare est. Sed non tincidunt erat, ut commodo augue.

    +

    A paragraph with no margin (useful for the last paragraph in a section).

    + +{% endhighlight %} +
    +

    A lead paragraph with slightly larger text lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras nisi magna, mollis luctus sapien varius, mattis ornare est.

    +

    A regular paragraph with strong and italic text, consectetur adipiscing elit. Cras nisi magna, mollis luctus sapien varius, mattis ornare est. Sed non tincidunt erat, ut commodo augue.

    +

    A paragraph with no margin (useful for the last paragraph in a section).

    +
    +
    +
    +
    + {% header "h2", "Headlines" %} +
    +{% highlight html %} +

    I’m a headline

    +

    I’m a subheadline

    +{% endhighlight %} +
    +

    I’m a headline

    +

    I’m a subheadline

    +
    +
    +
    +
    + {% header "h2", "Lists" %} +
    +{% highlight html %} +
      +
    • You get a list item.
    • +
    • And you get a list item!
    • +
    • Everyone gets a list item!
    • +
    +
      +
    1. You get a list item.
    2. +
    3. And you get a list item!
    4. +
    5. Everyone gets a list item!
    6. +
    +{% endhighlight %} +
    +
      +
    • You get a list item.
    • +
    • And you get a list item!
    • +
    • Everyone gets a list item!
    • +
    +
      +
    1. You get a list item.
    2. +
    3. And you get a list item!
    4. +
    5. Everyone gets a list item!
    6. +
    +
    +
    +
    +
    + {% header "h2", "Links" %} +
    +{% highlight html %} +Go to the homepage +{% endhighlight %} + +
    + {% header "h3", "Links in Markdown" %} +

    + If email content is written in Markdown, we can’t write inline CSS into link tags. Left unstyled, links will appear like this. To style links contained in Markdown text, add a class="has-markdown" to any parent tag that might contain a Markdown link. +

    +
    +{% highlight html %} +

    @_s("I’m a text string in markdown.")

    +

    @_m("I’m a *bold* [text link](https://www.stackoverflow.com) in markdown.")

    +{% endhighlight %} +
    +

    I’m a text string in markdown.

    +

    I’m a bold text link in markdown.

    +
    +
    + + {% tip %} + Note: Using class="has-markdown" applies styles defined in the <style> tag. Only email clients that support <style> in <head> will render has-markdown links properly. + {% endtip %} + + {% header "h3", "Auto-detected links" %} +

    + Some email clients auto-detect certain text strings (like dates, times, and locations) and automatically convert them into hyperlinks. We can’t remove the link, but we can make the link appear like the text around it by negating a few CSS styles. +

    +
    +{% highlight html %} +

    On Thursday we’ll be doing on planned maintenance on our New York server, so the parts of the site might be unavailable.

    +

    On Thursday we’ll be doing on planned maintenance on our New York server, so the parts of the site might be unavailable.

    +{% endhighlight %} +
    +

    On Thursday we’ll be doing on planned maintenance on our New York server, so the parts of the site might be unavailable.

    +

    On Thursday we’ll be doing on planned maintenance on our New York server, so the parts of the site might be unavailable.

    +
    +
    + + {% tip %} + Note: Using class="unstyle-auto-detected-links" applies styles defined in the <style> tag. Only email clients that support <style> in <head> will render has-markdown links properly. + {% endtip %} +
    +
    + {% header "h2", "Code" %} +
    +{% highlight html %} + +
    
    +    …
    +
    + + +Format inline code like this. +{% endhighlight %} +
    +
    var obj = {};
    +obj.categories = pm.variables.get("category_id");
    +obj.packages = pm.variables.get("package_id");
    +obj.type = "add";
    +pm.globals.set("switch_json", JSON.stringify(obj));
    +console.log("request body: " + pm.globals.get("switch_json"));
    +

    Format inline code like this.

    +
    +
    + {% tip %} + Known Issue: in Windows Outlook 2003 - 2019, preformatted code blocks appear like this. + {% endtip %} +
    +
    + {% header "h2", "Blockquotes" %} +
    +{% highlight html %} +
    +

    Write a function that takes a string consisting of alphabetic characters as input argument and returns True if the string is a palindrome. + … +

    +
    +{% endhighlight %} +
    +
    +

    Write a function that takes a string consisting of alphabetic characters as input argument and returns True if the string is a palindrome. A palindrome is a string which is the same backward or forward.

    +
    +
    +
    + {% tip %} + Known Issue: in Windows Outlook 2003 - 2019, blockquotes appear like this. + {% endtip %} +
    +
    + {% header "h2", "Preventing text wrapping" %} +

    + A non-breaking space (&nbsp;) can be used to prevent a group of words from breaking onto multiple lines. Useful for keeping names together and preventing typographic orphans and widows. +
    Inspect the line above to see ☝️ +

    +
    +{% highlight html %} +

    Now with Stack Overflow you can level up.

    +

    The last sentence shouldn’t produce an orphan.

    +

    @_m("Also works for text written in$nbsp$markdown.", new { nbsp = " ".AsRawHtml() })

    +{% endhighlight %} +
    +

    Now with Stack Overflow you can level up.

    +

    The last sentence shouldn’t produce an orphan.

    +

    Also works for text written in markdown.

    +
    +
    +
    +
    + {% header "h2", "Web fonts" %} +

    + Sometimes we use web fonts in emails to match the aesthetic of a marketing campaign or announcement. Web fonts don’t have great support in email clients, so here’s how we ensure our web font displays in as many email clients as possible: +

    +
      +
    1. Include an external stylesheet at the top of the email’s <head> tag. Sites like Google Fonts provide this code.
    2. +
    3. Windows Outlook sometimes chokes on web font references and defaults everything to Times New Roman. To avoid this, wrap the web font reference in a <!--[if !mso]> tag (so Windows Outlook ignores it) and define a fallback font for Windows Outlook inside a <!--[if mso]> tag.
    4. +
    5. Lastly, reference the web font at the beginning of the font stack, followed by a system fallback font for email clients that can’t display (and ignore) the web font.
    6. +

      +
      +{% highlight html %} + + + + + + + + + + +

      +

      + +{% endhighlight %} +
      + +

      I’m a Headline

      +

      Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

      +
      +
      +
    diff --git a/packages/stacks-docs/email/components/buttons.html b/packages/stacks-docs/email/components/buttons.html new file mode 100644 index 0000000000..7076968bc2 --- /dev/null +++ b/packages/stacks-docs/email/components/buttons.html @@ -0,0 +1,162 @@ +--- +layout: page +title: Buttons +description: Buttons are the primary way for users to take action from an email. Buttons should have ample click / tap space and describe their actions. Creating a button that displays consistently across email clients requires multiple HTML tags. +--- + + + +
    + {% header "h2", "Styles" %} +

    + A button’s visual weight should correspond to the importance of the button’s action. The more important the action, the heavier the button’s visual weight. +

    + {% header "h3", "Filled" %} +

    + A visual style used to highlight the most important actions. To avoid confusing users, don’t use more than one filled button within an email section. +

    +
    +{% highlight html %} + + + … + + +{% endhighlight %} + +
    + {% header "h3", "White" %} +

    + A visual style used to highlight the most important actions on a dark background. To avoid confusing users, don’t use more than one white button within an email. +

    +
    +{% highlight html %} + + + … + + +{% endhighlight %} + +
    + {% header "h3", "Outlined" %} +

    + All buttons, by default, are secondary buttons. +

    +
    +{% highlight html %} + + + … + + +{% endhighlight %} + +
    + {% tip %} + Note: Using the s-btn class with s-btn__filled, s-btn__white or s-btn__outlined applies :hover progressive enhancements defined in the <style> tag. Only email clients that support <style> in <head> will render the :hover. + {% endtip %} +
    +
    + {% header "h2", "Sizes" %} + {% header "h3", "Default" %} +

    + The default size for email buttons is appropriate for most emails. Useful for emails with one or two main calls-to-action. +

    +
    +{% highlight html %} + + + … + + + + + + … + + + + + + … + + +{% endhighlight %} +
    +
    + + + +
    +
    +
    + + {% header "h3", "Small" %} +

    + A slightly smaller button size is appropriate for emails with multiple calls-to-action, like a newsletter or an email hero with multiple calls-to-action. +

    +
    +{% highlight html %} + + + … + + + + + + … + + + + + + … + + +{% endhighlight %} +
    +
    + + + +
    +
    +
    +
    diff --git a/packages/stacks-docs/email/components/footers.html b/packages/stacks-docs/email/components/footers.html new file mode 100644 index 0000000000..0472127b71 --- /dev/null +++ b/packages/stacks-docs/email/components/footers.html @@ -0,0 +1,1145 @@ +--- +layout: page +title: Footers +description: Footers are included at the bottom of every email. They typically include ways manage their email subscription preferences and contact the company. +--- + +
    + {% header "h2", "Options" %} +

    + Email footers have several configurations depending on what type of email is being sent and from where. Transactional emails cannot be unsubscribed from, email subscriptions can be edited, Enterprise sites don’t have their own meta site. +

    +

    + Depending on the type of email being sent and where it comes from, different footer options can be included or excluded. +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescription / Purpose
    “You’re receiving this email because…”It’s good practice to explain why someone received the email whenever possible.
    Unsubscribe linkDirectly unsubscribes recipient from a single email or email type.
    Edit Email Settings linkLinks to recipient’s email settings.
    Edit $name$ linkSome subscription emails can be edited (eg. the parameters for a tag subscription or job alert).
    Contact us linkLinks to the contact us page of the appropriate network website. If no network site exists, links to the Stack Overflow contact page.
    Privacy linkFulfills a GDPR requirement.
    Stack Overflow logoAdds a bit of branding.
    Mailing addressAnti-spam laws of most countries require a postal address for the sender.
    <3because we care
    +
    + {% header "h3", "Example" %} +
    +{% highlight html %} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + You’re receiving this email because $reason$. +
    + Unsubscribe from this email     + Edit email settings     + Contact us     + Privacy +
    + + + + + +
    + +
    Stack Overflow, 110 William Street, 28th Floor, New York, NY 10038
    + + + + +
    +
    <3
    +
    +
    + + + +{% endhighlight %} +
    +
    + + + + + +
    +
    +
    +
    + +
    + {% header "h2", "Transactional emails" %} +

    + Transactional emails are triggered by a user’s interaction with the site (like account creation, password resets, and account notifications). Since these emails are initiated by the user, transactional emails don’t have an unsubscribe link. +

    + {% header "h3", "Transactional with account" %} +

    + If a user has an account, we include a link to their email preferences. +

    +
    +{% highlight html %} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + You’re receiving this email because $reason$. +
    + Edit email settings     + Contact us     + Privacy +
    + + + + + +
    + +
    Stack Overflow, 110 William Street, 28th Floor, New York, NY 10038
    + + + + +
    +
    <3
    +
    +
    + + + +{% endhighlight %} +
    +
    + + + + + +
    +
    +
    + {% header "h3", "Transactional with no account" %} +

    + If a user does not have an account, we don’t include a link for email preferences. +

    +
    +{% highlight html %} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + You’re receiving this email because $reason$. +
    + Contact us     + Privacy +
    + + + + + +
    + +
    Stack Overflow, 110 William Street, 28th Floor, New York, NY 10038
    + + + + +
    +
    <3
    +
    +
    + + + +{% endhighlight %} +
    +
    + + + + + +
    +
    +
    +
    + +
    + {% header "h2", "Subscription emails" %} +

    + Subscription emails are created by a user, usually by entering a number of parameters (like job alerts and tag subscriptions). Since subscriptions can be changed by the owner, subscription emails include an extra link to modify its parameters. +

    +
      +
    • If person clicks “unsubscribe”, they are automatically unsubscribed from that single email only.
    • +
    • If person clicks “Edit $name$”, they’re redirected to their respective subscription view.
    • +
    • $Name$ should populate with subscription type (eg. Question Subscriptions).
    • +
    + {% header "h3", "Subscription with account" %} +

    + If a user has an account, we include a link to their email preferences. +

    +
    +{% highlight html %} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + You’re receiving this email because $reason$. +
    + Unsubscribe from this email     + Edit $name$     + Edit email settings     + Contact us     + Privacy +
    + + + + + +
    + +
    Stack Overflow, 110 William Street, 28th Floor, New York, NY 10038
    + + + + +
    +
    <3
    +
    +
    + + + +{% endhighlight %} +
    +
    + + + + + +
    +
    +
    + {% header "h3", "Subscription-only" %} +

    + If a user does not have an account, we don’t include a link for email preferences. +

    +
    +{% highlight html %} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + You’re receiving this email because $reason$. +
    + Unsubscribe from this email     + Edit $name$     + Edit email settings     + Contact us     + Privacy +
    + + + + + +
    + +
    Stack Overflow, 110 William Street, 28th Floor, New York, NY 10038
    + + + + +
    +
    <3
    +
    +
    + + + +{% endhighlight %} +
    +
    + + + + + +
    +
    +
    +
    + +
    + {% header "h2", "Bucketed emails" %} +

    + Bucketed emails are not transactional or subscription emails. +

    + {% header "h3", "Bucketed with account" %} +

    + If person clicks “unsubscribe from emails like this”, they are automatically unsubscribed from that single bucket only. +

    +
    +{% highlight html %} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + You’re receiving this email because $reason$. +
    + Unsubscribe from emails like this     + Edit email settings     + Contact us     + Privacy +
    + + + + + +
    + +
    Stack Overflow, 110 William Street, 28th Floor, New York, NY 10038
    + + + + +
    +
    <3
    +
    +
    + + + +{% endhighlight %} +
    +
    + + + + + +
    +
    +
    + {% header "h3", "Bucketed with no account" %} +

    + If a user does not have an account, we don’t include an unsubscribe link or a link for email preferences. +

    +
    +{% highlight html %} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + You’re receiving this email because $reason$. +
    + Contact us     + Privacy +
    + + + + + +
    + +
    Stack Overflow, 110 William Street, 28th Floor, New York, NY 10038
    + + + + +
    +
    <3
    +
    +
    + + + +{% endhighlight %} +
    +
    + + + + + +
    +
    +
    +
    + +
    + {% header "h2", "Branding" %} + {% header "h3", "Default" %} +

    + Use default branding for emails that are mapped to an English brand. +

    +
    +{% highlight html %} + + + + + + + + + + + + + + + + + +
    + +
    Stack Overflow, 110 William Street, 28th Floor, New York, NY 10038
    + + + + +
    +
    <3
    +
    +
    + + + +{% endhighlight %} +
    +
    + + + + + +
    +
    +
    + {% header "h3", "Alternate" %} +

    + Use alternate branding for emails that are mapped to any brand that is not Stack Overflow English brand (eg. 3D Printing, Stack Overflow en espanol). +

    +
    +{% highlight html %} + + + + + + + + + + + + + + +
    Stack Overflow / Stack Exchange, 110 William Street, 28th Floor, New York, NY 10038
    + + + + +
    +
    <3
    +
    +
    + + + +{% endhighlight %} +
    +
    + + + + + +
    +
    +
    +
    + +
    + {% header "h2", "Enterprise emails" %} +

    + Enterprise is a bit unique; Enterprise sites don’t send promotional email or have meta sites, so we don’t need links for those in Enterprise emails. We also don’t need a privacy link because we don’t serve the users directly, rather we are serving the business that we sold to, making the privacy policy with regards to GDPR the responsibility of the client, not us. Lastly, some Enterprise installations are behind firewalls or require VPN access, so we remove the Stack Overflow logo to avoid a broken image (eg. if someone checks email on their phone). +

    +
    +{% highlight html %} + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + You’re receiving this email because $reason$. +
    + Edit email settings +
    + + + + + +
    Stack Overflow, 110 William Street, 28th Floor, New York, NY 10038
    + + + + +
    +
    <3
    +
    +
    + + + +{% endhighlight %} +
    +
    + + + + + +
    +
    +
    +
    diff --git a/packages/stacks-docs/email/components/images.html b/packages/stacks-docs/email/components/images.html new file mode 100644 index 0000000000..7364daa07e --- /dev/null +++ b/packages/stacks-docs/email/components/images.html @@ -0,0 +1,239 @@ +--- +layout: page +title: Images +description: +--- + + +
    + {% header "h2", "Foreground images" %} +

    + All email clients can display .png, .gif, and .jpg images displayed with the <img> tag. .svg images are not well supported, regardless of how they’re referenced, so avoid using these. +

    +

    + Most images should be coded responsive by default, meaning they’ll scale down proportionately in small viewports. It’s safest to code all images this way, even if they don’t end up scaling in practice. However if we’re confident that an image will never scale, we can display a non-responsive image using less code. +

    + {% header "h3", "Foreground image attributes" %} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeNotes
    srcattributeAlways set and use full https:// reference.
    widthattributeAlways set to intended desktop width.
    heightattributeOptional. Use only for images that won’t scale.
    borderattributeAlways set to 0 to avoid blue outlines on image links.
    altattributeAlways include but can be left empty if image is ornamental (Eg. alt="").
    widthinline CSS[Responsive] Always set to 100% for responsive images. Optional for static images.
    max-widthinline CSS[Responsive] Always set to intended desktop width. Optional for static images.
    heightinline CSS[Responsive] Always set to auto for responsive images. Optional for static images.
    displayinline CSSGenerally good practice to use `display:block;` when possible since it negates a few pixels of unwanted space below images in some clients.
    .g-imgclassAdvisable for images larger than ~300px wide. Prevents gmail from displaying an image download icon over images.
    + {% header "h3", "Foreground image examples" %} +
    +{% highlight html %} +/* Responsive */ +alt_text + +/* Static */ +alt_text +{% endhighlight %} +
    + alt_text +
    + alt_text +
    +
    + {% tip %} + Note: Every image that should scale down in small screens should have a width: 100%; max-width: (desktop-width)px; in it's style="" attribute. (desktop-width)px; is the largest size an image should appear in on desktop. This allows images to scale down when their desktop width exceeds the width of its container. + {% endtip %} +
    + + +
    + {% header "h2", "Background images" %} +

    + Background images allow us to place additional HTML content on top of them, one of the few reliable ways to provide layering possibilities in email. A benefit of using background images over foreground images is, when paired with a background color, the HTML content on top of the background image remains accessible even when images are disabled. +

    +

    + Background images can be complicated to implement in email, as many properties need to be defined once in CSS and again in VML for Windows Outlook and Win10 Mail. +

    + {% header "h3", "Background image attributes" %} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeNotes
    background-imageinline CSSAlways set and use full https:// reference.
    background-positioninline CSSOptional to set the size of the image.
    background-sizeinline CSSOptional to set the position of the image.
    background-colorinline CSSAlways set to make foreground HTML legible if background image doesn’t load.
    widthVML in <v:rect>Always set to full container width. VML doesn’t account for padding, adjust as necessary.
    heightVML in <v:rect>Always set to full container height. VML doesn’t account for padding, adjust as necessary.
    srcVML in <v:fill>Always set and use full https:// reference.
    color (background color)VML in <v:fill>Always set to make foreground HTML legible if background image doesn’t load.
    + {% header "h3", "Background image examples" %} +
    +{% highlight html %} + + +
    + + + + + +
    + Foreground HTML content. +
    + +
    + + +{% endhighlight %} +
    + + + + +
    +
    + + + + + +
    + Foreground HTML content. +
    + +
    +
    +
    +
    + {% tip %} + Note: Windows Outlook and Win10 Mail cannot scale background images, so the image referenced in VML should be prepared @1x. Most other email clients can scale background images defined in CSS, so using @2x images is advisable. + {% endtip %} +
    +
    + {% header "h2", "How should images be prepared?" %} +

    + Email has largely standardized on PNG, JPG, and GIF file formats. Animated GIFs are supported in all email clients, though Windows Outlook and Win10 Mail only display its first frame. +

    +

    + SVG is not well supported in most web email clients, including Gmail (which accounts for most of our email opens) and are completely blocked in Outlook. This includes base64 encoded images. +

    +
      +
    • Foreground images should be saved at @2x since they scale reliably in all major email clients. @2x images display crisply on high-definition displays when scaled down to @1x in code.
    • +
    • Background images should be saved at @1x since they don’t scale reliably in all major email clients.
    • +
    +

    + Ideally, images should be under ~100KB. Tools like Image Optim, Krackin, and TinyPNG help bring down a file size. Keep in mind that animated GIFs tend to get very large, so it’s a good idea to keep them simple and use them sparingly. +

    +

    + Images should be hosted within their respective ESP. Upload images in Iterable for Iterable emails, add images in GitHub for StackMail emails, etc. Images should not be referenced using services like Imgur or Dropbox, as they have a greater chance of being marked as spam. +

    + {% header "h3", "Animated GIFs" %} +

    + Animated GIFs can help explain an interaction or add a bit of delight that isn’t possible with static email designs. However there are a couple things to consider when designing and preparing animated GIFs. +

    +
      +
    1. + Support: Every email client displays animated GIFs, but some don't animate them. Windows Outlook shows only the first frame, so it's important that all vital information is included in the first frame of the GIF. +
    2. +
    3. + File size: Animated GIFs are prone to excessive file sizes. The rule of thumb is to try to keep animated GIFs under ~1MB. However, it's OK to include a good-looking animated GIF with a large file size provided the rest of the email is relatively small. +
    4. +
    +
    diff --git a/packages/stacks-docs/email/components/signatures.html b/packages/stacks-docs/email/components/signatures.html new file mode 100644 index 0000000000..6839bdb490 --- /dev/null +++ b/packages/stacks-docs/email/components/signatures.html @@ -0,0 +1,105 @@ +--- +layout: page +title: Signatures +description: Signatures are a useful option when you need to send more formal emails, while also sending helpful information such as our office address or your timezone. +--- + +
    + {% header "h2", "Options" %} +

    + Depending on your email client you may need to copy and paste either HTML code, or the preview below. +

    + {% header "h3", "Basic example" %} +
    +{% highlight html %} + + + + + + + + + +
    + David Longworth (he/him)
    + Brand Design Team Lead +
    + Stack Overflow +
    +{% endhighlight %} +
    +
    + + + + + + + + + +
    + David Longworth (he/him)
    + Brand Design Team Lead +
    + Stack Overflow +
    +
    +
    +
    + + {% header "h3", "Detailed example" %} +
    +{% highlight html %} + + + + + + + + + + + + +
    + David Longworth (he/him)
    + Brand Design Team Lead +
    + Stack Overflow +
    + London, UK
    + British Summer Time (UTC+1)

    + +1 (212) 232-8294 +
    +{% endhighlight %} +
    +
    + + + + + + + + + + + + +
    + David Longworth (he/him)
    + Brand Design Team Lead
    +
    + Stack Overflow +
    + London, UK
    + British Summer Time (UTC+1)

    + +1 (212) 232-8294 +
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/email/components/spacers.html b/packages/stacks-docs/email/components/spacers.html new file mode 100644 index 0000000000..f5911680d1 --- /dev/null +++ b/packages/stacks-docs/email/components/spacers.html @@ -0,0 +1,130 @@ +--- +layout: page +title: Spacers +description: Spacers are used to add separation between table rows. +--- +
    + {% header "h2", "Base" %} +

    The best way to control spacing between components in HTML email is to use padding (applied to <td>’s) and margin (applied to <h> tags, <p>’s, <ol>’s, <li>’s, etc.).

    +

    However padding and margin cannot be used reliably to space out <table>’s or <tr>’s. In these cases, it's best to use a spacer to create separation.

    +
    +{% highlight html %} + + +   + + +{% endhighlight %} +
    +
    + (size of the spacer) +
    +
    +
    + {% header "h3", "Syntax" %} +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescription / Purpose
    heightSize of the spacer.
    aria-hidden="true"Hide the &nbsp; from screen readers.
    &nbsp;Some email clients will collapse the spacer’s height if there’s no content.
    style="font-size: 0px; line-height: 0px;"Some clients will add additional space inherited from the &nbsp;’s font-size and line-height.
    background-color OptionalSpacers are transparent by default but can be any color.
    +
    + {% header "h2", "Examples" %} + {% header "h3", "Spacer between two table rows" %} +

    Create separation between two table rows in the same section.

    +
    +{% highlight html %} + + … + + + +   + + + + … + +{% endhighlight %} +
    +
    + alt_text +
    +

    Are your preferences up to date?

    +

    Make sure we are recommending the best content for you.

    +
    +
    +
    + (spacer) +
    +
    + alt_text +
    +

    Are your preferences up to date?

    +

    Make sure we are recommending the best content for you.

    +
    +
    +
    +
    + {% header "h3", "Spacer between two sections" %} +

    Create separation between two email sections.

    +
    +{% highlight html %} + + … + + + +   + + + + … + +{% endhighlight %} +
    +
    + alt_text +
    +

    Are your preferences up to date?

    +

    Make sure we are recommending the best content for you.

    +
    +
    +
    + (spacer) +
    +
    + alt_text +
    +

    Are your preferences up to date?

    +

    Make sure we are recommending the best content for you.

    +
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/email/components/tags.html b/packages/stacks-docs/email/components/tags.html new file mode 100644 index 0000000000..fbb432114c --- /dev/null +++ b/packages/stacks-docs/email/components/tags.html @@ -0,0 +1,88 @@ +--- +layout: page +title: Tags +description: Tags are interface elements that allow users to organize and discover related information throughout Stack Overflow. +--- + + + +
    +

    + Questions, jobs, and candidates can be tagged with up to 5 tags. Individual tags should not break onto multiple lines, though a list of tags can. +

    +
    +
    + {% header "h2", "Default" %} +

    + The default style of tags on Stack Overflow. +

    +
    +{% highlight html %} + + tag-name + meta-topic + status-completed + +{% endhighlight %} + +
    + {% tip %} + Note: Using the s-tag class applies :hover progressive enhancements defined in the <style> tag. Only email clients that support <style> in <head> will render the :hover. s-tag should be used on default powder blue tags only. + {% endtip %} + {% header "h2", "Themed" %} +

    + Some areas of the site can be themed by the community by setting a theme color. This theme color can be used to change the text and background color of tags in that community. +

    +
    +{% highlight html %} + + tag-name + +{% endhighlight %} + +
    +

    + Themed tags use a variable theme color and CSS opacity. However not all email clients support opacity, so here’s how we work around those limitations: +

    +

    + For email clients that DON’T support opacity (mainly Windows Outlook and Yahoo), the background (both border-color and background) is defined as a solid gray color #EFF0F1. Email clients that don’t support opacity displayed themed tags with this gray background: +

    +
    + tag-name +

    How themed tags appear in email clients that DON’T support opacity.

    +
    +

    + For email clients that DO support opacity, we define the background again by using the theme color at 15% opacity (#2b8a3e15). The border-color uses the theme color at 1% opacity (#2b8a3e01) to avoid a perceivable border caused by two overlapping color at 15% and prevent email clients from collapsing a transparent border. +

    +
    + tag-name +

    How themed tags appear in email clients that DO support opacity.

    +
    +
    diff --git a/packages/stacks-docs/email/components/team-identification.html b/packages/stacks-docs/email/components/team-identification.html new file mode 100644 index 0000000000..5f64c44ae4 --- /dev/null +++ b/packages/stacks-docs/email/components/team-identification.html @@ -0,0 +1,59 @@ +--- +layout: page +title: Team identification +description: Emails sent from a Team on Stack Overflow for Teams should be clearly labeled. +--- +
    +

    Team icon and name should be in a prominent, noticeable location in the email. The icon color should match the Team’s theme color as defined in their display settings (eg. https://stackoverflow.com/c/team-name/admin/settings/theme) on Stack Overflow or Stack Overflow for Enterprise.

    +

    If space is tight, an icon-only version can be used.

    + {% tip %} + Note: An email should only contain content from one Team. A Team’s content should never appear mixed alongside with content from another Team or public content in a single email. + {% endtip %} + {% header "h2", "Example" %} +
    +{% highlight html %} + + + + + +
    + + + + +
    + T +
    +
    + Team Name +
    +{% endhighlight %} +
    + + + + + +
    + + + + +
    + S +
    +
    + SO for Teams Name +
    +
    + + + + +
    + S +
    +
    +
    +
    diff --git a/packages/stacks-docs/email/guidelines/design-best-practices.html b/packages/stacks-docs/email/guidelines/design-best-practices.html new file mode 100644 index 0000000000..aad63855db --- /dev/null +++ b/packages/stacks-docs/email/guidelines/design-best-practices.html @@ -0,0 +1,109 @@ +--- +layout: page +title: Design best practices +description: Emails don’t need to look the same in every email client, but there are some best practices and guidelines to keep in mind to make sure they are consistently designed, render properly in email clients, and are as accessible as possible. +--- +
    + {% header "h2", "General rules and principles" %} +

    + Given Stack Overflow’s reach, we strive to support email clients with low levels of HTML & CSS support (namely Microsoft Outlook, a few versions of Gmail, and a handful of mostly non-US clients). Less than 1% of a mailing list can still mean a few thousand users, so it’s safest to code emails like it’s 1999. +

    +
      +
    • CSS2 instead of CSS3
    • +
    • Tables instead of Divs
    • +
    • PNGs instead of SVGs
    • +
    • Inline CSS instead of embedded styles or stylesheets
    • +
    • HTML text instead of images containing text
    • +
    +

    + Can I Email? and Campaign Monitor’s guide to CSS are good references for HTML & CSS support in email.

    +

    + + {% header "h3", "HTML and CSS" %} +
      +
    1. + Use <table border="0" cellpadding="0" cellspacing="0" role="presentation"> when creating new tables. + This negates any unwanted spacing and borders and tells screen readers to skip over the table’s tags and move straight into the content. +
    2. +
    3. + When in doubt, nest another table. + For finer control of your HTML, try nesting tables when building emails. +
    4. +
    5. + Use padding for spacing in table cells. + Margins aren’t fully supported on tables and container elements. +
    6. +
    7. + Use margin for typography. + Margins are fully supported for headline, paragraph, and list tags. +
    8. +
    9. + HTML Attributes + Most styling is done via CSS. But because some email clients use antiquated rendering engines, they tend to better understand attributes like align, valign, height, and width. +
    10. +
    11. + Use align for layout instead of float, d-flex, or flexbox + Floats aren’t supported in Outlook and the others don’t have good support in general. +
    12. +
    13. + Define color as #ffffff instead of #fff or rgb(1,2,3). + Six-digit hex is supported in inline CSS as well as HTML attributes like bgcolor that are still supported in email. +
    14. +
    15. + Don’t forget about preview text. + We can specify the text that appears beneath subject lines in many email clients. If preview text is not included, this space will be populated by the email’s content. +
    16. +
    + {% header "h3", "Images" %} +
      +
    1. + Save images as PNG, GIF, or JPG instead of SVG. + SVG has almost no support in email, no matter how it’s referenced (inline, Base64, .svg). +
    2. +
    3. + Save images as @2x and scale them down using HTML attributes. + Since SVG isn’t supported, a 20x20 raster image coded like <img src="40x40-image.png" height="20" width="20"> displays crisply on high-definition screens. +
    4. +
    + {% header "h3", "Accessibility" %} +
      +
    1. + Include role="presentation" on all tables used for layout. + This prevents screen readers from reading aloud the structure of each table cell. +
    2. +
    3. + Use HTML1 semantic tags whenever possible. + Tags like <p> and <h> allow screen readers to quickly jump from section to section. Tags like <strong> and <em> give text more importance. +
    4. +
    5. + Include an alt attribute on every image. + Be descriptive and use alt to help readers “see” the email if images aren’t displayed. Use an empty alt="" for images a screen reader should skip (eg. decorative images). Screenreaders will dictate the filename of images without an alt attribute (eg. "icon dash checkmark dot png"). More on alt text. +
    6. +
    7. + Avoid “Click Here” or “Learn More” link copy. + It helps us avoid spam filters and gives context about the link to folks using screen readers or dictation software. We have some copy guidelines for buttons and links. +
    8. +
    9. + Create a plain text version of every email. + It helps us avoid spam filters, some email clients don’t support HTML, and some people just prefer plain text. They also respond better to things like changing font size, family, and color, and work well with screen magnifiers. We don’t have many rules or guidelines for formatting plain text emails, though they typically look something like this. Our email service providers have tools to convert HTML email to plain text. +
    10. +
    +
    +
    + {% header "h2", "Testing" %} +

    + Tools to ensure emails look as they should when they’re sent. +

    +
    +
    +

    + Litmus allows us to preview screenshots of our emails across 90+ email clients on multiple devices. Builder and Checklist are particularly handy for troubleshooting bugs and circulating email code. +

    +
    +
    +

    + Papercut allows us to test emails from our code base. Good for making sure templates are built properly, personalized data populates, and email triggers work. +

    +
    +
    +
    diff --git a/packages/stacks-docs/email/guidelines/faq.html b/packages/stacks-docs/email/guidelines/faq.html new file mode 100644 index 0000000000..552141f144 --- /dev/null +++ b/packages/stacks-docs/email/guidelines/faq.html @@ -0,0 +1,159 @@ +--- +layout: page +title: Frequently asked questions +--- +
    + {% header "h2", "Why do we have to write CSS inline?" %} +

    + It’s still the safest way to ensure CSS styles are applied in email clients. Referencing external stylesheets isn’t well-supported in email. Embedded CSS in a <style> tag does have decent support, and there are a few holdouts like a few Gmail clients and a smattering of mostly non-US mobile clients. Given Stack Overflow’s volume and reach, we choose to support as many email clients as we can, even ones that don’t support the <style> tag. So we opt for writing CSS inline, which is supported everywhere. +

    +
    + +
    + {% header "h2", "If CSS is inline, why do we need a style tag?" %} +

    + Inline CSS is a sure-fire way to style an email’s layout at a granular level. For the same reason it’s done on the web, adding a CSS reset to an email’s <head> helps to normalize how the code gets rendered in email clients that support the <style> tag. +

    +

    + Each template contains a breakdown, element by element, of what each reset style is actually doing. +

    +
    + +
    + {% header "h2", "Can we use a CSS inliner?" %} +

    + CSS inliners promise to take CSS written in the <head> and automatically move CSS inline in the appropriate locations in the <body>. However we recommend against using a CSS inliners with these templates. Here’s why: +

    +
      +
    • These templates should not require a dependency to author CSS.
    • +
    • The placement of the templates CSS is already optimized. The CSS in the <head> is meant only for email clients that parse CSS in this location. It doesn’t need to be inlined.
    • +
    • There are some CSS selectors like :hover that throw errors in some CSS inliners.
    • +
    • Inlining leads to code bloat. Not only does this impact download speeds, but some email clients like Gmail and iOS Outlook truncate messages after they exceed a certain file size.
    • +
    +
    + +
    + {% header "h2", "How does CSS inheritance work in email?" %} +

    + Various email clients handle CSS inheritance differently from one another, so it’s best to place inline CSS on the HTML tag close to the content you wish to style instead of relying on the cascade. +

    +

    + {% icon "Checkmark", "mr4" %} Do +

    +
    +{% highlight html %} + + + + +
    + Arial text. +
    +{% endhighlight %} +
    + +

    + {% icon "Clear", "mr4" %} Don’t +

    +
    +{% highlight html %} + + + + +
    + May not be Arial text. +
    +{% endhighlight %} +
    +
    + +
    + {% header "h2", "How do margin and padding work in email?" %} +

    + Use margin block-level typography tags like <h>, <p>, <ul>, and <li>... and use padding on <td>s. +

    +

    + Outlook only honors margins on typography tags, and only honors padding on <td> tags. Its interpretation of spacing on other tags like <table>, <div>, and <img> tags is sketchy, so it’s best to avoid spacing with those. +

    +

    + {% icon "Checkmark", "mr4" %} Do +

    +
    +{% highlight html %} + +

    + Paragraph +

    + +{% endhighlight %} +
    + +

    + {% icon "Clear", "mr4" %} Don’t +

    +
    +{% highlight html %} + +

    + Paragraph +

    + +{% endhighlight %} +
    +
    + +
    + {% header "h2", "What is the best <doctype> for email?" %} +

    + Use the HTML5 doctype <!doctype html>. It’s the shortest and easiest to remember, and it’s enough to trigger standards mode on supported clients. This article goes into more detail. There’s no need to close <img> tags with trailing / (XHTML style). +

    +
    + +
    + {% header "h2", "What is preview text?" %} +

    + Preview text is a snippet of copy pulled in from the body of your email and typically displayed underneath the sender name and subject line in a subscriber’s inbox. It’s used to increase open rates, as users see an email in their inbox before opening it. +

    +

    + Diagram of email subject line, sender, and preview text in mobile inbox +

    +

    + Preview text is optional. If preview text is short or omitted, email clients will fill the space with text from the email body (including alt attributes). You can avoid unwanted text coming in from your email’s body by using this hack. +

    + + {% tip %} + Note: Iterable inserts its own preview text, so this part of the Stacks template can be removed for templates prepared for Iterable. + {% endtip %} +
    + +
    + {% header "h2", "How wide should an email be?" %} +

    + Our default email templates are 680px wide. Our hybrid math, the code that makes emails responsive without media queries, is built on that number. +

    +

    + This is more a guideline than a rule. If the situation calls for it, an email can have any width. Examples might be... +

    +
      +
    • One-off emails with unique layouts (like a major product update).
    • +
    • Single-column emails that don’t need to stack on small screens (like our Code of Conduct email).
    • +
    +
    + +
    + {% header "h2", "What is conversation threading?" %} +

    + When creating emails, Gmail may attempt to highlight portions of the email body that it thinks are important parts of a previous conversation thread. It does this by applying an .im class to portions of the email, which makes text purple. +

    +

    + To defend against this unwanted styling, our templates include a CSS reset in the <head>, though this will only be applied in email clients that support CSS styles in the <head>. +

    +
    + +
    + {% header "h2", "When should I deviate from these guidelines?" %} +

    + The template in this repo is not the only way to design HTML emails at Stack Overflow. It’s possible to deviate and create a custom design with new components. In fact, we’d encourage it for major announcements, big product updates, and anything that requires a more eye-catching email UX! Really Good Emails and Dribbble are good sources of design inspiration. +

    +
    diff --git a/packages/stacks-docs/email/guidelines/getting-started.html b/packages/stacks-docs/email/guidelines/getting-started.html new file mode 100644 index 0000000000..9392e9a637 --- /dev/null +++ b/packages/stacks-docs/email/guidelines/getting-started.html @@ -0,0 +1,252 @@ +--- +layout: page +title: Email design at Stack Overflow +description: An email design system that helps us work together to create consistently-designed, properly-rendered email for all Stack Overflow users. Intended for anyone who works with email at Stack Overflow. +hide-menu: true +--- +
    +
    +
    +

    Templates

    +

    Starting points for creating new emails.

    +
    +
    + +
    + +
    +
    +

    Customizing email

    +

    Design and code guidelines for how we create and customize emails.

    +
    +
    +
    +
    + +
    +
    +

    Base

    +

    Design patterns for basic things like typography, hyperlinks, responsiveness, Outlook conditional CSS, and more.

    +
    +
    +
    +
    + {% spot "Puzzle" %} +
    +
    +

    Components

    +

    Design patterns for more complex things like buttons, images, tags, responsive columns, and more.

    +
    + +
    +
    + +
    +
    +

    Knowledge and resources

    +
    +
    +
    +
    +

    Design best practices

    +

    Emails don’t need to look the same in every email client, but there are some things to keep in mind when working on emails.

    +

    View design best practices

    +
    +
    +

    FAQ

    +

    We’ve answered a few common questions, like:

    + +

    View all FAQs

    +
    +
    +
    +
    +

    Email client breakdown

    +

    Make sure your emails render well in these clients. We use Litmus and a few other tools.

    +
    +
    +
    +
    +
    + +
    +
    + Gmail +
    +
    +
    + 73% +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + Yahoo +
    +
    +
    + 8% +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + Apple Mail +
    +
    +
    + 6% +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + Microsoft Outlook +
    +
    +
    + 5% +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + iPhone +
    +
    +
    + 5% +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + Windows Live Mail +
    +
    +
    + 1% +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + iPad +
    +
    +
    + < 1% +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + Samsung Mail +
    +
    +
    + < 1% +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + Android Mail +
    +
    +
    + < 1% +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + Mail.Ru +
    +
    +
    + < 1% +
    +
    +
    +
    + +
    +
    +
    diff --git a/packages/stacks-docs/email/patterns/columns.html b/packages/stacks-docs/email/patterns/columns.html new file mode 100644 index 0000000000..5bf9ef45fd --- /dev/null +++ b/packages/stacks-docs/email/patterns/columns.html @@ -0,0 +1,303 @@ +--- +layout: page +title: Multiple columns +description: A few layout ideas to reconfigure columns for different screen sizes in email clients. +--- +
    +

    + Reading on small displays is easier when done in a top-to-bottom fashion. Using hybrid design and media queries, we can switch multi-column layouts to a single-column one. +

    + {% header "h2", "Two even columns" %} +
    +{% highlight html %} + + +
    + +
    + + + + +
    + … +
    +
    + +
    + + + + +
    + … +
    +
    + +
    + + +{% endhighlight %} +
    + +
    + +
    +
    +
    +
    +
    + {% header "h2", "Two uneven columns" %} + {% header "h3", "Default" %} +
    +{% highlight html %} + + +
    + +
    + + + + +
    + alt_text +
    +
    + +
    + + + + +
    + … +
    +
    + +
    + + +{% endhighlight %} +
    + +
    + +
    +
    +
    +
    +
    + {% header "h3", "Reverse stacking" %} +

    + By default, columns are arranged based on source order on both desktop and mobile displays. (Eg. the first (left) desktop column will stack on top of the second (right) desktop column. Using the dir attribute, we can swap the order of columns on desktop without changing the source order. Useful when you want an image in the second (right) column on desktop, but on the first (top) row when stacked on mobile. +

    +
    +{% highlight html %} + + +
    + +
    + + + + +
    + alt_text +
    +
    + +
    + + + + +
    + … +
    +
    + +
    + + +{% endhighlight %} +
    + +
    + +
    +
    +
    + {% tip %} + Note: If you add a dir="rtl" to a parent container, it will cascade down into children containers. To prevent text from reading right-to-left, add dir="ltr" to children containers. + {% endtip %} +
    +
    + {% header "h2", "Three even columns" %} +
    +{% highlight html %} + + +
    + +
    + + + + +
    + … +
    +
    + +
    + + + + +
    + … +
    +
    + +
    + + + + +
    + … +
    +
    + +
    + + +{% endhighlight %} +
    + +
    + +
    +
    +
    +
    diff --git a/packages/stacks-docs/email/patterns/snippets/three-col-even.html b/packages/stacks-docs/email/patterns/snippets/three-col-even.html new file mode 100644 index 0000000000..762dee696b --- /dev/null +++ b/packages/stacks-docs/email/patterns/snippets/three-col-even.html @@ -0,0 +1,63 @@ + + + + + + \ No newline at end of file diff --git a/packages/stacks-docs/email/patterns/snippets/two-col-even.html b/packages/stacks-docs/email/patterns/snippets/two-col-even.html new file mode 100644 index 0000000000..9b0fd829c3 --- /dev/null +++ b/packages/stacks-docs/email/patterns/snippets/two-col-even.html @@ -0,0 +1,53 @@ + + + + + + + + \ No newline at end of file diff --git a/packages/stacks-docs/email/patterns/snippets/two-col-uneven-reverse.html b/packages/stacks-docs/email/patterns/snippets/two-col-uneven-reverse.html new file mode 100644 index 0000000000..af42849706 --- /dev/null +++ b/packages/stacks-docs/email/patterns/snippets/two-col-uneven-reverse.html @@ -0,0 +1,50 @@ + + + + + + + + \ No newline at end of file diff --git a/packages/stacks-docs/email/patterns/snippets/two-col-uneven.html b/packages/stacks-docs/email/patterns/snippets/two-col-uneven.html new file mode 100644 index 0000000000..6cd62e2a80 --- /dev/null +++ b/packages/stacks-docs/email/patterns/snippets/two-col-uneven.html @@ -0,0 +1,50 @@ + + + + + + + + \ No newline at end of file diff --git a/packages/stacks-docs/email/templates/code/Logo@2x.png b/packages/stacks-docs/email/templates/code/Logo@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d12859d7239bf5d6f875f1f758663fec5efaad07 GIT binary patch literal 2363 zcmYk7c|4SB8^;He#yXZPjip)9Bw15JGnN`l6GOJdBoSpV$~H3?lOq|FqikgfW0~yA zp;YFOtt?TN5rydxG2W5F`_y^=c<;~kxu56y-QVkXUC;B+o#H?|DJ2dQ2Z2CRHUujY z2qc6C-U$#9V87&d-3|~m9PFK~fpnP)=TkAORMZ+3&Hukxr=o!X#5F34PeuL4(Er0I z=x>x?M{qbCg~IS@C^%dTiPiuDg~lLJzjq)-X#hMDqX}RLlm=h|EF=npL~8;hAfnM) zz$xH>LTO+y7&r!l0`y;$2C$HT)vpvV#9*;l1R4VbAOclD2>=640Sf>I3<3Xt;eQ#x z1n7yxVu4zK(bNPwqJeqPXdRS}&My+JxkmftjQBk^p#0U^DxkvGfq~H)T3T9w55NFb zfWKd!paA$&K37RZClFlMVR<=y=NX%VV{&B%$n4Nistnm1zC(G&ZKqB>2$kg)Ix<7I z;kb}O2VGsZgSXJYGPzLbS^I5#fgS=!4twzR{6M;+tWW`7D6~*WhL-SI<@!oCfIz!_Y^?Ck*M$~GdPs@7dpO@B%0pXn8pJJ%-8`1tcO*PWC;pf?e7<92 z%jI#eaTW!#jR1kj>3+}WIR5v+w3|s_CuBt@SpKjN1}q<3`Y4A(oB9K87cq7+dv1wY zs#i60+(9@g3+)HufqOXx3Ew%m4_egfdw*)^WCHT6U*-nlI zceVF-J$F#eXKEA_^M)@bXQ|{N-AGlEvbp$>4 zP$ZLchKijv!+RlueTY8fEHI3X&M=OokROhLK8-10};w;WaaCO(!P7tCf zNGXnK4 zF;h3{i`FDf;x{*Ii|5J@v?9C3QUeKw9X0bd%VtW0>{}4Xi`{ZbM~VXNzRkx#qhD8h z6s;D3p^r780*FaD&8P_-#|+Pho97MRU}F22$b1#joIgh8na`)?+UBak_JBV#6=7(-^-CZ%>Fhr%BIE9(&FCC z;Zz>6E@NA`B2BMYhoed$y&baeguYL>FBPCW{{ERB>!P=C0Nm71dea=kkWtFd^B@dHCHlL&o;J{CfWc93UI|J=v@1m;y92V^j6ULg;t5G8 zxkY^&MQx{V(@F6xi&7?-o0MU*Z-RZzs|q0&OHU*vfS1Qz&1X&RFWo~S?mDoz$GCVmjQ?d5#4nkws<7FY9FANck(Rp{2<)Rftv4l^Dn*wmV@ zb1`bgIZeU*j)2b-{lS|t3OJ1vt<4{b5SF3IhBMBnQ1

    ;dtl;MFG>)mz-pBve7-{ zxKc70yQM41IGbQHTu-*Fko3R&567_X{A%=t;tRb)hU3PxTGuC0T%wE~g%m=+Hmlk?H3_H!ng^(C`qv;4N1L1zV6uNH%O+H3psTD{gL>AD;^m^h&IS7RY`ByhhZp`$tk zV{^)@YG(IWeJ)*>0|yfa`c3f0j2ixX&e>ZkGfc*wD6gwKR)x87mjj0*2l`F$#*Q7^ z#`M(lAbk66#tLzy*=8&a1Vq27xOQD`#O1)Zm;?PLc+}^T{AnL@rvE&l|I;I)_MQZo zn{+vFSaG0F1g~_}s_e2r?XRRgr*g2kAom&0_@7i5?7f@Hs_On-g}HH;1BVj_dM$V# ze)wT3YmK}pO!NNoK+V$Ct5>HdGB7jU^9!h)?@D-7K#eCWSFb)s!raj1z~RJ!UJKsV z?VmpehD|4?3Bk_W*BYrUtE(HKGBGD7r$zJd^BLno2?y>`Mr-652%#=vZs>C0aN$6& z1h1y1=4hM~%y2MEh)Jx?TvryTo2j!6L6t{Dr2$61>Y-wp_^?V4LE#P9vpsN|@AH>-zG}APn3IyI57Kgbp zmjj132W)}pi*A-y)!Ya}Zy{(o>^2DHb8xWym~1_&r=q52f*BF7!_G^S^ zAjCPl`?wr9v^mhHf=8?>U0L@7W|&LiYRPi2j`IzkG|%k9oSe@HUKXhSxiHxyDh`Bh zUP*!Pzg5_w7^e#aVNq+T=3YMJb-#an{F1?;*x_FGDG=C{8DV=*5~g9zsp0}(1uf9f zq;yYDE56XAGz=Md~>ue(%TT|KJJ z;7@>1foiS{88l$P#BkFzsw)E3maq-VNckD;y^oZB>Ns3qY@H1% zz`lr*4N2#Q$<7)3g1$?mZ#hs~TYF?%gs+Fd6{Tp-NIMhMbtIFs|M z`A`SKC565#HI3g0xS{4jc;}T@)jm5YBV#ifaT9jOGM1{J0td@V70-@WmrmSGrGWtG)$z~DU_X`6Pj z-}j)dY1nCalfGtb6=q&A6OXvr|nuVU<3gMcW*nPlH1^jvJW?RYvH4Dd#9KM)TM;ws9R$jek znrVcW!=du8b~(-(7@PFfp}8+<UnDi|EC8!1hG|Fj*l3>RF(!Yq?4lE(JgiC#pg9lLiojWG0ZmTsi&_WP&o zN+d^LPe@Nshp#63pzjg%z1=aFir3L+P1Jr9HOWVtc&v^d1(h{5Q;dk1i}Ud_v47bE z>L3EU4V65Ym67rY4NUB&%kw0(*g>~=wSiOp{_lR}DAR*Pd7y3@96l2mXJa7HO$fK@ zT>q#rKWDuX} zBBzlomn@{oUmmEXd#f|hmTWkVf=uxD`JnU_#givD$};3Q2!>27IE-l??}Xy~oWILF z8IludU#oEm7IzJ--C0tQ`?AbaLwYlWwHdc#4>;dx6Y&P{Vp$4Lxl>MPm;?8sjkn11 z;QvyX0vF1(4C%TbT=$me*@AJtZ%9_gF!Cf)8gG`IA(%NAaxpDF?wFXIt>qfOzhq{f z&0oS#^gfb9ErolFLL$5Xe8Svesf0%w5yous;H>mp8XALJ)&2lp2HZBn8guN3b7?WB zV}_8q#}-J;vktwQSoBZCqW>E%#Az7Q0Yrx$(ESv_qKp)6VQy}&MGIQn3gG;}LWttr z2~YcPWST+}D16RjH}D2gnsa@2;uw+h5q^-5C_nZX1Jk|PIL~fKE-VtQi?Gn=d!wWv z|7<;lpGZ15&@IL|iouhK!M?YtxosOdv_KDXFK)V&ps5dPDg5*U6}s~3)!)Tნ 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 literal 0 HcmV?d00001 diff --git a/packages/stacks-docs/email/templates/code/illo-128-1.png b/packages/stacks-docs/email/templates/code/illo-128-1.png new file mode 100644 index 0000000000000000000000000000000000000000..f4d5dafbb8848911db2eda294dc2da87b4d6b669 GIT binary patch literal 6553 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 literal 0 HcmV?d00001 diff --git a/packages/stacks-docs/email/templates/code/illo-128-2.png b/packages/stacks-docs/email/templates/code/illo-128-2.png new file mode 100644 index 0000000000000000000000000000000000000000..38ef63769cbb17f97c1ba9c9e630fef8b0509941 GIT binary patch literal 6812 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 bo*=(@&oOCgay#+pU+!fs1I_R1*1`V+@&|WA literal 0 HcmV?d00001 diff --git a/packages/stacks-docs/email/templates/code/illo-64-1.png b/packages/stacks-docs/email/templates/code/illo-64-1.png new file mode 100644 index 0000000000000000000000000000000000000000..8964549a5a7f79db9f2f4a355a44bf0a7cd5e0e2 GIT binary patch literal 4103 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 ah_9eYA4KC}9sWWCQc=`U`2N%)@V@|Jetzlz literal 0 HcmV?d00001 diff --git a/packages/stacks-docs/email/templates/code/illo-scene-1.png b/packages/stacks-docs/email/templates/code/illo-scene-1.png new file mode 100644 index 0000000000000000000000000000000000000000..67a60bd853bd8713c037b1f4ae9077942f9540ee GIT binary patch literal 31077 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 literal 0 HcmV?d00001 diff --git a/packages/stacks-docs/email/templates/code/promotional.html b/packages/stacks-docs/email/templates/code/promotional.html new file mode 100644 index 0000000000..aa766f556b --- /dev/null +++ b/packages/stacks-docs/email/templates/code/promotional.html @@ -0,0 +1,533 @@ + + + + + + + + + + + + + + + + + + + + + + + + +

    + + + +
    + (Optional) This text will appear in the inbox preview, but not the email body. It can be used to supplement the email subject line or even summarize the email's contents. Extended text preheaders (~490 characters) seems like a better UX for anyone using a screenreader or voice-command apps like Siri to dictate the contents of an email. If this text is not included, email clients will automatically populate it using the text (including image alt text) at the start of the email's body. +
    + + + + +
    + + \ No newline at end of file diff --git a/packages/stacks-docs/email/templates/code/transactional-long.html b/packages/stacks-docs/email/templates/code/transactional-long.html new file mode 100644 index 0000000000..7ec2aed4f4 --- /dev/null +++ b/packages/stacks-docs/email/templates/code/transactional-long.html @@ -0,0 +1,573 @@ + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + (Optional) This text will appear in the inbox preview, but not the email body. It can be used to supplement the email subject line or even summarize the email's contents. Extended text preheaders (~490 characters) seems like a better UX for anyone using a screenreader or voice-command apps like Siri to dictate the contents of an email. If this text is not included, email clients will automatically populate it using the text (including image alt text) at the start of the email's body. +
    + + + + +
    + + \ No newline at end of file diff --git a/packages/stacks-docs/email/templates/code/transactional-short.html b/packages/stacks-docs/email/templates/code/transactional-short.html new file mode 100644 index 0000000000..0dbdc8d28d --- /dev/null +++ b/packages/stacks-docs/email/templates/code/transactional-short.html @@ -0,0 +1,438 @@ + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + (Optional) This text will appear in the inbox preview, but not the email body. It can be used to supplement the email subject line or even summarize the email's contents. Extended text preheaders (~490 characters) seems like a better UX for anyone using a screenreader or voice-command apps like Siri to dictate the contents of an email. If this text is not included, email clients will automatically populate it using the text (including image alt text) at the start of the email's body. +
    + + + + +
    + + \ No newline at end of file diff --git a/packages/stacks-docs/email/templates/examples/10th.html b/packages/stacks-docs/email/templates/examples/10th.html new file mode 100644 index 0000000000..715a46d0f3 --- /dev/null +++ b/packages/stacks-docs/email/templates/examples/10th.html @@ -0,0 +1,408 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + \ No newline at end of file diff --git a/packages/stacks-docs/email/templates/examples/10th.png b/packages/stacks-docs/email/templates/examples/10th.png new file mode 100644 index 0000000000000000000000000000000000000000..07e5e36832290fed7b1c4a41a4a90aa7e5508626 GIT binary patch literal 35529 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

    *MGt`YE*9+Nw;{KS5f8NfPl93aH(n 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    + + + + + + +
    + + \ No newline at end of file diff --git a/packages/stacks-docs/email/templates/examples/business.png b/packages/stacks-docs/email/templates/examples/business.png new file mode 100644 index 0000000000000000000000000000000000000000..81602ded63e7c650a1ffe4592e36ce3bfdab081d GIT binary patch literal 95298 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 Q*Z=?k07*qoM6N<$f{h?5q5uE@ literal 0 HcmV?d00001 diff --git a/packages/stacks-docs/email/templates/examples/coc.html b/packages/stacks-docs/email/templates/examples/coc.html new file mode 100644 index 0000000000..154265fa69 --- /dev/null +++ b/packages/stacks-docs/email/templates/examples/coc.html @@ -0,0 +1,387 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    + + + + +
    + + \ No newline at end of file diff --git a/packages/stacks-docs/email/templates/examples/coc.png b/packages/stacks-docs/email/templates/examples/coc.png new file mode 100644 index 0000000000000000000000000000000000000000..f5d9c0f7c95a26e5c77b1feff0f4f3e1a4aa84e8 GIT binary patch literal 35876 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 + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + + + \ No newline at end of file diff --git a/packages/stacks-docs/email/templates/examples/integrations.png b/packages/stacks-docs/email/templates/examples/integrations.png new file mode 100644 index 0000000000000000000000000000000000000000..eb1e4c99faf305ba2fadcea4a9e4aca2dc1ca11b GIT binary patch literal 64855 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 literal 0 HcmV?d00001 diff --git a/packages/stacks-docs/email/templates/examples/teams.html b/packages/stacks-docs/email/templates/examples/teams.html new file mode 100644 index 0000000000..32ab3edda2 --- /dev/null +++ b/packages/stacks-docs/email/templates/examples/teams.html @@ -0,0 +1,426 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + \ No newline at end of file diff --git a/packages/stacks-docs/email/templates/examples/teams.png b/packages/stacks-docs/email/templates/examples/teams.png new file mode 100644 index 0000000000000000000000000000000000000000..f2e3b6ea7fd3d5afad698f0838c39fd153752e51 GIT binary patch literal 35211 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 +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {% icon "Checkmark" %} Good For:{% icon "Clear" %} Not So Good For:
    Complex transactions that include multiple messages or lists, such as:Simple transactions that include a short message or major announcements, such as:
    Your answer was acceptedAccount deactivated
    You’ve been added to a TeamNew message from employer
    New InterestsProduct announcement
    Tag digestYou have an unused search subscription
    +
    +
    + {% include 'notice-email-main-templates.html' %} +
    +
    + +
    + +
    +
    diff --git a/packages/stacks-docs/email/templates/major-announcements.html b/packages/stacks-docs/email/templates/major-announcements.html new file mode 100644 index 0000000000..9717ce6fa5 --- /dev/null +++ b/packages/stacks-docs/email/templates/major-announcements.html @@ -0,0 +1,42 @@ +--- +layout: page +title: Major announcements +description: Not all emails should look the same. Sometimes it’s appropriate to ditch the starter templates and design something unique. Here are a few emails we’ve sent for major announcements. +hide-menu: true +--- +{% tip %} + Note: The source for these emails is provided for historical purposes only. It’s ok to grab parts of a design, but these templates should not be used as a starting point because the code is likely outdated. +{% endtip %} +
    + +
    +
    + +
    diff --git a/packages/stacks-docs/email/templates/promotional.html b/packages/stacks-docs/email/templates/promotional.html new file mode 100644 index 0000000000..c658475b49 --- /dev/null +++ b/packages/stacks-docs/email/templates/promotional.html @@ -0,0 +1,67 @@ +--- +layout: page +title: Promotional template +description: A starter template for announcements, updates, and promotions. This template is meant to be adapted and built upon. If you’re working on a major announcement, consider designing something unique. +hide-menu: true +--- +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {% icon "Checkmark" %} Good For:{% icon "Clear" %} Not So Good For:
    Announcements that are worthy of grabbing attention or celebrating, such as:Emails that a user may receive multiple times or emails with a negative connotation, such as:
    New product featureNew answers
    Welcome to TeamsJob recommendations
    Welcome to TalentOut-of-region applicants
    You’ve reached 10k reputationYour admin privileges have been revoked
    +
    +
    + {% include 'notice-email-main-templates.html' %} +
    +
    + +
    + +
    +
    diff --git a/packages/stacks-docs/email/templates/short-transactional.html b/packages/stacks-docs/email/templates/short-transactional.html new file mode 100644 index 0000000000..a7f9f0a3ec --- /dev/null +++ b/packages/stacks-docs/email/templates/short-transactional.html @@ -0,0 +1,68 @@ +--- +layout: page +title: Short transactional template +description: A starter template for simple transactional emails with a single message. This template is meant to be adapted and built upon. +hide-menu: true +--- + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {% icon "Checkmark" %} Good For:{% icon "Clear" %} Not So Good For:
    Simple transactions that include a short message, such as:Lengthy transactions that include multiple messages, lists or one time announcements, such as:
    Forgot passwordYour answer has been accepted!
    You’ve been removed from a TeamNew featured jobs
    Cart abandonmentWeekly recommendations
    We’ve updated our privacy policyNew application
    +
    +
    + {% include 'notice-email-main-templates.html' %} +
    +
    + +
    + +
    +
    diff --git a/packages/stacks-docs/index.html b/packages/stacks-docs/index.html new file mode 100644 index 0000000000..bf0c84b7c2 --- /dev/null +++ b/packages/stacks-docs/index.html @@ -0,0 +1,3 @@ +--- +layout: home +--- \ No newline at end of file diff --git a/packages/stacks-docs/netlify.toml b/packages/stacks-docs/netlify.toml new file mode 100644 index 0000000000..e02de7f018 --- /dev/null +++ b/packages/stacks-docs/netlify.toml @@ -0,0 +1,299 @@ +[settings] + ID = "34ae802e-fb42-4bab-8814-9fac9e119037" + +[build] + base = "/" # Note: You'll need to set the "Package Directory" from the Netlify UI + publish = "packages/stacks-docs/_site/" + command = "npm run build -w packages/stacks-docs" + # don't build deploy previews on PRs opened by dependabot + ignore = "git log -1 --pretty=%B | grep dependabot" + +[build.environment] + # IMPORTANT!: Git LFS settings can't be changed in the .toml file. You will need to set this environment + # variable through the Netlify UI otherwise netlify won't be able to clone the repo due to all our images. + # https://docs.netlify.com/build/configure-builds/environment-variables/#netlify-configuration-variables + GIT_LFS_ENABLED = "true" # just here as a reminder + +[[redirects]] + from = "/favicon.ico" + to = "/assets/img/favicons/favicon.ico" + +[[redirects]] + from = "/apple-touch-icon.png" + to = "/assets/img/favicons/apple-touch-icon.png" + +[[redirects]] + from = "/apple-touch-icon-precomposed.png" + to = "/assets/img/favicons/apple-touch-icon-precomposed.png" + +[[redirects]] + from = "/product" + to = "/product/develop/using-stacks/" + +[[redirects]] + from = "/email" + to = "/email/guidelines/getting-started" + +[[redirects]] + from = "/content" + to = "/content/guidelines/principles" + +[[redirects]] + from = "/brand" + to = "/brand/principles" + +[[redirects]] + from = "/product/guidelines" + to = "/product/develop/using-stacks" + +[[redirects]] + from = "/email/guidelines" + to = "/email/guidelines/getting-started" + +[[redirects]] + from = "/email/guidelines/best-practices" + to = "/email/guidelines/design-best-practices" + +[[redirects]] + from = "/email/base" + to = "/email/base/border-radius/" + +[[redirects]] + from = "/guidelines/using-stacks" + to = "/product/develop/using-stacks" + +[[redirects]] + from = "/guidelines/responsiveness" + to = "/product/develop/conditional-classes/#responsive" + +[[redirects]] + from = "/resources/icons" + to = "/product/foundation/icons" + +[[redirects]] + from = "/base/borders" + to = "/product/base/borders" + +[[redirects]] + from = "/base/box-shadow" + to = "/product/base/box-shadow" + +[[redirects]] + from = "/base/box-sizing" + to = "/product/base/box-sizing" + +[[redirects]] + from = "/base/colors" + to = "/product/base/colors" + +[[redirects]] + from = "/base/cursors" + to = "/product/base/cursors" + +[[redirects]] + from = "/base/display" + to = "/product/base/display" + +[[redirects]] + from = "/base/floats" + to = "/product/base/floats" + +[[redirects]] + from = "/base/grid" + to = "/product/base/grid" + +[[redirects]] + from = "/product/base/grid" + to = "/product/base/flex" + +[[redirects]] + from = "/base/opacity" + to = "/product/base/opacity" + +[[redirects]] + from = "/base/overflow" + to = "/product/base/overflow" + +[[redirects]] + from = "/base/pointer-events" + to = "/product/base/pointer-events" + +[[redirects]] + from = "/base/position" + to = "/product/base/position" + +[[redirects]] + from = "/base/spacing" + to = "/product/base/spacing" + +[[redirects]] + from = "/base/typography" + to = "/product/base/typography" + +[[redirects]] + from = "/base/vertical-alignment" + to = "/product/base/vertical-alignment" + +[[redirects]] + from = "/base/width-height" + to = "/product/base/width-height" + +[[redirects]] + from = "/base/z-index" + to = "/product/base/z-index" + +[[redirects]] + from = "/components/avatars" + to = "/product/components/avatars" + +[[redirects]] + from = "/components/badges" + to = "/product/components/badges" + +[[redirects]] + from = "/components/banners" + to = "/product/components/banners" + +[[redirects]] + from = "/components/buttons" + to = "/product/components/buttons" + +[[redirects]] + from = "/components/button-groups" + to = "/product/components/button-groups" + +[[redirects]] + from = "/components/cards" + to = "/product/components/cards" + +[[redirects]] + from = "/components/checkbox" + to = "/product/components/checkbox" + +[[redirects]] + from = "/components/inputs" + to = "/product/components/inputs" + +[[redirects]] + from = "/components/labels" + to = "/product/components/labels" + +[[redirects]] + from = "/components/links" + to = "/product/components/links" + +[[redirects]] + from = "/components/modals" + to = "/product/components/modals" + +[[redirects]] + from = "/components/notices" + to = "/product/components/notices" + +[[redirects]] + from = "/components/progress-bars" + to = "/product/components/progress-bars" + +[[redirects]] + from = "components/radio" + to = "/product/components/radio" + +[[redirects]] + from = "/product/components/radio" + to = "/product/components/checkbox" + +[[redirects]] + from = "/components/select" + to = "/product/components/select" + +[[redirects]] + from = "components/sidebar-widgets" + to = "/product/components/sidebar-widgets" + +[[redirects]] + from = "/components/tables" + to = "/product/components/tables" + +[[redirects]] + from = "/components/tags" + to = "/product/components/tags" + +[[redirects]] + from = "/components/textarea" + to = "/product/components/textarea" + +[[redirects]] + from = "/product/guidelines/responsiveness" + to = "/product/develop/conditional-classes/#responsive" + +[[redirects]] + from = "/product/base/pointer-events" + to = "/product/base/interactivity" + +[[redirects]] + from = "/content/principles" + to = "/content/guidelines/principles" + +[[redirects]] + from = "/content/voice-and-tone" + to = "/content/guidelines/voice-and-tone" + +[[redirects]] + from = "/content/grammar-and-mechanics" + to = "/content/guidelines/grammar-and-mechanics" + +[[redirects]] + from = "/assets/img/logo-stacks@2x.png" + to = "/assets/img/logos/so/logo-stacks@2x.png" + +[[redirects]] + from = "/product/guidelines/releasing/" + to = "https://github.com/StackExchange/Stacks#release-a-new-version-of-stacks" + +[[redirects]] + from = "/product/guidelines/releasing/" + to = "https://github.com/StackExchange/Stacks#release-a-new-version-of-stacks" + +[[redirects]] + from = "/product/guidelines/using-stacks" + to = "/product/develop/using-stacks" + +[[redirects]] + from = "/product/guidelines/building" + to = "/product/develop/building" + +[[redirects]] + from = "/product/guidelines/conditional-classes" + to = "/product/develop/conditional-classes" + +[[redirects]] + from = "/product/guidelines/javascript" + to = "/product/develop/javascript" + +[[redirects]] + from = "/product/base/color-fundamentals" + to = "/product/foundation/color-fundamentals" + +[[redirects]] + from = "/product/base/colors" + to = "/product/foundation/colors" + +[[redirects]] + from = "/product/base/theming" + to = "/product/foundation/theming" + +[[redirects]] + from = "/product/guidelines/theming" + to = "/product/foundation/theming" + +[[redirects]] + from = "/product/resources/icons" + to = "/product/foundation/icons" + +[[redirects]] + from = "/product/resources/spots" + to = "/product/foundation/spots" + +[[redirects]] + from = "/product/base/typography" + to = "/product/foundation/typography" diff --git a/packages/stacks-docs/package.json b/packages/stacks-docs/package.json index 7f014cadc8..fb53eea075 100644 --- a/packages/stacks-docs/package.json +++ b/packages/stacks-docs/package.json @@ -1,40 +1,21 @@ { - "name": "@stackoverflow/stacks-site", "private": true, - "version": "0.0.1", - "type": "module", + "name": "@stackoverflow/stacks-docs", + "description": "Stacks Design website. Contains all documentation around using Stacks and its components.", "scripts": { - "dev": "vite dev", - "prebuild": "npm run build -w @stackoverflow/stacks && npm run build -w @stackoverflow/stacks-svelte", - "build": "bash netlify-setup.sh && npm run init-private-content && vite build", - "preview": "vite preview", - "prepare": "svelte-kit sync || echo ''", - "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", - "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", - "lint": "eslint .", - "format": "prettier --write .", - "init-private-content": "GIT_SSH_COMMAND=\"ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no\" git submodule update --init --remote" - }, - "devDependencies": { - "@sveltejs/adapter-netlify": "^5.0.0", - "@sveltejs/kit": "^2.22.0", - "@sveltejs/vite-plugin-svelte": "^6.0.0", - "mdsvex": "^0.12.3", - "vite": "^7.0.4" + "start": "concurrently -n w: npm:start:*", + "start:webpack": "webpack --watch", + "start:eleventy": "eleventy --serve", + "build": "webpack --mode=production && eleventy" }, "dependencies": { - "@auth/sveltekit": "^1.10.0", - "@docsearch/css": "^4.3.2", - "@docsearch/js": "^4.3.2", - "@hbsnow/rehype-sectionize": "^1.0.7", + "@hotwired/stimulus": "^3.2.2", "@stackoverflow/stacks": "*", - "@stackoverflow/stacks-icons": "*", - "@stackoverflow/stacks-svelte": "*", - "@stefanprobst/rehype-extract-toc": "^3.0.0", - "modern-normalize": "^3.0.1", - "rehype-autolink-headings": "^7.1.0", - "rehype-slug": "^6.0.0", - "unist-util-visit": "^5.0.0", - "yaml": "^2.8.1" + "@stackoverflow/stacks-editor": "^1.0.0-beta.3", + "@stackoverflow/stacks-icons": "^7.0.0-beta.7", + "@stackoverflow/stacks-icons-legacy": "npm:@stackoverflow/stacks-icons@^6.6.1", + "jquery": "^3.7.1", + "list.js": "^2.3.1", + "docsearch.js": "^2.6.3" } } diff --git a/packages/stacks-docs/plugins/banner-example.js b/packages/stacks-docs/plugins/banner-example.js new file mode 100644 index 0000000000..0bc8e06bef --- /dev/null +++ b/packages/stacks-docs/plugins/banner-example.js @@ -0,0 +1,47 @@ +const { Icons } = require("@stackoverflow/stacks-icons-legacy"); + +module.exports = { + configFunction(eleventyConfig) { + eleventyConfig.addLiquidShortcode("bannerExample", function(type, important, classes) { + var lockIcon = Icons.IconLock; + var closeIcon = Icons.IconClearSm; + + // add type switch statement + function getTypeClass() { + switch (type) { + case "info": + return "s-banner__info"; + case "success": + return "s-banner__success"; + case "warning": + return "s-banner__warning"; + case "danger": + return "s-banner__danger"; + default: + return ""; + } + } + + if (classes == null) { + classes = ""; + } + if (important) { + classes += " s-banner__important"; + } + + return ``; + }); + } +} diff --git a/packages/stacks-docs/plugins/header.js b/packages/stacks-docs/plugins/header.js new file mode 100644 index 0000000000..185a5b548c --- /dev/null +++ b/packages/stacks-docs/plugins/header.js @@ -0,0 +1,25 @@ + +const { Icons } = require("@stackoverflow/stacks-icons-legacy"); + +module.exports = { + configFunction(eleventyConfig) { + // Header shortcode + eleventyConfig.addLiquidShortcode("header", function(tag, text) { + var slug = text.replace(/\s+/g, '-').toLowerCase(); + var linkIcon = Icons.IconLink; + + var output = ''; + output += '
    '; + output += '<' + tag + ' class="flex--item fl-grow1 stacks-' + tag + '" id="'+ slug +'">'; + output += '' + text + ''; + output += ''; + output += ''; + output += 'Section titled ' + text + ''; + output += linkIcon; + output += ''; + output += '
    '; + + return output; + }); + } +} diff --git a/packages/stacks-docs/plugins/highlight.js b/packages/stacks-docs/plugins/highlight.js new file mode 100644 index 0000000000..6e0b37e259 --- /dev/null +++ b/packages/stacks-docs/plugins/highlight.js @@ -0,0 +1,63 @@ +const syntaxHighlight = require("eleventy-plugin-highlightjs"); + +// highlightjs line-numbering support +// add `linenums` or `linenums:startNumber` to the start of your code for detection +class HljsInsertLineNums { + constructor() { + this.shouldInsert = false; + this.startNumber = 1; + } + + "before:highlight"(data) { + var match = /^linenums(:\d+)?/.exec(data.code); + if (!match) { + return; + } + var startNumber = +(match[1] || "").slice(1) || 1; + + this.shouldInsert = true; + this.startNumber = startNumber; + data.code = data.code.replace(/^linenums(:\d+)?/, ""); + } + + "after:highlight"(result) { + if (!this.shouldInsert) { + return; + } + + var startNumber = this.startNumber; + + var content = result.value; + var lines = content.split(/\r?\n/); + + var output = ""; + for (var i = 0; i < lines.length; i++) { + output += "
    " + (i + startNumber) + "
    "; + } + + var newContent = + '' + + output + + "" + + content; + result.value = newContent; + + this.shouldInsert = false; + } +} + +module.exports = { + configFunction(eleventyConfig) { + // Add syntax highlighting + eleventyConfig.addPlugin(syntaxHighlight, { + className: "s-code-block", + preAttributes: { + tabindex: "0", + }, + init: function ({ hljs }) { + // TODO custom plugin taken from Prod - should probably be an npm package? + hljs.addPlugin(new HljsInsertLineNums()); + }, + }); + } +} diff --git a/packages/stacks-docs/plugins/icons.js b/packages/stacks-docs/plugins/icons.js new file mode 100644 index 0000000000..c5b434375d --- /dev/null +++ b/packages/stacks-docs/plugins/icons.js @@ -0,0 +1,57 @@ +const { Icons: LegacyIcons, Spots: LegacySpots } = require("@stackoverflow/stacks-icons-legacy"); +const { Icons: BetaIcons, Spots: BetaSpots } = require("@stackoverflow/stacks-icons"); +const fs = require("fs/promises"); + +const Icons = { ...LegacyIcons, ...BetaIcons }; +const Spots = { ...LegacySpots, ...BetaSpots }; + +function modifySvg(content, type, name, classes, dimension) { + // Legacy icons use lowercase class names (iconClear), new icons use capitalized (IconHome) + // Try both patterns to support both icon libraries + var legacyClasses = `svg-${type} ${type}${name}`; + var newClasses = `svg-${type} ${type.charAt(0).toUpperCase() + type.slice(1)}${name}`; + + if (!content) { + return `Invalid ${type}: ${name}`; + } + + // If we have classes, add them + if (classes != null) { + // Try to replace with new class pattern first, then fall back to legacy + var updatedContent = content.replace(newClasses, newClasses + " " + classes); + if (updatedContent === content) { + // If new pattern didn't match, try legacy pattern + updatedContent = content.replace(legacyClasses, legacyClasses + " " + classes); + } + content = updatedContent; + } + + // If we need to change the size, do that too + if (dimension != null) { + content = content.replace('width="18" height="18"', 'width="' + dimension + '" height="' + dimension + '"'); + } + + return content; +} + +module.exports = { + configFunction(eleventyConfig) { + // Icon shortcode + eleventyConfig.addLiquidShortcode("icon", function(name, classes, dimension) { + var svg = Icons["Icon" + name]; + return modifySvg(svg, "icon", name, classes, dimension); + }); + + // Spot shortcode + eleventyConfig.addLiquidShortcode("spot", function(name, classes, dimension) { + var svg = Spots["Spot" + name]; + return modifySvg(svg, "spot", name, classes, dimension); + }); + + // embed svgs in the assets folder + eleventyConfig.addLiquidShortcode("embed", async function(name, classes) { + const file = await fs.readFile(`assets/img/icons/${name}.svg`, "utf8"); + return modifySvg(file, "icon", name, classes, null); + }); + } +} diff --git a/packages/stacks-docs/plugins/markdown.js b/packages/stacks-docs/plugins/markdown.js new file mode 100644 index 0000000000..7d5e848731 --- /dev/null +++ b/packages/stacks-docs/plugins/markdown.js @@ -0,0 +1,63 @@ +const hljs = require("highlight.js"); +const MarkdownIt = require("markdown-it"); +const fs = require("fs"); + +module.exports = { + configFunction(eleventyConfig) { + // create our shared markdownit instance + const markdownIt = MarkdownIt("commonmark", { + html: true, + // have markdownit use hljs for syntax highlighting + highlight: function (str, lang) { + if (lang && hljs.getLanguage(lang)) { + return '
    ' +
    +                hljs.highlight(str, {language: lang}).value +
    +                '
    '; + } + + return ''; // use external default escaping + } + }); + + // customize markdown-it rendering to add our classes + markdownIt.use(function (md) { + // mapping of tag: classes + const customClasses = { + "code": "stacks-code" + } + + const addClasses = function (tokens) { + tokens.forEach(function (token) { + if (token.tag in customClasses) { + token.attrJoin("class", customClasses[token.tag]); + } + + if (token.children) { + addClasses(token.children); + } + }); + }; + + md.core.ruler.push("add-custom-classes", function (state) { + addClasses(state.tokens); + }); + }); + + /** + * Renders markdown strings to html: + * {{ "**foo** _bar_" | markdown }} + */ + eleventyConfig.addLiquidFilter("markdown", function (content) { + return markdownIt.renderInline(content); + }); + + /** + * Reads and renders markdown files: + * {% markdown '/path/to/foo.md' %} + */ + eleventyConfig.addShortcode("markdown", function (file) { + let data = fs.readFileSync(`.${file}`); + return markdownIt.render(data.toString()); + }); + } +} diff --git a/packages/stacks-docs/plugins/tip.js b/packages/stacks-docs/plugins/tip.js new file mode 100644 index 0000000000..7b3cbcff09 --- /dev/null +++ b/packages/stacks-docs/plugins/tip.js @@ -0,0 +1,39 @@ +const { Spots } = require("@stackoverflow/stacks-icons-legacy"); + +module.exports = { + configFunction(eleventyConfig) { + eleventyConfig.addPairedShortcode("tip", function(content, type, classes, interiorClasses) { + var spot = ""; + + if (type == "warning") { + spot = Spots.SpotAlert; + type = "s-notice__warning"; + } else { + spot = Spots.SpotAlertCircle; + type = "s-notice__info"; + } + + if (classes == null) { + classes = "mb48"; + } + + if (interiorClasses == null) { + interiorClasses = "ai-start"; + } + + var output = ''; + output += '
    '; + output += '
    '; + output += '
    '; + output += spot; + output += '
    '; + output += '
    '; + output += content + output += '
    '; + output += '
    '; + output += '
    '; + + return output; + }); + } +} diff --git a/packages/stacks-docs/product/base/backgrounds.html b/packages/stacks-docs/product/base/backgrounds.html new file mode 100644 index 0000000000..8cbc020b00 --- /dev/null +++ b/packages/stacks-docs/product/base/backgrounds.html @@ -0,0 +1,169 @@ +--- +layout: page +title: Backgrounds +description: Atomic classes for controlling the background properties of an element’s background image. +tags: base +--- + +
    + {% header "h2", "Background size" %} + {% header "h3", "Background size classes" %} +
    + + + + + + + + + {% for background-size in backgrounds.background-size %} + + + + + {% endfor %} + +
    ClassOutput
    {{ background-size.class }}{{ background-size.output }}
    +
    +
    + +
    + {% header "h2", "Background repeat" %} + {% header "h3", "Background repeat classes" %} +
    + + + + + + + + + {% for background-repeat in backgrounds.background-repeat %} + + + + + {% endfor %} + +
    ClassOutput
    {{ background-repeat.class }}{{ background-repeat.output }}
    +
    +
    + +
    + {% header "h2", "Background position" %} + {% header "h3", "Background position classes" %} +
    + + + + + + + + + {% for background-position in backgrounds.background-position %} + + + + + {% endfor %} + +
    ClassOutput
    {{ background-position.class }}{{ background-position.output }}
    +
    + + {% header "h3", "Background position examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    .bg-bottom
    +
    .bg-center
    +
    .bg-left
    +
    .bg-left-bottom
    +
    .bg-left-top
    +
    .bg-right
    +
    .bg-right-bottom
    +
    .bg-right-top
    +
    .bg-top
    +
    +
    +
    +
    + +
    + {% header "h2", "Background attachment" %} + {% header "h3", "Background attachment classes" %} +
    + + + + + + + + + {% for background-attachment in backgrounds.background-attachment %} + + + + + {% endfor %} + +
    ClassOutput
    {{ background-attachment.class }}{{ background-attachment.output }}
    +
    +
    + +
    + {% header "h2", "Background image" %} + {% header "h3", "Background image classes" %} +
    + + + + + + + + + {% for background-image in backgrounds.background-image %} + + + + + {% endfor %} + +
    ClassOutput
    {{ background-image.class }}{{ background-image.output }}
    +
    +
    + +
    + {% header "h2", "Background utilities" %} + + {% header "h3", "Confetti" %} +

    Adding the confetti background utility adds confetti to any block-level element. You can choose the animated version, or static version. The animated version respects prefers-reduced-motion and displays the static version of the background when necessary. No JavaScript required.

    +
    +{% highlight html %} +
    +
    +{% endhighlight %} +
    +
    Animated
    +
    + +
    Static
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/base/border-radius.html b/packages/stacks-docs/product/base/border-radius.html new file mode 100644 index 0000000000..939d6ffc78 --- /dev/null +++ b/packages/stacks-docs/product/base/border-radius.html @@ -0,0 +1,168 @@ +--- +layout: page +title: Border radius +description: Stacks provides atomic classes for border radius. +tags: base +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + + {% for border in borders.border-radius %} + + + + + + + {% endfor %} + +
    AbbreviationOutputDefinition + Responsive? +
    .{{ border.class }}{{ border.output }}{{ border.define }} + {% if border.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h2", "Examples" %} + {% header "h3", "All corners" %} +
    +{% highlight html %} +
    0px Border radius
    +
    10px Border radius
    +
    Circle Border radius
    +
    1000px Border radius
    +{% endhighlight %} +
    +
    +
    0px Border Radius
    +
    10px Border Radius
    +
    Circle Border Radius
    +
    1000px Border Radius
    +
    +
    +
    + + {% header "h3", "Top left corner" %} +
    +{% highlight html %} +
    0px Top Left Border Radius
    +
    10px Top Left Border Radius
    +{% endhighlight %} +
    +
    +
    0px Top Left Border Radius
    +
    10px Top Left Border Radius
    +
    +
    +
    + + {% header "h3", "Top right corner" %} +
    +{% highlight html %} +
    0px Top Right Border Radius
    +
    10px Top Right Border Radius
    +{% endhighlight %} +
    +
    +
    0px Top Right Border Radius
    +
    10px Top Right Border Radius
    +
    +
    +
    + + {% header "h3", "Bottom right corner" %} +
    +{% highlight html %} +
    0px Bottom Right Border Radius
    +
    10px Bottom Right Border Radius
    +{% endhighlight %} +
    +
    +
    0px Bottom Right Border Radius
    +
    10px Bottom Right Border Radius
    +
    +
    +
    + + {% header "h3", "Bottom left corner" %} +
    +{% highlight html %} +
    0px Bottom Left Border Radius
    +
    10px Bottom Left Border Radius
    +{% endhighlight %} +
    +
    +
    0px Bottom Left Border Radius
    +
    10px Bottom Left Border Radius
    +
    +
    +
    + + {% header "h3", "Top corners" %} +
    +{% highlight html %} +
    0px Top Border Radius
    +
    10px Top Border Radius
    +{% endhighlight %} +
    +
    +
    0px Top Border Radius
    +
    10px Top Border Radius
    +
    +
    +
    + + {% header "h3", "Bottom corners" %} +
    +{% highlight html %} +
    0px Bottom Border Radius
    +
    10px Bottom Border Radius
    +{% endhighlight %} +
    +
    +
    0px Bottom Border Radius
    +
    10px Bottom Border Radius
    +
    +
    +
    + + {% header "h3", "Left corners" %} +
    +{% highlight html %} +
    0px Left Border Radius
    +
    10px Left Border Radius
    +{% endhighlight %} +
    +
    +
    0px Left Border Radius
    +
    10px Left Border Radius
    +
    +
    +
    + + {% header "h3", "Right corners" %} +
    +{% highlight html %} +
    0px Right Border Radius
    +
    10px Right Border Radius
    +{% endhighlight %} +
    +
    +
    0px Right Border Radius
    +
    10px Right Border Radius
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/base/borders.html b/packages/stacks-docs/product/base/borders.html new file mode 100644 index 0000000000..94521cdb0c --- /dev/null +++ b/packages/stacks-docs/product/base/borders.html @@ -0,0 +1,158 @@ +--- +layout: page +title: Borders +description: Stacks provides atomic classes for borders. +tags: base +--- + +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + + {% for border in borders.border %} + + + + + + + {% endfor %} + +
    ClassOutputApply border to + Responsive? +
    .{{ border.class }}{{ border.output }}{{ border.define }} + {% if border.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h2", "Examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    + {% for border in borders.border %} +
    {{ border.define }}
    + {% endfor %} +
    +
    +
    + +
    + {% header "h2", "Width" %} + {% header "h3", "Width classes" %} +
    + + + + + + + + + + + {% for border in borders.width %} + + + + + + + {% endfor %} + +
    ClassOutputBorder width, side(s) + Responsive? +
    .{{ border.class }}{{ border.output }}{{ border.define }} + {% if border.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h3", "Width examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +{% endhighlight %} +
    + {% assign exampleWidthClasses = ",brw0,bbw0,baw2,baw3" | split: "," %} + {% for widthClass in exampleWidthClasses %} +
    + .ba{% if widthClass != "" %}.{% endif %}{{ widthClass }} +
    + {% endfor %} +
    +
    +
    + +
    + {% header "h2", "Style" %} + {% header "h3", "Style classes" %} +
    + + + + + + + + + + {% for border in borders.border-style %} + + + + + + {% endfor %} + +
    ClassOutputDefinition
    .{{ border.class }}{{ border.output }}{{ border.define }}
    +
    + + {% header "h3", "Style examples" %} +
    +{% highlight html %} +
    +
    +
    +{% endhighlight %} +
    +
    +
    Solid border style
    +
    Dashed border style
    +
    Dashed border right style
    +
    +
    +
    +
    + +
    + {% header "h2", "Color" %} + {% header "h3", "Color classes" %} + +

    + Each color stop is available as a border class. See the colors documentation for all available classes. +

    +
    diff --git a/packages/stacks-docs/product/base/box-shadow.html b/packages/stacks-docs/product/base/box-shadow.html new file mode 100644 index 0000000000..968978730d --- /dev/null +++ b/packages/stacks-docs/product/base/box-shadow.html @@ -0,0 +1,76 @@ +--- +layout: page +title: Box shadow +figma: https://svelte.stackoverflow.design/figma/box-shadows +description: Box shadow atomic classes allow you to change an element’s box shadow quickly. +tags: base +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + + + {% for atomic in atomics.box-shadow %} + + + + + + + + {% endfor %} + +
    ClassOutputHover?Focus?Responsive?
    .{{ atomic.class }}{{ atomic.output }} + {% if atomic.hover %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} + + {% if atomic.focus %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} + + {% if atomic.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h2", "Examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    + .bs-sm +
    +
    + .bs-md +
    +
    + .bs-lg +
    +
    + .bs-xl +
    +
    + .bs-ring +
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/base/box-sizing.html b/packages/stacks-docs/product/base/box-sizing.html new file mode 100644 index 0000000000..109349d986 --- /dev/null +++ b/packages/stacks-docs/product/base/box-sizing.html @@ -0,0 +1,80 @@ +--- +layout: page +title: Box sizing +description: Box-sizing atomic classes allow one to determine what is used to determine an element’s width or height. +tags: base +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + {% for box in atomics.box-sizing %} + + + + + + {% endfor %} + +
    ClassOutputDefinition
    .{{ box.class }}{{ box.output }}{{ box.define }}
    +
    +
    + +
    + {% header "h2", "Examples" %} +
    +{% highlight html %} +
    +
    +
    +{% endhighlight %} +
    +
    +
    +

    Parent container

    +
    +
    Child container
    +
    + box-sizing: content-box;
    + width: 100%;
    + padding: 0;
    + border-width: 0; +
    +
    +
    +
    +

    Parent container

    +
    +
    Child container
    +
    + box-sizing: content-box;
    + width: 100%;
    + padding: 12px;
    + border-width: 1px; +
    +
    +
    +
    +

    Parent container

    +
    +
    Child container
    +
    + box-sizing: border-box;
    + width: 100%;
    + padding: 12px;
    + border-width: 1px; +
    +
    +
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/base/current-color.html b/packages/stacks-docs/product/base/current-color.html new file mode 100644 index 0000000000..2cf067bfd2 --- /dev/null +++ b/packages/stacks-docs/product/base/current-color.html @@ -0,0 +1,65 @@ +--- +layout: page +title: Current color +description: Atomic classes allow you to quickly add currentColor to an element’s fill or stroke property. +tags: base +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + {% for atomic in atomics.current-color %} + + + + + {% endfor %} + +
    ClassOutput
    .{{ atomic.class }}{{ atomic.output }}
    +
    + + {% header "h2", "Examples" %} +

    When applied to an SVG, applying currentColor to the fill or stroke property allows you to inherit the parent element’s text color or the text color applied to the element itself.

    +
    +{% highlight html %} + + + + + +{% endhighlight %} +
    +
    +
    + + + +
    +
    + + + +
    +
    + + + + +
    +
    + + + + +
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/base/cursors.html b/packages/stacks-docs/product/base/cursors.html new file mode 100644 index 0000000000..85890fd9fc --- /dev/null +++ b/packages/stacks-docs/product/base/cursors.html @@ -0,0 +1,69 @@ +--- +layout: page +title: Cursors +description: Atomic cursor classes allow you to quickly change an element’s cursor behavior. +tags: base +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + {% for atomic in atomics.cursors %} + + + + + {% endfor %} + +
    ClassOutput
    .{{ atomic.class }}{{ atomic.output }}
    +
    + + {% header "h2", "Examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    + .c-auto +
    +
    + .c-default +
    +
    + .c-pointer +
    +
    + .c-text +
    +
    + .c-wait +
    +
    + .c-move +
    +
    + .c-not-allowed +
    +
    + .c-help +
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/base/display.html b/packages/stacks-docs/product/base/display.html new file mode 100644 index 0000000000..e539e7a165 --- /dev/null +++ b/packages/stacks-docs/product/base/display.html @@ -0,0 +1,72 @@ +--- +layout: page +title: Display +description: Display atomic classes allow you to change an element’s display quickly. +tags: base +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + + + {% for atomic in atomics.display %} + + + + + + + + {% endfor %} + +
    ClassOutputDefinitionResponsive?Print?
    .{{ atomic.class }}{{ atomic.output }}{{ atomic.define }} + {% if atomic.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} + + {% if atomic.print %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    +
    +
    + {% header "h2", "Examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    .d-block
    +
    +
    .d-inline
    +
    .d-inline
    +
    .d-inline
    +
    +
    +
    .d-inline-block
    +
    .d-inline-block
    +
    .d-inline-block
    +
    +
    .d-table-cell inside .d-table
    +
    .d-table-cell inside .d-table
    +
    .d-table-cell inside .d-table
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/base/flex.html b/packages/stacks-docs/product/base/flex.html new file mode 100644 index 0000000000..94cd67fcce --- /dev/null +++ b/packages/stacks-docs/product/base/flex.html @@ -0,0 +1,1309 @@ +--- +layout: page +title: Flex +description: Stacks provides extensive utility and helper classes for flex layouts. If you are new to flex layouts, check out this interactive introduction by Joshua Comeau.

    +tags: base +--- + +
    + {% header "h2", "Basic flex layout" %} +

    A flex layout is initiated with the .d-flex class. By default, display: flex; starts a non-wrapping row. To convert it to a column, apply the .fd-column atomic class.

    +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    +
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Fluid" %} +

    By default, all flex items will only be as wide as their content. If you would like a flex item or all the flex items to fill the remaining space, apply the .fl-grow1 to the individual item, or .flex__fl-equal to the parent to apply to all children.

    + + {% header "h3", "Fluid examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    +
    +
    .flex--item.fl-grow1
    +
    .flex--item
    +
    +
    +
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    +
    +
    +
    + {% header "h2", "Fixed cells" %} +

    You can either fix the width of an individual element or fix the width of all child elements within a parent container by setting the width on the parent. The cell widths are based on a 12-column flex layout system.

    + + {% header "h3", "Fixed classes" %} +
    + + + + + + + + + + {% for item in flex.flex-item %} + + + + + + {% endfor %} + +
    Individual WidthUniform WidthOutput
    {{ item.class }}{{ item.all }}{{ item.output }}
    +
    + + {% header "h3", "Fixed examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    +
    .flex--item[x]
    +
    +
    +
    .flex--item2
    +
    .flex--item10
    +
    +
    +
    +
    +
    .flex--item[x] and standard .flex--item
    +
    +
    +
    .flex--item3
    +
    .flex--item6
    +
    .flex--item
    +
    +
    +
    +
    +
    .d-flex.flex__allitems4
    +
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Helpers" %} +

    We have a few helper classes you can add to a .d-flex container that affect the child .flex--items.

    + + {% header "h3", "Helper classes" %} +
    + + + + + + + + + + {% for item in flex.helpers %} + + + + + + {% endfor %} + +
    ClassDefinitionResponsive?
    {{ item.class }}{{ item.define }} + {% if item.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h3", "Helpers examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    +
    .flex__center
    +
    +
    .flex--item
    +
    +
    +
    +
    .flex__fl-shrink0
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    .flex__fl-equal
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Nested flex layouts" %} +

    Flex layouts can be nested within each other. This allows you to create unique, custom layouts without needing to create new, custom code or override existing styles.

    + + {% header "h3", "Nested examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    +
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    .flex--item2
    +
    .flex--item2
    +
    +
    +
    +
    + +
    + {% header "h2", "Gutters" %} + {% tip, "warning" %} + Deprecation: gutters will be removed in a future release.
    Please use gap classes to set spacing on flex items. + {% endtip %} +

    Sometimes gutters are desired between cells. To do so apply the appropriate class to the parent wrapper. The gutter applies a margin to all sides. The sizes available are the same as the spacing units.

    + + {% header "h3", "Gutter classes" %} +
    + + + + + + + + + {% for item in flex.gutter %} + + + + + {% endfor %} + +
    ClassOutput
    {{ item.class }}{{ item.output }}
    +
    + + {% header "h3", "Gutter examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    +
    +
    .gs16
    +
    .gs16
    +
    .gs16
    +
    .gs16
    +
    +
    +
    +
    +
    .gs16.gsx -- Row gutters only
    +
    .gs16.gsx -- Row gutters only
    +
    .gs16.gsx -- Row gutters only
    +
    .gs16.gsx -- Row gutters only
    +
    +
    +
    +
    +
    .gs16.gsy -- Column gutters only
    +
    .gs16.gsy -- Column gutters only
    +
    .gs16.gsy -- Column gutters only
    +
    .gs16.gsy -- Column gutters only
    +
    +
    +
    +
    +
    + + {% header "h3", "Nested gutters" %} + {% tip, "warning" %} + Note: Nested flex layouts with gutter spacing will conflict with each other in unpredictable ways. TL;DR? Don’t stick a .d-flex directly into a .d-flex, instead stick a .d-flex into a .flex--item like so: + {% endtip %} +

    If you are nesting a flex layout with gutter spacing into another flex layout that also has gutter spacing, the child’s parent wrapper margins will be overwritten by the parent. To have the child flex layout’s gutter spacing honored, you have to put the child flex layout within a .flex--item wrapper first. This allows the parent and child flex layout gutter spacing to act correctly without interfering with each other.

    + +
    {% icon "Checkmark", "mtn1 mbn1" %} Do
    +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    .flex--item
    +
    +
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    +
    + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t
    +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    .flex--item
    +
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Flex direction" %} +

    On a flex container, you can set the direction of the child items.

    + + {% header "h3", "Flex direction classes" %} +
    + + + + + + + + + + {% for item in flex.flex-direction %} + + + + + + {% endfor %} + +
    ClassDefinitionResponsive?
    {{ item.class }}{{ item.define }} + {% if item.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h3", "Flex direction examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    +
    +
    .fd-row
    +
    Default
    +
    +
    +
    .flex--item 1
    +
    .flex--item 2
    +
    .flex--item 3
    +
    +
    +
    +
    .fd-row-reverse
    +
    +
    .flex--item 1
    +
    .flex--item 2
    +
    .flex--item 3
    +
    +
    +
    +
    .fd-column
    +
    +
    .flex--item 1
    +
    .flex--item 2
    +
    .flex--item 3
    +
    +
    +
    +
    .fd-column-reverse
    +
    +
    .flex--item 1
    +
    .flex--item 2
    +
    .flex--item 3
    +
    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Flex wrap" %} +

    On a flex container, you can control if the children wrap

    + + {% header "h3", "Flex wrap classes" %} +
    + + + + + + + + + + {% for item in flex.flex-wrap %} + + + + + + {% endfor %} + +
    ClassDefinitionResponsive?
    {{ item.class }}{{ item.define }} + {% if item.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h3", "Flex wrap examples" %} +
    +{% highlight html %} +
    +
    + … +
    +
    +
    + … +
    +
    +
    + … +
    +{% endhighlight %} +
    +
    +
    +
    .fw-wrap
    +
    +
    .flex--item 1
    +
    .flex--item 2
    +
    .flex--item 3
    +
    .flex--item 4
    +
    .flex--item 5
    +
    .flex--item 6
    +
    .flex--item 7
    +
    .flex--item 8
    +
    +
    +
    +
    .fw-reverse
    +
    +
    .flex--item 1
    +
    .flex--item 2
    +
    .flex--item 3
    +
    .flex--item 4
    +
    .flex--item 5
    +
    .flex--item 6
    +
    .flex--item 7
    +
    .flex--item 8
    +
    +
    +
    +
    +
    .fw-nowrap
    +
    Default
    +
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Justify content" %} +

    Flex items can be controlled with atomic classes on the container’s main axis. This means controlling how a .flex--item is aligned left to right when in an .fd-row, and top and bottom in an .fd-column.

    + + {% header "h3", "Justify content classes" %} +
    + + + + + + + + + + {% for item in flex.justification %} + + + + + + {% endfor %} + +
    ClassDefinitionResponsive?
    {{ item.class }}{{ item.define }} + {% if item.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h3", "Justify content examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    +
    .jc-center
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    .jc-end
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    .jc-space-around
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    .jc-space-between
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    .jc-space-evenly
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    +
    .jc-start
    +
    Default
    +
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Align items" %} +

    Flex items can be controlled with atomic classes on the container’s cross axis. This means controlling how a .flex--item is aligned top to bottom when in an .fd-row, and left to right in an .fd-column.

    + + {% header "h3", "Align items classes" %} +
    + + + + + + + + + + {% for item in flex.align-items %} + + + + + + {% endfor %} + +
    ClassDefinitionResponsive?
    {{ item.class }}{{ item.define }} + {% if item.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h3", "Align items examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    +
    .ai-baseline
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    .ai-center
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    .ai-end
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    .ai-start
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    +
    .ai-stretch
    +
    Default
    +
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Align content" %} +

    Flex items can be controlled with atomic classes on the container’s cross axis.

    + + {% header "h3", "Align content classes" %} +
    + + + + + + + + + + {% for item in flex.align-content %} + + + + + + {% endfor %} + +
    ClassDefinitionResponsive?
    {{ item.class }}{{ item.define }} + {% if item.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h3", "Align content examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    +
    .ac-center
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    .ac-end
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    .ac-space-around
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    .ac-space-between
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    +
    .ac-start
    +
    Default
    +
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Align self" %} +

    A flex container’s align-items can be overridden on individual items within a flex layout.

    + + {% header "h3", "Align self classes" %} +
    + + + + + + + + + + {% for item in flex.align-self %} + + + + + + {% endfor %} + +
    ClassDefinitionResponsive?
    {{ item.class }}{{ item.define }} + {% if item.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h3", "Align self examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    +
    +
    .as-auto
    +
    Default
    +
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    .as-baseline
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    .as-center
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    .as-end
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    .as-start
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    .as-stretch
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Order" %} +

    Within a flex layout, you can force the position of individual elements.

    + + {% header "h3", "Order classes" %} +
    + + + + + + + + + + {% for item in flex.order %} + + + + + + {% endfor %} + +
    ClassDefinitionResponsive?
    {{ item.class }}{{ item.define }} + {% if item.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h3", "Order examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    +
    .order-first
    +
    +
    .flex--item 1
    +
    .flex--item 2
    +
    .flex--item 3
    +
    +
    +
    +
    .order-last
    +
    +
    .flex--item 1
    +
    .flex--item 2
    +
    .flex--item 3
    +
    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Flex shrink and grow" %} +

    You can control the growing and shrinking behavior of individual elements within a flex layout

    + + {% header "h3", "Flex classes" %} +
    + + + + + + + + + + {% for item in flex.flex %} + + + + + + {% endfor %} + +
    ClassDefinitionResponsive?
    {{ item.class }}{{ item.define }} + {% if item.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h3", "Flex examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    +
    .fl-grow1
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    .fl-grow0
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    .fl-shrink1
    +
    +
    .flex--item
    +
    .flex--
    item
    +
    .flex--item
    +
    +
    +
    +
    .fl-shrink0
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    .fl-none
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    + +
    +
    .fl-initial
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    + +
    +
    .fl-auto
    +
    +
    .flex--item
    +
    .flex--item.ws2
    +
    .flex--item
    +
    +
    + +
    +
    .fl-equal
    +
    +
    .flex--item
    +
    .flex--item
    +
    .flex--item
    +
    +
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/base/floats.html b/packages/stacks-docs/product/base/floats.html new file mode 100644 index 0000000000..7e68078a71 --- /dev/null +++ b/packages/stacks-docs/product/base/floats.html @@ -0,0 +1,78 @@ +--- +layout: page +title: Floats +description: Float and clear atomic classes allow you to change how an element is positioned within the layout. These should be used when possible to help create consistency. +tags: base +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + {% for floats in atomics.floats %} + + + + + + {% endfor %} + +
    ClassOutputDefinition
    .{{ floats.class }}{{ floats.output }}{{ floats.define }}
    +
    +
    + +
    + {% header "h2", "Examples" %} + {% header "h3", "Floats" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    .float-none
    +
    .float-left
    +
    .float-right
    +
    +
    +
    + + {% header "h3", "Clears" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    .float-left
    +
    .float-left
    +
    .clear-left
    +
    +
    +
    .float-right
    +
    .float-right
    +
    .clear-right
    +
    +
    +
    .float-left
    +
    .float-right
    +
    .clear-both
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/base/gap.html b/packages/stacks-docs/product/base/gap.html new file mode 100644 index 0000000000..4686255921 --- /dev/null +++ b/packages/stacks-docs/product/base/gap.html @@ -0,0 +1,188 @@ +--- +layout: page +title: Gap +description: Atomic CSS gap classes allow you to set spacing on the direct children of elements with flexbox and grid layouts. +tags: base +--- +
    + {% header "h2", "Gap classes" %} +
    + + + + + + + + + + + {% for item in gap.gap %} + + + + + + + {% endfor %} + +
    ClassOutputDefinitionResponsive?
    .{{ item.class }}{{ item.output }}{{ item.define }} + {% if item.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h3", "Examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    + {% for item in gap.gap %} +
    +
    + .{{ item.class }} +
    +
    +
    +
    +
    +
    +
    + {% endfor %} +
    +
    +
    + +
    + + {% header "h2", "Column gap" %} +

    Spacing can be set on just the x-axis with .gx classes. They can be used independently or in combination with other atomic gap classes.

    +
    + + + + + + + + + + {% for item in gap.column %} + + + + + + {% endfor %} + +
    ClassDefinitionResponsive?
    .{{ item.class }}{{ item.define }} + {% if item.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h3", "Column examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    + {% for item in gap.column %} +
    +
    + .{{ item.class }} +
    +
    +
    +
    +
    +
    +
    + {% endfor %} +
    +
    +
    + +
    + + {% header "h2", "Row gap" %} +

    Spacing can be set on just the y-axis with .gy classes. They can be used independently or in combination with other atomic gap classes.

    +
    + + + + + + + + + + {% for item in gap.row %} + + + + + + {% endfor %} + +
    ClassDefinitionResponsive?
    .{{ item.class }}{{ item.define }} + {% if item.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h3", "Row examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    + {% for item in gap.row %} +
    +
    + .{{ item.class }} +
    +
    +
    +
    +
    +
    +
    + {% endfor %} +
    +
    +
    diff --git a/packages/stacks-docs/product/base/grid.html b/packages/stacks-docs/product/base/grid.html new file mode 100644 index 0000000000..4340b10f3e --- /dev/null +++ b/packages/stacks-docs/product/base/grid.html @@ -0,0 +1,674 @@ +--- +layout: page +title: Grid +description: Atomic CSS grid classes allow you to quickly add native css grids to your container. +tags: base +--- +
    + {% header "h2", "Overview" %} +

    CSS Grids are the most powerful layout system available in CSS. It has two dimensions, meaning it can handle both columns and rows simultaneously, unlike flex layouts which can only do one at a time. Applying .d-grid to a container will lay out its children according to the CSS Grid layout spec. Adding atomic modifying classes will change the layout’s behavior. Applying classes to an individual .grid--item will change that cell’s behavior.

    + + {% header "h3", "Examples" %} +
    +{% highlight html %} +
    +
    +
    +{% endhighlight %} +
    +
    + .d-grid .grid__4 .g16 +
    .sm:g-af-row
    +
    +
    +
    +
    .grid--item
    +
    .grid--col-all
    +
    +
    +
    .grid--item
    +
    .grid--col1
    +
    .md:grid--col-all
    +
    .grid--row2
    +
    +
    +
    .grid--item
    +
    .grid--col3
    +
    .md:grid--col-all
    +
    .grid__2
    + +
    .d-grid
    +
    .g16
    +
    .grid__2
    +
    .sm:g-af-row
    +
    +
    +
    .grid--item
    +
    .sm:grid--col-all
    +
    +
    +
    .grid--item
    +
    .sm:grid--col-all
    +
    +
    +
    .grid--item
    +
    .sm:grid--col-all
    +
    +
    +
    .grid--item
    +
    .sm:grid--col-all
    +
    +
    +
    +
    +
    .grid--item
    +
    .grid--col2
    +
    +
    +
    .grid--item
    +
    .grid--col1
    +
    .md:grid--col2
    +
    +
    +
    .grid--item
    +
    .grid--col-all
    +
    +
    +
    .grid--item
    +
    .md:grid--col2
    +
    .md:has-row-2
    +
    +
    +
    .grid--item
    +
    .md:grid--col2
    +
    +
    +
    .grid--item
    +
    .md:grid--col2
    +
    +
    +
    .grid--item
    +
    .md:grid--col-all
    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Columns" %} +

    To define a discrete number of columns in your grid layout, you can add a grid__[x] modifying class.

    + + {% header "h3", "Column classes" %} +
    + + + + + + + + + + + {% for item in grid.column-templates %} + + + + + + + {% endfor %} + +
    ClassOutputDefinitionResponsive?
    .{{ item.class }}{{ item.output }}{{ item.define }} + {% if item.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h3", "Columns examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    1
    +
    + +
    +
    1
    +
    2
    +
    + +
    +
    1
    +
    2
    +
    3
    +
    + +
    +
    1
    +
    2
    +
    3
    +
    4
    +
    + +
    +
    1
    +
    2
    +
    3
    +
    4
    +
    5
    +
    + +
    +
    1
    +
    2
    +
    3
    +
    4
    +
    5
    +
    6
    +
    + +
    +
    1
    +
    2
    +
    3
    +
    4
    +
    5
    +
    6
    +
    7
    +
    + +
    +
    1
    +
    2
    +
    3
    +
    4
    +
    5
    +
    6
    +
    7
    +
    8
    +
    + +
    +
    1
    +
    2
    +
    3
    +
    4
    +
    5
    +
    6
    +
    7
    +
    8
    +
    9
    +
    + +
    +
    1
    +
    2
    +
    3
    +
    4
    +
    5
    +
    6
    +
    7
    +
    8
    +
    9
    +
    10
    +
    + +
    +
    1
    +
    2
    +
    3
    +
    4
    +
    5
    +
    6
    +
    7
    +
    8
    +
    9
    +
    10
    +
    11
    +
    + +
    +
    1
    +
    2
    +
    3
    +
    4
    +
    5
    +
    6
    +
    7
    +
    8
    +
    9
    +
    10
    +
    11
    +
    12
    +
    + +
    +
    1
    +
    2
    +
    3
    +
    4
    +
    +
    +
    +
    + +
    + {% header "h2", "Column and row spans" %} +

    You can apply grid--col[x] to your columns, and grid--row[x] to your rows to span a specific number of columns or rows.

    + {% header "h3", "Column spanning classes" %} +
    + + + + + + + + + + + {% for item in grid.columns %} + + + + + + + {% endfor %} + +
    ClassOutputDefinitionResponsive?
    .{{ item.class }}{{ item.output }}{{ item.define }} + {% if item.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h3", "Column examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    .grid--col-all
    +
    +
    +
    .grid--col1
    +
    +
    +
    .grid--col2
    +
    +
    +
    .grid--col3
    +
    +
    +
    .grid--col4
    +
    +
    +
    .grid--col5
    +
    +
    +
    .grid--col6
    +
    +
    +
    .grid--col7
    +
    +
    +
    .grid--col8
    +
    +
    +
    .grid--col9
    +
    +
    +
    .grid--col10
    +
    +
    +
    .grid--col11
    +
    +
    +
    .grid--col12
    +
    +
    +
    + + {% header "h3", "Row classes" %} +
    + + + + + + + + + + + {% for item in grid.rows %} + + + + + + + {% endfor %} + +
    ClassOutputDefinitionResponsive?
    .{{ item.class }}{{ item.output }}{{ item.define }} + {% if item.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h3", "Row example" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    +
    .grid--col2
    +
    .grid--row4
    +
    +
    .grid--col2
    +
    .grid--col2
    +
    .grid--col2
    +
    .grid--col2
    +
    +
    +
    +
    + +
    + {% header "h2", "Autoflow" %} +

    If you have grid items that you don’t explicitly place on the grid, the auto-placement algorithm kicks in to automatically place the items.

    + + {% header "h3", "Autoflow classes" %} +
    + + + + + + + + + + + {% for item in grid.autoflow %} + + + + + + + {% endfor %} + +
    ClassOutputDefinitionResponsive?
    .{{ item.class }}{{ item.output }}{{ item.define }} + {% if item.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h3", "Autoflow examples" %} +
    +{% highlight html %} +
    +
    +
    +{% endhighlight %} +
    +
    .g-af-row
    +
    +
    1
    +
    2
    +
    3
    +
    + +
    .g-af-column
    +
    +
    1
    +
    2
    +
    3
    +
    4
    +
    5
    +
    6
    +
    7
    +
    8
    +
    9
    +
    10
    +
    11
    +
    12
    +
    + +
    .g-af-dense
    +
    +
    1
    +
    2
    +
    3
    +
    4
    +
    5
    +
    6
    +
    7
    +
    8
    +
    9
    +
    10
    +
    11
    +
    12
    +
    +
    +
    +
    + +
    + {% header "h2", "Start and end" %} +

    If you’d like to offset a column or row and specify its start and end positioning classes, you can apply these atomic classes.

    + + {% header "h3", "Column start and end classes" %} +
    + + + + + + + + + + + {% for item in grid.column-start-end %} + + + + + + + {% endfor %} + +
    ClassOutputDefinitionResponsive?
    .{{ item.class }}{{ item.output }}{{ item.define }} + {% if item.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h3", "Column start and end examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    .grid--col-start1 .grid--col-end4
    +
    +
    +
    .grid--col-start2 .grid--col-end4
    +
    +
    +
    .grid--col2 .grid--col-end5
    +
    +
    +
    + + {% header "h3", "Row start and end classes" %} +
    + + + + + + + + + + + {% for item in grid.row-start-end %} + + + + + + + {% endfor %} + +
    ClassOutputDefinitionResponsive?
    .{{ item.class }}{{ item.output }}{{ item.define }} + {% if item.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h3", "Row start and end examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    +
    .grid--col2
    +
    .grid--row-start2
    +
    .grid--row-end4
    +
    +
    .grid--col2
    +
    .grid--col2
    +
    .grid--col2
    +
    .grid--col2
    +
    +
    +
    +
    + +
    + {% header "h2", "Alignment" %} +

    On the grid container, you can apply align-items to the y axis and justify-items to the x axis. On individual items, you can apply align-self on the y axis, and justify-self on the x axis.

    + + {% header "h3", "Alignment classes" %} +
    + + + + + + + + + + + {% for item in grid.alignment %} + + + + + + + {% endfor %} + +
    ClassOutputDefinitionResponsive?
    .{{ item.class }}{{ item.output }}{{ item.define }} + {% if item.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h3", "Alignment examples" %} +
    +{% highlight html %} +
    +
    +
    +
    + … +
    +{% endhighlight %} +
    +
    Default
    +
    +
    1
    +
    2
    +
    3
    +
    4
    +
    5
    +
    6
    +
    + +
    .ji-center .ai-center
    +
    +
    1 .as-start
    +
    2
    +
    3 .as-stretch
    +
    4 .js-end
    +
    5
    +
    6
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/base/interactivity.html b/packages/stacks-docs/product/base/interactivity.html new file mode 100644 index 0000000000..cb2ce0afa4 --- /dev/null +++ b/packages/stacks-docs/product/base/interactivity.html @@ -0,0 +1,192 @@ +--- +layout: page +title: Interactivity +description: Atomic interactivity classes allow you to quickly change an element’s interactivity. +tags: base +--- +
    + {% header "h2", "Pointer events" %} +

    The pointer-events CSS property enables or disables all mouse events on an element.

    + {% header "h3", "Pointer events classes" %} +
    + + + + + + + + + + {% for atomic in atomics.pointer-events %} + + + + + + {% endfor %} + +
    ClassOutputDefinition
    .{{ atomic.class }}{{ atomic.output }}{{ atomic.define }}
    +
    + + {% header "h3", "Pointer events examples" %} +
    +{% highlight html %} +
    +
    +{% endhighlight %} +
    +
    + + +
    +
    +
    +
    + +
    + {% header "h2", "Focus" %} +

    The focus utility classes allow you to apply custom focus styles to an element. Add the conditional prefix f: to only apply the style when the element is focused.

    + {% header "h3", "Focus classes" %} +
    + + + + + + + + + {% for atomic in atomics.focus %} + + + + + {% endfor %} + +
    ClassDefinition
    .{{ atomic.class }}{{ atomic.define }}
    +
    + + {% header "h3", "Focus examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +{% endhighlight %} +
    +
    + {% for atomic in atomics.focus %} +
    .{{ atomic.class }}
    + {% endfor %} +
    +
    +
    + + {% header "h3", "Conditional focus examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +{% endhighlight %} +
    +
    + {% for atomic in atomics.focus %} +
    .f:{{ atomic.class }}
    + {% endfor %} +
    +
    +
    +
    + +
    + {% header "h2", "User select" %} +

    The user-select CSS property controls whether the user can select text.

    + {% header "h3", "User select classes" %} +
    + + + + + + + + + + {% for atomic in atomics.user-select %} + + + + + + {% endfor %} + +
    ClassOutputDefinition
    .{{ atomic.class }}{{ atomic.output }}{{ atomic.define }}
    +
    + + {% header "h3", "User select examples" %} +
    +{% highlight html %} +
    +
    +{% endhighlight %} +
    +
    +
    .us-auto
    +
    .us-none
    +
    +
    +
    +
    + +
    + {% header "h2", "User drag" %} +

    The user-drag CSS property controls whether the user can drag an image.

    + {% tip %} + Note: These classes only work in Safari and Chrome. + {% endtip %} + {% header "h3", "User drag classes" %} +
    + + + + + + + + + + {% for atomic in atomics.user-drag %} + + + + + + {% endfor %} + +
    ClassOutputDefinition
    .{{ atomic.class }}{{ atomic.output }}{{ atomic.define }}
    +
    + + {% header "h3", "User drag examples" %} +
    +{% highlight html %} + + +{% endhighlight %} +
    +
    +
    + Stack Overflow logo with class ud-auto
    + .ud-auto +
    +
    + Stack Overflow logo with class ud-none
    + .ud-none +
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/base/lists.html b/packages/stacks-docs/product/base/lists.html new file mode 100644 index 0000000000..d7188c2984 --- /dev/null +++ b/packages/stacks-docs/product/base/lists.html @@ -0,0 +1,108 @@ +--- +layout: page +title: Lists +description: Stacks provides a few atomic classes to help style lists. +tags: base +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + {% for atomic in atomics.lists %} + + + + + {% endfor %} + +
    ClassOutput
    .{{ atomic.class }}{{ atomic.output }}
    +
    +
    +
    + {% header "h2", "Examples" %} +

    By design, our lists inherit some sensible margins by default. However, in some layouts, you may want to strip these default margins by adding .list-reset and then explicitly choosing a list style and list style position. These classes can be applied to ordered and unordered lists interchangably, though if you’re wanting to show decimals, it’s most appropriate to mark your list up as an ordered list.

    + + {% header "h3", "List Style" %} +
    +{% highlight html %} +
      + … +
    +
      + … +
    +
      + … +
    +
      + … +
    +{% endhighlight %} +
    +
      +
    1. List item 1
    2. +
    3. List item 2
    4. +
    5. List item 3
    6. +
    7. List item 4
    8. +
    9. List item 5
    10. +
    +
      +
    • List item 1
    • +
    • List item 2
    • +
    • List item 3
    • +
    • List item 4
    • +
    • List item 5
    • +
    +
      +
    • List item 1
    • +
    • List item 2
    • +
    • List item 3
    • +
    • List item 4
    • +
    • List item 5
    • +
    +
      +
    1. List item 1
    2. +
    3. List item 2
    4. +
    5. List item 3
    6. +
    7. List item 4
    8. +
    9. List item 5
    10. +
    +
    +
    + + {% header "h3", "List Position" %} +

    By default, the position of markers in a list item are outside their containing element.

    +
    +{% highlight html %} +
      + … +
    +
      + … +
    +{% endhighlight %} +
    +
      +
    • List item 1
    • +
    • List item 2
    • +
    • List item 3
    • +
    • List item 4
    • +
    • List item 5
    • +
    + +
      +
    • List item 1
    • +
    • List item 2
    • +
    • List item 3
    • +
    • List item 4
    • +
    • List item 5
    • +
    +
    +
    diff --git a/packages/stacks-docs/product/base/object-fit.html b/packages/stacks-docs/product/base/object-fit.html new file mode 100644 index 0000000000..96c9eef6dd --- /dev/null +++ b/packages/stacks-docs/product/base/object-fit.html @@ -0,0 +1,123 @@ +--- +layout: page +title: Object fit +description: Atomic classes that control the sizing of an img or video relative to its container. +tags: base +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + {% for atomic in atomics.object-fit %} + + + + + + {% endfor %} + +
    ClassOutputDefinition
    {{ atomic.class }}{{ atomic.output }}{{ atomic.define }}
    +
    + + {% header "h2", "Examples" %} +
    +{% highlight html %} + + + + + + +{% endhighlight %} +
    +
    +
    +
    .of-contain
    + placeholder for .of-contain + placeholder for .of-contain +
    +
    +
    .of-cover
    + placeholder for .of-cover + placeholder for .of-cover +
    +
    +
    .of-fill
    + placeholder for .of-fill + placeholder for .of-fill +
    +
    +
    .of-none
    + placeholder for .of-none + placeholder for .of-none +
    +
    +
    .of-scale-down
    + placeholder for .of-scale-down + placeholder for .of-scale-down +
    +
    +
    .op-center.of-none
    + placeholder for .op-center.of-none + placeholder for .op-center.of-none +
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/base/opacity.html b/packages/stacks-docs/product/base/opacity.html new file mode 100644 index 0000000000..30e705076f --- /dev/null +++ b/packages/stacks-docs/product/base/opacity.html @@ -0,0 +1,71 @@ +--- +layout: page +title: Opacity +description: Atomic opacity classes allow you to change an element’s opacity quickly. +tags: base +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + + {% for atomic in atomics.opacity %} + + + + + + + {% endfor %} + +
    ClassOutputHover?Focus?
    .{{ atomic.class }}{{ atomic.output }} + {% if atomic.hover %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} + + {% if atomic.focus %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h2", "Examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    .o0
    +
    .o5
    +
    .o10
    +
    .o20
    +
    .o30
    +
    .o40
    +
    .o50
    +
    .o60
    +
    .o70
    +
    .o80
    +
    .o90
    +
    .o100
    +
    +
    +
    diff --git a/packages/stacks-docs/product/base/outline.html b/packages/stacks-docs/product/base/outline.html new file mode 100644 index 0000000000..296d7c4671 --- /dev/null +++ b/packages/stacks-docs/product/base/outline.html @@ -0,0 +1,45 @@ +--- +layout: page +title: Outline +description: +tags: base +--- +
    + {% tip, "warning", "mb24" %} + Warning: .outline-ring does not meet our accessibility standards for focus state styling and should be used for decorative purposes only. + {% endtip %} + + {% header "h2", "Classes" %} +
    + + + + + + + + + + {% for atomic in atomics.outline %} + + + + + + {% endfor %} + +
    ClassOutputDefinition
    .{{ atomic.class }}{{ atomic.output }}{{ atomic.define }}
    +
    + + {% header "h2", "Examples" %} +
    +{% highlight html %} +
    +
    +{% endhighlight %} +
    +
    .outline-none
    +
    .outline-ring
    +
    +
    +
    diff --git a/packages/stacks-docs/product/base/overflow.html b/packages/stacks-docs/product/base/overflow.html new file mode 100644 index 0000000000..d7f305443f --- /dev/null +++ b/packages/stacks-docs/product/base/overflow.html @@ -0,0 +1,89 @@ +--- +layout: page +title: Overflow +description: Atomic overflow classes allow you to change an element’s overflow properties quickly. +tags: base +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + {% for atomic in atomics.overflow %} + + + + + + {% endfor %} + +
    ClassOutputDefinition
    .{{ atomic.class }}{{ atomic.output }}{{ atomic.define }}
    +
    + + {% header "h2", "Examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    +
    .overflow-auto
    +
    +
    +
    +
    .overflow-x-auto
    +
    +
    +
    +
    .overflow-y-auto
    +
    +
    +
    +
    .overflow-hidden
    +
    +
    +
    +
    .overflow-x-hidden
    +
    +
    +
    +
    .overflow-y-hidden
    +
    +
    +
    +
    .overflow-scroll
    +
    +
    +
    +
    .overflow-x-scroll
    +
    +
    +
    +
    .overflow-y-scroll
    +
    +
    +
    +
    .overflow-visible
    +
    +
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/base/position.html b/packages/stacks-docs/product/base/position.html new file mode 100644 index 0000000000..13d0e6e98a --- /dev/null +++ b/packages/stacks-docs/product/base/position.html @@ -0,0 +1,181 @@ +--- +layout: page +title: Positioning +description: Atomic positioning classes allow you to quickly change an element’s position. +tags: base +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + + {% for atomic in atomics.position %} + + + + + + + {% endfor %} + +
    ClassOutputDefinitionResponsive?
    .{{ atomic.class }}{{ atomic.output }}{{ atomic.define }} + {% if atomic.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h2", "Examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    .ps-static
    +
    .ps-relative

    .t32
    r24
    +
    .ps-absolute

    .t48
    .r32
    +
    .ps-sticky

    .t64
    +
    +
    +
    +
    + +
    + {% header "h2", "Coordinates" %} +

    Our spacing units aren’t limited to margin and padding; they also apply to top, right, left, and bottom declarations. Combined with our position utility classes, you should be able to achieve absolutely-positioned layouts while adhering to Stacks’ spacing conventions.

    + + {% header "h3", "Coordinate classes" %} +
    + + + + + + + + + + {% for space in position.definitions %} + + + + + + {% endfor %} + +
    AbbreviationDefinitionResponsive?
    {{ space.term }}{{ space.define }} + {% icon "Checkmark", "fc-green-400" %} +
    +
    + +{% assign position-properties = position.properties | split: ", " %} +{% assign position-values = position.values | split: ", " %} + +{% header "h3", "Coordinate examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    + .t12 .l12 +
    + +
    + .t48 .r24 +
    + +
    + .t50 .l50 +
    + +
    + .b48 .l48 +
    + +
    + .rn8 .bn8 +
    +
    + .i64 +
    +
    +
    + + {% header "h2", "Positive coordinates" %} +
    + + + + + {% for value in position-values %} + + {% endfor %} + + + + {% for className in position-properties %} + + + {% for value in position-values %} + {% if className == "i" %} + {% if value == "50%" or value == "100%" %} + + {% else %} + + {% endif %} + {% else %} + + {% endif %} + {% endfor %} + + {% endfor %} + +
    Prefix{{ value }}
    {{ className }}-.{{ className }}{{ value | replace: "px", "" }}.{{ className }}{{ value | replace: "px", "" | replace: "%", "" }}
    +
    + + {% assign position-properties-negative = position.properties | replace: ", i", "" | split: ", " %} + {% assign position-values-negative = position.values | replace: "0, ", "" | split: ", " %} + + {% header "h2", "Negative coordinates" %} +
    + + + + + {% for value in position-values-negative %} + + {% endfor %} + + + + {% for className in position-properties-negative %} + + + {% for value in position-values-negative %} + + {% endfor %} + + {% endfor %} + +
    Prefix-{{ value }}
    {{ className }}n.{{ className }}n{{ value | replace: "px", "" | replace: "%", "" }}
    +
    +
    diff --git a/packages/stacks-docs/product/base/spacing.html b/packages/stacks-docs/product/base/spacing.html new file mode 100644 index 0000000000..0ed74c72aa --- /dev/null +++ b/packages/stacks-docs/product/base/spacing.html @@ -0,0 +1,247 @@ +--- +layout: page +title: Spacing +description: Stacks provides atomic classes to override margin and padding. +tags: base +--- +
    + {% header "h2", "Margin" %} +

    Immutable margin utilities are based on our global white space scale. These can dramatically help reduce the size of large stylesheets and allow for greater flexibility and quicker iteration when designing in the browser.

    +

    Margin should never be declared outside of these utilities. This is meant to help create consistency and avoid magic numbers. If, for some reason, the default white space scale does not suit your design, customize and extend it before use.

    + + {% header "h3", "Margin class abbreviations" %} +
    + + + + + + + + + + {% for space in spacing.margin.definitions %} + + + + + + {% endfor %} + +
    AbbreviationDefinitionResponsive?
    {{ space.term }}{{ space.define }} + {% if space.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + +{% header "h3", "Margin classes" %} +{% assign margin-properties = spacing.margin.properties | split: ", " %} +{% assign margin-values = spacing.margin.values | split: ", " %} +{% assign margin-values-negative = spacing.margin.values | replace: "0, ", "" | split: ", " %} +
    +{% highlight html %} +
    + … +
    +{% endhighlight %} +
    +
    + Example div with different margins applied +
    +
    +
    +
    + + + + + {% for value in margin-values %} + + {% endfor %} + + + + {% for className in margin-properties %} + + + {% for value in margin-values %} + {% if className == "mx" or className == "my" %} + {% if value == "0" or value == "50%" or value == "100%" %} + + {% else %} + + {% endif %} + {% else %} + + {% endif %} + {% endfor %} + + {% endfor %} + +
    {{ value }}
    {{ className }}-.{{ className }}{{ value | replace: "px", "" }}.{{ className }}{{ value | replace: "px", "" | replace: "%", "" }}
    +
    + + {% header "h3", "Negative margin classes" %} +
    + + + + + {% for value in margin-values-negative %} + + {% endfor %} + + + + {% for className in margin-properties %} + + + {% for value in margin-values-negative %} + {% if className == "mx" or className == "my" %} + {% if value == "0" or value == "50%" or value == "100%" %} + + {% else %} + + {% endif %} + {% else %} + + {% endif %} + {% endfor %} + + {% endfor %} + +
    -{{ value }}
    {{ className }}n-.{{ className }}n{{ value | replace: "px", "" }}.{{ className }}n{{ value | replace: "px", "" | replace: "%", "" }}
    +
    + + {% header "h3", "Auto margin classes" %} +

    Stacks provides additional automatic margin classes. These come in handy when positioning individual flex items within flex layouts, or horizontally centering a block-level element.

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    DirectionClass
    All directions + .m-auto +
    Top + .mt-auto +
    Right + .mr-auto +
    Bottom + .mb-auto +
    Left + .ml-auto +
    X axis + .mx-auto +
    +
    +
    + +
    + {% header "h2", "Padding" %} +

    Immutable padding utilities are based on a global white space scale defined with custom properties. These can dramatically help reduce the size of large stylesheets and allow for greater flexibility and quicker iteration when designing in the browser.

    +

    Padding should never be declared outside of these utilities. This is meant to help create consistency and avoid magic numbers. If, for some reason, the default white space scale does not suit your design, customize and extend it before use.

    + + {% header "h3", "Padding class abbreviations" %} +
    + + + + + + + + + + {% for space in spacing.padding.definitions %} + + + + + + {% endfor %} + +
    AbbreviationDefinitionResponsive?
    {{ space.term }}{{ space.define }} + {% if space.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + +{% header "h3", "Padding classes" %} +{% assign padding-properties = spacing.padding.properties | split: ", " %} +{% assign padding-values = spacing.padding.values | split: ", " %} + +
    +{% highlight html %} +
    + … +
    +{% endhighlight %} +
    +
    + Example div with different paddings applied +
    +
    +
    +
    + + + + + {% for value in padding-values %} + + {% endfor %} + + + + {% for className in padding-properties %} + + + {% for value in padding-values %} + {% if className == "px" or className == "py" %} + {% if value == "0" or value == "50%" or value == "100%" %} + + {% else %} + + {% endif %} + {% else %} + + {% endif %} + {% endfor %} + + {% endfor %} + +
    {{ value }}
    {{ className }}-.{{ className }}{{ value | replace: "px", "" }}.{{ className }}{{ value | replace: "px", "" | replace: "%", "" }}
    +
    +
    diff --git a/packages/stacks-docs/product/base/transitions.html b/packages/stacks-docs/product/base/transitions.html new file mode 100644 index 0000000000..955b7ff5a0 --- /dev/null +++ b/packages/stacks-docs/product/base/transitions.html @@ -0,0 +1,114 @@ +--- +layout: page +title: Transitions +description: Atomic transition classes allow you to quickly apply transitions properties to an element. You can modify an element’s transition duration, property, or delay. +tags: base +--- +

    You can trigger CSS transitions directly with pseudo classes like :hover which activate on mouse over, :focus which activates when user tabs onto or clicks into an input element, or active when a user clicks on an element.

    + +

    You can also trigger a CSS transition using JavaScript by adding or removing a class.

    + +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + {% for atomic in atomics.transitions %} + + + + + + {% endfor %} + +
    ClassOutputDefinition
    .{{ atomic.class }}{{ atomic.output }}{{ atomic.define }}
    +
    + + {% header "h2", "Base transition" %} +

    The base transition applies a default duration timing function to an element.

    +
    +{% highlight html %} +
    +{% endhighlight %} +
    +
    +
    + .t +
    +
    +
    +
    + + {% header "h2", "Speed" %} +

    Change an elements default transition duration.

    +
    +{% highlight html %} +
    +
    +{% endhighlight %} +
    +
    +
    + .t-slow +
    +
    + .t-fast +
    +
    +
    +
    + + + {% header "h2", "Property" %} +

    Target a specific CSS property for transition, or remove the default transition.

    +
    +{% highlight html %} +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    + .t-unset +
    +
    + .t-bg +
    +
    + .t-opacity +
    +
    + .t-shadow +
    +
    +
    +
    + + {% header "h2", "Delay" %} +

    Refers to how long you want to wait before starting the duration.

    +
    +{% highlight html %} +
    +
    +{% endhighlight %} +
    +
    +
    + .t-delay +
    +
    + .t-delay-unset +
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/base/truncation.html b/packages/stacks-docs/product/base/truncation.html new file mode 100644 index 0000000000..abf2308ef1 --- /dev/null +++ b/packages/stacks-docs/product/base/truncation.html @@ -0,0 +1,111 @@ +--- +layout: page +title: Truncation +description: Stacks provides utility classes for various types of truncation. +tags: base +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ClassApplies toDescription
    .truncateText is cropped to the width of its parent with an ellipsis.
    .v-truncate[x]Text is cropped to the length of [x] number of lines with an ellipsis.
    .v-truncate-fadeText is cropped by visually fading it out.
    .v-truncate-fade__sm.v-truncate-fadeReduces the height of the visible text
    .v-truncate-fade__lg.v-truncate-fadeIncreases the amount of visible text.
    +
    +
    + +
    + {% header "h2", "Examples" %} + {% header "h3", "Ellipses" %} +

    CSS offers truncation on arbitrarily-long strings. This can help sanitize user-inputted things like bios, locations, or display names. In order for text truncation to work, it should be applied to a block-level element. Truncation can only apply to text/strings, not arbitrary block-level elements.

    +
    +{% highlight html %} +

    +

    +

    +

    +

    +

    +{% endhighlight %} +
    +
    + Regardless of length, this text will be truncated horizontally. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +
    + +
    + Regardless of length, this text will be this text will be truncated to 1 line, vertically. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +
    + +
    + Regardless of length, this text will be this text will be truncated to 2 lines, vertically. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +
    + +
    + Regardless of length, this text will be this text will be truncated to 3 lines, vertically. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +
    + +
    + Regardless of length, this text will be this text will be truncated to 4 lines, vertically. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +
    + +
    + Regardless of length, this text will be this text will be truncated to 5 lines, vertically. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +
    +
    +
    + + {% header "h3", "Fade" %} +

    Alternatively, you can use a vertical fade that will set max-height and sets a vertical mask-image:

    +
    + {% highlight html %} +

    +

    +

    + {% endhighlight %} +
    +
    + Regardless of length, this text will be this text will fade out, vertically. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +
    + +
    + Regardless of length, this text will be this text will fade out, vertically. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +
    + +
    + Regardless of length, this text will be this text will fade out, vertically. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/base/vertical-alignment.html b/packages/stacks-docs/product/base/vertical-alignment.html new file mode 100644 index 0000000000..0c1d65a1cd --- /dev/null +++ b/packages/stacks-docs/product/base/vertical-alignment.html @@ -0,0 +1,55 @@ +--- +layout: page +title: Vertical alignment +description: Atomic vertical alignment classes allow you to change an element’s vertical alignment quickly. +tags: base +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + {% for atomic in atomics.vertical-alignment %} + + + + + {% endfor %} + +
    ClassOutput
    .{{ atomic.class }}{{ atomic.output }}
    +
    +
    +
    + {% header "h2", "Examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    .va-baseline
    +
    .va-bottom
    +
    .va-middle
    +
    .va-sub
    +
    .va-super
    +
    .va-text-bottom
    +
    .va-text-top
    +
    .va-top
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/base/visibility.html b/packages/stacks-docs/product/base/visibility.html new file mode 100644 index 0000000000..f6b9b9cae6 --- /dev/null +++ b/packages/stacks-docs/product/base/visibility.html @@ -0,0 +1,49 @@ +--- +layout: page +title: Visibility +description: Atomic visibility classes allow you to quickly change an element’s visibility. +tags: base +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + {% for atomic in atomics.visibility %} + + + + + {% endfor %} + +
    ClassDefinition
    .{{ atomic.class }}{{ atomic.definition }}
    +
    + + {% header "h2", "Examples" %} +
    +{% highlight html %} +
    +
    +
    +{% endhighlight %} +
    +
    +
    + .v-visible +
    +
    + .v-visible-sr +
    +
    + .v-hidden +
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/base/width-height.html b/packages/stacks-docs/product/base/width-height.html new file mode 100644 index 0000000000..b40e43e3db --- /dev/null +++ b/packages/stacks-docs/product/base/width-height.html @@ -0,0 +1,642 @@ +--- +layout: page +title: Width & height +description: Stacks provides atomic sizing classes for percentage-based widths & heights, viewport-based widths & heights, static widths & heights, max-widths & heights, and min-widths & heights. +tags: base +--- +
    + {% header "h2", "Widths" %} + {% header "h3", "Width classes" %} +

    Width classes are provided at each fixed stop of our pixel-based sizing scale.

    +
    + + + + + + + + + + {% for size in atomics.width %} + + + + + + {% endfor %} + +
    ClassOutputResponsive?
    .{{ size.class }}{{ size.output }} + {% if size.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h3", "Width examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    +
    +
    .w2
    +
    +
    +
    +
    .w4
    +
    +
    +
    +
    .w6
    +
    +
    +
    +
    .w8
    +
    +
    +
    +
    .w12
    +
    +
    +
    +
    .w16
    +
    +
    +
    +
    .w24
    +
    +
    +
    +
    .w32
    +
    +
    +
    +
    .w48
    +
    +
    +
    +
    .w64
    +
    +
    +
    +
    .w96
    +
    +
    +
    +
    .w128
    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Fluid width" %} + {% header "h3", "Fluid width classes" %} +
    + + + + + + + + + + {% for size in atomics.width-percentage %} + + + + + + {% endfor %} + +
    ClassOutputResponsive?
    .{{ size.class }}{{ size.output }} + {% if size.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    + + {% header "h3", "Fluid width examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    +
    .w100
    +
    +
    +
    .w10
    +
    .w90
    +
    +
    +
    .w20
    +
    .w80
    +
    +
    +
    .w25
    +
    .w75
    +
    +
    +
    .w30
    +
    .w70
    +
    +
    +
    .w33
    +
    .w66
    +
    +
    +
    .w40
    +
    .w60
    +
    +
    +
    .w50
    +
    .w50
    +
    +
    +
    .w-screen
    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Static widths" %} +

    Static widths are based on the full width of our 12-column grid. The grid is defined in rems, which are tied to the base font size. At the default font size, the full width is 1264px. A single column is approximately 105px.

    +

    At the smallest breakpoint, our font size is reduced, and these static widths are therefore also reduced.

    + + {% header "h3", "Static width classes" %} +
    + + + + + + + + + + {% for size in atomics.width-static %} + + + + + + {% endfor %} + +
    ClassOutputResponsive?
    .{{ size.class }}{{ size.output }} + {% if size.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h3", "Static width examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    .ws1
    +
    .ws2
    +
    .ws3
    +
    .ws4
    +
    .ws5
    +
    .ws6
    +
    .ws7
    +
    .ws8
    +
    .ws9
    +
    .ws10
    +
    .ws11
    +
    .ws12
    +
    +
    +
    +
    + +
    + {% header "h2", "Max width" %} + {% header "h3", "Max width classes" %} +
    + + + + + + + + + + {% for size in atomics.width-max %} + + + + + + {% endfor %} + +
    ClassOutputResponsive?
    .{{ size.class }}{{ size.output }} + {% if size.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h3", "Max width examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    .wmx1
    +
    .wmx2
    +
    .wmx25
    +
    .wmx3
    +
    .wmx4
    +
    .wmx5
    +
    .wmx50
    +
    .wmx6
    +
    .wmx7
    +
    .wmx75
    +
    .wmx8
    +
    .wmx9
    +
    .wmx10
    +
    .wmx11
    +
    .wmx12
    +
    .wmx-screen
    +
    +
    +
    +
    + +
    + {% header "h2", "Min width" %} + {% header "h3", "Min width classes" %} +
    + + + + + + + + + + {% for size in atomics.width-min %} + + + + + + {% endfor %} + +
    ClassOutputResponsive?
    .{{ size.class }}{{ size.output }} + {% if size.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h3", "Min width examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    .wmn0
    +
    .wmn1
    +
    .wmn2
    +
    .wmn25
    +
    .wmn3
    +
    .wmn4
    +
    .wmn5
    +
    .wmn50
    +
    .wmn6
    +
    .wmn7
    +
    .wmn75
    +
    .wmn8
    +
    .wmn9
    +
    .wmn10
    +
    .wmn11
    +
    .wmn12
    +
    +
    +
    +
    + +
    + {% header "h2", "Height" %} + {% header "h3", "Height classes" %} +

    Height classes are provided at each fixed stop of our sizing scale.

    +
    + + + + + + + + + + {% for size in atomics.height %} + + + + + + {% endfor %} + +
    ClassOutputResponsive?
    .{{ size.class }}{{ size.output }} + {% if size.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h3", "Height examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    +
    +
    .h2
    +
    +
    +
    +
    +
    +
    .h4
    +
    +
    +
    +
    +
    +
    .h6
    +
    +
    +
    +
    +
    +
    .h8
    +
    +
    +
    +
    +
    +
    .h12
    +
    +
    +
    +
    +
    +
    .h16
    +
    +
    +
    +
    +
    +
    .h24
    +
    +
    +
    +
    +
    +
    .h32
    +
    +
    +
    +
    +
    +
    .h48
    +
    +
    +
    +
    +
    +
    .h64
    +
    +
    +
    +
    +
    +
    .h96
    +
    +
    +
    +
    +
    +
    .h128
    +
    +
    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Static Height" %} + {% header "h3", "Static height classes" %} +
    + + + + + + + + + + {% for size in atomics.height-static %} + + + + + + {% endfor %} + +
    ClassOutputResponsive?
    .{{ size.class }}{{ size.output }} + {% if size.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    + + {% header "h3", "Fluid height classes" %} +
    + + + + + + + + + + {% for size in atomics.height-percentage %} + + + + + + {% endfor %} + +
    ClassOutputResponsive?
    .{{ size.class }}{{ size.output }} + {% if size.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    +
    + +
    + {% header "h2", "Min height" %} + {% header "h3", "Min height classes" %} +
    + + + + + + + + + + {% for size in atomics.height-min %} + + + + + + {% endfor %} + +
    ClassOutputResponsive?
    .{{ size.class }}{{ size.output }} + {% if size.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    +
    + +
    + {% header "h2", "Max height" %} + {% header "h3", "Max height classes" %} +
    + + + + + + + + + + {% for size in atomics.height-max %} + + + + + + {% endfor %} + +
    ClassOutputResponsive?
    .{{ size.class }}{{ size.output }} + {% if size.responsive %} + {% icon "Checkmark", "fc-green-400" %} + {% endif %} +
    +
    diff --git a/packages/stacks-docs/product/base/z-index.html b/packages/stacks-docs/product/base/z-index.html new file mode 100644 index 0000000000..a72506041e --- /dev/null +++ b/packages/stacks-docs/product/base/z-index.html @@ -0,0 +1,61 @@ +--- +layout: page +title: Z-Index +description: Atomic z-index classes allow you to change an element’s z-index quickly. +tags: base +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + {% for atomic in atomics.z-index %} + + + + + {% endfor %} + +
    ClassOutput
    .{{ atomic.class }}{{ atomic.output }}
    +
    + + {% header "h2", "Examples" %} +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    .z-base
    +
    .z-hide
    +
    .z-selected
    +
    .z-active
    +
    .z-dropdown
    +
    .z-popover
    +
    .z-tooltip
    +
    .z-banner
    +
    .z-nav
    +
    .z-nav-fixed
    +
    .z-modal-bg
    +
    .z-modal
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/components/activity-indicator.html b/packages/stacks-docs/product/components/activity-indicator.html new file mode 100644 index 0000000000..655ca7bc9c --- /dev/null +++ b/packages/stacks-docs/product/components/activity-indicator.html @@ -0,0 +1,193 @@ +--- +layout: page +title: Activity indicator +svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-activityindicator--docs +figma: https://www.figma.com/design/do4Ug0Yws8xCfRjHe9cJfZ/Project-SHINE---Product-UI?node-id=610-18796 +description: Stacks provides a small jewel for indicating new activity. +tags: components +--- + +{% assign examples = " ,3,12,370,new" | split: "," %} + +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + {% for item in activity-indicator.indicator %} + + + + + + {% endfor %} + +
    ClassApplied toDescription
    {{ item.class }}{% if item.applies == "N/A" %}{{ item.applies }}{% else %}{{ item.applies }}{% endif %}{{ item.description }}
    +
    +
    +
    + {% header "h2", "Examples" %} + {% header "h3", "Default" %} +

    By default, our indicator has no positioning attached to it. Depending on your context, you can modify the activity indicator’s positioning using any combination of atomic classes. Since our activity indicator has no inherent semantic meaning, make sure to include visually-hidden, screenreader-only text with the v-visible-sr class.

    +
    +{% highlight html %} +
    +
    New activity
    +
    + +
    + … +
    +
    + +
    + … +
    +
    + +
    + … +
    +
    + +
    + … +
    + + +
    +
    +
    +
    +
    + @Svg.ShieldXSm.With("native s-avatar--badge") +
    + +
    + +
    + @Svg.Notification + +
    +
    +
    +
    + +
    + @Svg.Notification + +
    +
    + 3
    +
    +
    +
    +{% endhighlight %} +
    +
    + {% for example in examples %} +
    + {{ example }} +
    New activity
    +
    + {% endfor %} + + +
    +
    +
    New activity
    +
    +
    G
    + {% icon "ShieldXSm", "native s-avatar--badge" %} +
    + Grayson +
    + +
    + {% icon "Notification" %} + +
    +
    New activity
    +
    +
    + +
    + {% icon "Notification" %} + +
    +
    + 3
    +
    +
    +
    +
    +
    +
    + + {% header "h3", "Variations" %} +

    Stacks also provides alternative styling for success, warning, and danger states.

    +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    + {% assign variants = "success,warning,danger" | split: "," %} +
    + {% for variant in variants %} +
    + {% for example in examples %} +
    + {{ example }} +
    New activity
    +
    + {% endfor %} + + +
    +
    +
    New activity
    +
    +
    G
    + {% icon "ShieldXSm", "native s-avatar--badge" %} +
    + Grayson +
    + +
    + {% icon "Notification" %} + +
    +
    New activity
    +
    +
    + +
    + {% icon "Notification" %} + +
    +
    + 3
    New activities
    +
    +
    +
    +
    + {% endfor %} +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/components/avatars.html b/packages/stacks-docs/product/components/avatars.html new file mode 100644 index 0000000000..ed85ecd4a2 --- /dev/null +++ b/packages/stacks-docs/product/components/avatars.html @@ -0,0 +1,449 @@ +--- +layout: page +title: Avatars +svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-avatar--docs +figma: https://www.figma.com/design/do4Ug0Yws8xCfRjHe9cJfZ/Project-SHINE---Product-UI?node-id=610-18797&p=f&t=c9NSyJWdASb80eVC-0 +description: Avatars are used to quickly identify users or teams. +tags: components +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + {% for item in avatars-component.classes %} + + + + + + {% endfor %} + +
    ClassApplied toDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    +
    +
    +
    + {% header "h2", "Examples" %} + {% header "h3", "Users" %} +

    Including an image with the class s-avatar--image within s-avatar will apply the correct size. Remember, you’ll want to double the size of the avatar image to account for retina screens.

    +
    +{% highlight html %} + + + + + + + + + + + + + + + + + + + + + + + + + + + +{% endhighlight %} +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + 16px + default + + + demo avatar + +
    + 24px + .s-avatar__24 + + + demo avatar + +
    + 32px + .s-avatar__32 + + + demo avatar + +
    + 48px + .s-avatar__48 + + + demo avatar + +
    + 64px + .s-avatar__64 + + + demo avatar + +
    + 96px + .s-avatar__96 + + + demo avatar + +
    + 128px + .s-avatar__128 + + + demo avatar + +
    +
    +
    + + {% header "h3", "Activity" %} +

    + Avatars can display activity indicators to show activities or status changes. + Add the s-avatar--indicator class to a child element of s-avatar along with s-activity-indicator and s-activity-indicator__sm classes. + The indicator is positioned at the top-right corner of the avatar.

    +
    +{% highlight html %} + +
    +
    Online
    +
    + +
    + + +
    +
    Online
    +
    + +
    +{% endhighlight %} +
    + + + + + + + + + +
    + 16px + default + + +
    +
    Online
    +
    + demo avatar +
    +
    + 24px + .s-avatar__24 + + +
    +
    Online
    +
    + demo avatar +
    +
    +
    +
    +
    + +
    + {% header "h3", "Stack Internal" %} +

    When displaying a team’s identity, we badge the avatar with a shield. We fall back to the first letter of their name and a color we choose at random. As Stack Internal administrators add more data—choosing a color or uploading an avatar—we progressively enhance the avatar.

    +

    In this example, from left to right, we have a team name of Hum with no avatar or custom color. In the middle we have a team name of Hum with a custom color. In the last example, we have a team name of Hum with a custom avatar applied.

    +
    +{% highlight html %} + +
    + + @Svg.ShieldXSm.With("native s-avatar--badge") +
    + Team name +
    + + + + Hum + @Svg.ShieldXSm.With("native s-avatar--badge") + + + + + Hum + @Svg.ShieldXSm.With("native s-avatar--badge") + + + + + Hum + @Svg.ShieldXSm.With("native s-avatar--badge") + + + + + Hum + @Svg.ShieldXSm.With("native s-avatar--badge") + + + + + Hum + @Svg.ShieldXSm.With("native s-avatar--badge") + + + + + Hum + @Svg.ShieldXSm.With("native s-avatar--badge") + +{% endhighlight %} +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + 16px + default + + +
    + + {% icon "ShieldXSm", "native s-avatar--badge" %} +
    + Hum +
    +
    + +
    + + {% icon "ShieldXSm", "native s-avatar--badge" %} +
    + Hum +
    +
    + +
    + {% icon "ShieldXSm", "native s-avatar--badge" %} +
    + Hum +
    +
    + 24px + .s-avatar__24 + + + + Hum + {% icon "ShieldXSm", "native s-avatar--badge" %} + + + + + Hum + {% icon "ShieldXSm", "native s-avatar--badge" %} + + + + Hum + {% icon "ShieldXSm", "native s-avatar--badge" %} + +
    + 32px + .s-avatar__32 + + + + Hum + {% icon "ShieldXSm", "native s-avatar--badge" %} + + + + + Hum + {% icon "ShieldXSm", "native s-avatar--badge" %} + + + + Hum + {% icon "ShieldXSm", "native s-avatar--badge" %} + +
    + 48px + .s-avatar__48 + + + + Hum + {% icon "ShieldXSm", "native s-avatar--badge" %} + + + + + Hum + {% icon "ShieldXSm", "native s-avatar--badge" %} + + + + Hum + {% icon "ShieldXSm", "native s-avatar--badge" %} + +
    + 64px + .s-avatar__64 + + + + Hum + {% icon "ShieldXSm", "native s-avatar--badge" %} + + + + + Hum + {% icon "ShieldXSm", "native s-avatar--badge" %} + + + + Hum + {% icon "ShieldXSm", "native s-avatar--badge" %} + +
    + 96px + .s-avatar__96 + + + + Hum + {% icon "ShieldXSm", "native s-avatar--badge" %} + + + + + Hum + {% icon "ShieldXSm", "native s-avatar--badge" %} + + + + Hum + {% icon "ShieldXSm", "native s-avatar--badge" %} + +
    + 128px + .s-avatar__128 + + + + Hum + {% icon "ShieldXSm", "native s-avatar--badge" %} + + + + + Hum + {% icon "ShieldXSm", "native s-avatar--badge" %} + + + + Hum + {% icon "ShieldXSm", "native s-avatar--badge" %} + +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/components/badges.html b/packages/stacks-docs/product/components/badges.html new file mode 100644 index 0000000000..d7a5b1cdef --- /dev/null +++ b/packages/stacks-docs/product/components/badges.html @@ -0,0 +1,517 @@ +--- +layout: page +title: Badges +svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-badge--docs +figma: https://www.figma.com/design/do4Ug0Yws8xCfRjHe9cJfZ/Project-SHINE---Product-UI?node-id=610-18799&p=f&m=dev +description: Badges are labels used for flags, earned achievements, and number totals. +tags: components +--- +
    + {% header "h2", "Styles" %} + {% header "h3", "Default" %} +
    +{% highlight html %} + + default + +{% endhighlight %} +
    + + default + +
    +
    + + {% header "h3", "General" %} +

    A general-purpose badge used for functional information and system-level status updates.

    +
    +{% highlight html %} + + + Badge + + general + +{% endhighlight %} +
    + + + Badge + + general + +
    +
    + + {% header "h3", "Reputation" %} +

    A reputation badge to display a user’s total rep count.

    +
    +{% highlight html %} + + + Rep badge + + 99 rep + +{% endhighlight %} +
    + + + Rep badge + + 99 rep + +
    +
    + + + {% header "h3", "Activity" %} +

    An activity badge to signal real-time events and draw attention.

    +
    +{% highlight html %} + + + Activity badge + + new message + +{% endhighlight %} +
    + + + Activity badge + + new message + +
    +
    + + {% header "h3", "Achievement" %} +

    Badges that provides information about user achievements.

    +
    +{% highlight html %} + + + Gold badge + + Great Question + + + + Silver badge + + Favorite Question + + + + Bronze badge + + Altruist + +{% endhighlight %} +
    +
    + + + + + + + + + + {% for badge in badges.achievement %} + {% assign types = badge.classes %} + {% for type in types %} + + + + + + {% endfor %} + {% endfor %} + +
    ExampleClassDescription
    + + + {{ type.repType }} badge + + {{ type.label }} + + +
    + .s-badge > + {% if type.class != nil %} + .{{ type.class }} + {% endif %} +
    +
    {{ type.description }}
    +
    +
    +
    + + {% header "h3", "Tag" %} +

    Badges that display achievements a user has earned for their contributions within a specific topic/tag.

    +
    +{% highlight html %} + + + Gold tag badge + + python + + + + Silver tag badge + + css + + + + Bronze tag badge + + javascript + +{% endhighlight %} +
    +
    + + + + + + + + + + {% for badge in badges.tag %} + {% assign types = badge.classes %} + {% for type in types %} + + + + + + {% endfor %} + {% endfor %} + +
    ExampleClassDescription
    + + + {{ type.repType }} tag badge + + {{ type.label }} + + +
    + .s-badge + {% if type.class != nil %} + .{{ type.class }} + {% endif %} +
    +
    {{ type.description }}
    +
    +
    +
    + + + + {% header "h3", "States" %} +

    Use State badges to communicate semantic status or severity, such as success, warning, or danger. These variants apply specific system colors to convey meaning and can be configured with or without icons.

    + {% tip, "info", "mb24" %} + Note: Avoid using icons in the small variant unless a dedicated small icon size is available. + {% endtip %} +
    +{% highlight html %} + + @Svg.Document + Archived + + + @Svg.Compose + Draft + + + @Svg.Eye + Review + + + @Svg.Flag + Closed + + + @Svg.Challenge + Deleted + + + @Svg.Key + Pinned + + + @Svg.Check + Success + + + @Svg.Star + New + +{% endhighlight %} +
    +
    + + + + + + + + + + {% for badge in badges.states %} + {% assign types = badge.classes %} + {% for type in types %} + + + + + + {% endfor %} + {% endfor %} + +
    ExampleClassDescription
    + + {% icon type.icon %} + {{ type.label }} + + + {{ type.label }} + + +
    + .s-badge + {% if type.class != nil %} + .{{ type.class }} + {% endif %} + {% if badge.class != nil %} + .{{ badge.class }} + {% endif %} +
    +
    {{ type.description }}
    +
    +
    +
    + + {% header "h3", "Squared" %} +

    Use the squared variant sparingly to provide additional emphasis, reserving it primarily for states related to gamification or achievements.

    +
    +{% highlight html %} + + @Svg.Check + Accepted answer + + + @Svg.VoteUp + Earn badge + +{% endhighlight %} +
    +
    + + + + + + + + + + {% for badge in badges.squared %} + {% assign types = badge.classes %} + {% for type in types %} + + + + + + {% endfor %} + {% endfor %} + +
    ExampleClassDescription
    + + {% icon type.icon %} + {{ type.label }} + + +
    + .s-badge + {% if type.class != nil %} + .{{ type.class }} + {% endif %} + {% if badge.class != nil %} + .{{ badge.class }} + {% endif %} +
    +
    {{ type.description }}
    +
    +
    +
    + + {% header "h3", "Important" %} +

    Emboldens the above visual styles by strengthening the background saturation. This should be used for time-sensitive, pressing information that needs to be noticed by the user.

    +
    +{% highlight html %} + + @Svg.Notification + Needs attention + + + @Svg.VoteUp + Ending soon + + + Spam + + + +100 + +{% endhighlight %} +
    +
    + + + + + + + + + + {% for badge in badges.important %} + {% assign types = badge.classes %} + {% for type in types %} + + + + + + {% endfor %} + {% endfor %} + +
    ExampleClassDescription
    + + {% if type.icon != nil %} + {% icon type.icon %} + {{ type.label }} + {% else %} + {{ type.label }} + {% endif %} + + +
    + {% assign classes = type.html | split: " " %} + {% for class in classes %} + .{{ class }} + {% endfor %} +
    +
    {{ type.description }}
    +
    +
    +
    + + {% header "h3", "User" %} +
    +{% highlight html %} +Admin +Moderator +Staff +Bot +AI +{% endhighlight %} +
    +
    + + + + + + + + + + {% for badge in badges.users %} + {% assign types = badge.classes %} + {% for type in types %} + + + + + + {% endfor %} + {% endfor %} + +
    ExamplesClassDescription
    + {{ type.label }} + +
    + .s-badge + {% if type.class != nil %} + .{{ type.class }} + {% endif %} +
    +
    {{ type.description }}
    +
    +
    +
    + + {% header "h3", "Sizes" %} +

    Badges come in three sizes.

    +
    +{% highlight html %} + + Small + + + Default + + + Large + +{% endhighlight %} +
    +
    + + + + + + + + + + {% for badge in badges.sizes %} + {% assign types = badge.classes %} + {% for type in types %} + + + + + + {% endfor %} + {% endfor %} + +
    ExamplesClassDescription
    + + {{ type.label }} + + +
    + .s-badge + {% if type.class != nil %} + .{{ type.class }} + {% endif %} +
    +
    {{ type.description }}
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/components/banners.html b/packages/stacks-docs/product/components/banners.html new file mode 100644 index 0000000000..2e2fdb2123 --- /dev/null +++ b/packages/stacks-docs/product/components/banners.html @@ -0,0 +1,299 @@ +--- +layout: page +title: Banners +figma: https://svelte.stackoverflow.design/figma/banners +description: Banners are a type of notice, delivering both system and engagement messaging. These are highly intrusive messaging methods and so should be used appropriately. +tags: components +--- + + + + + +
    +

    System banners are used for system messaging. They are full-width notices placed in one of two locations:

    +
      +
    1. Above everything else: If the system banner is related to the entire website (e.g. the website is in read-only), place the banner first. These cannot be dismissed until the issue is resolved. To pin a system banner to the top of the browser window, add .is-pinned.
    2. +
    3. Below the top navigation bar: This is the default location for all system banners. Use these banners when it affects only a particular area of the product (e.g. when a product subscription is about to expire).
    4. +
    +

    Since system banners are a type of notice, you can use the following notice visual styles in conjunction with .s-banner:

    +
    + +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + {% for item in banners.system %} + + + + + + {% endfor %} + +
    ClassApplies toDescription
    {{ item.class }}{% if item.applies == "N/A" %}{{ item.applies }}{% else %}{{ item.applies }}{% endif %}{{ item.description }}
    +
    + {% header "h2", "JavaScript" %} +

    The .s-banner component includes a controller to show and hide the banner programitically. While it is optional, at least including the functionality to close the banner is recommended.

    + + {% header "h3", "Attributes" %} +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    AttributeApplied toDescription
    data-controller="s-banner"Controller elementWires up the element to the banner controller. This may be a .s-banner element or a wrapper element.
    data-s-banner-target="banner".s-banner elementWires up the element that is to be shown/hidden
    data-s-banner-remove-when-hidden="true"Controller elementOptional Removes the banner from the DOM entirely when it is hidden
    +
    + {% header "h3", "Events" %} +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    EventElementDescription
    s-banner:showBanner targetDefault preventable Fires immediately before showing the banner. Calling .preventDefault() cancels the display of the banner.
    s-banner:shownBanner targetFires after the banner has been visually shown
    s-banner:hideBanner targetDefault preventable Fires immediately before hiding the banner. Calling .preventDefault() cancels the removal of the banner.
    s-banner:hiddenBanner targetFires after the banner has been visually hidden
    +
    +
    + + + + + + + + + + + + + + + +
    event.detailApplicable eventsDescription
    dispatchers-banner:*Contains the Element that initiated the event. For instance, the button clicked to show, the element clicked outside the banner that caused it to hide, etc.
    +
    + {% header "h3", "Helpers" %} +
    + + + + + + + + + + + + + + + + + + + + +
    FunctionParametersDescription
    Stacks.showBanner + element: the element the data-controller="s-banner" attribute is on

    +
    Helper to manually show an s-banner element via external JS
    Stacks.hideBanner + element: the element the data-controller="s-banner" attribute is on

    +
    Helper to manually hide an s-banner element via external JS
    +
    + + {% header "h2", "Examples" %} +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    + + +
    +
    +
    +
    + + +
    +
    + + +
    +
    +
    + + {% header "h3", "Base" %} +
    +{% highlight html %} + + +{% endhighlight %} +
    + {% bannerExample "" %} + {% bannerExample "", "true", "mt8" %} +
    +
    + + {% header "h3", "Info" %} +
    +{% highlight html %} + + +{% endhighlight %} +
    + {% bannerExample "info" %} + {% bannerExample "info", "true", "mt8" %} +
    +
    + + {% header "h3", "Success" %} +
    +{% highlight html %} + + +{% endhighlight %} +
    + {% bannerExample "success" %} + {% bannerExample "success", "true", "mt8" %} +
    +
    + + {% header "h3", "Warning" %} +
    +{% highlight html %} + + +{% endhighlight %} +
    + {% bannerExample "warning" %} + {% bannerExample "warning", "true", "mt8" %} +
    +
    + + {% header "h3", "Danger" %} +
    + {% highlight html %} + + + {% endhighlight %} +
    + {% bannerExample "danger" %} + {% bannerExample "danger", "true", "mt8" %} +
    +
    + + {% header "h2", "JavaScript Example" %} +
    +{% highlight html %} + +… + +{% endhighlight %} +
    + +
    +{% highlight javascript %} +document.querySelector(".js-banner-toggle").addEventListener("click", function(e) { + Stacks.showBanner(document.querySelector("#example-banner")); +}); +{% endhighlight %} +
    + +
    diff --git a/packages/stacks-docs/product/components/bling.html b/packages/stacks-docs/product/components/bling.html new file mode 100644 index 0000000000..2023cdd5ef --- /dev/null +++ b/packages/stacks-docs/product/components/bling.html @@ -0,0 +1,156 @@ +--- +layout: page +title: Bling +svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-bling--docs +description: Bling is used to indicate award type in badges, topbar, and user cards. +tags: components +--- +
    + {% header "h2", "Types" %} +

    Use the clear bling variant only when its associated color is already present in the component, such as within a colored tag badge or alongside a filled element.

    +
    +{% highlight html %} + + + + + + + + + + + + +{% endhighlight %} +
    +
    + + + + + + + + + + {% for bling in bling.types %} + {% unless bling.name == "rep" or bling.name == "activity" %} + + + + + + {% endunless %} + {% endfor %} + +
    ExampleClassDescription
    + + {{ bling.name }} bling + + +
    + .s-bling + {% if bling.name != "default" %} + .s-bling__{{ bling.modifier }} + {% endif %} +
    +
    {{ bling.descriptions.base }}
    +
    +
    +
    +
    + +
    + {% header "h2", "Filled" %} +

    Use the filled bling style to represent a specific achievement badge or to display the total count of badges a user has earned.

    +
    +{% highlight html %} + + + + + + +{% endhighlight %} +
    +
    + + + + + + + + + + {% for bling in bling.types %} + + + + + + {% endfor %} + +
    ExampleClassDescription
    + + {{ bling.name }} bling + + +
    + .s-bling + .s-bling__filled + {% if bling.name != "default" %} + .s-bling__{{ bling.modifier }} + {% endif %} +
    +
    {{ bling.descriptions.filled }}
    +
    +
    +
    +
    + +
    + {% header "h2", "Sizes" %} +

    A bling component has a default size. To change the bling’s size, apply one of the following sizing classes along with the base .s-bling class.

    +
    +{% highlight html %} + + + +{% endhighlight %} +
    +
    + + + + + + + + + + {% for size in bling.sizes %} + + + + + + {% endfor %} + +
    ExampleClassDescription
    + + {{ size }} bling + + +
    + .s-bling + {% if size != "default" %} + .s-bling__{{ size }} + {% endif %} +
    +
    A “{{ size }}” bling.
    +
    +
    +
    +
    \ No newline at end of file diff --git a/packages/stacks-docs/product/components/breadcrumbs.html b/packages/stacks-docs/product/components/breadcrumbs.html new file mode 100644 index 0000000000..a4ba1259c5 --- /dev/null +++ b/packages/stacks-docs/product/components/breadcrumbs.html @@ -0,0 +1,157 @@ +--- +layout: page +title: Breadcrumbs +figma: https://svelte.stackoverflow.design/figma/breadcrumbs +description: Breadcrumbs are used to provide context for the currently-viewed page. +tags: components +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + {% for item in breadcrumbs.classes %} + + + + + + {% endfor %} + +
    ClassParentDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    +
    +
    +
    + {% header "h2", "Examples" %} +

    Breadcrumbs show users where they are within a site’s hierarchy. Breadcrumbs help orient the user and allow for navigation to previous page levels. It can be appropriate to use a breadcrumb when:

    +
      +
    • The user is more than 2 levels of navigation deep
    • +
    • The current page does not have its own navigation
    • +
    • The user needs to quickly go back to the previous parent page
    • +
    +

    Breadcrumbs should be the first page element—placed directly above the page’s title. The page the user is on should not appear in the breadcrumb trail, since that indicator is satisfied by the title of the page itself. Additionally, the last .s-breadcrumb--item shouldn’t include the divider.

    + +

    It is not appropriate to use Breadcrumbs when:

    +
      +
    • There is only one level of navigation.
    • +
    • There isn’t a clear navigation path or the page is orphaned.
    • +
    + + {% header "h3", "Stack Overflow" %} +
    +{% highlight html %} + +{% endhighlight %} +
    + +

    What types of questions should I avoid asking?

    +
    +
    + + {% header "h3", "Stack Exchange" %} +
    +{% highlight html %} + +{% endhighlight %} +
    + +

    Close votes

    +
    +
    + + {% header "h3", "Team" %} +
    +{% highlight html %} + +{% endhighlight %} +
    + +

    Payment Details

    +
    +
    +
    diff --git a/packages/stacks-docs/product/components/button-groups.html b/packages/stacks-docs/product/components/button-groups.html new file mode 100644 index 0000000000..b04f01eb37 --- /dev/null +++ b/packages/stacks-docs/product/components/button-groups.html @@ -0,0 +1,237 @@ +--- +layout: page +title: Button groups +figma: https://svelte.stackoverflow.design/figma/button-groups +description: Button groups are a collection of buttons. This component is used in our questions view, and is frequently used in conjunction with other form elements such as search fields and sorting dropdowns. If the content you’re interacting with is a simple paring down or filter of the current view, it’s appropriate to use the .s-btn-group component. Add the class .is-selected and the aria-current attribute with the appropriate value to show the currently selected button. +tags: components +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + {% for item in button-groups.classes %} + + + + + + {% endfor %} + +
    ClassApplied toDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    +
    + + {% header "h2", "Button attributes" %} + + {% for item in button-groups.button-attributes %} + {% header "h3", item.title %} + +

    {{item.description}}

    + +
    + + + + + + + + + + {% for attribute in item.attributes %} + + + + + + {% endfor %} + +
    ItemApplied toDescription
    {{ attribute.attribute }}{{ attribute.applies }}{{ attribute.description }}
    +
    + {% endfor %} +
    + +
    + {% header "h2", "Example" %} +
    +{% highlight html %} +
    + + + + + +
    +{% endhighlight %} +
    +
    + + + + + +
    +
    +
    +
    + +
    + {% header "h2", "Counts" %} +

    + Counts are used to display a numerical count inside a button group. This is good for large data sets where it’s helpful to quickly know how many items are behind each filter. +

    +
    +{% highlight html %} +
    + + + +
    +{% endhighlight %} +
    +
    + + + +
    +
    +
    +
    + +
    + {% header "h2", "Radio" %} +

    + Button groups can be implemented using radio elements with the class .s-btn--radio on the radio input element. This class assumes all buttons are styled label elements. +

    +
    +{% highlight html %} +
    + + + + + + +
    +{% endhighlight %} +
    +
    + + + + + + +
    +
    +
    +
    + +
    + {% header "h2", "Links" %} +

    + In some cases items in the button groups let users navigate between related sections of content, displaying one section at a time. + In those cases an a tag should be prefferred over the button. +

    +
    +{% highlight html %} + +{% endhighlight %} +
    + +
    +
    +
    + + diff --git a/packages/stacks-docs/product/components/buttons.html b/packages/stacks-docs/product/components/buttons.html new file mode 100644 index 0000000000..24e2a8a96e --- /dev/null +++ b/packages/stacks-docs/product/components/buttons.html @@ -0,0 +1,700 @@ +--- +layout: page +title: Buttons +svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-button--docs +figma: https://svelte.stackoverflow.design/figma/buttons +description: Buttons are user interface elements which allows users to take actions throughout the project. It is important that they have ample click space and help communicate the importance of their actions. +tags: components +--- +
    + {% header "h2", "Styles" %} +

    Stacks provides 3 different button styles:

    +
      +
    1. Base
    2. +
    3. Danger
    4. +
    5. Featured
    6. +
    7. Tonal
    8. +
    +

    Each style is explained below, detailing how and where to use these styles.

    + + {% header "h3", "Base" %} + +

    Base buttons can gain clear styling with the .s-btn__clear class.

    +
    +{% highlight html %} + + +{% endhighlight %} +
    +
    + + + + + + + + + + + + {% for btn in buttons.base %} + {% assign types = btn.classes %} + {% for class in types %} + + + + + + + + {% endfor %} + {% endfor %} + +
    TypeClassDefault StateSelected StateDisabled State
    {{ class.title }} +
    + .s-btn + {% if btn.class != nil %} + .{{ btn.class }} + {% endif %} + {% if class.class != nil %} + .{{ class.class }} + {% endif %} +
    +
    +
    +
    +
    + + {% header "h3", "Danger" %} + +

    Danger buttons are a secondary button style, used to visually communicate destructive actions such as deleting content, accounts, or canceling services.

    +
    +{% highlight html %} + + +{% endhighlight %} +
    +
    + + + + + + + + + + + + {% for btn in buttons.danger %} + {% assign types = btn.classes %} + {% for class in types %} + + + + + + + + {% endfor %} + {% endfor %} + +
    TypeClassDefault StateSelected StateDisabled State
    {{ class.title }} +
    + .s-btn + {% if btn.class != nil %} + .{{ btn.class }} + {% endif %} + {% if class.class != nil %} + .{{ class.class }} + {% endif %} +
    +
    +
    +
    +
    + + + {% header "h3", "Featured" %} +

    Featured buttons are a secondary button style, used to visually draw attention to something new or temporary, usually as part of onboarding or to announce a new feature. These should be used sparingly, and permanent placements should be avoided.

    + +
    +{% highlight html %} + + +{% endhighlight %} +
    +
    + + + + + + + + + + + + {% for btn in buttons.featured %} + {% assign types = btn.classes %} + {% for class in types %} + + + + + + + + {% endfor %} + {% endfor %} + +
    TypeClassDefault StateSelected StateDisabled State
    + {{ class.title }} + +
    + .s-btn + .s-btn__featured + {% if class.class != nil %} + .{{ class.class }} + {% endif %} +
    +
    +
    +
    +
    +
    + + {% header "h3", "Tonal" %} + +

    Tonal buttons are a secondary button style, a grayscale visual treatment. Used in layouts for the least important items or currently inactive actions.

    +
    +{% highlight html %} + + +{% endhighlight %} +
    +
    + + + + + + + + + + + + {% for btn in buttons.tonal %} + {% assign types = btn.classes %} + {% for class in types %} + + + + + + + + {% endfor %} + {% endfor %} + +
    TypeClassDefault StateSelected StateDisabled State
    + {{ class.title }} + +
    + .s-btn + {% if btn.class != nil %} + .{{ btn.class }} + {% endif %} + {% if class.class != nil %} + .{{ class.class }} + {% endif %} +
    +
    +
    +
    +
    +
    + + +
    + {% header "h2", "Anchors" %} +

    Anchors can be rendered with the .s-btn to adopt a button-like visual style for a link.

    + +
    +{% highlight html %} +Ask question +{% endhighlight %} +
    +
    + + + + + + + + + + + + {% for btn in buttons.variants %} + + + + + + + + {% endfor %} + +
    TypeClassDefault StateSelected StateDisabled State
    {{ btn.title }} +
    + .s-btn + {% if btn.variant != nil %} + .{{ btn.variant }} + {% endif %} + {% if btn.modifier != nil %} + .{{ btn.modifier }} + {% endif %} +
    +
    Ask questionAsk questionAsk question
    +
    +
    +
    +
    + +
    + {% header "h2", "Loading" %} +

    Any button can have a loading state applied by adding the .is-loading state class.

    +
    +{% highlight html %} + +{% endhighlight %} +
    +
    + + + + + + + + + + + + {% for btn in buttons.variants %} + + + + + + + + {% endfor %} + +
    TypeClassDefault StateSelected StateDisabled State
    {{ btn.title }} +
    + .s-btn + {% if btn.variant != nil %} + .{{ btn.variant }} + {% endif %} + {% if btn.modifier != nil %} + .{{ btn.modifier }} + {% endif %} + .is-loading +
    +
    +
    +
    +
    + +
    + {% header "h2", "Dropdowns" %} +

    Adding the class .s-btn__dropdown to any button style will add an appropriately-styled caret. These should be paired with a menu or popover.

    + +
    +{% highlight html %} + +{% endhighlight %} +
    +
    + + + + + + + + + + + + {% for btn in buttons.variants %} + + + + + + + + {% endfor %} + +
    TypeClassDefault StateSelected StateDisabled State
    {{ btn.title }} +
    + .s-btn + {% if btn.variant != nil %} + .{{ btn.variant }} + {% endif %} + {% if btn.modifier != nil %} + .{{ btn.modifier }} + {% endif %} + .s-btn__dropdown +
    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Badges" %} +

    Adding an .s-btn--badge to any button will add an appropriately-styled badge.

    + +
    +{% highlight html %} + +{% endhighlight %} +
    +
    + + + + + + + + + + + + {% for btn in buttons.variants %} + + + + + + + + {% endfor %} + +
    TypeClassDefault StateSelected StateDisabled State
    {{ btn.title }} +
    + .s-btn + {% if btn.variant != nil %} + .{{ btn.variant }} + {% endif %} + {% if btn.modifier != nil %} + .{{ btn.modifier }} + {% endif %} + .s-btn--badge +
    +
    + + + + + +
    +
    +
    +
    +
    + +
    + {% header "h2", "Sizes" %} +

    A button’s default font-size is determined by the @body-fs variable. To change the button’s font-size, use the following classes with .s-btn:

    + +
    + + + + + + + + + + + {% for size in buttons.sizes %} + + + + + + + {% endfor %} + +
    TypeClassSizeExample
    {{ size.size }} + {% if size.class == "N/A" %} + {{ size.class }} + {% else %} + {{ size.class }} + {% endif %} + {{ size.fs }}
    +
    +
    + +
    + {% header "h2", "Toggle buttons" %} +

    Each button class has a selected state which can be visually activated by applying the .is-selected class. When a button can switch between selected and unselected states, it is important to also annotate the button with the aria-pressed attribute for accessibility. A title attribute may also be appropriate to describe what will happen when pressing the button.

    + +
    +{% highlight html %} + + + + +{% endhighlight %} +
    +
    + + +
    +
    +
    +
    + +
    + {% header "h2", "Additional styles" %} +

    Stacks provides additional classes for cases that are a bit more rare. + + {% header "h3", "Disabled" %} +

    + + + + + + + + + + + + + + + + + +
    TypeClassDefinitionExample
    Disabled + [aria-disabled="true"] + Adds disabled styling to any element with .s-btn applied.Ask question
    +
    + + {% header "h3", "Resets" %} +
    + + + + + + + + + + + + + + + + + + + + + + + +
    TypeClassDefinitionExample
    Unset + .s-btn__unset + Removes all styling from a button and reverts focus states to browser default.
    Link + .s-btn__link + Styles a button element as though it were a link. Instead of transforming an s-btn to a link, you most likely want to style a button as a link.
    +
    + + {% header "h3", "Icons" %} +
    + + + + + + + + + + + + + + + + + +
    TypeClassDefinitionExamples
    Icon + .s-btn__icon + Adds some margin overrides that apply to an icon within a button + + +
    +
    + + {% header "h3", "Social" %} +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeClassDefinitionExamples
    Facebook + .s-btn__facebook + Styles a button consistent with Facebook’s branding + +
    Google + .s-btn__google + Styles a button consistent with Google’s branding + +
    GitHub + .s-btn__github + Styles a button consistent with GitHub’s branding + +
    +
    +
    + +
    + {% header "h2", "Ordering" %} +

    To maintain product consistency, buttons should maintain the following layout ordering:

    + + {% header "h3", "Within a row" %} +

    Most button groups should be ordered from the most important to the least important action, left to right.

    +
    +{% highlight html %} + + +{% endhighlight %} +
    +
    + + +
    +
    +
    + + {% header "h3", "Within a column" %} +

    Sometimes the layout dictates that buttons need to be stacked on top of each other. Again, these buttons should be stacked from the most important to the least important, top to bottom.

    +
    +{% highlight html %} +
    + + +
    +{% endhighlight %} +
    +
    + + +
    +
    +
    + + {% header "h3", "Within a header" %} +

    Sometimes the best place for a series of actions is in the same area as the title. In these cases, the buttons should be pulled to the right. Within this instance, the button order should be reversed with the most important action to the far right and the least important action to the far left.

    +
    +{% highlight html %} +
    +
    +

    Write your response

    + +
    + + +
    +
    +
    +{% endhighlight %} +
    +
    +

    Write your response

    + +
    + + +
    +
    +
    +
    +
    + diff --git a/packages/stacks-docs/product/components/cards.html b/packages/stacks-docs/product/components/cards.html new file mode 100644 index 0000000000..1081d9dacd --- /dev/null +++ b/packages/stacks-docs/product/components/cards.html @@ -0,0 +1,169 @@ +--- +layout: page +title: Cards +figma: https://svelte.stackoverflow.design/figma/cards +description: Cards are used to group similar concepts and tasks together to make information easier to scan, read, and act on. Cards should use a heading that sets clear expectations about the card’s purpose, paragraphs that put the most critical information first, and (optionally) calls to action on the bottom to direct user action. +tags: components +--- +
    + {% header "h2", "Base" %} +

    The base card styling applies a border and padding to the card.

    +

    Cards can be any size and it’s ok to increase the body text size for larger cards.

    +
    +{% highlight html %} +
    +

    +

    + +
    +{% endhighlight %} +
    +
    +

    Base card title

    +

    This is a description of the card’s content.

    +
    + + +
    +
    +
    +

    Base card title

    +

    This is a description of the card’s content. Sometimes the description is two or three sentences.

    +
    + + +
    +
    +
    +
    +
    + +
    + {% header "h2", "Box shadows" %} +

    Applying a .bs-* class adds a box shadow to a card. Useful when giving users the impression they can interact with the card.

    +
    +{% highlight html %} +
    +
    +
    +{% endhighlight %} +
    +
    +
    +

    Small box shadow

    +

    This adds a small box shadow.

    +
    +
    +

    Medium box shadow

    +

    This adds medium box shadow.

    +
    +
    +

    Large box shadow

    +

    This is the largest box shadow.

    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Linked cards" %} +

    The .s-card class can be applied to an <a> tag for instances where a whole card should link somewhere. If possible, linked cards should visually indication that they’re interactive (ex. including an .s-btn or .s-link somewhere).

    +

    A :hover style for border color is automatically added to all linked cards. For linked cards with a box shadow (.bs-*), adding a .h:bs-* class will apply a hover style to the box shadow as well. Increasing the .bs- size by a factor of one is usually best.

    + +
    + +
    + {% header "h2", "Muted" %} +

    When a card is disabled or considered completed, apply the muted modifier to visually dim the card.

    +
    +{% highlight html %} +
    +

    +

    +
    +{% endhighlight %} +
    +
    +
    +

    Base card title

    +

    This is a description of the card’s content.

    +
    + +

    Linked card title

    +

    This is a description of the card’s content.

    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Stacked" %} +

    First introduced for our collections feature in Teams, cards can also be stacked to imply multiple sections or items. No need to overthink it, we can just nest our cards. Note: You’ll need to compensate for the 4px of nesting on that right edge to keep things equidistant.

    +
    +{% highlight html %} +
    +
    + … +
    +
    +{% endhighlight %} +
    +
    +
    +
    +

    Community announcements

    +

    A collection of various announcements shared across the org.

    +
    +
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/components/checkbox.html b/packages/stacks-docs/product/components/checkbox.html new file mode 100644 index 0000000000..3d75c5d268 --- /dev/null +++ b/packages/stacks-docs/product/components/checkbox.html @@ -0,0 +1,511 @@ +--- +layout: page +title: Checkbox & Radio +figma: https://svelte.stackoverflow.design/figma/form-elements +description: Checkable inputs that visually allow for multiple options or true/false values. +tags: components +--- +
    + {% tip, "warning", "mb24" %} + Deprecation: the markup for checkboxes and radios has changed. Please update your markup to match the new structure detailed on this page. + {% endtip %} + {% header "h2", "Base style" %} +
    +{% highlight html %} + +
    + + +
    + + +
    + + +
    + + +
    + + +
    + +
    + + +
    +{% endhighlight %} +
    +
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + + +
    + + +
    + + +
    +
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + + +
    + + +
    + + +
    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Accessibility" %} +

    The best accessibility is semantic HTML. Most screen readers understand how to parse inputs if they’re correctly formatted. When it comes to checkboxes, there are a few things to keep in mind:

    +
      +
    • All inputs should have an id attribute.
    • +
    • Be sure to associate the checkbox/radio label by using the for attribute. The value here is the input’s id.
    • +
    • If you have a group of related checkboxes or radios, use the fieldset and legend to group them together.
    • +
    +

    For more information, please read Gov.UK’s article, "Using the fieldset and legend elements".

    +
    + +
    + {% header "h2", "Examples" %} + {% header "h3", "Vertical group" %} +
    +{% highlight html %} + +
    + Which types of fruit do you like? (Check all that apply) +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    + Which fruit do you like best? +
    + + +
    +
    + + +
    +
    + + +
    +
    +{% endhighlight %} +
    + +
    + Which types of fruit do you like? (Check all that apply) +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    + Which fruit do you like best? +
    + + +
    +
    + + +
    +
    + + +
    +
    +
    +
    + + {% header "h3", "Horizontal group" %} +
    +{% highlight html %} + +
    + Which types of fruit do you like? (Check all that apply) +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    + Which fruit do you like best? +
    + + +
    +
    + + +
    +
    + + +
    +
    +{% endhighlight %} +
    + +
    + Which types of fruit do you like? (Check all that apply) +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    + Which fruit do you like best? +
    + + +
    +
    + + +
    +
    + + +
    +
    +
    +
    + + {% header "h3", "With description copy" %} +
    +{% highlight html %} +
    + Which types of fruit do you like? (Check all that apply) +
    + + +
    +
    + + +
    +
    + + +
    +
    +{% endhighlight %} +
    + +
    + Which types of fruit do you like? (Check all that apply) +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    + Which fruit do you like best? +
    + + +
    +
    + + +
    +
    + + +
    +
    +
    +
    + + {% header "h3", "Indeterminate state" %} +

    Checkboxes can be styled by using the :indeterminate pseudo class.

    + {% tip, "", "mb32" %} + Note: The :indeterminate pseudo class can only be set via JavaScript. Use the HTMLInputElement object's indeterminate property to set the state. + {% endtip %} + +
    +{% highlight html %} +
    +
    + + +
    +
    + + +{% endhighlight %} +
    +
    +
    + + +
    +
    +
    +
    +
    + +
    + {% header "h2", "Validation states" %} +

    Checkboxes use the same validation states as inputs.

    + + {% header "h3", "Validation classes" %} +
    + + + + + + + + + + {% for item in inputs.checkbox %} + {% assign state = item.validation %} + {% for class in state %} + + + + + + {% endfor %} + {% endfor %} + +
    ClassAppliesDescription
    {{ class.class }}{{ class.applies }}{{ class.description }}
    +
    + + {% header "h3", "Validation examples" %} +
    +{% highlight html %} + +
    + Which types of fruit do you like? (Check all that apply) +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    + Which fruit do you like best? +
    + + +
    +
    + + +
    +
    + + +
    +
    +{% endhighlight %} +
    + +
    + Which types of fruit do you like? (Check all that apply) +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    + Which fruit do you like best? +
    + + +
    +
    + + +
    +
    + + +
    +
    +
    +
    +
    + + diff --git a/packages/stacks-docs/product/components/code-blocks.html b/packages/stacks-docs/product/components/code-blocks.html new file mode 100644 index 0000000000..30d99b8fef --- /dev/null +++ b/packages/stacks-docs/product/components/code-blocks.html @@ -0,0 +1,481 @@ +--- +layout: page +title: Code block +description: Stacks provides styling for code blocks with syntax highlighting provided by highlight.js. Special care was taken to make sure our light and dark themes felt like Stack Overflow while maintaining near AAA color contrasts and still being distinguishable for those with a color vision deficiency. +tags: components +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    ClassApplies toOutput
    .s-code-blockpreAdds proper styling to pre-formatted code.
    .linenums.s-code-blockAdds a line numbers column to the code block.
    .linenums:<n>.s-code-blockAdds a line numbers column to the code block starting at a number <n>.
    +
    +
    + +
    + {% header "h2", "Language examples" %} +

    The following examples are a small subset of the languages that highlight.js supports.

    + {% header "h3", "HTML" %} +
    +{% highlight html %} +
    +    …
    +
    +{% endhighlight %} +
    +{% highlight html %} +
    + +
    + +
    +
    +{% endhighlight %} +
    +
    + + {% header "h3", "JavaScript" %} +
    +{% highlight html %} +
    +    …
    +
    +{% endhighlight %} +
    +{% highlight javascript %} +import React, { Component } from 'react' +import { IP } from '../constants/IP' +import { withAuth0 } from '@auth0/auth0-react'; + +class AddATournament extends Component { + componentDidMount() { + this.myNewListOfAllTournamentsWithAuth() + } +} + +export default withAuth0(AddATournament); +{% endhighlight %} +
    +
    + + {% header "h3", "CSS" %} +
    +{% highlight html %} +
    +    …
    +
    +{% endhighlight %} +
    +{% highlight css %} +.s-input, +.s-textarea { + -webkit-appearance: none; + width: 100%; + margin: 0; + padding: 0.6em 0.7em; + border: 1px solid var(--bc-darker); + border-radius: 3px; + background-color: var(--white); + color: var(--fc-dark); + font-size: 13px; + font-family: inherit; + line-height: 1.15384615; + scrollbar-color: var(--scrollbar) transparent; +} +@supports (-webkit-overflow-scrolling: touch) { + .s-input, + .s-textarea { + font-size: 16px; + padding: 0.36em 0.55em; + } + .s-input::-webkit-input-placeholder, + .s-textarea::-webkit-input-placeholder { + line-height: normal !important; + } +} +{% endhighlight %} +
    +
    + + {% header "h3", "Java" %} +
    +{% highlight html %} +
    +    …
    +
    +{% endhighlight %} +
    +{% highlight java %} +package l2f.gameserver.model; + +public abstract strictfp class L2Char extends L2Object { + public static final Short ERROR = 0x0001; + + public void moveTo(int x, int y, int z) { + _ai = null; + log("Should not be called"); + if (1 > 5) { // what? + return; + } + } +} +{% endhighlight %} +
    +
    + + {% header "h3", "Ruby" %} +
    +{% highlight html %} +
    +    …
    +
    +{% endhighlight %} +
    +{% highlight ruby %} +# The Greeter class +class Greeter + def initialize(name) + @name = name.capitalize + end + + def salute + puts "Hello #{@name}!" + end +end + +g = Greeter.new("world") +g.salute +{% endhighlight %} +
    +
    + + {% header "h3", "Python" %} +
    +{% highlight html %} +
    +    …
    +
    +{% endhighlight %} +
    +{% highlight python %} +def all_indices(value, qlist): + indices = [] + idx = -1 + while True: + try: + idx = qlist.index(value, idx+1) + indices.append(idx) + except ValueError: + break + return indices + +all_indices("foo", ["foo","bar","baz","foo"]) +{% endhighlight %} +
    +
    + + {% header "h3", "Objective-C" %} +
    +{% highlight html %} +
    +    …
    +
    +{% endhighlight %} +
    +{% highlight objectivec %} +#import +#import "Dependency.h" + +@protocol WorldDataSource +@optional +- (NSString*)worldName; +@required +- (BOOL)allowsToLive; +@end + +@property (nonatomic, readonly) NSString *title; +- (IBAction) show; +@end + +- (UITextField *) userName { + UITextField *retval = nil; + @synchronized(self) { + retval = [[userName retain] autorelease]; + } + return retval; +} + +- (void) setUserName:(UITextField *)userName_ { + @synchronized(self) { + [userName_ retain]; + [userName release]; + userName = userName_; + } +} +{% endhighlight %} +
    +
    + + {% header "h3", "Swift" %} +
    +{% highlight html %} +
    +    …
    +
    +{% endhighlight %} +
    +{% highlight swift %} +import Foundation + +@objc class Person: Entity { + var name: String! + var age: Int! + + init(name: String, age: Int) { + /* /* ... */ */ + } + + // Return a descriptive string for this person + func description(offset: Int = 0) -> String { + return "\(name) is \(age + offset) years old" + } +} +{% endhighlight %} +
    +
    + + {% header "h3", "Less" %} +
    +{% highlight html %} +
    +    …
    +
    +{% endhighlight %} +
    +{% highlight less %} +@import "fruits"; + +@rhythm: 1.5em; + +@media screen and (min-resolution: 2dppx) { + body {font-size: 125%} +} + +section > .foo + #bar:hover [href*="less"] { + margin: @rhythm 0 0 @rhythm; + padding: calc(5% + 20px); + background: #f00ba7 url(http://placehold.alpha-centauri/42.png) no-repeat; + background-image: linear-gradient(-135deg, wheat, fuchsia) !important ; + background-blend-mode: multiply; +} + +@font-face { + font-family: /* ? */ 'Omega'; + src: url('../fonts/omega-webfont.woff?v=2.0.2'); +} + +.icon-baz::before { + display: inline-block; + font-family: "Omega", Alpha, sans-serif; + content: "\f085"; + color: rgba(98, 76 /* or 54 */, 231, .75); +} +{% endhighlight %} +
    +
    + + {% header "h3", "Json" %} +
    +{% highlight html %} +
    +    …
    +
    +{% endhighlight %} +
    +{% highlight json %} +[ + { + "title": "apples", + "count": [12000, 20000], + "description": {"text": "...", "sensitive": false} + }, + { + "title": "oranges", + "count": [17500, null], + "description": {"text": "...", "sensitive": false} + } +] +{% endhighlight %} +
    +
    + + {% header "h3", "C Sharp" %} +
    +{% highlight html %} +
    +    …
    +
    +{% endhighlight %} +
    +{% highlight csharp %} +using System.IO.Compression; + +#pragma warning disable 414, 3021 + +namespace MyApplication +{ + [Obsolete("...")] + class Program : IInterface + { + public static List JustDoIt(int count) + { + Console.WriteLine($"Hello {Name}!"); + return new List(new int[] { 1, 2, 3 }) + } + } +} +{% endhighlight %} +
    +
    + + {% header "h3", "SQL" %} +
    +{% highlight html %} +
    +    …
    +
    +{% endhighlight %} +
    +{% highlight sql %} +CREATE TABLE "topic" ( + "id" serial NOT NULL PRIMARY KEY, + "forum_id" integer NOT NULL, + "subject" varchar(255) NOT NULL +); +ALTER TABLE "topic" +ADD CONSTRAINT forum_id FOREIGN KEY ("forum_id") +REFERENCES "forum" ("id"); + +-- Initials +insert into "topic" ("forum_id", "subject") +values (2, 'D''artagnian'); +{% endhighlight %} +
    +
    + + {% header "h3", "Diff" %} +
    +{% highlight html %} +
    +    …
    +
    +{% endhighlight %} +
    +{% highlight diff %} +Index: languages/ini.js +=================================================================== +--- languages/ini.js (revision 199) ++++ languages/ini.js (revision 200) +@@ -1,8 +1,7 @@ + hljs.LANGUAGES.ini = + { + case_insensitive: true, +- defaultMode: +- { ++ defaultMode: { + contains: ['comment', 'title', 'setting'], + illegal: '[^\\s]' + }, + +*** /path/to/original timestamp +--- /path/to/new timestamp +*************** +*** 1,3 **** +--- 1,9 ---- ++ This is an important ++ notice! It should ++ therefore be located at ++ the beginning of this ++ document! + +! compress the size of the +! changes. + + It is important to spell +{% endhighlight %} +
    +
    +
    + +
    + {% header "h2", "Line numbers" %} +

    Add .linenums to include line numbers on a code block.

    + {% header "h3", "Default" %} +
    +{% highlight html %} +
    +    …
    +
    +{% endhighlight %} +
    +{% highlight html %} +linenums
    + +
    + +
    +
    +{% endhighlight %} +
    +
    + + {% header "h3", "Offset" %} +

    Append a number preceeded by : to .linenums to offset the start of the line numbers.

    +
    +{% highlight html %} +
    +    …
    +
    +{% endhighlight %} +
    +{% highlight json %} +linenums:23[ + { + "title": "apples", + "count": [12000, 20000], + "description": {"text": "...", "sensitive": false} + }, + { + "title": "oranges", + "count": [17500, null], + "description": {"text": "...", "sensitive": false} + } +] +{% endhighlight %} +
    +
    +
    diff --git a/packages/stacks-docs/product/components/editor.html b/packages/stacks-docs/product/components/editor.html new file mode 100644 index 0000000000..4731236f0f --- /dev/null +++ b/packages/stacks-docs/product/components/editor.html @@ -0,0 +1,113 @@ +--- +layout: page +title: Editor +js: true +figma: https://svelte.stackoverflow.design/figma/editor +description: The Stacks editor adds “what you see is what you get” and Markdown capabilities to textareas. It is available as a separate Editor repository, but requires Stacks’ CSS for styling. +tags: components +--- +
    + {% header "h2", "Installation" %} +

    Because of its size, the Stacks editor is bundled independently of Stacks. You can install it a few ways:

    + + {% header "h3", "NPM" %} +

    The Stacks Editor is available as an NPM package. To make it available in your node modules, npm install @stackoverflow/stacks-editor

    + + {% header "h3", "Import via Modules or CommonJS" %} +
    +{% highlight js %} +import { StacksEditor } from "@stackoverflow/stacks-editor"; +// Don’t forget to include the styles as well +import "@stackoverflow/stacks-editor/styles.css"; + +new StacksEditor( + document.querySelector("#editor-container"), + "*Your* **markdown** here" +); +{% endhighlight %} +
    + + {% header "h3", "Import via script tag" %} +
    +{% highlight html %} + + + +
    + + + + + + + + + +{% endhighlight %} +
    +
    + + + +
    + {% header "h2", "Examples" %} + {% header "h3", "Empty" %} +
    +{% highlight html %} +
    + + +{% endhighlight %} +
    +
    +
    +
    + + {% header "h3", "Textarea content with tables enabled" %} +
    +{% highlight html %} + +
    + + +{% endhighlight %} +
    + +
    +
    +
    +
    + + diff --git a/packages/stacks-docs/product/components/empty-states.html b/packages/stacks-docs/product/components/empty-states.html new file mode 100644 index 0000000000..0ff8233f72 --- /dev/null +++ b/packages/stacks-docs/product/components/empty-states.html @@ -0,0 +1,95 @@ +--- +layout: page +title: Empty states +description: Empty states are used when there is no data to show. Ideally they orient the user by providing feedback based on the the user’s last interaction or communicate the benefits of a feature. When appropriate, they should explain the next steps the user should take and provide guidance with a clear call-to-action. +tags: components +--- +
    + {% header "h2", "No data" %} +

    + Used when a user hasn’t interacted with a feature yet. +

    + {% header "h3", "No data actionable" %} +

    + If the user can take an action to fix the situation, it's best to draw attention to it, explain next steps, and provide a call-to-action. +

    +
    +{% highlight html %} +
    + @Svg.Spot.EmptyXL.With("mb24") +

    Why is this blank? Explain it.

    + Call to action +
    +{% endhighlight %} +
    +
    + {% spot, "EmptyXL", "mb24" %} +

    We haven’t received any data yet. Have you connected your Stack Overflow account?

    + Connect my account +
    +
    +
    + {% header "h3", "No data non-actionable" %} +

    + If the user can’t take an action to fix the situation, it’s more appropriate to set expectations. +

    +
    +{% highlight html %} +
    + @Svg.Spot.EmptyXL.With("mb24") +

    Why is this blank? Explain it.

    +
    +{% endhighlight %} +
    +
    + {% spot, "EmptyXL", "mb24" %} +

    There’s no data associated with your account yet. Please check back tomorrow.

    +
    +
    +
    +
    +
    + {% header "h2", "No results" %} +

    + When someone performs an action that returns nothing, a blank state can explain what happened and help get someone back on track. +

    + {% header "h3", "No results actionable" %} +

    + If the user can take an action to fix the situation, it’s best to draw attention to it and provide a call-to-action. +

    +
    +{% highlight html %} +
    + @Svg.Spot.EmptyXL.With("mb24") +

    Why is this blank? Explain it.

    + Call to action +
    +{% endhighlight %} +
    +
    + {% spot, "EmptyXL", "mb24" %} +

    We couldn’t find any tags matching stacks-1-0-0. It might not exist yet. Would you like to create it?

    + Create this tag +
    +
    +
    + + {% header "h3", "No results non-actionable" %} +

    + If the user can’t take an action to fix the situation, it’s more appropriate to set expectations. +

    +
    +{% highlight html %} +
    + @Svg.Spot.EmptyXL.With("mb24") +

    Why is this blank? Explain it.

    +
    +{% endhighlight %} +
    +
    + {% spot, "EmptyXL", "mb24" %} +

    We couldn’t match users for Namey McUser. Try refining your search or trying something more general.

    +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/components/expandable.html b/packages/stacks-docs/product/components/expandable.html new file mode 100644 index 0000000000..de81d33f1d --- /dev/null +++ b/packages/stacks-docs/product/components/expandable.html @@ -0,0 +1,175 @@ +--- +layout: page +title: Expandable +js: true +description: An expandable, sometimes called an accordion, is an element that can be hidden / revealed with a sliding transition. +tags: components +--- +
    + {% header "h2", "Examples" %} + {% header "h3", "Basic" %} +

    From a purely visual standpoint, all you need is a container of class s-expandable and a child of class s-expandable--content. Toggle the state class is-expanded on the container to collapse / expand the content. Care must be taken to keep the collapsing functionality accessible.

    + + +
    +{% highlight html %} +
    + +
    +
    + … +
    +
    +
    +{% endhighlight %} +
    +
    + +
    +
    +

    Lorem ipsum dolor sit amet, ex iudicabit necessitatibus usu, cetero laboramus concludaturque mel no, facilisis posidonium cu cum. Pro ex senserit dissentiunt, imperdiet intellegam at sed, ex pri dicit eruditi convenire. Est harum movet gubergren ei, errem dictas evertitur ea sit, at mei oratio eligendi. Ad vis legere possit, vis ne ipsum democritum appellantur. Nullam ancillae iudicabit his ad.

    +
    +
    +

    Accusata reprimique interesset in sea, est graece dictas scriptorem ea. Consul facete mediocritatem quo et. Idque hendrerit theophrastus in vim, eum possit feugiat fastidii id. Idque invenire at quo, accusata salutandi sadipscing et qui. Eos doming adipiscing ea, eu pri debitis indoctum dissentiet. At libris labores adolescens eos, ex nec nobis aeterno.

    +
    +
    +
    + + {% header "h3", "Multiple" %} +

    It’s also possible to control the state of multiple elements from a single s-expandable-control by listing all the ids for the controlled elements in the aria-controls attribute.

    + +
    +{% highlight html %} +
    + +
    +
    + … +
    +
    + … +
    +
    + … +
    +
    +
    +{% endhighlight %} +
    +
    + +
    +
    +

    Lorem ipsum dolor sit amet, ex iudicabit necessitatibus usu, cetero laboramus concludaturque mel no, facilisis posidonium cu cum. Pro ex senserit dissentiunt, imperdiet intellegam at sed, ex pri dicit eruditi convenire. Est harum movet gubergren ei, errem dictas evertitur ea sit, at mei oratio eligendi. Ad vis legere possit, vis ne ipsum democritum appellantur. Nullam ancillae iudicabit his ad.

    +
    +
    +

    Accusata reprimique interesset in sea, est graece dictas scriptorem ea. Consul facete mediocritatem quo et. Idque hendrerit theophrastus in vim, eum possit feugiat fastidii id. Idque invenire at quo, accusata salutandi sadipscing et qui. Eos doming adipiscing ea, eu pri debitis indoctum dissentiet. At libris labores adolescens eos, ex nec nobis aeterno.

    +
    +
    +

    Aenean aliquet vitae erat sed luctus. Nullam elementum orci id leo lacinia fringilla. Quisque rutrum mauris at mi rhoncus, vel vulputate erat pellentesque. Sed blandit rhoncus sem at pulvinar. Curabitur maximus, metus a facilisis efficitur, ipsum eros faucibus quam, nec mollis lectus nunc ut diam.

    +
    +
    +
    +
    +
    +
    +
    + {% header "h2", "JavaScript" %} + +

    In the usual case in which you have a button or other clickable element that toggles the expanded state, you can use the built-in s-expandable-control functionality. See the JavaScript introduction for general information on JS in Stacks.

    + +
      +
    1. Give all desired s-expandable elements an id attribute.
    2. +
    3. Give your button an aria-controls attribute whose value is a space-separated list of all IDs in 1.
    4. +
    5. Give your button an aria-expanded attribute whose value is true or false depending on the initial state of your expandables.
    6. +
    7. Give your button a data-controller="s-expandable-control" attribute.
    8. +
    9. If your button is an element that is not focusable by default, be sure to make it keyboard-reachable with tabindex="0"
    10. +
    11. Give your button an aria-label attribute that makes it clear that this is a expanding/collapsing control, unless this is already clear from its text content
    12. +
    + +

    A common need is for one or more CSS classes to be applied to the expandable control whenever the state is toggled, e.g. to indicate a “selected” state. To achieve this, you can add the data-s-expandable-control-toggle-class attribute. The value should be a space-separated list of CSS classes. These classes will be added to the control whenever it expands the expandable, and removed whenever it collapses it.

    + +

    See the previous section for an example of all of this.

    + +

    If you are writing custom CSS to indicate the selected state of the expandable control, consider targetting [aria-controls="true"] instead of creating a new class.

    + +

    If your expandable control is a checkbox or radio button, then the visibility of the expandable will be synchronized with the radio / checkbox state:

    + +
    +{% highlight html %} +… +
    + +
    +
    + +
    +

    @Svg.FaceSmile

    +
    +
    +… +{% endhighlight %} +
    +
    + What is your mood? +
    +
    +
    + +
    +
    + +
    +

    {% icon "FaceSmile", "", "64" %}

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +

    {% icon "FaceSad", "", "64" %}

    +
    +
    +
    +
    +
    +
    +
    + + {% header "h3", "Events" %} +

    When an s-expandable-control collapses or expands an element, it will fire an event of type s-expandable-control:hide or s-expandable-control:show, respectively. This event is fired synchronously. The event’s target element is the s-expandable-control element, not the expandable itself.

    +
    diff --git a/packages/stacks-docs/product/components/inputs.html b/packages/stacks-docs/product/components/inputs.html new file mode 100644 index 0000000000..ae9c8a597a --- /dev/null +++ b/packages/stacks-docs/product/components/inputs.html @@ -0,0 +1,450 @@ +--- +layout: page +title: Inputs +svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-textinput--docs +figma: https://www.figma.com/design/do4Ug0Yws8xCfRjHe9cJfZ/Project-SHINE---Product-UI?node-id=713-24991&p=f&m=dev +description: Input elements are used to gather information from users. +tags: components +--- +
    + {% header "h2", "Base style" %} +

    Inputs are normally paired with a label, but there are times when they can be used without a label. Placeholder text should primarily be used as a content prompt and only provided when needed.

    + +
    +{% highlight html %} + +
    + +

    This will be shown only to employers and other Team members.

    + +
    + + +
    + +
    + + {% icon "Lock", "s-input-icon fc-black-400" %} +
    +
    + + +
    + +
    + + {% icon "Lock", "s-input-icon" %} +
    +
    +{% endhighlight %} +
    +
    +
    + +

    This will be shown only to employers and other Team members.

    + +
    +
    + +
    + + {% icon "Lock", "s-input-icon fc-black-400" %} +
    +
    +
    + +
    + + {% icon "Lock", "s-input-icon" %} +
    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Accessibility" %} +

    The best accessibility is semantic HTML. Most screen readers understand how to parse inputs if they're correctly formatted. When it comes to inputs, there are a few things to keep in mind:

    +
      +
    • All inputs should have an id attribute.
    • +
    • Be sure to associate the input’s label by using the for attribute. The value here is the input’s id.
    • +
    • If you have a group of related inputs, use the fieldset and legend to group them together.
    • +
    +

    For more information, please read Gov.UK's article, "Using the fieldset and legend elements".

    + + {% header "h3", "Required input fields" %} +

    Labels or instructions must be provided when content requires user input. For any input field within a form that is required for successful data submission, provide the asterisk * as a symbol and a legend advising the meaning of the symbol before the first use.

    +

    Stacks includes a special .s-required-symbol class to ensure the symbol (asterisk) is clearly visible.

    + + + + + + + + + + + + + + + + +
    ClassAppliesDefinition
    .s-required-symbolabbr element enclosing the asteriskUsed to style the asterisk indicating that a specific field is required.
    +{% highlight html %} +* +{% endhighlight %} +

    Required symbols are not necessary for areas where only a single input field is seen on the page (ex: sign up modals). For more information, see WCAG Technique H90.

    + + {% header "h3", "Required input fields example" %} +
    +{% highlight html %} +
    +

    + Ask a question +

    +

    Required fields*

    +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +{% endhighlight %} +
    +
    +

    + Ask a question +

    +

    Required fields*

    +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +
    +
    +
    + +
    + {% header "h2", "Validation states" %} +

    Validation states provides the user feedback based on their interaction (or lack of interaction) with an input. These styles are applied by applying the appropriate class to the wrapping parent container.

    + + {% header "h3", "Validation classes" %} +
    + + + + + + + + + + {% for item in inputs.input %} + {% assign state = item.validation %} + {% for class in state %} + + + + + + {% endfor %} + {% endfor %} + +
    ClassAppliesDefinition
    {{ class.class }}{{ class.applies }}{{ class.description }}
    +
    + + {% header "h3", "Validation guidance" %} +

    + In most cases, validation states shouldn’t be shown until after the user has submitted the form. There are certain exceptions where it can be appropriate to show a validation state without form submission—after a sufficient delay. For example, validating the existence of a username can occur after the user has stopped typing, or when they’ve deselected the input. +

    +

    + Once the user is presented validation states, they can be cleared as soon as the user interacts with the form field. For example, the error state for an incorrect password should be cleared as soon as the user focuses the input to re-enter their password. +

    +

    + Similarly to using for with labels, validation messages below inputs should be associated with their respective fields using the aria-describedby attribute for accessible behavior. +

    + + {% header "h3", "Validation examples" %} + {% header "h4", "Warning" %} +
    +{% highlight html %} +
    + +
    + + @Svg.Alert.With("s-input-icon") +
    +

    Caps lock is on! Having trouble entering your username?

    +
    +{% endhighlight %} +
    +
    +
    + +
    + + {% icon "Alert", "s-input-icon" %} +
    +

    Caps lock is on! Having trouble entering your username?

    +
    +
    +
    +
    + + {% header "h4", "Error" %} + {% tip, "warning", "mb24" %} +

    In addition to using the "error" state for a field, be sure to use the aria-invalid attribute to indicate to assistive technology that respective fields have failed validation.

    + {% endtip %} + +
    +{% highlight html %} +
    + +
    + + @Svg.AlertFill.With("s-input-icon") +
    +

    You must provide a username. Forgot your username?

    +
    +{% endhighlight %} +
    +
    +
    + +
    + + {% icon "AlertFill", "s-input-icon" %} +
    +

    You must provide a username. Forgot your username?

    +
    +
    +
    +
    + + {% header "h4", "Success" %} +
    +{% highlight html %} +
    + +
    + + @Svg.Checkmark.With("s-input-icon") +
    +

    That name is available! Why do we require a username?

    +
    +{% endhighlight %} +
    +
    +
    + +
    + + {% icon "Check", "s-input-icon" %} +
    +

    That name is available! Why do we require a username?

    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Icons" %} + {% header "h3", "Search" %} +

    Stacks provides helper classes to consistently style an input used for search. First, wrap your search input in an element with relative positioning. Then, and add s-input__search to the input itself. Finally, be sure to add s-input-icon and s-input-icon__search to the search icon.

    + +
    +{% highlight html %} +
    + + + @Svg.Search.With("s-input-icon s-input-icon__search") +
    +{% endhighlight %} +
    +
    + + + {% icon "Search", "s-input-icon s-input-icon__search" %} +
    +
    +
    + + {% header "h3", "Credit Card" %} +
    +{% highlight html %} +
    + + + @Svg.CreditCard.With("s-input-icon s-input-icon__creditcard") +
    +{% endhighlight %} +
    +
    + + + {% icon "CreditCard", "s-input-icon s-input-icon__creditcard" %} +
    +
    +
    +
    + +
    + {% header "h2", "Sizes" %} +
    + + + + + + + + + + + {% for item in inputs.input %} + {% assign size = item.sizes %} + {% for item in size %} + + + + + + + {% endfor %} + {% endfor %} + +
    NameSizeClassExample
    {{ item.name }}{{ item.size }}{% if item.class == "N/A" %}{{ item.class }}{% else %}.{{ item.class }}{% endif %}
    +
    +
    + +
    + {% header "h2", "Input fills" %} +

    Input fills are used to visually connect input text boxes with related content.

    + + {% header "h3", "Prepended inputs" %} +
    +{% highlight html %} +
    + +
    +
    https://
    +
    + +
    +
    +
    +{% endhighlight %} +
    +
    + +
    +
    https://
    +
    + +
    +
    +
    +
    +
    + + {% header "h3", "Appended inputs" %} +
    +{% highlight html %} +
    + +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    +{% endhighlight %} +
    +
    + +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + {% header "h2", "Nested inputs" %} +

    An input can be nested within a container that has the .s-input class applied to display styled elements as if they're within an input.

    + +
    +{% highlight html %} +
    + +
    +
    + + svelte + + +
    + +
    +
    +{% endhighlight %} +
    + +
    +
    + + svelte + + +
    + +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/components/labels.html b/packages/stacks-docs/product/components/labels.html new file mode 100644 index 0000000000..c50ec11454 --- /dev/null +++ b/packages/stacks-docs/product/components/labels.html @@ -0,0 +1,178 @@ +--- +layout: page +title: Labels +figma: https://svelte.stackoverflow.design/figma/labels +description: Labels are used to describe inputs, select menus, textareas, radio buttons, and checkboxes. +tags: components +--- +
    +

    Labels inform users what information is being asked of them. They should be written in sentence case.

    + {% tip %} + For usability reasons, if a label is connected with an input, the for="[id]" attribute should be filled in. This attribute references the input’s id="[value]" value. This makes clicking the label automatically focus the proper input. + {% endtip %} +
    +
    + {% header "h2", "Base style" %} +
    +{% highlight html %} +
    + +
    + +
    +
    +{% endhighlight %} +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    + {% header "h2", "Sizes" %} +
    + + + + + + + + + + + {% for item in inputs.label %} + {% assign size = item.sizes %} + {% for item in size %} + + + + + + + {% endfor %} + {% endfor %} + +
    NameSizeClassExample
    {{ item.name }}{{ item.size }}{% if item.class == "N/A" %}{{ item.class }}{% else %}.{{ item.class }}{% endif %}
    +
    +
    + +
    + {% header "h2", "Description copy" %} +

    When a label or input needs further explantation, text should be placed directly underneath it.

    + +
    +{% highlight html %} +
    + +

    Clear question titles are more likely to get answered.

    +
    + +
    +
    +{% endhighlight %} +
    +
    + +

    Clear question titles are more likely to get answered.

    +
    + +
    +
    +
    +
    +
    + +
    + {% header "h2", "Status" %} +

    When you need to flag labels as required or optional, use the following flags. Use the full word “Required” or “Optional” for these flags instead of using asterisks. If a majority of a form’s inputs are required, use the asterisk symbol to indicate which fields are required and include a legend. See Input Accessibility for more details.

    + + {% header "h3", "Optional" %} +
    +{% highlight html %} +
    + +
    + +
    +
    +{% endhighlight %} +
    +
    + +
    + +
    +
    +
    +
    + + {% header "h3", "Required" %} +
    +{% highlight html %} +
    + +
    + +
    +
    +{% endhighlight %} +
    +
    + +
    + +
    +
    +
    +
    + + {% header "h3", "New" %} +
    +{% highlight html %} +
    + +
    + +
    +
    +{% endhighlight %} +
    +
    + +
    + +
    +
    +
    +
    + + {% header "h3", "Beta" %} +
    +{% highlight html %} +
    + +
    + +
    +
    +{% endhighlight %} +
    +
    + +
    + +
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/components/link-previews.html b/packages/stacks-docs/product/components/link-previews.html new file mode 100644 index 0000000000..c2717f633f --- /dev/null +++ b/packages/stacks-docs/product/components/link-previews.html @@ -0,0 +1,235 @@ +--- +layout: page +title: Link previews +description: Link previews add rich previews to links included in questions and answers on Stack Overflow. They’re also known as oneboxes or link unfurls. +tags: components +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + {% for item in link-previews.classes %} + + + + + + {% endfor %} + +
    ClassParentDescription
    {{ item.class }}{{ item.parent }}{{ item.description }}
    +
    +
    +
    + {% header "h2", "Examples" %} +

    Link previews automatically appear when you pasting a link into a post, providing a glimpse of what’s been linked to. This approach has been popularized by Slack, Twitter, Facebook, etc. Link previews should be tailored to fit the content received from each third party. It might be appropriate to use atomic utility classes for further customization, but Stacks provides a few reusable patterns:

    + {% header "h3", "Base style" %} +

    Use for links whose expected body is rich text or markdown like Jira issues or Slack messages. Wherever possible, it’s best practice to support basic markdown formatting (bold, italics, line breaks, lists, etc.)

    +
    +{% highlight html %} + +{% endhighlight %} +
    + +
    +
    + + {% header "h3", "Code blocks" %} +

    Use for links whose expected body is code like code files or GitHub Gists. In these scenarios, replace s-link-preview--body class with s-link-preview--code.

    +

    Add a s-code-block class to the <pre> tag if you’d like to apply highlight.js’s syntax highlighting on Stack Exchange sites with this option enabled.

    +
    +{% highlight html %} + +{% endhighlight %} +
    + +
    +
    + + {% header "h3", "Code blocks with line numbers" %} +

    You can further configure highlight.js’s syntax highlighting to include line numbers by adding the class linenums to the prettified <pre> tag containing the code. See also Code blocks.

    +
    + + + + + + + + + + + + + + + + + +
    ClassDescription
    linenumsCount starts at line 1
    linenums:<n>Count starts at line <n>
    +
    +
    +{% highlight html %} + +{% endhighlight %} +
    + +
    +
    +
    diff --git a/packages/stacks-docs/product/components/links.html b/packages/stacks-docs/product/components/links.html new file mode 100644 index 0000000000..5b264190fd --- /dev/null +++ b/packages/stacks-docs/product/components/links.html @@ -0,0 +1,242 @@ +--- +layout: page +title: Links +svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-link--docs +description: Links are lightly styled via the a element by default. In addition, we provide .s-link and its variations. In rare situations, .s-link can be applied to n button while maintaining the look of an anchor. +tags: components +--- +
    + {% header "h2", "Single link" %} + {% header "h3", "Single link classes" %} +
    + + + + + + + + + + {% for item in links.single-links %} + + + + + + {% endfor %} + +
    ClassApplied toDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    +
    +
    +
    + {% header "h3", "Single link examples" %} +
    +{% highlight html %} +Default +Grayscale +Muted +Danger +Inherit +Underlined + +Visited +Links +{% endhighlight %} +
    +
    + Default + Grayscale + Muted + Danger + Inherit + Underlined + + Visited + Links +
    +
    +
    + + {% header "h3", "Accessibility" %} + +

    Any link with adjacent static text cannot use color alone to differentiate it as a link. If a link is next to static text and the only visual indication that it’s a link is the color of the text (often blue-400), it will require an underline in addition to the color. Reference WCAG SC 1.4.1 for more details.

    + +
    + +
    + {% header "h2", "Descendent anchors" %} + {% header "h3", "Descendent anchor classes" %} +
    + + + + + + + + + + {% for item in links.descendent-anchors %} + + + + + + {% endfor %} + +
    ClassApplied toDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    +
    + {% header "h3", "Descendent anchor examples" %} +

    Sometimes you need to give all <a> elements inside a container or component the same color, even + when it‘s impractical or even impossible to give each anchor element an s-link class (e.g. because the markup is generated from Markdown).

    +

    In this case, you can add the s-anchors class together with one of the modifiers + s-anchors__default, s-anchors__grayscale, s-anchors__muted, + s-anchors__danger, or s-anchors__inherit to the container. +

    + +
    +{% highlight html %} +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    + {% for item in links.descendent-anchors %} + {% if item.name != "base" %} +
    +

    There is a {{ item.name }} link here, , and another one.

    +
    + {% endif %} + {% endfor %} +
    +
    + +

    One additional level of nesting is supported, but even that should be exceedingly rare. More than that is not supported.

    + +
    +{% highlight html %} +
    +

    + All links in this outer box + are dangerous. +

    +
    +

    + But all links in this inner box + have the default link color. +

    +
    +
    +{% endhighlight %} +
    +
    +

    + All links in this outer box + are dangerous. +

    +
    +

    + But all links in this inner box + have the default link color. +

    +
    +
    +
    +
    + +

    An explicit s-link on an anchor overrides any s-anchors setting:

    + +
    +{% highlight html %} +
    + All links in this box are dangerous, + except for this one which uses the default color, and + this muted link. +
    +{% endhighlight %} +
    +
    + All links in this box are dangerous, + except for this one which uses the default color, and + this muted link. +
    +
    +
    +
    + +
    + {% header "h2", "Block link" %} + {% header "h3", "Block link classes" %} +
    + + + + + + + + + + {% for item in links.block-links %} + + + + + + {% endfor %} + +
    ClassApplied toDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    +
    +
    +
    + {% header "h3", "Block link examples" %} +
    +{% highlight html %} + + +{% endhighlight %} + +
    +
    +
    + {% header "h3", "Block link right/left examples" %} +
    +{% highlight html %} + + +{% endhighlight %} + +
    +
    +
    + {% header "h3", "Block link danger examples" %} + diff --git a/packages/stacks-docs/product/components/menus.html b/packages/stacks-docs/product/components/menus.html new file mode 100644 index 0000000000..a635d68894 --- /dev/null +++ b/packages/stacks-docs/product/components/menus.html @@ -0,0 +1,423 @@ +--- +layout: page +title: Menus +description: A menu offers a contextual list of actions or functions. +svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-menu--docs +figma: https://www.figma.com/design/do4Ug0Yws8xCfRjHe9cJfZ/Project-SHINE---Product-UI?node-id=610-18810 +tags: components +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + {% for item in menu.classes %} + + + + + + {% endfor %} + +
    ClassParentDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    +
    +
    +
    + {% header "h2", "Examples" %} +

    + A menu displays a list of choices temporarily, and usually represent tasks or actions. Don’t confuse menus for navigation. +

    + + {% header "h3", "Basic" %} +

    + At its most basic, a menu is a simple styled list of contextual actions. Because they’re contextual, it’s strongly recommended that a menu is contained within a popover or a card. When placed in various containers, you’ll need to either account for the padding on the container, or use negative margins on the menu component itself. +

    +
    +{% highlight html %} +
    + +
    + +
    + +
    + + +{% endhighlight %} +
    +
    +
    +
    Within a popover
    +
    + +
    +
    +
    +
    Within a card
    +
    + +
    +
    +
    +
    No container
    + +
    +
    +
    +
    + + {% header "h3", "Titles and Dividers" %} +

    + You can split up your menu by using either titles, dividers, or some combination of the two. Titles help group similar conceptual actions—in this example, we’ve grouped all sharing options. We’ve also split our destructive actions into their own section using a divider. +

    +
    +{% highlight html %} +
    + +
    +{% endhighlight %} +
    +
    + +
    +
    +
    + + {% header "h3", "Icons" %} +

    + Icons can be added to menu items to help visually distinguish actions. Include the s-menu--icon class on the icon to ensure proper spacing and alignment. +

    + + + {% header "h3", "Selected states" %} +

    + Our menus also offer selected states. +

    +
    +{% highlight html %} + + +
    + +
    + +
    + … +
    + +
    + +
    + +
    + … +
    +{% endhighlight %} +
    +
    +
    +
    Using .is-selected
    +
    + +
    +
    +
    +
    Using .s-radio
    +
    +
    + Select one +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    Using .s-checkbox
    +
    +
    + Select multiple +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    + + {% header "h3", "Radio groups" %} +

    + In the case of user management, it’s appropriate to include radio options. In this example, we’re setting a user’s role. While our examples up to this point have all been simple unordered lists, the s-menu component works on any markup including fieldset. +

    +
    +{% highlight html %} + +{% endhighlight %} +
    +
    + +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/components/modals.html b/packages/stacks-docs/product/components/modals.html new file mode 100644 index 0000000000..4824b8adfe --- /dev/null +++ b/packages/stacks-docs/product/components/modals.html @@ -0,0 +1,422 @@ +--- +layout: page +title: Modals +svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-modal--docs +js: true +figma: https://www.figma.com/design/do4Ug0Yws8xCfRjHe9cJfZ/Project-SHINE---Product-UI?node-id=610-18811&p=f&t=c9NSyJWdASb80eVC-0 +description: Modals are dialog overlays that prevent the user from interacting with the rest of the website until an action is taken or the dialog is dismissed. Modals are purposefully disruptive and should be used thoughtfully and sparingly. +tags: components +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + {% for item in modals.classes %} + + + + + + {% endfor %} + +
    ClassApplies toDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    +
    + + {% header "h2", "JavaScript" %} + {% header "h3", "Attributes" %} +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    AttributeApplied toDescription
    data-controller="s-modal"Controller elementWires up the element to the modal controller. This may be a .s-modal element or a wrapper element.
    data-s-modal-target="modal".s-modal elementWires up the element that is to be shown/hidden
    data-s-modal-target="initialFocus"Any child focusable elementOptional Designates which element to focus on modal show. If absent, defaults to the first focusable element within the modal.
    data-action="s-modal#toggle"Toggling elementWires up the element to toggle the visibility of a modal
    data-s-modal-return-element="[css selector]"Controller elementOptional Designates the element to return focus to when the modal is closed. If left unset, focus is not altered on close.
    data-s-modal-remove-when-hidden="true"Controller elementOptional Removes the modal from the DOM entirely when it is hidden
    +
    + {% header "h3", "Events" %} +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    EventElementDescription
    s-modal:showModal targetDefault preventable Fires immediately before showing the modal. Calling .preventDefault() cancels the display of the modal.
    s-modal:shownModal targetFires after the modal has been visually shown
    s-modal:hideModal targetDefault preventable Fires immediately before hiding the modal. Calling .preventDefault() cancels the removal of the modal.
    s-modal:hiddenModal targetFires after the modal has been visually hidden
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + +
    event.detailApplicable eventsDescription
    dispatchers-modal:*Contains the Element that initiated the event. For instance, the button clicked to show, the element clicked outside the modal that caused it to hide, etc.
    returnElements-modal:show, s-modal:hideContains the Element to return focus to on hide. If a value is set to this property inside an event listener, it will be updated on the controller as well.
    +
    + {% header "h3", "Helpers" %} +
    + + + + + + + + + + + + + + + + + + + + +
    FunctionParametersDescription
    Stacks.showModal + element: the element the data-controller="s-modal" attribute is on

    +
    Helper to manually show an s-modal element via external JS
    Stacks.hideModal + element: the element the data-controller="s-modal" attribute is on

    +
    Helper to manually hide an s-modal element via external JS
    +
    + + {% header "h2", "Accessibility" %} +

    + Modals are designed with accessibility in mind by default. When a modal is open, navigation with the keyboard will be constrained to only those elements within the modal. + To ensure maximum compatibility, all a tags must have href attributes and any default focusable items you don’t want focusable must have their tabindex set to -1. +

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ItemApplied toDescription
    aria-describedby="[id]".s-modalSupply the modal’s summary copy id. Assistive technologies (such as screen readers) use this to attribute to associate static text with a widget, element groups, headings, definitions, etc. (Source)
    aria-hidden="[state]".s-modalInforms assistive technologies (such as screen readers) if they should ignore the element. This should not be confused with the HTML5 hidden attribute which tells the browser to not display an element. (Source)
    aria-label="[text]".s-modal--closeLabels the element for assistive technologies (such as screen readers). (Source)
    aria-labelledby="[id]".s-modalSupply the modal’s title id here. Assistive technologies (such as screen readers) use this to attribute to catalog the document objects correctly. (Source)
    role="dialog".s-modalIdentifies dialog elements for assistive technologies (Source)
    role="document".s-modal--dialogHelps assistive technologies to switch their reading mode from the larger document to a focused dialog window. (Source)
    +
    +
    + + + + + + + + +
    + {% header "h2", "Examples" %} +
    +
    + + +
    +
    +

    You can wire up a modal along with the corresponding button by wrapping both in a s-modal controller and attaching the corresponding data-* attributes. Make sure to set data-s-modal-return-element if you want your button to refocus on close.

    +
    +{% highlight html %} +
    + + +
    +{% endhighlight %} +
    + +
    +
    +

    Alternatively, you can also use the built in helper to display a modal straight from your JS file. This is useful for the times when your modal markup can’t live next to your button or if it is generated dynamically (e.g. from an AJAX call).

    +
    +{% highlight html %} + + +{% endhighlight %} +
    + +
    +{% highlight javascript %} +document.querySelector(".js-modal-toggle").addEventListener("click", function(e) { + Stacks.showModal(document.querySelector("#modal-base")); +}); +{% endhighlight %} +
    +
    + +
    + {% header "h2", "Danger state" %} +

    Not every modal is sunshine and rainbows. Sometimes there are potentially drastic things that could happen by hitting a confirm button in a modal—such as deleting an account. In moments like this, add the .s-modal__danger class to .s-modal. Additionally, you should switch the buttons to .s-btn__danger.s-btn__filled, since the main call to action will be destructive.

    +
    +{% highlight html %} + +{% endhighlight %} +
    + +
    +
    +
    + +
    + {% header "h2", "Celebratory" %} +

    Sometimes it’s appropriate to confirm a user’s action with some confetti. You can combine our confetti background utility with some extra spacing by adding the s-modal__celebration modifier.

    +
    +{% highlight html %} + +{% endhighlight %} +
    + +
    +
    +
    + +
    + {% header "h2", "Sizes" %} +

    Most modal dialogs look good by default, but may need some combination of .ws[x] or .wmx[x] classes applied to .s-modal--dialog. Additionally, the following class is available for modals:

    +
    + + + + + + + + + + + + + + + + + +
    ClassValuePixels (13px base)Pixels (15px base)
    .s-modal__full100% - 48pxN/AN/A
    +
    +
    + + + diff --git a/packages/stacks-docs/product/components/navigation.html b/packages/stacks-docs/product/components/navigation.html new file mode 100644 index 0000000000..2096fa8704 --- /dev/null +++ b/packages/stacks-docs/product/components/navigation.html @@ -0,0 +1,933 @@ +--- +layout: page +title: Navigation +js: true +figma: https://www.figma.com/design/do4Ug0Yws8xCfRjHe9cJfZ/Project-SHINE---Product-UI?node-id=610-18812&t=5ggsDIb9OENEwDl0-1 +svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-navigation--docs +description: Our navigation component is a collection of buttons that respond gracefully to various window sizes and parent containers. +tags: components +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + {% for item in navigation.classes %} + + + + + + {% endfor %} + +
    ClassApplies toDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    +
    + + {% for item in navigation.navigation-attributes %} + {% header "h3", item.title %} + +

    {{item.description}}

    + +
    + + + + + + + + + + {% for attribute in item.attributes %} + + + + + + {% endfor %} + +
    ItemApplied toDescription
    {{ attribute.attribute }}{{ attribute.applies }}{{ attribute.description }}
    +
    + {% endfor %} +
    +
    + {% header "h2", "Horizontal" %} +

    Care should be taken to only include at most one primary and one secondary navigation per page. Using multiple navigations with the same style can cause user confusion.

    +

    Forcing a navigation to scroll is an established pattern on mobile devices, so it may be appropriate to use it in that context. Wrapping tends to make more sense on larger screens, where the user isn’t forced to scroll passed a ton of navigation chrome.

    + + {% header "h3", "Horizontal default" %} +

    Use the default size for primary page-level navigation, typically placed near the top of the page.

    +
    +{% highlight html %} + +{% endhighlight %} +
    +

    Full width

    + + +

    Wrapped

    + +
    +
    + + {% header "h3", "Icons" %} +

    Use the icon variant for a prominent, secondary horizontal navigation bar that directs users to main page sections. Limit use to one per page and do not use it for in-page filtering. Icon styles should change with the state of the item (ex: selected items use a fill icon)

    + + + + {% header "h3", "Scrolling" %} +
    +{% highlight html %} + +{% endhighlight %} + +
    + + {% header "h3", "Dropdown" %} +
    +{% highlight html %} + +{% endhighlight %} +
    + +
    +
    + + {% header "h3", "Small" %} +

    Use the small variant for on-page filtering in space-constrained areas, such as controlling small lists. Avoid using icons on the small variant.

    +
    +{% highlight html %} + +{% endhighlight %} + +
    +
    + +
    + {% header "h2", "Vertical" %} +

    Stacks also provides a vertical variation with support for section headers.

    + + {% header "h3", "Vertical default" %} +
    +{% highlight html %} + +{% endhighlight %} + +
    + + {% header "h3", "Vertical Icons" %} +

    Vertical navigation items with icons have a larger padding.

    + + + + {% header "h3", "Avatar" %} + +
    + {% highlight html %} + + {% endhighlight %} + +
    + {% header "h3", "Titles" %} + +
    + +{% header "h2", "Buttons" %} +

    This component can be used for in-page navigation patterns, using button elements in place of link. When doing so, it may be appropriate to annotate elements with role="tablist" to indicate the dynamic behavior.

    + +
    +{% highlight html %} + +{% endhighlight %} +
    + +
    +
    + +
    + {% header "h2", "Interactive tabs" %} + +

    Stacks provides a Stimulus controller for interactive tab-style navigation within a single document.

    + + {% header "h3", "Attributes" %} +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    AttributeApplied toDescription
    data-controller="s-navigation-tablist".s-navigationWires up the element to the tooltip controller.
    role="tablist".s-navigationIndicates to accessibility tools that the navigation element is a tab list.
    role="tab".s-navigation--itemIndicates to accessibility tools that the navigation item is a tab. Used by the controller to automatically connect mouse and keyboard events.
    class="s-navigation--item is-selected"Initially selected .s-navigation--item elementsProvides visual indication that the tab is selected.
    aria-selected="{true|false}".s-navigation--itemIndicates to accessibility tools which tab is selected. Used by the controller to track the selected tab.
    id="{TAB_ID}".s-navigation--itemA unique id for the tab. Will be used by the tab panel to refer back to the button via aria-labelledby="{TAB_ID}".
    aria-controls="{PANEL_ID}".s-navigation--itemA unique id for the panel element corresponding to the tab.
    tabindex="-1"Initially unselected .s-navigation--item elementsIndicates to the browser that the element should be excluded from tab navigation. When interacting with the control, arrow keys will be used to switch tabs.
    role="tabpanel"Tab panel elementsIndicates to accessibility tools that the element is a panel corresponding to a tab.
    id="{PANEL_ID}"Tab panel elementsA unique id for the panel. Used by the tab to identify the panel that will be shown when it is active, via aria-controls="{PANEL_ID}".
    aria-labelledby="{TAB_ID}"Tab panel elementsRefers to the id of the tab element that corresponds to the panel.
    class="d-none"Initially hidden tab panel elementsSuppressed display of tab panels.
    +
    + {% header "h3", "Events" %} +
    + + + + + + + + + + + + + + + + + + + + +
    EventElementDescription
    s-navigation-tablist:selectController elementDefault preventable Fires immediately before a new tab is selected. Calling .preventDefault() cancels the display of the tab and keeps the state unchanged.
    s-navigation-tablist:selectedController elementFires immediately after the new tag has been selected.
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    event.detailApplicable eventsDescription
    oldTabs-navigation-tablist:*Contains HTMLElement | null representing the previously selected tab, if one was selected. This is the element with role="tab", not the panel itself which can be found using the tab's aria-controls attribute.
    newTabs-navigation-tablist:*Contains HTMLElement representing the newly selected tab. This is the element with role="tab", not the panel itself which can be found using the tab's aria-controls attribute.
    +
    + {% header "h3", "Example" %} + +
    +{% highlight html %} + + +
    + … +
    + +
    + … +
    +{% endhighlight %} +
    + + + +
    +
    Review the following question
    +

    +
    + +
    +
    Answers
    +

    +
    + +
    +
    Potential Duplicate A
    +

    +
    + +
    +
    Potential Duplicate B
    +

    +
    +
    +
    +
    + + diff --git a/packages/stacks-docs/product/components/notices.html b/packages/stacks-docs/product/components/notices.html new file mode 100644 index 0000000000..706944964e --- /dev/null +++ b/packages/stacks-docs/product/components/notices.html @@ -0,0 +1,476 @@ +--- +layout: page +title: Notices +svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-toast--docs +figma: https://svelte.stackoverflow.design/figma/notices +description: Notices deliver System and Engagement messaging, informing the user about product or account statuses and related actions. +tags: components +--- + + + + +{% assign variants = "default, info, success, warning, danger" | split: ", " %} + + + +
    + {% header "h2", "Accessibility" %} +
    + + + + + + + + + + {% for item in notices.access %} + + + + + + {% endfor %} + +
    ItemApplied toDescription
    {{ item.item }} + {% if item.applies == "N/A" %} + {{ item.applies }} + {% else %} + {% assign class = item.applies | split: " " %} + + {% for name in class %} + {{ name }} + {% endfor %} + {% endif %} + {{ item.description }} (Source)
    +
    +
    + +
    + {% header "h2", "JavaScript" %} + {% header "h3", "Attributes" %} +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    AttributeApplied toDescription
    data-controller="s-toast"Controller elementWires up the element to the toast controller. This may be a .s-toast element or a wrapper element.
    data-s-toast-target="toast".s-toast elementWires up the element that is to be shown/hidden
    data-s-toast-target="initialFocus"Any child focusable elementOptional Designates which element to focus on toast show. If absent, defaults to the first focusable element within the toast.
    data-action="s-toast#toggle"Toggling elementWires up the element to toggle the visibility of a toast
    data-s-toast-return-element="[css selector]"Controller elementOptional Designates the element to return focus to when the toast is closed. If left unset, focus is not altered on close.
    data-s-toast-remove-when-hidden="true"Controller elementOptional Removes the toast from the DOM entirely when it is hidden
    +
    + {% header "h3", "Events" %} +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    EventElementDescription
    s-toast:showToast targetDefault preventable Fires immediately before showing the toast. Calling .preventDefault() cancels the display of the toast.
    s-toast:shownToast targetFires after the toast has been visually shown
    s-toast:hideToast targetDefault preventable Fires immediately before hiding the toast. Calling .preventDefault() cancels the removal of the toast.
    s-toast:hiddenToast targetFires after the toast has been visually hidden
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + +
    event.detailApplicable eventsDescription
    dispatchers-toast:*Contains the Element that initiated the event. For instance, the button clicked to show, the element clicked outside the toast that caused it to hide, etc.
    returnElements-toast:show, s-toast:hideContains the Element to return focus to on hide. If a value is set to this property inside an event listener, it will be updated on the controller as well.
    +
    + {% header "h3", "Helpers" %} +
    + + + + + + + + + + + + + + + + + + + + +
    FunctionParametersDescription
    Stacks.showToast + element: the element the data-controller="s-toast" attribute is on

    +
    Helper to manually show an s-toast element via external JS
    Stacks.hideToast + element: the element the data-controller="s-toast" attribute is on

    +
    Helper to manually hide an s-toast element via external JS
    +
    +
    + +
    + {% header "h2", "Visual styles" %} + {% header "h3", "Classes" %} +
    + + + + + + + + + + {% for item in notices.visual %} + + + + + + {% endfor %} + +
    ClassApplied toDescription
    {{ item.class }} + {% if item.applies == "N/A" %} + {{ item.applies }} + {% else %} + {% assign class = item.applies | split: " " %} + + {% for name in class %} + {{ name }} + {% endfor %} + {% endif %} + {{ item.description }}
    +
    + + + {% header "h3", "Filled" %} +

    Default style used to separate notices from the main content

    +
    +{% highlight html %} +
    +
    +
    + … +
    +
    +
    +{% endhighlight %} +
    +
    + {% for variant in variants %} + {% assign variantCapitalized = variant | capitalize %} + {% assign variantClass = " s-notice__" | append: variant %} + {% if variant == "default" %} + {% assign variantClass = "" %} + {% endif %} + + + {% endfor %} +
    +
    +
    + + {% header "h3", "Filled important" %} +

    Used sparingly for when an important notice needs to be noticed

    +
    +{% highlight html %} + + + + + +{% endhighlight %} +
    +
    + {% for variant in variants %} + {% assign variantCapitalized = variant | capitalize %} + {% assign variantClass = " s-notice__" | append: variant %} + {% if variant == "default" %} + {% assign variantClass = "" %} + {% endif %} + + + {% endfor %} +
    +
    +
    + + {% header "h3", "Styling child links" %} +

    We recommend using descendent anchor classes, typically .s-anchors.s-anchors__inherit.s-anchors__underlined for notices containing links generated from markdown when you cannot manually generate the inner html.

    +
    +{% highlight html %} + + +{% endhighlight %} +
    +
    + + + + + +
    +
    +
    +
    + +
    + {% header "h2", "Behaviors" %} +
    + + + + + + + + + + + {% for item in notices.behavior %} + + + + + + {% endfor %} + +
    BehaviorClassApplied toDescription
    {{ item.type }} + {{ item.class }} + {% if item.applies == "N/A" %} + {{ item.applies }} + {% else %} + {% assign class = item.applies | split: " " %} + + {% for name in class %} + {{ name }} + {% endfor %} + {% endif %} + {{ item.description }}
    +
    + + {% header "h3", "Inline" %} +

    Default behavior for notices that are inserted within the content area

    +
    +{% highlight html %} +
    +{% endhighlight %} +
    +
    +
    +

    Inline notice message style

    +
    +
    +
    +
    + + {% header "h3", "With an Icon" %} +

    Notices are often accompanied by an icon.

    +
    +{% highlight html %} +
    +
    + @Svg.Alert +
    +
    + … +
    +
    +{% endhighlight %} +
    +
    +
    + {% icon "Alert" %} +
    +
    + This question and its answers are locked because the question is off-topic but has historical significance. It is not currently accepting new answers or interactions. +
    +
    +
    +
    + + {% header "h3", "Toast" %} +

    Floating notices, but aligned to the top and center of the page and they disappear after a set time. Visibility is changed with animation by toggling between aria-hidden="true" and aria-hidden="false". When including buttons, you can apply .s-notice--btn to buttons to apply a toast-specific color.

    + + +
    +
    + +
    +
    + +
    +{% highlight html %} + +{% endhighlight %} +
    +
    + {% for variant in variants %} + {% assign variantCapitalized = variant | capitalize %} + {% assign variantClass = " s-notice__" | append: variant %} + {% if variant == "default" %} + {% assign variantClass = "" %} + {% endif %} + + + {% endfor %} +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/components/page-titles.html b/packages/stacks-docs/product/components/page-titles.html new file mode 100644 index 0000000000..177580a231 --- /dev/null +++ b/packages/stacks-docs/product/components/page-titles.html @@ -0,0 +1,145 @@ +--- +layout: page +title: Page titles +description: Page titles create consistency in the layout of similar pages, specifically the placement and appearance of titles, descriptions, actions, and breadcrumbs. +tags: components +--- + +
    + {% header "h2", "Components" %} +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    ComponentDescription
    Page titleTitle of the page. Refer to the content section of Stacks for things like word choice, naming, and capitalization.
    Description OptionalAdditional context for content and actions on the page.
    Actions OptionalFree-form area to include buttons, filters, or other HTML content.
    Breadcrumbs OptionalBreadcrumbs can be included to provide context for the currently-viewed page.
    +
    + {% header "h2", "Admin sections" %} +

    + These components should be used in the admin sections of our private Q&A products. +

    + {% header "h3", "Base Styles" %} +

    + The base style for pages that don’t need further description beyond the page title and don’t have any actions for filters. +

    +
    +{% highlight html %} +
    +

    Page title

    +
    +{% endhighlight %} +
    +
    +

    Page title

    +
    +
    +
    + {% header "h3", "Title with description" %} +

    + A summary of a page’s content. Helpful for large pages with multiple actions. +

    +
    +{% highlight html %} +
    +
    +

    Page title

    +

    +
    +
    +{% endhighlight %} +
    +
    +
    +

    Page title

    +

    Optional description de Finibus Bonorum et Malorum with an optional link.

    +
    +
    +
    +
    + {% header "h3", "Title with actions" %} +

    + When a page title includes actions, they are located at the far end of the component. This area is free-form, so we can include any markups we'd like, from single button to a d-flex of custom filters and text. +

    +
    +{% highlight html %} +
    +
    +

    Page title

    +

    +
    +
    +
    +{% endhighlight %} +
    +
    +
    +

    Page title

    +

    Optional description de Finibus Bonorum et Malorum with an optional link.

    +
    +
    +
    + + +
    +
    +
    +
    +
    + {% header "h3", "Title with breadcrumbs" %} +

    + Breadcrumbs are used to provide context for the currently-viewed page and reduce the number of actions a website visitor needs to take in order to get to a higher-level page. Breadcrumbs should not be used for single-level sections that have no logical grouping. +

    +
    +{% highlight html %} +
    +
    + +

    Page title

    +

    +
    +
    +{% endhighlight %} +
    +
    +
    + +

    Page title

    +

    Optional description de Finibus Bonorum et Malorum with an optional link.

    +
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/components/pagination.html b/packages/stacks-docs/product/components/pagination.html new file mode 100644 index 0000000000..4b24730331 --- /dev/null +++ b/packages/stacks-docs/product/components/pagination.html @@ -0,0 +1,144 @@ +--- +layout: page +title: Pagination +svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-paginationcontroller--docs +figma: https://www.figma.com/design/do4Ug0Yws8xCfRjHe9cJfZ/Project-SHINE---Product-UI?node-id=1189-2035&t=JFrmhokx3ZOeRP9b-0 +description: Pagination splits content into pages, as seen on questions, tags, users, and jobs listings. +tags: components +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + {% for item in pagination-component.classes %} + + + + + + {% endfor %} + +
    ClassApplied toDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    +
    +
    +
    + {% header "h2", "Example" %} + +
    diff --git a/packages/stacks-docs/product/components/popovers.html b/packages/stacks-docs/product/components/popovers.html new file mode 100644 index 0000000000..a50f8e86ff --- /dev/null +++ b/packages/stacks-docs/product/components/popovers.html @@ -0,0 +1,663 @@ +--- +layout: page +title: Popovers +svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-popover--docs +js: true +figma: https://www.figma.com/design/do4Ug0Yws8xCfRjHe9cJfZ/Project-SHINE---Product-UI?node-id=1617-27089&t=W4QmlFOpYoEpInDB-0 +description: Popovers are small content containers that provide a contextual overlay. They can be used as in-context feature explanations, dropdowns, or tooltips. +tags: components +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + {% for item in popovers.automatic %} + + + + + + {% endfor %} + +
    ClassApplies toDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    +
    +
    +
    + {% header "h2", "Interactive popovers" %} + +

    Stacks provides a Stimulus controller that allows you to interactively display a popover from a source element. Positioning direction are managed for you by Popper.js, a powerful popover positioning library we've added as a dependency. These popovers are automatically hidden when user click outside the popover or tap the Esc key.

    + + {% header "h3", "Interactive Attributes" %} +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    AttributeApplied toDescription
    id="{POPOVER_ID}".s-popoverA unique id that the popover’s toggling element can target. Matches the value of [aria-controls] on the toggling element.
    data-controller="s-popover"Controller elementWires up the element to the popover controller. This may be a toggling element or a wrapper element.
    data-s-popover-reference-selector="[css selector]"Controller elementOptional Designates the element to use as the popover reference. If left unset, the value defaults to the controller element.
    aria-controls="{POPOVER_ID}"Reference elementAssociates the element to the desired popover element.
    data-action="s-popover#toggle"Toggling elementWires up the element to toggle the visibility of a generic popover.
    data-s-popover-toggle-class="[class list]"Controller elementAdds an optional space-delineated list of classes to be toggled on the originating element when the popover is shown or hidden.
    data-s-popover-placement="[placement]"Controller elementDictates where to place the popover in relation to the reference element. By default, the placement value is bottom. Accepted placements are auto, top, right, bottom, left. Each placement can take an additional -start and -end variation.
    data-s-popover-auto-show="[true|false]"Controller elementOptional If true, the popover will appear immediately when the Stacks controller is first connected. This should be used in place of .is-visible for displaying popovers on load as it will prevent the popover from appearing before it has been correctly positioned.
    data-s-popover-hide-on-outside-click="[always|never|if-in-viewport|after-dismissal]"Controller elementOptional +
      +
    • If always, the popover will appear disappear when outside clicks occur.
    • +
    • If if-in-viewport, the popover will appear disappear when outside clicks occur and the popover is currently in the browser's visible viewport.
    • +
    • If never, the popover will not disappear on outside clicks and will only be dismissed through other means, e.g. data-target="s-popover#hide".
    • +
    • If after-dismissal, the popover will not disappear on outside clicks unless it has been dismissed some other way at least once.
    • +
    +

    If left unset, defaults to always.

    +
    +
    + + {% header "h3", "Interactive Events" %} +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    EventElementDescription
    s-popover:showController elementDefault preventable Fires immediately before showing and positioning the popover. This fires before the popover is first displayed to the user, and can be used to create or initialize the popover element. Calling .preventDefault() cancels the display of the popover.
    s-popover:shownController elementFires immediately after showing the popover.
    s-popover:hideController elementDefault preventable Fires immediately before hiding the popover. Calling .preventDefault() prevents the removal of the popover.
    s-popover:hiddenController elementFires immediately after hiding the popover.
    +
    +
    + + + + + + + + + + + + + + + +
    event.detailApplicable eventsDescription
    dispatchers-popover:*Contains the Element that initiated the event. For instance, the button clicked to show, the element clicked outside the popover that caused it to hide, etc.
    +
    + {% header "h3", "Examples" %} +
    +
    +
    + + + + + + +
    +
    +
    + + {% header "h4", "Default interactivity" %} +

    To enable interactive popovers, you will need to add the above attributes to the popover’s originating button. Custom positioning can be specified using the data-s-popover-placement. In the following example, we’ve chosen bottom-start. No positioning classes need to be added to your markup, only the data attributes.

    +

    To promote being able to tab to an open popover, it’s best to place the popover immediately after the toggling button in the markup as siblings.

    + +
    +{% highlight html %} + + +{% endhighlight %} +
    + + +
    +
    + + {% header "h4", "Dismissible" %} +

    In the case of new feature callouts, it may be appropriate to include an explicit dismiss button. You can add one using the styling provided by .s-popover--close.

    +

    In order for to close the popover with an explicit close button, you’ll need to add the controller to a parent as illustrated in the following example code:

    +
    + {% highlight html %} +
    + + + + +
    +{% endhighlight %} +
    +
    + +
    +

    Dismissible persistent popover presented with a close button

    +
    +
    +
    +
    + + {% header "h4", "JavaScript interaction" %} +

    There may be cases where you need to show or hide a popover via JavaScript. For example, if you need to show a popover at a specific time or if you need to hide a popover from an event outside of the controller, Stacks provides convenience methods to achieve this.

    +
    +{% highlight javascript %} +Stacks.application.register("section", class extends Stacks.StacksController { + static targets = ["help"]; + + showHelp(event) { + Stacks.showPopover(this.helpTarget); + event.stopPropagation(); + } + hideHelp(event) { + Stacks.hidePopover(this.helpTarget); + } +}); +{% endhighlight %} +
    +
    +
    +
    +

    Lorem ipsum

    +
    +
    + + +
    +
    +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et metus molestie nulla luctus sodales ac luctus justo. Aenean iaculis ac ante sit amet aliquam. Duis dolor velit, imperdiet sed mauris eu, sollicitudin egestas nisl. Ut vitae nulla eu risus iaculis semper sit amet vitae tortor. Sed convallis lacus quis libero placerat finibus. Phasellus pulvinar vel nunc eu tempor. Sed pharetra magna a felis egestas placerat. Sed imperdiet dui a sem fermentum, eget consectetur elit feugiat. Phasellus non condimentum orci. Nam id molestie elit, ut gravida metus. Vivamus vel nunc risus. Maecenas posuere sit amet tellus vel laoreet. Nulla lacus mauris, rhoncus eu laoreet quis, mattis vehicula nisl. Integer efficitur quam et nisi luctus scelerisque. Mauris efficitur lectus ac malesuada congue.

    + +
    +
    +
    + + {% header "h4", "JavaScript configuration (popovers)" %} +

    Situations may also arise where popovers need to be attached to an element after the document is rendered. For example, a button could have a contextual menu that is too expensive to serve up on every page load.

    +

    Popovers can be attached to an element after the fact using Stacks.attachPopover.

    +

    This method takes three parameters, the element to attach the popover to, the popover either as an element or an HTML string, and optional options for displaying the popover.

    + +
    +{% highlight javascript %} +Stacks.application.register("actions", class extends Stacks.StacksController { + + var loaded = false; + + async load() { + if (this.loaded) { return; } + Stacks.attachPopover(this.element, + await fetch(`/posts/{postId}/actions`), + { autoShow: true, toggleOnClick: true }); + this.loaded = true; + } +}); +{% endhighlight %} +
    + +
    +
    +
    +
    + {% header "h2", "Hover tooltips" %} + +

    When a popover is intended only for display as an on-hover tooltip and contains no interactive text, the s-tooltip controller can be used in place of s-popover. This is a separate controller that can be used alongside s-popover on a single target element.

    + + {% header "h3", "Hover attributes" %} +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    AttributeApplied toDescription
    id="{POPOVER_ID}".s-popoverA unique id that the popover’s toggling element can target. Matches the value of [aria-describedby] on the toggling element.
    data-controller="s-tooltip"Controller elementWires up the element to the tooltip controller.
    data-s-tooltip-reference-selector="[css selector]"Controller elementOptional Designates the element to use as the tooltip reference. If left unset, the value defaults to the controller element.
    aria-describedby="{POPOVER_ID}"Reference elementAssociates the element to the desired popover element.
    title="{TITLE}"Controller elementIf aria-describedby is not present or valid, and the title attribute exists, the title will be removed from the element and be used to create a popover immediately after the element. All content will be escaped and inserted as text.
    data-s-tooltip-html-title="{TITLE}"Controller elementActs the exact same as the title attribute, but inserts the raw text directly as html. If both this and the title attribute exist on the element, this attribute will be used.
    data-s-tooltip-placement="[placement]"Controller elementDictates where to place the popover in relation to the reference element. By default, the placement value is bottom. Accepted placements are auto, top, right, bottom, left. Each placement can take an additional -start and -end variation.
    +
    + {% header "h3", "Hover events" %} +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    EventElementDescription
    s-tooltip:showController elementDefault preventable Fires immediately before showing and positioning the tooltip. This fires before the tooltip is first displayed to the user, and can be used to create or initialize the tooltip element. Calling .preventDefault() cancels the display of the popover.
    s-tooltip:shownController elementFires immediately after showing the tooltip.
    s-tooltip:hideController elementDefault preventable Fires immediately before hiding the tooltip. Calling .preventDefault() prevents the removal of the tooltip.
    s-tooltip:hiddenController elementFires immediately after hiding the tooltip.
    +
    +
    + + + + + + + + + + + + + + + +
    event.detailApplicable eventsDescription
    dispatchers-tooltip:*Contains the Element that initiated the event. For instance, the element hovered over to show, etc.
    +
    + {% header "h3", "Hover examples" %} +

    If the user doesn’t need to interact with the contents of the popover, it may be appropriate to only show it on hover. This will make popovers feel like a tooltip. To do so, we provide an alternative controller, s-tooltip, that shows the tooltip only on hover.

    + + {% header "h4", "Title attribute" %} +

    In the simple case where no markup is needed in the tooltip, the popover element can be omitted and automatically generated using the title attribute.

    + +
    +{% highlight html %} + +{% endhighlight %} +
    + +
    +
    + + {% header "h4", "JavaScript configuration (tooltips)" %} +

    In cases where the tooltip needs to display simple text or HTML, the popover can be configured using JavaScript. Plain text tooltips will render characters like <, >, and & as is. HTML tooltips will render the HTML as expected.

    +
    +{% highlight javascript %} +Stacks.setTooltipText(el, + "Plain text tooltip", + { + placement: "top-start" + }); + +Stacks.setTooltipHtml(el, + "Tooltip with HTML", + { + placement: "top-end" + }); +{% endhighlight %} +
    + + +
    +
    + + {% header "h4", "Rich tooltips" %} +

    When a rich tooltip is required, a popover element can be configured in much the same way as an s-popover controller, with the most notable difference being the use of aria-describedby instead of aria-controls.

    + +
    +{% highlight html %} + + +{% endhighlight %} +
    + + +
    +
    + + {% header "h4", "Tooltips and interactive popovers" %} +

    Hover tooltips can be used alongside interactive popovers. Tooltips will no appear when the interactive popover is visible.

    + +
    +{% highlight html %} + + +{% endhighlight %} +
    + + +
    +
    +
    +
    + {% header "h2", "Manual placement" %} + {% tip, "warning", "mb32" %} + Our Stimulus popover controller handles the positioning of popovers for you. Popovers can be positioned manually for various legacy reasons, but we recommend using the s-popover controller's placement property instead. + {% endtip %} + {% header "h3", "Manual examples" %} +

    Popovers can also be positioned manually if you aren’t using the built-in JavaScript interactivity. Practically, this might look like adding something like t8 l8 to .s-popover.

    +

    By default, popovers are hidden and positioned absolutely. Adding the class .is-visible will show the popover.

    + +
    +{% highlight html %} +
    +
    + … +
    +
    +{% endhighlight %} +
    +
    +
    +

    Example popover with manual placement

    +
    +
    +
    +
    +
    + + + diff --git a/packages/stacks-docs/product/components/post-summary.html b/packages/stacks-docs/product/components/post-summary.html new file mode 100644 index 0000000000..8b1eae70b2 --- /dev/null +++ b/packages/stacks-docs/product/components/post-summary.html @@ -0,0 +1,1944 @@ +--- +layout: page +title: Post summary +svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-postsummary--docs +description: The post summary component summarizes various content and associated meta data into a highly configurable component. +tags: components +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + {% for item in post-summary.classes %} + + + + + + {% endfor %} + +
    ClassParentDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    +
    +
    +
    + {% header "h2", "Layout Examples" %} +

    Post summaries are a flexible component capable of previewing various content types—questions or articles. Post summaries are meant to be flexible, allowing for each individual piece to be removed. Let’s start with a full example of a few questions and an article interleaved.

    + + {% header "h3", "Full" %} +

    At their most complete, post summaries are presented in two columns and can contain:

    +
      +
    • Title
    • +
    • Excerpt
    • +
    • Tags & other categorization
    • +
    • Author & creation date
    • +
    • Stats & various states
    • +
    • Contextual menu
    • +
    +

    At the smallest breakpoint, the layout will switch to a single column.

    +
    +{% highlight html %} +
    +
    +
    + + … + + + votes + +
    +
    + @Svg.CheckmarkSm + + … + + + answers + +
    +
    + + … + + + views + +
    +
    +
    +
    + + @Svg… … + +
    +

    + +

    +

    +
    +
    + +
    + +
    + + + + + +
      +
    • +
    + +
    +
    + + @Svg.EllipsisVertical + + +
    +
    +{% endhighlight %} +
    +
    +
    +
    + + 95 + + + votes + +
    +
    + {% icon "CheckmarkSm" %} + + 5 + + + answers + +
    +
    + + 104k + + + views + +
    +
    +
    +

    + How to generate the JPA entity Metamodel? +

    +

    + In the spirit of type safety associated with the CriteriaQuery JPA 2.0 also has an API to support Metamodel representation of entities. +

    +
    +
    + java + hibernate + jpa + annotation-processing + metamodel +
    + +
    + + placeholder avatar + Paul Wright + + Paul Wright +
      +
    • 1350
    • +
    + +
    +
    + + {% icon "EllipsisVertical" %} + menu + +
    +
    + +
    +
    +
    + + 280 + + + votes + +
    +
    + + 4 + + + answers + +
    +
    + + 10.2k + + + views + +
    +
    + +50 +
    +
    +
    +

    + Cannot read property 'startsWith' of null in npm install +

    +

    + I am creating my first react-native app. I am attempting to install the react-native command line interface as shown here. I keep getting an error when I type the command to initiate the react-native command line +

    +
    +
    + node-js + angular + npm + javascript +
    + +
    + + placeholder avatar + Aaron Shekey + + Aaron Shekey +
      +
    • 205
    • +
    + +
    +
    + + {% icon "EllipsisVertical" %} + menu + +
    +
    + +
    +
    +
    + + 1 + + + vote + +
    +
    + + 15 + + + views + +
    +
    + + 1 + + + minute read + +
    +
    + + 1 + + + comment + +
    +
    +
    +
    + {% icon "DocumentAlt" %} How-to guide +
    +

    + How to run a product research study +

    +

    + This article aims to guide you through the steps and processes you may want to consider when running research at Stack Overflow. While there are obviously many methods, this guide will focus more interview-style research. For a full list of Product Research templates, guides, and links, see this article. +

    +
    +
    + ux-research +
    + +
    + + placeholder avatar + Mithila Fox + + Mithila Fox +
      +
    • 323
    • +
    + +
    +
    + + {% icon "EllipsisVertical" %} + menu + +
    +
    + +
    +
    +
    + + 1 + + + vote + +
    +
    + + 1 + + + answer + +
    +
    + + 7 + + + views + +
    +
    +
    +

    + + {% icon "Shield" %} + EF core 3.1 - common table for entity and owned type + +

    +

    + I’m trying to implement DDD approach in my project but realized that I have too big aggregates and trying to minimize the amount of data loaded from the database. I have an aggregate Order which +

    +
    +
    + c# + asp.net + entity-framework + domain-driven-design +
    + +
    + + placeholder avatar + dantey89 + + dantey89 +
      +
    • 1,315
    • +
    + +
    +
    + + {% icon "EllipsisVertical" %} + menu + +
    +
    +
    +
    + + {% header "h3", "Minimal" %} +

    There are compact views where it’s appropriate to reduce the amount of information within the post summary. The minimal view forces the smallest breakpoint layout in any context, stacking the meta data on top and putting everything into a single column.

    +
    +{% highlight html %} +
    +
    +
    + + … + + + votes + +
    +
    + @Svg.CheckmarkSm + + … + + + answers + +
    +
    + + … + + + views + +
    +
    +
    +

    + +

    +
    +
    + +
    + +
    + + + + + + +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    +
    + + 0 + + + votes + +
    +
    + + 0 + + + answers + +
    +
    + + 2 + + + views + +
    +
    +
    +

    + Clicking through a viewpager2? +

    +
    +
    + android + android-studio + android-viewpager2 +
    + +
    + + placeholder avatar + Callum Osborne + + Callum Osborne + +
    +
    +
    +
    +
    +
    +
    + + 0 + + + votes + +
    +
    + + 1 + + + answer + +
    +
    + + 3 + + + views + +
    +
    +
    +

    + What permissions does github_token require for releases from a github action +

    +
    +
    + github-actions +
    + +
    + + placeholder avatar + GuiFalourd + + GuiFalourd + +
    +
    +
    +
    +
    +
    +
    + + 0 + + + votes + +
    +
    + + 0 + + + answers + +
    +
    + + 5 + + + views + +
    +
    +
    +

    + Parentheses is Invalid Bash +

    +
    +
    + linux + bash + docker + shell +
    + +
    + + placeholder avatar + thatkingguy_ + + thatkingguy_ + +
    +
    +
    +
    +
    +
    + + {% header "h3", "Excerpts" %} +

    Posts can be shown with or without excerpts. Stacks also provides various size

    +
    +{% highlight html %} +… +

    +

    +

    +

    +{% endhighlight %} +
    +
    +
    +
    + + 95 + + + votes + +
    +
    + {% icon "CheckmarkSm" %} + + 5 + + + answers + +
    +
    + + 104k + + + views + +
    +
    +
    +

    + How to generate the JPA entity Metamodel? +

    +
    +
    + java + hibernate + jpa + annotation-processing + metamodel +
    + +
    + + placeholder avatar + Paul Wright + + Paul Wright +
      +
    • 1350
    • +
    + +
    +
    + + {% icon "EllipsisVertical" %} + menu + +
    +
    + +
    +
    +
    + + 95 + + + votes + +
    +
    + {% icon "CheckmarkSm" %} + + 5 + + + answers + +
    +
    + + 104k + + + views + +
    +
    +
    +

    + How to generate the JPA entity Metamodel? +

    +

    + In the spirit of type safety associated with the CriteriaQuery JPA 2.0 also has an API to support Metamodel representation of entities. + +Is anyone aware of a fully functional implementation of this API (to generate the Metamodel as opposed to creating the metamodel classes manually)? It would be awesome if someone also knows the steps for setting this up in Eclipse (I assume it's as simple as setting up an annotation processor, but you never know). +

    +
    +
    + java + hibernate + jpa + annotation-processing + metamodel +
    + +
    + + placeholder avatar + Paul Wright + + Paul Wright +
      +
    • 1350
    • +
    + +
    +
    + + {% icon "EllipsisVertical" %} + menu + +
    +
    + +
    +
    +
    + + 95 + + + votes + +
    +
    + {% icon "CheckmarkSm" %} + + 5 + + + answers + +
    +
    + + 104k + + + views + +
    +
    +
    +

    + How to generate the JPA entity Metamodel? +

    +

    + In the spirit of type safety associated with the CriteriaQuery JPA 2.0 also has an API to support Metamodel representation of entities. Is anyone aware of a fully functional implementation of this API (to generate the Metamodel as opposed to creating the metamodel classes manually)? It would be awesome if someone also knows the steps for setting this up in Eclipse (I assume it's as simple as setting up an annotation processor, but you never know). +

    +
    +
    + java + hibernate + jpa + annotation-processing + metamodel +
    + +
    + + placeholder avatar + Paul Wright + + Paul Wright +
      +
    • 1350
    • +
    + +
    +
    + + {% icon "EllipsisVertical" %} + menu + +
    +
    + +
    +
    +
    + + 95 + + + votes + +
    +
    + {% icon "CheckmarkSm" %} + + 5 + + + answers + +
    +
    + + 104k + + + views + +
    +
    +
    +

    + How to generate the JPA entity Metamodel? +

    +

    + In the spirit of type safety associated with the CriteriaQuery JPA 2.0 also has an API to support Metamodel representation of entities. Is anyone aware of a fully functional implementation of this API (to generate the Metamodel as opposed to creating the metamodel classes manually)? It would be awesome if someone also knows the steps for setting this up in Eclipse (I assume it's as simple as setting up an annotation processor, but you never know). +

    +
    +
    + java + hibernate + jpa + annotation-processing + metamodel +
    + +
    + + placeholder avatar + Paul Wright + + Paul Wright +
      +
    • 1350
    • +
    + +
    +
    + + {% icon "EllipsisVertical" %} + menu + +
    +
    + +
    +
    +
    + + 95 + + + votes + +
    +
    + {% icon "CheckmarkSm" %} + + 5 + + + answers + +
    +
    + + 104k + + + views + +
    +
    +
    +

    + How to generate the JPA entity Metamodel? +

    +

    + In the spirit of type safety associated with the CriteriaQuery JPA 2.0 also has an API to support Metamodel representation of entities. Is anyone aware of a fully functional implementation of this API (to generate the Metamodel as opposed to creating the metamodel classes manually)? It would be awesome if someone also knows the steps for setting this up in Eclipse (I assume it's as simple as setting up an annotation processor, but you never know). +

    +
    +
    + java + hibernate + jpa + annotation-processing + metamodel +
    + +
    + + placeholder avatar + Paul Wright + + Paul Wright +
      +
    • 1350
    • +
    + +
    +
    + + {% icon "EllipsisVertical" %} + menu + +
    +
    +
    +
    +
    + +
    + {% header "h2", "Answers" %} +

    Previews of answers can also be attached to the post summary as needed.

    +
    +{% highlight html %} +
    + … +
    +

    + +

    +
    +
    +
    +
    + + … + + + votes + +
    +
    + @Svg.CheckmarkSm Accepted answer +
    +
    +

    + … +

    +
    + + View answer + + +
    + + + + + + +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    +
    + + 2 + + + votes + +
    +
    + {% icon "CheckmarkSm" %} + + 2 + + + answers + +
    +
    + + 1k + + + views + +
    +
    +
    +

    + Azure API Management and Backend Web API +

    +

    + Right now, I have enabled basic authentication to the developer portal in API Management. Also, I have enabled OAuth 2.0 authentication for the back end server (user Authorization). So, if i login to the developer portal, i can see two fields - Subscription Key and Authorization. The Subscription key will be the developer's subscription to the portal and the Authorization will be the OAuth authorization which is required for the back end server. +

    +
    +
    + azure + asp.net-web-api + oauth-2.0 + azure-active-directory +
    + +
    + + placeholder avatar + karel + + karel + +
    +
    +
    +
    +
    + + 2 + + + votes + +
    +
    + {% icon "CheckmarkSm" %} Accepted answer +
    +
    +

    Subscription keys in APIM are tied to a user and product, thus if you change (or create new one) product to not require subscription (option available at creation time or in product settings) no subscription key would be needed to call any API included into such products. The downside is that all such calls would be treated by APIM as anonymous and shown in analytics as such.

    +
    + + View answer + + +
    + + placeholder avatar + Aaron Shekey + + Aaron Shekey + +
    +
    +
    +
    +
    +
    + + 2 + + + votes + +
    +
    +

    Yeah, you can do that (a bit of a hack). You have to use REST Api for that, specifically this call. For me it didn't work to edit the existing API (they key was still there), but when I've created new API, key wasn't there:

    +
    + + View answer + + +
    + + placeholder avatar + 4c74356b41 + + 4c74356b41 + +
    +
    +
    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Stats examples" %} + {% header "h3", "Answered status" %} +

    Within the stats section of the post summary, posts can have various answered states. A checkmark icon is displayed in questions that have accepted answers.

    +
      +
    • No answers
    • +
    • Has answers
    • +
    • Has accepted answers
    • +
    +
    +{% highlight html %} + +
    + + 2 + + + answers + +
    + + +
    + + 2 + + + answers + +
    + + +
    + @Svg.CheckmarkSm + + 5 + + + answers + +
    +{% endhighlight %} +
    +
    +
    +
    + + 3 + + + votes + +
    +
    + + 0 + + + answers + +
    +
    + + 32 + + + views + +
    +
    + +
    +
    + + 12 + + + votes + +
    +
    + + 2 + + + answers + +
    +
    + + 145 + + + views + +
    +
    + +
    +
    + + 95 + + + votes + +
    +
    + {% icon "CheckmarkSm" %} + + 5 + + + answers + +
    +
    + + 380 + + + votes + +
    +
    +
    +
    +
    + + {% header "h3", "Hotness" %} +

    Post stats also have various states of hotness and display in corresponding shades of orange.

    +
      +
    • Default
    • +
    • Warm
    • +
    • Hot
    • +
    • Supernova
    • +
    +
    +{% highlight html %} + +
    + + 23 + + + views + +
    + + +
    + + 1k + + + views + +
    + + +
    + + 10k + + + views + +
    + + +
    + + 100k + + + views + +
    +{% endhighlight %} +
    +
    +
    +
    + + 3 + + + votes + +
    +
    + + 0 + + + answers + +
    +
    + + 23 + + + views + +
    +
    + +
    +
    + + 28 + + + votes + +
    +
    + {% icon "CheckmarkSm" %} + + 3 + + + answers + +
    +
    + + 1k + + + views + +
    +
    + +
    +
    + + 92 + + + votes + +
    +
    + {% icon "CheckmarkSm" %} + + 10 + + + answers + +
    +
    + + 10k + + + views + +
    +
    + +
    +
    + + 126 + + + votes + +
    +
    + {% icon "CheckmarkSm" %} + + 18 + + + answers + +
    +
    + + 100k + + + views + +
    +
    +
    +
    +
    +
    + +
    + {% header "h2", "States" %} +

    Post summaries change their appearance based on being watched, ignored, or deleted. Articles can also have varying draft states.

    +
    +{% highlight html %} +
    +
    +
    + @Svg.TackSm + Pinned +
    + … +
    + … +
    + +
    + … + + … + + … +
    + +
    + … + + … + + … +
    + +
    +
    +
    + @Svg.TrashSm + Deleted +
    + … +
    + … +
    +{% endhighlight %} +
    +
    +
    +
    + {% icon "TackSm" %} + Pinned +
    +
    + + 10 + + + votes + +
    +
    + + 12 + + + views + +
    +
    + + 1 + + + minute read + +
    +
    +
    +
    + {% icon "DocumentAlt" %} Knowledge Article +
    +

    + Network graph of popular tags on Stack Overflow +

    +

    + I wanted to see how different tags related to each other. The below graph depicts associations between popular tags on our site. Description of analysis: I started looking at the 1000 most popular tags on questions in 2021. I created a list of tags cross joined by the question ID (so if a question contains tags for both Python and Numpy, it would show up in my list). I scaled up by the number of answers each question received (noting that some tag combos had 0 answers) -and then counted each distinct combination of each tag. Due to limitations in graphing, I only displayed the top ~2500 tag combinations - which accounts for tags combos that had more than 40 answers over the entire year. +

    +
    +
    + data + data-insights +
    + +
    + + placeholder avatar + Aaron Shekey + + Aaron Shekey +
      +
    • 1,025
    • +
    + +
    +
    + + {% icon "EllipsisVertical" %} + menu + +
    +
    + +
    +
    +
    + + 10 + + + votes + +
    +
    + {% icon "CheckmarkSm" %} + + 2 + + + answers + +
    +
    + + 10k + + + views + +
    +
    +
    +

    + Could not load type 'System.Web.Optimization.StyleBundle' +

    +

    + Sometimes after build and launch my MVC4 web app I got this error. It can dissapear after rebuild or not. Same issue I got after publish to Windows Azure. Does anybody know how to fix this error? +

    +
    +
    + asp + asp.net + asp.net-mvc +
    + +
    + + placeholder avatar + Nimantha + + Nimantha +
      +
    • 5,337
    • +
    + +
    +
    + + {% icon "EllipsisVertical" %} + menu + +
    +
    + +
    +
    +
    + + 3 + + + votes + +
    +
    + + 2 + + + answers + +
    +
    + + 205 + + + votes + +
    +
    +
    +

    + PHP URL Param redirects - with wildcards/regex +

    +

    + I recently found this solution for doing php url variable to header location redirects. It's so much more manageable compared to htaccess for mass redirects, however one thing I want to next work out templates, guides, and links, see this article. +

    +
    +
    + regex + php + redirect + parameters + wildcard +
    + +
    + + placeholder avatar + Jase Wolf + + Jase Wolf +
      +
    • 93
    • +
    + +
    +
    + + {% icon "EllipsisVertical" %} + menu + +
    +
    + +
    +
    +
    + {% icon "TrashSm" %} + Deleted +
    +
    + + 0 + + + votes + +
    +
    + + 0 + + + answers + +
    +
    + + 5 + + + views + +
    +
    +
    +

    + Adding authentication based on API key and API secret to APIs in Spring Boot application +

    +

    + I am working on a Spring Boot application with user authentication is based on Oauth2 2ith 2FA. Now, I would like to call the APIs in my application from the third-party client as well, say from another service. +

    +
    +
    + spring + spring-boot + authentication + spring-security + oauth-2.0 +
    + +
    + + placeholder avatar + Joy + + Joy +
      +
    • 3,622
    • +
    + +
    +
    + + {% icon "EllipsisVertical" %} + menu + +
    +
    + +
    +
    +
    + {% icon "PencilSm" %} + Draft +
    +
    + + -3 + + + votes + +
    +
    + + 541 + + + views + +
    +
    + + 4 + + + comments + +
    +
    + + 1 + + + min read + +
    +
    +
    +
    + {% icon "DocumentAlt" %} How-to guide +
    +

    + How to make sql_mode empty on Cloud SQL +

    +

    + Cloud SQL allows users to customize several flags that allow you to adjust options and configure and tune a database instance. In the case of the sql_mode flag, there are several options that are +

    +
    +
    + google-cloud-sql + sql-mode + sqlmod +
    + +
    + + placeholder avatar + gabidavila + + gabidavila +
      +
    • 874
    • +
    + +
    +
    + + {% icon "EllipsisVertical" %} + menu + +
    +
    + +
    +
    +
    + {% icon "EyeSm" %} + Review +
    +
    + + 26 + + + votes + +
    +
    + + 2k + + + views + +
    +
    + + 1 + + + comment + +
    +
    + + 1 + + + min read + +
    +
    +
    +
    + {% icon "DocumentAlt" %} How-to Guide +
    +

    + How to make sql_mode empty on Cloud SQL +

    +

    + In Android apps that use Firebase Authentication, you can always get the user who is currently signed in with code like: FirebaseAuth auth = FirebaseAuth.getInstance(); FirebaseUser user = auth.get +

    +
    +
    + firebase-realtime-database + firebase-authentication +
    + +
    + + placeholder avatar + Frank van Puffelen + + Frank van Puffelen +
      +
    • 464.3k
    • +
    + +
    +
    + + {% icon "EllipsisVertical" %} + menu + +
    +
    + +
    +
    +
    + {% icon "NotInterestedSm" %} + Closed +
    +
    + + 0 + + + votes + +
    +
    + + 12 + + + views + +
    +
    +
    +
    + {% icon "DocumentAlt" %} How-to Guide +
    +

    + How to make sql_mode empty on Cloud SQL +

    +

    + In Android apps that use Firebase Authentication, you can always get the user who is currently signed in with code like: FirebaseAuth auth = FirebaseAuth.getInstance(); FirebaseUser user = auth.get +

    +
    +
    + firebase-realtime-database + firebase-authentication +
    + +
    + + placeholder avatar + + Frank van Puffelen +
      +
    • 464.3k
    • +
    + +
    +
    + + {% icon "EllipsisVertical" %} + menu + +
    +
    + +
    +
    +
    + {% icon "ArchiveSm" %} + Archived +
    +
    + + -22 + + + votes + +
    +
    + + 1k + + + views + +
    +
    + + 5 + + + comments + +
    +
    + + 1 + + + min read + +
    +
    +
    +
    + {% icon "DocumentAlt" %} Announcement +
    +

    + Faster Cloud Storage transfers using the gcloud command-line +

    +

    + We’re pleased to announce gcloud storage, a new set of Cloud Storage commands in Cloud SDK that includes a new approach to parallelization that can accelerate both small and large data migrations. +

    +
    +
    + google-cloud-storage + gcloud + gsutil +
    + +
    + + placeholder avatar + Frank van Puffelen + + thomasmaclean +
      +
    • 165
    • +
    + +
    +
    + + {% icon "EllipsisVertical" %} + menu + +
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/components/progress-bars.html b/packages/stacks-docs/product/components/progress-bars.html new file mode 100644 index 0000000000..940230a0fc --- /dev/null +++ b/packages/stacks-docs/product/components/progress-bars.html @@ -0,0 +1,453 @@ +--- +layout: page +title: Progress bars +description: A component that visually communicates the completion of a task or operation. It shows the task’s progress and remainder. +tags: components +--- +
    + {% header "h2", "Classes and parameters" %} +

    These are the various classes and parameters used within progress bars.

    + + {% header "h3", "Classes" %} +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ClassesDescription
    .s-progressThe parent class for all progress bars.
    .s-progress--barA child element of .s-progress. It shows the user’s current progress to accomplishing a goal with a background color.
    .s-progress--labelA child element of .s-progress. It’s used to describe what progress bar is tracking.
    .s-progress__brandA modifying class applied to .s-progress, it changes the bar color from green to orange.
    .s-progress__infoA modifying class applied to .s-progress, it changes the bar color from green to blue.
    .s-progress__circularA modifying class applied to .s-progress, it changes the bar to be a percentage of a circle.
    .s-progress__privilegeA modifying class applied to .s-progress, it changes the bar color from green to a lighter green (for legibility reasons).
    .s-progress__badgeA modifying class applied to .s-progress, it is applied when a badge progress bar is desired.
    .s-progress__goldA modifying class applied to .s-progress__badge, it is used when a gold badge progress bar is desired.
    .s-progress__silverA modifying class applied to .s-progress__badge, it is used when a silver badge progress bar is desired.
    .s-progress__bronzeA modifying class applied to .s-progress__badge, it is used when a bronze badge progress bar is desired.
    .s-progress__segmentedA modifying class applied to .s-progress for a segmented progress bar
    .s-progress__steppedA modifying class applied to .s-progress for a stepped progress bar
    .s-progress--stepA child of .s-progress__stepped that’s a wrapper for each individual step
    .is-activeA modifier .s-progress__step that adds visual styling to the active step.
    .is-completedA modifier .s-progress__step that adds visual styling to a completed step.
    .s-progress--stopA child of .s-progress__step, the circle that might contain a checkmark if the step’s been completed.
    .s-progress--bar__leftA modifier of .s-progress__bar that draws a line on the left side of a step.
    .s-progress--bar__rightA modifier of .s-progress__bar that draws a line on the right side of a step.
    +
    + {% header "h3", "Parameters" %} +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterDescription
    role="progressbar"Applied to .s-progress--bar, this parameter communicates that element is displaying progress status that takes a long time or consists of several steps. (Source)
    aria-valueminApplied to .s-progress--bar, this parameter defines the minimum allowed value for the progress bar. (Source)
    aria-valuemaxApplied to .s-progress--bar, this parameter defines the maximum allowed value for the progress bar. (Source)
    aria-valuenowApplied to .s-progress--bar, this parameter defines the current value for the progress bar. (Source)
    style="width: [value]%"Applied to .s-progress--bar, this is the aria-valuenow value displayed as a percentage.
    +
    +
    + +
    + {% header "h2", "Base style" %} +

    Since most progress bars are used to show successful completion of a task, the default fill color is green.

    +
    +{% highlight html %} +
    +
    +
    +{% endhighlight %} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Fill alternates" %} +

    In addition to the standard progress bar, there is also a brand (orange) and info (blue) progress bar color variation.

    +
    +{% highlight html %} + +
    +
    +
    + + +
    +
    +
    +{% endhighlight %} +
    +
    +
    Brand
    +
    +
    +
    +
    +
    +
    Info
    +
    +
    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Circular" %} +

    In compact layouts, switching to a circular progress might be more appropriate. Our circular progress bar inherits the parent’s text color. You and your designer will need to choose an appropriate font color. You’ll also need to pass the --s-progress-value CSS variable a value percentage value in decimal form.

    + +

    By default, the circular progress bars are 32px. These dimensions can be modified by adding t-shirt sizing classes to .s-progress__circular: .s-progress__sm, .s-progress__md, and .s-progress__lg

    + +
    +{% highlight html %} +
    + + + + +
    +{% endhighlight %} +
    +
    +
    + + + + +
    + +
    + + + + +
    + +
    + + + + +
    + +
    + + + + +
    + +
    + + + + +
    +
    +
    +
    +
    + +
    + {% header "h2", "Privileges" %} +

    Taller progress bars used within Profiles to help users understand how close they are to achieving their next privilege.

    +
    +{% highlight html %} +
    +
    + @Svg.PromoteDemote + Access Review Queues +
    +
    +
    +{% endhighlight %} +
    +
    +
    +
    + {% icon "PromoteDemote" %} + Access Review Queues +
    +
    +
    +
    +
    + {% icon "AchievementsSm" %} + Trusted user +
    +
    +
    +
    +
    + {% icon "PromoteDemote" %} + Protect questions +
    +
    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Badges" %} +

    Taller progress bars used within Profiles to help users understand how close they are to achieving their next gold, silver, or bonze badge.

    +
    +{% highlight html %} + +
    +
    + gold badge +
    Electorate
    +
    +
    +
    + +
    +
    + silver badge +
    Civic Duty - 162/300
    +
    +
    +
    + +
    +
    + bronze badge +
    Proofreader - 16/100
    +
    +
    +
    +{% endhighlight %} +
    +
    +
    +
    + gold badge +
    Electorate
    +
    +
    +
    +
    +
    + silver badge +
    Civic Duty - 162/300
    +
    +
    +
    +
    +
    + bronze badge +
    Proofreader - 16/100
    +
    +
    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Segmented" %} +

    Stacks provides dividers to create segmented progress bars. The progess bar can be either independent of the dividers, or locked to them.

    + + {% tip, "warning", "mb24" %} + Note: The segmented variant has been deprecated. A similar layout can be achieved with several .s-progress-bar elements in a container. + {% endtip %} +
    +{% highlight html %} +
    +
    +
      +
    1. +
    2. +
    3. +
    4. +
    5. +
    6. +
    +
    +{% endhighlight %} +
    +
    +
    +
      +
    1. +
    2. +
    3. +
    4. +
    5. +
    6. +
    +
    +
    +
    +
    + +
    + {% header "h2", "Stepped" %} +

    If your experience has a small number of discrete steps, it might be appropriate to use a stepped progress bar.

    +
    +{% highlight html %} +
    + + + + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    + + + + +
    +
    +
    +
    +
    Payment
    +
    + +
    +
    +
    +
    Create account
    +
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/components/prose.html b/packages/stacks-docs/product/components/prose.html new file mode 100644 index 0000000000..b90afd302c --- /dev/null +++ b/packages/stacks-docs/product/components/prose.html @@ -0,0 +1,186 @@ +--- +layout: page +title: Prose +description: The prose component provides proper styling for rendered Markdown. +tags: components +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    ClassOutput
    .s-proseAdds proper styling for rendered Markdown.
    .s-prose__xsOur most compact version with the smallest font size and line height.
    .s-prose__smDecreases the base font size and line height.
    .s-prose__mdIncreases the base font size and line height.
    +
    +
    +
    + {% header "h2", "Examples" %} + {% header "h3", "Minimal" %} +

    We modified this test document from the folks at Tailwind to demonstrate and explain our design choices.

    +
    +
    + +
    +
    + + {% header "h3", "Answer" %} +

    The following is a real-world answer taken from Stack Overflow

    +
    +
    + +
    +
    + + {% header "h3", "Link preview" %} +

    Let’s see what a link preview looks like within the prose component.

    +
    +
    +
    + +
    +
    +
    + + {% header "h3", "Full Markdown spec" %} +

    This example includes the full kitchen-sink collection of everything the Markdown spec includes.

    +
    +{% highlight html %} +
    + … +
    +{% endhighlight %} +
    + +
    +
    +
    + +
    + {% header "h2", "Sizing" %} + {% header "h3", "Extra Small" %} +
    +{% highlight html %} +
    + … +
    +{% endhighlight %} +
    + +
    +
    + + {% header "h3", "Small" %} +

    In ancilliary content like comments or side-discussions, it may be appropriate to add the small variation.

    +
    +{% highlight html %} +
    + … +
    +{% endhighlight %} +
    + +
    +
    + + {% header "h3", "Default" %} +
    +{% highlight html %} +
    + … +
    +{% endhighlight %} +
    + +
    +
    + + {% header "h3", "Medium" %} +

    Depending on the context for displaying the prose component, it may be appropriate to size text up to maintain readability.

    +
    +{% highlight html %} +
    + … +
    +{% endhighlight %} +
    + +
    +
    +
    + + diff --git a/packages/stacks-docs/product/components/select.html b/packages/stacks-docs/product/components/select.html new file mode 100644 index 0000000000..9586b50e22 --- /dev/null +++ b/packages/stacks-docs/product/components/select.html @@ -0,0 +1,268 @@ +--- +layout: page +title: Select +svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-select--docs +figma: https://www.figma.com/design/do4Ug0Yws8xCfRjHe9cJfZ/Project-SHINE---Product-UI?node-id=4537-50988 +description: A selectable menu list from which a user can make a single selection. Typically they are used when there are more than four possible options. The custom select menu styling is achieved by wrapping the select tag within the .s-select class. +tags: components +--- +
    + {% header "h2", "Base style" %} +
    +{% highlight html %} +
    + +
    + +
    +
    + +
    + +
    + +
    +
    +{% endhighlight %} +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Validation states" %} +

    Validation states provides the user feedback based on their interaction (or lack of interaction) with a select menu. These styles are applied by applying the appropriate class to the wrapping parent container.

    + + {% header "h3", "Validation classes" %} +
    + + + + + + + + + + {% for item in inputs.select %} + {% assign state = item.validation %} + {% for class in state %} + + + + + + {% endfor %} + {% endfor %} + +
    ClassAppliesDefinition
    {{ class.class }}{{ class.applies }}{{ class.description }}
    +
    + + {% header "h3", "Validation examples" %} + {% header "h4", "Warning" %} +
    +{% highlight html %} +
    + +
    + + @Svg.Alert.With("s-input-icon") +
    +
    +{% endhighlight %} +
    +
    + +
    + + {% icon "Alert", "s-input-icon" %} +
    +
    +
    +
    + + {% header "h4", "Error" %} +
    +{% highlight html %} +
    + +
    + + @Svg.AlertFill.With("s-input-icon") +
    +
    +{% endhighlight %} +
    +
    + +
    + + {% icon "AlertFill", "s-input-icon" %} +
    +
    +
    +
    + + {% header "h4", "Success" %} +
    +{% highlight html %} +
    + +
    + + @Svg.Check.With("s-input-icon") +
    +
    +{% endhighlight %} +
    +
    + +
    + + {% icon "Check", "s-input-icon" %} +
    +
    +
    +
    +
    + +
    + {% header "h2", "Sizes" %} +
    + + + + + + + + + + + {% for item in inputs.select %} + {% assign size = item.sizes %} + {% for item in size %} + + + + + + + {% endfor %} + {% endfor %} + +
    NameSizeClassExample
    {{ item.name }}{{ item.size }}{% if item.class == "N/A" %}{{ item.class }}{% else %}.{{ item.class }}{% endif %}
    +
    +
    diff --git a/packages/stacks-docs/product/components/sidebar-widgets.html b/packages/stacks-docs/product/components/sidebar-widgets.html new file mode 100644 index 0000000000..f08a84b3a8 --- /dev/null +++ b/packages/stacks-docs/product/components/sidebar-widgets.html @@ -0,0 +1,675 @@ +--- +layout: page +title: Sidebar widgets +description: Sidebar widgets are flexible containers that provide a lot of patterns that are helpful in a variety of sidebar uses. +tags: components +--- + +
    + {% header "h2", "Basic style" %} + +

    + In its simplest form, the sidebar widget is an element with class .s-sidebarwidget and a child of class .s-sidebarwidget--content. + This sets up a sidebar widget with the appropriate inner spacing, and you can put into it whatever you want. +

    + +

    + By default the content is a flex container. If you require display: block instead, add the d-block class. +

    + +
    +{% highlight html %} +
    +
    +
    + … +
    + … +
    +
    +{% endhighlight %} +
    +
    +
    +
    + 13,672,187 +
    + questions +
    +
    +
    +
    + + {% header "h3", "Simple items" %} +

    Oftentimes, your widget will be a list of similar, relatively simple items. By giving the s-sidebarwidget--content a modifier class s-sidebarwidget__items, and giving the items a class of s-sidebarwidget--item, the content will be spaced out nicely.

    +

    In this case, each item is a flex container by default. If you require display: block instead, specifically add the d-block class to the s-sidebarwidget--item, or add the s-sidebarwidget__block-items modifier class to the s-sidebarwidget--content to make the change to all items.

    + +
    +{% highlight html %} +
    +
    +
    + + balpha contributed 6 edits +
    +
    + + Paweł contributed 7 edits +
    +
    + + Aaron Shekey contributed 3 edits +
    +
    +
    +{% endhighlight %} +
    +
    +
    +
    + demo avatar + balpha contributed 6 edits +
    +
    + demo avatar + Paweł contributed 7 edits +
    +
    + demo avatar + Aaron Shekey contributed 3 edits +
    +
    +
    +
    +
    + +

    + There is built-in support for table content. The table element should have the classes s-sidebarwidget--content s-sidebarwidget__items, and the tr elements should be s-sidebarwidget--item. +

    + + {% header "h3", "Complex items" %} +

    + If your items are more complex than that, whitespace may not be enough to separate them clearly. In this case instead of a single s-sidebarwidget--content element with multile items, use multiple s-sidebarwidget--content elements, which will be separated by subtle divider lines. +

    + +
    +{% highlight html %} +
    +
    + +
    + balpha
    + contributed 6 edits
    + joined 8 months ago +
    +
    +
    + +
    + Paweł
    + contributed 7 edits
    + joined 1 year 10 months ago +
    +
    +
    + +
    + Aaron Shekey
    + contributed 3 edits
    + joined 5 months ago +
    +
    +
    +{% endhighlight %} +
    +
    +
    + demo avatar +
    + balpha
    + contributed 6 edits
    + joined 8 months ago +
    +
    +
    + demo avatar +
    + Paweł
    + contributed 7 edits
    + joined 1 year 10 months ago +
    +
    +
    + demo avatar +
    + Aaron Shekey
    + contributed 3 edits
    + joined 5 months ago +
    +
    +
    +
    +
    + + {% header "h3", "Headers" %} +

    + Besides s-sidebarwidget--content, the other possible child class is s-sidebarwidget--header, which unsurprisingly creates a header. Headers can be used both as a title for the widget, as well as to create several sections inside the widget. +

    + + {% tip, "warning", "mb32" %} + The examples of s-sidebarwidget--header are shown shown added to h2 elements in examples, but the appropriate heading level may differ depending on context. Please use the appropriate heading level for the context to ensure heading levels only increase by 1. + {% endtip %} + +
    +{% highlight html %} +
    +

    + Stats +

    + + + + + + + + + + + + + + + +
    asked4 years, 4 months ago
    viewed7,437 times
    active2 months ago
    +
    +{% endhighlight %} +
    +
    + + + + + + + + + + + + + + + + +
    asked4 years, 4 months ago
    viewed7,437 times
    active2 months ago
    +
    +
    +
    + +

    + The s-sidebarwidget__small-bold-text modifier is available for headers to modify the text appearance. +

    + +
    +{% highlight html %} +
    +

    + Stats +

    + + + + + +
    created9 years, 1 month ago
    +

    + Recent Hot Answers +

    + +
    +{% endhighlight %} +
    +
    + + + + + + + + + + + + + + + + + + +
    created9 years, 1 month ago
    viewed88,020 times
    active3 days ago
    editors164
    + + +
    +
    +
    +
    + +
    + {% header "h2", "Alternative colors" %} + +

    + Three modifier classes are available for changing the background color of an s-sidebarwidget: s-sidebarwidget__yellow, s-sidebarwidget__blue, + and s-sidebarwidget__green. +

    + +
    +{% highlight html %} +
    +
    +
    +{% endhighlight %} +
    +
    + + +
    +
    + + +
    + Visibility: Public + Update privacy +
    +
    + +
    +
    + Your Developer Story is searchable by employers. +
    +
    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Navigation" %} +

    + A common use for sidebar widgets is as a navigation block or table of contents, including a highlight of the page that the user is currently looking at. +

    +

    + The recommended pattern, as shown in the example below, is to make the s-sidebarwidget a nav element, and for each group of links to create a ul with the classes s-sidebarwidget--content s-sidebarwidget__items, within which each li is of class s-sidebarwidget--item. +

    +

    + The currently active navigation item should have the aria-current attribute set to "page" (if it is a direct link to the very page that the user is looking at) or "true" (in all other cases, e.g. if it is a link to a page that is conceptually a parent or the current page). This aria-current attribute should be placed on the a element. +

    + +
    +{% highlight html %} + +{% endhighlight %} +
    + +
    +
    + + {% header "h3", "Second-level navigation" %} +

    + If you have a second level of navigation, you can add a ul of class -subnav to the top-level item. Highlighting the currently active navigation is a little more constrained in this case: +

    +

    + If the currently active top-level element has a subnavigation, the top-level aria-current must be on the a, not the li. +

    +

    + The currently active second-level element must have its aria-current on the li, not the a. +

    + + +
    + +
    + {% header "h2", "Header actions" %} +

    + There is often a need for a header to contain a link or link-like clickable that refers to the whole widget or to the section that this header starts. We call this an “action link”, and it’s created by adding the class s-sidebarwidget--action. +

    +

    + This link must come before the header text, otherwise it will not be placed correctly should the header ever wrap to multiple lines. +

    + +
    +{% highlight html %} +
    +

    + Watched Tags + + Edit + +

    +
    + +
    +
    +{% endhighlight %} +
    +
    +
    + +
    + +
    + + +
    + +
    + + + + + + + + + + + + +
    64remote jobs
    238 + jobs in Berlin, Deutschland (within 20 km) +
    +
    +
    +
    +
    +
    + +
    + {% header "h2", "Accordions" %} +

    + In order to create an accordion, i.e. to make part of the sidebar widget expandable / collapsible, you can make use of the s-expandable component. +

    + +

    The s-sidebarwidget-header element that controls the accordion needs a modifier class of s-sidebarwidget__expanding-control in order to display the expander arrow. Beyond that, it needs all the attributes as described for the controlling button in the expandable documentation.

    + +

    The (one or more) content elements that are meant to be collapsed must be wrapped in the s-expandable element; inside this wrapper element there is the s-expandable--content. This can be the same element as the s-sidebarwidget--content element (if there’s only one content element that is meant to be collapsed), or it can be an additional wrapper element around the content element(s).

    + +
    +{% highlight html %} +
    +

    + 2 Recent Searches + + Clear + +

    +
    +
    + + + + + + + + + +
    + remote jobs +
    + +
    +
    +
    +
    +{% endhighlight %} +
    +
    + +
    + +
    + +
    +
    +
    +
    + You have no favorite jobs +
    +
    +
    +
    +
    +
    +
    +
    + + diff --git a/packages/stacks-docs/product/components/skeleton.html b/packages/stacks-docs/product/components/skeleton.html new file mode 100644 index 0000000000..520117f0cc --- /dev/null +++ b/packages/stacks-docs/product/components/skeleton.html @@ -0,0 +1,70 @@ +--- +layout: page +title: Skeleton +svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-skeleton--docs +description: A skeleton component is used to indicate that a large block of content, such as an AI responses or post summary, is loading. +tags: components +--- + +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + {% for item in skeleton.skeleton %} + + + + + + {% endfor %} + +
    ClassApplied toDescription
    {{ item.class }}{% if item.applies == "N/A" %}{{ item.applies }}{% else %}{{ item.applies }}{% endif %}{{ item.description }}
    +
    +
    + +
    + {% header "h2", "Examples" %} + {% header "h3", "Base style" %} +

    The default skeleton should be used when loading large blocks will render multiple rows of content.

    +
    +{% highlight html %} +
    +
    Loading…
    +
    +{% endhighlight %} +
    +
    +
    Loading…
    +
    +
    +
    + + {% header "h3", "AI" %} +

    The ai variant of the skeleton should be used when loading AI responses.

    +
    +{% highlight html %} +
    +
    Loading…
    +
    +{% endhighlight %} +
    +
    +
    Loading…
    +
    +
    +
    +
    + +
    + {% header "h2", "Accessibility" %} +

    For accessibility, it’s important to add fallback loading text that is visible to screen readers. Additionally, you should add aria-busy="true" to the component that triggered the loading state while the skeleton is shown.

    +
    + diff --git a/packages/stacks-docs/product/components/spinner.html b/packages/stacks-docs/product/components/spinner.html new file mode 100644 index 0000000000..6f5d6d343a --- /dev/null +++ b/packages/stacks-docs/product/components/spinner.html @@ -0,0 +1,91 @@ +--- +layout: page +title: Spinner +svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-spinner--docs +description: A loading spinner is used for indicating a loading state of a page or section. It is colored according to the currently applying font color. +tags: components +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + {% for item in spinner.spinner %} + + + + + + {% endfor %} + +
    ClassApplied toDescription
    {{ item.class }}{% if item.applies == "N/A" %}{{ item.applies }}{% else %}{{ item.applies }}{% endif %}{{ item.description }}
    +
    +
    +
    + {% header "h2", "Examples" %} +

    The spinner’s colors are based on the font color of the element, which will usually be inherited from its parent. If you need to apply a color override, the font color classes can provide themability. In most situations, a black and white spinner based on the default font color will be appropriate.

    +

    For accessibility, it’s important to add fallback loading text that is visible to screen readers. Additionally, you should add aria-busy="true" to the component that triggered the loading state while the spinner is shown.

    +
    +{% highlight html %} +
    +
    Loading…
    +
    +
    +
    Loading…
    +
    +
    +
    Loading…
    +
    +
    +
    Loading…
    +
    +
    +
    Loading…
    +
    +
    + Loading… +
    +{% endhighlight %} +
    +
    +
    +
    +
    Loading…
    +
    +
    +
    +
    +
    Loading…
    +
    +
    +
    +
    +
    Loading…
    +
    +
    +
    +
    +
    Loading…
    +
    +
    +
    +
    +
    Loading…
    +
    +
    +
    +
    + Loading… +
    +
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/components/tables.html b/packages/stacks-docs/product/components/tables.html new file mode 100644 index 0000000000..f6c4bd164c --- /dev/null +++ b/packages/stacks-docs/product/components/tables.html @@ -0,0 +1,1256 @@ +--- +layout: page +title: Tables +js: true +description: Tables are used to list all information from a data set. The base style establishes preferred padding, font-size, and font-weight treatments. To enhance or customize the look of the table, apply any additional classes listed below. +tags: components +--- + +
    + {% header "h2", "Default style" %} +

    Tables should be wrapped in a container, .s-table-container. This provides horizontal scrolling when necessary in the smallest breakpoints. The default table style is a bordered cell layout with a stylized header row.

    +
    +{% highlight html %} +
    + + + + + + + + + + + + + + + + + +
    +
    +{% endhighlight %} +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameReputationJoinedLast seen
    Aaron Shekey +
    +
      +
    • 350
    • +
    • + + gold bling + + 1 +
    • +
    • + + silver bling + + 2 +
    • +
    • + + bronze bling + + 7 +
    • +
    +
    +
    Dec 1 ’17 at 20:24just now
    Joshua Hynes +
    +
      +
    • 260
    • +
    • + + gold bling + + 1 +
    • + + bronze bling + + 4 +
    • +
    +
    +
    Feb 12 at 18:47Aug 10 at 14:57
    Piper Lawson +
    +
      +
    • 1460
    • +
    • + + gold bling + + 1 +
    • +
    • + + silver bling + + 3 +
    • +
    • + + bronze bling + + 12 +
    • +
    +
    +
    Jul 5 at 14:32Aug 14 at 12:41
    +
    +
    +
    +
    + +
    + {% header "h2", "Borders & backgrounds" %} +

    By default, tables are outlined, have borders on all cells, and have a styled header. Depending on the size and complexity of a table, these can all be configured.

    + {% header "h3", "Horizontal borders" %} +

    Shows only horizontal table cell borders. Good for tables with lots of data that can be sorted and filtered.

    +
    +{% highlight html %} +
    + + … +
    +
    +{% endhighlight %} +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    First nameLast nameUsername
    1AaronS.@aarons
    2JoshuaH.@joshuah
    3PawełL.@pawełl
    4TedG.@so-ted
    +
    +
    +
    + + {% header "h3", "Simple borders" %} +

    Removes most of the default borders and backgrounds. Good for tables without much data that don't need to be sorted or filtered.

    +
    +{% highlight html %} +
    + + … +
    +
    +{% endhighlight %} +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    First nameLast nameUsername
    1AaronS.@aarons
    2JoshuaH.@joshuah
    3PawełL.@pawełl
    4TedG.@so-ted
    +
    +
    +
    + + {% header "h3", "No borders" %} +

    Removes all table cell borders.

    +
    +{% highlight html %} +
    + + … +
    +
    +{% endhighlight %} +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    First nameLast nameUsername
    1AaronS.@aarons
    2JoshuaH.@joshuah
    3PawełL.@pawełl
    4TedG.@so-ted
    +
    +
    +
    + {% header "h3", "Zebra striping" %} +

    When tables have a lot of information, you can help users group information and isolate data by adding zebra striping.

    + +
    +{% highlight html %} +
    + + … +
    +
    +{% endhighlight %} +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    First NameLast NameUsername
    1AaronS.@aarons
    2JoshuaH.@joshuah
    3PawełL.@pawełl
    4TedG.@so-ted
    +
    +
    +
    +
    + +
    + {% header "h2", "Spacing" %} +

    A table’s padding can be changed to be more or less condensed.

    + + {% header "h3", "Small" %} +
    +{% highlight html %} +
    + + … +
    +
    +{% endhighlight %} +
    +
    + + + + + + + + + + + + + + + + + + + + + + + +
    First NameLast NameUsername
    1AaronS.@aarons
    2JoshuaH.@joshuah
    +
    +
    +
    + + {% header "h3", "Default" %} +
    +{% highlight html %} +
    + + … +
    +
    +{% endhighlight %} +
    +
    + + + + + + + + + + + + + + + + + + + + + + + +
    First NameLast NameUsername
    1PawełL.@pawełl
    2TedG.@so-ted
    +
    +
    +
    + + {% header "h3", "Large" %} +
    +{% highlight html %} +
    + + … +
    +
    +{% endhighlight %} +
    +
    + + + + + + + + + + + + + + + + + + + + + + + +
    First NameLast NameUsername
    1AaronS.@aarons
    2JoshuaH.@joshuah
    +
    +
    +
    +
    + +
    + {% header "h2", "Cell widths" %} +

    Table columns will size themselves based on their content. To set a specific width, you can use one of the following table cell classes to specify the width for any column.

    + {% header "h3", "Classes" %} + + + + + + + + + {% for item in tables.widths %} + + + + + {% endfor %} + +
    ClassWidth
    {{ item.class }}{{ item.output }}
    + + {% header "h3", "Examples" %} +
    +{% highlight html %} +// Example 1 +
    + + + + + +
    +
    +// Example 2 +
    + + + + + + + + +
    +
    +// Example 3 +
    + + + + + + + + + +
    +
    +{% endhighlight %} +
    +
    + + + + + +
    .s-table--cell2No Class
    +
    +
    + + + + + + + + +
    .s-table--cell3.s-table--cell6No ClassNo ClassNo Class
    +
    +
    + + + + + + + + + +
    .s-table--cell4No ClassNo ClassNo ClassNo Class.s-table--cell2
    +
    +
    +
    +
    + +
    + {% header "h2", "Alignment" %} + {% header "h3", "Vertical alignment" %} +

    The default vertical alignment is middle. You change a table’s or a specific cell’s vertical alignment by using the Vertical Alignment atomic classes.

    +
    +{% highlight html %} +
    + + + + + + + + +
    +
    +
    + + + + + + + + +
    +
    +{% endhighlight %} +
    +
    + + + + + + + + +
    .va-top.va-middle.va-bottom
    +
    +
    + + + + + + + + +
    .s-table.va-bottom.s-table.va-bottom.s-table.va-bottom
    +
    +
    +
    + + {% header "h3", "Text alignment" %} +

    Text alignment can be changed at a table or cell level by using atomic text alignment classes. Columns containing copy should be left-aligned. Columns containing numbers should be right-aligned.

    +
    +{% highlight html %} +
    + + + + + + + + +
    +
    +
    + + + + + + + + +
    +
    +{% endhighlight %} +
    +
    + + + + + + + + +
    .ta-left.ta-center.ta-right
    +
    +
    + + + + + + + + +
    .s-table.ta-right.s-table.ta-right.s-table.ta-right
    +
    +
    +
    +
    +
    + {% header "h2", "Sortable tables" %} +

    To indicate that the user can sort a table by different columns, add the s-table__sortable class to the table.

    +

    The <th> cells should include arrows to indicate sortability or the currently applied sorting. In addition, the column that is currently sorted should be indicated with the is-sorted class on its <th>.

    +
    +{% highlight html %} +
    + + + + + + + + + + + + … + +
    + + + + + + + + + + + + + +
    +
    +{% endhighlight %} +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Listing {% icon "ArrowDownSm" %} + + Status {% icon "ArrowUpDownSm" %} + + + + + + +
    + Site Reliability Engineer, Generalist
    + Sydney, Australia +
    RunningSansa Stark50213
    + Senior Product Designer
    + New York, NY, USA +
    RunningRobert Baratheon90015
    + Product Manager, Developer Products
    + London, England +
    RunningSansa Stark31
    +
    +
    +
    + + {% header "h3", "JavaScript sorting" %} +

    Stacks provides built-in functionality for letting the user sort a table by the values in a column through clicking the column header. This requires the complete data to already exist in the table (e.g. it is not going to work if the table is paged and requires a call to the server to update data on sorting). See the JavaScript introduction for general information about JS in Stacks.

    + +

    To make your table user-sortable, do the following:

    + +
      +
    1. Style the table as sortable as explained in the section above.
    2. +
    3. Set data-controller="s-table" on the <table> element.
    4. +
    5. Set data-s-table-target="column" and data-action="click->s-table#sort" on each of the <th> elements that control sorting.
    6. +
    7. + Add the three icons for showing ascending sort, descending sort, and unsorted to each of these header cells, hiding the first two with a d-none class. Add the js-sorting-indicator class to each of the icons, and add js-sorting-indicator-asc, js-sorting-indicator-desc, and js-sorting-indicator-none to the appropriate icon. +
    8. +
    + + {% tip %} + Note: Using js-… classes is not really the optimal way of doing this, and will probably replaced with something better eventually. When that happens, the js-… mechanism will be deprecated but continue to be supported for a while, so you have ample time to update things. + {% endtip %} + +

    By default, the data is sorted by the content of the cell. If you need to use a different value, for example because your cell contains a human-readable date, add a data-s-table-sort-val attribute to the cell.

    + +

    If a column contains any data that is not an integer, the data will be sorted lexicographically. Otherwise it will be sorted numerically, with empty cells being considered the lowest number.

    + +

    If the table contains rows that should not be sorted, but rather always be at the top or always be at the bottom, add data-s-table-sort-to="top" or data-s-table-sort-to="bottom" to the <tr> element.

    + + {% header "h3", "JavaScript data attributes" %} +
    + + + + + + + + + + {% for item in tables.data-attributes %} + + + + + + {% endfor %} + +
    AttributeApplied toDescription
    {{ item.attribute }}{{ item.applies }}{{ item.description }}
    +
    + + {% header "h3", "JavaScript example" %} +
    +{% highlight html %} +
    + + + + + + + + + + + + + + + + + + +
    + + + + + +
    WinterDecember2
    SpringMarch13
    SummerJune25
    FallSeptember13
    Average temperature13
    +
    +{% endhighlight %} +
    +
    + + + + + + + + + + + + + + + + + + +
    + + + + + +
    WinterDecember2
    SpringMarch13
    SummerJune25
    FallSeptember13
    Average temperature13
    +
    +
    +
    +
    +
    + {% header "h2", "Bar graphs" %} +

    To help users, you can add data visualizations into table cells. These are useful to help visualize the reported data and calling extra attention to the table cell. These graphs should always be paired with a number.

    +
    +{% highlight html %} +
    + + … + + + + + + + + + + + + … + +
    1,854 +
    +
    +
    +
    43 +
    +
    +
    +
    +
    +{% endhighlight %} +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ListingStatusOwnerSourceViewsApplies
    + Site Reliability Engineer, Generalist
    + Sydney, Australia +
    RunningSansa Starkstackoverflow.com + 1,854 + +
    +
    +
    +
    + 43 + +
    +
    +
    +
    + Senior Product Designer
    + New York, NY, USA +
    RunningRobert Baratheonlinkedin.com + 900 + +
    +
    +
    +
    + 15 + +
    +
    +
    +
    + Product Manager, Developer Products
    + London, England +
    RunningSansa Starkm.facebook.com + 3 + +
    +
    +
    +
    + 1 + +
    +
    +
    +
    +
    +
    +
    +
    +
    + {% header "h2", "Bulk actions" %} +

    Generally for a checkbox input that’s placed first in the table row for bulk actions.

    +
    +{% highlight html %} +
    + + + + + + + + + + + + + + + + +
    + + +
    + + + … +
    +
    +{% endhighlight %} +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + Display NameFull NameEmail
    + + + SansaStark + Sansa Starksstark@company.com
    + + + RobertBaratheon + Robert Baratheonrbaratheon@company.com
    + + + Test Developer To Be Is Not A Developer Yet + Test Developer To Be Is Not A Developer Yettestdevelopertobeisnotadevyet@team-mgmt.dev.company.com
    +
    +
    +
    +
    +
    + {% header "h2", "Totals row" %} +

    Used mainly with data tables, the totals row increases the font-size for all cells within a row.

    +
    +{% highlight html %} +
    + + … + + … + +
    +
    +{% endhighlight %} +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ListingViewsAppsApp CTR
    Site Reliability Engineer, Generalist + 6,8711875.02%
    Senior Product Designer + 2,24219616.46%
    Product Manager, Developer Products + 3,46922914.9%
    Totals12,58261214.65%
    +
    +
    +
    +
    +
    + {% header "h2", "Inactive rows" %} +

    For tables that include inactive or disabled rows, such as inactive users or teams, .is-disabled can be applied to any <tr>. Additionally, .is-enabled can be applied to any <th> or <td> that you’d like to ignoring the parent disabled styling (such as a persistent link to reactivate a disabled account).

    +
    +{% highlight html %} +
    + + + + + + + + +
    + Add +
    +
    +{% endhighlight %} +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameEmailLast seen
    Aaron Shekeyemailaddress@website.comjust nowRemove
    Joshua Hynesemailaddress@website.comSep 28 ’18Add
    Paweł Ludwiczakemailaddress@website.comApr 17 ’19Add
    Piper Lawsonemailaddress@website.comYesterdayRemove
    Ted Goasemailaddress@website.com5min agoRemove
    +
    +
    +
    + + {% header "h2", "Atomic classes" %} +

    Further control of table behavior is possible with atomic classes. For example, you can make non-table markup display as a table layout by pairing .d-table, .d-table-cell and .tl-fixed.

    +
    + + + + + + + + + {% for item in tables.atomic %} + + + + + {% endfor %} + +
    ClassOutput
    {{ item.class }}{{ item.output }}
    +
    +
    diff --git a/packages/stacks-docs/product/components/tags.html b/packages/stacks-docs/product/components/tags.html new file mode 100644 index 0000000000..13b3a29059 --- /dev/null +++ b/packages/stacks-docs/product/components/tags.html @@ -0,0 +1,135 @@ +--- +layout: page +title: Tags +svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-tag--docs +figma: https://svelte.stackoverflow.design/figma/tags +description: Tags are an interactive, community-generated keyword that allow communities to label, organize, and discover related content. Tags are maintained by their respective communities +tags: components +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + {% for item in tags-component.classes %} + + + + + + {% endfor %} + +
    ClassApplied toDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    +
    + {% header "h2", "Accessibility" %} +

    + Tags should be focusable and navigable with the keyboard. + The various tag states (Required, Moderator, Watched, Ignored) are visually distinct but do not include any text indicators for screen readers. + For that reason it is recommended to provide additional context using hidden text elements with the v-visible-sr class. +

    +
    + +
    + {% header "h2", "Examples" %} + {% header "h3", "Default tag" %} +
    +{% highlight html %} +jquery +javascript +Google Android android
    Sponsored tag
    +{% endhighlight %} +
    +
    + jquery + javascript + Google Android android
    Sponsored tag
    +
    +
    +
    + +{% header "h3", "Moderator" %} +
    +{% highlight html %} +status-completed
    Moderator tag
    +status-bydesign
    Moderator tag
    +status-planned
    Moderator tag
    +{% endhighlight %} +
    +
    + status-completed
    Moderator tag
    + status-bydesign
    Moderator tag
    + status-planned
    Moderator tag
    +
    +
    +
    + +{% header "h3", "Required" %} +
    +{% highlight html %} +discussion
    Required tag
    +feature-request
    Required tag
    +bug
    Required tag
    +{% endhighlight %} +
    +
    + discussion
    Required tag
    + feature-request
    Required tag
    + bug
    Required tag
    +
    +
    +
    + +{% header "h3", "Watched" %} +
    +{% highlight html %} +asp-net
    Watched tag
    +{% endhighlight %} + +
    + +{% header "h3", "Ignored" %} +
    +{% highlight html %} +netscape
    Ignored tag
    +{% endhighlight %} + +
    + +
    + +
    + {% header "h2", "Sizes" %} + + + + + + + + + + {% for item in tags-component.sizes %} + + + + + + {% endfor %} + +
    ClassApplied toExample
    {% if item.class == "N/A" %}.s-tag{% else %}.{{ item.class }}{% endif %}{% if item.class == "N/A" %}{{ item.class }}{% else %}.s-tag{% endif %}css
    +
    \ No newline at end of file diff --git a/packages/stacks-docs/product/components/textarea.html b/packages/stacks-docs/product/components/textarea.html new file mode 100644 index 0000000000..f56821a670 --- /dev/null +++ b/packages/stacks-docs/product/components/textarea.html @@ -0,0 +1,173 @@ +--- +layout: page +title: Textarea +svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-textarea--docs +figma: https://www.figma.com/design/do4Ug0Yws8xCfRjHe9cJfZ/Project-SHINE---Product-UI?node-id=4537-49735&m=dev +description: Multi-line inputs used by users to enter longer text portions. +tags: components +--- +
    + {% header "h2", "Base style" %} +
    +{% highlight html %} +
    + +
    + +
    +
    +{% endhighlight %} +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    + {% header "h2", "Accessibility" %} +

    + It is recommended to follow the same accessibility guidance as the Input component. + Including marking Textarea's as required via the .s-required-symbol class. +

    +
    + +
    + {% header "h2", "Validation states" %} +

    Validation states provides the user feedback based on their interaction (or lack of interaction) with a textarea. These styles are applied by applying the appropriate class to the wrapping parent container.

    + + {% header "h3", "Validation classes" %} +
    + + + + + + + + + + {% for item in inputs.textarea %} + {% assign state = item.validation %} + {% for class in state %} + + + + + + {% endfor %} + {% endfor %} + +
    ClassAppliesDefinition
    {{ class.class }}{{ class.applies }}{{ class.description }}
    +
    + + {% header "h3", "Validation examples" %} + {% header "h4", "Warning" %} +
    +{% highlight html %} +
    + +
    + + @Svg.Alert.With("s-input-icon") +
    +

    Consider entering a description to help us better help you.

    +
    +{% endhighlight %} +
    +
    + +
    + + {% icon "Alert", "s-input-icon" %} +
    +

    Consider entering a description to help us better help you.

    +
    +
    +
    + + {% header "h4", "Error" %} +
    +{% highlight html %} +
    + +
    + + @Svg.AlertCircle.With("s-input-icon") +
    +

    A description must be provided.

    +
    +{% endhighlight %} +
    +
    + +
    + + {% icon "AlertCircle", "s-input-icon" %} +
    +

    A description must be provided.

    +
    +
    +
    + + {% header "h4", "Success" %} +
    +{% highlight html %} +
    + +
    + + @Svg.Checkmark.With("s-input-icon") +
    +

    Thanks for providing a description.

    +
    +{% endhighlight %} +
    +
    + +
    + + {% icon "Check", "s-input-icon" %} +
    +

    Thanks for providing a description.

    +
    +
    +
    +
    + +
    + {% header "h2", "Sizes" %} +
    + + + + + + + + + + + {% for item in inputs.textarea %} + {% assign size = item.sizes %} + {% for item in size %} + + + + + + + {% endfor %} + {% endfor %} + +
    NameSizeClassExample
    {{ item.name }}{{ item.size }}{% if item.class == "N/A" %}{{ item.class }}{% else %}.{{ item.class }}{% endif %} +
    + +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/components/toggle-switch.html b/packages/stacks-docs/product/components/toggle-switch.html new file mode 100644 index 0000000000..c8ed370088 --- /dev/null +++ b/packages/stacks-docs/product/components/toggle-switch.html @@ -0,0 +1,126 @@ +--- +layout: page +title: Toggle switch +figma: https://svelte.stackoverflow.design/figma/toggle-switches +description: A toggle is used to quickly switch between two or more possible states. They are most commonly used for simple “on/off” switches, but can contain multiple options. +tags: components +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + + + + + + + + + + + + +
    ClassDescription
    .s-toggle-switchClass to apply toggle switch styling to input[type="checkbox"] or on a parent of multiple input[type="radio"] elements.
    .s-toggle-switch__multipleModifies the base container to accept multiple options.
    .s-toggle-switch--label-offApply to the “Off” or “None” option so it’s highlighted state isn’t lit up green.
    +
    +
    +
    + {% tip, "warning", "mb24" %} + Deprecation: the markup for toggle switches has changed. Please update your toggle switches to match the markup structure detailed on this page. + {% endtip %} + {% header "h2", "Examples" %} + {% header "h3", "Single" %} +

    A single toggle is appropriate for simple “on/off” states eg. enabling emails, markdown editing, or various cookies. Toggle switches take up less space than an “on/off” radio button group and communicate their intended purpose more clearly than a checkbox that toggles functionality. They also provide consistency between desktop and mobile experiences.

    +
    + {% highlight html %} +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    + {% endhighlight %} +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +
    + + {% header "h3", "3 or more options" %} +

    Toggles switches can be extended to choose between three or more states—in this case, the user is setting the frequency of an email digest. Use the multiple toggle instead of a radio group when unifying the aesthetics is important.

    +
    + {% highlight html %} +
    + +
    + + + + + + + + +
    +
    + {% endhighlight %} +
    +
    + +
    + + + + + + + + +
    +
    +
    + +
    + + + + + + +
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/components/topbar.html b/packages/stacks-docs/product/components/topbar.html new file mode 100644 index 0000000000..3f09e3d642 --- /dev/null +++ b/packages/stacks-docs/product/components/topbar.html @@ -0,0 +1,215 @@ +--- +layout: page +title: Topbar +description: The topbar component is a navigation bar that is placed at the top of the page. +tags: components +--- + +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + {% for item in topbar %} + + + + + + {% endfor %} + +
    ClassApplies toDescription
    {{ item.class }}{{ item.applies | default: "N/A" | markdown | newline_to_br }}{{ item.description | markdown }}
    +
    +
    + +
    + {% header "h2", "Basic usage" %} +

    At their most basic, our topbar component provides branding and context for the user. In this example, we have a scaled back version showing some global navigation, user settings & preferences, and notifications.

    +
    +{% highlight html %} +
    + Skip to main content + +
    +{% endhighlight %} +
    + {% render 'topbar.html', hideNavigation: true, hideSearch: true, showMenu: true %} +
    +
    + + {% header "h3", "Skip Link" %} +

    All topbars must include a skip link. + Usually a skip link should be the first focusable element of a page (with the expection of cookie consent dialogs). + Skip links are a mechanism to bypass blocks of content that are repeated on multiple web pages and comply with WCAG SC 2.4.1.

    + + {% tip, "info", "mb24" %} + Note: Skip links become visible only when focused via keyboard navigation and they are announced by screen readers. In the example below hit Tab on your keyboard to see it appearing when in focus. + {% endtip %} +
    +{% highlight html %} +
    + Skip to main content +
    +
    +{% endhighlight %} +
    + {% render 'topbar.html', hideNavigation: true, hideSearch: true %} +
    +
    +
    + +
    + {% header "h2", "Advanced usage" %} +

    Depending on the user's authentication levels, we may need to include lots of options and menus. The topbar can include new marketing notifications, marketing navigation, a search bar, user details, moderator tools, review queues, achievements, inbox, help, and various bits of navigation.

    + + {% header "h3", "Theming" %} +

    By default, the topbar automatically switches between light and dark modes as expected. In specific products like Teams, we choose to force a dark version to help the user differentiate between contexts. You can choose either light or dark by applying their respective classes to the main component.

    +
    +{% highlight html %} +
    +
    +
    +{% endhighlight %} +
    + {% assign variations = "s-topbar__auto,s-topbar__dark,s-topbar__light" | split: "," %} +
    + {% for variation in variations %} +
    +

    {{ variation | split: "__" | last | capitalize }}

    + {% render 'topbar.html', additionalClass: variation, isMod: true %} +
    + {% endfor %} +
    +
    +
    + + {% header "h3", "Search bar" %} +

    The topbar can also include a search bar. Depending on the user’s products, it may be appropriate to add a select menu to choose the context for their search.

    +
    +{% highlight html %} +
    + Skip to main content +
    + + + + + +
    +
    +{% endhighlight %} +
    +
    +
    +

    With select

    + {% render 'topbar.html', showNavigation: false, hideUserCard: true %} +
    +
    +

    Input only

    + {% render 'topbar.html', showNavigation: false, hideUserCard: true, hideSelect: true %} +
    +
    +
    +
    + + {% header "h3", "Navigation / Notices / CTAs" %} +

    If a user is logged out, or is anonymous, we provide a container for various calls to actions. This is a less opinionated container that only provides layout without styling of the individual children.

    +
    +{% highlight html %} +
    + Skip to main content +
    + + + + + New + + + + + +
    +
    +{% endhighlight %} +
    + {% render 'topbar.html', showNotices: true, showFullNavigation: true, hideSearch: true, showCtas: true %} +
    +
    + + {% header "h3", "Variable content width" %} +

    By default, the topbar has a container that is full width, up to our widest point as defined by our global variables. If you need to override this, you can apply any combination of atomic base classes to the container.

    +
    +{% highlight html %} +
    + Skip to main content +
    +
    +{% endhighlight %} +
    + {% render 'topbar.html', containerClass: "wmx75", hideUserCard: true %} +
    +
    +
    + + diff --git a/packages/stacks-docs/product/components/uploader.html b/packages/stacks-docs/product/components/uploader.html new file mode 100644 index 0000000000..04a3036fbd --- /dev/null +++ b/packages/stacks-docs/product/components/uploader.html @@ -0,0 +1,267 @@ +--- +layout: page +title: Uploader +js: true +description: The Stacks uploader is a custom-styled file input with added functionality to preview the file or files the user is uploading. +tags: components +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + {% for item in uploader-component.classes %} + + + + + + {% endfor %} + +
    ClassApplied toDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    +
    + {% header "h2", "JavaScript" %} + {% header "h3", "Attributes" %} +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    AttributeApplied toDescription
    data-controller="s-uploader"Controller elementWires up the element to the uploader controller. This may be a .s-uploader element or a wrapper element.
    data-target="s-uploader.uploader".s-uploaderWires up the element containing input, previews, and reset targets.
    data-s-uploader-target="input".s-uploader--inputDesignates the file input element.
    data-target="s-uploader.previews".s-uploader--previewsDesignates the element to act as a container to file preview(s).
    data-action="input->s-uploader#handleInput"input[type=file] elementWires up the element to provide files for preview on change.
    data-action="click->s-uploader#reset"Any child elementWires up the element to reset the uploader to its initial state.
    data-s-uploader-show-on-inputAny child elementToggles element visibility. Shows when input has value.
    data-s-uploader-hide-on-inputAny child elementToggles element visibility. Hides when input has value.
    data-s-uploader-enable-on-inputAny child elementToggles element disabled state. Disables when input has no value.
    +
    +
    +
    + {% header "h2", "Examples" %} +

    Including a file input with the class s-uploader--input within s-uploader will provide the correct styling for an upload section.

    + + {% header "h3", "Profile picture" %} +

    In this example, we’re showing a single file input with an image as the example’s placeholder illustration.

    +
    +{% highlight html %} + +
    +
    + +
    +
    +
    + +
    + @Svg.Spot.Image.With("fc-medium mb8") +
    Drag an image to upload
    +
    + Or choose your image +
    +
    +
    +
    +
    + + +
    +
    +{% endhighlight %} +
    + +
    +
    + +
    +
    +
    + +
    + {% spot "Image", "fc-medium mb8" %} +
    Drag an image to upload
    +
    + Or choose your image +
    +
    +
    +
    +
    + + +
    +
    +
    +
    + + {% header "h3", "Multiple files" %} +

    In this example, this uploader accepts multiple documents so we’ve swapped @Svg.Spot.Image for @Svg.Spot.DocumentAlt and changed the input’s description and attributes to allow for multiples.

    +
    +{% highlight html %} + +
    +
    + +
    +
    +
    + +
    + @Svg.Spot.Image.With("fc-medium mb8") +
    Drag some files to upload
    +
    + Or choose your files +
    +
    +
    +
    +
    + + +
    +
    +{% endhighlight %} +
    + +
    +
    + +
    +
    +
    + +
    + {% spot "DocumentAlt", "fc-medium mb8" %} +
    Drag some files to upload
    +
    + Or choose your files +
    +
    +
    +
    +
    + + +
    +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/components/user-cards.html b/packages/stacks-docs/product/components/user-cards.html new file mode 100644 index 0000000000..c5bb1ccf11 --- /dev/null +++ b/packages/stacks-docs/product/components/user-cards.html @@ -0,0 +1,598 @@ +--- +layout: page +title: User cards +svelte: https://beta.svelte.stackoverflow.design/?path=/docs/components-usercard--docs +description: User cards are a combination of a user and metadata about the user or post +tags: components +--- +
    + {% header "h2", "Classes" %} +
    + + + + + + + + + + {% for item in user-cards-component.classes %} + + + + + + {% endfor %} + +
    ClassApplied toDescription
    {{ item.class }}{{ item.applies }}{{ item.description }}
    +
    +
    +
    + {% header "h2", "Examples" %} + {% header "h3", "Base" %} +
    +{% highlight html %} +
    + + + + +
    + +
      +
    • +
    • +
    • +
    • +
    +
    +
    +{% endhighlight %} +
    +
    + + + demo avatar + +
    + Paul Wright +
      +
    • 2,500
    • +
    • + + gold bling + + 5 +
    • +
    • + + silver bling + + 9 +
    • +
    • + + bronze bling + + 1 +
    • +
    +
    +
    + +
    + + + demo avatar + +
    + +
    Paul Wright
    +
    Mod
    +
    +
      +
    • 2,500
    • +
    • + + gold bling + + 5 +
    • +
    • + + silver bling + + 9 +
    • +
    • + + bronze bling + + 1 +
    • +
    +
    +
    +
    +
    +
    + +
    + {% header "h3", "Highlighted" %} +

    Highlights the entire user card by adding a background color, some padding, and rounded corners. Used for post authors and edits.

    +
    +{% highlight html %} +
    + + + + +
    + +
      +
    • +
    • +
    • +
    • +
    +
    + + +
    + @Svg.StarVerifiedSm Partner +
    +
    +{% endhighlight %} +
    +
    + + + demo avatar + +
    + Paul Wright +
      +
    • 2,500
    • +
    • + + gold bling + + 5 +
    • +
    • + + silver bling + + 9 +
    • +
    • + + bronze bling + + 1 +
    • +
    +
    +
    + +
    +
    +
    + + + demo avatar + +
    + Paul Wright +
      +
    • 2,500
    • +
    • + + gold bling + + 5 +
    • +
    • + + silver bling + + 9 +
    • +
    • + + bronze bling + + 1 +
    • +
    +
    +
    + {% icon "StarVerifiedSm" %} Recognized by Hum +
    +
    +
    + +
    +
    + + + demo avatar + +
    + Paul Wright +
      +
    • 2,500
    • +
    • + + gold bling + + 5 +
    • +
    • + + silver bling + + 9 +
    • +
    • + + bronze bling + + 1 +
    • +
    +
    +
    + {% icon "StarVerifiedSm" %} Recognized by Hum +
    +
    +
    +
    +
    +
    +
    + +
    + {% header "h3", "Full" %} +

    Displays a larger avatar, best paired with additional tags meta data. Currently used in user directories.

    +
    +{% highlight html %} +
    + + + +
    + +
    +
    +
    +
      +
    • +
    • +
    • +
    • +
    +
    +
    + + + +
    +
    + + +
    + @Svg.StarVerifiedSm Recognized by +
    +
    +{% endhighlight %} +
    +
    + + demo avatar + +
    + +
    Paul Wright
    +
    Staff
    +
    Admin
    +
    +
      +
    • 2,500
    • +
    • + + gold bling + + 5 +
    • +
    • + + silver bling + + 9 +
    • +
    • + + bronze bling + + 1 +
    • +
    +
    Paris, France
    +
    + js + node.js + graphQL +
    +
    +
    + +
    + + demo avatar + +
    + +
    Nick Craver
    +
    Mod
    +
    +
      +
    • 17k
    • +
    • + + gold bling + + 108 +
    • +
    • + + silver bling + + 265 +
    • +
    • + + bronze bling + + 812 +
    • +
    +
    Architecture Lead
    +
    North Carolina
    +
    + .net + sre +
    +
    +
    + +
    + + demo avatar + +
    + + Aaron Shekey + +
      +
    • 768
    • +
    • + + silver bling + + 9 +
    • +
    • + + bronze bling + + 1 +
    • +
    +
    Senior Product Designer
    +
    Minneapolis, MN
    +
    + css + js + html +
    +
    +
    + +
    + + demo avatar + +
    + + Aaron Shekey + +
      +
    • 768
    • +
    • + + silver bling + + 9 +
    • +
    • + + bronze bling + + 1 +
    • +
    +
    Minneapolis, MN
    +
    +
    + {% icon "StarVerifiedSm" %} Recognized by Hum +
    +
    +
    +
    + +
    + {% header "h3", "Small" %} +
    +{% highlight html %} +
    + + + +
    +
      +
    • +
    • +
    • +
    • +
    +
    +
    +{% endhighlight %} +
    +
    + + demo avatar + +
    +
      +
    • 2,500
    • +
    • + + gold bling + + 5 +
    • +
    • + + silver bling + + 9 +
    • +
    • + + bronze bling + + 1 +
    • +
    +
    +
    +
    +
    +
    + +
    + {% header "h3", "Minimal" %} +

    + Minimal user cards reduce the amount of information down to who asked the question, how much rep they have, and when the action was taken. To read as plainly as possible, e.g. “Paul Wright modified 3 minutes ago,” we change the positioning of the time, and remove any reputation bling, leaving just the aggregated reputation. +

    +
    +{% highlight html %} +
    +
    + +
      +
    • +
    +
    + +
    + +
    + + + +
    + +
      +
    • +
    +
    + +
    +{% endhighlight %} +
    +
    + + demo avatar + +
    + + Paul Wright + +
      +
    • 2,500
    • +
    +
    + +
    + +
    +
    + + Paul Wright + +
      +
    • 2,500
    • +
    +
    + +
    +
    +
    +
    + +
    + {% header "h3", "Deleted" %} +

    When a user is deleted, we still need to show their name, but we strip the meta data.

    +
    +{% highlight html %} +
    + +
    + +
    +
    +
    + +
    +
    + +
    +
    + +
    + +
    +{% endhighlight %} +
    +
    + +
    + demo avatar +
    +
    + +
    +
    + +
    +
    + demo avatar +
    +
    + +
    + +
    +
    +
    +
    diff --git a/packages/stacks-docs/product/develop/building.html b/packages/stacks-docs/product/develop/building.html new file mode 100644 index 0000000000..3fc264f9ad --- /dev/null +++ b/packages/stacks-docs/product/develop/building.html @@ -0,0 +1,45 @@ +--- +layout: page +title: Building Stacks +description: The following is a guide to building and running Stacks locally. You’ll need to be able to build Stacks to contribute to our documentation or add new classes to our CSS library. +tags: develop +--- + +
    + {% header "h2", "Clone the repo" %} +

    There are two common ways to clone a repo:

    +
      +
    • Use the command line: git clone https://github.com/StackExchange/Stacks.git
    • +
    • Use GitHub’s desktop app. +
        +
      1. Download and install GitHub Desktop.
      2. +
      3. Login with your GitHub credentials.
      4. +
      5. Clone the Stacks repo.
      6. +
      +
    • +
    +
    + +
    + {% header "h2", "Get Node and NPM installed" %} +

    We use a bunch of NPM dependencies to process and package up Stacks for delivery. You’ll need to install them.

    +
      +
    1. Install Node & NPM
    2. +
    3. Open the Stacks repo in a Terminal window.
    4. +
    5. Install the NPM dependencies. npm install
    6. +
    +
    + +
    + {% header "h2", "Running Stacks" %} +

    That should do it for all our dependencies. You’re now able to run Stacks. {% icon "Tada", "native va-text-bottom" %}

    +
      +
    1. From the top level of the Stacks repo, run our main script npm run start -w packages/stacks-docs
    2. +
    3. Visit your local copy of Stacks at http://localhost:8080/
    4. +
    +
    + +
    + {% header "h2", "Getting help" %} +

    Installing dependencies can be frustrating, and we’re here to help. If you’re stuck, the Stacks team is always available in #stacks. If that doesn’t work, try opening an issue.

    +
    diff --git a/packages/stacks-docs/product/develop/conditional-classes.html b/packages/stacks-docs/product/develop/conditional-classes.html new file mode 100644 index 0000000000..8bcc23459c --- /dev/null +++ b/packages/stacks-docs/product/develop/conditional-classes.html @@ -0,0 +1,139 @@ +--- +layout: page +title: Conditional classes +description: Stacks provides conditional atomic classes to easily build complex responsive designs, hover states, and print layouts. A limited selection of conditional classes are available throughout Stacks. These are represented in class definitions tables by a green checkmark . +tags: develop +--- + +
    + {% header "h2", "Responsive" %} +

    Many utility classes in Stacks are also available in screen-size specific variations. For example, the .d-none utility can be applied to small browser widths and below using the .sm:d-none class, on medium browser widths and below using the .md:d-none class, and on large browser widths and below using the .lg:d-none class.

    + +

    This is done using predefined max-width media query breakpoints represented by t-shirt sizes. A common example would be to apply .md:fd-column to a flex layout. This means, “At the medium breakpoint and smaller, switch the flex layout from columns to rows by applying fd-column.”

    + + {% tip, "", "", "ai-center sm:ai-start" %} + Note: Our font size classes, .fs-[x] are automatically adjusted at the smallest breakpoint. + {% endtip %} +
    + +
    + {% header "h3", "Responsive classes" %} +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ClassBreakpointDefinition
    .[x]N/AThe class is applied on all browser widths.
    .lg:[x]1264pxThe class is applied on large browser widths and below.
    .md:[x]980pxThe class is applied on medium browser widths and below.
    .sm:[x]640pxThe class is applied on small browser widths and below.
    +
    +
    + +
    + {% header "h3", "Responsive example" %} +

    Resize your browser to see which classes are applied.

    +
    + {% comment %} + This is a terrible hack to be able to highlight our markup + {% endcomment %} +
    <div class="d-flex flex__center md:fd-column g16">
    <div class="flex--item wmx3 fs-body3 lg:ta-center">

    </div>
    <div class="flex--item md:order-first sm:d-none">
    <svg></svg>
    </div>
    </div>
    +
    +
    +
    + Stack Overflow for Teams is a private, secure home for your team’s questions and answers. No more digging through stale wikis and lost emails—give your team back the time it needs to build better products. +
    +
    + {% spot "RocketXL" %} +
    +
    +
    +
    +
    + +
    + {% header "h2", "Hover" %} +

    Stacks provides hover-only atomic classes. By applying .h:bs-lg, .h:o100, and .h:fc-black-600, you’re saying “On hover, add a large box shadow, an opacity of 100%, and a font color of black 900.”

    +
    +{% highlight html %} +
    +{% endhighlight %} +
    +
    Example
    +
    +
    +
    + +
    + {% header "h2", "Focus" %} +

    Stacks provides focus-only atomic classes. By applying .f:o100, and .f:fc-black-600, you’re saying “On focus, add an opacity of 100%, and a font color of black 900.”

    +
    +{% highlight html %} +
    +{% endhighlight %} +
    +
    Example
    +
    +
    +
    + +
    + {% header "h2", "Print" %} +

    Stacks provides print-only atomic classes. By applying .print:d-none, you’re saying “In print layouts, remove this element from the layout.”

    +
    +{% highlight html %} +
    +
    +{% endhighlight %} +
    +
    This element will be removed from the page while printing.
    +
    This element will only be shown when printing.
    +
    +
    +
    + +
    + {% header "h2", "Dark mode" %} +

    Stacks provides darkmode-only atomic classes. By applying .d:bg-green-300, you’re saying “In dark mode, apply a background of green 100.”

    +
    +{% highlight html %} +
    +{% endhighlight %} +
    +
    This element will be yellow text and background in light mode but will become green in dark mode.
    +
    +
    + +

    In addition to specific overrides, you can force an element’s colors to be light or dark by applying .theme-dark__forced or .theme-light__forced. This comes in handy when showing users a preview of light or dark interface elements.

    +
    +{% highlight html %} +
    +{% endhighlight %} +
    +
    This element will be rendered with light mode colors regardless of theme preference.
    +
    +
    +
    diff --git a/packages/stacks-docs/product/develop/javascript.html b/packages/stacks-docs/product/develop/javascript.html new file mode 100644 index 0000000000..7e9937de05 --- /dev/null +++ b/packages/stacks-docs/product/develop/javascript.html @@ -0,0 +1,143 @@ +--- +layout: page +title: JavaScript +description: This is an introduction to the JavaScript functionality provided by Stacks. +tags: develop +--- + +
    + {% header "h2", "Including the Stacks JavaScript" %} + +

    While Stacks is first and foremost a CSS library, it also provides commonly used functionality for some components via JavaScript. This functionality is optional. If you only need the styling parts of Stack, you’re free to ignore the provided JavaScript. The converse is not true: The JavaScript components work under the assumption that the Stacks CSS is available.

    + +

    Stacks JavaScript is currently included within various Stack Overflow projects automatically. If you’re working on a Stack Overflow project, chances are it’s already available for you! If not, reach out to us and we’ll work on getting it setup.

    +

    To include Stacks JavaScript in other projects, do the following.

    + +
      +
    • Include the file dist/js/stacks.min.js in your page. For example, if you use the unpkg CDN, add the tag <script src="https://unpkg.com/@stackoverflow/stacks/dist/js/stacks.min.js"></script> to your HTML. See Using Stacks for more information on Unpkg and installing Stacks via NPM.
    • +
    +
    + +
    + {% header "h2", "Using the Stacks JavaScript" %} + +

    The Stacks JavaScript components are provided as Stimulus controllers. Stimulus is a library created by Basecamp.

    + +

    Stimulus allows you to add functionality to your markup in a way that is similar to how you add styling to your markup: by modifying HTML attributes.

    + +

    Just as you style components by adding classes to the class attribute, with Stacks JavaScript, you’ll give components optional functionality by adding data-… attributes to the HTML.

    + +

    The basic functional unit of Stimulus, and of a Stacks JavaScript component, is a controller. Controllers are identified by their name, and all Stacks-provided controller names are prefixed with s-…, just like component CSS classes. You give functionality to an HTML element by setting its data-controller attribute.

    + +
    +{% highlight html %} +
    +{% endhighlight %} +
    + +

    Refer to the documentation of individual components on how to configure a component’s behavior.

    +
    + +
    + {% header "h2", "Creating your own Stimulus controllers" %} + +

    A side effect of including the Stacks JavaScript in your project is that you also have Stimulus available in your page. This means you can not only use Stacks-provided controllers, but also create your own.

    + +

    For general information about writing code with Stimulus, refer to the official documentation. That documentation generally assumes that you’re writing ES6 code. In order to make it useful without ES6-to-ES5 transpilation, Stacks provides a helper that allows you to write controllers using old-fashioned JavaScript syntax.

    + +

    This helper is called Stacks.addController and takes two arguments: The name (“identifier”) of the controller, and an object that is analogous to the ES6 class that you would write for your controller, except that it's a plain JavaScript object. All own enumerable properties of that object will be made available on the controller prototype, with the exception of the targets property, which will be available on the controller constructor itself, i.e. statically.

    + +

    With that, you can create and register the final Hello World controller example from the official documentation like this:

    + +
    +{% highlight javascript %} +Stacks.addController("greeter", { + targets: ["name"], + + greet: function () { + console.log("Hello, " + this.name +"!"); + }, + + get name() { + return this.nameTarget.value; + } +}); +{% endhighlight %} +
    +
    + +
    + {% header "h2", "JavaScript classnames" %} +

    We prefix our JavaScript target classes with .js- so that changing or adding a class name for styling purposes doesn’t inadvertently break our JS. This allows us to style elements with any chain of atomic or component classes from Stacks without breaking any additional JavaScript interactivity.

    +

    We also try to avoid IDs for both visual styling and JavaScript targeting. They aren’t reusable, visual styling can’t be overwritten by atomic classes, and, like non-.js- classes, we can’t tell if there is JavaScript interactivity attached at a glance.

    + +
    {% icon "Checkmark", "mtn1 mbn1" %} Do
    +
    +{% highlight html %} +
    + … +
    +{% endhighlight %} +
    + +
    +{% highlight js %} +var button = document.querySelector('.js-copy'); +button.addEventListener('click', function() { + … +}); +{% endhighlight %} +
    + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t
    +
    +{% highlight html %} +
    + … +
    +{% endhighlight %} +
    + +
    +{% highlight js %} +var button = document.querySelector('.s-card'); +button.addEventListener('click', function() { + … +}); +{% endhighlight %} +
    + +
    +{% highlight css %} +.s-card { + … +} +{% endhighlight %} +
    + +
    {% icon "Clear", "mtn1 mbn1" %} Don’t
    +
    +{% highlight html %} +
    + … +
    +{% endhighlight %} +
    + +
    +{% highlight js %} +var button = document.querySelector('#card'); +button.addEventListener('click', function() { + … +}); +{% endhighlight %} +
    + +
    +{% highlight css %} +#card { + … +} +{% endhighlight %} +
    +
    diff --git a/packages/stacks-docs/product/develop/using-stacks.html b/packages/stacks-docs/product/develop/using-stacks.html new file mode 100644 index 0000000000..4120ab386a --- /dev/null +++ b/packages/stacks-docs/product/develop/using-stacks.html @@ -0,0 +1,54 @@ +--- +layout: page +title: Using Stacks +description: A short guide to Stacks, a robust CSS & JavaScript Pattern library for rapidly building Stack Overflow. +tags: develop +--- + +
    + {% header "h2", "Goals" %} +

    Stacks is built with a unified goal: We should be writing as little CSS & JavaScript as possible. To achieve this goal, the Stacks team has created a robust set of reusable components. These include components like buttons, tables, and form elements.

    +

    We’ve also created a powerful set of atomic classes that can be chained together to create just about any layout without writing a single line of new CSS. Further, these atomic classes can be used as modifiers of pre-existing components.

    +
    + +
    + {% header "h2", "Installing" %} +

    Stacks is currently included within various Stack Overflow projects automatically. If you’re working on a Stack Overflow project, chances are it’s already available for you! If not, reach out to us and we’ll work on getting it set up.

    +

    To include Stacks in other projects, you can install Stacks via NPM: npm install --save @stackoverflow/stacks

    +

    You can also include a minified, compiled Stacks CSS style sheet that’s delivered via Unkpg, a CDN for NPM packages. This is good for things like Codepen or other quick prototypes. This CDN should not be considered production-ready. <link rel="stylesheet" href="https://unpkg.com/@stackoverflow/stacks/dist/css/stacks.min.css">

    + +

    To use Stack’s built-in JavaScript interactivity with your components, refer to the JavaScript guidelines.

    + + {% tip, "warning" %} + If you’re hotlinking to Stacks on the Stack Overflow CDN, you are doing it wrong. You are setting yourself up for breaking upstream changes. Instead, you should install via properly versioned package management like NPM. This will keep you pinned to a stable version. + {% endtip %} +
    + +
    + {% header "h2", "How to best use Stacks" %} +

    In order to use Stacks, let’s consider the design you’d like to implement.

    + +
      +
    1. +

      My design uses existing components

      +

      Identify if the design you’re implementing uses any existing components. Great, it does? Grab the markup from that component’s example page and paste that into your view.

      +
    2. +
    3. +

      My design uses existing components, but has some special cases.

      +

      E.g. background colors, border, and font sizes. Awesome, copy the component’s example markup to your view and add an atomic class to override its styling. Practically, this will likely just be adding something like an .mb12 to a button, or hiding something temporarily with .d-none.

      +
    4. +
    5. +

      My design uses a new pattern that doesn’t have a component yet.

    -
    +
    +
    {@render children?.()} +
    -
    +
    -
    - - \ No newline at end of file +
    \ No newline at end of file diff --git a/packages/stacks-docs-next/src/routes/[category]/[[section]]/[subsection]/+page.server.ts b/packages/stacks-docs-next/src/routes/[category]/[[section]]/[subsection]/+page.server.ts new file mode 100644 index 0000000000..2fd76cbf8c --- /dev/null +++ b/packages/stacks-docs-next/src/routes/[category]/[[section]]/[subsection]/+page.server.ts @@ -0,0 +1,49 @@ +import type { PageServerLoad } from "./$types"; +import { error } from "@sveltejs/kit"; +import { render } from "svelte/server"; +import htmlToMd from "$src/lib/htmlToMd"; + +import TurndownService from 'turndown' +const turndownService = new TurndownService({ + headingStyle: 'atx', + codeBlockStyle: 'fenced', +}) + +const mdFiles = import.meta.glob("$docs/**/*.md"); + +export const load: PageServerLoad = async (event) => { + const slug = [ + event.params.category, + event.params.section, + event.params.subsection, + ] + .filter(Boolean) + .join("/"); + + const possiblePaths = [ + `/src/docs/public/${slug}.md`, + `/src/docs/public/${slug}/index.md`, + `/src/docs/private/${slug}.md`, + `/src/docs/private/${slug}/index.md`, + ]; + + const found = Object.entries(mdFiles).find(([path]) => + possiblePaths.includes(path) + ); + + if (found) { + const [filename, doc] = found; + const loader: any = await doc(); + + const markdown = turndownService.turndown(render(loader.default).body); + + return { + source: "md", + filename, + metadata: loader.metadata, + markdown, + }; + } + + throw error(404, `No content found for ${slug}`); +}; diff --git a/packages/stacks-docs-next/src/routes/[category]/[[section]]/[subsection]/+page.svelte b/packages/stacks-docs-next/src/routes/[category]/[[section]]/[subsection]/+page.svelte index 0f9858f1d6..e7b2743a22 100644 --- a/packages/stacks-docs-next/src/routes/[category]/[[section]]/[subsection]/+page.svelte +++ b/packages/stacks-docs-next/src/routes/[category]/[[section]]/[subsection]/+page.svelte @@ -1,7 +1,8 @@ @@ -23,6 +34,8 @@ + + {#if data?.active?.image} {/if} @@ -30,54 +43,63 @@
    - {#if data?.metadata?.updated} -
    - {#each data.breadcrumb as crumb, index} - {crumb.label}{#if index !== data.breadcrumb.length - 1}/{/if} - {/each} -
    +
    + {#each data.breadcrumb as crumb, index} + {crumb.label}{#if index !== data.breadcrumb.length - 1}/{/if} + {/each} +
    + + + + {#if data.filename} + {/if} + {#if data?.metadata?.figma} - {/if} {#if data?.metadata?.svelte} - {/if}
    -

    - {data.active.title} -

    - - {#if data?.metadata?.description} -

    - {@html data.metadata.description} -

    - {/if} - - {#if data.source === 'md'} - - {/if} - -
    +
    {#if data?.metadata?.updated} -
    + + + {#if data.source === 'md'} + + {/if}
    diff --git a/packages/stacks-docs-next/src/routes/[category]/[[section]]/[subsection]/+page.ts b/packages/stacks-docs-next/src/routes/[category]/[[section]]/[subsection]/+page.ts index ccd54b62f6..9e86607e60 100644 --- a/packages/stacks-docs-next/src/routes/[category]/[[section]]/[subsection]/+page.ts +++ b/packages/stacks-docs-next/src/routes/[category]/[[section]]/[subsection]/+page.ts @@ -1,45 +1,19 @@ import type { PageLoad } from "./$types"; -import { error } from "@sveltejs/kit"; const mdFiles = import.meta.glob("$docs/**/*.md"); export const load: PageLoad = async (event) => { - await event.parent(); + const serverData = event.data; - const slug = [ - event.params.category, - event.params.section, - event.params.subsection, - ] - .filter(Boolean) - .join("/"); + if (!serverData.filename) return serverData - // Look for either public or private version of the file - // i.e., try both color.md and color/index.md patterns, in public and private folders - const possiblePaths = [ - `/src/docs/public/${slug}.md`, - `/src/docs/public/${slug}/index.md`, - `/src/docs/private/${slug}.md`, - `/src/docs/private/${slug}/index.md`, - ]; + const doc = mdFiles[serverData.filename]; + const loader: any = await doc(); - const found = Object.entries(mdFiles).find(([path]) => - possiblePaths.includes(path) - ); - - if (found) { - const [filename, doc] = found; - const loader: any = await doc(); - - return { - source: "md", - filename, - Content: loader.default, - metadata: loader.metadata, - }; - } - - throw error(404, `No content found for ${slug}`); + return { + ...serverData, + Content: loader.default, + }; }; export const ssr = true; From 699238787cc3e1e3eae5080612e2994e85eb4d81 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Sun, 21 Dec 2025 02:35:34 +0000 Subject: [PATCH 092/156] banner text Signed-off-by: David Longworth --- packages/stacks-docs-next/src/routes/+layout.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/stacks-docs-next/src/routes/+layout.svelte b/packages/stacks-docs-next/src/routes/+layout.svelte index 701b8e0f97..1bb9b1009e 100644 --- a/packages/stacks-docs-next/src/routes/+layout.svelte +++ b/packages/stacks-docs-next/src/routes/+layout.svelte @@ -56,7 +56,7 @@
    - This is a preview focused on branding – for developer reference please see the curent version or beta version. + This is a brand focused preview – for developer reference please see the curent docs or the beta release.
    From 6dedc2c839bdccc4d759d571b4d38c573a6696c9 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Sun, 21 Dec 2025 02:42:16 +0000 Subject: [PATCH 093/156] move out of mdsvex scope Signed-off-by: David Longworth --- packages/stacks-docs-next/{src/docs => }/migrate.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename packages/stacks-docs-next/{src/docs => }/migrate.md (100%) diff --git a/packages/stacks-docs-next/src/docs/migrate.md b/packages/stacks-docs-next/migrate.md similarity index 100% rename from packages/stacks-docs-next/src/docs/migrate.md rename to packages/stacks-docs-next/migrate.md From 457a8677e05b9e42b554b035a266088bc58a7412 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Sun, 21 Dec 2025 11:52:31 +0000 Subject: [PATCH 094/156] tmp fix breadcrumb Signed-off-by: David Longworth --- .../docs/public/system/components/breadcrumbs.md | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/packages/stacks-docs-next/src/docs/public/system/components/breadcrumbs.md b/packages/stacks-docs-next/src/docs/public/system/components/breadcrumbs.md index 6d5a5f5967..5ffd3a66ae 100644 --- a/packages/stacks-docs-next/src/docs/public/system/components/breadcrumbs.md +++ b/packages/stacks-docs-next/src/docs/public/system/components/breadcrumbs.md @@ -7,7 +7,7 @@ updated: 2025-12-20 ## Components @@ -131,11 +131,11 @@ Breadcrumbs are used to provide context for the currently-viewed page and reduce
    From 860adbfaf0bfc6eae2b284dc3d9bfa05f3968c5f Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 27 Jan 2026 08:31:36 +1300 Subject: [PATCH 117/156] fix: fix login for branch urls --- package-lock.json | 384 ---------------------- packages/stacks-docs-next/src/lib/auth.ts | 4 +- 2 files changed, 3 insertions(+), 385 deletions(-) diff --git a/package-lock.json b/package-lock.json index d9a082aee3..ba27bc6e68 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9699,21 +9699,6 @@ "node": ">= 4" } }, - "node_modules/image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/immediate": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", @@ -10730,76 +10715,6 @@ } } }, - "node_modules/less/node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/less/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/less/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/less/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "license": "ISC", - "optional": true, - "peer": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/less/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -11645,40 +11560,6 @@ "dev": true, "license": "MIT" }, - "node_modules/needle": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", - "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "iconv-lite": "^0.6.3", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "node_modules/needle/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -11910,18 +11791,6 @@ "node": ">= 0.4" } }, - "node_modules/obug": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", - "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", - "funding": [ - "https://github.com/sponsors/sxzz", - "https://opencollective.com/debug" - ], - "license": "MIT", - "optional": true, - "peer": true - }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -19386,136 +19255,6 @@ "vite": "^6.3.0 || ^7.0.0" } }, - "packages/stacks-docs-next/node_modules/@types/chai": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", - "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@types/deep-eql": "*", - "assertion-error": "^2.0.1" - } - }, - "packages/stacks-docs-next/node_modules/@vitest/expect": { - "version": "4.0.16", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.16.tgz", - "integrity": "sha512-eshqULT2It7McaJkQGLkPjPjNph+uevROGuIMJdG3V+0BSR2w9u6J9Lwu+E8cK5TETlfou8GRijhafIMhXsimA==", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@standard-schema/spec": "^1.0.0", - "@types/chai": "^5.2.2", - "@vitest/spy": "4.0.16", - "@vitest/utils": "4.0.16", - "chai": "^6.2.1", - "tinyrainbow": "^3.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "packages/stacks-docs-next/node_modules/@vitest/mocker": { - "version": "4.0.16", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.16.tgz", - "integrity": "sha512-yb6k4AZxJTB+q9ycAvsoxGn+j/po0UaPgajllBgt1PzoMAAmJGYFdDk0uCcRcxb3BrME34I6u8gHZTQlkqSZpg==", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@vitest/spy": "4.0.16", - "estree-walker": "^3.0.3", - "magic-string": "^0.30.21" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "msw": "^2.4.9", - "vite": "^6.0.0 || ^7.0.0-0" - }, - "peerDependenciesMeta": { - "msw": { - "optional": true - }, - "vite": { - "optional": true - } - } - }, - "packages/stacks-docs-next/node_modules/@vitest/pretty-format": { - "version": "4.0.16", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.16.tgz", - "integrity": "sha512-eNCYNsSty9xJKi/UdVD8Ou16alu7AYiS2fCPRs0b1OdhJiV89buAXQLpTbe+X8V9L6qrs9CqyvU7OaAopJYPsA==", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "tinyrainbow": "^3.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "packages/stacks-docs-next/node_modules/@vitest/runner": { - "version": "4.0.16", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.16.tgz", - "integrity": "sha512-VWEDm5Wv9xEo80ctjORcTQRJ539EGPB3Pb9ApvVRAY1U/WkHXmmYISqU5E79uCwcW7xYUV38gwZD+RV755fu3Q==", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@vitest/utils": "4.0.16", - "pathe": "^2.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "packages/stacks-docs-next/node_modules/@vitest/snapshot": { - "version": "4.0.16", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.16.tgz", - "integrity": "sha512-sf6NcrYhYBsSYefxnry+DR8n3UV4xWZwWxYbCJUt2YdvtqzSPR7VfGrY0zsv090DAbjFZsi7ZaMi1KnSRyK1XA==", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@vitest/pretty-format": "4.0.16", - "magic-string": "^0.30.21", - "pathe": "^2.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "packages/stacks-docs-next/node_modules/@vitest/spy": { - "version": "4.0.16", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.16.tgz", - "integrity": "sha512-4jIOWjKP0ZUaEmJm00E0cOBLU+5WE0BpeNr3XN6TEF05ltro6NJqHWxXD0kA8/Zc8Nh23AT8WQxwNG+WeROupw==", - "license": "MIT", - "optional": true, - "peer": true, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "packages/stacks-docs-next/node_modules/@vitest/utils": { - "version": "4.0.16", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.16.tgz", - "integrity": "sha512-h8z9yYhV3e1LEfaQ3zdypIrnAg/9hguReGZoS7Gl0aBG5xgA410zBqECqmaF/+RkTggRsfnzc1XaAHA6bmUufA==", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@vitest/pretty-format": "4.0.16", - "tinyrainbow": "^3.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, "packages/stacks-docs-next/node_modules/better-auth": { "version": "1.4.7", "resolved": "https://registry.npmjs.org/better-auth/-/better-auth-1.4.7.tgz", @@ -19632,17 +19371,6 @@ } } }, - "packages/stacks-docs-next/node_modules/chai": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.1.tgz", - "integrity": "sha512-p4Z49OGG5W/WBCPSS/dH3jQ73kD6tiMmUM+bckNK6Jr5JHMG3k9bg/BvKR8lKmtVBKmOiuVaV2ws8s9oSbwysg==", - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=18" - } - }, "packages/stacks-docs-next/node_modules/esbuild": { "version": "0.27.2", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", @@ -19685,39 +19413,6 @@ "@esbuild/win32-x64": "0.27.2" } }, - "packages/stacks-docs-next/node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "packages/stacks-docs-next/node_modules/tinyexec": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", - "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=18" - } - }, - "packages/stacks-docs-next/node_modules/tinyrainbow": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.0.3.tgz", - "integrity": "sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==", - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=14.0.0" - } - }, "packages/stacks-docs-next/node_modules/vite": { "version": "7.3.0", "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.0.tgz", @@ -19793,85 +19488,6 @@ } } }, - "packages/stacks-docs-next/node_modules/vitest": { - "version": "4.0.16", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.16.tgz", - "integrity": "sha512-E4t7DJ9pESL6E3I8nFjPa4xGUd3PmiWDLsDztS2qXSJWfHtbQnwAWylaBvSNY48I3vr8PTqIZlyK8TE3V3CA4Q==", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@vitest/expect": "4.0.16", - "@vitest/mocker": "4.0.16", - "@vitest/pretty-format": "4.0.16", - "@vitest/runner": "4.0.16", - "@vitest/snapshot": "4.0.16", - "@vitest/spy": "4.0.16", - "@vitest/utils": "4.0.16", - "es-module-lexer": "^1.7.0", - "expect-type": "^1.2.2", - "magic-string": "^0.30.21", - "obug": "^2.1.1", - "pathe": "^2.0.3", - "picomatch": "^4.0.3", - "std-env": "^3.10.0", - "tinybench": "^2.9.0", - "tinyexec": "^1.0.2", - "tinyglobby": "^0.2.15", - "tinyrainbow": "^3.0.3", - "vite": "^6.0.0 || ^7.0.0", - "why-is-node-running": "^2.3.0" - }, - "bin": { - "vitest": "vitest.mjs" - }, - "engines": { - "node": "^20.0.0 || ^22.0.0 || >=24.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@edge-runtime/vm": "*", - "@opentelemetry/api": "^1.9.0", - "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", - "@vitest/browser-playwright": "4.0.16", - "@vitest/browser-preview": "4.0.16", - "@vitest/browser-webdriverio": "4.0.16", - "@vitest/ui": "4.0.16", - "happy-dom": "*", - "jsdom": "*" - }, - "peerDependenciesMeta": { - "@edge-runtime/vm": { - "optional": true - }, - "@opentelemetry/api": { - "optional": true - }, - "@types/node": { - "optional": true - }, - "@vitest/browser-playwright": { - "optional": true - }, - "@vitest/browser-preview": { - "optional": true - }, - "@vitest/browser-webdriverio": { - "optional": true - }, - "@vitest/ui": { - "optional": true - }, - "happy-dom": { - "optional": true - }, - "jsdom": { - "optional": true - } - } - }, "packages/stacks-docs-next/node_modules/zod": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/zod/-/zod-4.2.1.tgz", diff --git a/packages/stacks-docs-next/src/lib/auth.ts b/packages/stacks-docs-next/src/lib/auth.ts index b7321c137e..f14ecf4a41 100644 --- a/packages/stacks-docs-next/src/lib/auth.ts +++ b/packages/stacks-docs-next/src/lib/auth.ts @@ -6,7 +6,9 @@ import { env } from "$env/dynamic/private"; import { getRequestEvent } from "$app/server"; // https://docs.netlify.com/build/configure-builds/environment-variables/#deploy-urls-and-metadata -const baseURL = process.env.URL || "http://localhost:5173"; +// DEPLOY_PRIME_URL includes branch subdomains (e.g., alpha.stackoverflow.design) +// URL is always the primary site URL +const baseURL = process.env.DEPLOY_PRIME_URL || process.env.URL || "http://localhost:5173"; export const auth = betterAuth({ baseURL, From d7693358f4934ceade1d7f6c8d9cf11bc0ec02ad Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 27 Jan 2026 08:41:11 +1300 Subject: [PATCH 118/156] use sveltekit env --- packages/stacks-docs-next/src/lib/auth.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/stacks-docs-next/src/lib/auth.ts b/packages/stacks-docs-next/src/lib/auth.ts index f14ecf4a41..d8d691e572 100644 --- a/packages/stacks-docs-next/src/lib/auth.ts +++ b/packages/stacks-docs-next/src/lib/auth.ts @@ -8,7 +8,7 @@ import { getRequestEvent } from "$app/server"; // https://docs.netlify.com/build/configure-builds/environment-variables/#deploy-urls-and-metadata // DEPLOY_PRIME_URL includes branch subdomains (e.g., alpha.stackoverflow.design) // URL is always the primary site URL -const baseURL = process.env.DEPLOY_PRIME_URL || process.env.URL || "http://localhost:5173"; +const baseURL = env.DEPLOY_PRIME_URL || env.URL || "http://localhost:5173"; export const auth = betterAuth({ baseURL, From 9ae670b28d757093c58f48505334c0499f73b42b Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 27 Jan 2026 08:49:57 +1300 Subject: [PATCH 119/156] hard code baseURL for auth --- packages/stacks-docs-next/src/lib/auth.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/stacks-docs-next/src/lib/auth.ts b/packages/stacks-docs-next/src/lib/auth.ts index d8d691e572..9ecf912f53 100644 --- a/packages/stacks-docs-next/src/lib/auth.ts +++ b/packages/stacks-docs-next/src/lib/auth.ts @@ -5,10 +5,8 @@ import { sveltekitCookies } from "better-auth/svelte-kit"; import { env } from "$env/dynamic/private"; import { getRequestEvent } from "$app/server"; -// https://docs.netlify.com/build/configure-builds/environment-variables/#deploy-urls-and-metadata -// DEPLOY_PRIME_URL includes branch subdomains (e.g., alpha.stackoverflow.design) -// URL is always the primary site URL -const baseURL = env.DEPLOY_PRIME_URL || env.URL || "http://localhost:5173"; +// TODO: Make dynamic once we figure out Netlify env vars at runtime +const baseURL = "https://alpha.stackoverflow.design"; export const auth = betterAuth({ baseURL, From ac6ce2663e15b99f1e9f93a5c9f04c510ab05720 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 27 Jan 2026 11:05:43 +1300 Subject: [PATCH 120/156] all content for llms --- packages/stacks-docs-next/src/routes/llms.txt/+server.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/stacks-docs-next/src/routes/llms.txt/+server.js b/packages/stacks-docs-next/src/routes/llms.txt/+server.js index 2e29db572d..882549b64e 100644 --- a/packages/stacks-docs-next/src/routes/llms.txt/+server.js +++ b/packages/stacks-docs-next/src/routes/llms.txt/+server.js @@ -3,7 +3,7 @@ import htmlToMd from "$src/lib/htmlToMd"; export async function GET() { const baseUrl = "http://beta.stackoverflow.design/"; - const mdFiles = import.meta.glob("$docs/public/system/**/*.md"); + const mdFiles = import.meta.glob("$docs/public/**/**/*.md"); let groupedDocs = {}; @@ -36,7 +36,7 @@ export async function GET() { const page = await doc(); output += ` - + ### Page: ${page.metadata?.title ?? path} URL: ${baseUrl}${getSlug(path)} Date: ${new Date().toISOString()} From f9518c1c39d3d0f8423b16f490391a50bf347e0f Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 27 Jan 2026 11:16:02 +1300 Subject: [PATCH 121/156] fix baseurl for llms --- packages/stacks-docs-next/src/routes/llms.txt/+server.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/stacks-docs-next/src/routes/llms.txt/+server.js b/packages/stacks-docs-next/src/routes/llms.txt/+server.js index 882549b64e..150085cfeb 100644 --- a/packages/stacks-docs-next/src/routes/llms.txt/+server.js +++ b/packages/stacks-docs-next/src/routes/llms.txt/+server.js @@ -2,7 +2,7 @@ import { render } from "svelte/server"; import htmlToMd from "$src/lib/htmlToMd"; export async function GET() { - const baseUrl = "http://beta.stackoverflow.design/"; + const baseUrl = "http://alpha.stackoverflow.design/"; const mdFiles = import.meta.glob("$docs/public/**/**/*.md"); let groupedDocs = {}; From fb0bbea51ed5fe0116c68f7743028ba26b2551c2 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 27 Jan 2026 11:16:11 +1300 Subject: [PATCH 122/156] https --- packages/stacks-docs-next/src/routes/llms.txt/+server.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/stacks-docs-next/src/routes/llms.txt/+server.js b/packages/stacks-docs-next/src/routes/llms.txt/+server.js index 150085cfeb..04c13518c1 100644 --- a/packages/stacks-docs-next/src/routes/llms.txt/+server.js +++ b/packages/stacks-docs-next/src/routes/llms.txt/+server.js @@ -2,7 +2,7 @@ import { render } from "svelte/server"; import htmlToMd from "$src/lib/htmlToMd"; export async function GET() { - const baseUrl = "http://alpha.stackoverflow.design/"; + const baseUrl = "https://alpha.stackoverflow.design/"; const mdFiles = import.meta.glob("$docs/public/**/**/*.md"); let groupedDocs = {}; From eb4f4bdffc2ef0abc9b42bc0212cbcb8ab584ca2 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Thu, 29 Jan 2026 12:00:42 +1300 Subject: [PATCH 123/156] add scopes --- packages/stacks-docs-next/src/lib/auth.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/stacks-docs-next/src/lib/auth.ts b/packages/stacks-docs-next/src/lib/auth.ts index 9ecf912f53..7896752df7 100644 --- a/packages/stacks-docs-next/src/lib/auth.ts +++ b/packages/stacks-docs-next/src/lib/auth.ts @@ -31,6 +31,7 @@ export const auth = betterAuth({ clientId: env.AUTH_OKTA_ID || "", clientSecret: env.AUTH_OKTA_SECRET || "", issuer: env.AUTH_OKTA_ISSUER || "", + scopes: ["openid", "email", "profile"], }), ], }), From b75f4958bf0377efc8000f879999d40fbbaec3f8 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Thu, 29 Jan 2026 12:09:52 +1300 Subject: [PATCH 124/156] try placeholder user --- packages/stacks-docs-next/src/lib/auth.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/stacks-docs-next/src/lib/auth.ts b/packages/stacks-docs-next/src/lib/auth.ts index 7896752df7..fad94b55e5 100644 --- a/packages/stacks-docs-next/src/lib/auth.ts +++ b/packages/stacks-docs-next/src/lib/auth.ts @@ -31,7 +31,19 @@ export const auth = betterAuth({ clientId: env.AUTH_OKTA_ID || "", clientSecret: env.AUTH_OKTA_SECRET || "", issuer: env.AUTH_OKTA_ISSUER || "", - scopes: ["openid", "email", "profile"], + scopes: ["openid"], + getUserInfo: async (tokens) => { + const [, payload] = tokens.idToken?.split(".") ?? []; + if (!payload) return null; + const decoded = JSON.parse(atob(payload)); + if (!decoded.sub) return null; + return { + id: decoded.sub, + email: `${decoded.sub}@okta.local`, + name: decoded.sub, + emailVerified: true, + }; + }, }), ], }), From 69ff4ec8291c5a6dba451ad9f1e7092d019165eb Mon Sep 17 00:00:00 2001 From: David Longworth Date: Thu, 29 Jan 2026 12:21:40 +1300 Subject: [PATCH 125/156] remove test --- packages/stacks-docs-next/src/lib/auth.ts | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/packages/stacks-docs-next/src/lib/auth.ts b/packages/stacks-docs-next/src/lib/auth.ts index fad94b55e5..7896752df7 100644 --- a/packages/stacks-docs-next/src/lib/auth.ts +++ b/packages/stacks-docs-next/src/lib/auth.ts @@ -31,19 +31,7 @@ export const auth = betterAuth({ clientId: env.AUTH_OKTA_ID || "", clientSecret: env.AUTH_OKTA_SECRET || "", issuer: env.AUTH_OKTA_ISSUER || "", - scopes: ["openid"], - getUserInfo: async (tokens) => { - const [, payload] = tokens.idToken?.split(".") ?? []; - if (!payload) return null; - const decoded = JSON.parse(atob(payload)); - if (!decoded.sub) return null; - return { - id: decoded.sub, - email: `${decoded.sub}@okta.local`, - name: decoded.sub, - emailVerified: true, - }; - }, + scopes: ["openid", "email", "profile"], }), ], }), From f589909fd3dbf84b784e1bfb9ce648d4dfa55663 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Thu, 29 Jan 2026 12:30:55 +1300 Subject: [PATCH 126/156] remove okta specific --- packages/stacks-docs-next/src/lib/auth.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/stacks-docs-next/src/lib/auth.ts b/packages/stacks-docs-next/src/lib/auth.ts index 7896752df7..22bc43f538 100644 --- a/packages/stacks-docs-next/src/lib/auth.ts +++ b/packages/stacks-docs-next/src/lib/auth.ts @@ -1,5 +1,5 @@ import { betterAuth } from "better-auth"; -import { genericOAuth, okta } from "better-auth/plugins"; +import { genericOAuth } from "better-auth/plugins"; import { sveltekitCookies } from "better-auth/svelte-kit"; import { env } from "$env/dynamic/private"; @@ -27,12 +27,13 @@ export const auth = betterAuth({ // Okta OAuth via genericOAuth plugin genericOAuth({ config: [ - okta({ +{ + providerId: "okta", clientId: env.AUTH_OKTA_ID || "", clientSecret: env.AUTH_OKTA_SECRET || "", - issuer: env.AUTH_OKTA_ISSUER || "", + discoveryUrl: `${env.AUTH_OKTA_ISSUER}/.well-known/openid-configuration`, scopes: ["openid", "email", "profile"], - }), + }, ], }), From 6d7c0804caeab6d4ab709376b76f137039af9f37 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Thu, 12 Feb 2026 19:11:07 +0000 Subject: [PATCH 127/156] add a11y Signed-off-by: David Longworth --- package-lock.json | 286 ++++++----- .../src/docs/public/brand/color/index.md | 2 +- .../docs/public/system/accessibility/alt.md | 154 ++++++ .../docs/public/system/accessibility/intro.md | 446 ++++++++++++++++++ packages/stacks-docs-next/src/structure.yaml | 12 +- 5 files changed, 776 insertions(+), 124 deletions(-) create mode 100644 packages/stacks-docs-next/src/docs/public/system/accessibility/alt.md create mode 100644 packages/stacks-docs-next/src/docs/public/system/accessibility/intro.md diff --git a/package-lock.json b/package-lock.json index ba27bc6e68..dbd83246ce 100644 --- a/package-lock.json +++ b/package-lock.json @@ -893,7 +893,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -910,7 +909,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -927,7 +925,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -944,7 +941,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -961,7 +957,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -978,7 +973,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -995,7 +989,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1012,7 +1005,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1029,7 +1021,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1046,7 +1037,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1063,7 +1053,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1080,7 +1069,6 @@ "cpu": [ "loong64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1097,7 +1085,6 @@ "cpu": [ "mips64el" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1114,7 +1101,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1131,7 +1117,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1148,7 +1133,6 @@ "cpu": [ "s390x" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1165,7 +1149,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1182,7 +1165,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1199,7 +1181,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1216,7 +1197,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1233,7 +1213,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1250,7 +1229,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1267,7 +1245,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1284,7 +1261,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1301,7 +1277,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1318,7 +1293,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1789,7 +1763,7 @@ "version": "0.3.11", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", @@ -2086,7 +2060,6 @@ "version": "2.5.1", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", - "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -2126,7 +2099,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2147,7 +2119,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2168,7 +2139,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2189,7 +2159,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2210,7 +2179,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2231,7 +2199,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2252,7 +2219,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2273,7 +2239,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2294,7 +2259,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2315,7 +2279,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2336,7 +2299,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2357,7 +2319,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2378,7 +2339,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2571,7 +2531,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2585,7 +2544,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2599,7 +2557,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2613,7 +2570,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2627,7 +2583,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2641,7 +2596,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2655,7 +2609,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2669,7 +2622,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2683,7 +2635,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2697,7 +2648,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2711,7 +2661,6 @@ "cpu": [ "loong64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2725,7 +2674,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2739,7 +2687,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2753,7 +2700,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2767,7 +2713,6 @@ "cpu": [ "s390x" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2781,7 +2726,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2795,7 +2739,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2809,7 +2752,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2823,7 +2765,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2837,7 +2778,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2851,7 +2791,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2865,7 +2804,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4326,7 +4264,7 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz", "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@types/chai": "^5.2.2", @@ -4343,7 +4281,7 @@ "version": "5.2.3", "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@types/deep-eql": "*", @@ -4354,7 +4292,7 @@ "version": "5.3.3", "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "assertion-error": "^2.0.1", @@ -4371,7 +4309,7 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz", "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@vitest/spy": "3.2.4", @@ -4398,7 +4336,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@types/estree": "^1.0.0" @@ -4408,7 +4346,7 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz", "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "tinyrainbow": "^2.0.0" @@ -4421,7 +4359,7 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz", "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@vitest/utils": "3.2.4", @@ -4436,7 +4374,7 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz", "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@vitest/pretty-format": "3.2.4", @@ -4451,7 +4389,7 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz", "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "tinyspy": "^4.0.3" @@ -4464,7 +4402,7 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz", "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@vitest/pretty-format": "3.2.4", @@ -5860,7 +5798,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "fill-range": "^7.1.1" @@ -5917,7 +5855,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/bytes": { @@ -5934,7 +5872,7 @@ "version": "6.7.14", "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=8" @@ -6181,7 +6119,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">= 16" @@ -6749,7 +6687,7 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", - "dev": true, + "devOptional": true, "license": "MIT", "peer": true, "dependencies": { @@ -7145,7 +7083,7 @@ "version": "5.0.2", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=6" @@ -7289,7 +7227,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "dev": true, "license": "Apache-2.0", "optional": true, "bin": { @@ -8620,7 +8557,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" @@ -8798,7 +8735,6 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -9081,7 +9017,7 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, + "devOptional": true, "license": "ISC" }, "node_modules/graphemer": { @@ -9699,6 +9635,20 @@ "node": ">= 4" } }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "license": "MIT", + "optional": true, + "peer": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/immediate": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", @@ -9709,7 +9659,7 @@ "version": "5.1.4", "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.4.tgz", "integrity": "sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/import-cwd": { @@ -10013,7 +9963,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -10053,7 +10003,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -10093,7 +10043,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=0.12.0" @@ -10186,7 +10136,7 @@ "version": "3.14.1", "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", - "dev": true, + "devOptional": true, "license": "MIT", "peer": true }, @@ -10355,7 +10305,7 @@ "version": "2.6.1", "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", - "dev": true, + "devOptional": true, "license": "MIT", "bin": { "jiti": "lib/jiti-cli.mjs" @@ -10664,7 +10614,7 @@ "version": "4.4.2", "resolved": "https://registry.npmjs.org/less/-/less-4.4.2.tgz", "integrity": "sha512-j1n1IuTX1VQjIy3tT7cyGbX7nvQOsFLoIqobZv4ttI5axP923gA44zUj6miiA6R5Aoms4sEGVIIcucXUbRI14g==", - "dev": true, + "devOptional": true, "license": "Apache-2.0", "peer": true, "dependencies": { @@ -10715,6 +10665,71 @@ } } }, + "node_modules/less/node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/less/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/less/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "optional": true, + "peer": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/less/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "optional": true, + "peer": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/less/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "optional": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -11011,7 +11026,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/lru-cache": { @@ -11296,7 +11311,7 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "braces": "^3.0.3", @@ -11310,7 +11325,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=8.6" @@ -11560,6 +11575,38 @@ "dev": true, "license": "MIT" }, + "node_modules/needle": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -11591,7 +11638,6 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", - "dev": true, "license": "MIT", "optional": true }, @@ -12090,7 +12136,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true, + "devOptional": true, "license": "MIT", "peer": true, "engines": { @@ -12255,7 +12301,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">= 14.16" @@ -12298,7 +12344,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=6" @@ -13614,7 +13660,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/psl": { @@ -15456,7 +15502,7 @@ "version": "1.93.2", "resolved": "https://registry.npmjs.org/sass/-/sass-1.93.2.tgz", "integrity": "sha512-t+YPtOQHpGW1QWsh1CHQ5cPIr9lbbGZLZnbihP/D/qZj/yuV68m8qarcV17nvkOX81BCrvzAlq2klCQFZghyTg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "chokidar": "^4.0.0", @@ -15477,7 +15523,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "readdirp": "^4.0.1" @@ -15493,7 +15539,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">= 14.18.0" @@ -15507,7 +15553,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", - "dev": true, + "devOptional": true, "license": "ISC" }, "node_modules/scheduler": { @@ -16002,7 +16048,7 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", @@ -16013,7 +16059,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, + "devOptional": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -16370,7 +16416,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz", "integrity": "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "js-tokens": "^9.0.1" @@ -16383,7 +16429,7 @@ "version": "9.0.1", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/style-inject": { @@ -17093,7 +17139,7 @@ "version": "5.44.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.0.tgz", "integrity": "sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==", - "dev": true, + "devOptional": true, "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -17147,7 +17193,7 @@ "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/text-decoder": { @@ -17184,7 +17230,7 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/tinyglobby": { @@ -17208,7 +17254,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": "^18.0.0 || >=20.0.0" @@ -17218,7 +17264,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=14.0.0" @@ -17228,7 +17274,7 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.4.tgz", "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=14.0.0" @@ -17244,7 +17290,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "is-number": "^7.0.0" @@ -17367,7 +17413,7 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, + "devOptional": true, "license": "0BSD" }, "node_modules/tsscmp": { @@ -17956,7 +18002,7 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz", "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "cac": "^6.7.14", @@ -17999,7 +18045,7 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz", "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@types/chai": "^5.2.2", @@ -18072,7 +18118,7 @@ "version": "5.2.3", "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@types/deep-eql": "*", @@ -18083,7 +18129,7 @@ "version": "5.3.3", "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "assertion-error": "^2.0.1", @@ -19375,7 +19421,7 @@ "version": "0.27.2", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", - "devOptional": true, + "dev": true, "hasInstallScript": true, "license": "MIT", "bin": { @@ -19417,7 +19463,7 @@ "version": "7.3.0", "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.0.tgz", "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "esbuild": "^0.27.0", diff --git a/packages/stacks-docs-next/src/docs/public/brand/color/index.md b/packages/stacks-docs-next/src/docs/public/brand/color/index.md index 8f2efcb40f..7c174835c3 100644 --- a/packages/stacks-docs-next/src/docs/public/brand/color/index.md +++ b/packages/stacks-docs-next/src/docs/public/brand/color/index.md @@ -76,4 +76,4 @@ Color also comes through in our highlighted headlines. The guidance below shows ## Accessibility -Accessible design starts with clear, readable text. In digital spaces, that means maintaining strong contrast between text and background. Learn more [about requirements here](https://stackoverflow.design/product/foundation/accessibility/). +Accessible design starts with clear, readable text. In digital spaces, that means maintaining strong contrast between text and background. Learn more [about requirements here](/system/accessibility/intro). diff --git a/packages/stacks-docs-next/src/docs/public/system/accessibility/alt.md b/packages/stacks-docs-next/src/docs/public/system/accessibility/alt.md new file mode 100644 index 0000000000..98fdaf9887 --- /dev/null +++ b/packages/stacks-docs-next/src/docs/public/system/accessibility/alt.md @@ -0,0 +1,154 @@ +--- +title: Alt-text +description: Everything we know about alt-texts, when to use them, and how to craft them. +updated: 2026-02-12 +--- + + + +## How to write alt-text + +For a helpful decision tree on how and when to write alt-text, check out the W3C's [alt-text decision tree](https://www.w3.org/WAI/tutorials/images/decision-tree/). + +An alt-text is a description of an image that's shown to people who can't see the image. Alt-texts help people with little or no vision who use assistive technologies, people who have turned off images, and search engines. + +### Describe the image concisely + +It might sound obvious, but an alt-text should describe the image in case an image doesn't display or someone has trouble seeing it. The goal of alt-text is to give the necessary information from the image **at a glance**. It's best to include only the necessary information. + +
    + Man and woman using laptops at a standing table, Illustration. +
    + + + +

    Don't

    +
      +
    • "People using computers."
    • +
    • "Man in a purple shirt and woman in blue pants are typing on laptops and there's a plant on the floor nearby."
    • +
    • "Man and woman using computers, illustrated by Jane Doe © 2019."
    • +
    +
    + +

    Do

    +
      +
    • "Man and woman using laptops at a standing table, Illustration."
    • +
    +
    +
    + +Take context into account. For instance, if the image above is part of a blog post about standing tables, then it's safer to skip the part about standing tables. + +### Don't say it's an image + +Don't start alt-texts with things like "Image of" or "Photo of.". Screen readers add that by default. If it's a special type of image (like an icon), you can note that at the end. + + + +

    Don't

    +
      +
    • "Image of a rocket."
    • +
    • "Illustration of a rocket."
    • +
    • "Photo of a rocket."
    • +
    • "Icon of a rocket."
    • +
    +
    + +

    Do

    +
      +
    • "A rocket."
    • +
    • "A rocket, icon." (if noting the type)
    • +
    +
    +
    + +### End with a period + +End the alt-text with a period. This makes screen readers pause a bit after the last word in the alt-text, creating a natural pause before the next bit of text. + +## When not to write alt-text + +In most cases you should use an alt-text for images, but there are some exceptions where you should leave the alt-text blank. + +### Decorative images + +If an image does not convey any meaning to the user, leave the alt-text blank. + +```html +
    + +

    +

    +
    +``` + +
    +
    + +
    +

    Improve efficiency and ship better code

    +

    There's a reason the world's largest developer teams rely on Stack Overflow Enterprise—it leads to better product and allows distributed teams to securely collaborate and share knowledge.

    +
    + +The rocket here doesn't add meaningful information. + +### Images accompanied by text + +If an image has a label nearby, leave the alt-text blank. + +```html +
    + +

    +

    +
    +``` + +
    +
    + +
    +
    +

    TOP LEADERBOARD: 728X90

    +

    This ad unit is the most visible on the site.

    +
    +
    + +The nearby text here already explains what the graphic illustrates. If there was alt-text here, screen readers would repeat information to the user. + +
    +
    +
    + Note: In these cases, leaving the alt attribute empty (alt="") will cause a screenreader to skip over the image. Never remove the alt-attribute. When a screenreader comes to an image without an alt attribute, it will dictate the filename (Eg. "SO underscore logo dot png"). +
    +
    +
    + +## How to add alt-text + +### Using <img> + +Inside an `` tag, add the alt-text inside the `alt` attribute: + +```html +The alt text. +The alt text. +``` + +### Using inline SVG + +Inline SVG doesn't support the `alt` attribute, so instead add two wai-aria attributes: `role="img"` and `aria-label="The alt-text."`: + +```html + +``` + +--- + +

    This content was adapted from Axess Lab.

    diff --git a/packages/stacks-docs-next/src/docs/public/system/accessibility/intro.md b/packages/stacks-docs-next/src/docs/public/system/accessibility/intro.md new file mode 100644 index 0000000000..c09d992660 --- /dev/null +++ b/packages/stacks-docs-next/src/docs/public/system/accessibility/intro.md @@ -0,0 +1,446 @@ +--- +title: Accessibility +description: A non-comprehensive guide to accessibility best practices when using Stacks. +updated: 2026-02-12 +--- + + + +## Target + +All Stack Overflow product UIs must conform to the AA conformance level of the Web Content Accessibility Guidelines (WCAG) 2.2 with a few exceptions around color contrast documented below. + +### High contrast modes + +When high contrast mode is enabled, Stack Overflow product UIs must meet or exceed the [Success Criterion 1.4.6 Contrast (Enhanced)](https://www.w3.org/TR/WCAG22/#contrast-enhanced) of the [Web Content Accessibility Guidelines (WCAG) 2.2](https://www.w3.org/TR/WCAG22/) and should conform to the remaining [AAA conformance level rules](https://www.w3.org/TR/WCAG22/#cc1) when reasonably achievable. This only applies to the subset of Stack Overflow products that provide high contrast modes. **Note: not all Stack Overflow products are expected to support high contrast modes**. + +## Visual accessibility + +Stack Overflow product UIs MUST conform to a custom conformance level of the Accessible Perceptual Contrast Algorithm (APCA). This custom conformance level replaces the [AA conformance level](https://www.w3.org/TR/WCAG22/#cc1) of the [Web Content Accessibility Guidelines (WCAG) 2.2](https://www.w3.org/TR/WCAG22/) for color contrast. + +### Color & contrast + +Stacks aims to equip you with an accessible color palette and has been tested against WCAG AA, WCAG AAA and the newer APCA color standards. Most of our color combinations meet WCAG AA and APCA levels defined below. We also offer high contrast mode which offers a greater level of contrast. + +#### Contrast ratios + +Contrast is the difference in luminance or color between any two elements. All visual readers require ample luminance contrast for fluent readability. Stack Overflow products must conform to a custom conformance level of the Accessible Perceptual Contrast Algorithm (APCA). Based on our custom conformance level, all text must have a Lightness contrast (Lc) value of 60, body copy must have a Lc value of 75, icons must have a Lc value of 45, and placeholder and disabled text must have a Lc of 30. These numbers will be negative when calculating for dark mode. + + + +

    Don't

    +

    Use low luminance contrast that fails our standards.

    +
    + +
    Robotics
    +
    +
    + +

    Do

    +

    Use luminance contrast that meets our standards as defined above.

    +
    + +
    Robotics
    +
    +
    +
    + +#### Visual cues + +Visual readers with color vision deficiency (CVD) have problems differentiating some hues and therefore these users need help discerning differences between items. This means that color (hue) should never be the sole means of communicating information and should always be paired with a non-color dependent indicator to accommodate all visual users. + + + +

    Don't

    +

    Use color alone to convey meaning.

    +
    + +
    +
    + +

    Do

    +

    Use an icon alongside color to convey meaning.

    +
    + + +
    +
    +
    + +## Focus states + +Some people navigate through a website by using a keyboard or other device (instead of a mouse). A focus state should clearly let users know which item they're on and is ready to interact with. Stack's has taken a hybrid approach in using both the browser's default styles (smaller interactive components like text links) and a custom focus ring. + +### Foundation for custom approach + +The custom approach adds two different outline rings on the inside of the component. The outer ring color uses `secondary-theme-400` (matching the primary button color) and the inner ring color uses `white` (matching the background). + +
    +
    + +
    +
    +

    Default

    +
    +
    +
    + +
    +
    +

    Focus

    +
    +
    +
    + +The outer ring color will always display as the theme color even when applied to a `muted` or `danger` styled button. This ensures the focus ring maintains a 3:1 color contrast ratio for any adjacent colors (WCAG level AA) within any theme (assuming the `secondary-theme` color already passes the 3:1 contrast ratio). + +
    +
    + +
    +
    +

    Tonal default

    +
    +
    +
    + +
    +
    +

    Tonal focus

    +
    +
    +
    + +
    +
    +

    Danger filled default

    +
    +
    +
    + +
    +
    +

    Danger filled focus

    +
    +
    +
    + +### Meeting level AAA + +Both focus rings are always 2px thick. This allows the focus state to meet [WCAG 2.4.13 Focus Appearance (AAA)](https://www.w3.org/WAI/WCAG22/Understanding/focus-appearance.html) standards for High Contrast mode. Whenever possible, the rings should be added to the inside of the component so we can better ensure that the rings don't get accidentally cut off by the surrounding layout (which helps us to meet [WCAG 2.4.11 Focus Not Obscured AA](https://www.w3.org/WAI/WCAG22/Understanding/focus-not-obscured-minimum.html)). However, this does result in a padding reduction within the element, surrounding the text. When choosing to set the focus rings on the inside (inset), the component must have at least 4px of padding at the smallest size. This has been applied to buttons, button groups, navigation, pagination and topbar. + +When the padding amount is not sufficient enough to support a double ring on the inside of the component, the rings are placed on the outside. The components included are tags, toggles, form elements (input fields, selects, radio/checkboxes…), block links and the editor. + +
    +
    + javascript +
    +
    +

    Tag default

    +
    +
    +
    + javascript +
    +
    +

    Tag focus

    +
    +
    +
    + +
    +
    +

    Toggle default

    +
    +
    +
    + +
    +
    +

    Toggle focused

    +
    +
    +
    + +### Consistent style patterns + +#### Filled + +Any component that already has an existing background color that fills the shape will maintain its original fill color. + +
    +
    +
    + +
    +
    +
    +

    Navigation active default

    +
    +
    +
    +
    + +
    +
    +
    +

    Navigation active focus

    +
    +
    +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    +

    Toggle (multi) default

    +
    +
    +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    +

    Toggle (multi) focused

    +
    +
    +
    + +#### Bordered + +For components that have an existing border around the component when not in focus, a background fill color is added in addition to the focus rings. This ensures there's a strong enough visual difference between the non-focus and focus state. These patterns are maintained across all components for consistency. + +
    +
    +
    + + page + 2 + +
    +
    +
    +

    Pagination default

    +
    +
    +
    +
    + + page + 2 + +
    +
    +
    +

    Pagination focus

    +
    +
    +
    + +#### Floating + +Components without an existing fill or border will only display the double rings on focus. Since the inner ring matches the background color in most cases, this will visually appear like a single ring around the perimeter of the component. + +
    +
    + +
    +
    +

    Navigation default

    +
    +
    +
    + +
    +
    +

    Navigation focus

    +
    +
    +
    +
    + + + + + +
    +
    +
    +

    Editor icon default

    +
    +
    +
    +
    + + + + + +
    +
    +
    +

    Editor icon focus

    +
    +
    +
    + +#### Exceptions + +The exceptions to this pattern are the `Clear` button variations. All buttons display a background fill layer when in focus. `Clear`, `Outline` and `Filled` styles will all look the same when in focus. The fill color was chosen to match the existing `Filled` style. + +
    +
    + +
    +
    +

    Clear default

    +
    +
    +
    + +
    +
    +

    Clear focus

    +
    +
    +
    + +
    +
    +

    Tonal default

    +
    +
    +
    + +
    +
    +

    Tonal default focus

    +
    +
    +
    + +### Browser default + +Some focusable elements and Stacks components currently do not include custom focus styling. These elements will instead render the browser-default focus indicators. + +## Viewport size + +All Stack Overflow products must conform to the [WCAG 2.2 SC 1.4.10: Reflow](https://www.w3.org/WAI/WCAG22/Understanding/reflow.html). This requires that our product UIs support viewports as small as **320px x 256px** without requiring the user scrolling in multiple dimensions (unless an element requires it for usage or meaning). Very few users will ever use a viewport this small, but it's important to support it so users can zoom in up to 400% and still have a usable experience. At 400% zoom, a 320x256 viewport translates to 1280x1024, which is a common resolution for many users. Supporting this small viewport size ensures that users with low vision can still use our products effectively. + +### Exceptions + +There are some exceptions to this rule. Some elements such as tables and videos may require horizontal scrolling on small viewports. In these cases, it's acceptable to require scrolling in two dimensions. See the [WCAG 2.2 documentation on Reflow](https://www.w3.org/WAI/WCAG22/Understanding/reflow.html#content-exceptions-for-reflow) for detailed guidance. + +## Landmarks + +[ARIA landmarks](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/landmark_role) should be used across Stack Overflow product pages to provide clear navigation structures for users relying on assistive technologies. Landmarks are inserted into the page explicitly using the `role` attribute on an element (e.g. `role="search"`, etc...) or by leveraging semantic HTML (e.g. an `header` element is given automatically the `banner` landmark). + +Using semantic HTML elements should be preferred over using the `role` attribute whenever possible. + +For a comprehensive guide on using ARIA landmark roles refer to: + +- [WCAG ARIA11 Technique](https://www.w3.org/WAI/WCAG22/Techniques/aria/ARIA11) +- [Using HTML landmark roles to improve accessibility](https://developer.mozilla.org/en-US/blog/aria-accessibility-html-landmark-roles) +- [Landmarks Browser Extension](https://matatk.agrip.org.uk/landmarks) diff --git a/packages/stacks-docs-next/src/structure.yaml b/packages/stacks-docs-next/src/structure.yaml index d15913b027..85d0de25ca 100644 --- a/packages/stacks-docs-next/src/structure.yaml +++ b/packages/stacks-docs-next/src/structure.yaml @@ -64,12 +64,18 @@ navigation: - title: "JavaScript" slug: "javascript" + - title: "Accessibility" + slug: "accessibility" + items: + - title: Best practices + slug: intro + + - title: Alt text + slug: alt + - title: "Foundation" slug: "foundation" items: - - title: "Accessibility" - slug: "accessibility" - - title: "Color fundamentals" slug: "color-fundamentals" From 3713660ba76976bd52d99091b52f257af3f71c97 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Thu, 12 Feb 2026 19:15:01 +0000 Subject: [PATCH 128/156] hide search unless env vars are set Signed-off-by: David Longworth --- .../src/components/Search.svelte | 35 ++++++++++++------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/packages/stacks-docs-next/src/components/Search.svelte b/packages/stacks-docs-next/src/components/Search.svelte index 3be0c949a2..91c616505d 100644 --- a/packages/stacks-docs-next/src/components/Search.svelte +++ b/packages/stacks-docs-next/src/components/Search.svelte @@ -3,7 +3,7 @@ import docsearch from '@docsearch/js'; import '@docsearch/css'; - import { PUBLIC_ALGOLIA_APP_ID, PUBLIC_ALGOLIA_API_KEY, PUBLIC_ALGOLIA_INDEX_NAME } from '$env/static/public'; + import { env } from '$env/dynamic/public'; import { Button, Icon } from '@stackoverflow/stacks-svelte'; import { IconSearch } from '@stackoverflow/stacks-icons'; @@ -11,22 +11,31 @@ let hiddenContainer = $state(); let docSearchButton = $state(); + // Check if all required env vars are available + const searchEnabled = env.PUBLIC_ALGOLIA_APP_ID && env.PUBLIC_ALGOLIA_API_KEY && env.PUBLIC_ALGOLIA_INDEX_NAME; + $effect(() => { + if (!searchEnabled) return; + const container = document.createElement('div'); container.style.display = 'none'; document.body.appendChild(container); hiddenContainer = container; - docsearch({ - container, - appId: PUBLIC_ALGOLIA_APP_ID, - apiKey: PUBLIC_ALGOLIA_API_KEY, - indexName: PUBLIC_ALGOLIA_INDEX_NAME, - }); + try { + docsearch({ + container, + appId: env.PUBLIC_ALGOLIA_APP_ID, + apiKey: env.PUBLIC_ALGOLIA_API_KEY, + indexName: env.PUBLIC_ALGOLIA_INDEX_NAME, + }); - // Store reference to the DocSearch button - docSearchButton = untrack(() => container.querySelector('.DocSearch-Button')); + // Store reference to the DocSearch button + docSearchButton = untrack(() => container.querySelector('.DocSearch-Button')); + } catch (error) { + console.warn('Search initialization failed:', error); + } return () => { container.remove(); @@ -38,6 +47,8 @@ } - \ No newline at end of file +{#if searchEnabled} + +{/if} \ No newline at end of file From 834c4bd5e43f9efabbac4f7f9078ce0d7ddd0331 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Thu, 12 Feb 2026 19:24:31 +0000 Subject: [PATCH 129/156] images Signed-off-by: David Longworth --- .../src/docs/public/system/accessibility/alt.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/stacks-docs-next/src/docs/public/system/accessibility/alt.md b/packages/stacks-docs-next/src/docs/public/system/accessibility/alt.md index 98fdaf9887..1236576679 100644 --- a/packages/stacks-docs-next/src/docs/public/system/accessibility/alt.md +++ b/packages/stacks-docs-next/src/docs/public/system/accessibility/alt.md @@ -23,7 +23,7 @@ An alt-text is a description of an image that's shown to people who can't see th It might sound obvious, but an alt-text should describe the image in case an image doesn't display or someone has trouble seeing it. The goal of alt-text is to give the necessary information from the image **at a glance**. It's best to include only the necessary information.
    - Man and woman using laptops at a standing table, Illustration. +
    @@ -90,7 +90,7 @@ If an image does not convey any meaning to the user, leave the alt-text blank.
    - +

    Improve efficiency and ship better code

    There's a reason the world's largest developer teams rely on Stack Overflow Enterprise—it leads to better product and allows distributed teams to securely collaborate and share knowledge.

    @@ -112,7 +112,7 @@ If an image has a label nearby, leave the alt-text blank.
    - +

    TOP LEADERBOARD: 728X90

    From cff302d95dd609eb54be2fe38938bfb20ff55f9b Mon Sep 17 00:00:00 2001 From: David Longworth Date: Thu, 12 Feb 2026 19:52:48 +0000 Subject: [PATCH 130/156] patterns Signed-off-by: David Longworth --- .../src/docs/public/copy/patterns/messages.md | 296 ++++++++++++++++++ .../src/docs/public/copy/patterns/settings.md | 167 ++++++++++ packages/stacks-docs-next/src/structure.yaml | 10 +- 3 files changed, 472 insertions(+), 1 deletion(-) create mode 100644 packages/stacks-docs-next/src/docs/public/copy/patterns/messages.md create mode 100644 packages/stacks-docs-next/src/docs/public/copy/patterns/settings.md diff --git a/packages/stacks-docs-next/src/docs/public/copy/patterns/messages.md b/packages/stacks-docs-next/src/docs/public/copy/patterns/messages.md new file mode 100644 index 0000000000..59f7690718 --- /dev/null +++ b/packages/stacks-docs-next/src/docs/public/copy/patterns/messages.md @@ -0,0 +1,296 @@ +--- +title: Error & success messages +description: Guidelines for writing clear, helpful error and success messages that guide users effectively. +updated: 2026-02-12 +--- + + + +## Error messages + +Things don't always run smoothly. Our systems can fail. It's important to craft clear, logical, and accessible error messages that help folks get things done. + +### Understand the error + +Before writing anything, make sure you know the answers to these questions: + +- What happened? +- How did it happen? +- How can it be fixed? +- Is it a user or system error, or both? + +How can we expect a user to know what's going on and how to fix something if *we* don't? + +### Set a basic structure + +A good error message structure explains what happened and what can be done about it. A good error message has the following structure: + +
    + [The error] + [How to fix it] +
    + +Here's an example of an inline form error message: + +
    +
    +
    This SVG file is invalid.
    +
    [The error]
    +
    +
    +
    Check its syntax or pick another file.
    +
    [How to fix it]
    +
    +
    + +If we can't place the specific error, we're deliberately vague. The best we can do is tell the user how they might fix it. + +
    +
    +
    There was a problem syncing data.
    +
    [The error]
    +
    +
    +
    Check your database configuration and try again.
    +
    [How to fix it]
    +
    +
    + +### Keep it short and simple + +We want to help folks fix errors quickly, so error messages should be concise. Strip out unnecessary words. Keep detail only when it's relevant. + + + +

    Don't

    +
      +
    • "Can't create 'Engineering' because a team with that name already exists. Specify a different name."
    • +
    • "Your notification failed and needs to be re-authorized."
    • +
    +
    + +

    Do

    +
      +
    • "'Engineering' already exists. Try another team name."
    • +
    • "Notification failed, please re-authorize it."
    • +
    +
    +
    + +### Consider etiquette + +#### System error + +Apologize when it's the system's fault and let the user know it's not their fault. Use an active voice to accept responsibility. For example: + + + +

    Don't

    +
      +
    • "Your changes couldn't be saved."
    • +
    +
    + +

    Do

    +
      +
    • "We couldn't save your changes."
    • +
    +
    +
    + +#### User error + +Sometimes it's the user's fault, but there are ways to tell them without sounding like we're pointing the finger. For example, we can focus on the desired action rather than telling the user they've messed up: + + + +

    Don't

    +
      +
    • "You've missed your name."
    • +
    • "You can't leave this blank."
    • +
    +
    + +

    Do

    +
      +
    • "Please enter your name."
    • +
    • "Please enter a team name."
    • +
    +
    +
    + +A passive voice can work for more serious user errors, such as "This card was declined". + +### Use the right tone + +Tone is how you say something. A message's tone should depend on how serious the error is. Warmth is great for less serious errors, but avoid anything too lighthearted for serious errors. + +**Avoid mechanical language and jargon, opting for plain language at all times**. The aim is to make a user feel like you're there, helping them solve the error. + + + +

    Don't

    +
      +
    • "The password entered does not match our records. Please re-enter your password."
    • +
    +
    + +

    Do

    +
      +
    • "That password's not right. Try again."
    • +
    +
    +
    + +At the same time, error messages are not the place to be clever or make jokes. This will only muddy your message and add to your user's frustration. + + + +

    Don't

    +
      +
    • "Whoops! Looks like your card was declined. Better ask Mom for another one."
    • +
    +
    + +

    Do

    +
      +
    • "This card was declined. Try another payment method."
    • +
    +
    +
    + +### What happens next + +Some errors might need a button or link to fix or dismiss the message. + +Always say what happens next. Buttons and links should make sense when read in isolation. Avoid just using things like "OK". "OK" can be used to dismiss a message or take an action. Be clear to the user what they're saying "OK" to. + + + +

    Don't

    +
    +

    Can't display metrics

    +

    You need to restart your data sync.

    +
    + + +
    +
    +
    + +

    Do

    +
    +

    Can't display metrics

    +

    You need to restart your data sync.

    +
    + + +
    +
    +
    +
    + +### Design, placement, and timing + +Error messages should take the whole user experience into consideration. It should be clear what triggers an error message and what it's related to. + +- [Inline validation](/system/forms/inputs) styles are best for displaying errors in **UI with form fields**. +- [Inline notifications](/system/components/notices) are best for displaying errors in **UI without form fields**. They should be located within close proximity of items that affect a feature. +- [Modals](/system/components/modals) are best when you want to ensure you **capture someone's focus**. + +[Toast notifications](/system/components/notices) are best for confirming that an action someone performed is taking place or successfully completed. Since they appear away from the layout and disappear after a few seconds, toast notifications aren't recommended for error messages. + +## Success messages + +It's important that we keep users informed when actions are successfully completed. Success states throughout the user flow let users know that they're either getting closer to achieving the goal, or have completed it. + +### Understand the situation + +Before writing anything, make sure you know the answers to these questions: + +- How close is the user to achieving the intended goal? +- What does the user need to do next? +- Is this message likely to appear frequently or is it unique? + +### Be specific + +A good success message provides clear information that the performed action was completed. It's fine to let users know that what they did was successful, but even better to be specific about the action they took. + + + +

    Don't

    +
      +
    • "Successfully saved."
    • +
    • "Upgrade complete."
    • +
    +
    + +

    Do

    +
      +
    • "Your account details have been saved."
    • +
    • "You've upgraded to the Business tier of Teams."
    • +
    +
    +
    + +### Use the right tone + +Tone is how you say something. Excitement makes sense for successfully finishing a large task, but avoid overdoing it for a regular system success. Limit exclamation marks to one per page. + + + +

    Don't

    +
      +
    • "Thanks for updating your email."
    • +
    • "Account created."
    • +
    +
    + +

    Do

    +
      +
    • "Your email has been updated."
    • +
    • "Thanks for signing up. Your account has been created."
    • +
    +
    +
    + +### What happens next + +Is the successful action part of a larger goal? Are there other recommended actions that need to be performed? Success messages can be a good way to guide the user to the next action for a more seamless interaction. + + + +

    Don't

    +
    +

    "We've saved your profile changes."

    + +
    +
    +

    "Your payment is complete."

    + +
    +
    + +

    Do

    +
    +

    "We've saved your profile changes."

    + +
    +
    +

    "Your payment is complete."

    + +
    +
    +
    + +### Design, placement, and timing + +- [Inline validation](/system/forms/inputs) styles are best for displaying success in **UI with form fields**. +- [Toasts](/system/components/notices) are best for **common success messages**. Since they appear away from the layout and disappear after a few seconds, these are great for simple actions that were successfully completed. +- [Modals](/system/components/modals) are best when you want to ensure you **capture someone's focus** for a decision. diff --git a/packages/stacks-docs-next/src/docs/public/copy/patterns/settings.md b/packages/stacks-docs-next/src/docs/public/copy/patterns/settings.md new file mode 100644 index 0000000000..2aa0fb7757 --- /dev/null +++ b/packages/stacks-docs-next/src/docs/public/copy/patterns/settings.md @@ -0,0 +1,167 @@ +--- +title: Settings & preferences +description: Guidelines for writing clear, user-friendly labels and descriptions for settings and preferences. +updated: 2026-02-12 +--- + + + +## Write labels in the affirmative + +Preferences and settings should always be written in the affirmative—even if the preference is meant to disable a feature. When a user checks a feature preference, they should be *getting* that feature. + + + +

    Don't

    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +
    + +

    Do

    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +
    +
    + +## Use descriptions to explain + +Descriptions are optional and can supplement a label in a few ways: + +- Further define a label +- Explain how the input will be used +- Show an example of a valid input + +Avoid using tooltips. + + + +

    Don't

    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +
    + +

    Do

    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +
    +
    + +## Don't rely on placeholder text + +Placeholder text can be used to show an example of a valid input. + +Placeholder text disappears once a character is typed in the input, so the user should be able to complete their task without placeholder text always visible. + + + +

    Don't

    +
    +
    + + +
    +
    + + +
    +
    +
    + +

    Do

    +
    +
    + + +
    +
    + + +
    +
    +
    +
    diff --git a/packages/stacks-docs-next/src/structure.yaml b/packages/stacks-docs-next/src/structure.yaml index 85d0de25ca..2f859895d0 100644 --- a/packages/stacks-docs-next/src/structure.yaml +++ b/packages/stacks-docs-next/src/structure.yaml @@ -27,7 +27,6 @@ navigation: - title: "Motion" slug: "motion" image: "/images/heros/motion.svg" - new: true - title: "Copywriting" slug: "copy" @@ -45,6 +44,15 @@ navigation: slug: "styleguide" image: "/images/heros/styleguide.svg" + - title: "Patterns" + slug: "patterns" + items: + - title: "Error & success messages" + slug: "messages" + + - title: "Settings & preferences" + slug: "settings" + - title: "Product" slug: "system" description: "Components & guidelines for devleopers when building Stack Overflow." From ff17af29149102c78f5144b4c43423fcb90db81e Mon Sep 17 00:00:00 2001 From: David Longworth Date: Thu, 12 Feb 2026 20:20:35 +0000 Subject: [PATCH 131/156] copy heros Signed-off-by: David Longworth --- packages/stacks-docs-next/src/structure.yaml | 1 + .../static/images/heros/naming.svg | 164 +----------------- .../static/images/heros/patterns.svg | 1 + .../static/images/heros/styleguide.svg | 33 +--- .../static/images/heros/voice.svg | 40 +---- 5 files changed, 5 insertions(+), 234 deletions(-) create mode 100644 packages/stacks-docs-next/static/images/heros/patterns.svg diff --git a/packages/stacks-docs-next/src/structure.yaml b/packages/stacks-docs-next/src/structure.yaml index 2f859895d0..31981c65ab 100644 --- a/packages/stacks-docs-next/src/structure.yaml +++ b/packages/stacks-docs-next/src/structure.yaml @@ -46,6 +46,7 @@ navigation: - title: "Patterns" slug: "patterns" + image: "/images/heros/patterns.svg" items: - title: "Error & success messages" slug: "messages" diff --git a/packages/stacks-docs-next/static/images/heros/naming.svg b/packages/stacks-docs-next/static/images/heros/naming.svg index 36fb846ad0..49f98efd00 100644 --- a/packages/stacks-docs-next/static/images/heros/naming.svg +++ b/packages/stacks-docs-next/static/images/heros/naming.svg @@ -1,163 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/packages/stacks-docs-next/static/images/heros/patterns.svg b/packages/stacks-docs-next/static/images/heros/patterns.svg new file mode 100644 index 0000000000..719aa67d05 --- /dev/null +++ b/packages/stacks-docs-next/static/images/heros/patterns.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/stacks-docs-next/static/images/heros/styleguide.svg b/packages/stacks-docs-next/static/images/heros/styleguide.svg index 50abaee258..5695434b88 100644 --- a/packages/stacks-docs-next/static/images/heros/styleguide.svg +++ b/packages/stacks-docs-next/static/images/heros/styleguide.svg @@ -1,32 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/packages/stacks-docs-next/static/images/heros/voice.svg b/packages/stacks-docs-next/static/images/heros/voice.svg index fe42e8e99f..7269db0313 100644 --- a/packages/stacks-docs-next/static/images/heros/voice.svg +++ b/packages/stacks-docs-next/static/images/heros/voice.svg @@ -1,39 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file From cd3fdf4b6fda970897ef7acb6e2c6f9b061f1650 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Thu, 12 Feb 2026 20:21:35 +0000 Subject: [PATCH 132/156] heros Signed-off-by: David Longworth --- packages/stacks-docs-next/src/structure.yaml | 6 +++--- packages/stacks-docs-next/static/images/heros/culture.svg | 1 + packages/stacks-docs-next/static/images/heros/start.svg | 1 + packages/stacks-docs-next/static/images/heros/story.svg | 1 + 4 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 packages/stacks-docs-next/static/images/heros/culture.svg create mode 100644 packages/stacks-docs-next/static/images/heros/start.svg create mode 100644 packages/stacks-docs-next/static/images/heros/story.svg diff --git a/packages/stacks-docs-next/src/structure.yaml b/packages/stacks-docs-next/src/structure.yaml index 31981c65ab..9783f90bc2 100644 --- a/packages/stacks-docs-next/src/structure.yaml +++ b/packages/stacks-docs-next/src/structure.yaml @@ -322,17 +322,17 @@ navigation: items: - title: "Story" slug: "story" - image: "/images/heros/strategy.svg" + image: "/images/heros/story.svg" private: true - title: "Culture" slug: "culture" - image: "/images/heros/strategy.svg" + image: "/images/heros/culture.svg" private: true - title: "Quick links" slug: "start" - image: "/images/heros/strategy.svg" + image: "/images/heros/start.svg" private: true - title: "Resources" diff --git a/packages/stacks-docs-next/static/images/heros/culture.svg b/packages/stacks-docs-next/static/images/heros/culture.svg new file mode 100644 index 0000000000..7500b1f047 --- /dev/null +++ b/packages/stacks-docs-next/static/images/heros/culture.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/stacks-docs-next/static/images/heros/start.svg b/packages/stacks-docs-next/static/images/heros/start.svg new file mode 100644 index 0000000000..1cb539fa5d --- /dev/null +++ b/packages/stacks-docs-next/static/images/heros/start.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/stacks-docs-next/static/images/heros/story.svg b/packages/stacks-docs-next/static/images/heros/story.svg new file mode 100644 index 0000000000..cb5858bdb4 --- /dev/null +++ b/packages/stacks-docs-next/static/images/heros/story.svg @@ -0,0 +1 @@ + \ No newline at end of file From 536d37a41d59724cc1290ee62f6c88d8a34ca525 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Fri, 13 Feb 2026 14:44:16 +0000 Subject: [PATCH 133/156] link to first section Signed-off-by: David Longworth --- packages/stacks-docs-next/src/routes/[category]/+page.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/stacks-docs-next/src/routes/[category]/+page.svelte b/packages/stacks-docs-next/src/routes/[category]/+page.svelte index 96340f139b..ae23cb34a7 100644 --- a/packages/stacks-docs-next/src/routes/[category]/+page.svelte +++ b/packages/stacks-docs-next/src/routes/[category]/+page.svelte @@ -7,7 +7,7 @@

    {data?.active?.description}

    {#each data?.active?.items as subsection} - + Thumbnail {subsection?.title} From f058b161c0c4a36bacdfa14ccc9021700e6f4012 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 17 Feb 2026 15:53:04 +0000 Subject: [PATCH 134/156] update docs Signed-off-by: David Longworth --- packages/stacks-docs-next/README.md | 144 +++++++-- packages/stacks-docs-next/migrate.md | 451 --------------------------- 2 files changed, 126 insertions(+), 469 deletions(-) delete mode 100644 packages/stacks-docs-next/migrate.md diff --git a/packages/stacks-docs-next/README.md b/packages/stacks-docs-next/README.md index 75842c404d..76b9ac414b 100644 --- a/packages/stacks-docs-next/README.md +++ b/packages/stacks-docs-next/README.md @@ -1,38 +1,146 @@ -# sv +# Stacks Documentation -Everything you need to build a Svelte project, powered by [`sv`](https://github.com/sveltejs/cli). +Stack Overflow's design system documentation site, powered by SvelteKit. -## Creating a project +## Developing -If you're seeing this, you've probably already done this step. Congrats! +Once you've installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: ```sh -# create a new project in the current directory -npx sv create +npm run dev -w packages/stacks-docs-next -# create a new project in my-app -npx sv create my-app ``` -## Developing +## Building -Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: +This site is deployed to Netlify, but to create a production version of your app locally: ```sh -npm run dev +npm run build -w packages/stacks-docs-next +``` + +You can preview the production build with `npm run preview`. + +## Documentation + +### Navigation + +The site navigation is controlled by `src/structure.yaml`. This file defines: +- Top-level sections (Brand, Copywriting, Product, etc.) +- Navigation hierarchy and nesting +- Page titles, slugs, and metadata +- Which pages are marked as private (employee-only) + +Example structure: +```yaml +navigation: + - title: "Brand" + slug: "brand" + description: "Visual patterns and guidelines" + items: + - title: "Logo" + slug: "logo" + image: "/images/heros/logo.svg" -# or start the server and open the app in a new browser tab -npm run dev -- --open + - title: "Brand strategy" + slug: "strategy" + private: true # Employee-only content ``` -## Building +### Markdown processing + +Documentation is built using [mdsvex](https://mdsvex.pngwn.io/), which allows you to use Svelte components within Markdown files. The build process automatically adds several features: + +**Automatically Added:** +- **Table of Contents** - Extracted from headings and exposed via `toc` in frontmatter +- **Heading IDs** - All headings get slug IDs for direct linking (e.g., `## Color hierarchy` → `id="color-hierarchy"`) +- **Section wrappers** - Content is automatically wrapped in `
    ` elements +- **Heading links** - Headings are automatically wrapped in anchor links +- **Syntax highlighting** - Code blocks are highlighted using highlight.js with Stacks styling +- **Table styling** - Tables automatically get Stacks table classes (`s-table`) +- **Image path resolution** - Relative image paths are resolved to absolute URLs + +**Svelte Components in Markdown:** +You can import and use Svelte components directly in your markdown: +```markdown + + +## Color palette + + +``` + +See `svelte.config.js` for the complete mdsvex configuration. + +### Content -To create a production version of your app: +Documentation content lives in two directories: + +#### Public (`src/docs/public`) + +Public-facing documentation accessible to everyone. The directory structure maps directly to URL routes: + +**Route Patterns:** +- `src/docs/public/brand/logo.md` → `/brand/logo` +- `src/docs/public/brand/color/index.md` → `/brand/color` + +**Files can be organized in two ways:** +1. **Single file:** `route.md` for simple pages +2. **Directory with index:** `route/index.md` for pages with supporting files + +**Supporting Files:** +You can place images, Svelte components, YAML data, and other assets alongside your markdown: +``` +src/docs/public/brand/color/ +├── index.md # Main content +├── ColorSwatch.svelte # Interactive component +├── colors.yaml # Data file +└── stack-color-combos.svg # Image asset +``` + +**Image Handling:** +Images and non-markdown files are automatically copied from `src/docs/` to `static/docs/` during build by the Vite plugin in `vite.config.ts`. Reference them in markdown using relative paths: +```markdown +![Color palette](./stack-color-combos.svg) +``` + +#### Private (`src/docs/private`) + +Employee-only documentation lives in a seperate repo: https://github.com/StackEng/StacksDocsPrivate + +This is a **git submodule** that requires Stack Overflow employee access. To set it up: ```sh -npm run build +git submodule init +git submodule update ``` -You can preview the production build with `npm run preview`. +The private docs follow the same structure and conventions as public docs. Mark pages as private in `structure.yaml` with `private: true`. + +### Adding a New Page + +1. **Create the content file** in the appropriate location: + ```sh + # Simple page + touch src/docs/public/brand/new-page.md + + # Page with supporting files + mkdir src/docs/public/brand/new-page + touch src/docs/public/brand/new-page/index.md + ``` + +2. **Add the page to navigation** in `src/structure.yaml`: + ```yaml + - title: "Brand" + slug: "brand" + items: + - title: "New Page" + slug: "new-page" + image: "/images/heros/new-page.svg" # Optional, relative to 'static' director + ``` + +3. **Add any images or assets** to the same directory as your markdown file -> To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment. +4. **Reference assets** using relative paths (e.g., `./image.svg`) in your markdown diff --git a/packages/stacks-docs-next/migrate.md b/packages/stacks-docs-next/migrate.md deleted file mode 100644 index 09ebebe2c4..0000000000 --- a/packages/stacks-docs-next/migrate.md +++ /dev/null @@ -1,451 +0,0 @@ -# Eleventy to SvelteKit + MDsveX Migration - -## Objective - -Migrate documentation pages from Eleventy (using Liquid templates + JSON data) to SvelteKit with MDsveX (Markdown with Svelte components). - -An imporant consideration is this stacks-docs-next is being written in parallel with updates to stacks-docs. So we need to make sure we carry over any changes even after we've migrated the bulk of the documentation. - -## Migration Pattern Reference - -Here are three files showing a completed migration: - -- `packages/stacks-docs/product/components/buttons.html` - Original Eleventy Liquid template -- `packages/stacks-docs/_data/buttons.json` - Data file used by Liquid template -- `packages/stacks-docs-next/src/docs/public/system/components/buttons/index.md` - Migrated MDsveX page with Svelte components - -## Key Migration Transformations - -### 1. File Structure - -- **From:** `packages/stack-docs/product/{folder}/{page}.html` (Liquid) + `packages/stacks-docs/_data/{page}.json` (data) -- **To:** `packages/stacks-docs-next/src/docs/public/system/{folder}/{page}/index.md` (`~{folder}/{page}.md` if no dependancies) (MDsveX with frontmatter) - -### 2. Frontmatter Migration - -**From (Liquid):** - -```liquid ---- -layout: page -title: Buttons -svelte: https://... -figma: https://... -description: ... -tags: components ---- -``` - -**To (MDsveX):** - -```markdown ---- -title: Buttons -svelte: https://... -figma: https://... -description: ... -updated: YYYY-MM-DD ---- -``` - -### 3. Data Access Pattern - -**From (Liquid):** - -```liquid -{% for btn in buttons.base %} - {% assign types = btn.classes %} - {% for class in types %} - - {% endfor %} -{% endfor %} -``` - -**To (Svelte Component):** - -```svelte - - - -``` - -Note: stacks-svelte contains components we can use natively, for example can become -{% endhighlight %} -``` - -**To (MDsveX):** - -````markdown -```html - -``` -```` - -### 7. Icon Handling - -**From (Liquid):** - -```liquid -{% icon "Trash" %} -``` - -**To (Svelte):** - -```svelte - - - -``` - -### 8. Interactive Examples - -**From (Liquid with inline script):** - -```html - - - -``` - -**To (Svelte Component):** -Create `ToggleButtonDemo.svelte` with proper Svelte reactivity: - -```svelte - - - -``` - -## Decision Points for You - -**Analyze the codebase and decide:** - -1. **Approach Selection:** - - Should I write a migration script (if patterns are consistent)? - - Should I manually migrate files (if lots of edge cases)? - - Hybrid approach (script for boilerplate, manual for complex parts)? - -2. **Component Strategy:** - - Should JSON data files be converted to TypeScript constants? - - Should complex tables become reusable Svelte components? - - Which patterns repeat across multiple pages? - -3. **Scope Analysis:** - - How many pages need migration? - - What Liquid helpers/filters are being used? - - Are there custom Liquid tags that need special handling? - -## Expected Output - -Based on your analysis, provide either: - -### Option A: Migration Script - -A Node.js/TypeScript script that: - -- Reads Liquid templates and JSON files -- Converts frontmatter -- Transforms Liquid syntax to MDsveX -- Generates Svelte component stubs for complex sections -- Outputs migrated files to target directory - -### Option B: Manual Migration Guide - -A detailed guide covering: - -- Step-by-step migration checklist -- Common patterns and their conversions -- Edge cases to watch for -- Testing/validation approach - -### Option C: Hybrid Approach - -- Script for mechanical transformations -- Documentation for manual steps -- Component templates for common patterns - -## Files to Analyze - -Please examine: - -1. All `.html` files in the source directory -2. Corresponding `.json` data files -3. The `buttons.html` example I've provided -4. The migrated `index.md` example -5. Any Liquid includes or layouts being used - -## Success Criteria - -- Frontmatter correctly transformed -- All Liquid loops converted to Svelte components or MDsveX syntax -- Code examples properly formatted with syntax highlighting -- Interactive elements use proper Svelte reactivity -- Icons imported and used correctly -- Tables and complex layouts extracted to components -- No runtime errors in migrated pages -- Visual output matches original pages - -## Questions to Answer First - -Before proceeding, investigate and report: - -1. How many pages need migration? -2. What unique Liquid helpers/filters are used? -3. Are there shared layouts or includes? -4. What's the structure of the JSON data files? -5. Are there any custom Liquid tags? -6. How are images and assets referenced? - ---- - -## Current Migration Status - -### Approach Chosen: Manual Migration - -After analysis, we chose **manual migration one-by-one** over automation. This allows for: - -- Full quality control for each page -- Building reusable component library as we go -- Handling edge cases perfectly -- Learning the codebase deeply - -### Progress Summary (as of 2025-12-20) - -**Total pages:** 76 HTML files + 18 includes/layouts - -**Migration Status:** - -✅ **Forms** - 5/5 pages (100%) - FULLY MIGRATED - -- ✅ **inputs.md** - FULLY MIGRATED (2025-12-20) -- ✅ **checkbox.md** - FULLY MIGRATED (2025-12-20) -- ✅ **select.md** - FULLY MIGRATED (2025-12-20) -- ✅ **textarea.md** - FULLY MIGRATED (2025-12-20) -- ✅ **labels.md** - FULLY MIGRATED (2025-12-20) - -🟡 **Components** - 8/43 pages FULLY MIGRATED (35 with placeholder content) - -- ✅ **skeleton.md** - FULLY MIGRATED (2025-12-20) -- ✅ **spinner.md** - FULLY MIGRATED (2025-12-20) -- ✅ **empty-states.md** - FULLY MIGRATED (2025-12-20) -- ✅ **toggle-switch.md** - FULLY MIGRATED (2025-12-20) -- ✅ **tags.md** - FULLY MIGRATED (2025-12-20) -- ✅ **pagination.md** - FULLY MIGRATED (2025-12-20) -- ✅ **page-titles.md** - FULLY MIGRATED (2025-12-20) -- ✅ **bling.md** - FULLY MIGRATED (2025-12-20) -- ❌ 35 components - placeholder only (need real migration) - -✅ **Base** - 26/26 pages (100%) - -- All migrated - -🟡 **Foundation** - 1/7 pages (14%) - -- ❌ **icons.html** - not migrated (can ignore per requirements) -- ❌ **spots.html** - not migrated (can ignore per requirements) -- ❌ **color-fundamentals.md** - placeholder only -- ❌ **colors.md** - placeholder only -- ❌ **accessibility.md** - placeholder only -- ❌ **theming.md** - placeholder only -- ✅ **typography.md** - migrated - -✅ **Develop** - 4/4 pages (100%) - -- All migrated - -### Key Learnings - -1. **Simple inline data > separate files** - - For validation classes, sizes, etc., define data inline in ` - -## Section - -Content with markdown, code blocks, and live examples. - -```html - -``` -```` - -
    - - -
    -``` - -### Next Steps - -1. **Complete Forms section** (4 pages remaining) - - checkbox.md - - select.md - - textarea.md - - labels.md - -2. **Fill placeholder content in Components** (43 pages) - - Priority: Most commonly used components first - -3. **Fill placeholder content in Foundation** (4 pages) - - color-fundamentals.md - - colors.md - - accessibility.md - - theming.md - -### Estimated Remaining Effort - -- Simple pages: 15-30 min each -- Medium pages: 30-60 min each -- Complex pages: 1-3 hours each - -**Total remaining:** ~35 pages to fill in with real content - ---- - -## Migration Session Log - -### Session 2025-12-20 - -**Pages Migrated:** 13 pages fully completed - -**Forms Section (5 pages):** - -1. inputs.md - Base styles, validation states, accessibility, icons, sizes, input fills, nested inputs -2. checkbox.md - Checkbox & radio, vertical/horizontal groups, indeterminate state, validation -3. select.md - Select menus with validation states and sizes -4. textarea.md - Textareas with validation states and sizes -5. labels.md - Label styles, sizes, description copy, status flags - -**Components Section (8 pages):** - -1. skeleton.md - Base & AI loading states with accessibility -2. spinner.md - 5 sizes + `.is-loading` helper -3. empty-states.md - No data/results states (actionable & non-actionable) -4. toggle-switch.md - Single & multiple option toggles -5. tags.md - All tag states (base, moderator, required, watched, ignored) + sizes -6. pagination.md - Navigation with states -7. page-titles.md - Headers with descriptions, actions, breadcrumbs -8. bling.md - Award indicators (types, filled, sizes) - -**Time per page:** ~5-15 minutes for simple components - -**Next components to migrate (in order of complexity):** - -- breadcrumbs.html (157 lines) -- cards.html (169 lines) -- expandable.html (175 lines) -- prose.html (186 lines) -- avatars.html, badges.html, banners.html, etc. - -**Notes:** - -- Pattern is very consistent now -- Inline data constants work well for simple tables -- `{#each}` loops replace Liquid `{% for %}` perfectly -- Icon components from `@stackoverflow/stacks-icons` work great - ---- - -**Migration is ongoing. Focus on Components → Foundation for maximum impact.** From 5a52cfc7a478ae69f1e1e046506721dd6e10afb2 Mon Sep 17 00:00:00 2001 From: David Longworth Date: Thu, 19 Feb 2026 09:39:22 +0000 Subject: [PATCH 135/156] =?UTF-8?q?it=E2=80=99s=20->=20its?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: David Longworth --- packages/stacks-docs-next/src/structure.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/stacks-docs-next/src/structure.yaml b/packages/stacks-docs-next/src/structure.yaml index 9783f90bc2..a8c10561b9 100644 --- a/packages/stacks-docs-next/src/structure.yaml +++ b/packages/stacks-docs-next/src/structure.yaml @@ -30,7 +30,7 @@ navigation: - title: "Copywriting" slug: "copy" - description: "How to write effectively for Stack Overflow and it’s different audiences." + description: "How to write effectively for Stack Overflow and its different audiences." items: - title: "Tone of voice" slug: "voice" From d1cdb2a4df3e6b96f75a2586cfdb8773607a070c Mon Sep 17 00:00:00 2001 From: David Longworth Date: Tue, 3 Mar 2026 20:20:16 +0000 Subject: [PATCH 136/156] fix motion aspect ratios --- .../src/components/GridColumn.svelte | 4 +- .../src/docs/public/brand/motion.md | 39 +++++++++---------- 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/packages/stacks-docs-next/src/components/GridColumn.svelte b/packages/stacks-docs-next/src/components/GridColumn.svelte index 4832169859..f0c5e98118 100644 --- a/packages/stacks-docs-next/src/components/GridColumn.svelte +++ b/packages/stacks-docs-next/src/components/GridColumn.svelte @@ -1,12 +1,12 @@ -
    +
    {@render children()}
    diff --git a/packages/stacks-docs-next/src/docs/public/brand/motion.md b/packages/stacks-docs-next/src/docs/public/brand/motion.md index f6e6c81012..38a3fee613 100644 --- a/packages/stacks-docs-next/src/docs/public/brand/motion.md +++ b/packages/stacks-docs-next/src/docs/public/brand/motion.md @@ -120,7 +120,7 @@ This motion behavior uses a subtle overshoot, then a held keyframe, and a final This should never be longer than 20 frames to keep the final movement as a snap and not a bounce. This is in the context of 30fps. - +
    Snapback