@blocknote/xl-docx-exporter 0.47.2 → 0.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/GeistMono-Regular-CHVKamKz.cjs +2 -0
  2. package/dist/GeistMono-Regular-CHVKamKz.cjs.map +1 -0
  3. package/dist/GeistMono-Regular-DC6WVheu.js +6 -0
  4. package/dist/GeistMono-Regular-DC6WVheu.js.map +1 -0
  5. package/dist/Inter_18pt-Regular-DVodnrPc.js +6 -0
  6. package/dist/Inter_18pt-Regular-DVodnrPc.js.map +1 -0
  7. package/dist/Inter_18pt-Regular-PkBfh_8C.cjs +2 -0
  8. package/dist/Inter_18pt-Regular-PkBfh_8C.cjs.map +1 -0
  9. package/dist/blocknote-xl-docx-exporter.cjs +3 -3
  10. package/dist/blocknote-xl-docx-exporter.cjs.map +1 -1
  11. package/dist/blocknote-xl-docx-exporter.js +354 -495
  12. package/dist/blocknote-xl-docx-exporter.js.map +1 -1
  13. package/dist/styles-C7Ws_DIi.js +6 -0
  14. package/dist/styles-C7Ws_DIi.js.map +1 -0
  15. package/dist/{styles-Bw_Yt1z6.js → styles-Cz94-HtD.cjs} +3 -6
  16. package/dist/styles-Cz94-HtD.cjs.map +1 -0
  17. package/dist/webpack-stats.json +1 -1
  18. package/package.json +6 -6
  19. package/dist/GeistMono-Regular--NrcstcO.cjs +0 -2
  20. package/dist/GeistMono-Regular--NrcstcO.cjs.map +0 -1
  21. package/dist/GeistMono-Regular-D4rKXxwr.js +0 -5
  22. package/dist/GeistMono-Regular-D4rKXxwr.js.map +0 -1
  23. package/dist/Inter_18pt-Regular-CCMUw8TC.cjs +0 -2
  24. package/dist/Inter_18pt-Regular-CCMUw8TC.cjs.map +0 -1
  25. package/dist/Inter_18pt-Regular-byxnNS-8.js +0 -5
  26. package/dist/Inter_18pt-Regular-byxnNS-8.js.map +0 -1
  27. package/dist/index-B-FmPo2r.cjs +0 -7
  28. package/dist/index-B-FmPo2r.cjs.map +0 -1
  29. package/dist/index-cA_PmnZy.js +0 -1040
  30. package/dist/index-cA_PmnZy.js.map +0 -1
  31. package/dist/styles-BRTtNJM0.cjs +0 -1016
  32. package/dist/styles-BRTtNJM0.cjs.map +0 -1
  33. package/dist/styles-Bw_Yt1z6.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"blocknote-xl-docx-exporter.js","sources":["../../../shared/util/imageUtil.ts","../src/docx/util/Table.tsx","../src/docx/defaultSchema/blocks.ts","../src/docx/defaultSchema/inlinecontent.ts","../src/docx/defaultSchema/styles.ts","../src/docx/defaultSchema/index.ts","../../../shared/api/corsProxy.ts","../../../shared/util/fileUtil.ts","../src/docx/docxExporter.ts"],"sourcesContent":["export async function getImageDimensions(blob: Blob) {\n if (typeof window !== \"undefined\" && import.meta.env.NODE_ENV !== \"test\") {\n const bmp = await createImageBitmap(blob);\n const { width, height } = bmp;\n bmp.close(); // free memory\n return { width, height };\n } else {\n // node or vitest\n const imageMetaFunc = (await import(\"image-meta\")).imageMeta;\n const bytes = new Uint8Array(await blob.arrayBuffer());\n const meta = imageMetaFunc(bytes);\n if (!meta.width || !meta.height) {\n throw new Error(\"Image dimensions not found\");\n }\n return { width: meta.width, height: meta.height };\n }\n}\n","import {\n Exporter,\n InlineContentSchema,\n mapTableCell,\n TableContent,\n UnreachableCaseError,\n} from \"@blocknote/core\";\nimport {\n Table as DocxTable,\n Paragraph,\n ParagraphChild,\n ShadingType,\n TableCell,\n TableRow,\n} from \"docx\";\n\nexport const Table = (\n data: TableContent<InlineContentSchema>,\n t: Exporter<any, any, any, any, ParagraphChild, any, any>,\n) => {\n const DEFAULT_COLUMN_WIDTH = 120;\n\n // If headerRows is 1, then the first row is a header row\n const headerRows = new Array(data.headerRows ?? 0).fill(true);\n // If headerCols is 1, then the first column is a header column\n const headerCols = new Array(data.headerCols ?? 0).fill(true);\n\n return new DocxTable({\n layout: \"autofit\",\n columnWidths: data.columnWidths.map(\n (w) =>\n (w ?? DEFAULT_COLUMN_WIDTH) * /* to points */ 0.75 * /* to twips */ 20,\n ),\n rows: data.rows.map((row, rowIndex) => {\n const isHeaderRow = headerRows[rowIndex];\n return new TableRow({\n tableHeader: isHeaderRow,\n children: row.cells.map((c, colIndex) => {\n const width = data.columnWidths?.[colIndex];\n const cell = mapTableCell(c);\n const isHeaderColumn = headerCols[colIndex];\n\n return new TableCell({\n width: width\n ? {\n // The type is twentieths of a point (dxa)\n size: width * 0.75 * 20,\n type: \"dxa\",\n }\n : undefined,\n columnSpan: cell.props.colspan,\n rowSpan: cell.props.rowspan,\n shading:\n cell.props.backgroundColor === \"default\" ||\n !cell.props.backgroundColor\n ? undefined\n : {\n type: ShadingType.SOLID,\n color: (() => {\n const color =\n t.options.colors[cell.props.backgroundColor]\n ?.background;\n if (!color) {\n return undefined;\n }\n return color.slice(1);\n })(),\n },\n children: [\n new Paragraph({\n children: t.transformInlineContent(cell.content),\n\n alignment:\n !cell.props.textAlignment ||\n cell.props.textAlignment === \"left\"\n ? undefined\n : cell.props.textAlignment === \"center\"\n ? \"center\"\n : cell.props.textAlignment === \"right\"\n ? \"right\"\n : cell.props.textAlignment === \"justify\"\n ? \"distribute\"\n : (() => {\n throw new UnreachableCaseError(\n cell.props.textAlignment,\n );\n })(),\n run: {\n // TODO add support for table headers exporting, bolding seems to not be working at the moment\n bold: isHeaderRow || isHeaderColumn,\n // TODO table paragraph color seems to not be working at the moment\n // Probably because the runs are setting their own color\n color:\n cell.props.textColor === \"default\" || !cell.props.textColor\n ? undefined\n : (() => {\n const color =\n t.options.colors[cell.props.textColor]?.text;\n if (!color) {\n return undefined;\n }\n return color.slice(1);\n })(),\n },\n }),\n ],\n });\n }),\n });\n }),\n });\n};\n","import {\n BlockMapping,\n COLORS_DEFAULT,\n createPageBreakBlockConfig,\n DefaultBlockSchema,\n DefaultProps,\n StyledText,\n UnreachableCaseError,\n} from \"@blocknote/core\";\nimport { getImageDimensions } from \"@shared/util/imageUtil.js\";\nimport {\n CheckBox,\n Table as DocxTable,\n ExternalHyperlink,\n ImageRun,\n IParagraphOptions,\n PageBreak,\n Paragraph,\n ParagraphChild,\n ShadingType,\n TableCell,\n TableRow,\n TextRun,\n} from \"docx\";\nimport { Table } from \"../util/Table.js\";\nimport { multiColumnSchema } from \"@blocknote/xl-multi-column\";\n\nfunction blockPropsToStyles(\n props: Partial<DefaultProps>,\n colors: typeof COLORS_DEFAULT,\n): IParagraphOptions {\n return {\n shading:\n props.backgroundColor === \"default\" || !props.backgroundColor\n ? undefined\n : {\n type: ShadingType.CLEAR,\n fill: (() => {\n const color = colors[props.backgroundColor]?.background;\n if (!color) {\n return undefined;\n }\n return color.slice(1);\n })(),\n },\n run:\n props.textColor === \"default\" || !props.textColor\n ? undefined\n : {\n color: (() => {\n const color = colors[props.textColor]?.text;\n if (!color) {\n return undefined;\n }\n return color.slice(1);\n })(),\n },\n alignment:\n !props.textAlignment || props.textAlignment === \"left\"\n ? undefined\n : props.textAlignment === \"center\"\n ? \"center\"\n : props.textAlignment === \"right\"\n ? \"right\"\n : props.textAlignment === \"justify\"\n ? \"distribute\"\n : (() => {\n throw new UnreachableCaseError(props.textAlignment);\n })(),\n };\n}\nexport const docxBlockMappingForDefaultSchema: BlockMapping<\n DefaultBlockSchema & {\n pageBreak: ReturnType<typeof createPageBreakBlockConfig>;\n } & typeof multiColumnSchema.blockSchema,\n any,\n any,\n | Promise<Paragraph[] | Paragraph | DocxTable>\n | Paragraph[]\n | Paragraph\n | DocxTable,\n ParagraphChild\n> = {\n paragraph: (block, exporter) => {\n return new Paragraph({\n ...blockPropsToStyles(block.props, exporter.options.colors),\n children: exporter.transformInlineContent(block.content),\n });\n },\n toggleListItem: (block, exporter) => {\n return new Paragraph({\n ...blockPropsToStyles(block.props, exporter.options.colors),\n children: [\n new TextRun({\n children: [\"> \"],\n }),\n ...exporter.transformInlineContent(block.content),\n ],\n });\n },\n numberedListItem: (block, exporter, nestingLevel) => {\n return new Paragraph({\n ...blockPropsToStyles(block.props, exporter.options.colors),\n children: exporter.transformInlineContent(block.content),\n numbering: {\n reference: \"blocknote-numbered-list\",\n level: nestingLevel,\n },\n });\n },\n bulletListItem: (block, exporter, nestingLevel) => {\n return new Paragraph({\n ...blockPropsToStyles(block.props, exporter.options.colors),\n children: exporter.transformInlineContent(block.content),\n numbering: {\n reference: \"blocknote-bullet-list\",\n level: nestingLevel,\n },\n });\n },\n checkListItem: (block, exporter) => {\n return new Paragraph({\n ...blockPropsToStyles(block.props, exporter.options.colors),\n children: [\n new CheckBox({ checked: block.props.checked }),\n new TextRun({\n children: [\" \"],\n }),\n ...exporter.transformInlineContent(block.content),\n ],\n });\n },\n heading: (block, exporter) => {\n return new Paragraph({\n ...blockPropsToStyles(block.props, exporter.options.colors),\n children: exporter.transformInlineContent(block.content),\n heading: `Heading${block.props.level as 1 | 2 | 3 | 4 | 5 | 6}`,\n });\n },\n quote: (block, exporter) => {\n return new Paragraph({\n style: \"BlockQuote\",\n ...blockPropsToStyles(block.props, exporter.options.colors),\n children: exporter.transformInlineContent(block.content),\n });\n },\n audio: (block, exporter) => {\n return [\n file(block.props, \"Open audio\", exporter),\n ...caption(block.props, exporter),\n ];\n },\n video: (block, exporter) => {\n return [\n file(block.props, \"Open video\", exporter),\n ...caption(block.props, exporter),\n ];\n },\n file: (block, exporter) => {\n return [\n file(block.props, \"Open file\", exporter),\n ...caption(block.props, exporter),\n ];\n },\n codeBlock: (block) => {\n const textContent = (block.content as StyledText<any>[])[0]?.text || \"\";\n\n return new Paragraph({\n style: \"SourceCode\",\n children: [\n ...textContent.split(\"\\n\").map((line, index) => {\n return new TextRun({\n text: line,\n break: index > 0 ? 1 : 0,\n });\n }),\n ],\n });\n },\n pageBreak: () => {\n return new Paragraph({\n children: [new PageBreak()],\n });\n },\n divider: () => {\n return new Paragraph({\n border: {\n top: {\n color: \"auto\",\n space: 1,\n style: \"single\",\n size: 1,\n },\n },\n });\n },\n column: (block, _exporter, _nestingLevel, _numberedListIndex, children) => {\n return new TableCell({\n width: {\n size: `${block.props.width * 100}%`,\n type: \"pct\",\n },\n children: (children || []).flatMap((child) => {\n if (Array.isArray(child)) {\n return child;\n }\n\n return [child];\n }),\n }) as any;\n },\n columnList: (\n _block,\n _exporter,\n _nestingLevel,\n _numberedListIndex,\n children,\n ) => {\n return new DocxTable({\n layout: \"autofit\",\n borders: {\n bottom: { style: \"nil\" },\n top: { style: \"nil\" },\n left: { style: \"nil\" },\n right: { style: \"nil\" },\n insideHorizontal: { style: \"nil\" },\n insideVertical: { style: \"nil\" },\n },\n rows: [\n new TableRow({\n children: (children as unknown as TableCell[]).map(\n (cell, _index, children) => {\n return new TableCell({\n width: {\n size: `${(parseFloat(`${cell.options.width?.size || \"100%\"}`) / (children.length * 100)) * 100}%`,\n type: \"pct\",\n },\n children: cell.options.children,\n });\n },\n ),\n }),\n ],\n });\n },\n image: async (block, exporter) => {\n const blob = await exporter.resolveFile(block.props.url);\n const { width, height } = await getImageDimensions(blob);\n\n return [\n new Paragraph({\n ...blockPropsToStyles(block.props, exporter.options.colors),\n children: [\n new ImageRun({\n data: await blob.arrayBuffer(),\n // it would be nicer to set the actual data type here, but then we'd need to use a mime type / image type\n // detector. atm passing gif does not seem to be causing issues as the \"type\" is mainly used by docxjs internally\n // (i.e.: to make sure it's not svg)\n type: \"gif\",\n altText: block.props.caption\n ? {\n description: block.props.caption,\n name: block.props.caption,\n title: block.props.caption,\n }\n : undefined,\n transformation: {\n width: block.props.previewWidth || width,\n height: ((block.props.previewWidth || width) / width) * height,\n },\n }),\n ],\n }),\n ...caption(block.props, exporter),\n ];\n },\n table: (block, exporter) => {\n return Table(block.content, exporter);\n },\n};\n\nfunction file(\n props: Partial<DefaultProps & { name: string; url: string }>,\n defaultText: string,\n exporter: any,\n) {\n return new Paragraph({\n ...blockPropsToStyles(props, exporter.options.colors),\n children: [\n new ExternalHyperlink({\n children: [\n new TextRun({\n text: props.name || defaultText,\n style: \"Hyperlink\",\n }),\n ],\n link: props.url!,\n }),\n ],\n });\n}\n\nfunction caption(\n props: Partial<DefaultProps & { caption: string }>,\n exporter: any,\n) {\n if (!props.caption) {\n return [];\n }\n return [\n new Paragraph({\n ...blockPropsToStyles(props, exporter.options.colors),\n children: [\n new TextRun({\n text: props.caption,\n }),\n ],\n style: \"Caption\",\n }),\n ];\n}\n","import {\n DefaultInlineContentSchema,\n DefaultStyleSchema,\n InlineContentMapping,\n} from \"@blocknote/core\";\nimport { ExternalHyperlink, ParagraphChild, TextRun } from \"docx\";\nimport type { DOCXExporter } from \"../docxExporter.js\";\n\nexport const docxInlineContentMappingForDefaultSchema: InlineContentMapping<\n DefaultInlineContentSchema,\n DefaultStyleSchema,\n ParagraphChild,\n TextRun\n> = {\n link: (ic, exporter) => {\n return new ExternalHyperlink({\n children: ic.content.map((content) => {\n return (exporter as DOCXExporter<any, any, any>).transformStyledText(\n content,\n true,\n );\n }),\n link: ic.href,\n });\n },\n text: (ic, t) => {\n return t.transformStyledText(ic);\n },\n};\n","import { DefaultStyleSchema, StyleMapping } from \"@blocknote/core\";\nimport { IRunPropertiesOptions, ShadingType } from \"docx\";\n\nexport const docxStyleMappingForDefaultSchema: StyleMapping<\n DefaultStyleSchema,\n IRunPropertiesOptions\n> = {\n bold: (val) => {\n if (!val) {\n return {};\n }\n return {\n bold: val,\n };\n },\n italic: (val) => {\n if (!val) {\n return {};\n }\n return {\n italics: val,\n };\n },\n underline: (val) => {\n if (!val) {\n return {};\n }\n return {\n underline: {\n type: \"single\",\n },\n };\n },\n strike: (val) => {\n if (!val) {\n return {};\n }\n return {\n strike: val,\n };\n },\n backgroundColor: (val, exporter) => {\n if (!val) {\n return {};\n }\n const color = exporter.options.colors[val]?.background;\n if (!color) {\n return {};\n }\n return {\n shading: {\n type: ShadingType.CLEAR,\n fill: color.slice(1),\n },\n };\n },\n textColor: (val, exporter) => {\n if (!val) {\n return {};\n }\n const color = exporter.options.colors[val]?.text;\n if (!color) {\n return {};\n }\n return {\n color: color.slice(1),\n };\n },\n code: (val) => {\n if (!val) {\n return {};\n }\n return {\n style: \"VerbatimChar\",\n };\n },\n};\n","import { docxBlockMappingForDefaultSchema } from \"./blocks.js\";\nimport { docxInlineContentMappingForDefaultSchema } from \"./inlinecontent.js\";\nimport { docxStyleMappingForDefaultSchema } from \"./styles.js\";\n\nexport const docxDefaultSchemaMappings = {\n blockMapping: docxBlockMappingForDefaultSchema,\n inlineContentMapping: docxInlineContentMappingForDefaultSchema,\n styleMapping: docxStyleMappingForDefaultSchema,\n};\n","export async function corsProxyResolveFileUrl(url: string) {\n return (\n \"https://corsproxy.api.blocknotejs.org/corsproxy/?url=\" +\n encodeURIComponent(url)\n );\n}\n","/**\n *\n * Helper functions so that we can import files both on vitest, browser and node\n * TODO: should find a way to test automatically in all environments\n */\n\nexport async function loadFileDataUrl(\n requireUrl: { default: string },\n mimeType: string,\n) {\n if (import.meta.env.NODE_ENV === \"test\") {\n const buffer = await loadFileBuffer(requireUrl);\n const fileBase64 = buffer.toString(\"base64\");\n\n const dataUrl = `data:${mimeType};base64,${fileBase64}`;\n return dataUrl;\n } else {\n // in browser, this is already a data url\n return requireUrl.default as string;\n }\n}\n\nexport async function loadFontDataUrl(requireUrl: { default: string }) {\n return loadFileDataUrl(requireUrl, \"font/ttf\");\n}\n\nexport async function loadFileBuffer(requireUrl: {\n default: string;\n}): Promise<Buffer | ArrayBuffer> {\n if (import.meta.env.NODE_ENV === \"test\") {\n // in vitest, this is the url we need to load with readfilesync\n // eslint-disable-next-line\n const fs = require(\"fs\");\n let url = requireUrl.default;\n\n if (url.startsWith(\"/@fs/\")) {\n url = url.substring(\"/@fs\".length);\n }\n // On Windows, vite/vitest may yield paths like \"/C:/...\" after removing /@fs\n // Node on Windows treats paths starting with \"/\" as relative to current drive,\n // which would produce \"C:\\C:\\...\". Strip leading slash when followed by a drive letter.\n if (/^\\/[A-Za-z]:/.test(url)) {\n url = url.slice(1);\n }\n const buffer = fs.readFileSync(url);\n return buffer;\n } else {\n // in browser, this is already a data url\n const dataUrl = requireUrl.default as string;\n // convert to buffer on browser\n const response = await fetch(dataUrl);\n const arrayBuffer = await response.arrayBuffer();\n return arrayBuffer;\n }\n}\n\n/**\n * usage:\n * \n * await loadFontDataUrl(\n await import(\"../fonts/inter/Inter_18pt-Italic.ttf\")\n );\n */\n","import {\n Block,\n BlockNoteSchema,\n BlockSchema,\n COLORS_DEFAULT,\n InlineContentSchema,\n StyleSchema,\n StyledText,\n} from \"@blocknote/core\";\nimport {\n AlignmentType,\n Document,\n IRunPropertiesOptions,\n ISectionOptions,\n LevelFormat,\n Packer,\n Paragraph,\n ParagraphChild,\n Tab,\n Table,\n TextRun,\n} from \"docx\";\n\nimport { Exporter, ExporterOptions } from \"@blocknote/core\";\nimport { corsProxyResolveFileUrl } from \"@shared/api/corsProxy.js\";\nimport { loadFileBuffer } from \"@shared/util/fileUtil.js\";\n\n// get constructor arg type from Document\ntype DocumentOptions = Partial<ConstructorParameters<typeof Document>[0]>;\n\nconst DEFAULT_TAB_STOP =\n /* default font size */ 16 *\n /* 1 pixel is 0.75 points */ 0.75 *\n /* 1.5em*/ 1.5 *\n /* 1 point is 20 twips */ 20;\n\n/**\n * Exports a BlockNote document to a .docx file using the docxjs library.\n */\nexport class DOCXExporter<\n B extends BlockSchema,\n S extends StyleSchema,\n I extends InlineContentSchema,\n> extends Exporter<\n B,\n I,\n S,\n Promise<Paragraph[] | Paragraph | Table> | Paragraph[] | Paragraph | Table,\n ParagraphChild,\n IRunPropertiesOptions,\n TextRun\n> {\n public constructor(\n /**\n * The schema of your editor. The mappings are automatically typed checked against this schema.\n */\n protected readonly schema: BlockNoteSchema<B, I, S>,\n /**\n * The mappings that map the BlockNote schema to the docxjs content.\n * Pass {@link docxDefaultSchemaMappings} for the default schema.\n */\n protected readonly mappings: Exporter<\n NoInfer<B>,\n NoInfer<I>,\n NoInfer<S>,\n | Promise<Paragraph[] | Paragraph | Table>\n | Paragraph[]\n | Paragraph\n | Table,\n ParagraphChild,\n IRunPropertiesOptions,\n TextRun\n >[\"mappings\"],\n options?: Partial<ExporterOptions>,\n ) {\n const defaults = {\n colors: COLORS_DEFAULT,\n resolveFileUrl: corsProxyResolveFileUrl,\n } satisfies Partial<ExporterOptions>;\n\n const newOptions = {\n ...defaults,\n ...options,\n };\n super(schema, mappings, newOptions);\n }\n\n /**\n * Mostly for internal use, you probably want to use `toBlob` or `toDocxJsDocument` instead.\n */\n public transformStyledText(styledText: StyledText<S>, hyperlink?: boolean) {\n const stylesArray = this.mapStyles(styledText.styles);\n\n const styles: IRunPropertiesOptions = Object.assign(\n {} as IRunPropertiesOptions,\n ...stylesArray,\n );\n\n return new TextRun({\n ...styles,\n style: hyperlink ? \"Hyperlink\" : styles.style,\n text: styledText.text,\n });\n }\n\n /**\n * Mostly for internal use, you probably want to use `toBlob` or `toDocxJsDocument` instead.\n */\n public async transformBlocks(\n blocks: Block<B, I, S>[],\n nestingLevel = 0,\n ): Promise<Array<Paragraph | Table>> {\n const ret: Array<Paragraph | Table> = [];\n\n for (const b of blocks) {\n let children = await this.transformBlocks(b.children, nestingLevel + 1);\n\n if (![\"columnList\", \"column\"].includes(b.type)) {\n children = children.map((c, _i) => {\n // NOTE: nested tables not supported (we can't insert the new Tab before a table)\n if (\n c instanceof Paragraph &&\n !(c as any).properties.numberingReferences.length\n ) {\n c.addRunToFront(\n new TextRun({\n children: [new Tab()],\n }),\n );\n }\n return c;\n });\n }\n\n const self = await this.mapBlock(\n b as any,\n nestingLevel,\n 0 /*unused*/,\n children,\n ); // TODO: any\n if ([\"columnList\", \"column\"].includes(b.type)) {\n ret.push(self as Table);\n } else if (Array.isArray(self)) {\n ret.push(...self, ...children);\n } else {\n ret.push(self, ...children);\n }\n }\n return ret;\n }\n\n protected async getFonts(): Promise<DocumentOptions[\"fonts\"]> {\n // Unfortunately, loading the variable font doesn't work\n // \"./src/fonts/Inter-VariableFont_opsz,wght.ttf\",\n\n let interFont = await loadFileBuffer(\n await import(\"@shared/assets/fonts/inter/Inter_18pt-Regular.ttf\"),\n );\n let geistMonoFont = await loadFileBuffer(\n await import(\"@shared/assets/fonts/GeistMono-Regular.ttf\"),\n );\n\n if (\n interFont instanceof ArrayBuffer ||\n geistMonoFont instanceof ArrayBuffer\n ) {\n // conversion with Polyfill needed because docxjs requires Buffer\n // NOTE: the buffer/ import is intentional and as documented in\n // the `buffer` package usage instructions\n // https://github.com/feross/buffer?tab=readme-ov-file#usage\n const Buffer = (await import(\"buffer/\")).Buffer;\n\n if (interFont instanceof ArrayBuffer) {\n interFont = Buffer.from(interFont) as unknown as Buffer;\n }\n if (geistMonoFont instanceof ArrayBuffer) {\n geistMonoFont = Buffer.from(geistMonoFont) as unknown as Buffer;\n }\n }\n\n return [\n { name: \"Inter\", data: interFont },\n {\n name: \"GeistMono\",\n data: geistMonoFont,\n },\n ];\n }\n\n protected async createDefaultDocumentOptions(\n locale?: string,\n ): Promise<DocumentOptions> {\n let externalStyles = (await import(\"./template/word/styles.xml?raw\"))\n .default;\n\n // Replace the default language in styles.xml with the provided locale.\n // If not provided, default to en-US.\n const resolvedLocale = (locale && locale.trim()) || \"en-US\";\n\n externalStyles = externalStyles.replace(\n /(<w:lang\\b[^>]*\\bw:val=\")([^\"]+)(\"[^>]*\\/>)/g,\n `$1${resolvedLocale}$3`,\n );\n\n const bullets = [\"•\"]; //, \"◦\", \"▪\"]; (these don't look great, just use solid bullet for now)\n return {\n numbering: {\n config: [\n {\n reference: \"blocknote-numbered-list\",\n levels: Array.from({ length: 9 }, (_, i) => ({\n start: 1,\n level: i,\n format: LevelFormat.DECIMAL,\n text: `%${i + 1}.`,\n alignment: AlignmentType.LEFT,\n style: {\n paragraph: {\n indent: {\n left: DEFAULT_TAB_STOP * (i + 1),\n hanging: DEFAULT_TAB_STOP,\n },\n },\n },\n })),\n },\n {\n reference: \"blocknote-bullet-list\",\n levels: Array.from({ length: 9 }, (_, i) => ({\n start: 1,\n level: i,\n format: LevelFormat.BULLET,\n text: bullets[i % bullets.length],\n alignment: AlignmentType.LEFT,\n style: {\n paragraph: {\n indent: {\n left: DEFAULT_TAB_STOP * (i + 1),\n hanging: DEFAULT_TAB_STOP,\n },\n },\n },\n })),\n },\n ],\n },\n fonts: await this.getFonts(),\n defaultTabStop: 200,\n externalStyles,\n };\n }\n\n /**\n * Convert a document (array of Blocks to a Blob representing a .docx file)\n */\n public async toBlob(\n blocks: Block<B, I, S>[],\n options: {\n sectionOptions: Omit<ISectionOptions, \"children\">;\n documentOptions: DocumentOptions;\n /**\n * The document locale in OOXML format (e.g. en-US, fr-FR, de-DE).\n * If omitted, defaults to en-US.\n */\n locale?: string;\n } = {\n sectionOptions: {},\n documentOptions: {},\n },\n ) {\n const doc = await this.toDocxJsDocument(blocks, options);\n type GlobalThis = typeof globalThis & { Buffer?: any };\n const prevBuffer = (globalThis as GlobalThis).Buffer;\n try {\n if (!(globalThis as GlobalThis).Buffer) {\n // load Buffer polyfill because docxjs requires this\n (globalThis as GlobalThis).Buffer = (\n await import(\"buffer\")\n ).default.Buffer;\n }\n return Packer.toBlob(doc);\n } finally {\n (globalThis as GlobalThis).Buffer = prevBuffer;\n }\n }\n\n /**\n * Convert a document (array of Blocks to a docxjs Document)\n */\n public async toDocxJsDocument(\n blocks: Block<B, I, S>[],\n options: {\n sectionOptions: Omit<ISectionOptions, \"children\">;\n documentOptions: DocumentOptions;\n /**\n * The document locale in OOXML format (e.g. en-US, fr-FR, de-DE).\n * If omitted, defaults to en-US.\n */\n locale?: string;\n } = {\n sectionOptions: {},\n documentOptions: {},\n },\n ) {\n const doc = new Document({\n ...(await this.createDefaultDocumentOptions(options.locale)),\n ...options.documentOptions,\n sections: [\n {\n children: await this.transformBlocks(blocks),\n ...options.sectionOptions,\n },\n ],\n });\n\n return doc;\n }\n}\n"],"names":["getImageDimensions","blob","bmp","width","height","imageMetaFunc","bytes","meta","Table","data","headerRows","headerCols","DocxTable","w","row","rowIndex","isHeaderRow","TableRow","c","colIndex","_a","cell","mapTableCell","isHeaderColumn","TableCell","ShadingType","color","Paragraph","UnreachableCaseError","blockPropsToStyles","props","colors","docxBlockMappingForDefaultSchema","block","exporter","TextRun","nestingLevel","CheckBox","file","caption","textContent","line","index","PageBreak","_exporter","_nestingLevel","_numberedListIndex","children","child","_block","_index","ImageRun","defaultText","ExternalHyperlink","docxInlineContentMappingForDefaultSchema","ic","content","docxStyleMappingForDefaultSchema","val","docxDefaultSchemaMappings","corsProxyResolveFileUrl","url","loadFileBuffer","requireUrl","dataUrl","DEFAULT_TAB_STOP","DOCXExporter","Exporter","schema","mappings","options","newOptions","COLORS_DEFAULT","styledText","hyperlink","stylesArray","styles","blocks","ret","b","_i","Tab","self","interFont","geistMonoFont","Buffer","n","locale","externalStyles","resolvedLocale","bullets","_","i","LevelFormat","AlignmentType","doc","prevBuffer","Packer","Document"],"mappings":"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"}
1
+ {"version":3,"file":"blocknote-xl-docx-exporter.js","names":[],"sources":["../../../shared/util/imageUtil.ts","../src/docx/util/Table.tsx","../src/docx/defaultSchema/blocks.ts","../src/docx/defaultSchema/inlinecontent.ts","../src/docx/defaultSchema/styles.ts","../src/docx/defaultSchema/index.ts","../../../shared/api/corsProxy.ts","../../../shared/util/fileUtil.ts","../src/docx/docxExporter.ts"],"sourcesContent":["export async function getImageDimensions(blob: Blob) {\n if (typeof window !== \"undefined\" && import.meta.env.NODE_ENV !== \"test\") {\n const bmp = await createImageBitmap(blob);\n const { width, height } = bmp;\n bmp.close(); // free memory\n return { width, height };\n } else {\n // node or vitest\n const imageMetaFunc = (await import(\"image-meta\")).imageMeta;\n const bytes = new Uint8Array(await blob.arrayBuffer());\n const meta = imageMetaFunc(bytes);\n if (!meta.width || !meta.height) {\n throw new Error(\"Image dimensions not found\");\n }\n return { width: meta.width, height: meta.height };\n }\n}\n","import {\n Exporter,\n InlineContentSchema,\n mapTableCell,\n TableContent,\n UnreachableCaseError,\n} from \"@blocknote/core\";\nimport {\n Table as DocxTable,\n Paragraph,\n ParagraphChild,\n ShadingType,\n TableCell,\n TableRow,\n} from \"docx\";\n\nexport const Table = (\n data: TableContent<InlineContentSchema>,\n t: Exporter<any, any, any, any, ParagraphChild, any, any>,\n) => {\n const DEFAULT_COLUMN_WIDTH = 120;\n\n // If headerRows is 1, then the first row is a header row\n const headerRows = new Array(data.headerRows ?? 0).fill(true);\n // If headerCols is 1, then the first column is a header column\n const headerCols = new Array(data.headerCols ?? 0).fill(true);\n\n return new DocxTable({\n layout: \"autofit\",\n columnWidths: data.columnWidths.map(\n (w) =>\n (w ?? DEFAULT_COLUMN_WIDTH) * /* to points */ 0.75 * /* to twips */ 20,\n ),\n rows: data.rows.map((row, rowIndex) => {\n const isHeaderRow = headerRows[rowIndex];\n return new TableRow({\n tableHeader: isHeaderRow,\n children: row.cells.map((c, colIndex) => {\n const width = data.columnWidths?.[colIndex];\n const cell = mapTableCell(c);\n const isHeaderColumn = headerCols[colIndex];\n\n return new TableCell({\n width: width\n ? {\n // The type is twentieths of a point (dxa)\n size: width * 0.75 * 20,\n type: \"dxa\",\n }\n : undefined,\n columnSpan: cell.props.colspan,\n rowSpan: cell.props.rowspan,\n shading:\n cell.props.backgroundColor === \"default\" ||\n !cell.props.backgroundColor\n ? undefined\n : {\n type: ShadingType.SOLID,\n color: (() => {\n const color =\n t.options.colors[cell.props.backgroundColor]\n ?.background;\n if (!color) {\n return undefined;\n }\n return color.slice(1);\n })(),\n },\n children: [\n new Paragraph({\n children: t.transformInlineContent(cell.content),\n\n alignment:\n !cell.props.textAlignment ||\n cell.props.textAlignment === \"left\"\n ? undefined\n : cell.props.textAlignment === \"center\"\n ? \"center\"\n : cell.props.textAlignment === \"right\"\n ? \"right\"\n : cell.props.textAlignment === \"justify\"\n ? \"distribute\"\n : (() => {\n throw new UnreachableCaseError(\n cell.props.textAlignment,\n );\n })(),\n run: {\n // TODO add support for table headers exporting, bolding seems to not be working at the moment\n bold: isHeaderRow || isHeaderColumn,\n // TODO table paragraph color seems to not be working at the moment\n // Probably because the runs are setting their own color\n color:\n cell.props.textColor === \"default\" || !cell.props.textColor\n ? undefined\n : (() => {\n const color =\n t.options.colors[cell.props.textColor]?.text;\n if (!color) {\n return undefined;\n }\n return color.slice(1);\n })(),\n },\n }),\n ],\n });\n }),\n });\n }),\n });\n};\n","import {\n BlockMapping,\n COLORS_DEFAULT,\n createPageBreakBlockConfig,\n DefaultBlockSchema,\n DefaultProps,\n StyledText,\n UnreachableCaseError,\n} from \"@blocknote/core\";\nimport { getImageDimensions } from \"@shared/util/imageUtil.js\";\nimport {\n CheckBox,\n Table as DocxTable,\n ExternalHyperlink,\n ImageRun,\n IParagraphOptions,\n PageBreak,\n Paragraph,\n ParagraphChild,\n ShadingType,\n TableCell,\n TableRow,\n TextRun,\n} from \"docx\";\nimport { Table } from \"../util/Table.js\";\nimport { multiColumnSchema } from \"@blocknote/xl-multi-column\";\n\nfunction blockPropsToStyles(\n props: Partial<DefaultProps>,\n colors: typeof COLORS_DEFAULT,\n): IParagraphOptions {\n return {\n shading:\n props.backgroundColor === \"default\" || !props.backgroundColor\n ? undefined\n : {\n type: ShadingType.CLEAR,\n fill: (() => {\n const color = colors[props.backgroundColor]?.background;\n if (!color) {\n return undefined;\n }\n return color.slice(1);\n })(),\n },\n run:\n props.textColor === \"default\" || !props.textColor\n ? undefined\n : {\n color: (() => {\n const color = colors[props.textColor]?.text;\n if (!color) {\n return undefined;\n }\n return color.slice(1);\n })(),\n },\n alignment:\n !props.textAlignment || props.textAlignment === \"left\"\n ? undefined\n : props.textAlignment === \"center\"\n ? \"center\"\n : props.textAlignment === \"right\"\n ? \"right\"\n : props.textAlignment === \"justify\"\n ? \"distribute\"\n : (() => {\n throw new UnreachableCaseError(props.textAlignment);\n })(),\n };\n}\nexport const docxBlockMappingForDefaultSchema: BlockMapping<\n DefaultBlockSchema & {\n pageBreak: ReturnType<typeof createPageBreakBlockConfig>;\n } & typeof multiColumnSchema.blockSchema,\n any,\n any,\n | Promise<Paragraph[] | Paragraph | DocxTable>\n | Paragraph[]\n | Paragraph\n | DocxTable,\n ParagraphChild\n> = {\n paragraph: (block, exporter) => {\n return new Paragraph({\n ...blockPropsToStyles(block.props, exporter.options.colors),\n children: exporter.transformInlineContent(block.content),\n });\n },\n toggleListItem: (block, exporter) => {\n return new Paragraph({\n ...blockPropsToStyles(block.props, exporter.options.colors),\n children: [\n new TextRun({\n children: [\"> \"],\n }),\n ...exporter.transformInlineContent(block.content),\n ],\n });\n },\n numberedListItem: (block, exporter, nestingLevel) => {\n return new Paragraph({\n ...blockPropsToStyles(block.props, exporter.options.colors),\n children: exporter.transformInlineContent(block.content),\n numbering: {\n reference: \"blocknote-numbered-list\",\n level: nestingLevel,\n },\n });\n },\n bulletListItem: (block, exporter, nestingLevel) => {\n return new Paragraph({\n ...blockPropsToStyles(block.props, exporter.options.colors),\n children: exporter.transformInlineContent(block.content),\n numbering: {\n reference: \"blocknote-bullet-list\",\n level: nestingLevel,\n },\n });\n },\n checkListItem: (block, exporter) => {\n return new Paragraph({\n ...blockPropsToStyles(block.props, exporter.options.colors),\n children: [\n new CheckBox({ checked: block.props.checked }),\n new TextRun({\n children: [\" \"],\n }),\n ...exporter.transformInlineContent(block.content),\n ],\n });\n },\n heading: (block, exporter) => {\n return new Paragraph({\n ...blockPropsToStyles(block.props, exporter.options.colors),\n children: exporter.transformInlineContent(block.content),\n heading: `Heading${block.props.level as 1 | 2 | 3 | 4 | 5 | 6}`,\n });\n },\n quote: (block, exporter) => {\n return new Paragraph({\n style: \"BlockQuote\",\n ...blockPropsToStyles(block.props, exporter.options.colors),\n children: exporter.transformInlineContent(block.content),\n });\n },\n audio: (block, exporter) => {\n return [\n file(block.props, \"Open audio\", exporter),\n ...caption(block.props, exporter),\n ];\n },\n video: (block, exporter) => {\n return [\n file(block.props, \"Open video\", exporter),\n ...caption(block.props, exporter),\n ];\n },\n file: (block, exporter) => {\n return [\n file(block.props, \"Open file\", exporter),\n ...caption(block.props, exporter),\n ];\n },\n codeBlock: (block) => {\n const textContent = (block.content as StyledText<any>[])[0]?.text || \"\";\n\n return new Paragraph({\n style: \"SourceCode\",\n children: [\n ...textContent.split(\"\\n\").map((line, index) => {\n return new TextRun({\n text: line,\n break: index > 0 ? 1 : 0,\n });\n }),\n ],\n });\n },\n pageBreak: () => {\n return new Paragraph({\n children: [new PageBreak()],\n });\n },\n divider: () => {\n return new Paragraph({\n border: {\n top: {\n color: \"auto\",\n space: 1,\n style: \"single\",\n size: 1,\n },\n },\n });\n },\n column: (block, _exporter, _nestingLevel, _numberedListIndex, children) => {\n return new TableCell({\n width: {\n size: `${block.props.width * 100}%`,\n type: \"pct\",\n },\n children: (children || []).flatMap((child) => {\n if (Array.isArray(child)) {\n return child;\n }\n\n return [child];\n }),\n }) as any;\n },\n columnList: (\n _block,\n _exporter,\n _nestingLevel,\n _numberedListIndex,\n children,\n ) => {\n return new DocxTable({\n layout: \"autofit\",\n borders: {\n bottom: { style: \"nil\" },\n top: { style: \"nil\" },\n left: { style: \"nil\" },\n right: { style: \"nil\" },\n insideHorizontal: { style: \"nil\" },\n insideVertical: { style: \"nil\" },\n },\n rows: [\n new TableRow({\n children: (children as unknown as TableCell[]).map(\n (cell, _index, children) => {\n return new TableCell({\n width: {\n size: `${(parseFloat(`${cell.options.width?.size || \"100%\"}`) / (children.length * 100)) * 100}%`,\n type: \"pct\",\n },\n children: cell.options.children,\n });\n },\n ),\n }),\n ],\n });\n },\n image: async (block, exporter) => {\n const blob = await exporter.resolveFile(block.props.url);\n const { width, height } = await getImageDimensions(blob);\n\n return [\n new Paragraph({\n ...blockPropsToStyles(block.props, exporter.options.colors),\n children: [\n new ImageRun({\n data: await blob.arrayBuffer(),\n // it would be nicer to set the actual data type here, but then we'd need to use a mime type / image type\n // detector. atm passing gif does not seem to be causing issues as the \"type\" is mainly used by docxjs internally\n // (i.e.: to make sure it's not svg)\n type: \"gif\",\n altText: block.props.caption\n ? {\n description: block.props.caption,\n name: block.props.caption,\n title: block.props.caption,\n }\n : undefined,\n transformation: {\n width: block.props.previewWidth || width,\n height: ((block.props.previewWidth || width) / width) * height,\n },\n }),\n ],\n }),\n ...caption(block.props, exporter),\n ];\n },\n table: (block, exporter) => {\n return Table(block.content, exporter);\n },\n};\n\nfunction file(\n props: Partial<DefaultProps & { name: string; url: string }>,\n defaultText: string,\n exporter: any,\n) {\n return new Paragraph({\n ...blockPropsToStyles(props, exporter.options.colors),\n children: [\n new ExternalHyperlink({\n children: [\n new TextRun({\n text: props.name || defaultText,\n style: \"Hyperlink\",\n }),\n ],\n link: props.url!,\n }),\n ],\n });\n}\n\nfunction caption(\n props: Partial<DefaultProps & { caption: string }>,\n exporter: any,\n) {\n if (!props.caption) {\n return [];\n }\n return [\n new Paragraph({\n ...blockPropsToStyles(props, exporter.options.colors),\n children: [\n new TextRun({\n text: props.caption,\n }),\n ],\n style: \"Caption\",\n }),\n ];\n}\n","import {\n DefaultInlineContentSchema,\n DefaultStyleSchema,\n InlineContentMapping,\n} from \"@blocknote/core\";\nimport { ExternalHyperlink, ParagraphChild, TextRun } from \"docx\";\nimport type { DOCXExporter } from \"../docxExporter.js\";\n\nexport const docxInlineContentMappingForDefaultSchema: InlineContentMapping<\n DefaultInlineContentSchema,\n DefaultStyleSchema,\n ParagraphChild,\n TextRun\n> = {\n link: (ic, exporter) => {\n return new ExternalHyperlink({\n children: ic.content.map((content) => {\n return (exporter as DOCXExporter<any, any, any>).transformStyledText(\n content,\n true,\n );\n }),\n link: ic.href,\n });\n },\n text: (ic, t) => {\n return t.transformStyledText(ic);\n },\n};\n","import { DefaultStyleSchema, StyleMapping } from \"@blocknote/core\";\nimport { IRunPropertiesOptions, ShadingType } from \"docx\";\n\nexport const docxStyleMappingForDefaultSchema: StyleMapping<\n DefaultStyleSchema,\n IRunPropertiesOptions\n> = {\n bold: (val) => {\n if (!val) {\n return {};\n }\n return {\n bold: val,\n };\n },\n italic: (val) => {\n if (!val) {\n return {};\n }\n return {\n italics: val,\n };\n },\n underline: (val) => {\n if (!val) {\n return {};\n }\n return {\n underline: {\n type: \"single\",\n },\n };\n },\n strike: (val) => {\n if (!val) {\n return {};\n }\n return {\n strike: val,\n };\n },\n backgroundColor: (val, exporter) => {\n if (!val) {\n return {};\n }\n const color = exporter.options.colors[val]?.background;\n if (!color) {\n return {};\n }\n return {\n shading: {\n type: ShadingType.CLEAR,\n fill: color.slice(1),\n },\n };\n },\n textColor: (val, exporter) => {\n if (!val) {\n return {};\n }\n const color = exporter.options.colors[val]?.text;\n if (!color) {\n return {};\n }\n return {\n color: color.slice(1),\n };\n },\n code: (val) => {\n if (!val) {\n return {};\n }\n return {\n style: \"VerbatimChar\",\n };\n },\n};\n","import { docxBlockMappingForDefaultSchema } from \"./blocks.js\";\nimport { docxInlineContentMappingForDefaultSchema } from \"./inlinecontent.js\";\nimport { docxStyleMappingForDefaultSchema } from \"./styles.js\";\n\nexport const docxDefaultSchemaMappings = {\n blockMapping: docxBlockMappingForDefaultSchema,\n inlineContentMapping: docxInlineContentMappingForDefaultSchema,\n styleMapping: docxStyleMappingForDefaultSchema,\n};\n","export async function corsProxyResolveFileUrl(url: string) {\n return (\n \"https://corsproxy.api.blocknotejs.org/corsproxy/?url=\" +\n encodeURIComponent(url)\n );\n}\n","/**\n *\n * Helper functions so that we can import files both on vitest, browser and node\n * TODO: should find a way to test automatically in all environments\n */\n\nexport async function loadFileDataUrl(\n requireUrl: { default: string },\n mimeType: string,\n) {\n if (import.meta.env.NODE_ENV === \"test\") {\n const buffer = await loadFileBuffer(requireUrl);\n const fileBase64 = buffer.toString(\"base64\");\n\n const dataUrl = `data:${mimeType};base64,${fileBase64}`;\n return dataUrl;\n } else {\n // in browser, this is already a data url\n return requireUrl.default as string;\n }\n}\n\nexport async function loadFontDataUrl(requireUrl: { default: string }) {\n return loadFileDataUrl(requireUrl, \"font/ttf\");\n}\n\nexport async function loadFileBuffer(requireUrl: {\n default: string;\n}): Promise<Buffer | ArrayBuffer> {\n if (import.meta.env.NODE_ENV === \"test\") {\n // in vitest, this is the url we need to load with readfilesync\n // eslint-disable-next-line\n const fs = require(\"fs\");\n let url = requireUrl.default;\n\n if (url.startsWith(\"/@fs/\")) {\n url = url.substring(\"/@fs\".length);\n }\n // On Windows, vite/vitest may yield paths like \"/C:/...\" after removing /@fs\n // Node on Windows treats paths starting with \"/\" as relative to current drive,\n // which would produce \"C:\\C:\\...\". Strip leading slash when followed by a drive letter.\n if (/^\\/[A-Za-z]:/.test(url)) {\n url = url.slice(1);\n }\n const buffer = fs.readFileSync(url);\n return buffer;\n } else {\n // in browser, this is already a data url\n const dataUrl = requireUrl.default as string;\n // convert to buffer on browser\n const response = await fetch(dataUrl);\n const arrayBuffer = await response.arrayBuffer();\n return arrayBuffer;\n }\n}\n\n/**\n * usage:\n * \n * await loadFontDataUrl(\n await import(\"../fonts/inter/Inter_18pt-Italic.ttf\")\n );\n */\n","import {\n Block,\n BlockNoteSchema,\n BlockSchema,\n COLORS_DEFAULT,\n InlineContentSchema,\n StyleSchema,\n StyledText,\n} from \"@blocknote/core\";\nimport {\n AlignmentType,\n Document,\n IRunPropertiesOptions,\n ISectionOptions,\n LevelFormat,\n Packer,\n Paragraph,\n ParagraphChild,\n Tab,\n Table,\n TextRun,\n} from \"docx\";\n\nimport { Exporter, ExporterOptions } from \"@blocknote/core\";\nimport { corsProxyResolveFileUrl } from \"@shared/api/corsProxy.js\";\nimport { loadFileBuffer } from \"@shared/util/fileUtil.js\";\n\n// get constructor arg type from Document\ntype DocumentOptions = Partial<ConstructorParameters<typeof Document>[0]>;\n\nconst DEFAULT_TAB_STOP =\n /* default font size */ 16 *\n /* 1 pixel is 0.75 points */ 0.75 *\n /* 1.5em*/ 1.5 *\n /* 1 point is 20 twips */ 20;\n\n/**\n * Exports a BlockNote document to a .docx file using the docxjs library.\n */\nexport class DOCXExporter<\n B extends BlockSchema,\n S extends StyleSchema,\n I extends InlineContentSchema,\n> extends Exporter<\n B,\n I,\n S,\n Promise<Paragraph[] | Paragraph | Table> | Paragraph[] | Paragraph | Table,\n ParagraphChild,\n IRunPropertiesOptions,\n TextRun\n> {\n public constructor(\n /**\n * The schema of your editor. The mappings are automatically typed checked against this schema.\n */\n protected readonly schema: BlockNoteSchema<B, I, S>,\n /**\n * The mappings that map the BlockNote schema to the docxjs content.\n * Pass {@link docxDefaultSchemaMappings} for the default schema.\n */\n protected readonly mappings: Exporter<\n NoInfer<B>,\n NoInfer<I>,\n NoInfer<S>,\n | Promise<Paragraph[] | Paragraph | Table>\n | Paragraph[]\n | Paragraph\n | Table,\n ParagraphChild,\n IRunPropertiesOptions,\n TextRun\n >[\"mappings\"],\n options?: Partial<ExporterOptions>,\n ) {\n const defaults = {\n colors: COLORS_DEFAULT,\n resolveFileUrl: corsProxyResolveFileUrl,\n } satisfies Partial<ExporterOptions>;\n\n const newOptions = {\n ...defaults,\n ...options,\n };\n super(schema, mappings, newOptions);\n }\n\n /**\n * Mostly for internal use, you probably want to use `toBlob` or `toDocxJsDocument` instead.\n */\n public transformStyledText(styledText: StyledText<S>, hyperlink?: boolean) {\n const stylesArray = this.mapStyles(styledText.styles);\n\n const styles: IRunPropertiesOptions = Object.assign(\n {} as IRunPropertiesOptions,\n ...stylesArray,\n );\n\n return new TextRun({\n ...styles,\n style: hyperlink ? \"Hyperlink\" : styles.style,\n text: styledText.text,\n });\n }\n\n /**\n * Mostly for internal use, you probably want to use `toBlob` or `toDocxJsDocument` instead.\n */\n public async transformBlocks(\n blocks: Block<B, I, S>[],\n nestingLevel = 0,\n ): Promise<Array<Paragraph | Table>> {\n const ret: Array<Paragraph | Table> = [];\n\n for (const b of blocks) {\n let children = await this.transformBlocks(b.children, nestingLevel + 1);\n\n if (![\"columnList\", \"column\"].includes(b.type)) {\n children = children.map((c, _i) => {\n // NOTE: nested tables not supported (we can't insert the new Tab before a table)\n if (\n c instanceof Paragraph &&\n !(c as any).properties.numberingReferences.length\n ) {\n c.addRunToFront(\n new TextRun({\n children: [new Tab()],\n }),\n );\n }\n return c;\n });\n }\n\n const self = await this.mapBlock(\n b as any,\n nestingLevel,\n 0 /*unused*/,\n children,\n ); // TODO: any\n if ([\"columnList\", \"column\"].includes(b.type)) {\n ret.push(self as Table);\n } else if (Array.isArray(self)) {\n ret.push(...self, ...children);\n } else {\n ret.push(self, ...children);\n }\n }\n return ret;\n }\n\n protected async getFonts(): Promise<DocumentOptions[\"fonts\"]> {\n // Unfortunately, loading the variable font doesn't work\n // \"./src/fonts/Inter-VariableFont_opsz,wght.ttf\",\n\n let interFont = await loadFileBuffer(\n await import(\"@shared/assets/fonts/inter/Inter_18pt-Regular.ttf\"),\n );\n let geistMonoFont = await loadFileBuffer(\n await import(\"@shared/assets/fonts/GeistMono-Regular.ttf\"),\n );\n\n if (\n interFont instanceof ArrayBuffer ||\n geistMonoFont instanceof ArrayBuffer\n ) {\n // conversion with Polyfill needed because docxjs requires Buffer\n // NOTE: the buffer/ import is intentional and as documented in\n // the `buffer` package usage instructions\n // https://github.com/feross/buffer?tab=readme-ov-file#usage\n const Buffer = (await import(\"buffer/\")).Buffer;\n\n if (interFont instanceof ArrayBuffer) {\n interFont = Buffer.from(interFont) as unknown as Buffer;\n }\n if (geistMonoFont instanceof ArrayBuffer) {\n geistMonoFont = Buffer.from(geistMonoFont) as unknown as Buffer;\n }\n }\n\n return [\n { name: \"Inter\", data: interFont },\n {\n name: \"GeistMono\",\n data: geistMonoFont,\n },\n ];\n }\n\n protected async createDefaultDocumentOptions(\n locale?: string,\n ): Promise<DocumentOptions> {\n let externalStyles = (await import(\"./template/word/styles.xml?raw\"))\n .default;\n\n // Replace the default language in styles.xml with the provided locale.\n // If not provided, default to en-US.\n const resolvedLocale = (locale && locale.trim()) || \"en-US\";\n\n externalStyles = externalStyles.replace(\n /(<w:lang\\b[^>]*\\bw:val=\")([^\"]+)(\"[^>]*\\/>)/g,\n `$1${resolvedLocale}$3`,\n );\n\n const bullets = [\"•\"]; //, \"◦\", \"▪\"]; (these don't look great, just use solid bullet for now)\n return {\n numbering: {\n config: [\n {\n reference: \"blocknote-numbered-list\",\n levels: Array.from({ length: 9 }, (_, i) => ({\n start: 1,\n level: i,\n format: LevelFormat.DECIMAL,\n text: `%${i + 1}.`,\n alignment: AlignmentType.LEFT,\n style: {\n paragraph: {\n indent: {\n left: DEFAULT_TAB_STOP * (i + 1),\n hanging: DEFAULT_TAB_STOP,\n },\n },\n },\n })),\n },\n {\n reference: \"blocknote-bullet-list\",\n levels: Array.from({ length: 9 }, (_, i) => ({\n start: 1,\n level: i,\n format: LevelFormat.BULLET,\n text: bullets[i % bullets.length],\n alignment: AlignmentType.LEFT,\n style: {\n paragraph: {\n indent: {\n left: DEFAULT_TAB_STOP * (i + 1),\n hanging: DEFAULT_TAB_STOP,\n },\n },\n },\n })),\n },\n ],\n },\n fonts: await this.getFonts(),\n defaultTabStop: 200,\n externalStyles,\n };\n }\n\n /**\n * Convert a document (array of Blocks to a Blob representing a .docx file)\n */\n public async toBlob(\n blocks: Block<B, I, S>[],\n options: {\n sectionOptions: Omit<ISectionOptions, \"children\">;\n documentOptions: DocumentOptions;\n /**\n * The document locale in OOXML format (e.g. en-US, fr-FR, de-DE).\n * If omitted, defaults to en-US.\n */\n locale?: string;\n } = {\n sectionOptions: {},\n documentOptions: {},\n },\n ) {\n const doc = await this.toDocxJsDocument(blocks, options);\n type GlobalThis = typeof globalThis & { Buffer?: any };\n const prevBuffer = (globalThis as GlobalThis).Buffer;\n try {\n if (!(globalThis as GlobalThis).Buffer) {\n // load Buffer polyfill because docxjs requires this\n (globalThis as GlobalThis).Buffer = (\n await import(\"buffer\")\n ).default.Buffer;\n }\n return Packer.toBlob(doc);\n } finally {\n (globalThis as GlobalThis).Buffer = prevBuffer;\n }\n }\n\n /**\n * Convert a document (array of Blocks to a docxjs Document)\n */\n public async toDocxJsDocument(\n blocks: Block<B, I, S>[],\n options: {\n sectionOptions: Omit<ISectionOptions, \"children\">;\n documentOptions: DocumentOptions;\n /**\n * The document locale in OOXML format (e.g. en-US, fr-FR, de-DE).\n * If omitted, defaults to en-US.\n */\n locale?: string;\n } = {\n sectionOptions: {},\n documentOptions: {},\n },\n ) {\n const doc = new Document({\n ...(await this.createDefaultDocumentOptions(options.locale)),\n ...options.documentOptions,\n sections: [\n {\n children: await this.transformBlocks(blocks),\n ...options.sectionOptions,\n },\n ],\n });\n\n return doc;\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ //#region src/docx/template/word/styles.xml?raw
2
+ var e = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n<w:styles xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\"\r\n xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\"\r\n xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\"\r\n xmlns:w14=\"http://schemas.microsoft.com/office/word/2010/wordml\"\r\n xmlns:w15=\"http://schemas.microsoft.com/office/word/2012/wordml\"\r\n xmlns:w16cex=\"http://schemas.microsoft.com/office/word/2018/wordml/cex\"\r\n xmlns:w16cid=\"http://schemas.microsoft.com/office/word/2016/wordml/cid\"\r\n xmlns:w16=\"http://schemas.microsoft.com/office/word/2018/wordml\"\r\n xmlns:w16du=\"http://schemas.microsoft.com/office/word/2023/wordml/word16du\"\r\n xmlns:w16sdtdh=\"http://schemas.microsoft.com/office/word/2020/wordml/sdtdatahash\"\r\n xmlns:w16se=\"http://schemas.microsoft.com/office/word/2015/wordml/symex\"\r\n mc:Ignorable=\"w14 w15 w16se w16cid w16 w16cex w16sdtdh w16du\">\r\n <w:docDefaults>\r\n <w:rPrDefault>\r\n <w:rPr>\r\n <w:rFonts w:asciiTheme=\"minorHAnsi\" w:eastAsiaTheme=\"minorHAnsi\"\r\n w:hAnsiTheme=\"minorHAnsi\" w:cstheme=\"minorBidi\" />\r\n <w:kern w:val=\"2\" />\r\n <w:sz w:val=\"24\" />\r\n <w:szCs w:val=\"24\" />\r\n <w:lang w:val=\"en-NL\" w:eastAsia=\"en-GB\" w:bidi=\"ar-SA\" />\r\n <w14:ligatures w14:val=\"standardContextual\" />\r\n </w:rPr>\r\n </w:rPrDefault>\r\n <w:pPrDefault>\r\n <w:pPr>\r\n <w:spacing w:after=\"160\" w:line=\"278\" w:lineRule=\"auto\" />\r\n </w:pPr>\r\n </w:pPrDefault>\r\n </w:docDefaults>\r\n <w:latentStyles w:defLockedState=\"0\" w:defUIPriority=\"99\" w:defSemiHidden=\"0\"\r\n w:defUnhideWhenUsed=\"0\" w:defQFormat=\"0\" w:count=\"376\">\r\n <w:lsdException w:name=\"Normal\" w:uiPriority=\"0\" w:qFormat=\"1\" />\r\n <w:lsdException w:name=\"heading 1\" w:uiPriority=\"9\" />\r\n <w:lsdException w:name=\"heading 2\" w:semiHidden=\"1\" w:uiPriority=\"9\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"heading 3\" w:semiHidden=\"1\" w:uiPriority=\"9\" w:unhideWhenUsed=\"1\"\r\n w:qFormat=\"1\" />\r\n <w:lsdException w:name=\"heading 4\" w:semiHidden=\"1\" w:uiPriority=\"9\" w:unhideWhenUsed=\"1\"\r\n w:qFormat=\"1\" />\r\n <w:lsdException w:name=\"heading 5\" w:semiHidden=\"1\" w:uiPriority=\"9\" w:unhideWhenUsed=\"1\"\r\n w:qFormat=\"1\" />\r\n <w:lsdException w:name=\"heading 6\" w:semiHidden=\"1\" w:uiPriority=\"9\" w:unhideWhenUsed=\"1\"\r\n w:qFormat=\"1\" />\r\n <w:lsdException w:name=\"heading 7\" w:semiHidden=\"1\" w:uiPriority=\"9\" w:unhideWhenUsed=\"1\"\r\n w:qFormat=\"1\" />\r\n <w:lsdException w:name=\"heading 8\" w:semiHidden=\"1\" w:uiPriority=\"9\" w:unhideWhenUsed=\"1\"\r\n w:qFormat=\"1\" />\r\n <w:lsdException w:name=\"heading 9\" w:semiHidden=\"1\" w:uiPriority=\"9\" w:unhideWhenUsed=\"1\"\r\n w:qFormat=\"1\" />\r\n <w:lsdException w:name=\"index 1\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"index 2\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"index 3\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"index 4\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"index 5\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"index 6\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"index 7\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"index 8\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"index 9\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"toc 1\" w:semiHidden=\"1\" w:uiPriority=\"39\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"toc 2\" w:semiHidden=\"1\" w:uiPriority=\"39\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"toc 3\" w:semiHidden=\"1\" w:uiPriority=\"39\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"toc 4\" w:semiHidden=\"1\" w:uiPriority=\"39\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"toc 5\" w:semiHidden=\"1\" w:uiPriority=\"39\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"toc 6\" w:semiHidden=\"1\" w:uiPriority=\"39\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"toc 7\" w:semiHidden=\"1\" w:uiPriority=\"39\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"toc 8\" w:semiHidden=\"1\" w:uiPriority=\"39\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"toc 9\" w:semiHidden=\"1\" w:uiPriority=\"39\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Normal Indent\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"footnote text\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"annotation text\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"header\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"footer\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"index heading\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"caption\" w:semiHidden=\"1\" w:uiPriority=\"35\" w:unhideWhenUsed=\"1\"\r\n w:qFormat=\"1\" />\r\n <w:lsdException w:name=\"table of figures\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"envelope address\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"envelope return\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"footnote reference\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"annotation reference\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"line number\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"page number\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"endnote reference\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"endnote text\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"table of authorities\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"macro\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"toa heading\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"List\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"List Bullet\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"List Number\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"List 2\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"List 3\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"List 4\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"List 5\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"List Bullet 2\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"List Bullet 3\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"List Bullet 4\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"List Bullet 5\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"List Number 2\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"List Number 3\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"List Number 4\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"List Number 5\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Title\" w:uiPriority=\"10\" />\r\n <w:lsdException w:name=\"Closing\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Signature\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Default Paragraph Font\" w:semiHidden=\"1\" w:uiPriority=\"1\"\r\n w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Body Text\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Body Text Indent\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"List Continue\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"List Continue 2\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"List Continue 3\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"List Continue 4\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"List Continue 5\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Message Header\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Subtitle\" w:uiPriority=\"11\" w:qFormat=\"1\" />\r\n <w:lsdException w:name=\"Salutation\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Date\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Body Text First Indent\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Body Text First Indent 2\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Note Heading\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Body Text 2\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Body Text 3\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Body Text Indent 2\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Body Text Indent 3\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Block Text\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Hyperlink\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"FollowedHyperlink\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Strong\" w:uiPriority=\"22\" w:qFormat=\"1\" />\r\n <w:lsdException w:name=\"Emphasis\" w:uiPriority=\"20\" w:qFormat=\"1\" />\r\n <w:lsdException w:name=\"Document Map\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Plain Text\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"E-mail Signature\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"HTML Top of Form\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"HTML Bottom of Form\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Normal (Web)\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"HTML Acronym\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"HTML Address\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"HTML Cite\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"HTML Code\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"HTML Definition\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"HTML Keyboard\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"HTML Preformatted\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"HTML Sample\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"HTML Typewriter\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"HTML Variable\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Normal Table\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"annotation subject\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"No List\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Outline List 1\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Outline List 2\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Outline List 3\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Simple 1\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Simple 2\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Simple 3\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Classic 1\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Classic 2\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Classic 3\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Classic 4\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Colorful 1\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Colorful 2\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Colorful 3\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Columns 1\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Columns 2\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Columns 3\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Columns 4\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Columns 5\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Grid 1\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Grid 2\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Grid 3\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Grid 4\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Grid 5\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Grid 6\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Grid 7\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Grid 8\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table List 1\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table List 2\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table List 3\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table List 4\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table List 5\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table List 6\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table List 7\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table List 8\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table 3D effects 1\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table 3D effects 2\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table 3D effects 3\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Contemporary\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Elegant\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Professional\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Subtle 1\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Subtle 2\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Web 1\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Web 2\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Web 3\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Balloon Text\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Table Grid\" w:uiPriority=\"39\" />\r\n <w:lsdException w:name=\"Table Theme\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Placeholder Text\" w:semiHidden=\"1\" />\r\n <w:lsdException w:name=\"No Spacing\" w:uiPriority=\"1\" w:qFormat=\"1\" />\r\n <w:lsdException w:name=\"Light Shading\" w:uiPriority=\"60\" />\r\n <w:lsdException w:name=\"Light List\" w:uiPriority=\"61\" />\r\n <w:lsdException w:name=\"Light Grid\" w:uiPriority=\"62\" />\r\n <w:lsdException w:name=\"Medium Shading 1\" w:uiPriority=\"63\" />\r\n <w:lsdException w:name=\"Medium Shading 2\" w:uiPriority=\"64\" />\r\n <w:lsdException w:name=\"Medium List 1\" w:uiPriority=\"65\" />\r\n <w:lsdException w:name=\"Medium List 2\" w:uiPriority=\"66\" />\r\n <w:lsdException w:name=\"Medium Grid 1\" w:uiPriority=\"67\" />\r\n <w:lsdException w:name=\"Medium Grid 2\" w:uiPriority=\"68\" />\r\n <w:lsdException w:name=\"Medium Grid 3\" w:uiPriority=\"69\" />\r\n <w:lsdException w:name=\"Dark List\" w:uiPriority=\"70\" />\r\n <w:lsdException w:name=\"Colorful Shading\" w:uiPriority=\"71\" />\r\n <w:lsdException w:name=\"Colorful List\" w:uiPriority=\"72\" />\r\n <w:lsdException w:name=\"Colorful Grid\" w:uiPriority=\"73\" />\r\n <w:lsdException w:name=\"Light Shading Accent 1\" w:uiPriority=\"60\" />\r\n <w:lsdException w:name=\"Light List Accent 1\" w:uiPriority=\"61\" />\r\n <w:lsdException w:name=\"Light Grid Accent 1\" w:uiPriority=\"62\" />\r\n <w:lsdException w:name=\"Medium Shading 1 Accent 1\" w:uiPriority=\"63\" />\r\n <w:lsdException w:name=\"Medium Shading 2 Accent 1\" w:uiPriority=\"64\" />\r\n <w:lsdException w:name=\"Medium List 1 Accent 1\" w:uiPriority=\"65\" />\r\n <w:lsdException w:name=\"Revision\" w:semiHidden=\"1\" />\r\n <w:lsdException w:name=\"List Paragraph\" w:uiPriority=\"34\" w:qFormat=\"1\" />\r\n <w:lsdException w:name=\"Quote\" w:uiPriority=\"29\" w:qFormat=\"1\" />\r\n <w:lsdException w:name=\"Intense Quote\" w:uiPriority=\"30\" w:qFormat=\"1\" />\r\n <w:lsdException w:name=\"Medium List 2 Accent 1\" w:uiPriority=\"66\" />\r\n <w:lsdException w:name=\"Medium Grid 1 Accent 1\" w:uiPriority=\"67\" />\r\n <w:lsdException w:name=\"Medium Grid 2 Accent 1\" w:uiPriority=\"68\" />\r\n <w:lsdException w:name=\"Medium Grid 3 Accent 1\" w:uiPriority=\"69\" />\r\n <w:lsdException w:name=\"Dark List Accent 1\" w:uiPriority=\"70\" />\r\n <w:lsdException w:name=\"Colorful Shading Accent 1\" w:uiPriority=\"71\" />\r\n <w:lsdException w:name=\"Colorful List Accent 1\" w:uiPriority=\"72\" />\r\n <w:lsdException w:name=\"Colorful Grid Accent 1\" w:uiPriority=\"73\" />\r\n <w:lsdException w:name=\"Light Shading Accent 2\" w:uiPriority=\"60\" />\r\n <w:lsdException w:name=\"Light List Accent 2\" w:uiPriority=\"61\" />\r\n <w:lsdException w:name=\"Light Grid Accent 2\" w:uiPriority=\"62\" />\r\n <w:lsdException w:name=\"Medium Shading 1 Accent 2\" w:uiPriority=\"63\" />\r\n <w:lsdException w:name=\"Medium Shading 2 Accent 2\" w:uiPriority=\"64\" />\r\n <w:lsdException w:name=\"Medium List 1 Accent 2\" w:uiPriority=\"65\" />\r\n <w:lsdException w:name=\"Medium List 2 Accent 2\" w:uiPriority=\"66\" />\r\n <w:lsdException w:name=\"Medium Grid 1 Accent 2\" w:uiPriority=\"67\" />\r\n <w:lsdException w:name=\"Medium Grid 2 Accent 2\" w:uiPriority=\"68\" />\r\n <w:lsdException w:name=\"Medium Grid 3 Accent 2\" w:uiPriority=\"69\" />\r\n <w:lsdException w:name=\"Dark List Accent 2\" w:uiPriority=\"70\" />\r\n <w:lsdException w:name=\"Colorful Shading Accent 2\" w:uiPriority=\"71\" />\r\n <w:lsdException w:name=\"Colorful List Accent 2\" w:uiPriority=\"72\" />\r\n <w:lsdException w:name=\"Colorful Grid Accent 2\" w:uiPriority=\"73\" />\r\n <w:lsdException w:name=\"Light Shading Accent 3\" w:uiPriority=\"60\" />\r\n <w:lsdException w:name=\"Light List Accent 3\" w:uiPriority=\"61\" />\r\n <w:lsdException w:name=\"Light Grid Accent 3\" w:uiPriority=\"62\" />\r\n <w:lsdException w:name=\"Medium Shading 1 Accent 3\" w:uiPriority=\"63\" />\r\n <w:lsdException w:name=\"Medium Shading 2 Accent 3\" w:uiPriority=\"64\" />\r\n <w:lsdException w:name=\"Medium List 1 Accent 3\" w:uiPriority=\"65\" />\r\n <w:lsdException w:name=\"Medium List 2 Accent 3\" w:uiPriority=\"66\" />\r\n <w:lsdException w:name=\"Medium Grid 1 Accent 3\" w:uiPriority=\"67\" />\r\n <w:lsdException w:name=\"Medium Grid 2 Accent 3\" w:uiPriority=\"68\" />\r\n <w:lsdException w:name=\"Medium Grid 3 Accent 3\" w:uiPriority=\"69\" />\r\n <w:lsdException w:name=\"Dark List Accent 3\" w:uiPriority=\"70\" />\r\n <w:lsdException w:name=\"Colorful Shading Accent 3\" w:uiPriority=\"71\" />\r\n <w:lsdException w:name=\"Colorful List Accent 3\" w:uiPriority=\"72\" />\r\n <w:lsdException w:name=\"Colorful Grid Accent 3\" w:uiPriority=\"73\" />\r\n <w:lsdException w:name=\"Light Shading Accent 4\" w:uiPriority=\"60\" />\r\n <w:lsdException w:name=\"Light List Accent 4\" w:uiPriority=\"61\" />\r\n <w:lsdException w:name=\"Light Grid Accent 4\" w:uiPriority=\"62\" />\r\n <w:lsdException w:name=\"Medium Shading 1 Accent 4\" w:uiPriority=\"63\" />\r\n <w:lsdException w:name=\"Medium Shading 2 Accent 4\" w:uiPriority=\"64\" />\r\n <w:lsdException w:name=\"Medium List 1 Accent 4\" w:uiPriority=\"65\" />\r\n <w:lsdException w:name=\"Medium List 2 Accent 4\" w:uiPriority=\"66\" />\r\n <w:lsdException w:name=\"Medium Grid 1 Accent 4\" w:uiPriority=\"67\" />\r\n <w:lsdException w:name=\"Medium Grid 2 Accent 4\" w:uiPriority=\"68\" />\r\n <w:lsdException w:name=\"Medium Grid 3 Accent 4\" w:uiPriority=\"69\" />\r\n <w:lsdException w:name=\"Dark List Accent 4\" w:uiPriority=\"70\" />\r\n <w:lsdException w:name=\"Colorful Shading Accent 4\" w:uiPriority=\"71\" />\r\n <w:lsdException w:name=\"Colorful List Accent 4\" w:uiPriority=\"72\" />\r\n <w:lsdException w:name=\"Colorful Grid Accent 4\" w:uiPriority=\"73\" />\r\n <w:lsdException w:name=\"Light Shading Accent 5\" w:uiPriority=\"60\" />\r\n <w:lsdException w:name=\"Light List Accent 5\" w:uiPriority=\"61\" />\r\n <w:lsdException w:name=\"Light Grid Accent 5\" w:uiPriority=\"62\" />\r\n <w:lsdException w:name=\"Medium Shading 1 Accent 5\" w:uiPriority=\"63\" />\r\n <w:lsdException w:name=\"Medium Shading 2 Accent 5\" w:uiPriority=\"64\" />\r\n <w:lsdException w:name=\"Medium List 1 Accent 5\" w:uiPriority=\"65\" />\r\n <w:lsdException w:name=\"Medium List 2 Accent 5\" w:uiPriority=\"66\" />\r\n <w:lsdException w:name=\"Medium Grid 1 Accent 5\" w:uiPriority=\"67\" />\r\n <w:lsdException w:name=\"Medium Grid 2 Accent 5\" w:uiPriority=\"68\" />\r\n <w:lsdException w:name=\"Medium Grid 3 Accent 5\" w:uiPriority=\"69\" />\r\n <w:lsdException w:name=\"Dark List Accent 5\" w:uiPriority=\"70\" />\r\n <w:lsdException w:name=\"Colorful Shading Accent 5\" w:uiPriority=\"71\" />\r\n <w:lsdException w:name=\"Colorful List Accent 5\" w:uiPriority=\"72\" />\r\n <w:lsdException w:name=\"Colorful Grid Accent 5\" w:uiPriority=\"73\" />\r\n <w:lsdException w:name=\"Light Shading Accent 6\" w:uiPriority=\"60\" />\r\n <w:lsdException w:name=\"Light List Accent 6\" w:uiPriority=\"61\" />\r\n <w:lsdException w:name=\"Light Grid Accent 6\" w:uiPriority=\"62\" />\r\n <w:lsdException w:name=\"Medium Shading 1 Accent 6\" w:uiPriority=\"63\" />\r\n <w:lsdException w:name=\"Medium Shading 2 Accent 6\" w:uiPriority=\"64\" />\r\n <w:lsdException w:name=\"Medium List 1 Accent 6\" w:uiPriority=\"65\" />\r\n <w:lsdException w:name=\"Medium List 2 Accent 6\" w:uiPriority=\"66\" />\r\n <w:lsdException w:name=\"Medium Grid 1 Accent 6\" w:uiPriority=\"67\" />\r\n <w:lsdException w:name=\"Medium Grid 2 Accent 6\" w:uiPriority=\"68\" />\r\n <w:lsdException w:name=\"Medium Grid 3 Accent 6\" w:uiPriority=\"69\" />\r\n <w:lsdException w:name=\"Dark List Accent 6\" w:uiPriority=\"70\" />\r\n <w:lsdException w:name=\"Colorful Shading Accent 6\" w:uiPriority=\"71\" />\r\n <w:lsdException w:name=\"Colorful List Accent 6\" w:uiPriority=\"72\" />\r\n <w:lsdException w:name=\"Colorful Grid Accent 6\" w:uiPriority=\"73\" />\r\n <w:lsdException w:name=\"Subtle Emphasis\" w:uiPriority=\"19\" w:qFormat=\"1\" />\r\n <w:lsdException w:name=\"Intense Emphasis\" w:uiPriority=\"21\" w:qFormat=\"1\" />\r\n <w:lsdException w:name=\"Subtle Reference\" w:uiPriority=\"31\" w:qFormat=\"1\" />\r\n <w:lsdException w:name=\"Intense Reference\" w:uiPriority=\"32\" w:qFormat=\"1\" />\r\n <w:lsdException w:name=\"Book Title\" w:uiPriority=\"33\" w:qFormat=\"1\" />\r\n <w:lsdException w:name=\"Bibliography\" w:semiHidden=\"1\" w:uiPriority=\"37\"\r\n w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"TOC Heading\" w:semiHidden=\"1\" w:uiPriority=\"39\" w:unhideWhenUsed=\"1\"\r\n w:qFormat=\"1\" />\r\n <w:lsdException w:name=\"Plain Table 1\" w:uiPriority=\"41\" />\r\n <w:lsdException w:name=\"Plain Table 2\" w:uiPriority=\"42\" />\r\n <w:lsdException w:name=\"Plain Table 3\" w:uiPriority=\"43\" />\r\n <w:lsdException w:name=\"Plain Table 4\" w:uiPriority=\"44\" />\r\n <w:lsdException w:name=\"Plain Table 5\" w:uiPriority=\"45\" />\r\n <w:lsdException w:name=\"Grid Table Light\" w:uiPriority=\"40\" />\r\n <w:lsdException w:name=\"Grid Table 1 Light\" w:uiPriority=\"46\" />\r\n <w:lsdException w:name=\"Grid Table 2\" w:uiPriority=\"47\" />\r\n <w:lsdException w:name=\"Grid Table 3\" w:uiPriority=\"48\" />\r\n <w:lsdException w:name=\"Grid Table 4\" w:uiPriority=\"49\" />\r\n <w:lsdException w:name=\"Grid Table 5 Dark\" w:uiPriority=\"50\" />\r\n <w:lsdException w:name=\"Grid Table 6 Colorful\" w:uiPriority=\"51\" />\r\n <w:lsdException w:name=\"Grid Table 7 Colorful\" w:uiPriority=\"52\" />\r\n <w:lsdException w:name=\"Grid Table 1 Light Accent 1\" w:uiPriority=\"46\" />\r\n <w:lsdException w:name=\"Grid Table 2 Accent 1\" w:uiPriority=\"47\" />\r\n <w:lsdException w:name=\"Grid Table 3 Accent 1\" w:uiPriority=\"48\" />\r\n <w:lsdException w:name=\"Grid Table 4 Accent 1\" w:uiPriority=\"49\" />\r\n <w:lsdException w:name=\"Grid Table 5 Dark Accent 1\" w:uiPriority=\"50\" />\r\n <w:lsdException w:name=\"Grid Table 6 Colorful Accent 1\" w:uiPriority=\"51\" />\r\n <w:lsdException w:name=\"Grid Table 7 Colorful Accent 1\" w:uiPriority=\"52\" />\r\n <w:lsdException w:name=\"Grid Table 1 Light Accent 2\" w:uiPriority=\"46\" />\r\n <w:lsdException w:name=\"Grid Table 2 Accent 2\" w:uiPriority=\"47\" />\r\n <w:lsdException w:name=\"Grid Table 3 Accent 2\" w:uiPriority=\"48\" />\r\n <w:lsdException w:name=\"Grid Table 4 Accent 2\" w:uiPriority=\"49\" />\r\n <w:lsdException w:name=\"Grid Table 5 Dark Accent 2\" w:uiPriority=\"50\" />\r\n <w:lsdException w:name=\"Grid Table 6 Colorful Accent 2\" w:uiPriority=\"51\" />\r\n <w:lsdException w:name=\"Grid Table 7 Colorful Accent 2\" w:uiPriority=\"52\" />\r\n <w:lsdException w:name=\"Grid Table 1 Light Accent 3\" w:uiPriority=\"46\" />\r\n <w:lsdException w:name=\"Grid Table 2 Accent 3\" w:uiPriority=\"47\" />\r\n <w:lsdException w:name=\"Grid Table 3 Accent 3\" w:uiPriority=\"48\" />\r\n <w:lsdException w:name=\"Grid Table 4 Accent 3\" w:uiPriority=\"49\" />\r\n <w:lsdException w:name=\"Grid Table 5 Dark Accent 3\" w:uiPriority=\"50\" />\r\n <w:lsdException w:name=\"Grid Table 6 Colorful Accent 3\" w:uiPriority=\"51\" />\r\n <w:lsdException w:name=\"Grid Table 7 Colorful Accent 3\" w:uiPriority=\"52\" />\r\n <w:lsdException w:name=\"Grid Table 1 Light Accent 4\" w:uiPriority=\"46\" />\r\n <w:lsdException w:name=\"Grid Table 2 Accent 4\" w:uiPriority=\"47\" />\r\n <w:lsdException w:name=\"Grid Table 3 Accent 4\" w:uiPriority=\"48\" />\r\n <w:lsdException w:name=\"Grid Table 4 Accent 4\" w:uiPriority=\"49\" />\r\n <w:lsdException w:name=\"Grid Table 5 Dark Accent 4\" w:uiPriority=\"50\" />\r\n <w:lsdException w:name=\"Grid Table 6 Colorful Accent 4\" w:uiPriority=\"51\" />\r\n <w:lsdException w:name=\"Grid Table 7 Colorful Accent 4\" w:uiPriority=\"52\" />\r\n <w:lsdException w:name=\"Grid Table 1 Light Accent 5\" w:uiPriority=\"46\" />\r\n <w:lsdException w:name=\"Grid Table 2 Accent 5\" w:uiPriority=\"47\" />\r\n <w:lsdException w:name=\"Grid Table 3 Accent 5\" w:uiPriority=\"48\" />\r\n <w:lsdException w:name=\"Grid Table 4 Accent 5\" w:uiPriority=\"49\" />\r\n <w:lsdException w:name=\"Grid Table 5 Dark Accent 5\" w:uiPriority=\"50\" />\r\n <w:lsdException w:name=\"Grid Table 6 Colorful Accent 5\" w:uiPriority=\"51\" />\r\n <w:lsdException w:name=\"Grid Table 7 Colorful Accent 5\" w:uiPriority=\"52\" />\r\n <w:lsdException w:name=\"Grid Table 1 Light Accent 6\" w:uiPriority=\"46\" />\r\n <w:lsdException w:name=\"Grid Table 2 Accent 6\" w:uiPriority=\"47\" />\r\n <w:lsdException w:name=\"Grid Table 3 Accent 6\" w:uiPriority=\"48\" />\r\n <w:lsdException w:name=\"Grid Table 4 Accent 6\" w:uiPriority=\"49\" />\r\n <w:lsdException w:name=\"Grid Table 5 Dark Accent 6\" w:uiPriority=\"50\" />\r\n <w:lsdException w:name=\"Grid Table 6 Colorful Accent 6\" w:uiPriority=\"51\" />\r\n <w:lsdException w:name=\"Grid Table 7 Colorful Accent 6\" w:uiPriority=\"52\" />\r\n <w:lsdException w:name=\"List Table 1 Light\" w:uiPriority=\"46\" />\r\n <w:lsdException w:name=\"List Table 2\" w:uiPriority=\"47\" />\r\n <w:lsdException w:name=\"List Table 3\" w:uiPriority=\"48\" />\r\n <w:lsdException w:name=\"List Table 4\" w:uiPriority=\"49\" />\r\n <w:lsdException w:name=\"List Table 5 Dark\" w:uiPriority=\"50\" />\r\n <w:lsdException w:name=\"List Table 6 Colorful\" w:uiPriority=\"51\" />\r\n <w:lsdException w:name=\"List Table 7 Colorful\" w:uiPriority=\"52\" />\r\n <w:lsdException w:name=\"List Table 1 Light Accent 1\" w:uiPriority=\"46\" />\r\n <w:lsdException w:name=\"List Table 2 Accent 1\" w:uiPriority=\"47\" />\r\n <w:lsdException w:name=\"List Table 3 Accent 1\" w:uiPriority=\"48\" />\r\n <w:lsdException w:name=\"List Table 4 Accent 1\" w:uiPriority=\"49\" />\r\n <w:lsdException w:name=\"List Table 5 Dark Accent 1\" w:uiPriority=\"50\" />\r\n <w:lsdException w:name=\"List Table 6 Colorful Accent 1\" w:uiPriority=\"51\" />\r\n <w:lsdException w:name=\"List Table 7 Colorful Accent 1\" w:uiPriority=\"52\" />\r\n <w:lsdException w:name=\"List Table 1 Light Accent 2\" w:uiPriority=\"46\" />\r\n <w:lsdException w:name=\"List Table 2 Accent 2\" w:uiPriority=\"47\" />\r\n <w:lsdException w:name=\"List Table 3 Accent 2\" w:uiPriority=\"48\" />\r\n <w:lsdException w:name=\"List Table 4 Accent 2\" w:uiPriority=\"49\" />\r\n <w:lsdException w:name=\"List Table 5 Dark Accent 2\" w:uiPriority=\"50\" />\r\n <w:lsdException w:name=\"List Table 6 Colorful Accent 2\" w:uiPriority=\"51\" />\r\n <w:lsdException w:name=\"List Table 7 Colorful Accent 2\" w:uiPriority=\"52\" />\r\n <w:lsdException w:name=\"List Table 1 Light Accent 3\" w:uiPriority=\"46\" />\r\n <w:lsdException w:name=\"List Table 2 Accent 3\" w:uiPriority=\"47\" />\r\n <w:lsdException w:name=\"List Table 3 Accent 3\" w:uiPriority=\"48\" />\r\n <w:lsdException w:name=\"List Table 4 Accent 3\" w:uiPriority=\"49\" />\r\n <w:lsdException w:name=\"List Table 5 Dark Accent 3\" w:uiPriority=\"50\" />\r\n <w:lsdException w:name=\"List Table 6 Colorful Accent 3\" w:uiPriority=\"51\" />\r\n <w:lsdException w:name=\"List Table 7 Colorful Accent 3\" w:uiPriority=\"52\" />\r\n <w:lsdException w:name=\"List Table 1 Light Accent 4\" w:uiPriority=\"46\" />\r\n <w:lsdException w:name=\"List Table 2 Accent 4\" w:uiPriority=\"47\" />\r\n <w:lsdException w:name=\"List Table 3 Accent 4\" w:uiPriority=\"48\" />\r\n <w:lsdException w:name=\"List Table 4 Accent 4\" w:uiPriority=\"49\" />\r\n <w:lsdException w:name=\"List Table 5 Dark Accent 4\" w:uiPriority=\"50\" />\r\n <w:lsdException w:name=\"List Table 6 Colorful Accent 4\" w:uiPriority=\"51\" />\r\n <w:lsdException w:name=\"List Table 7 Colorful Accent 4\" w:uiPriority=\"52\" />\r\n <w:lsdException w:name=\"List Table 1 Light Accent 5\" w:uiPriority=\"46\" />\r\n <w:lsdException w:name=\"List Table 2 Accent 5\" w:uiPriority=\"47\" />\r\n <w:lsdException w:name=\"List Table 3 Accent 5\" w:uiPriority=\"48\" />\r\n <w:lsdException w:name=\"List Table 4 Accent 5\" w:uiPriority=\"49\" />\r\n <w:lsdException w:name=\"List Table 5 Dark Accent 5\" w:uiPriority=\"50\" />\r\n <w:lsdException w:name=\"List Table 6 Colorful Accent 5\" w:uiPriority=\"51\" />\r\n <w:lsdException w:name=\"List Table 7 Colorful Accent 5\" w:uiPriority=\"52\" />\r\n <w:lsdException w:name=\"List Table 1 Light Accent 6\" w:uiPriority=\"46\" />\r\n <w:lsdException w:name=\"List Table 2 Accent 6\" w:uiPriority=\"47\" />\r\n <w:lsdException w:name=\"List Table 3 Accent 6\" w:uiPriority=\"48\" />\r\n <w:lsdException w:name=\"List Table 4 Accent 6\" w:uiPriority=\"49\" />\r\n <w:lsdException w:name=\"List Table 5 Dark Accent 6\" w:uiPriority=\"50\" />\r\n <w:lsdException w:name=\"List Table 6 Colorful Accent 6\" w:uiPriority=\"51\" />\r\n <w:lsdException w:name=\"List Table 7 Colorful Accent 6\" w:uiPriority=\"52\" />\r\n <w:lsdException w:name=\"Mention\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Smart Hyperlink\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Hashtag\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Unresolved Mention\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n <w:lsdException w:name=\"Smart Link\" w:semiHidden=\"1\" w:unhideWhenUsed=\"1\" />\r\n </w:latentStyles>\r\n <w:style w:type=\"paragraph\" w:default=\"1\" w:styleId=\"Normal\">\r\n <w:name w:val=\"Normal\" />\r\n <w:qFormat />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:pPr>\r\n <w:adjustRightInd w:val=\"0\" />\r\n <w:spacing w:before=\"45\" w:after=\"45\" w:line=\"360\" w:lineRule=\"auto\" />\r\n </w:pPr>\r\n <w:rPr>\r\n <w:rFonts w:ascii=\"Inter\" w:cs=\"Inter\" w:eastAsia=\"Inter\" w:hAnsi=\"Inter\"/>\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"paragraph\" w:styleId=\"Heading1\">\r\n <w:name w:val=\"heading 1\" />\r\n <w:basedOn w:val=\"Normal\" />\r\n <w:next w:val=\"Normal\" />\r\n <w:link w:val=\"Heading1Char\" />\r\n <w:uiPriority w:val=\"9\" />\r\n <w:rsid w:val=\"00D078F7\" />\r\n <w:pPr>\r\n <w:outlineLvl w:val=\"0\" />\r\n </w:pPr>\r\n <w:rPr>\r\n <w:b />\r\n <w:sz w:val=\"48\" />\r\n <w:szCs w:val=\"48\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"paragraph\" w:styleId=\"Heading2\">\r\n <w:name w:val=\"heading 2\" />\r\n <w:basedOn w:val=\"Normal\" />\r\n <w:next w:val=\"Normal\" />\r\n <w:link w:val=\"Heading2Char\" />\r\n <w:uiPriority w:val=\"9\" />\r\n <w:semiHidden />\r\n <w:unhideWhenUsed />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:pPr>\r\n <w:outlineLvl w:val=\"1\" />\r\n </w:pPr>\r\n <w:rPr>\r\n <w:b />\r\n <w:sz w:val=\"36\" />\r\n <w:szCs w:val=\"36\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"paragraph\" w:styleId=\"Heading3\">\r\n <w:name w:val=\"heading 3\" />\r\n <w:basedOn w:val=\"Normal\" />\r\n <w:next w:val=\"Normal\" />\r\n <w:link w:val=\"Heading3Char\" />\r\n <w:uiPriority w:val=\"9\" />\r\n <w:semiHidden />\r\n <w:unhideWhenUsed />\r\n <w:qFormat />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:pPr>\r\n <w:outlineLvl w:val=\"2\" />\r\n </w:pPr>\r\n <w:rPr>\r\n <w:b />\r\n <w:sz w:val=\"28\" />\r\n <w:szCs w:val=\"28\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"paragraph\" w:styleId=\"Heading4\">\r\n <w:name w:val=\"heading 4\" />\r\n <w:basedOn w:val=\"Normal\" />\r\n <w:next w:val=\"Normal\" />\r\n <w:link w:val=\"Heading4Char\" />\r\n <w:uiPriority w:val=\"9\" />\r\n <w:semiHidden />\r\n <w:unhideWhenUsed />\r\n <w:qFormat />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:pPr>\r\n <w:keepNext />\r\n <w:keepLines />\r\n <w:spacing w:before=\"80\" w:after=\"40\" />\r\n <w:outlineLvl w:val=\"3\" />\r\n </w:pPr>\r\n <w:rPr>\r\n <w:rFonts w:eastAsiaTheme=\"majorEastAsia\" w:cstheme=\"majorBidi\" />\r\n <w:i />\r\n <w:iCs />\r\n <w:color w:val=\"0F4761\" w:themeColor=\"accent1\" w:themeShade=\"BF\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"paragraph\" w:styleId=\"Heading5\">\r\n <w:name w:val=\"heading 5\" />\r\n <w:basedOn w:val=\"Normal\" />\r\n <w:next w:val=\"Normal\" />\r\n <w:link w:val=\"Heading5Char\" />\r\n <w:uiPriority w:val=\"9\" />\r\n <w:semiHidden />\r\n <w:unhideWhenUsed />\r\n <w:qFormat />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:pPr>\r\n <w:keepNext />\r\n <w:keepLines />\r\n <w:spacing w:before=\"80\" w:after=\"40\" />\r\n <w:outlineLvl w:val=\"4\" />\r\n </w:pPr>\r\n <w:rPr>\r\n <w:rFonts w:eastAsiaTheme=\"majorEastAsia\" w:cstheme=\"majorBidi\" />\r\n <w:color w:val=\"0F4761\" w:themeColor=\"accent1\" w:themeShade=\"BF\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"paragraph\" w:styleId=\"Heading6\">\r\n <w:name w:val=\"heading 6\" />\r\n <w:basedOn w:val=\"Normal\" />\r\n <w:next w:val=\"Normal\" />\r\n <w:link w:val=\"Heading6Char\" />\r\n <w:uiPriority w:val=\"9\" />\r\n <w:semiHidden />\r\n <w:unhideWhenUsed />\r\n <w:qFormat />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:pPr>\r\n <w:keepNext />\r\n <w:keepLines />\r\n <w:spacing w:before=\"40\" w:after=\"0\" />\r\n <w:outlineLvl w:val=\"5\" />\r\n </w:pPr>\r\n <w:rPr>\r\n <w:rFonts w:eastAsiaTheme=\"majorEastAsia\" w:cstheme=\"majorBidi\" />\r\n <w:i />\r\n <w:iCs />\r\n <w:color w:val=\"595959\" w:themeColor=\"text1\" w:themeTint=\"A6\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"paragraph\" w:styleId=\"Heading7\">\r\n <w:name w:val=\"heading 7\" />\r\n <w:basedOn w:val=\"Normal\" />\r\n <w:next w:val=\"Normal\" />\r\n <w:link w:val=\"Heading7Char\" />\r\n <w:uiPriority w:val=\"9\" />\r\n <w:semiHidden />\r\n <w:unhideWhenUsed />\r\n <w:qFormat />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:pPr>\r\n <w:keepNext />\r\n <w:keepLines />\r\n <w:spacing w:before=\"40\" w:after=\"0\" />\r\n <w:outlineLvl w:val=\"6\" />\r\n </w:pPr>\r\n <w:rPr>\r\n <w:rFonts w:eastAsiaTheme=\"majorEastAsia\" w:cstheme=\"majorBidi\" />\r\n <w:color w:val=\"595959\" w:themeColor=\"text1\" w:themeTint=\"A6\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"paragraph\" w:styleId=\"Heading8\">\r\n <w:name w:val=\"heading 8\" />\r\n <w:basedOn w:val=\"Normal\" />\r\n <w:next w:val=\"Normal\" />\r\n <w:link w:val=\"Heading8Char\" />\r\n <w:uiPriority w:val=\"9\" />\r\n <w:semiHidden />\r\n <w:unhideWhenUsed />\r\n <w:qFormat />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:pPr>\r\n <w:keepNext />\r\n <w:keepLines />\r\n <w:spacing w:after=\"0\" />\r\n <w:outlineLvl w:val=\"7\" />\r\n </w:pPr>\r\n <w:rPr>\r\n <w:rFonts w:eastAsiaTheme=\"majorEastAsia\" w:cstheme=\"majorBidi\" />\r\n <w:i />\r\n <w:iCs />\r\n <w:color w:val=\"272727\" w:themeColor=\"text1\" w:themeTint=\"D8\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"paragraph\" w:styleId=\"Heading9\">\r\n <w:name w:val=\"heading 9\" />\r\n <w:basedOn w:val=\"Normal\" />\r\n <w:next w:val=\"Normal\" />\r\n <w:link w:val=\"Heading9Char\" />\r\n <w:uiPriority w:val=\"9\" />\r\n <w:semiHidden />\r\n <w:unhideWhenUsed />\r\n <w:qFormat />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:pPr>\r\n <w:keepNext />\r\n <w:keepLines />\r\n <w:spacing w:after=\"0\" />\r\n <w:outlineLvl w:val=\"8\" />\r\n </w:pPr>\r\n <w:rPr>\r\n <w:rFonts w:eastAsiaTheme=\"majorEastAsia\" w:cstheme=\"majorBidi\" />\r\n <w:color w:val=\"272727\" w:themeColor=\"text1\" w:themeTint=\"D8\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"character\" w:default=\"1\" w:styleId=\"DefaultParagraphFont\">\r\n <w:name w:val=\"Default Paragraph Font\" />\r\n <w:uiPriority w:val=\"1\" />\r\n <w:unhideWhenUsed />\r\n </w:style>\r\n <w:style w:type=\"character\" w:customStyle=\"1\" w:styleId=\"VerbatimChar\">\r\n <w:name w:val=\"Verbatim Char\"/>\r\n <w:basedOn w:val=\"DefaultParagraphFont\"/>\r\n <w:rPr>\r\n <w:rFonts w:ascii=\"GeistMono\" w:cs=\"GeistMono\" w:eastAsia=\"GeistMono\" w:hAnsi=\"GeistMono\"/>\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"table\" w:default=\"1\" w:styleId=\"TableNormal\">\r\n <w:name w:val=\"Normal Table\" />\r\n <w:uiPriority w:val=\"99\" />\r\n <w:semiHidden />\r\n <w:unhideWhenUsed />\r\n <w:tblPr>\r\n <w:tblInd w:w=\"0\" w:type=\"dxa\" />\r\n <w:tblCellMar>\r\n <w:top w:w=\"0\" w:type=\"dxa\" />\r\n <w:left w:w=\"108\" w:type=\"dxa\" />\r\n <w:bottom w:w=\"0\" w:type=\"dxa\" />\r\n <w:right w:w=\"108\" w:type=\"dxa\" />\r\n </w:tblCellMar>\r\n </w:tblPr>\r\n </w:style>\r\n <w:style w:type=\"numbering\" w:default=\"1\" w:styleId=\"NoList\">\r\n <w:name w:val=\"No List\" />\r\n <w:uiPriority w:val=\"99\" />\r\n <w:semiHidden />\r\n <w:unhideWhenUsed />\r\n </w:style>\r\n <w:style w:type=\"character\" w:customStyle=\"1\" w:styleId=\"Heading1Char\">\r\n <w:name w:val=\"Heading 1 Char\" />\r\n <w:basedOn w:val=\"DefaultParagraphFont\" />\r\n <w:link w:val=\"Heading1\" />\r\n <w:uiPriority w:val=\"9\" />\r\n <w:rsid w:val=\"00D078F7\" />\r\n <w:rPr>\r\n <w:rFonts w:asciiTheme=\"majorHAnsi\" w:eastAsiaTheme=\"majorEastAsia\"\r\n w:hAnsiTheme=\"majorHAnsi\" w:cstheme=\"majorBidi\" />\r\n <w:sz w:val=\"40\" />\r\n <w:szCs w:val=\"40\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"character\" w:customStyle=\"1\" w:styleId=\"Heading2Char\">\r\n <w:name w:val=\"Heading 2 Char\" />\r\n <w:basedOn w:val=\"DefaultParagraphFont\" />\r\n <w:link w:val=\"Heading2\" />\r\n <w:uiPriority w:val=\"9\" />\r\n <w:semiHidden />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:rPr>\r\n <w:rFonts w:asciiTheme=\"majorHAnsi\" w:eastAsiaTheme=\"majorEastAsia\"\r\n w:hAnsiTheme=\"majorHAnsi\" w:cstheme=\"majorBidi\" />\r\n <w:color w:val=\"0F4761\" w:themeColor=\"accent1\" w:themeShade=\"BF\" />\r\n <w:sz w:val=\"32\" />\r\n <w:szCs w:val=\"32\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"character\" w:customStyle=\"1\" w:styleId=\"Heading3Char\">\r\n <w:name w:val=\"Heading 3 Char\" />\r\n <w:basedOn w:val=\"DefaultParagraphFont\" />\r\n <w:link w:val=\"Heading3\" />\r\n <w:uiPriority w:val=\"9\" />\r\n <w:semiHidden />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:rPr>\r\n <w:rFonts w:eastAsiaTheme=\"majorEastAsia\" w:cstheme=\"majorBidi\" />\r\n <w:color w:val=\"0F4761\" w:themeColor=\"accent1\" w:themeShade=\"BF\" />\r\n <w:sz w:val=\"28\" />\r\n <w:szCs w:val=\"28\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"character\" w:customStyle=\"1\" w:styleId=\"Heading4Char\">\r\n <w:name w:val=\"Heading 4 Char\" />\r\n <w:basedOn w:val=\"DefaultParagraphFont\" />\r\n <w:link w:val=\"Heading4\" />\r\n <w:uiPriority w:val=\"9\" />\r\n <w:semiHidden />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:rPr>\r\n <w:rFonts w:eastAsiaTheme=\"majorEastAsia\" w:cstheme=\"majorBidi\" />\r\n <w:i />\r\n <w:iCs />\r\n <w:color w:val=\"0F4761\" w:themeColor=\"accent1\" w:themeShade=\"BF\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"character\" w:customStyle=\"1\" w:styleId=\"Heading5Char\">\r\n <w:name w:val=\"Heading 5 Char\" />\r\n <w:basedOn w:val=\"DefaultParagraphFont\" />\r\n <w:link w:val=\"Heading5\" />\r\n <w:uiPriority w:val=\"9\" />\r\n <w:semiHidden />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:rPr>\r\n <w:rFonts w:eastAsiaTheme=\"majorEastAsia\" w:cstheme=\"majorBidi\" />\r\n <w:color w:val=\"0F4761\" w:themeColor=\"accent1\" w:themeShade=\"BF\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"character\" w:customStyle=\"1\" w:styleId=\"Heading6Char\">\r\n <w:name w:val=\"Heading 6 Char\" />\r\n <w:basedOn w:val=\"DefaultParagraphFont\" />\r\n <w:link w:val=\"Heading6\" />\r\n <w:uiPriority w:val=\"9\" />\r\n <w:semiHidden />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:rPr>\r\n <w:rFonts w:eastAsiaTheme=\"majorEastAsia\" w:cstheme=\"majorBidi\" />\r\n <w:i />\r\n <w:iCs />\r\n <w:color w:val=\"595959\" w:themeColor=\"text1\" w:themeTint=\"A6\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"character\" w:customStyle=\"1\" w:styleId=\"Heading7Char\">\r\n <w:name w:val=\"Heading 7 Char\" />\r\n <w:basedOn w:val=\"DefaultParagraphFont\" />\r\n <w:link w:val=\"Heading7\" />\r\n <w:uiPriority w:val=\"9\" />\r\n <w:semiHidden />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:rPr>\r\n <w:rFonts w:eastAsiaTheme=\"majorEastAsia\" w:cstheme=\"majorBidi\" />\r\n <w:color w:val=\"595959\" w:themeColor=\"text1\" w:themeTint=\"A6\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"character\" w:customStyle=\"1\" w:styleId=\"Heading8Char\">\r\n <w:name w:val=\"Heading 8 Char\" />\r\n <w:basedOn w:val=\"DefaultParagraphFont\" />\r\n <w:link w:val=\"Heading8\" />\r\n <w:uiPriority w:val=\"9\" />\r\n <w:semiHidden />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:rPr>\r\n <w:rFonts w:eastAsiaTheme=\"majorEastAsia\" w:cstheme=\"majorBidi\" />\r\n <w:i />\r\n <w:iCs />\r\n <w:color w:val=\"272727\" w:themeColor=\"text1\" w:themeTint=\"D8\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"character\" w:customStyle=\"1\" w:styleId=\"Heading9Char\">\r\n <w:name w:val=\"Heading 9 Char\" />\r\n <w:basedOn w:val=\"DefaultParagraphFont\" />\r\n <w:link w:val=\"Heading9\" />\r\n <w:uiPriority w:val=\"9\" />\r\n <w:semiHidden />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:rPr>\r\n <w:rFonts w:eastAsiaTheme=\"majorEastAsia\" w:cstheme=\"majorBidi\" />\r\n <w:color w:val=\"272727\" w:themeColor=\"text1\" w:themeTint=\"D8\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"paragraph\" w:styleId=\"Title\">\r\n <w:name w:val=\"Title\" />\r\n <w:basedOn w:val=\"Normal\" />\r\n <w:next w:val=\"Normal\" />\r\n <w:link w:val=\"TitleChar\" />\r\n <w:uiPriority w:val=\"10\" />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:pPr>\r\n <w:spacing w:after=\"80\" w:line=\"240\" w:lineRule=\"auto\" />\r\n <w:contextualSpacing />\r\n </w:pPr>\r\n <w:rPr>\r\n <w:rFonts w:asciiTheme=\"majorHAnsi\" w:eastAsiaTheme=\"majorEastAsia\"\r\n w:hAnsiTheme=\"majorHAnsi\" w:cstheme=\"majorBidi\" />\r\n <w:spacing w:val=\"-10\" />\r\n <w:kern w:val=\"28\" />\r\n <w:sz w:val=\"56\" />\r\n <w:szCs w:val=\"56\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"character\" w:customStyle=\"1\" w:styleId=\"TitleChar\">\r\n <w:name w:val=\"Title Char\" />\r\n <w:basedOn w:val=\"DefaultParagraphFont\" />\r\n <w:link w:val=\"Title\" />\r\n <w:uiPriority w:val=\"10\" />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:rPr>\r\n <w:rFonts w:asciiTheme=\"majorHAnsi\" w:eastAsiaTheme=\"majorEastAsia\"\r\n w:hAnsiTheme=\"majorHAnsi\" w:cstheme=\"majorBidi\" />\r\n <w:spacing w:val=\"-10\" />\r\n <w:kern w:val=\"28\" />\r\n <w:sz w:val=\"56\" />\r\n <w:szCs w:val=\"56\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"paragraph\" w:styleId=\"Subtitle\">\r\n <w:name w:val=\"Subtitle\" />\r\n <w:basedOn w:val=\"Normal\" />\r\n <w:next w:val=\"Normal\" />\r\n <w:link w:val=\"SubtitleChar\" />\r\n <w:uiPriority w:val=\"11\" />\r\n <w:qFormat />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:pPr>\r\n <w:numPr>\r\n <w:ilvl w:val=\"1\" />\r\n </w:numPr>\r\n </w:pPr>\r\n <w:rPr>\r\n <w:rFonts w:eastAsiaTheme=\"majorEastAsia\" w:cstheme=\"majorBidi\" />\r\n <w:color w:val=\"595959\" w:themeColor=\"text1\" w:themeTint=\"A6\" />\r\n <w:spacing w:val=\"15\" />\r\n <w:sz w:val=\"28\" />\r\n <w:szCs w:val=\"28\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"character\" w:customStyle=\"1\" w:styleId=\"SubtitleChar\">\r\n <w:name w:val=\"Subtitle Char\" />\r\n <w:basedOn w:val=\"DefaultParagraphFont\" />\r\n <w:link w:val=\"Subtitle\" />\r\n <w:uiPriority w:val=\"11\" />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:rPr>\r\n <w:rFonts w:eastAsiaTheme=\"majorEastAsia\" w:cstheme=\"majorBidi\" />\r\n <w:color w:val=\"595959\" w:themeColor=\"text1\" w:themeTint=\"A6\" />\r\n <w:spacing w:val=\"15\" />\r\n <w:sz w:val=\"28\" />\r\n <w:szCs w:val=\"28\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"paragraph\" w:styleId=\"Quote\">\r\n <w:name w:val=\"Quote\" />\r\n <w:basedOn w:val=\"Normal\" />\r\n <w:next w:val=\"Normal\" />\r\n <w:link w:val=\"QuoteChar\" />\r\n <w:uiPriority w:val=\"29\" />\r\n <w:qFormat />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:pPr>\r\n <w:spacing w:before=\"160\" />\r\n <w:jc w:val=\"center\" />\r\n </w:pPr>\r\n <w:rPr>\r\n <w:i />\r\n <w:iCs />\r\n <w:color w:val=\"404040\" w:themeColor=\"text1\" w:themeTint=\"BF\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"character\" w:customStyle=\"1\" w:styleId=\"QuoteChar\">\r\n <w:name w:val=\"Quote Char\" />\r\n <w:basedOn w:val=\"DefaultParagraphFont\" />\r\n <w:link w:val=\"Quote\" />\r\n <w:uiPriority w:val=\"29\" />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:rPr>\r\n <w:i />\r\n <w:iCs />\r\n <w:color w:val=\"404040\" w:themeColor=\"text1\" w:themeTint=\"BF\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"paragraph\" w:styleId=\"ListParagraph\">\r\n <w:name w:val=\"List Paragraph\" />\r\n <w:basedOn w:val=\"Normal\" />\r\n <w:uiPriority w:val=\"34\" />\r\n <w:qFormat />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:pPr>\r\n <w:ind w:left=\"720\" />\r\n <w:contextualSpacing />\r\n </w:pPr>\r\n </w:style>\r\n <w:style w:type=\"character\" w:styleId=\"IntenseEmphasis\">\r\n <w:name w:val=\"Intense Emphasis\" />\r\n <w:basedOn w:val=\"DefaultParagraphFont\" />\r\n <w:uiPriority w:val=\"21\" />\r\n <w:qFormat />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:rPr>\r\n <w:i />\r\n <w:iCs />\r\n <w:color w:val=\"0F4761\" w:themeColor=\"accent1\" w:themeShade=\"BF\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"paragraph\" w:styleId=\"IntenseQuote\">\r\n <w:name w:val=\"Intense Quote\" />\r\n <w:basedOn w:val=\"Normal\" />\r\n <w:next w:val=\"Normal\" />\r\n <w:link w:val=\"IntenseQuoteChar\" />\r\n <w:uiPriority w:val=\"30\" />\r\n <w:qFormat />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:pPr>\r\n <w:pBdr>\r\n <w:top w:val=\"single\" w:sz=\"4\" w:space=\"10\" w:color=\"0F4761\" w:themeColor=\"accent1\"\r\n w:themeShade=\"BF\" />\r\n <w:bottom w:val=\"single\" w:sz=\"4\" w:space=\"10\" w:color=\"0F4761\"\r\n w:themeColor=\"accent1\" w:themeShade=\"BF\" />\r\n </w:pBdr>\r\n <w:spacing w:before=\"360\" w:after=\"360\" />\r\n <w:ind w:left=\"864\" w:right=\"864\" />\r\n <w:jc w:val=\"center\" />\r\n </w:pPr>\r\n <w:rPr>\r\n <w:i />\r\n <w:iCs />\r\n <w:color w:val=\"0F4761\" w:themeColor=\"accent1\" w:themeShade=\"BF\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"character\" w:customStyle=\"1\" w:styleId=\"IntenseQuoteChar\">\r\n <w:name w:val=\"Intense Quote Char\" />\r\n <w:basedOn w:val=\"DefaultParagraphFont\" />\r\n <w:link w:val=\"IntenseQuote\" />\r\n <w:uiPriority w:val=\"30\" />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:rPr>\r\n <w:i />\r\n <w:iCs />\r\n <w:color w:val=\"0F4761\" w:themeColor=\"accent1\" w:themeShade=\"BF\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"character\" w:styleId=\"IntenseReference\">\r\n <w:name w:val=\"Intense Reference\" />\r\n <w:basedOn w:val=\"DefaultParagraphFont\" />\r\n <w:uiPriority w:val=\"32\" />\r\n <w:qFormat />\r\n <w:rsid w:val=\"005B06B8\" />\r\n <w:rPr>\r\n <w:b />\r\n <w:bCs />\r\n <w:smallCaps />\r\n <w:color w:val=\"0F4761\" w:themeColor=\"accent1\" w:themeShade=\"BF\" />\r\n <w:spacing w:val=\"5\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"character\" w:styleId=\"Hyperlink\">\r\n <w:name w:val=\"Hyperlink\" />\r\n <w:basedOn w:val=\"DefaultParagraphFont\" />\r\n <w:uiPriority w:val=\"99\" />\r\n <w:unhideWhenUsed />\r\n <w:rsid w:val=\"00F64863\" />\r\n <w:rPr>\r\n <w:color w:val=\"0000EF\" />\r\n <w:u w:val=\"single\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"character\" w:styleId=\"UnresolvedMention\">\r\n <w:name w:val=\"Unresolved Mention\" />\r\n <w:basedOn w:val=\"DefaultParagraphFont\" />\r\n <w:uiPriority w:val=\"99\" />\r\n <w:semiHidden />\r\n <w:unhideWhenUsed />\r\n <w:rsid w:val=\"00F64863\" />\r\n <w:rPr>\r\n <w:color w:val=\"605E5C\" />\r\n <w:shd w:val=\"clear\" w:color=\"auto\" w:fill=\"E1DFDD\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"paragraph\" w:styleId=\"Caption\">\r\n <w:name w:val=\"caption\" />\r\n <w:basedOn w:val=\"Normal\" />\r\n <w:next w:val=\"Normal\" />\r\n <w:uiPriority w:val=\"35\" />\r\n <w:unhideWhenUsed />\r\n <w:qFormat />\r\n <w:rsid w:val=\"00F64863\" />\r\n <w:pPr>\r\n <w:spacing w:before=\"0\" w:after=\"200\" w:line=\"240\" w:lineRule=\"auto\" />\r\n </w:pPr>\r\n <w:rPr>\r\n <w:i />\r\n <w:iCs />\r\n <w:color w:val=\"0E2841\" w:themeColor=\"text2\" />\r\n <w:sz w:val=\"18\" />\r\n <w:szCs w:val=\"18\" />\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"paragraph\" w:customStyle=\"1\" w:styleId=\"SourceCode\">\r\n <w:name w:val=\"Source Code\" />\r\n <w:basedOn w:val=\"Normal\" />\r\n <w:link w:val=\"VerbatimChar\"/>\r\n <w:pPr>\r\n <w:shd w:val=\"solid\" w:color=\"161616\" w:fill=\"161616\"/>\r\n </w:pPr>\r\n <w:rPr>\r\n <w:noProof />\r\n <w:wordWrap w:val=\"off\"/>\r\n <w:color w:val=\"ffffff\"/>\r\n <w:rFonts w:ascii=\"GeistMono\" w:cs=\"GeistMono\" w:eastAsia=\"GeistMono\" w:hAnsi=\"GeistMono\"/>\r\n </w:rPr>\r\n </w:style>\r\n <w:style w:type=\"paragraph\" w:styleId=\"BlockQuote\">\r\n <w:name w:val=\"Block Quote\"/>\r\n <w:basedOn w:val=\"Normal\"/>\r\n <w:next w:val=\"Normal\"/>\r\n <w:uiPriority w:val=\"9\"/>\r\n <w:unhideWhenUsed/>\r\n <w:qFormat/>\r\n <w:pPr>\r\n <w:pBdr>\r\n <w:left w:val=\"single\" w:color=\"7D797A\" w:sz=\"8\" w:space=\"100\"/>\r\n </w:pBdr>\r\n </w:pPr>\r\n </w:style>\r\n</w:styles>";
3
+ //#endregion
4
+ export { e as default };
5
+
6
+ //# sourceMappingURL=styles-C7Ws_DIi.js.map